PXENV_UNDI_SET_STATION_ADDRESS
[PXE UNDI API]

UNDI SET STATION ADDRESS. More...


Data Structures

struct  s_PXENV_UNDI_SET_STATION_ADDRESS
 Parameter block for pxenv_undi_set_station_address(). More...

Defines

#define PXENV_UNDI_SET_STATION_ADDRESS   0x000a
 PXE API function code for pxenv_undi_set_station_address().

Typedefs

typedef struct
s_PXENV_UNDI_SET_STATION_ADDRESS 
PXENV_UNDI_SET_STATION_ADDRESS_t

Functions

PXENV_EXIT_t pxenv_undi_set_station_address (struct s_PXENV_UNDI_SET_STATION_ADDRESS *undi_set_station_address)


Detailed Description

UNDI SET STATION ADDRESS.

Define Documentation

#define PXENV_UNDI_SET_STATION_ADDRESS   0x000a

PXE API function code for pxenv_undi_set_station_address().

Definition at line 1162 of file pxe_api.h.

Referenced by pxe_api_call(), pxeparent_function_name(), and undinet_open().


Typedef Documentation

Definition at line 1170 of file pxe_api.h.


Function Documentation

PXENV_EXIT_t pxenv_undi_set_station_address ( struct s_PXENV_UNDI_SET_STATION_ADDRESS undi_set_station_address  ) 

Definition at line 359 of file pxe_undi.c.

References DBG, net_device::ll_addr, ll_protocol::ll_addr_len, net_device::ll_protocol, memcpy, netdev_is_open(), ll_protocol::ntoa, PXENV_EXIT_FAILURE, PXENV_EXIT_SUCCESS, PXENV_STATUS_SUCCESS, PXENV_STATUS_UNDI_INVALID_STATE, s_PXENV_UNDI_SET_STATION_ADDRESS::StationAddress, and s_PXENV_UNDI_SET_STATION_ADDRESS::Status.

Referenced by pxe_api_call().

00360                                                              {
00361         struct ll_protocol *ll_protocol = pxe_netdev->ll_protocol;
00362 
00363         DBG ( "PXENV_UNDI_SET_STATION_ADDRESS %s",
00364               ll_protocol->ntoa ( undi_set_station_address->StationAddress ) );
00365 
00366         /* If adapter is open, the change will have no effect; return
00367          * an error
00368          */
00369         if ( netdev_is_open ( pxe_netdev ) ) {
00370                 DBG ( " failed: netdev is open\n" );
00371                 undi_set_station_address->Status =
00372                         PXENV_STATUS_UNDI_INVALID_STATE;
00373                 return PXENV_EXIT_FAILURE;
00374         }
00375 
00376         /* Update MAC address */
00377         memcpy ( pxe_netdev->ll_addr,
00378                  &undi_set_station_address->StationAddress,
00379                  ll_protocol->ll_addr_len );
00380 
00381         DBG ( "\n" );
00382         undi_set_station_address->Status = PXENV_STATUS_SUCCESS;
00383         return PXENV_EXIT_SUCCESS;
00384 }


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