Board.KolibriOS.org

Official KolibriOS board
It is currently Wed Apr 24, 2019 9:19 am

All times are UTC+03:00




Post new topic  Reply to topic  [ 9 posts ] 
Author Message
PostPosted: Fri Oct 28, 2016 11:47 pm 
Offline

Joined: Sun Oct 30, 2011 6:43 pm
Posts: 1499
А указатель на контекст как передаётся?
Code:
Parameters:
  * eax = 69 - function number
  * ebx = 2 - subfunction number
  * ecx = thread identifier
  * edx = size of context structure, must be 0x28=40 bytes
Returned value:
  * function does not return value
Format of context structure is shown in the description of
subfunction 1.


Top
   
PostPosted: Sat Oct 29, 2016 1:10 am 
Offline
Mentor/Kernel Developer
User avatar

Joined: Thu Mar 26, 2015 5:16 pm
Posts: 1259
А в русской документации написано...


Top
   
PostPosted: Fri Nov 04, 2016 5:08 pm 
Offline

Joined: Sun Oct 30, 2011 6:43 pm
Posts: 1499
Ну в русской я нашёл
Quote:
* esi = указатель на структуру контекста

Вот только непонятно, какая теперь должна быть структура этого контекста.
Сейчас в документации написано так
Code:
Format of context structure: (FPU is not supported yet)
  * +0: dword: eip
  * +4: dword: eflags
  * +8: dword: eax
  * +12 = +0xC: dword: ecx
  * +16 = +0x10: dword: edx
  * +20 = +0x14: dword: ebx
  * +24 = +0x18: dword: esp
  * +28 = +0x1C: dword: ebp
  * +32 = +0x20: dword: esi
  * +36 = +0x24: dword: edi
Но документация давно не обновлялась, ведь теперь FPU уже поддерживается.


Top
   
PostPosted: Mon Nov 07, 2016 7:34 pm 
Offline

Joined: Sun Oct 30, 2011 6:43 pm
Posts: 1499
В дебаггере http://websvn.kolibrios.org/filedetails.php?repname=Kolibri+OS&path=%2Fprograms%2Fdevelop%2Fmtdbg%2Fmtdbg.asm&rev=6344#line-2462 у нас вот так
Code:
context:
_eip    dd ?
_eflags dd ?
_eax    dd ?
_ecx    dd ?
_edx    dd ?
_ebx    dd ?
_esp    dd ?
_ebp    dd ?
_esi    dd ?
_edi    dd ?
 
_ctx_flags:
        dd ?
        dd ?
 
_sse_flags:
 
 
_fcw    dw ?
_fsw    dw ?
_ftw    db ?
        db ?
_fop    dw ?
_fpu_ip dd ?
        dw ?
        dw ?
 
        dq ?
        dq ?
 
fpu_context:
mmx_context:
_st0:
_mm0:   rq 2
_st1:
_mm1:   rq 2
_st2:
_mm2:   rq 2
_st3:
_mm3:   rq 2
_st4:
_mm4:   rq 2
_st5:
_mm5:   rq 2
_st6:
_mm6:   rq 2
_st7:
_mm7:   rq 2
 
sse_context:
_xmm0   rq 2
_xmm1   rq 2
_xmm2   rq 2
_xmm3   rq 2
_xmm4   rq 2
_xmm5   rq 2
_xmm6   rq 2
_xmm7   rq 2
ctx_end:
Но, разумеется, нужны пояснения. Что за _ctx_flags, например?


Top
   
PostPosted: Fri Nov 11, 2016 9:14 pm 
Offline
Kernel Developer
User avatar

Joined: Thu Sep 03, 2009 1:52 pm
Posts: 1619
Ядро в _ctx_flags всегда пишет 1, в следующий dword - 0 с комментарием "reserved". Я подозреваю, чтобы можно было сигнализировать случай, когда SSE-контекста нет, ибо машина не поддерживает SSE.

_________________
Сделаем мир лучше!


Top
   
PostPosted: Tue Nov 15, 2016 3:11 pm 
Offline

Joined: Sun Oct 30, 2011 6:43 pm
Posts: 1499
CleverMouse, спасибо за объяснение.
Есть ещё безымянные поля.
Code:
_ftw    db ?
        db ?                  ; <----------

Code:
_fpu_ip dd ?
        dw ?                  ; <----------
        dw ?                  ; <----------
 
        dq ?                  ; <----------
        dq ?                  ; <----------


Top
   
PostPosted: Tue Nov 15, 2016 4:43 pm 
Offline
Kernel Developer

Joined: Wed Mar 08, 2006 6:25 pm
Posts: 3952
0CodErr
Поля из контекста fpu. Смотри описание fnsave/fxsave


Top
   
PostPosted: Tue Nov 15, 2016 4:48 pm 
Offline

Joined: Sun Oct 30, 2011 6:43 pm
Posts: 1499
Serge, понятно. А короткая версия(EIP, EFlags, EAX, ECX, EDX, EBX, ESP, EBP, ESI, EDI) по-прежнему поддерживается?


Top
   
PostPosted: Tue Nov 15, 2016 5:40 pm 
Offline
Kernel Developer

Joined: Wed Mar 08, 2006 6:25 pm
Posts: 3952
Да, зависит от размера контекста в edx. Если 40 байт, то контекст цпу. Если 48+288, то cpu+sse.


Top
   
Display posts from previous:  Sort by  
Post new topic  Reply to topic  [ 9 posts ] 

All times are UTC+03:00


Who is online

Users browsing this forum: No registered users and 4 guests


You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot post attachments in this forum

Search for:
Jump to:  
Powered by phpBB® Forum Software © phpBB Limited