BMOSP/API.md

3.6 KiB
Raw Blame History

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

alloc(size_t size)

Выделение блока памяти размером size. Вовзращает адрес на блок памяти или 0 в случае ошибки.

Коды ошибок:

  • -1 не хватает ОЗУ;
  • -2 неправильный размер блока.

free(uintptr_t mem)

Освобождение блока памяти mem. Вовзращает 0 в случае успеха или -1 в случае ошибки.

Коды ошибок:

  • -1 блок не найден.

alloc_framebuffer()

Выделяет память под буфер кадра для отображения графического интерфейса. Возвращает указатель на структуру framebuffer_t или 0, если произошла ошибка.

Коды ошибок:

  • -1 не удалось выделить память для буфера кадра.

fb_printf(char *str, ...)

Форматированный вывод строки на экран используя функцию ядра fb_printf.

Будет удалено в ближайших обновлениях

  • Для вывода используйте любой графический или псевдографический модуль

free_framebuffer(framebuffer_t *frame)

Освобождает ранее выделенную память frame для буфера кадра. Возвращает 0 в случае успеха или -1, если произошла ошибка.

Коды ошибок:

  • -1 ошибка при освобождении памяти для буфера кадра.

exit(int code)

Завершает выполнение текущего потока с кодом code.

get_error()

Получает код ошибки последней операции. Возвращает целочисленное значение, представляющее код ошибки.

get_info()

Получает информацию о текущей системе. Возвращает структуру sys_info_t содержащую информацию о системе.

get_module(char *module_id)

Получает информацию о модуле module_id. Возвращает структуру module_info_t содержащую информацию о модуле.

new_thread(func_t func)

Создает новый поток выполнения для функции func. Возвращает идентификатор созданного потока или 0 в случае ошибки.

Коды ошибок:

  • -1 ошибка при создании потока.

delete_thread(uid_t thread_id)

Удаляет указанный поток выполнения thread_id. Возвращает 0 в случае успеха или -1 в случае ошибки.

Коды ошибок:

  • -1 поток не найден.