Page 1 of 1

Функции, экспортируемые ядром

Posted: Thu Mar 03, 2022 8:33 am
by turbocat
Предлагаю здесь обсуждать удаление/добавление функций экспортируемых ядром для работы драйверов.

Начну пожалуй с этого:
Оказывается ныне удалённая структура TASKDATA из ядра продолжает использоваться ddk от Сержа. Как я понял она нужна была чтобы получить доступ к полю state, тем самым измениять состояние текущего процесса. Используется оно для W/W Mutex(честно говоря хз зачем и как оно работает, однако оно нужно для портов видеодров, да и Серж не стал бы замарачиваться будь это что то не важное). В любом случае сейчас эти мутексы работать не будут.

Что надо сделать: заменить на APPDATA. Но! В отличие от TASK_BASE, current_slot не имеет постоянного адреса и нужно создать функцию которая будет возвращать его значение и экспортировать из ядра.

Прикреплю патч ниже.

PS. Я обнаружил в экспорте функцию get_curr_task не дублирует ли она нужный мне функционал?

Re: Функции, экспортируемые ядром

Posted: Fri Mar 04, 2022 5:51 am
by Doczom
Предлагаю добавить функцию detach_int_handler и реализовать её, так как она сейчас является заглушкой(core/irq.inc)

Re: Функции, экспортируемые ядром

Posted: Thu Jun 09, 2022 8:32 am
by turbocat
Удалён неиспользуемый экспорт ядра "GetCurrentTask". Добавлен более полезный "GetCurrSlot" для получения APPDATA структуры текущего потока #9833.