Data Structures | |
| struct | s_PXENV_UNDI_GET_INFORMATION |
| Parameter block for pxenv_undi_get_information(). More... | |
Defines | |
| #define | PXENV_UNDI_GET_INFORMATION 0x000c |
| PXE API function code for pxenv_undi_get_information(). | |
| #define | ETHER_TYPE 1 |
| Ethernet (10Mb). | |
| #define | EXP_ETHER_TYPE 2 |
| Experimental Ethernet (3Mb). | |
| #define | AX25_TYPE 3 |
| Amateur Radio AX.25. | |
| #define | TOKEN_RING_TYPE 4 |
| Proteon ProNET Token Ring. | |
| #define | CHAOS_TYPE 5 |
| Chaos. | |
| #define | IEEE_TYPE 6 |
| IEEE 802 Networks. | |
| #define | ARCNET_TYPE 7 |
| ARCNET. | |
Typedefs | |
| typedef struct s_PXENV_UNDI_GET_INFORMATION | PXENV_UNDI_GET_INFORMATION_t |
Functions | |
| PXENV_EXIT_t | pxenv_undi_get_information (struct s_PXENV_UNDI_GET_INFORMATION *undi_get_information) |
| #define PXENV_UNDI_GET_INFORMATION 0x000c |
PXE API function code for pxenv_undi_get_information().
Definition at line 1218 of file pxe_api.h.
Referenced by pxe_api_call(), pxeparent_function_name(), and undinet_probe().
| typedef struct s_PXENV_UNDI_GET_INFORMATION PXENV_UNDI_GET_INFORMATION_t |
| PXENV_EXIT_t pxenv_undi_get_information | ( | struct s_PXENV_UNDI_GET_INFORMATION * | undi_get_information | ) |
Definition at line 411 of file pxe_undi.c.
References assert, s_PXENV_UNDI_GET_INFORMATION::BaseIo, s_PXENV_UNDI_GET_INFORMATION::CurrentNodeAddress, DBG, device::desc, net_device::dev, ETH_MAX_MTU, net_device::hw_addr, s_PXENV_UNDI_GET_INFORMATION::HwAddrLen, s_PXENV_UNDI_GET_INFORMATION::HwType, ll_protocol::init_addr, s_PXENV_UNDI_GET_INFORMATION::IntNumber, device_description::ioaddr, device_description::irq, net_device::ll_addr, ll_protocol::ll_addr_len, ll_protocol::ll_proto, net_device::ll_protocol, s_PXENV_UNDI_GET_INFORMATION::MaxTranUnit, memcpy, ll_protocol::name, ll_protocol::ntoa, ntohs, s_PXENV_UNDI_GET_INFORMATION::PermNodeAddress, PXENV_EXIT_SUCCESS, PXENV_STATUS_SUCCESS, s_PXENV_UNDI_GET_INFORMATION::ROMAddress, s_PXENV_UNDI_GET_INFORMATION::RxBufCt, s_PXENV_UNDI_GET_INFORMATION::Status, and s_PXENV_UNDI_GET_INFORMATION::TxBufCt.
Referenced by pxe_api_call().
00412 { 00413 struct device *dev = pxe_netdev->dev; 00414 struct ll_protocol *ll_protocol = pxe_netdev->ll_protocol; 00415 size_t ll_addr_len = ll_protocol->ll_addr_len; 00416 00417 DBG ( "PXENV_UNDI_GET_INFORMATION" ); 00418 00419 undi_get_information->BaseIo = dev->desc.ioaddr; 00420 undi_get_information->IntNumber = dev->desc.irq; 00421 /* Cheat: assume all cards can cope with this */ 00422 undi_get_information->MaxTranUnit = ETH_MAX_MTU; 00423 undi_get_information->HwType = ntohs ( ll_protocol->ll_proto ); 00424 undi_get_information->HwAddrLen = ll_addr_len; 00425 assert ( ll_addr_len <= 00426 sizeof ( undi_get_information->CurrentNodeAddress ) ); 00427 memcpy ( &undi_get_information->CurrentNodeAddress, 00428 pxe_netdev->ll_addr, 00429 sizeof ( undi_get_information->CurrentNodeAddress ) ); 00430 ll_protocol->init_addr ( pxe_netdev->hw_addr, 00431 &undi_get_information->PermNodeAddress ); 00432 undi_get_information->ROMAddress = 0; 00433 /* nic.rom_info->rom_segment; */ 00434 /* We only provide the ability to receive or transmit a single 00435 * packet at a time. This is a bootloader, not an OS. 00436 */ 00437 undi_get_information->RxBufCt = 1; 00438 undi_get_information->TxBufCt = 1; 00439 00440 DBG ( " io %04x irq %d mtu %d %s %s\n", 00441 undi_get_information->BaseIo, undi_get_information->IntNumber, 00442 undi_get_information->MaxTranUnit, ll_protocol->name, 00443 ll_protocol->ntoa ( &undi_get_information->CurrentNodeAddress )); 00444 undi_get_information->Status = PXENV_STATUS_SUCCESS; 00445 return PXENV_EXIT_SUCCESS; 00446 }
1.5.7.1