Главная страница


ru.linux

 
 - RU.LINUX ---------------------------------------------------------------------
 From : Oleg Drokin                          2:5020/400     23 May 2003  12:39:17
 To : "Martynenko Sergey"
 Subject : Re: к тем, кто понял current.h
 -------------------------------------------------------------------------------- 
 
 Hello!
 
 Martynenko Sergey <serjio@rosneft-tnp.ru> wrote:
 
 MS> точнее include/asm-i386/current.h
 MS> [skip]
 MS> __asm__("andl %%esp,%0; ":"=r" (current) : "" (~8191UL));
 MS> [skip]
 MS> очевидно, это кулевый хацкертцкий прием
 MS> вместо 'jz' пользовать 'and'
 MS> или я ошибаюсь ?
 
 Мы вычисляем адрес нашего task_struct (thread_info в 2.5) которое лежит на дне
 стека.
 
 MS> - а если стек сильно заполниться ?
 
 Если стек заполнился, значит все умрут, причем наверняка еще до того.
 
 MS>   (хотя чтоб ТАК заполниться ... 8-[ ]
 MS>   с другой стороны, зачем его настолько
 MS>   большим делать)
 
 8K - вполне нормально. при 4k были проблемы с переполнением, помнится мне.
 
 MS> - а если мусор в esp ?
 
 То все умрут еще раньше, опять же ;)
 
 MS> или, будте так добры, скажите чайнику :
 MS> зачем там 'and' ?
 
 Адрес task_struct получаем, мы знаем что оно лежит в начале второй страницы
 (первой на самом деле,
 но зависит с какой стороны считать)
 
 MS> P.S. насколько мне кажется этим 'and'-ом
 MS>      выражено что-то типа
 MS>      if (esp != 0)
 MS>         result = 8191UL
 MS>      else
 MS>         result = 0
 
 Hет.
 Мы просто сбрасываем у %esp первые 13 бит:
 result = $esp & ~((1UL<<13)-1);
 
 Bye,
     Oleg
 --- ifmail v.2.15dev5
  * Origin: Green's home news server (2:5020/400)
 
 

Вернуться к списку тем, сортированных по: возрастание даты  уменьшение даты  тема  автор 

 Тема:    Автор:    Дата:  
 к тем, кто понял current.h   Martynenko Sergey   23 May 2003 12:31:03 
 Re: к тем, кто понял current.h   Oleg Drokin   23 May 2003 12:39:17 
 Re: к тем, кто понял current.h   Martynenko Sergey   23 May 2003 12:48:29 
Архивное /ru.linux/15550651fe5f2.html, оценка 2 из 5, голосов 10
Яндекс.Метрика
Valid HTML 4.01 Transitional