Interrups | Categories | Contents |
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
See Also: 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
See Also: #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
See Also: #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
See Also: #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
See Also: #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.
See Also: #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
See Also: #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 memory until the event class is de-registered.. While owned by NESL, this structure should be treated as read-only, except for the PECB_DataPtr field.
Format of NESL Consumer Event Control Block (CECB): Offset Size Description (Table 03022) 00h WORD CECB_MajVer Major Version of this structure (=1) 02h WORD CECB_MinVer Minor Version of this structure (=0) 04h DWORD CECB_NextConsumer -> next CECB. NULL if last. 08h DWORD CECB_ClassName -> ASCIZ string identifying event class (see #03025) 0Ch DWORD CECB_NotifProc -> FAR CALL event handler (see #03023) 10h WORD CECB_OSILevel Bits 4-7 = OSI Layer of this module (1 through 7) Bits 0-3 = relative ordering with other modules on same layer 13h 14 BYTEs CECB_Reserved (all zeros)
Note: Although the event consumer provides the memory for the CECB, the NESL module controls this memory until the consumer is de-registered.. While owned by NESL, this structure should be treated as read-only,
(Table 03023) Values NESL Consumer Notification Procedure is called with:. ES:SI -> Event Parameter Block (EPB) (see #03024)
Return:
AX = completion code (0000h, 8005h) (see #03019) ES:SI -> still points to EPB
Desc: Called by NESL to notify the consumer when an event has occurred in an event class for which it has registered.
See Also: #03022
Format of NESL Event Parameter Block (EPB): Offset Size Description (Table 03024) 00h WORD EPB_MajVer Major Version of this structure (=1) 02h WORD EPB_MinVer Minor Version of this structure (=0) 04h DWORD EPB_ClassName -> ASCIZ string identifying event class (see #03025) 08h DWORD EPB_EventName -> ASCIZ string identifying event within class (see #03026) 0Ch DWORD EPB_ModuleName -> ASCIZ string identifying module producing event 10h DWORD EPB_DataPtr0 -> event-defined data or NULL if not used 14h DWORD EPB_DataPtr1 -> event-defined data or NULL if not used 18h 8 BYTEs EPB_Reserved (all zeros)
(Table 03025) Values for NESL Event Class Names: Event Class Description ------------------- ----------------------------------------- Service Suspend Suspension of a service. Called top-down. Service Resume Resumption/availability of a service. Called bottom-up. Service/Status Change Change in status or level of service. Called top-down. Suspend Request Request to suspend a service. Called bottom-up.
Note: Contact Novell Labs to register new event classes.
(Table 03026) Values for NESL Event Names: Event Name Class Description -------------------------- ------------- --------------------------- MLID Cable Disconnect Service Suspend Cable disconnected from NIC MLID Card Removal Service Suspend PCMCIA card removed MLID Hardware Failure Service Suspend Serious hardware failure in NIC MLID Not In Range Service Suspend Wireless access point is out of range MLID Shutdown Service Suspend MLID was shut down MLID Media Access Denied Service Suspend Access to physical medium unsuccessful MLID Cable Reconnect Service Resume Cable re-connected to NIC MLID Card Insertion Complete Service Resume PCMCIA card inserted MLID In Range Service Resume Wireless access point in range MLID Reset Service Resume MLID was just reset MLID Access Point Change Serv/Status Change Station has moved to new access point MLID Speed Change Serv/Status Change Change in communic. speed
Note: Contact Novell Labs to register new event names.. For all predefined events above, EPB_DataPtr0 (see #03024) points to the MLID Configuration table (see AX=C000h"ODI") for the affected MLID.
Category: Netware - Int 2Fh - N
Interrups | Categories | Contents |
|