Предлагаю здесь обсуждать удаление/добавление функций экспортируемых ядром для работы драйверов.
Начну пожалуй с этого:
Оказывается ныне удалённая структура TASKDATA из ядра продолжает использоваться ddk от Сержа. Как я понял она нужна была чтобы получить доступ к полю state, тем самым измениять состояние текущего процесса. Используется оно для W/W Mutex(честно говоря хз зачем и как оно работает, однако оно нужно для портов видеодров, да и Серж не стал бы замарачиваться будь это что то не важное). В любом случае сейчас эти мутексы работать не будут.
Что надо сделать: заменить на APPDATA. Но! В отличие от TASK_BASE, current_slot не имеет постоянного адреса и нужно создать функцию которая будет возвращать его значение и экспортировать из ядра.
Прикреплю патч ниже.
PS. Я обнаружил в экспорте функцию get_curr_task не дублирует ли она нужный мне функционал?
Функции, экспортируемые ядром
-
- Attachments
-
-
add_get_current_slot.patch (924 Bytes)Downloaded 130 times
-
Изобретайте колёса каждый раз, когда хотите написать новую программу.
Предлагаю добавить функцию detach_int_handler и реализовать её, так как она сейчас является заглушкой(core/irq.inc)
Удалён неиспользуемый экспорт ядра "GetCurrentTask". Добавлен более полезный "GetCurrSlot" для получения APPDATA структуры текущего потока #9833.
Изобретайте колёса каждый раз, когда хотите написать новую программу.
Who is online
Users browsing this forum: No registered users and 2 guests