Defines | |
| #define | PACKED __attribute__ (( packed )) |
| Declare a data structure as packed. | |
| #define | __unused __attribute__ (( unused )) |
| Declare a variable or data structure as unused. | |
| #define | __pure __attribute__ (( pure )) |
| Declare a function as pure - i.e. | |
| #define | __const __attribute__ (( const )) |
| Declare a function as const - i.e. | |
| #define | __nonnull __attribute__ (( nonnull )) |
| Declare a function's pointer parameters as non-null - i.e. | |
| #define | __malloc __attribute__ (( malloc )) |
| Declare a pointer returned by a function as a unique memory address as returned by malloc-type functions. | |
| #define | __used __attribute__ (( used )) |
| Declare a function as used. | |
| #define | __aligned __attribute__ (( aligned ( 16 ) )) |
| Declare a data structure to be aligned with 16-byte alignment. | |
| #define | __always_inline __attribute__ (( always_inline )) |
| Declare a function to be always inline. | |
| #define | __shared __asm__ ( "_shared_bss" ) __aligned |
| Shared data. | |
Declare a data structure as packed.
A full register dump.
A segment register dump.
Parameter block for undi_loader().
Parameter block for pxenv_file_exit_hook().
Parameter block for pxenv_file_api_check().
Parameter block for pxenv_file_exec().
Parameter block for pxenv_get_file_size().
Parameter block for pxenv_file_read().
Parameter block for pxenv_file_select().
Parameter block for pxenv_file_close().
Parameter block for pxenv_file_open().
Parameter block for pxenv_undi_isr().
Parameter block for pxenv_undi_get_state().
Parameter block for pxenv_undi_get_iface_info().
Parameter block for pxenv_undi_get_nic_type().
Information for an ISAPnP or equivalent NIC.
Information for a PCI or equivalent NIC.
Parameter block for pxenv_undi_get_mcast_address().
Parameter block for pxenv_undi_force_interrupt().
Parameter block for pxenv_undi_initiate_diags().
Parameter block for pxenv_undi_clear_statistics().
Parameter block for pxenv_undi_get_statistics().
Parameter block for pxenv_undi_get_information().
Parameter block for pxenv_undi_set_packet_filter().
Parameter block for pxenv_undi_set_station_address().
Parameter block for pxenv_undi_set_mcast_address().
Parameter block for pxenv_undi_transmit().
A transmit buffer descriptor, as pointed to by s_PXENV_UNDI_TRANSMIT::TBD.
Parameter block for pxenv_undi_close().
Parameter block for pxenv_undi_open().
Parameter block for pxenv_undi_shutdown().
Parameter block for pxenv_undi_reset_adapter().
List of multicast MAC addresses.
Parameter block for pxenv_undi_initialize().
Parameter block for pxenv_undi_cleanup().
Parameter block for pxenv_undi_startup().
Parameter block for pxenv_udp_read().
Parameter block for pxenv_udp_write().
Parameter block for pxenv_udp_close().
Parameter block for pxenv_udp_open().
Parameter block for pxenv_tftp_get_fsize().
Parameter block for pxenv_tftp_read_file().
Parameter block for pxenv_tftp_read().
Parameter block for pxenv_tftp_close().
Parameter block for pxenv_tftp_open().
Parameter block for pxenv_stop_base().
Parameter block for pxenv_start_base().
Parameter block for pxenv_stop_undi().
Parameter block for pxenv_start_undi().
Format of buffer filled in by pxenv_get_cached_info().
Parameter block for pxenv_get_cached_info().
Parameter block for pxenv_unload_stack().
The !PXE structure.
A PCI expansion header.
An UNDI ROM ID structure.
An UNDI expansion ROM header.
This somewhat convoluted data structure simply describes the layout of a DHCP packet. Refer to RFC2131 section 2 for a full description.
The i386 has no equivalent of the pushal or popal instructions for the segment registers. We adopt the convention of always using the sequences
pushw %gs ; pushw %fs ; pushw %es ; pushw %ds ; pushw %ss ; pushw %cs
and
addw $4, %sp ; popw %ds ; popw %es ; popw %fs ; popw %gs
This is the data structure that is created and read back by these instruction sequences.
This data structure is created by the instructions
pushfl pushal pushw %gs ; pushw %fs ; pushw %es ; pushw %ds ; pushw %ss ; pushw %cs
and can be read back using the instructions
addw $4, %sp ; popw %ds ; popw %es ; popw %fs ; popw %gs popal popfl
prot_call() and kir_call() create this data structure on the stack and pass in a pointer to this structure.
Definition at line 462 of file compiler.h.
| #define __unused __attribute__ (( unused )) |
| #define __pure __attribute__ (( pure )) |
| #define __const __attribute__ (( const )) |
Declare a function as const - i.e.
it does not access global memory (including dereferencing pointers passed to it) at all. Must also not call any non-const functions.
Definition at line 477 of file compiler.h.
| #define __nonnull __attribute__ (( nonnull )) |
Declare a function's pointer parameters as non-null - i.e.
force compiler to check pointers at compile time and enable possible optimizations based on that fact
Definition at line 484 of file compiler.h.
| #define __malloc __attribute__ (( malloc )) |
Declare a pointer returned by a function as a unique memory address as returned by malloc-type functions.
Definition at line 490 of file compiler.h.
| #define __used __attribute__ (( used )) |
Declare a function as used.
Necessary only if the function is called only from assembler code.
Definition at line 497 of file compiler.h.
| #define __aligned __attribute__ (( aligned ( 16 ) )) |
Declare a data structure to be aligned with 16-byte alignment.
Definition at line 500 of file compiler.h.
| #define __always_inline __attribute__ (( always_inline )) |
| #define __shared __asm__ ( "_shared_bss" ) __aligned |
Shared data.
To save space in the binary when multiple-driver images are compiled, uninitialised data areas can be shared between drivers. This will typically be used to share statically-allocated receive and transmit buffers between drivers.
Use as e.g.
struct { char rx_buf[NUM_RX_BUF][RX_BUF_SIZE]; char tx_buf[TX_BUF_SIZE]; } my_static_data __shared;
Definition at line 525 of file compiler.h.
1.5.7.1