176404edcSAsim Jamshed #ifndef __TCP_SEND_BUFFER_H_ 276404edcSAsim Jamshed #define __TCP_SEND_BUFFER_H_ 376404edcSAsim Jamshed 476404edcSAsim Jamshed #include <stdlib.h> 576404edcSAsim Jamshed #include <stdint.h> 676404edcSAsim Jamshed 776404edcSAsim Jamshed /*----------------------------------------------------------------------------*/ 876404edcSAsim Jamshed typedef struct sb_manager* sb_manager_t; 976404edcSAsim Jamshed /*----------------------------------------------------------------------------*/ 1076404edcSAsim Jamshed struct tcp_send_buffer 1176404edcSAsim Jamshed { 1276404edcSAsim Jamshed unsigned char *data; 1376404edcSAsim Jamshed unsigned char *head; 1476404edcSAsim Jamshed 1576404edcSAsim Jamshed uint32_t head_off; 1676404edcSAsim Jamshed uint32_t tail_off; 1776404edcSAsim Jamshed uint32_t len; 1876404edcSAsim Jamshed uint64_t cum_len; 1976404edcSAsim Jamshed uint32_t size; 2076404edcSAsim Jamshed 2176404edcSAsim Jamshed uint32_t head_seq; 2276404edcSAsim Jamshed uint32_t init_seq; 2376404edcSAsim Jamshed }; 2476404edcSAsim Jamshed /*----------------------------------------------------------------------------*/ 2576404edcSAsim Jamshed uint32_t 2676404edcSAsim Jamshed SBGetCurnum(sb_manager_t sbm); 2776404edcSAsim Jamshed /*----------------------------------------------------------------------------*/ 2876404edcSAsim Jamshed sb_manager_t 2976404edcSAsim Jamshed SBManagerCreate(size_t chunk_size, uint8_t disable_rings, uint32_t concurrency); 3076404edcSAsim Jamshed /*----------------------------------------------------------------------------*/ 3176404edcSAsim Jamshed struct tcp_send_buffer * 3276404edcSAsim Jamshed SBInit(sb_manager_t sbm, uint32_t init_seq); 3376404edcSAsim Jamshed /*----------------------------------------------------------------------------*/ 3476404edcSAsim Jamshed void 3576404edcSAsim Jamshed SBFree(sb_manager_t sbm, struct tcp_send_buffer *buf); 3676404edcSAsim Jamshed /*----------------------------------------------------------------------------*/ 3776404edcSAsim Jamshed size_t 38*a5e1a556SAsim Jamshed SBPut(sb_manager_t sbm, struct tcp_send_buffer *buf, const void *data, size_t len); 3976404edcSAsim Jamshed /*----------------------------------------------------------------------------*/ 4076404edcSAsim Jamshed size_t 4176404edcSAsim Jamshed SBRemove(sb_manager_t sbm, struct tcp_send_buffer *buf, size_t len); 4276404edcSAsim Jamshed /*----------------------------------------------------------------------------*/ 4376404edcSAsim Jamshed 4476404edcSAsim Jamshed #endif /* __TCP_SEND_BUFFER_H_ */ 45