Гость Опубликовано 1 сентября, 2001 Жалоба Поделиться Опубликовано 1 сентября, 2001 Разбирался в исходных кодах Linux 2.2.5: не понял следующее: ("Ядро Linux в комментариях") макрос current и функция GetCurrent в current.h а также в Entry.S GET_CURRENT #define GET_CURRENT(reg) \ movl %esp, reg; \ andl $-8192, reg; Это описывается как получение указателя на текущую структуру task_struct определяющую текущую задачу. При чем здесь стек и маскировка, что вообще происходит? Если кто объснит, пишите на kav2@aport.ru KAV Цитата Ссылка на комментарий Поделиться на другие сайты Поделиться
Гость Опубликовано 4 сентября, 2001 Жалоба Поделиться Опубликовано 4 сентября, 2001 указатели на структуру foo(%ebx) и foo(%esp) а вызов макроса в строке 174 возвращает указатель на текущую задачу читай страницы 345-346 Best regerds, LogRus Цитата Ссылка на комментарий Поделиться на другие сайты Поделиться
Гость Опубликовано 5 сентября, 2001 Жалоба Поделиться Опубликовано 5 сентября, 2001 Я понимаю, что это указатель на структуру task_strukt масссива структур, поддерживаемых ядром. По прерыванию уходим на обработчик. При прерывании на стеке eflags, cs, eip. Но как через esp получить task_strukt? Цитата Ссылка на комментарий Поделиться на другие сайты Поделиться
Гость Опубликовано 17 октября, 2001 Жалоба Поделиться Опубликовано 17 октября, 2001 get_current используется в режиме ядра соответственно в %esp стек текущего процесса режима ядра а по %esp & 0xffffe000 ядро хранит task_struct... так задумано... Цитата Ссылка на комментарий Поделиться на другие сайты Поделиться
Рекомендуемые сообщения
Присоединяйтесь к обсуждению
Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.