)\r
;\r
\r
-/**\r
- PXE\r
- UNDI SET MULTICAST ADDRESS\r
- Op-Code: PXENV_UNDI_SET_MCAST_ADDRESS (0009h)\r
- Input: Far pointer to a PXENV_TFTP_SET_MCAST_ADDRESS_t parameter structure that has been\r
- initialized by the caller.\r
- Output: PXENV_EXIT_SUCCESS or PXENV_EXIT_FAILURE must be returned in AX. The status field in\r
- the parameter structure must be set to one of the values represented by the PXENV_STATUS_xxx\r
- constants.\r
- Description: This call changes the current list of multicast addresses to the input list and resets the network\r
- adapter to accept it. If the number of multicast addresses is zero, multicast is disabled.\r
- typedef struct {\r
- PXENV_STATUS Status;\r
- PXENV_UNDI_MCAST_ADDRESS_t R_Mcast_Buf;\r
- } PXENV_UNDI_SET_MCAST_ADDR_T;\r
- Set before calling API service\r
- R_Mcast_Buf: See description in the UNDI RESET ADAPTER\r
- (0004h) API.\r
- Returned from API service\r
- Status: See the PXENV_STATUS_xxx constants\r
-\r
- @param SimpleNetworkDevice Device instance\r
- @param PxeUndiTable Point to structure which hold parameter and return value\r
- for option ROM call.\r
-\r
- @return Return value of PXE option ROM far call.\r
-**/\r
-EFI_STATUS\r
-PxeUndiSetMcastAddr (\r
- IN EFI_SIMPLE_NETWORK_DEV *SimpleNetworkDevice,\r
- IN OUT PXENV_UNDI_SET_MCAST_ADDR_T *PxeUndiTable\r
- )\r
-;\r
\r
/**\r
PXE\r
)\r
;\r
\r
-/**\r
- PXE\r
- UNDI SET PACKET FILTER\r
- Op-Code: PXENV_UNDI_SET_PACKET_FILTER (000Bh)\r
- Input: Far pointer to a PXENV_UNDI_SET_PACKET_FILTER_T parameter structure that has been\r
- initialized by the caller.\r
- Output: PXENV_EXIT_SUCCESS or PXENV_EXIT_FAILURE must be returned in AX. The status field in\r
- the parameter structure must be set to one of the values represented by the PXENV_STATUS_xxx\r
- constants.\r
- Description: This call resets the adapter's receive unit to accept a new filter, different from the one provided with\r
- the open call.\r
- typedef struct {\r
- PXENV_STATUS Status;\r
- UINT8 filter;\r
- } PXENV_UNDI_SET_PACKET_FILTER_T;\r
- Set before calling API service\r
- Filter: See the receive filter values in the UNDI OPEN\r
- (0006h) API description.\r
- Returned from API service\r
- Status: See the PXENV_STATUS_xxx constants.\r
-\r
- @param SimpleNetworkDevice Device instance\r
- @param PxeUndiTable Point to structure which hold parameter and return value\r
- for option ROM call.\r
-\r
- @return Return value of PXE option ROM far call.\r
-**/\r
-EFI_STATUS\r
-PxeUndiSetPacketFilter (\r
- IN EFI_SIMPLE_NETWORK_DEV *SimpleNetworkDevice,\r
- IN OUT PXENV_UNDI_SET_PACKET_FILTER_T *PxeUndiTable\r
- )\r
-;\r
\r
/**\r
PXE\r
)\r
;\r
\r
-/**\r
- PXE\r
- UNDI INITIATE DIAGS\r
- Op-Code: PXENV_UNDI_INITIATE_DIAGS (000Fh)\r
- Input: Far pointer to a PXENV_UNDI_INITIATE_DIAGS_T parameter.\r
- Output: PXENV_EXIT_SUCCESS or PXENV_EXIT_FAILURE must be returned in AX. The status field in\r
- the parameter structure must be set to one of the values represented by the\r
- PXENV_STATUS_xxx constants.\r
- Description: This call can be used to initiate the run-time diagnostics. It causes the network adapter to run\r
- hardware diagnostics and to update its status information.\r
- typedef struct {\r
- PXENV_STATUS Status;\r
- } PXENV_UNDI_INITIATE_DIAGS_T;\r
- Set before calling API service\r
- N/A\r
- Returned from API service\r
- Status: See the PXENV_STATUS_xxx constants.\r
-\r
- @param SimpleNetworkDevice Device instance\r
- @param PxeUndiTable Point to structure which hold parameter and return value\r
- for option ROM call.\r
-\r
- @return Return value of PXE option ROM far call.\r
-**/\r
-EFI_STATUS\r
-PxeUndiInitiateDiags (\r
- IN EFI_SIMPLE_NETWORK_DEV *SimpleNetworkDevice,\r
- IN OUT PXENV_UNDI_INITIATE_DIAGS_T *PxeUndiTable\r
- )\r
-;\r
-\r
-/**\r
- PXE\r
- UNDI FORCE INTERRUPT\r
- Op-Code: PXENV_UNDI_FORCE_INTERRUPT (0010h)\r
- Input: Far pointer to a PXENV_UNDI_FORCE_INTERRUPT_T parameter structure that has been\r
- initialized by the caller.\r
- Output: PXENV_EXIT_SUCCESS or PXENV_EXIT_FAILURE must be returned in AX. The status field in\r
- the parameter structure must be set to one of the values represented by the PXENV_STATUS_xxx\r
- constants.\r
- Description: This call forces the network adapter to generate an interrupt. When a receive interrupt occurs, the\r
- network adapter driver usually queues the packet and calls the application's callback receive\r
- routine with a pointer to the packet received. Then, the callback routine either can copy the packet\r
- to its buffer or can decide to delay the copy to a later time. If the packet is not immediately copied,\r
- the network adapter driver does not remove it from the input queue. When the application wants to\r
- copy the packet, it can call the PXENV_UNDI_FORCE_INTERRUPT routine to simulate the receive\r
- interrupt.\r
- typedef struct {\r
- PXENV_STATUS Status;\r
- } PXENV_UNDI_FORCE_INTERRUPT_T;\r
- Set before calling API service\r
- N/A\r
- Returned from API service\r
- Status: See the PXENV_STATUS_xxx constants.\r
-\r
- @param SimpleNetworkDevice Device instance\r
- @param PxeUndiTable Point to structure which hold parameter and return value\r
- for option ROM call.\r
-\r
- @return Return value of PXE option ROM far call.\r
-**/\r
-EFI_STATUS\r
-PxeUndiForceInterrupt (\r
- IN EFI_SIMPLE_NETWORK_DEV *SimpleNetworkDevice,\r
- IN OUT PXENV_UNDI_FORCE_INTERRUPT_T *PxeUndiTable\r
- )\r
-;\r
\r
/**\r
PXE\r
)\r
;\r
\r
-/**\r
- PXE\r
- UNDI GET STATE\r
- Op-Code: PXENV_UNDI_GET_STATE (0015h)\r
- Input: Far pointer to a PXENV_UNDI_GET_STATE_T parameter.\r
- Output: PXENV_EXIT_SUCCESS or PXENV_EXIT_FAILURE must be returned in AX. The status field in\r
- the parameter structure must be set to one of the values represented by the PXENV_STATUS_xxx\r
- constants. The UNDI_STATE field in the parameter structure must be set to one of the valid state\r
- constants\r
- Description: This call can be used to obtain state of the UNDI engine in order to avoid issuing adverse call\r
- sequences\r
- typedef struct {\r
- #define PXE_UNDI_GET_STATE_STARTED 1\r
- #define PXE_UNDI_GET_STATE_INITIALIZED 2\r
- #define PXE_UNDI_GET_STATE_OPENED 3\r
- PXENV_STATUS Status;\r
- UINT8 UNDIstate;\r
- } PXENV_UNDI_GET_STATE_T;\r
- Set before calling API service\r
- N/A\r
- Returned from API service\r
- Status: See the PXENV_STATUS_xxx constants.\r
- State: See definitions of the state constants.\r
- Note. UNDI implementation is responsible for maintaining\r
- internal state machine.\r
- UNDI ISR\r
- Op-Code: PXENV_UNDI_ISR (0014h)\r
- Input: Far pointer to a t_PXENV_UNDI_ISR parameter structure that has been initialized by the caller.\r
- Output: PXENV_EXIT_SUCCESS or PXENV_EXIT_FAILURE must be returned in AX. The status field in\r
- the parameter structure must be set to one of the values represented by the PXENV_STATUS_xxx\r
- constants.\r
- Description: This API function will be called at different levels of processing the interrupt. The FuncFlag field in\r
- the parameter block indicates the operation to be performed for the call. This field is filled with the\r
- status of that operation on return.\r
-\r
- @param SimpleNetworkDevice Device instance\r
- @param PxeUndiTable Point to structure which hold parameter and return value\r
- for option ROM call.\r
-\r
- @return Return value of PXE option ROM far call.\r
-**/\r
-EFI_STATUS\r
-PxeUndiGetState (\r
- IN EFI_SIMPLE_NETWORK_DEV *SimpleNetworkDevice,\r
- IN OUT PXENV_UNDI_GET_STATE_T *PxeUndiTable\r
- )\r
-;\r
\r
/**\r
Effect the Far Call into the PXE Layer\r
}\r
}\r
\r
-/**\r
- PXE\r
- UNDI SET MULTICAST ADDRESS\r
- Op-Code: PXENV_UNDI_SET_MCAST_ADDRESS (0009h)\r
- Input: Far pointer to a PXENV_TFTP_SET_MCAST_ADDRESS_t parameter structure that has been\r
- initialized by the caller.\r
- Output: PXENV_EXIT_SUCCESS or PXENV_EXIT_FAILURE must be returned in AX. The status field in\r
- the parameter structure must be set to one of the values represented by the PXENV_STATUS_xxx\r
- constants.\r
- Description: This call changes the current list of multicast addresses to the input list and resets the network\r
- adapter to accept it. If the number of multicast addresses is zero, multicast is disabled.\r
- typedef struct {\r
- PXENV_STATUS Status;\r
- PXENV_UNDI_MCAST_ADDRESS_t R_Mcast_Buf;\r
- } PXENV_UNDI_SET_MCAST_ADDR_T;\r
- Set before calling API service\r
- R_Mcast_Buf: See description in the UNDI RESET ADAPTER\r
- (0004h) API.\r
- Returned from API service\r
- Status: See the PXENV_STATUS_xxx constants\r
\r
- @param SimpleNetworkDevice Device instance\r
- @param PxeUndiTable Point to structure which hold parameter and return value\r
- for option ROM call.\r
-\r
- @return Return value of PXE option ROM far call.\r
-**/\r
-EFI_STATUS\r
-PxeUndiSetMcastAddr (\r
- IN EFI_SIMPLE_NETWORK_DEV *SimpleNetworkDevice,\r
- IN OUT PXENV_UNDI_SET_MCAST_ADDR_T *PxeUndiTable\r
- )\r
-{\r
- return MakePxeCall (\r
- SimpleNetworkDevice,\r
- PxeUndiTable,\r
- sizeof (PXENV_UNDI_SET_MCAST_ADDR_T),\r
- PXENV_UNDI_SET_MCAST_ADDR\r
- );\r
-}\r
\r
/**\r
PXE\r
\r
@return Return value of PXE option ROM far call.\r
**/\r
-EFI_STATUS\r
-PxeUndiSetPacketFilter (\r
- IN EFI_SIMPLE_NETWORK_DEV *SimpleNetworkDevice,\r
- IN OUT PXENV_UNDI_SET_PACKET_FILTER_T *PxeUndiTable\r
- )\r
-{\r
- return MakePxeCall (\r
- SimpleNetworkDevice,\r
- PxeUndiTable,\r
- sizeof (PXENV_UNDI_SET_PACKET_FILTER_T),\r
- PXENV_UNDI_SET_PACKET_FILTER\r
- );\r
-}\r
\r
/**\r
PXE\r
\r
@return Return value of PXE option ROM far call.\r
**/\r
-EFI_STATUS\r
-PxeUndiInitiateDiags (\r
- IN EFI_SIMPLE_NETWORK_DEV *SimpleNetworkDevice,\r
- IN OUT PXENV_UNDI_INITIATE_DIAGS_T *PxeUndiTable\r
- )\r
-{\r
- return MakePxeCall (\r
- SimpleNetworkDevice,\r
- PxeUndiTable,\r
- sizeof (PXENV_UNDI_INITIATE_DIAGS_T),\r
- PXENV_UNDI_INITIATE_DIAGS\r
- );\r
-}\r
\r
/**\r
PXE\r
\r
@return Return value of PXE option ROM far call.\r
**/\r
-EFI_STATUS\r
-PxeUndiForceInterrupt (\r
- IN EFI_SIMPLE_NETWORK_DEV *SimpleNetworkDevice,\r
- IN OUT PXENV_UNDI_FORCE_INTERRUPT_T *PxeUndiTable\r
- )\r
-{\r
- return MakePxeCall (\r
- SimpleNetworkDevice,\r
- PxeUndiTable,\r
- sizeof (PXENV_UNDI_FORCE_INTERRUPT_T),\r
- PXENV_UNDI_FORCE_INTERRUPT\r
- );\r
-}\r
\r
/**\r
PXE\r
\r
@return Return value of PXE option ROM far call.\r
**/\r
-EFI_STATUS\r
-PxeUndiGetState (\r
- IN EFI_SIMPLE_NETWORK_DEV *SimpleNetworkDevice,\r
- IN OUT PXENV_UNDI_GET_STATE_T *PxeUndiTable\r
- )\r
-{\r
- return MakePxeCall (\r
- SimpleNetworkDevice,\r
- PxeUndiTable,\r
- sizeof (PXENV_UNDI_GET_STATE_T),\r
- PXENV_UNDI_GET_STATE\r
- );\r
-}\r