Linux Kernel  3.7.1
 All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros Groups Pages
Public Member Functions | Data Fields
lepp_queue_t Struct Reference

#include <drv_xgbe_intf.h>

Public Member Functions

char cmds[LEPP_CMD_QUEUE_BYTES__attribute__ ((aligned(CHIP_L2_LINE_SIZE())))
 
lepp_comp_t comps[LEPP_COMP_QUEUE_SIZE__attribute__ ((aligned(CHIP_L2_LINE_SIZE())))
 

Data Fields

unsigned int comp_head
 
volatile unsigned int comp_busy
 
unsigned int comp_tail
 
volatile unsigned int cmd_head
 
volatile unsigned int cmd_tail
 

Detailed Description

A queue used to convey egress commands from the client to LEPP.

Definition at line 493 of file drv_xgbe_intf.h.

Member Function Documentation

A ring of variable-sized egress DMA commands.

NOTE: Only written by the user, only read by LEPP.

A ring of user completion data. NOTE: Only read/written by the user.

Field Documentation

volatile unsigned int cmd_head

Byte index of first command enqueued for LEPP but not yet processed.

This is always divisible by sizeof(void*) and always <= LEPP_CMD_LIMIT.

NOTE: LEPP advances this counter as soon as it no longer needs the cmds[] storage for this entry, but the transfer is not actually complete (i.e. the buffer pointed to by the command is no longer needed) until comp_busy advances.

If this is equal to cmd_tail, the ring is empty.

NOTE: This is only written by LEPP, only read by the user.

Definition at line 532 of file drv_xgbe_intf.h.

volatile unsigned int cmd_tail

Byte index of first empty slot in the command ring. This field can be incremented up to but not equal to cmd_head (because that would mean the ring is empty).

This is always divisible by sizeof(void*) and always <= LEPP_CMD_LIMIT.

NOTE: This is read/written by the user, only read by LEPP.

Definition at line 542 of file drv_xgbe_intf.h.

volatile unsigned int comp_busy

Index of first completion record not yet completed. If this is equal to comp_tail, there are no such completions. This index gets advanced (modulo LEPP_QUEUE_SIZE) whenever a command with the 'completion' bit set is finished.

NOTE: This is only written by LEPP, only read by the user.

Definition at line 509 of file drv_xgbe_intf.h.

unsigned int comp_head

Index of first completion not yet processed by user code. If this is equal to comp_busy, there are no such completions.

NOTE: This is only read/written by the user.

Definition at line 500 of file drv_xgbe_intf.h.

unsigned int comp_tail

Index of the first empty slot in the completion ring. Entries from this up to but not including comp_head (in ring order) can be filled in with completion data.

NOTE: This is only read/written by the user.

Definition at line 517 of file drv_xgbe_intf.h.


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