cyclic_buffer.h (1108B)
1 /* 2 * 3 * 4 * This license is set out in https://raw.githubusercontent.com/Broadcom-Network-Switching-Software/OpenBCM/master/Legal/LICENSE file. 5 * 6 * Copyright 2007-2019 Broadcom Inc. All rights reserved. 7 * 8 * DFE CELLS BUFFER H 9 */ 10 11 #ifndef _SHR_CYCLIC_BUFFER_H_ 12 #define _SHR_CYCLIC_BUFFER_H_ 13 14 #include <sal/types.h> 15 16 typedef struct cyclic_buffer_s { 17 uint8* elements; 18 int oldest; 19 int count; 20 int max_allowed; 21 int entry_size; 22 } cyclic_buffer_t; 23 24 int cyclic_buffer_create(int unit, cyclic_buffer_t* buffer, int max_entry_size, int max_buffered_elements, char* buffer_name); 25 int cyclic_buffer_destroy(int unit, cyclic_buffer_t* buffer); 26 int cyclic_buffer_add(int unit, cyclic_buffer_t* buffer, const void* new_element); 27 int cyclic_buffer_get(int unit, cyclic_buffer_t* buffer, void* received_element); 28 int cyclic_buffer_is_empty(int unit, const cyclic_buffer_t* buffer, int* is_empty); 29 int cyclic_buffer_is_full(int unit, const cyclic_buffer_t* buffer, int* is_full); 30 int cyclic_buffer_cells_count(int unit, const cyclic_buffer_t* buffer, int* count); 31 32 #endif /*_SHR_CYCLIC_BUFFER_H_*/