BMOSP/API.md
2023-10-17 13:01:22 +03:00

3.3 KiB
Raw Blame History

Системные вызовы

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 поток не найден.