Files
oldlinux-files/docs/interrupts/int-html/rb-5287.htm
2024-02-19 00:23:35 -05:00

714 lines
32 KiB
HTML

<HTML>
<HEAD>
<TITLE>Int 2F/AX=C000h
</TITLE>
<META NAME="Description" CONTENT="
Int 2F/AX=C000h - Novell ODI Link Support Layer (LSL.COM) - INSTALLATION CHECK -
AX = C000h
Return: AL = FFh if installed
DX:BX - FAR entry point (see #02986,#02987,#02988)
ES:SI - signature string LINKSUP$
Range: AH=C0h to AH=FFh, selected by scanning for first free multiplex number
Note: on return, ES = DX for LSL v1.10 and v2.05; LSL makes use of this in
its search for a previous installation
SeeAlso: AX=5100h,AX=C000hNESL
(Table 02986)
">
<META NAME="robots" CONTENT="none">
</HEAD>
<BODY BGCOLOR="#FFD0A0">
<center>
<h2>Int 2F/AX=C000h
</h2>
</center><p>
<table border=1 cellpadding=3 cellspacing=1>
<td>
<a href="rb-5286.htm" tppabs="http://www.ctyme.com/intr/rb-5286.htm">
<img src="lup.gif" tppabs="http://graphics.ctyme.com/gif/lup.gif" border=0 alt=Prev></a>
<a href="rb-5288.htm" tppabs="http://www.ctyme.com/intr/rb-5288.htm">
<img src="ldown.gif" tppabs="http://graphics.ctyme.com/gif/ldown.gif" border=0 alt=Next></a>
<a href="javascript:if(confirm('http://www.ctyme.com/rbrown.htm \n\nThis file was not retrieved by Teleport Pro, because it is addressed on a domain or path outside the boundaries set for its Starting Address. \n\nDo you want to open it from the server?'))window.location='http://www.ctyme.com/rbrown.htm'" tppabs="http://www.ctyme.com/rbrown.htm">
<img src="lhome.gif" tppabs="http://graphics.ctyme.com/gif/lhome.gif" border=0 alt=Ralf Brown Page></a>
<td><a href="int.htm" tppabs="http://www.ctyme.com/intr/int.htm">Interrups</a></td>
<td><a href="cat.htm" tppabs="http://www.ctyme.com/intr/cat.htm">Categories</a></td>
<td><a href="alpha.htm" tppabs="http://www.ctyme.com/intr/alpha.htm">Contents</a></td>
</td></table><p>
<p><img src="rbline.gif" tppabs="http://graphics.ctyme.com/gif/rbline.gif" width="100%" alt="------"><p>
<h3><font color=#C00040>Novell ODI Link Support Layer (LSL.COM) - INSTALLATION CHECK</font></h3>
<PRE>
AX = C000h<br>
<p><b>Return:</b><br>AL = FFh if installed
DX:BX -> FAR entry point <a href="javascript:if(confirm('http://www.ctyme.com/intr/rb-0000.htm \n\nThis file was not retrieved by Teleport Pro, because it was unavailable, or its retrieval was aborted, or the project was stopped too soon. \n\nDo you want to open it from the server?'))window.location='http://www.ctyme.com/intr/rb-0000.htm#Table0'" tppabs="http://www.ctyme.com/intr/rb-0000.htm#Table0"></a>(see #02986,#02987,#02988)
ES:SI -> signature string "LINKSUP$"
<p><b>Range:</b><br>AH=C0h to AH=FFh, selected by scanning for first free multiplex number
</PRE>
<p><b>Note:</b>
On return, ES = DX for LSL v1.10 and v2.05; LSL makes use of this in
its search for a previous installation
<p><b>See Also:</b>
<a href="rb-4876.htm" tppabs="http://www.ctyme.com/intr/rb-4876.htm">AX=5100h</a> - <a href="rb-5288.htm" tppabs="http://www.ctyme.com/intr/rb-5288.htm">AX=C000h"NESL"</a>
<PRE>
<p>
<a name=table2986></a>
(Table 02986)
Call LSL function "Request MLID Registration" with:.
BX = 0001h.
ES:SI -> registration??? record <a href="rb-5287.htm#Table2990" tppabs="http://www.ctyme.com/intr/rb-5287.htm#Table2990">(see #02990)</a>.
DS:DI -> buffer for LSL information block <a href="rb-5287.htm#Table2991" tppabs="http://www.ctyme.com/intr/rb-5287.htm#Table2991">(see #02991)</a><br>
<p><b>Return:</b><br>AX = completion code (0000h,8001h) (see #02989)
DS:DI buffer filled if successful
BX,CX corrupted
</PRE>
<p><b>Note:</b>
See "Novell LAN Driver Developer's Guide, Volume III" for more details
<PRE>
<p>
<a name=table2987></a>
(Table 02987)
Call LSL function "get support entry points" with:.
BX = 0002h.
ES:SI -> buffer for entry point record <a href="rb-5287.htm#Table2992" tppabs="http://www.ctyme.com/intr/rb-5287.htm#Table2992">(see #02992)</a><br>
<p><b>Return:</b><br>ES:SI buffer filled
<p>
<a name=table2988></a>
(Table 02988)
Call LSL function "Request MLID API entry point" with:
BX = 0003h<br>
<p><b>Return:</b><br>ES:SI -> MLID (Multiple Link Interface Driver) API entry point
(call with BX=function 00h-10h, not range-checked)
</PRE>
<p><b>Note:</b>
LSL v1.10 and v2.05 execute BX=0003h for BX=0000h and any BX >= 0003h
<PRE>
<p>
<a name=table2989></a>
(Table 02989)
Values for LSL completion code:
0000h successful
8001h out of resources
8002h bad parameter
8003h no more items
8004h item not present
8005h failed
8006h receive overflow
8007h canceled
8008h bad command
8009h duplicate entry
800Ah no such handler
800Bh no such driver
<p>
Format of LSL registration record:
<a name=table2990></a>
Offset Size Description (Table 02990)
00h DWORD -> ??? FAR function (to be called with ES:SI -> ??? and
returning AX = completion code)
04h DWORD -> ???
08h DWORD -> ??? data (at least 3Eh bytes)
<p>
Format of LSL information block:
<a name=table2991></a>
Offset Size Description (Table 02991)
00h DWORD -> ??? entry point (called with BX=function 00h-11h)
04h WORD ???
06h WORD ???
</PRE>
<p><b>Note:</b>
Due to a fencepost error, LSL v2.05 (distributed with Novell DOS 7)
will crash if the above entry point is called with BX=0012h
<PRE>
<p>
Format of entry point record:
<a name=table2992></a>
Offset Size Description (Table 02992)
00h DWORD pointer to protocol support entry point in LSL <a href="rb-5287.htm#Table2993" tppabs="http://www.ctyme.com/intr/rb-5287.htm#Table2993">(see #02993)</a>
04h DWORD pointer to general support entry point in LSL <a href="rb-5287.htm#Table2994" tppabs="http://www.ctyme.com/intr/rb-5287.htm#Table2994">(see #02994)</a>
<p>
<a name=table2993></a>
(Table 02993)
Call protocol support entry point with:.
BX = function number
0000h ???
0001h ???
0002h ???
0003h "ScheduleAESEvent"
ES:SI -> AES ECB to be scheduled <a href="rb-5287.htm#Table2997" tppabs="http://www.ctyme.com/intr/rb-5287.htm#Table2997">(see #02997)</a>
<p><b>Return:</b><br>ES,SI preserved
0004h "CancelAESEvent"
ES:SI -> ECB to be cancelled <a href="rb-5287.htm#Table2997" tppabs="http://www.ctyme.com/intr/rb-5287.htm#Table2997">(see #02997)</a>
<p><b>Return:</b><br>ES,SI preserved
0005h "GetIntervalMarker"
<p><b>Return:</b><br>DX:AX = current interval marker in milliseconds
all other registers preserved
0006h "RegisterStack"
AX = logical board number
ES:SI -> bound stack info structure <a href="rb-5287.htm#Table3007" tppabs="http://www.ctyme.com/intr/rb-5287.htm#Table3007">(see #03007)</a>
<p><b>Return:</b><br>BX = assigned Stack ID if AX=0000h
0007h "DeRegisterStack"
AX = protocol stack's assigned Stack ID
0008h "RegisterDefaultStack"
AX = logical board number
ES:SI -> stack info structure <a href="rb-5287.htm#Table3008" tppabs="http://www.ctyme.com/intr/rb-5287.htm#Table3008">(see #03008)</a>
0009h "DeRegisterDefaultStack"
AX = logical board number
000Ah "RegisterPrescanStack"
AX = logical board number
ES:SI -> stack info structure <a href="rb-5287.htm#Table3008" tppabs="http://www.ctyme.com/intr/rb-5287.htm#Table3008">(see #03008)</a>
000Bh "DeRegisterPrescanStack"
AX = logical board number
000Ch "SendPacket"
ES:SI -> send ECB
<p><b>Return:</b><br>Interrupts disabled
000Dh ???
000Eh ???
000Fh ???
0010h "GetStackIDFromName"
ES:SI -> counted NUL-terminated protocol name (max 15 chars)
<p><b>Return:</b><br>BX = Stack ID if AX=0000h
0011h "GetPIDFromStackIDBoard"
AX = Stack ID for protocol
CX = logical board number
ES:SI -> 6-byte buffer for protocol ID
0012h "GetMLIDControlEntry"
AX = logical board number
<p><b>Return:</b><br>ES:SI -> MLID control handler (see #02995) if AX=0000h
0013h "GetProtocolControlEntry"
AX = Stack ID or
FFFEh Prescan stack
CX = logical board number
FFFFh default protocol
CX = logical board number
<p><b>Return:</b><br>ES:SI -> protocol stack control entry point if AX=0000h
<a href="rb-5287.htm#Table2996" tppabs="http://www.ctyme.com/intr/rb-5287.htm#Table2996">(see #02996)</a>
0014h "GetLSLStatistics"
<p><b>Return:</b><br>AX = 0000h (successful)
ZF set
ES:SI -> LSL statistics table <a href="rb-5287.htm#Table2999" tppabs="http://www.ctyme.com/intr/rb-5287.htm#Table2999">(see #02999)</a>
0015h "BindStack"
AX = protocol stack's assigned Stack ID
CX = logical board number
0016h "UnbindStack"
AX = protocol stack's assigned Stack ID
CX = logical board number
0017h "AddProtocolID"
AX = frame type ID code
ES:SI -> 6-byte protocol ID
CX:DI -> counted NUL-terminated short protocol name (max 15 ch)
0018h "RelinquishControl"
<p><b>Return:</b><br>After LSL performs any necessary background processing
0019h "GetLSLConfiguration"
<p><b>Return:</b><br>AX = 0000h (successful)
ZF set
ES:SI -> LSL configuration table <a href="rb-5287.htm#Table2998" tppabs="http://www.ctyme.com/intr/rb-5287.htm#Table2998">(see #02998)</a>
001Ah "GetTickMarker"
<p><b>Return:</b><br>AX = number of 55ms ticks since LSL loaded
BX destroyed<br>
<p><b>Return:</b><br>AX = completion code (see #02989)
ZF set if successful
SS:SP, DS, BP preserved; most other registers may be destroyed
<p>
<a name=table2994></a>
(Table 02994)
Call general support entry point with:
BX = function number
0000h "Allocate Memory" (obsolete)
always returns AX=8008h (BAD_COMMAND)
0001h "Free Memory" (obsolete)
always returns AX=8008h (BAD_COMMAND)
0002h "Realloc Memory" (obsolete)
always returns AX=8008h (BAD_COMMAND)
0003h "Memory Statistics" (obsolete)
always returns AX=8008h (BAD_COMMAND)
0004h "Add Memory To Pool" (obsolete)
always returns AX=8008h (BAD_COMMAND)
0005h "AddGeneralService"
ES:SI -> General Service Control Block <a href="rb-5287.htm#Table3009" tppabs="http://www.ctyme.com/intr/rb-5287.htm#Table3009">(see #03009)</a>
0006h "RemoveGeneralService"
ES:SI -> General Service Control Block <a href="rb-5287.htm#Table3009" tppabs="http://www.ctyme.com/intr/rb-5287.htm#Table3009">(see #03009)</a>
0007h "GetNETcfgPath"
<p><b>Return:</b><br>AX = 0000h (successful)
DS:DX -> ASCIZ pathname for NET.CFG
0008h U ??? (in LSL 1.10)
<p><b>Return:</b><br>AX = 0000h
ES:SI -> ??? (a 22-byte data area)
000Ah "GetCriticalSectionStatus"
<p><b>Return:</b><br>BX = total outstanding calls to "StartCriticalSection"
000Bh "ServiceEvents"
interrupts disabled
<p><b>Return:</b><br>Interrupts disabled
0010h "GetStackECB"
DS:DI -> Lookahead structure <a href="rb-5287.htm#Table3010" tppabs="http://www.ctyme.com/intr/rb-5287.htm#Table3010">(see #03010)</a>
interrupts disabled
<p><b>Return:</b><br>ES:SI -> ECB if successful (AX=0000h,ZF set)
interrupts disabled
8000h-FFFFh reserved for user general service providers<br>
<p><b>Return:</b><br>AX = completion code (see #02989)
ZF set if successful
SS:SP, DS, BP preserved
<p>
<a name=table2995></a>
(Table 02995)
Call MLID control handler with:
AX = logical board number
BX = function number
0000h "GetMLIDConfiguration"
<p><b>Return:</b><br>ES:SI -> MLID's configuration table if successful
<a href="javascript:if(confirm('http://www.ctyme.com/intr/rb-0000.htm \n\nThis file was not retrieved by Teleport Pro, because it was unavailable, or its retrieval was aborted, or the project was stopped too soon. \n\nDo you want to open it from the server?'))window.location='http://www.ctyme.com/intr/rb-0000.htm#Table0'" tppabs="http://www.ctyme.com/intr/rb-0000.htm#Table0"></a>(see #03002 for format)
0001h "GetMLIDStatistics"
<p><b>Return:</b><br>ES:SI -> MLID's statistics table if successful
<a href="javascript:if(confirm('http://www.ctyme.com/intr/rb-0000.htm \n\nThis file was not retrieved by Teleport Pro, because it was unavailable, or its retrieval was aborted, or the project was stopped too soon. \n\nDo you want to open it from the server?'))window.location='http://www.ctyme.com/intr/rb-0000.htm#Table0'" tppabs="http://www.ctyme.com/intr/rb-0000.htm#Table0"></a>(see #03002 for format)
0002h "AddMulticastAddress"
ES:SI -> 6-byte multicast address to add
0003h "DeleteMulticastAddress"
ES:SI -> 6-byte multicast address to delete
0005h "MLIDShutdown"
CX = type
0000h permanent (also deregisters from LSL)
other temporary (shutdown hardware only)
0006h "MLIDReset" reinitialize board / restart from temp shutdown
0007h "Create Connection" (obsolete?)
???
0008h "Delete Connection" (obsolete?)
???
0009h "SetLookAheadSize"
CX = requested lookahead size (00h-80h)
000Ah "PromiscuousChange"
CX = what to receive promiscuously
<p><b>bit 0:</b><br>MAC frames
<p><b>bit 1:</b><br>Non-MAC frames
000Bh "RegisterReceiveMonitor"
CX = subfunction
0000h disable receive monitoring
else enable receive monitoring
ES:SI -> monitor receive routine
ES:DI -> monitor transmit routine
000Ch "Driver Poll" (obsolete?)
???<br>
<p><b>Return:</b><br>AX = completion code (see #02989)
ZF set if successful
</PRE>
<p><b>Note:</b>
Not all boards/MLIDs support function 0010h; see bit 13 in the MLID
mode flags field of the MLID's configuration table
<PRE>
<p>
<a name=table2996></a>
(Table 02996)
Call protocol stack control entry point with:.
BX = function number
0000h "GetProtocolStackConfiguration"
<p><b>Return:</b><br>ES:SI -> protocol stack's configuration table
<a href="rb-5287.htm#Table3001" tppabs="http://www.ctyme.com/intr/rb-5287.htm#Table3001">(see #03001)</a>
0001h "GetProtocolStackStatistics"
<p><b>Return:</b><br>ES:SI -> protocol stack's statistics table (see #03000)
0002h "BindToMLID"
CX = board number to bind to
ES:SI -> implementation-dependant parameter string
0003h "UnBindFromMLID"
CX = board number from which protocol should unbind
ES:SI -> optional implementation-dependant parameter string
0004h "MLIDDeRegistered"
CX = board number that has de-registered from LSL<br>
<p><b>Return:</b><br>AX = status
0000h successful
else implementation-dependant error codes
ZF set if successful
SS:SP, DS, BP preserved
<p>
Format of AES ECB:
<a name=table2997></a>
Offset Size Description (Table 02997)
00h DWORD "AESLink" pointer used by LSL for list management
04h DWORD number of milliseconds to wait
08h DWORD "AESStatus" (is set to 00000000h when AES ESR is invoked)
0Ch DWORD -> function to be invoked when time expires
ES:SI will point to this structure on entry,
DS, BP, and SS:SP must be preserved.
</PRE>
<p><b>See Also:</b>
#03011
<PRE>
<p>
Format of LSL Configuration Table:
<a name=table2998></a>
Offset Size Description (Table 02998)
00h BYTE major version of configuration table
01h BYTE minor version of configuration table (decimal, 0-99)
02h 8 BYTEs reserved
0Ah BYTE LSL major version (decimal)
0Bh BYTE LSL minor version (decimal, 0-99)
---LSL 1.0x ---
0Ch 14 BYTEs reserved
---LSL 1.10+ ---
0Ch WORD maximum number of boards which LSL can handle
0Eh WORD maximum number of protocol IDs which LSL can handle
10h 12 BYTEs reserved
<p>
Format of LSL Statistics Table:
<a name=table2999></a>
Offset Size Description (Table 02999)
00h BYTE major version of statistics table format
01h BYTE minor version of statistics table format (decimal, 0-99)
02h WORD "GenericCounters" number of counters in static portion of
table
04h DWORD "ValidCountersMask" bit mask indicating which generic
counters are actually used. Bit 31 = TotalTxPackets, bit 30
is the next field, etc.
08h DWORD "TotalTxPackets" total SendPacket requests made
0Ch DWORD reserved
10h DWORD reserved
14h DWORD "AESEventsCount" number of completed AES events
18h DWORD "PostponedEvents" number of events postponed due to critical
sections inside the MLIDs
1Ch DWORD "CancelAESFailures" number of times CancelAESEvent failed
20h DWORD reserved
24h DWORD reserved
28h DWORD "TotalRxPackets" total number of GetStackECB requests
2Ch DWORD "UnclaimedPackets" total number of packets not consumed by a
protocol stack
30h WORD "NumberCustom" number of custom variables that follow
32h N DWORDs custom counters
N DWORDs -> CustomCounterStrN (one per custom counter).
Var length-prepended and NULL terminated string for Counter 0.
....
Var length-prepended and NULL terminated string for Counter N-1
</PRE>
<p><b>See Also:</b>
#03000 - #03006
<PRE>
<p>
Format of Protocol Stack Statistics Table:
<a name=table3000></a>
Offset Size Description (Table 03000)
00h BYTE statistics table major version
01h BYTE statistics table minor version (decimal, 0-99)
02h WORD number of generic counters following
04h DWORD "ValidCountersMask" (bitmask, bit 31 is TotalTxPackets)
08h DWORD TotalTxPackets
0Ch DWORD TotalRxPackets
10h DWORD IgnoredRxPackets
14h WORD number of custom counters
16h N DWORDs custom counters
N DWORDs -> CustomCounterStrN (one per custom counter).
Var length-prepended and NULL terminated string for Counter 0.
....
Var length-prepended and NULL terminated string for Counter N-1
</PRE>
<p><b>See Also:</b>
#02999 - #03006
<PRE>
<p>
Format of Protocol Stack Configuration Table:
<a name=table3001></a>
Offset Size Description (Table 03001)
00h BYTE configuration table major version
01h BYTE configuration table minor version (decimal, 0-99)
02h DWORD -> counted NUL-terminated long descriptive name for protocol
06h DWORD -> counted NUL-terminated short name for protocol (15 chars)
0Ah BYTE protocol stack major version
0Bh BYTE protocol stack minor version (decimal, 0-99)
0Ch 16 BYTEs reserved for future use
<p>
Format of MLID Configuration Table:
<a name=table3002></a>
Offset Size Description (Table 03002)
00h 26 BYTEs signature 'HardwareDriverMLID ' (8 spaces on end)
1Ah BYTE configuration table major version
1Bh BYTE configuration table minor version (decimal, 0-99)
1Ch 6 BYTEs node address
22h WORD MLID mode flags <a href="rb-5287.htm#Table3003" tppabs="http://www.ctyme.com/intr/rb-5287.htm#Table3003">(see #03003)</a>
24h WORD board number
26h WORD board instance (if more than one of same board installed)
28h WORD maximum packet size
2Ah WORD BestDataSize
2Ch WORD WorstDataSize
2Eh DWORD -> counted NUL-terminated long name for NIC
32h DWORD -> counted NUL-terminated short name for NIC (8 chars max)
36h DWORD -> counted NUL-terminated Frame and Media type
3Ah WORD reserved (0000h)
3Ch WORD frame type ID
3Eh WORD TransportTime (milliseconds)
40h DWORD -> SourceRouteHandler for TokenRing. (Used by ROUTE.COM)
44h WORD lookahead size
46h WORD line speed (Mbps if high bit clear, else Kbps)
48h WORD QueueDepth
4Ah 6 BYTEs reserved (0)
50h BYTE driver major version
51h BYTE driver minor version (decimal, 0-99)
52h WORD bus/multicast flags <a href="rb-5287.htm#Table3004" tppabs="http://www.ctyme.com/intr/rb-5287.htm#Table3004">(see #03004)</a>
54h WORD send retries
56h DWORD ConfigTableLink
5Ah WORD MLID sharing flags <a href="rb-5287.htm#Table3005" tppabs="http://www.ctyme.com/intr/rb-5287.htm#Table3005">(see #03005)</a>
5Ch WORD slot number
5Eh WORD I/O address 1
60h WORD I/O range 1
62h WORD I/O address 2
64h WORD I/O range 2
66h DWORD memory address 1
6Ah WORD memory size 1
6Ch DWORD memory address 2
70h WORD memory size 2
72h BYTE interrupt line 1
73h BYTE interrupt line 2
74h BYTE DMA line 1
75h BYTE DMA line 2
<p>
Bitfields for MLID mode flags:
<a name=table3003></a>
Bit(s) Description (Table 03003)
15 MLID supports Octet Reversal
14 node address is non-canonical
13 promiscuous mode is supported
12-8 reserved
7 LDataSize field in LookAhead structure supported
6 raw send supported
5 MLID needs to be polled by LSL
4 reserved (0)
3 multicasting is supported
2 not currently used by DOS ODI, set to 0.
1 network card uses DMA.
0 RealDriverBit, always set to 1.
<p>
Bitfields for bus/multicast flags:
<a name=table3004></a>
Bit(s) Description (Table 03004)
10-9 specialized multicast support.
00 = Group addressing is default for medium.
01 = Invalid.
10 = Filter group address in MLID..
11 = Adapter filters group address.
2 supports Micro Channel cards
1 supports ISA cards
0 supports EISA cards
<p>
Bitfields for MLID sharing flags:
<a name=table3005></a>
Bit(s) Description (Table 03005)
8 NIC can share DMA2
7 NIC can share DMA1
6 NIC can share IRQ2
5 NIC can share IRQ1
4 NIC can share Memory2
3 NIC can share Memory1
2 NIC can share IO2
1 NIC can share IO1
0 MLID is currently shut down
<p>
Format of MLID Statistics Table:
<a name=table3006></a>
Offset Size Description (Table 03006)
00h BYTE driver statistics table major version
01h BYTE driver statistics table minor version (decimal, 0-99)
02h WORD number of generic counters (typically 13)
04h DWORD "ValidCountersMask" (bit mask, bit 31 is TotalTxCount)
08h DWORD TotalTxCount
0Ch DWORD TotalRxCount
10h DWORD NoECBAvailableCount
14h DWORD TxTooBigCount
18h DWORD TxTooSmallCount
1Ch DWORD RxOverflowCount
20h DWORD RxTooBigCount
24h DWORD RxTooSmallCount
28h DWORD TxMiscCount
2Ch DWORD RxMiscCount
30h DWORD TxRetryCount
34h DWORD RxChecksumErrorCount
38h DWORD RxMismatchCount
3Ch WORD number of custom counters
3Eh N DWORDs custom counters
N DWORDs -> CustomCounterStrN (one per custom counter).
Var length-prepended and NULL terminated string for Counter 0.
....
Var length-prepended and NULL terminated string for Counter N-1
</PRE>
<p><b>See Also:</b>
#02999 - #03000
<PRE>
<p>
Format of bound stack info structure:
<a name=table3007></a>
Offset Size Description (Table 03007)
00h DWORD -> protocol stack's short name (counted, NUL-terminated)
04h DWORD -> receive handler
08h DWORD -> control handler
<p>
Format of stack info structure:
<a name=table3008></a>
Offset Size Description (Table 03008)
00h DWORD -> receive handler
04h DWORD -> control handler
<p>
Format of General Service Control Block:
<a name=table3009></a>
Offset Size Description (Table 03009)
00h DWORD -> next GSCB (maintained internally by LSL)
04h DWORD -> entry point for general service handler
08h WORD command code for this general service (8000h-FFFFh)
</PRE>
<p><b>Note:</b>
The control block must not be altered or deallocated until the general
service is removed
<PRE>
<p>
Format of Lookahead structure:
<a name=table3010></a>
Offset Size Description (Table 03010)
00h DWORD -> Media header
04h DWORD -> lookahead buffer
08h WORD length of lookahead buffer
0Ah 6 BYTEs protocol ID
10h WORD logical board number
12h WORD lookahead size
<p>
Format of ODI ECB:
<a name=table3011></a>
Offset Size Description (Table 03011)
00h DWORD link to next ECB
04h DWORD link to previous ECB
08h WORD general status
0000h received successfully
8006h packet overflow
8007h reception aborted (data not valid)
0Ah DWORD -> event service routine or RETF (never 0000h:0000h)<a href="rb-5287.htm#Table3012" tppabs="http://www.ctyme.com/intr/rb-5287.htm#Table3012">(see #03012)</a>
0Eh WORD protocol stack identifier
10h 6 BYTEs protocol ID (sending only)
16h WORD MLID board number (sending only)
18h 6 BYTEs MAC destination address
1Eh 4 BYTEs driver workspace
22h 8 BYTEs protocol workspace
2Ah WORD total length of sent buffer
2Ch WORD fragment count
2Eh 2 WORDs segment,offset of first fragment buffer
32h WORD length of first fragment buffer.
...
</PRE>
<p><b>See Also:</b>
#02997
<PRE>
<p>
<a name=table3012></a>
(Table 03012)
Values event service routine is called with:.
ES:SI -> associated ODI ECB <a href="rb-5287.htm#Table3011" tppabs="http://www.ctyme.com/intr/rb-5287.htm#Table3011">(see #03011)</a>.
Interrupts disabled<br>
<p><b>Return:</b><br>DS,BP,SS,SP preserved
interrupt disabled
</PRE>
<p><b>Notes:</b>
The service routine may invoke any IPX/ODI function except CloseSocket.
It is safe to send a packet and wait for completion if enough stack
space is available
<p>
<b>Category: <a href="cat-027.htm" tppabs="http://www.ctyme.com/intr/cat-027.htm">
Network</a>
- <a href="int-2f-1.htm" tppabs="http://www.ctyme.com/intr/int-2F.htm">
Int 2Fh</a>
- <a href="alpha-n.htm" tppabs="http://www.ctyme.com/intr/alpha-n.htm">
N</a>
</b><p><p><img src="rbline.gif" tppabs="http://graphics.ctyme.com/gif/rbline.gif" width="100%" alt="------"><p>
<table border=1 cellpadding=3 cellspacing=1>
<td>
<a href="rb-5286.htm" tppabs="http://www.ctyme.com/intr/rb-5286.htm">
<img src="lup.gif" tppabs="http://graphics.ctyme.com/gif/lup.gif" border=0 alt=Prev></a>
<a href="rb-5288.htm" tppabs="http://www.ctyme.com/intr/rb-5288.htm">
<img src="ldown.gif" tppabs="http://graphics.ctyme.com/gif/ldown.gif" border=0 alt=Next></a>
<a href="javascript:if(confirm('http://www.ctyme.com/rbrown.htm \n\nThis file was not retrieved by Teleport Pro, because it is addressed on a domain or path outside the boundaries set for its Starting Address. \n\nDo you want to open it from the server?'))window.location='http://www.ctyme.com/rbrown.htm'" tppabs="http://www.ctyme.com/rbrown.htm">
<img src="lhome.gif" tppabs="http://graphics.ctyme.com/gif/lhome.gif" border=0 alt=Ralf Brown Page></a>
<td><a href="int.htm" tppabs="http://www.ctyme.com/intr/int.htm">Interrups</a></td>
<td><a href="cat.htm" tppabs="http://www.ctyme.com/intr/cat.htm">Categories</a></td>
<td><a href="alpha.htm" tppabs="http://www.ctyme.com/intr/alpha.htm">Contents</a></td>
</td></table><p>
<!-- Bottom Link Start -->
<center>
<p><table border=1 bgcolor="#ffff99"><tr><td>
<table border=0 height=80>
<tr align=center><td width="65">
<a href="javascript:if(confirm('http://www.ctyme.com/sponsor.htm \n\nThis file was not retrieved by Teleport Pro, because it is addressed on a domain or path outside the boundaries set for its Starting Address. \n\nDo you want to open it from the server?'))window.location='http://www.ctyme.com/sponsor.htm'" tppabs="http://www.ctyme.com/sponsor.htm">
<img src="tip.gif" tppabs="http://graphics.ctyme.com/gif/tip.gif" ALT="Sponsors" height="40" width="40"></a>
<br><a href="javascript:if(confirm('http://www.ctyme.com/sponsor.htm \n\nThis file was not retrieved by Teleport Pro, because it is addressed on a domain or path outside the boundaries set for its Starting Address. \n\nDo you want to open it from the server?'))window.location='http://www.ctyme.com/sponsor.htm'" tppabs="http://www.ctyme.com/sponsor.htm">Shopping</a>
</td><td width="65">
<a href="javascript:if(confirm('http://talk.ctyme.com/webx.cgi?13@@.ee6b2be \n\nThis file was not retrieved by Teleport Pro, because it is addressed on a domain or path outside the boundaries set for its Starting Address. \n\nDo you want to open it from the server?'))window.location='http://talk.ctyme.com/webx.cgi?13@@.ee6b2be'" tppabs="http://talk.ctyme.com/webx.cgi?13@@.ee6b2be">
<img src="comment.gif" tppabs="http://graphics.ctyme.com/gif/comment.gif" ALT="Forum" height="40" width="40"></a>
<br><a href="javascript:if(confirm('http://talk.ctyme.com/webx.cgi?13@@.ee6b2be \n\nThis file was not retrieved by Teleport Pro, because it is addressed on a domain or path outside the boundaries set for its Starting Address. \n\nDo you want to open it from the server?'))window.location='http://talk.ctyme.com/webx.cgi?13@@.ee6b2be'" tppabs="http://talk.ctyme.com/webx.cgi?13@@.ee6b2be">Forum</a>
</td><td width="65">
<a href="javascript:if(confirm('http://www.ctyme.com/mail.htm \n\nThis file was not retrieved by Teleport Pro, because it is addressed on a domain or path outside the boundaries set for its Starting Address. \n\nDo you want to open it from the server?'))window.location='http://www.ctyme.com/mail.htm'" tppabs="http://www.ctyme.com/mail.htm">
<img src="mail.gif" tppabs="http://graphics.ctyme.com/gif/mail.gif" ALT="email" height="40" width="40"></a>
<br><a href="javascript:if(confirm('http://www.ctyme.com/mail.htm \n\nThis file was not retrieved by Teleport Pro, because it is addressed on a domain or path outside the boundaries set for its Starting Address. \n\nDo you want to open it from the server?'))window.location='http://www.ctyme.com/mail.htm'" tppabs="http://www.ctyme.com/mail.htm">EMail</a>
</td><td width="65">
<a href="javascript:if(confirm('http://www.ctyme.com/map.htm \n\nThis file was not retrieved by Teleport Pro, because it is addressed on a domain or path outside the boundaries set for its Starting Address. \n\nDo you want to open it from the server?'))window.location='http://www.ctyme.com/map.htm'" tppabs="http://www.ctyme.com/map.htm">
<img src="toc.gif" tppabs="http://graphics.ctyme.com/gif/toc.gif" ALT="Index" height="40" width="40"></a>
<br><a href="javascript:if(confirm('http://www.ctyme.com/map.htm \n\nThis file was not retrieved by Teleport Pro, because it is addressed on a domain or path outside the boundaries set for its Starting Address. \n\nDo you want to open it from the server?'))window.location='http://www.ctyme.com/map.htm'" tppabs="http://www.ctyme.com/map.htm">Index</a>
</td><td width="65">
<a href="javascript:if(confirm('http://www.ctyme.com/ \n\nThis file was not retrieved by Teleport Pro, because it is addressed on a domain or path outside the boundaries set for its Starting Address. \n\nDo you want to open it from the server?'))window.location='http://www.ctyme.com/'" tppabs="http://www.ctyme.com/">
<img src="home.gif" tppabs="http://graphics.ctyme.com/gif/home.gif" ALT="Home" height="40" width="40"></a>
<br><a href="javascript:if(confirm('http://www.ctyme.com/ \n\nThis file was not retrieved by Teleport Pro, because it is addressed on a domain or path outside the boundaries set for its Starting Address. \n\nDo you want to open it from the server?'))window.location='http://www.ctyme.com/'" tppabs="http://www.ctyme.com/">Home</a>
</td><td width="90">
<center>
<FORM ACTION="https://secure.paypal.com/cgi-bin/webscr" tppabs="https://secure.paypal.com/cgi-bin/webscr" METHOD="POST" traget="_blank">
<INPUT TYPE="hidden" NAME="cmd" VALUE="_xclick">
<INPUT TYPE="hidden" NAME="business" VALUE="marc@perkel.com">
<INPUT TYPE="hidden" NAME="return" VALUE="http://www.perkel.com">
<INPUT TYPE="hidden" NAME="item_name" VALUE="Donation To Support this Site">
<INPUT TYPE="hidden" NAME="no_intl" VALUE="1">
<INPUT TYPE="image" SRC="x-click-but7.gif" tppabs="http://images.paypal.com/images/x-click-but7.gif" vspace=9
NAME="submit" ALT="Make payments with PayPal - it's fast, free and secure!">
</FORM>
</td></tr></table></td></tr></table><p>
<center>
<p>
<a href="javascript:if(confirm('http://www.ctyme.com/hosting/index.htm \n\nThis file was not retrieved by Teleport Pro, because it is addressed on a domain or path outside the boundaries set for its Starting Address. \n\nDo you want to open it from the server?'))window.location='http://www.ctyme.com/hosting/index.htm'" tppabs="http://www.ctyme.com/hosting/index.htm" target="_blank">
<img src="ctymehost.gif" tppabs="http://graphics.ctyme.com/gif/ctymehost.gif"
border=3 height=60 width=468></a>
<p>
<!-- Ad End --->
</center>
<FORM ACTION="http://service.bfast.com/bfast/click" target="_blank">
<INPUT TYPE="hidden" NAME="siteid" VALUE="30472466" >
<INPUT TYPE="hidden" NAME="bfpage" VALUE="horizontal">
<INPUT TYPE="hidden" NAME="bfmid" VALUE="27253343" >
<INPUT TYPE="hidden" NAME="num" VALUE="30">
<table bgcolor=white border=3><tr><td>
<table bgcolor=white border=0>
<tr><td>
<IMG SRC="serve-bfmid=27253343&siteid=30472466&bfpage=horizontal.gif" tppabs="http://service.bfast.com/bfast/serve?bfmid=27253343&siteid=30472466&bfpage=horizontal" BORDER="0" WIDTH="1" HEIGHT="1" align=right NOSAVE >
<center><b>Search the web with Google</b></center>
</td></tr><tr><td>
<TABLE cellpadding=0 cellspacing=5 bgcolor="#FFFFFF">
<tr><td bgcolor="#0000cc"><IMG SRC="cleardot.gif" tppabs="http://www.google.com/images/cleardot.gif" height=1 border="0" ALT="Google"></td></tr><tr><td>
<IMG SRC="affiliate_logo.gif" tppabs="http://www.google.com/affiliates/affiliate_logo.gif" border="0" ALT="Google" align="center">
<INPUT TYPE=text name=q size=30 maxlength=255 value="">
<INPUT type=submit name=sa VALUE="Go">
</td></tr>
<tr><td bgcolor="#0000cc"><IMG SRC="cleardot.gif" tppabs="http://www.google.com/images/cleardot.gif" height=1 border="0" ALT="Google"></td></tr></TABLE>
</td></tr></table>
</tr></td></table>
</FORM>
</center>
<p><img src="rbline.gif" tppabs="http://graphics.ctyme.com/gif/rbline.gif" width="100%" alt="------"><p>
<!-- Bottom Link End -->
</BODY>
</HTML>