# Системные вызовы ## mem::alloc(size_t size) Выделение блока памяти размером `size`. Вовзращает адрес на блок памяти или 0 в случае ошибки. Коды ошибок: - `-1 не хватает ОЗУ`; - `-2 неправильный размер блока`. ## mem::free(uintptr_t mem) Освобождение блока памяти `mem`. Вовзращает 0 в случае успеха или -1 в случае ошибки. Коды ошибок: - `-1 блок не найден`. ## sys::alloc_framebuffer() Выделяет память под буфер кадра для отображения графического интерфейса. Возвращает указатель на структуру `framebuffer_t` или 0, если произошла ошибка. Коды ошибок: - `-1 не удалось выделить память для буфера кадра`. ## sys::free_framebuffer(framebuffer_t *frame) Освобождает ранее выделенную память `frame` для буфера кадра. Возвращает 0 в случае успеха или -1, если произошла ошибка. Коды ошибок: - `-1 ошибка при освобождении памяти для буфера кадра`. ## sys::exit(int code) Завершает выполнение текущего потока с кодом `code`. ## sys::get_error() Получает код ошибки последней операции. Возвращает целочисленное значение, представляющее код ошибки. ## sys::get_info() Получает информацию о текущей системе. Возвращает структуру `sys::info_t` содержащую информацию о системе. ## sys::get_module(uid_t module_id) Получает информацию о модуле `module_id`. Возвращает структуру, содержащую информацию о модуле. ## sys::new_thread(func_t func) Создает новый поток выполнения для функции `func`. Возвращает идентификатор созданного потока или 0 в случае ошибки. Коды ошибок: - `-1 ошибка при создании потока`. ## sys::delete_thread(uid_t thread_id) Удаляет указанный поток выполнения `thread_id`. Возвращает 0 в случае успеха или -1 в случае ошибки. Коды ошибок: - `-1 поток не найден`.