forked from KolibriOS/kolibrios
destroy shared memory. update docs
git-svn-id: svn://kolibrios.org@945 a494cfbc-eb01-0410-851d-a64ba20cac60
This commit is contained in:
parent
31f5bf31ed
commit
34c30dea68
@ -1149,25 +1149,32 @@ destroy_smap:
|
|||||||
pushfd
|
pushfd
|
||||||
cli
|
cli
|
||||||
|
|
||||||
push ebx
|
push esi
|
||||||
mov ebx, eax
|
push edi
|
||||||
|
|
||||||
mov eax, [eax+SMAP.base]
|
mov edi, eax
|
||||||
test eax, eax
|
mov esi, [eax+SMAP.parent]
|
||||||
jz @F
|
test esi, esi
|
||||||
|
jz .done
|
||||||
|
|
||||||
stdcall user_free, eax
|
lock dec [esi+SMEM.refcount]
|
||||||
@@:
|
jnz .done
|
||||||
mov eax, [ebx+SMAP.parent]
|
|
||||||
test eax, eax
|
|
||||||
jz @F
|
|
||||||
|
|
||||||
lock dec [eax+SMEM.refcount]
|
mov ecx, [esi+SMEM.bk]
|
||||||
@@:
|
mov edx, [esi+SMEM.fd]
|
||||||
mov eax, ebx
|
|
||||||
|
mov [ecx+SMEM.fd], edx
|
||||||
|
mov [edx+SMEM.bk], ecx
|
||||||
|
|
||||||
|
stdcall kernel_free, [esi+SMEM.base]
|
||||||
|
mov eax, esi
|
||||||
|
call free
|
||||||
|
.done:
|
||||||
|
mov eax, edi
|
||||||
call destroy_kernel_object
|
call destroy_kernel_object
|
||||||
|
|
||||||
pop ebx
|
pop edi
|
||||||
|
pop esi
|
||||||
popfd
|
popfd
|
||||||
|
|
||||||
ret
|
ret
|
||||||
@ -1395,6 +1402,8 @@ proc shmem_close stdcall, name:dword
|
|||||||
|
|
||||||
push esi
|
push esi
|
||||||
push edi
|
push edi
|
||||||
|
pushfd
|
||||||
|
cli
|
||||||
|
|
||||||
mov esi, [current_slot]
|
mov esi, [current_slot]
|
||||||
add esi, APP_OBJ_OFFSET
|
add esi, APP_OBJ_OFFSET
|
||||||
@ -1419,8 +1428,11 @@ proc shmem_close stdcall, name:dword
|
|||||||
test eax, eax
|
test eax, eax
|
||||||
jne .next
|
jne .next
|
||||||
|
|
||||||
|
stdcall user_free, [esi+SMAP.base]
|
||||||
|
|
||||||
call [esi+APPOBJ.destroy]
|
call [esi+APPOBJ.destroy]
|
||||||
@@:
|
@@:
|
||||||
|
popfd
|
||||||
pop edi
|
pop edi
|
||||||
pop esi
|
pop esi
|
||||||
.fail:
|
.fail:
|
||||||
|
@ -1024,10 +1024,8 @@ f68call:
|
|||||||
dd f68.22
|
dd f68.22
|
||||||
dd f68.23
|
dd f68.23
|
||||||
|
|
||||||
|
|
||||||
align 4
|
align 4
|
||||||
f68:
|
f68:
|
||||||
|
|
||||||
cmp eax,4
|
cmp eax,4
|
||||||
jle sys_sheduler
|
jle sys_sheduler
|
||||||
|
|
||||||
@ -1038,13 +1036,11 @@ f68:
|
|||||||
ja .fail
|
ja .fail
|
||||||
|
|
||||||
jmp dword [f68call+eax*4-11*4]
|
jmp dword [f68call+eax*4-11*4]
|
||||||
|
|
||||||
.11:
|
.11:
|
||||||
call init_heap
|
call init_heap
|
||||||
mov [esp+36], eax
|
mov [esp+36], eax
|
||||||
ret
|
ret
|
||||||
.12:
|
.12:
|
||||||
|
|
||||||
stdcall user_alloc, ebx
|
stdcall user_alloc, ebx
|
||||||
mov [esp+36], eax
|
mov [esp+36], eax
|
||||||
ret
|
ret
|
||||||
|
@ -2204,11 +2204,11 @@ dword-
|
|||||||
‡ ¬¥ç ¨ï:
|
‡ ¬¥ç ¨ï:
|
||||||
* ‘âàãªâãà â ¡«¨æë 梥⮢ ®¯¨á ¢ áâ ¤ à⮬ ¢ª«îç ¥¬®¬ ä ©«¥
|
* ‘âàãªâãà â ¡«¨æë 梥⮢ ®¯¨á ¢ áâ ¤ à⮬ ¢ª«îç ¥¬®¬ ä ©«¥
|
||||||
macros.inc ¯®¤ §¢ ¨¥¬ system_colors; ¯à¨¬¥à, ¬®¦® ¯¨á âì:
|
macros.inc ¯®¤ §¢ ¨¥¬ system_colors; ¯à¨¬¥à, ¬®¦® ¯¨á âì:
|
||||||
sc system_colors ; ®¡ê¥¨¥ ¯¥à¥¬¥®©
|
sc system_colors ; ®¡ê¥¨¥ ¯¥à¥¬¥®©
|
||||||
... ; £¤¥-â® ¤® ¢ë§¢ âì
|
... ; £¤¥-â® ¤® ¢ë§¢ âì
|
||||||
; ®¯¨áë¢ ¥¬ãî äãªæ¨î á ecx=sc
|
; ®¯¨áë¢ ¥¬ãî äãªæ¨î á ecx=sc
|
||||||
mov ecx, [sc.work_button_text] ; ç¨â ¥¬ 梥â ⥪áâ
|
mov ecx, [sc.work_button_text] ; ç¨â ¥¬ 梥â ⥪áâ
|
||||||
; ª®¯ª¥ ¢ à ¡®ç¥© ®¡« áâ¨
|
; ª®¯ª¥ ¢ à ¡®ç¥© ®¡« áâ¨
|
||||||
* ˆá¯®«ì§®¢ ¨¥/¥¨á¯®«ì§®¢ ¨¥ íâ¨å 梥⮢ - ¤¥«® ¨áª«îç¨â¥«ì®
|
* ˆá¯®«ì§®¢ ¨¥/¥¨á¯®«ì§®¢ ¨¥ íâ¨å 梥⮢ - ¤¥«® ¨áª«îç¨â¥«ì®
|
||||||
á ¬®© ¯à®£à ¬¬ë. „«ï ¨á¯®«ì§®¢ ¨ï 㦮 ¯à®áâ® ¯à¨ ¢ë§®¢¥ äãªæ¨©
|
á ¬®© ¯à®£à ¬¬ë. „«ï ¨á¯®«ì§®¢ ¨ï 㦮 ¯à®áâ® ¯à¨ ¢ë§®¢¥ äãªæ¨©
|
||||||
à¨á®¢ ¨ï 㪠§ë¢ âì 梥â, ¢§ïâë© ¨§ í⮩ â ¡«¨æë.
|
à¨á®¢ ¨ï 㪠§ë¢ âì 梥â, ¢§ïâë© ¨§ í⮩ â ¡«¨æë.
|
||||||
@ -3183,10 +3183,10 @@ IPC
|
|||||||
<EFBFBD>à®£à ¬¬¥ ¤®áâã¯ë ¤ ë¥ £à ä¨ç¥áª®£® íªà (®¡« áâì ¯ ¬ïâ¨, ª®â®à ï
|
<EFBFBD>à®£à ¬¬¥ ¤®áâã¯ë ¤ ë¥ £à ä¨ç¥áª®£® íªà (®¡« áâì ¯ ¬ïâ¨, ª®â®à ï
|
||||||
ᮡá⢥® ¨ ®â®¡à ¦ ¥â ᮤ¥à¦¨¬®¥ íªà ) ¯àï¬ãî ¡¥§ ¢ë§®¢®¢
|
ᮡá⢥® ¨ ®â®¡à ¦ ¥â ᮤ¥à¦¨¬®¥ íªà ) ¯àï¬ãî ¡¥§ ¢ë§®¢®¢
|
||||||
á¨á⥬ëå äãªæ¨© ç¥à¥§ ᥫ¥ªâ®à gs:
|
á¨á⥬ëå äãªæ¨© ç¥à¥§ ᥫ¥ªâ®à gs:
|
||||||
mov eax, [gs:0]
|
mov eax, [gs:0]
|
||||||
¯®¬¥áâ¨â ¢ eax ¯¥à¢ë© dword ¡ãä¥à , ᮤ¥à¦ 騩 ¨ä®à¬ æ¨î ® 梥â¥
|
¯®¬¥áâ¨â ¢ eax ¯¥à¢ë© dword ¡ãä¥à , ᮤ¥à¦ 騩 ¨ä®à¬ æ¨î ® 梥â¥
|
||||||
«¥¢®© ¢¥à奩 â®çª¨ (¨, ¢®§¬®¦®, 梥⠥᪮«ìª¨å á«¥¤ãîé¨å).
|
«¥¢®© ¢¥à奩 â®çª¨ (¨, ¢®§¬®¦®, 梥⠥᪮«ìª¨å á«¥¤ãîé¨å).
|
||||||
mov [gs:0], eax
|
mov [gs:0], eax
|
||||||
¯à¨ à ¡®â¥ ¢ ०¨¬ å VESA c LFB
|
¯à¨ à ¡®â¥ ¢ ०¨¬ å VESA c LFB
|
||||||
ãáâ ®¢¨â 梥⠫¥¢®© ¢¥à奩 â®çª¨
|
ãáâ ®¢¨â 梥⠫¥¢®© ¢¥à奩 â®çª¨
|
||||||
(¨ ¢®§¬®¦®, 梥⠥᪮«ìª¨å á«¥¤ãîé¨å).
|
(¨ ¢®§¬®¦®, 梥⠥᪮«ìª¨å á«¥¤ãîé¨å).
|
||||||
@ -3814,6 +3814,66 @@ Architecture Software Developer's Manual, Volume 3, Appendix B);
|
|||||||
* ‘®¤¥à¦¨¬®¥ ¯ ¬ï⨠¢¯«®âì ¤® ¨¬¥ì襣® ¨§ áâ ண® ¨ ®¢®£®
|
* ‘®¤¥à¦¨¬®¥ ¯ ¬ï⨠¢¯«®âì ¤® ¨¬¥ì襣® ¨§ áâ ண® ¨ ®¢®£®
|
||||||
à §¬¥à®¢ á®åà ï¥âáï.
|
à §¬¥à®¢ á®åà ï¥âáï.
|
||||||
|
|
||||||
|
===========================================================================
|
||||||
|
====== ”ãªæ¨ï 68, ¯®¤äãªæ¨ï 22 - ®âªàëâì ¨¬¥®¢ ãî ®¡« áâì ¯ ¬ïâ¨. =====
|
||||||
|
===========================================================================
|
||||||
|
|
||||||
|
<EFBFBD> à ¬¥âàë
|
||||||
|
* eax = 68 - ®¬¥à äãªæ¨¨
|
||||||
|
* ebx = 22 - ®¬¥à ¯®¤äãªæ¨¨
|
||||||
|
* ecx = ¨¬ï ®¡« áâ¨. Œ ªá¨¬ã¬ 32 ᨬ¢®« ¢ª«îç ï § ¢¥àè î騩 ®«ì
|
||||||
|
* edx = à §¬¥à ®¡« á⨠¢ ¡ ©â å ¤«ï SHM_CREATE ¨ SHM_OPEN_ALWAYS
|
||||||
|
* esi = ä« £¨ ®âªàëâ¨ï ¨ ¤®áâã¯
|
||||||
|
|
||||||
|
SHM_OPEN = 0x00
|
||||||
|
SHM_OPEN_ALWAYS = 0x04
|
||||||
|
SHM_CREATE = 0x08
|
||||||
|
SHM_READ = 0x00
|
||||||
|
SHM_WRITE = 0x01
|
||||||
|
|
||||||
|
SHM_CREATE - ᮧ¤ âì ®¢ãî ®¡« áâì ¯ ¬ïâ¨. …᫨ ®¡« áâì á
|
||||||
|
â ª¨¬ ¨¬¥¥¬ 㦥 áãé¥áâ¢ã¥â äãªæ¨ï ¢¥àñâ ª®¤ ®è¨¡ª¨ E_ACCESS
|
||||||
|
SHM_OPEN_ALWAYS - ®âªàë¢ ¥â áãé¥áâ¢ãîéãî ¨«¨ ᮧ¤ ñâ ®¢ãî
|
||||||
|
®¡« áâì ¯ ¬ïâ¨.
|
||||||
|
SHM_OPEN - ®âªàë¢ ¥â áãé¥áâ¢ãîéãî ®¡« áâì ¯ ¬ïâ¨. …᫨
|
||||||
|
®¡« áâì á â ª¨¬ ¨¬¥¥¬ ¥ áãé¥áâ¢ã¥â äãªæ¨ï ¢¥àñâ ª®¤
|
||||||
|
®è¨¡ª¨ E_NOTFOUND.
|
||||||
|
|
||||||
|
SHM_READ - ¤®áâ㯠⮫쪮 ç⥨¥.
|
||||||
|
SHM_WRITE - ¤®áâ㯠ç⥨¥ ¨ § ¯¨áì.
|
||||||
|
|
||||||
|
‚®§¢à é ¥¬ë¥ § 票ï:
|
||||||
|
* eax = 㪠§ â¥«ì ®¡« áâì ¯ ¬ï⨠¨«¨ ®«ì ¢ á«ãç ¥ ®è¨¡ª¨
|
||||||
|
* edx = ¥á«¨ ®¢ ï ®¡« áâì ᮧ¤ ñâáï SHM_CREATE ¨«¨ SHM_OPEN_ALWAYS
|
||||||
|
®«ì ¢ á«ãç ¥ ãá¯¥å ¨«¨ ª®¤ ®è¨¡ª¨.
|
||||||
|
¥á«¨ áãé¥áâ¢ãîé ï ®¡« áâì ®âªàë¢ ¥âáï SHM_OPEN ¨«¨ SHM_OPEN_ALWAYS
|
||||||
|
à §¬¥à ®¡« á⨠¢ ¡ ©â å ¨«¨ ª®¤ ®è¨¡ª¨
|
||||||
|
|
||||||
|
Š®¤ë ®è¨¡®ª:
|
||||||
|
* E_NOTFOUND = 5
|
||||||
|
* E_ACCESS = 10
|
||||||
|
* E_NOMEM = 30
|
||||||
|
* E_PARAM = 33
|
||||||
|
|
||||||
|
‡ ¬¥ç ¨ï:
|
||||||
|
* …᫨ ᮧ¤ ñâáï ®¢ ï ®¡« áâì â® ä« £¨ ¤®áâ㯠ãáâ ¢«¨¢ îâ
|
||||||
|
¬ ªá¨¬ «ìë¥ ¯à ¢ ¤®áâ㯠¤«ï ®áâ «ìëå ¯à®æ¥áᮢ.
|
||||||
|
* <20>®¤¨â¥«ì᪨© ¯à®æ¥áá ¢á¥£¤ ¨¬¥¥â ¤®áâ㯠§ ¯¨áì.
|
||||||
|
|
||||||
|
|
||||||
|
===========================================================================
|
||||||
|
====== ”ãªæ¨ï 68, ¯®¤äãªæ¨ï 22 - § ªàëâì ¨¬¥®¢ ãî ®¡« áâì ¯ ¬ïâ¨. =====
|
||||||
|
===========================================================================
|
||||||
|
|
||||||
|
<EFBFBD> à ¬¥âàë
|
||||||
|
* eax = 68 - ®¬¥à äãªæ¨¨
|
||||||
|
* ebx = 23 - ®¬¥à ¯®¤äãªæ¨¨
|
||||||
|
* ecx = ¨¬ï ®¡« áâ¨. Œ ªá¨¬ã¬ 32 ᨬ¢®« ¢ª«îç ï § ¢¥àè î騩 ®«ì
|
||||||
|
|
||||||
|
‚®§¢à é ¥¬®¥ § 票¥:
|
||||||
|
* ¥ ®¯à¥¤¥«¥®
|
||||||
|
|
||||||
|
|
||||||
======================================================================
|
======================================================================
|
||||||
======================== ”ãªæ¨ï 69 - ®â« ¤ª . =======================
|
======================== ”ãªæ¨ï 69 - ®â« ¤ª . =======================
|
||||||
======================================================================
|
======================================================================
|
||||||
@ -3881,7 +3941,7 @@ Architecture Software Developer's Manual, Volume 3, Appendix B);
|
|||||||
¨ ¯à¨ ¯®áâ㯫¥¨¨ ®¢®£® á®®¡é¥¨ï á¨á⥬ ¡ã¤¥â ¦¤ âì.
|
¨ ¯à¨ ¯®áâ㯫¥¨¨ ®¢®£® á®®¡é¥¨ï á¨á⥬ ¡ã¤¥â ¦¤ âì.
|
||||||
„«ï á¨åந§ 樨 ®¡à ¬«ï©â¥ ¢áî à ¡®âã á ¡ãä¥à®¬ ®¯¥à æ¨ï¬¨
|
„«ï á¨åந§ 樨 ®¡à ¬«ï©â¥ ¢áî à ¡®âã á ¡ãä¥à®¬ ®¯¥à æ¨ï¬¨
|
||||||
¡«®ª¨à®¢ª¨/à §¡«®ª¨à®¢ª¨
|
¡«®ª¨à®¢ª¨/à §¡«®ª¨à®¢ª¨
|
||||||
neg [bufsize]
|
neg [bufsize]
|
||||||
* „ ë¥ ¢ ¡ãä¥à¥ âà ªâãîâáï ª ª ¬ áᨢ í«¥¬¥â®¢ ¯¥à¥¬¥®© ¤«¨ë -
|
* „ ë¥ ¢ ¡ãä¥à¥ âà ªâãîâáï ª ª ¬ áᨢ í«¥¬¥â®¢ ¯¥à¥¬¥®© ¤«¨ë -
|
||||||
á®®¡é¥¨©. ”®à¬ â á®®¡é¥¨ï 㪠§ ¢ ®¡é¥¬ ®¯¨á ¨¨.
|
á®®¡é¥¨©. ”®à¬ â á®®¡é¥¨ï 㪠§ ¢ ®¡é¥¬ ®¯¨á ¨¨.
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user