📄 interrup.m
字号:
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
Format of LSL Statistics Table:
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
SeeAlso: #03000,#03006
Format of Protocol Stack Statistics Table:
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
SeeAlso: #02999,#03006
Format of Protocol Stack Configuration Table:
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
Format of MLID Configuration Table:
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 (see #03003)
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 (see #03004)
54h WORD send retries
56h DWORD ConfigTableLink
5Ah WORD MLID sharing flags (see #03005)
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
Bitfields for MLID mode flags:
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.
Bitfields for bus/multicast flags:
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
Bitfields for MLID sharing flags:
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
Format of MLID Statistics Table:
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
SeeAlso: #02999,#03000
Format of bound stack info structure:
Offset Size Description (Table 03007)
00h DWORD -> protocol stack's short name (counted, NUL-terminated)
04h DWORD -> receive handler
08h DWORD -> control handler
Format of stack info structure:
Offset Size Description (Table 03008)
00h DWORD -> receive handler
04h DWORD -> control handler
Format of General Service Control Block:
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)
Note: the control block must not be altered or deallocated until the general
service is removed
Format of Lookahead structure:
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
Format of ODI ECB:
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)(see #03012)
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
...
SeeAlso: #02997
(Table 03012)
Values event service routine is called with:
ES:SI -> associated ODI ECB (see #03011)
interrupts disabled
Return: DS,BP,SS,SP preserved
interrupt disabled
Notes: 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
--------N-2FC000-----------------------------
INT 2F - Novell NetWare Event Service Layer (NESL) 1.0 - INSTALLATION CHECK
AX = C000h
Return: AL = FFh if installed
DX:BX -> FAR entry point (see #03013,#03014,#03015,#03016,#03017,#03018)
ES:SI -> signature string "NESL_EVENTS"
Program: NESL is a generic interface for event handling in ODI drivers and
other NetWare-oriented modules. Primarily intended to support
power management and "hot swapping" of PCMCIA cards, but it is not
limited to this.
Range: AH=C0h to AH=FFh, selected by scanning for first free multiplex number
SeeAlso: AX=C000h"Link Support Layer",AX=C000h"NETWARN"
(Table 03013)
Call NESL function GetNESLConfigPointer with:
BX = 0000h
Return: AX = completion code (0000h,8008h) (see #03019)
ES:SI -> NESL configuration table if successful (see #03020)
BP,DS,STACK preserved
Desc: Obtain a pointer to the NESL Configuration Table
SeeAlso: #03014,#03017
(Table 03014)
Call NESL function RegisterEventProducer with:
BX = 0001h
ES:SI -> Producer Event Control Block (PECB) (see #03021)
Return: AX = completion code (0000h, 8005h, 8008h) (see #03019)
ES:SI -> still points to PECB
BP,DS,STACK preserved
Desc: Allows a module to register as a producer of a given event class
Note: PECB_ClassName and PECB_Flags must be filled in on entry
SeeAlso: #02870,#03015,#03016,#03017
(Table 03015)
Call NESL function DeRegisterEventProducer with:
BX = 0002h
ES:SI -> PECB previously passed to RegisterEventProducer (see #03021)
Return: AX = completion code (0000h, 8002h, 8008h) (see #03019)
ES:SI -> still points to PECB
BP,DS,STACK preserved
Desc: Allows a module to de-register as a producer of a given event class
SeeAlso: #03014,#03018
(Table 03016)
Call NESL function EventNotification with:
BX = 0003h
ES:SI -> PECB previously registered (see #03021)
Return: AX = completion code (0h, 8005h, 8008h) (see #03019)
ES:SI -> still points to PECB
BP,DS,STACK preserved
Desc: Allows a module to signal that an event has just occurred in a given
event class.
Notes: Once called, NESL will generate corresponding callouts for this
event, as described in Table #03023.
on entry, the PECB_DataPtr must point at an Event Parameter Block (EPB)
(see #03024) filled in to match the desired event
SeeAlso: #03014
(Table 03017)
Call NESL function RegisterEventConsumer with:
BX = 0004h
ES:SI -> Consumer Event Control Block (CECB) (see #03022)
Return: AX = completion code (0h, 8005h, 8008h) (see #03019)
ES:SI -> still points to CECB
BP,DS,STACK preserved
Desc: Allows a module to register as a consumer of a given event class
Note: on entry, the CECB_ClassName, CECB_NotifProc and CECB_OSILevel must be
filled in.
SeeAlso: #03014,#03018
(Table 03018)
Call NESL function DeRegisterEventConsumer with:
BX = 0005h
ES:SI -> CECB previously passed to RegisterEventConsumer (see #03022)
Return: AX = completion code (0h, 8002h, 8008h) (see #03019)
ES:SI -> still points to CECB
BP,DS,STACK preserved
Desc: Allows a module to de-register as a consumer of a given event class
SeeAlso: #03015,#03017
(Table 03019)
Values for NESL Error code:
0000h Successful
8002h Bad Parameter
8005h Fail
8008h Bad Command
Format of NESL Configuration Table:
Offset Size Description (Table 03020)
00h WORD NESL_Cfg_MajVer Major Version of this table (=1)
02h WORD NESL_Cfg_MinVer Minor Version of this table (=0)
04h DWORD NESL_Cfg_ModLName -> ASCIZ long name of NESL module
(typically -> "NetWare Event Service Layer for 16-Bit DOS")
08h DWORD NESL_Cfg_ModSName -> ASCIZ short name of NESL module
(typically -> "NESL")
0Ch WORD NESL_Cfg_ModMajVer Major Version of NESL itself (=1)
0Eh WORD NESL_Cfg_ModMinVer Minor Version of NESL itself (=0)
Format of NESL Producer Event Control Block (PECB):
Offset Size Description (Table 03021)
00h WORD PECB_MajVer Major Version of this structure (=1)
02h WORD PECB_MinVer Minor Version of this structure (=0)
04h DWORD PECB_NextProducer -> next PECB. NULL if last.
08h DWORD PECB_ClassName -> ASCIZ string identifying event
class (see #03025)
0Ch DWORD PECB_ConsumerList -> list of consumers for this event class
10h DWORD PECB_DataPtr -> points to additional data during events
14h DWORD PECB_Flags
Bit 0 =0 consumers should be called "top down" for this
event class. (OSI level 7 down to OSI level 1)
=1 consumers should be called "bottom up"
Bits 1-31 Reserved =0
18h 8 BYTEs PECB_Reserved (all zeros)
Note: Although the event producer provides the memory for the PECB, the
NESL module controls this mem
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -