iPXE
Functions | Variables
Three-wire device types

Functions

static __attribute__ ((always_inline)) void init_at93c06(struct spi_device *device
 Initialise Atmel AT93C06 serial EEPROM. More...
 
 init_at93cx6 (device, organisation)
 

Variables

static unsigned int organisation
 
device nvs block_size = 1
 
device command_len = 3
 
device device nvs read = threewire_read
 
device nvs write = threewire_write
 
device address_len = ( ( organisation == 8 ) ? 7 : 6 )
 
typedef __attribute__
 Initialise completion queue. More...
 

Detailed Description

Function Documentation

◆ __attribute__()

static __attribute__ ( (always_inline)  )
inlinestatic

Initialise Atmel AT93C06 serial EEPROM.

Initialise Atmel AT93C66 serial EEPROM.

Initialise Atmel AT93C56 serial EEPROM.

Initialise Atmel AT93C46 serial EEPROM.

Parameters
deviceSPI device
organisationWord organisation (8 or 16)

◆ init_at93cx6()

init_at93cx6 ( device  ,
organisation   
)

Variable Documentation

◆ organisation

static unsigned int organisation
Initial value:
{
device->nvs.word_len_log2 = ( ( organisation == 8 ) ? 0 : 1 )
A hardware device.
Definition: device.h:73
static unsigned int organisation
Definition: threewire.h:56

Definition at line 56 of file threewire.h.

◆ block_size

device nvs block_size = 1

Definition at line 58 of file threewire.h.

Referenced by slam_mc_socket_deliver(), and slam_pull_header().

◆ command_len

device command_len = 3

Definition at line 59 of file threewire.h.

Referenced by guestrpc_command(), and pxenv_file_exec().

◆ read

Definition at line 60 of file threewire.h.

◆ write

device nvs write = threewire_write

◆ address_len

device address_len = ( ( organisation == 8 ) ? 7 : 6 )

Definition at line 73 of file threewire.h.

Referenced by falcon_spi_rw().

◆ __attribute__

static __attribute__
inline

Initialise completion queue.

Write model-specific register.

A segment descriptor.

Convert virtual address to user buffer.

Convert segment:offset address to user buffer.

Copy data from user buffer.

Copy data to user buffer.

Issue GuestRPC command.

Issue hypercall with five arguments.

Issue hypercall with four arguments.

Issue hypercall with three arguments.

Issue hypercall with two arguments.

Read from UART register.

Fill memory region with zero (where length is a compile-time constant)

Fill memory region.

Copy (possibly overlapping) memory area.

Copy memory area.

Test and clear bit atomically.

Test and set bit atomically.

Clear bit atomically.

Finalise big integer.

Shrink big integer.

Grow big integer.

Find highest bit set in big integer.

Test if bit is set in big integer.

Compare big integers.

Rotate big integer right.

Rotate big integer left.

Subtract big integers.

Add big integers.

Zero memory.

Copy memory.

Find last (i.e.

Find first (i.e.

Get Xen extra version string.

Remove page from physical address space.

Permit access to a page.

Invalidate access to a page.

Get version 2 grant table entry.

Get version 1 grant table entry.

Get grant table entry header.

Get number of grant table entries.

Get grant table version.

Set grant table version.

Allocate an unbound event channel.

Send event.

Michael MIC keys.

Initialise Atmel AT93C66 serial EEPROM.

Initialise Atmel AT93C56 serial EEPROM.

Initialise Atmel AT93C46 serial EEPROM.

Initialise Atmel AT93C06 serial EEPROM.

Microchip 25XX640 serial EEPROM.

ST M25P32 serial flash.

Atmel 25040 serial EEPROM.

Atmel AT25F1024 serial flash.

Set minimum and maximum timeouts.

Test to see if timer is currently running.

Test a bit within a file descriptor set.

Clear a bit within a file descriptor set.

Set a bit within a file descriptor set.

Check if pooled connection is reopenable.

Check if pooled connection is recyclable.

Mark pooled connection as alive.

Mark pooled connection as recyclable.

Drop reference to pixel buffer.

Major:minor version number.

Claim ownership of request parameter list.

Decrement request parameter list reference count.

Corrupt data with a specified probability.

SAS interface type.

SATA interface type.

RAID interface type.

I2O interface type.

Fibre Channel interface type.

IEEE1394 interface type.

USB interface type.

SCSI interface type.

ATAPI interface type.

ATA interface type.

PCI, PCI-X, PCI Express, or HyperTransport bus type.

Legacy bus type.

Base16-decode data.

Copy memory area backwards.

Update GCM counter.

Apply schedule round constant to key column.

Rotate key column.

Perform standalone AddRoundKey.

Perform decryption intermediate rounds.

Perform a single intermediate round.

Calculate intermediate round output column.

Multiply [Inv]MixColumns matrix column by S-boxed input byte.

Get ATA command private data.

Drop reference to ATA command.

Get reference to ATA command.

Drop reference to ATA device.

Check if NetVSC device is obsolete.

Initialise data buffer.

Check whether or not descriptor ring is empty.

Check whether or not descriptor ring is full.

Calculate descriptor ring remaining space.

Calculate descriptor ring fill level.

Check if card can access physical address.

Parameters
cqCompletion queue
countNumber of entries
sizeSize of each entry
addressPhysical address
address_okCard can access physical address
natsemiNational Semiconductor device
addressPhysical address
address_okCard can access physical address
ringDescriptor ring
fillFill level
ringDescriptor ring
spaceNumber of unused entries
ringDescriptor ring
is_fullRing is full
ringDescriptor ring
is_emptyRing is empty
bufferData buffer
pagesetPage set ID
opPage set operations
establish_typeEstablish data buffer message type
establish_xridEstablish data buffer relative transaction ID
revoke_typeRevoke data buffer message type
revoke_typeRevoke data buffer relative transaction ID
lenRequired length
netvscNetVSC device
is_obsoleteNetVSC device is obsolete

Check if NetVSC device is obsolete (i.e. was opened before the most recent Hyper-V reset).

Parameters
atadevATA device
atacmdATA command
Return values
atacmdATA command
Parameters
atacmdATA command
atacmdATA command
Return values
privPrivate data
Parameters
tableAES lookup table
strideAES row shift stride
inAES input state
offsetOutput byte offset (after [Inv]ShiftRows)
Return values
productProduct of matrix column with S(input byte)

Note that the specified offset is not the offset of the input byte; it is the offset of the output byte which corresponds to the input byte. This output byte offset is used to calculate both the input byte offset and to select the appropriate matric column.

With a compile-time constant offset, this function will optimise down to a single "movzbl" (to extract the input byte) and will generate a single x86 memory reference expression which can then be used directly within a single "xorl" instruction.

Parameters
tableAES lookup table
strideAES row shift stride
inAES input state
keyAES round key
columnColumn index
Return values
outputOutput column value
Parameters
tableAES lookup table
strideAES row shift stride
inAES input state
outAES output state
keyAES round key
inAES input state
outAES output state
keyRound keys
roundsNumber of rounds (must be odd)

As with aes_encrypt_rounds(), this function is deliberately marked as non-inlinable.

This function could potentially use the same binary code as is used for encryption. To compensate for the difference between ShiftRows and InvShiftRows, half of the input byte offsets would have to be modifiable at runtime (half by an offset of +4/-4, half by an offset of -4/+4 for ShiftRows/InvShiftRows). This can be accomplished in x86 assembly within the number of available registers, but GCC's register allocator struggles to do so, resulting in a significant performance decrease due to registers being spilled to the stack. We therefore use two separate but very similar binary functions based on the same C source.

Parameters
stateAES state
keyAES round key
columnKey column
Return values
columnUpdated key column
Parameters
columnKey column
rconRound constant
Return values
columnUpdated key column
Parameters
ctrCounter
deltaAmount to add to counter
destDestination address
srcSource address
lenLength
Return values
destDestination address
Parameters
encodedEncoded string
dataBuffer
lenLength of buffer
Return values
lenLength of data, or negative error
Parameters
rateReciprocal of fault probability (zero for no faults)
dataData
lenLength of data
Return values
rcReturn status code
Parameters
paramsParameter list, or NULL
paramsParameter list
Return values
paramsParameter list
Parameters
pixbufPixel buffer
poolPooled connection
poolPooled connection
Return values
recyclablePooled connection is recyclable
Parameters
poolPooled connection
Return values
reopenablePooled connection is reopenable
Parameters
fdFile descriptor
setFile descriptor set
fdFile descriptor
setFile descriptor set
Return values
is_setCorresponding bit is set
Parameters
timerRetry timer
Return values
runningNon-zero if timer is running
Parameters
timerRetry timer
minMinimum timeout (in ticks), or zero to use default
maxMaximum timeout (in ticks), or zero to use default
deviceSPI device
organisationWord organisation (8 or 16)
xenXen hypervisor
sendEvent descriptor
Return values
xenrcXen status code
Parameters
xenXen hypervisor
alloc_unboundEvent descriptor
Return values
xenrcXen status code
Parameters
xenXen hypervisor
versionVersion
Return values
xenrcXen status code
Parameters
xenXen hypervisor
Return values
entriesNumber of grant table entries
Parameters
xenXen hypervisor
refGrant reference
Return values
hdrGrant table entry header
Parameters
hdrGrant table entry header
Return values
v1Version 1 grant table entry
Parameters
hdrGrant table entry header
Return values
v2Version 2 grant table entry
Parameters
xenXen hypervisor
refGrant reference
xenXen hypervisor
refGrant reference
domidDomain ID
subflagsAdditional flags
addrPhysical address within page
Return values
rcReturn status code
Parameters
xenXen hypervisor
removePage mapping descriptor
Return values
xenrcXen status code
Parameters
xenXen hypervisor
extraversionExtra version string to fill in
Return values
xenrcXen status code

least significant) set bit

Parameters
xValue
Return values
lsbLeast significant bit set in value (LSB=1), or zero

most significant) set bit

Parameters
xValue
Return values
msbMost significant bit set in value (LSB=1), or zero
Parameters
srcSource
destDestination
lenLength
destDestination
lenLength
addend0Element 0 of big integer to add
value0Element 0 of big integer to be added to
sizeNumber of elements
subtrahend0Element 0 of big integer to subtract
value0Element 0 of big integer to be subtracted from
sizeNumber of elements
value0Element 0 of big integer
sizeNumber of elements
value0Element 0 of big integer
reference0Element 0 of reference big integer
sizeNumber of elements
Return values
geqBig integer is greater than or equal to the reference
Parameters
value0Element 0 of big integer
sizeNumber of elements
bitBit to test
Return values
is_setBit is set
Parameters
value0Element 0 of big integer
sizeNumber of elements
Return values
max_bitHighest bit set + 1 (or 0 if no bits set)
Parameters
source0Element 0 of source big integer
source_sizeNumber of elements in source big integer
dest0Element 0 of destination big integer
dest_sizeNumber of elements in destination big integer
value0Element 0 of big integer to finalise
sizeNumber of elements
outOutput buffer
lenLength of output buffer
bitBit to set
bitsBit field
bitBit to set
bitsBit field
Return values
oldOld value of bit (zero or non-zero)
Parameters
destDestination address
fillFill pattern
lenLength
Return values
destDestination address
Parameters
destDestination address
lenLength
Return values
destDestination address
Parameters
uartUART
addrRegister address
Return values
dataData
Parameters
xenXen hypervisor
hypercallHypercall number
arg1First argument
arg2Second argument
Return values
retvalReturn value
Parameters
xenXen hypervisor
hypercallHypercall number
arg1First argument
arg2Second argument
arg3Third argument
Return values
retvalReturn value
Parameters
xenXen hypervisor
hypercallHypercall number
arg1First argument
arg2Second argument
arg3Third argument
arg4Fourth argument
Return values
retvalReturn value
Parameters
xenXen hypervisor
hypercallHypercall number
arg1First argument
arg2Second argument
arg3Third argument
arg4Fourth argument
arg5Fifth argument
Return values
retvalReturn value
Parameters
channelChannel number
subcommandGuestRPC subcommand
parameterSubcommand-specific parameter
Return values
edxhiSubcommand-specific result
ebxSubcommand-specific result
statusCommand status
Parameters
bufferUser buffer
offsetOffset within user buffer
srcSource
lenLength
destDestination
bufferUser buffer
offsetOffset within user buffer
lenLength
segmentReal-mode segment
offsetReal-mode offset
Return values
bufferUser buffer
Parameters
virtualVirtual address
Return values
bufferUser buffer

This constructs a user buffer from an ordinary pointer. Use it when you need to pass a pointer to an internal buffer to a function that expects a userptr_t.

least significant) set bit

Parameters
valueValue
Return values
lsbLeast significant bit set in value (LSB=1), or zero

most significant) set bit

Parameters
valueValue
Return values
msbMost significant bit set in value (LSB=1), or zero
Parameters
msrModel-specific register
valueValue

Definition at line 186 of file myson.h.

187  {
188 
189  /* In a 32-bit build, all addresses can be accessed */
190  if ( sizeof ( physaddr_t ) <= sizeof ( uint32_t ) )
191  return 1;
192 
193  /* Card can access all addresses below 4GB */
194  if ( ( address & ~0xffffffffULL ) == 0 )
195  return 1;
196 
197  return 0;
198 }
unsigned int uint32_t
Definition: stdint.h:12
unsigned long physaddr_t
Definition: stdint.h:20
uint32_t address
Buffer start address.
Definition: myson.h:16