diff options
Diffstat (limited to 'drivers/staging/hv/RingBuffer.h')
-rw-r--r-- | drivers/staging/hv/RingBuffer.h | 119 |
1 files changed, 51 insertions, 68 deletions
diff --git a/drivers/staging/hv/RingBuffer.h b/drivers/staging/hv/RingBuffer.h index 16586148bef..17e859fa510 100644 --- a/drivers/staging/hv/RingBuffer.h +++ b/drivers/staging/hv/RingBuffer.h @@ -30,91 +30,74 @@ #include "include/osd.h" typedef struct _RING_BUFFER { - volatile u32 WriteIndex; /* Offset in bytes from the start of ring data below */ - volatile u32 ReadIndex; /* Offset in bytes from the start of ring data below */ + /* Offset in bytes from the start of ring data below */ + volatile u32 WriteIndex; + + /* Offset in bytes from the start of ring data below */ + volatile u32 ReadIndex; volatile u32 InterruptMask; - u8 Reserved[4084]; /* Pad it to PAGE_SIZE so that data starts on page boundary */ - /* NOTE: The InterruptMask field is used only for channels but since our vmbus connection */ - /* also uses this data structure and its data starts here, we commented out this field. */ + + /* Pad it to PAGE_SIZE so that data starts on page boundary */ + u8 Reserved[4084]; + + /* NOTE: + * The InterruptMask field is used only for channels but since our + * vmbus connection also uses this data structure and its data starts + * here, we commented out this field. + */ /* volatile u32 InterruptMask; */ - /* Ring data starts here + RingDataStartOffset !!! DO NOT place any fields below this !!! */ - u8 Buffer[0]; + + /* + * Ring data starts here + RingDataStartOffset + * !!! DO NOT place any fields below this !!! + */ + u8 Buffer[0]; } __attribute__((packed)) RING_BUFFER; typedef struct _RING_BUFFER_INFO { - RING_BUFFER* RingBuffer; - u32 RingSize; /* Include the shared header */ + RING_BUFFER *RingBuffer; + u32 RingSize; /* Include the shared header */ spinlock_t ring_lock; - u32 RingDataSize; /* < ringSize */ - u32 RingDataStartOffset; + u32 RingDataSize; /* < ringSize */ + u32 RingDataStartOffset; } RING_BUFFER_INFO; - typedef struct _RING_BUFFER_DEBUG_INFO { - u32 CurrentInterruptMask; - u32 CurrentReadIndex; - u32 CurrentWriteIndex; - u32 BytesAvailToRead; - u32 BytesAvailToWrite; -}RING_BUFFER_DEBUG_INFO; + u32 CurrentInterruptMask; + u32 CurrentReadIndex; + u32 CurrentWriteIndex; + u32 BytesAvailToRead; + u32 BytesAvailToWrite; +} RING_BUFFER_DEBUG_INFO; /* Interface */ -static int -RingBufferInit( - RING_BUFFER_INFO *RingInfo, - void * Buffer, - u32 BufferLen - ); - -static void -RingBufferCleanup( - RING_BUFFER_INFO *RingInfo - ); - -static int -RingBufferWrite( - RING_BUFFER_INFO *RingInfo, - struct scatterlist *sglist, - u32 sgcount - ); - -static int -RingBufferPeek( - RING_BUFFER_INFO *RingInfo, - void * Buffer, - u32 BufferLen - ); - -static int -RingBufferRead( - RING_BUFFER_INFO *RingInfo, - void * Buffer, - u32 BufferLen, - u32 Offset - ); - -static u32 -GetRingBufferInterruptMask( - RING_BUFFER_INFO *RingInfo - ); - -static void -DumpRingInfo( - RING_BUFFER_INFO* RingInfo, - char *Prefix - ); - -static void -RingBufferGetDebugInfo( - RING_BUFFER_INFO *RingInfo, - RING_BUFFER_DEBUG_INFO *DebugInfo - ); +int RingBufferInit(RING_BUFFER_INFO *RingInfo, void *Buffer, u32 BufferLen); + +void RingBufferCleanup(RING_BUFFER_INFO *RingInfo); + +int RingBufferWrite(RING_BUFFER_INFO *RingInfo, + struct scatterlist *sglist, + u32 sgcount); + +int RingBufferPeek(RING_BUFFER_INFO *RingInfo, void *Buffer, u32 BufferLen); + +int RingBufferRead(RING_BUFFER_INFO *RingInfo, + void *Buffer, + u32 BufferLen, + u32 Offset); + +u32 GetRingBufferInterruptMask(RING_BUFFER_INFO *RingInfo); + +void DumpRingInfo(RING_BUFFER_INFO *RingInfo, char *Prefix); + +void RingBufferGetDebugInfo(RING_BUFFER_INFO *RingInfo, + RING_BUFFER_DEBUG_INFO *DebugInfo); #endif /* _RING_BUFFER_H_ */ |