PXENV_UNDI_GET_INFORMATION
[PXE UNDI API]

UNDI GET INFORMATION. More...


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)


Detailed Description

UNDI GET INFORMATION.

Define Documentation

#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().

#define ETHER_TYPE   1

Ethernet (10Mb).

Definition at line 1220 of file pxe_api.h.

#define EXP_ETHER_TYPE   2

Experimental Ethernet (3Mb).

Definition at line 1221 of file pxe_api.h.

#define AX25_TYPE   3

Amateur Radio AX.25.

Definition at line 1222 of file pxe_api.h.

#define TOKEN_RING_TYPE   4

Proteon ProNET Token Ring.

Definition at line 1223 of file pxe_api.h.

#define CHAOS_TYPE   5

Chaos.

Definition at line 1224 of file pxe_api.h.

#define IEEE_TYPE   6

IEEE 802 Networks.

Definition at line 1225 of file pxe_api.h.

#define ARCNET_TYPE   7

ARCNET.

Definition at line 1226 of file pxe_api.h.


Typedef Documentation

Definition at line 1249 of file pxe_api.h.


Function Documentation

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 }


Generated on Tue Apr 6 20:01:59 2010 for gPXE by  doxygen 1.5.7.1