forked from KolibriOS/kolibrios
update documentation
git-svn-id: svn://kolibrios.org@2090 a494cfbc-eb01-0410-851d-a64ba20cac60
This commit is contained in:
parent
b3a861cedd
commit
5ece1eb408
@ -1901,52 +1901,6 @@ dd 1675
|
||||
* ”ãªæ¨¨ à ¡®âë á ᮡëâ¨ï¬¨ ãç¨âë¢ îâ ¬ áªã ¬®¬¥â
|
||||
¢ë§®¢ äãªæ¨¨, ¥ ¬®¬¥â ¯®áâ㯫¥¨ï á®®¡é¥¨ï.
|
||||
|
||||
======================================================================
|
||||
================= ”ãªæ¨ï 41 - 㧠âì ¢« ¤¥«ìæ IRQ. =================
|
||||
======================================================================
|
||||
<EFBFBD> à ¬¥âàë:
|
||||
* eax = 41 - ®¬¥à äãªæ¨¨
|
||||
* ebx = ®¬¥à IRQ, 0..15
|
||||
‚®§¢à é ¥¬®¥ § 票¥:
|
||||
* eax = PID ¢« ¤¥«ìæ
|
||||
* eax = 0, ¥á«¨ ¢« ¤¥«ìæ ¥â
|
||||
* eax = -1 ¤«ï ¥ª®à४⮣® ebx
|
||||
|
||||
======================================================================
|
||||
========= ”ãªæ¨ï 42 - à ¡®â á ¤ 묨, ¯®«ãç¥ë¬¨ ¯® IRQ. =========
|
||||
======================================================================
|
||||
<EFBFBD>ਠ¢®§¨ª®¢¥¨¨ IRQ á¨á⥬ ¬®¦¥â áç¨âë¢ âì ¤ ë¥ ¨§ 㪠§ ëå
|
||||
à ¥¥ äãªæ¨¥© 44 ¯®à⮢ ¨ § ¯¨áë¢ âì í⨠¤ ë¥ ¢ ¡ãä¥à.
|
||||
|
||||
-------------------- <20>®¤äãªæ¨ï 0 - ç⥨¥ ¤ ëå --------------------
|
||||
<EFBFBD> à ¬¥âàë:
|
||||
* eax = 42 - ®¬¥à äãªæ¨¨
|
||||
* bl = ®¬¥à IRQ, 0..15
|
||||
* bh = 0 - ®¬¥à ¯®¤äãªæ¨¨
|
||||
* ®áâ «ì ï ç áâì ॣ¨áâà ebx ¤®«¦ ¡ëâì ®¡ã«¥
|
||||
* ecx = 㪠§ â¥«ì ¡ãä¥à à §¬¥à®¬ ¥ ¬¥¥¥ 4000 ¡ ©â
|
||||
‚®§¢à é ¥¬®¥ § 票¥: (á¨âã æ¨î ¬®¦® à §«¨ç¨âì ¯® § 票î eax)
|
||||
* ¥á«¨ ¯®â®ª ¥ ï¥âáï ¢« ¤¥«ì楬 IRQ
|
||||
(¨«¨ ®¬¥à IRQ § ¤ ¥¢¥à®): eax = -1
|
||||
* ¥á«¨ ¤ ëå ¥â: eax = 0
|
||||
* ¥á«¨ ¢áñ ¢ ¯®à浪¥ ¨ ¤ ë¥ ¡ë«¨:
|
||||
eax = à §¬¥à ¤ ëå, ¯à®ç¨â ëå ¨§ ¡ãä¥à (¢ ¡ ©â å)
|
||||
|
||||
------------ <20>®¤äãªæ¨ï 1 - 㧠âì à §¬¥à ¤ ëå ¢ ¡ãä¥à¥ ------------
|
||||
<EFBFBD> à ¬¥âàë:
|
||||
* eax = 42 - ®¬¥à äãªæ¨¨
|
||||
* bl = ®¬¥à IRQ, 0..15
|
||||
* bh = 1 - ®¬¥à ¯®¤äãªæ¨¨
|
||||
* ®áâ «ì ï ç áâì ॣ¨áâà ebx ¤®«¦ ¡ëâì ®¡ã«¥
|
||||
‚®§¢à é ¥¬®¥ § 票¥:
|
||||
* ¥á«¨ ¯®â®ª ¥ ï¥âáï ¢« ¤¥«ì楬 IRQ
|
||||
(¨«¨ ®¬¥à IRQ § ¤ ¥¢¥à®): eax = -1
|
||||
* ¨ ç¥ eax = à §¬¥à ¤ ëå ¢ ¡ãä¥à¥
|
||||
‡ ¬¥ç ¨ï:
|
||||
* <20>।¢ à¨â¥«ì® ¯®â®ª ¤®«¦¥ § १¥à¢¨à®¢ âì ¤«ï ᥡï 㪠§ ë© IRQ
|
||||
äãªæ¨¥© 45.
|
||||
* <20> §¬¥à ¡ãä¥à ¤«ï ¤ ëå - 4000 ¡ ©â, ¯à¨ ¯¥à¥¯®«¥¨¨
|
||||
"ᢥ¦¨¥" ¤ ë¥ ¯¥à¥áâ îâ § ¯¨áë¢ âìáï ¢ ¡ãä¥à.
|
||||
|
||||
======================================================================
|
||||
=================== ”ãªæ¨ï 43 - ¢¢®¤/¢ë¢®¤ ¢ ¯®àâ. ==================
|
||||
@ -1977,48 +1931,6 @@ dd 1675
|
||||
¡ëáâ॥ ¨ ¥áª®«ìª® ª®à®ç¥ ¨ ¯à®é¥. ˆ§ ¥§ १¥à¢¨à®¢ ëå
|
||||
¯®à⮢ ç¨â âì ¢áñ à ¢® ¥«ì§ï.
|
||||
|
||||
======================================================================
|
||||
======== ”ãªæ¨ï 44 - ®¯à¥¤¥«¨âì ¤¥©áâ¢¨ï ¯à¨ ¯®áâ㯫¥¨¨ IRQ. =======
|
||||
======================================================================
|
||||
<EFBFBD>ਠ¢®§¨ª®¢¥¨¨ IRQ á¨á⥬ ¬®¦¥â áç¨âë¢ âì ¤ ë¥ ¨§ 㪠§ ëå í⮩
|
||||
äãªæ¨¥© ¯®à⮢ ¨ § ¯¨áë¢ âì í⨠¤ ë¥ ¢ ¡ãä¥à, ®âªã¤ ¨å ¬®¦®
|
||||
¯à®ç¨â âì äãªæ¨¥© 42.
|
||||
<EFBFBD> à ¬¥âàë:
|
||||
* eax = 44 - ®¬¥à äãªæ¨¨
|
||||
* ebx = 㪠§ â¥«ì ¬ áᨢ áâàãªâãà, ®¯¨áë¢ îé¨å ¯® ®¤®¬ã ¯®àâã:
|
||||
* +0: word: 0 ®§ ç ¥â ª®¥æ ¬ áᨢ , ¨ ç¥ ®¬¥à ¯®àâ
|
||||
* +2: byte: § १¥à¢¨à®¢ ® (¨£®à¨àã¥âáï)
|
||||
* +3: byte: 1=áç¨âë¢ âì ¡ ©â ¨§ í⮣® ¯®àâ , 2=áç¨âë¢ âì á«®¢®
|
||||
* ecx = ®¬¥à IRQ, 0..15
|
||||
‚®§¢à é ¥¬®¥ § 票¥:
|
||||
* eax = 0 - ãᯥè®
|
||||
* eax = 1 - ¯®â®ª ¥ ï¥âáï ¢« ¤¥«ì楬 㪠§ ®£® IRQ
|
||||
‡ ¬¥ç ¨ï:
|
||||
* <20>।¢ à¨â¥«ì® ¯®â®ª ¤®«¦¥ § १¥à¢¨à®¢ âì § ᮡ®©
|
||||
㪠§ë¢ ¥¬ë© IRQ äãªæ¨¥© 45.
|
||||
* <20>ਨ¬ îâáï ¢® ¢¨¬ ¨¥ ⮫쪮 ¯¥à¢ë¥ 16 ¯®à⮢.
|
||||
* ’¥ªãé ï ॠ«¨§ æ¨ï à áᬠâਢ ¥â ¥¯à ¢¨«ì®¥ § 票¥ ¯®«ï +3
|
||||
ª ª ᨣ « ¯à¥ªà é¥¨ï ®¡à ¡®âª¨ IRQ.
|
||||
|
||||
======================================================================
|
||||
============ ”ãªæ¨ï 45 - § १¥à¢¨à®¢ âì/®á¢®¡®¤¨âì IRQ. ============
|
||||
======================================================================
|
||||
<EFBFBD> à ¬¥âàë:
|
||||
* eax = 45 - ®¬¥à äãªæ¨¨
|
||||
* ebx = 0 - § १¥à¢¨à®¢ âì, 1 = ®á¢®¡®¤¨âì
|
||||
* ecx = ®¬¥à IRQ, 0..15
|
||||
‚®§¢à é ¥¬®¥ § 票¥:
|
||||
* eax = 0 - ãᯥè®
|
||||
* eax = 1 - ®è¨¡ª (¥¢¥àë© ®¬¥à IRQ ¨«¨
|
||||
¯®¯ë⪠§ १¥à¢¨à®¢ âì ¥á¢®¡®¤ë© IRQ ¨«¨ ®á¢®¡®¤¨âì IRQ, ¥
|
||||
§ १¥à¢¨à®¢ ë© â¥ªã騬 ¯®â®ª®¬)
|
||||
‡ ¬¥ç ¨ï:
|
||||
* <20>¥§¥à¢¨à®¢ ¨¥ IRQ 㦮 ¤«ï à ¡®âë äãªæ¨© 42 ¨ 44.
|
||||
* ’®«ìª® ®¤¨ ¯®â®ª ¬®¦¥â § १¥à¢¨à®¢ âì ª®ªà¥âë© IRQ.
|
||||
* IRQ, ®¡à ¡ âë¢ ¥¬ë¥ á¨á⥬®© á ¬®áâ®ï⥫ì®, १¥à¢¨àãîâáï
|
||||
á¨á⥬®© (¯®â®ª®¬ 1) ¯à¨ § £à㧪¥.
|
||||
* <20>ਠ§ ¢¥à襨¨ ¯®â®ª ¢â®¬ â¨ç¥áª¨ ®á¢®¡®¦¤ îâáï
|
||||
¢á¥ § १¥à¢¨à®¢ ë¥ ¨¬ IRQ.
|
||||
|
||||
======================================================================
|
||||
= ”ãªæ¨ï 46 - § १¥à¢¨à®¢ âì/®á¢®¡®¤¨âì £à㯯㠯®à⮢ ¢¢®¤ /¢ë¢®¤ .
|
||||
|
@ -1877,53 +1877,6 @@ Remarks:
|
||||
* Event functions take into account the mask on moment of
|
||||
function call, not on moment of event arrival.
|
||||
|
||||
======================================================================
|
||||
==================== Function 41 - get IRQ owner. ====================
|
||||
======================================================================
|
||||
Parameters:
|
||||
* eax = 41 - function number
|
||||
* ebx = IRQ number, 0..15
|
||||
Returned value:
|
||||
* eax = owner PID
|
||||
* eax = 0, if there is no owner
|
||||
* eax = -1 for incorrect ebx
|
||||
|
||||
======================================================================
|
||||
================== Function 42 - work with IRQ data. =================
|
||||
======================================================================
|
||||
When an IRQ occurs, the system reads data from ports indicated
|
||||
earlier by function 44 and writes this data to
|
||||
internal buffer. This function reads out data from that buffer.
|
||||
|
||||
--------------------- Subfunction 0 - read data ----------------------
|
||||
Parameters:
|
||||
* eax = 42 - function number
|
||||
* bl = IRQ number, 0..15
|
||||
* bh = 0 - subfunction number
|
||||
* rest of ebx must be zeroed
|
||||
* ecx = pointer to a buffer with size not less than 4000 bytes
|
||||
Returned value: (use value of eax to distinguish)
|
||||
* if the thread is not IRQ owner
|
||||
(or IRQ number is incorrect): eax = -1
|
||||
* if there is no data: eax = 0
|
||||
* if all is ok:
|
||||
eax = size of data read (in bytes)
|
||||
|
||||
------------- Subfunction 1 - get size of data in buffer -------------
|
||||
Parameters:
|
||||
* eax = 42 - function number
|
||||
* bl = IRQ number, 0..15
|
||||
* bh = 0 - subfunction number
|
||||
* rest of ebx must be zeroed
|
||||
Returned value:
|
||||
* if the thread is not IRQ owner
|
||||
(or IRQ number is incorrect): eax = -1
|
||||
* otherwise eax = size of data in buffer
|
||||
Remarks:
|
||||
* Previously the thread must reserve indicated IRQ for itself
|
||||
by function 45.
|
||||
* The size of data buffer is 4000 bytes, on overflow
|
||||
"fresh" data cease to be written in the buffer.
|
||||
|
||||
======================================================================
|
||||
================ Function 43 - input/output to a port. ===============
|
||||
@ -1953,48 +1906,6 @@ Remarks:
|
||||
processor instructions in/out - this is much
|
||||
faster and a bit shorter and easier.
|
||||
|
||||
======================================================================
|
||||
=========== Function 44 - define operations at IRQ arrival. ==========
|
||||
======================================================================
|
||||
At IRQ arrival the system can read the data from ports defined
|
||||
by this function and write these data to internal buffer, whence
|
||||
they can be read by ôóíêöèåé 42.
|
||||
Parameters:
|
||||
* eax = 44 - function number
|
||||
* ebx = pointer to the array of structures each describing one port:
|
||||
* +0: word: 0 means end of array, otherwise port number
|
||||
* +2: byte: reserved (ignored)
|
||||
* +3: byte: 1=read byte from this port, 2=read word
|
||||
* ecx = IRQ number, 0..15
|
||||
Returned value:
|
||||
* eax = 0 - success
|
||||
* eax = 1 - the thread is not owner of selected IRQ
|
||||
Remarks:
|
||||
* Previously the thread must reserve for itself selected IRQ
|
||||
by function 45.
|
||||
* First 16 ports are considered only.
|
||||
* The current implementation considers incorrect value of field +3
|
||||
as a signal to terminate IRQ processing.
|
||||
|
||||
======================================================================
|
||||
=================== Function 45 - reserve/free IRQ. ==================
|
||||
======================================================================
|
||||
Parameters:
|
||||
* eax = 45 - function number
|
||||
* ebx = 0 - reserve, 1 = free
|
||||
* ecx = IRQ number, 0..15
|
||||
Returned value:
|
||||
* eax = 0 - success
|
||||
* eax = 1 - error (invalid IRQ number
|
||||
or attempt to reserve not free IRQ
|
||||
or to free IRQ, not reserved by this thread)
|
||||
Remarks:
|
||||
* IRQ reservation is required for functions 42 and 44.
|
||||
* Only one thread can reserve the specific IRQ.
|
||||
* IRQs, handled by the system itself, are reserved by the system
|
||||
(thread 1) at booting.
|
||||
* When a thread terminates, all reserved by it IRQs
|
||||
are freed automatically.
|
||||
|
||||
======================================================================
|
||||
====== Function 46 - reserve/free a group of input/output ports. =====
|
||||
|
Loading…
Reference in New Issue
Block a user