API Синапс ОС
(перенаправлено с «API SynapseOS»)
Перейти к навигации
Перейти к поиску
API более новых версий доступно только команде разработки и участникам раннего тестирования. После тестирования API будет изменено по результатам тестов и отзывам команды. Публикация состоится сразу после исправления вероятных недочетов при тестировании.
Раздел | Номер | Функция | Описание | Аргументы | Возвращаемое значение | Коды ошибок |
---|---|---|---|---|---|---|
Ядро | 0 | kernel_info_t hal_kernel_info() | Получение информации о ядре | Нет | Адрес на структуру содержащую информацию о ядре | Нет |
Ядро | 1 | void hal_kernel_debug(char *format_string, ...) | Отправка форматированного сообщения в отладочное устройство | Строка форматов и параметры | Сохранение в отладочное устройство ядра сообщения | Нет |
Многозадачность | 0 | void hal_yield() | Передать управление другой задаче | Нет | Нет | Нет |
Многозадачность | 1 | uint64_t hal_task_create_process(char *name, void (*func_ptr)(void *args), void *args) | Создать новый процесс | Имя процесса, указатель на точку входа, аргументы запуска | Номер процесса | Нет |
Многозадачность | 2 | uint64_t hal_task_create_thread(void (*func_ptr)(void *args), void *args) | Создать новую задачу для текущего процесса | Указатель на точку входа, аргументы запуска | Номер задачи | Нет |
Многозадачность | 3 | bool hal_task_kill_process(uint64_t process_id) | Завершить процесс по ID | ID процесса | 1 - успешно, 0 - ошибка | Нет |
Многозадачность | 4 | bool hal_task_kill_thread(uint64_t thread_id) | Завершить задачу текущего процесса по ID | ID потока | 1 - успешно, 0 - ошибка | Нет |
Многозадачность | 5 | uint64_t hal_get_process_id() | Получить идентификатор текущего процесса | Нет | ID процесса | Нет |
Многозадачность | 6 | uint64_t hal_get_thread_id() | Получить идентификатор текущей задачи | Нет | ID задачи | Нет |
Питание | 0 | void hal_power_off() | Отключить питание | Нет | Нет | Нет |
Питание | 1 | void hal_power_reboot() | Перезапуск | Нет | Нет | Нет |
Графика | 0 | graphic_info_t hal_graphics_info() | Получить информацию о графике | Нет | Информация о состоянии графической составляющей ядра | Нет |
Графика | 1 | framebuffer_t hal_graphics_framebuffer() | Получить фреймбуффер экрана | Нет | Получение адреса на фреймбуффер предоставляемый ядром | NULL при запрете графики |
Память | 0 | mem_map_t hal_mem_mmap() | Получить карту памяти | Нет | Получение карты распределения памяти ядра | Нет |
Память | 1 | void *hal_mem_alloc(size_t num) | Получить блок памяти | Количество блоков | Получение блока памяти | NULL при недостатке памяти |
Память | 2 | void hal_mem_free(void *ptr) | Освободить блок памяти | Указатель на блок памяти | Нет | Нет |
Драйвера | 0 | driver_map_t hal_driver_map() | Получить карту устройств | Нет | Карта устройств | Нет |
Драйвера | 1 | uuid_t hal_driver_load(void (*func_ptr)(void *args), void *args) | Загрузить драйвер | Указатель на точку входа, аргументы | UUID драйвера | Нет |
Драйвера | 2 | void hal_driver_reload(uuid_t device_id) | Перезагрузить драйвер по UUID | UUID драйвера | Нет | Нет |
Драйвера | 3 | void hal_driver_unload(uuid_t device_id) | Выгрузить драйвер по UUID | UUID драйвера | Нет | Нет |
Драйвера | 4 | bool hal_driver_send_data(uuid_t device_id, const void *data, size_t size) | Отправить данные в драйвер | UUID драйвера, данные, размер данных | 1 - успешно, 0 - ошибка | Нет |
Драйвера | 5 | bool hal_driver_receive_data(uuid_t device_id, void *buffer, size_t size) | Получить данные из драйвера | UUID драйвера, буфер, размер буфера | 1 - успешно, 0 - ошибка | Нет |
Блочные устройства | 0 | blockdev_map_t hal_blockdev_map() | Получить карту блочных устройств | Нет | Карта блочных устройств | Нет |
Блочные устройства | 1 | bool hal_blockdev_read(uuid_t device_id, uint64_t start_sector, void *buffer, size_t count) | Операция чтения | UUID устройства, начальный сектор, буфер для чтения, количество секторов | 1 - успешно, 0 - ошибка | Нет |
Блочные устройства | 2 | bool hal_blockdev_write(uuid_t device_id, uint64_t start_sector, void *buffer, size_t count) | Операция записи | UUID устройства, начальный сектор, буфер для записи, количество секторов | 1 - успешно, 0 - ошибка | Нет |
Блочные устройства | 3 | uint64_t hal_blockdev_get_size(uuid_t device_id) | Получить ёмкость устройства | UUID устройства | Размер накопителя | Нет |
Сервера | 0 | uuid_t hal_server_load(void (*func_ptr)(void *args), void *args) | Загрузить сервер | Указатель на точку входа, аргументы запуска | UUID сервера | Нет |
Сервера | 1 | bool hal_server_unload(uuid_t server_id) | Выгрузить сервер по UUID | UUID сервера | 1 - успешно, 0 - ошибка | Нет |
Сервера | 2 | bool hal_server_send_data(uuid_t server_id, const void *data, size_t size) | Отправить данные в сервер | UUID сервера, буфер, размер буфера | 1 - успешно, 0 - ошибка | Нет |
Сервера | 3 | bool hal_server_receive_data(uuid_t server_id, void *buffer, size_t size) | Получить данные из сервера | UUID сервера, буфер, размер буфера | 1 - успешно, 0 - ошибка | Нет |