contains environment-specific UDI definitions
Bogdan Barbu Marcel Sondaar
udi_env.h | contains environment-specific UDI definitions |
mos_mei_cb_mold_t | contains index to control-block-info mappings for a given region |
mos_region_t | contains the backend properties of a region |
mos_buf_impl_t | Generic part of an actual storage buffer |
Variables | |
refcount | Holds the amount of references to this data. |
free_op | a function pointer to the buffer deconstructor |
copy_op | a function pointer to a generic data copying function |
lock_op | a function pointer that gives direct read-only access to the data, allowing to defer or avoid a copy operation This function may be NULL when direct exposure is not available |
unlock_op | a function pointer to the unlock function this function may be NULL, but only if copy_op is NULL as well |
mos_buf_part_t | Describes a segment of data |
Variables | |
data | contains a reference to the actual data storage in an mos_buf_impl_t |
next | Contains a reference to the next buffer part in the sequence |
prev | Contains a reference to the previous buffer part in the sequence |
size | amount of bytes referenced by this buffer part |
offset | offset into the actual data that stores the data |
mos_buf_tag_t | A linked list of tags |
Variables | |
tag | contains the tag info |
next | points to the next tag, if any |
mos_buf_t | Contains the hidden portion of a buffer object. |
Variables | |
first | Contains a pointer to the first buffer part in the list, which is a mos_buf_part_t. |
last | Contains a pointer to the last buffer part in the list, which is a mos_buf_part_t. |
tags | Contains a pointer to the first tag in the list of associated tags as mos_buf_tag_t |
allocated | Contains the total size of the buffer, and therefore indirectly the offset of last allowing for reverse searches |
Functions | |
_udi_buf_inject | Helper function for modifying buffer segments |
mos_pio_impl_t | Contains the functions to perform PIO instructions |
Variables | |
limit | The size of this array (for safety checking) |
mos_mmio_pio_impl_t | Contains the functions to perform PIO instructions |
Variables | |
pio_impl | Pointer to the internal implementation functions |
base | The starting virtual address where this area is mapped |
mos_pio_handle_list | List of available PIO regsets |
mos_system_cb_t | contains the info the message handling backends needs to convert between system and UDI conventions. |
Variables | |
origin | contains the sender address of a message |
requestindex | contains the request number for pipelined requests |
mos_cb_t | |
mos_channel_t | contains the hidden part of the channel type. |
udi_pio_local_trans_t | local storage of opcodes |
Generic part of an actual storage buffer
Variables | |
refcount | Holds the amount of references to this data. |
free_op | a function pointer to the buffer deconstructor |
copy_op | a function pointer to a generic data copying function |
lock_op | a function pointer that gives direct read-only access to the data, allowing to defer or avoid a copy operation This function may be NULL when direct exposure is not available |
unlock_op | a function pointer to the unlock function this function may be NULL, but only if copy_op is NULL as well |
udi_index_t refcount
Holds the amount of references to this data. Once the refcount reaches zero, the buffer is unused and should be freed
void ( * free_op )(struct mos_buf_impl * buf)
a function pointer to the buffer deconstructor
buf | the pointer to this structure |
none
void ( * copy_op )(struct mos_buf_impl * buf, void * dst, udi_size_t off, udi_size_t len)
a function pointer to a generic data copying function
buf | the pointer to this structure |
dst | a pointer to a memory location where a copy should be made |
off | the offset into the buffer |
len | the amount of bytes to copy |
none
const void * ( * lock_op )(struct mos_buf_impl * buf, udi_size_t off, udi_size_t len)
a function pointer that gives direct read-only access to the data, allowing to defer or avoid a copy operation This function may be NULL when direct exposure is not available
buf | the pointer to this structure |
off | the offset into the buffer |
len | the length of the buffer |
return | a pointer to immutable data storage starting at off, or NULL on failure |
void ( * unlock_op )(struct mos_buf_impl * buf, const void * pointer)
a function pointer to the unlock function this function may be NULL, but only if copy_op is NULL as well
buf | the pointer to this structure |
pointer | the previously acquired pointer |
none. The passed pointer may no longer be used.
Describes a segment of data
Variables | |
data | contains a reference to the actual data storage in an mos_buf_impl_t |
next | Contains a reference to the next buffer part in the sequence |
prev | Contains a reference to the previous buffer part in the sequence |
size | amount of bytes referenced by this buffer part |
offset | offset into the actual data that stores the data |
mos_buf_impl_t * data
contains a reference to the actual data storage in an mos_buf_impl_t
Contains the hidden portion of a buffer object. It is located directly in front of the udi_buf_t structure Buffers are composed of segments of immutable data, stored in a linked-list fashion. This gives O(1) access to the most expected operation (concatenations), but suffers on repeated random mutations. However, buffer calls should be minimal compared to the actual amount of data stored due to general overhead.
Variables | |
first | Contains a pointer to the first buffer part in the list, which is a mos_buf_part_t. |
last | Contains a pointer to the last buffer part in the list, which is a mos_buf_part_t. |
tags | Contains a pointer to the first tag in the list of associated tags as mos_buf_tag_t |
allocated | Contains the total size of the buffer, and therefore indirectly the offset of last allowing for reverse searches |
Functions | |
_udi_buf_inject | Helper function for modifying buffer segments |
mos_buf_part_t * first
Contains a pointer to the first buffer part in the list, which is a mos_buf_part_t.
mos_buf_part_t * last
Contains a pointer to the last buffer part in the list, which is a mos_buf_part_t.
mos_buf_tag_t * tags
Contains a pointer to the first tag in the list of associated tags as mos_buf_tag_t
udi_size_t allocated
Contains the total size of the buffer, and therefore indirectly the offset of last allowing for reverse searches
void _udi_buf_inject( mos_buf_t * buf, mos_buf_part_t * part, udi_size_t off, udi_size_t len )
Helper function for modifying buffer segments
buf | the internal buffer object to modify |
part | the segment to inject |
off | the offset into the buffer where this segment belongs |
len | the amount of bytes to overwrite (0 to just insert) |
none
contains the info the message handling backends needs to convert between system and UDI conventions.
Variables | |
origin | contains the sender address of a message |
requestindex | contains the request number for pipelined requests |
Holds the amount of references to this data.
udi_index_t refcount
a function pointer to the buffer deconstructor
void ( * free_op )(struct mos_buf_impl * buf)
a function pointer to a generic data copying function
void ( * copy_op )(struct mos_buf_impl * buf, void * dst, udi_size_t off, udi_size_t len)
a function pointer that gives direct read-only access to the data, allowing to defer or avoid a copy operation This function may be NULL when direct exposure is not available
const void * ( * lock_op )(struct mos_buf_impl * buf, udi_size_t off, udi_size_t len)
a function pointer to the unlock function this function may be NULL, but only if copy_op is NULL as well
void ( * unlock_op )(struct mos_buf_impl * buf, const void * pointer)
contains a reference to the actual data storage in an mos_buf_impl_t
mos_buf_impl_t * data
Contains a reference to the next buffer part in the sequence
struct mos_buf_part * next
Contains a reference to the previous buffer part in the sequence
struct mos_buf_part * prev
amount of bytes referenced by this buffer part
udi_size_t size
offset into the actual data that stores the data
udi_size_t offset
contains the tag info
udi_buf_tag_t tag
points to the next tag, if any
struct mos_buf_tag * next
Contains a pointer to the first buffer part in the list, which is a mos_buf_part_t.
mos_buf_part_t * first
Contains a pointer to the last buffer part in the list, which is a mos_buf_part_t.
mos_buf_part_t * last
Contains a pointer to the first tag in the list of associated tags as mos_buf_tag_t
mos_buf_tag_t * tags
Contains the total size of the buffer, and therefore indirectly the offset of last allowing for reverse searches
udi_size_t allocated
Helper function for modifying buffer segments
void _udi_buf_inject( mos_buf_t * buf, mos_buf_part_t * part, udi_size_t off, udi_size_t len )
The size of this array (for safety checking)
udi_size_t limit
Pointer to the internal implementation functions
mos_pio_impl_t pio_impl
The starting virtual address where this area is mapped
void * base
List of available PIO regsets
typedef struct mos_pio_handle_list
contains the sender address of a message
udi_ubit32_t origin
contains the request number for pipelined requests
udi_ubit32_t requestindex
local storage of opcodes
typedef struct udi_pio_local_trans_t