openbcm

Git mirror of https://github.com/Broadcom-Network-Switching-Software/OpenBCM
git clone git://git.finwo.net/mirror/broadcom/openbcm
Log | Files | Refs | README

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_*/