API Синапс ОС

Материал из SynapseOS wiki
(перенаправлено с «API SynapseOS»)
Перейти к навигации Перейти к поиску

API более новых версий доступно только команде разработки и участникам раннего тестирования. После тестирования API будет изменено по результатам тестов и отзывам команды. Публикация состоится сразу после исправления вероятных недочетов при тестировании.

API Для Синапс ОС 0.4.1
Раздел Номер Функция Описание Аргументы Возвращаемое значение Коды ошибок
Ядро 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 - ошибка Нет