iPXE
Data Fields
s_pxe_cpb_start_31 Struct Reference

#include <UefiPxe.h>

Data Fields

UINT64 Delay
 PXE_VOID Delay(UINT64 UnqId, UINTN microseconds);. More...
 
UINT64 Block
 PXE_VOID Block(UINT64 unq_id, UINT32 enable);. More...
 
UINT64 Virt2Phys
 PXE_VOID Virt2Phys(UINT64 UnqId, UINT64 virtual, UINT64 physical_ptr);. More...
 
UINT64 Mem_IO
 PXE_VOID Mem_IO(UINT64 UnqId, UINT8 read_write, UINT8 len, UINT64 port, UINT64 buf_addr);. More...
 
UINT64 Map_Mem
 PXE_VOID Map_Mem(UINT64 unq_id, UINT64 virtual_addr, UINT32 size, UINT32 Direction, UINT64 mapped_addr);. More...
 
UINT64 UnMap_Mem
 PXE_VOID UnMap_Mem(UINT64 unq_id, UINT64 virtual_addr, UINT32 size, UINT32 Direction, UINT64 mapped_addr);. More...
 
UINT64 Sync_Mem
 PXE_VOID Sync_Mem(UINT64 unq_id, UINT64 virtual, UINT32 size, UINT32 Direction, UINT64 mapped_addr);. More...
 
UINT64 Unique_ID
 protocol driver can provide anything for this Unique_ID, UNDI remembers that as just a 64bit value associated to the interface specified by the ifnum and gives it back as a parameter to all the call-back routines when calling for that interface! More...
 

Detailed Description

Definition at line 979 of file UefiPxe.h.

Field Documentation

◆ Delay

UINT64 s_pxe_cpb_start_31::Delay

PXE_VOID Delay(UINT64 UnqId, UINTN microseconds);.

UNDI will never request a delay smaller than 10 microseconds and will always request delays in increments of 10 microseconds. The Delay() CallBack routine must delay between n and n + 10 microseconds before returning control to the UNDI.

This field cannot be set to zero.

Definition at line 990 of file UefiPxe.h.

Referenced by nii_start_undi().

◆ Block

UINT64 s_pxe_cpb_start_31::Block

PXE_VOID Block(UINT64 unq_id, UINT32 enable);.

UNDI may need to block multi-threaded/multi-processor access to critical code sections when programming or accessing the network device. To this end, a blocking service is needed by the UNDI. When UNDI needs a block, it will call Block() passing a non-zero value. When UNDI no longer needs a block, it will call Block() with a zero value. When called, if the Block() is already enabled, do not return control to the UNDI until the previous Block() is disabled.

This field cannot be set to zero.

Definition at line 1006 of file UefiPxe.h.

Referenced by nii_start_undi().

◆ Virt2Phys

UINT64 s_pxe_cpb_start_31::Virt2Phys

PXE_VOID Virt2Phys(UINT64 UnqId, UINT64 virtual, UINT64 physical_ptr);.

UNDI will pass the virtual address of a buffer and the virtual address of a 64-bit physical buffer. Convert the virtual address to a physical address and write the result to the physical address buffer. If virtual and physical addresses are the same, just copy the virtual address to the physical address buffer.

This field can be set to zero if virtual and physical addresses are equal.

Definition at line 1020 of file UefiPxe.h.

◆ Mem_IO

UINT64 s_pxe_cpb_start_31::Mem_IO

PXE_VOID Mem_IO(UINT64 UnqId, UINT8 read_write, UINT8 len, UINT64 port, UINT64 buf_addr);.

UNDI will read or write the device io space using this call back function. It passes the number of bytes as the len parameter and it will be either 1,2,4 or 8.

This field can not be set to zero.

Definition at line 1031 of file UefiPxe.h.

Referenced by nii_start_undi().

◆ Map_Mem

UINT64 s_pxe_cpb_start_31::Map_Mem

PXE_VOID Map_Mem(UINT64 unq_id, UINT64 virtual_addr, UINT32 size, UINT32 Direction, UINT64 mapped_addr);.

UNDI will pass the virtual address of a buffer, direction of the data flow from/to the mapped buffer (the constants are defined below) and a place holder (pointer) for the mapped address. This call will Map the given address to a physical DMA address and write the result to the mapped_addr pointer. If there is no need to map the given address to a lower address (i.e. the given address is associated with a physical address that is already compatible to be used with the DMA, it converts the given virtual address to it's physical address and write that in the mapped address pointer.

This field can be set to zero if there is no mapping service available.

Definition at line 1048 of file UefiPxe.h.

Referenced by nii_start_undi().

◆ UnMap_Mem

UINT64 s_pxe_cpb_start_31::UnMap_Mem

PXE_VOID UnMap_Mem(UINT64 unq_id, UINT64 virtual_addr, UINT32 size, UINT32 Direction, UINT64 mapped_addr);.

UNDI will pass the virtual and mapped addresses of a buffer. This call will un map the given address.

This field can be set to zero if there is no unmapping service available.

Definition at line 1059 of file UefiPxe.h.

Referenced by nii_start_undi().

◆ Sync_Mem

UINT64 s_pxe_cpb_start_31::Sync_Mem

PXE_VOID Sync_Mem(UINT64 unq_id, UINT64 virtual, UINT32 size, UINT32 Direction, UINT64 mapped_addr);.

UNDI will pass the virtual and mapped addresses of a buffer. This call will synchronize the contents of both the virtual and mapped. buffers for the given Direction.

This field can be set to zero if there is no service available.

Definition at line 1071 of file UefiPxe.h.

Referenced by nii_start_undi().

◆ Unique_ID

UINT64 s_pxe_cpb_start_31::Unique_ID

protocol driver can provide anything for this Unique_ID, UNDI remembers that as just a 64bit value associated to the interface specified by the ifnum and gives it back as a parameter to all the call-back routines when calling for that interface!

Definition at line 1079 of file UefiPxe.h.

Referenced by nii_start_undi().


The documentation for this struct was generated from the following file: