From e2c8623e66d66f4b9c8619349d11375a32ac2134 Mon Sep 17 00:00:00 2001 From: dimitri staessens Date: Wed, 26 Apr 2017 11:57:56 +0200 Subject: lib: Add call to reserve blocks in rdrbuff This adds a call ipcp_sdb_reserve to reserve memory in the rdrbuff without directly writing to a flow. The ipcp_flow_del function was renamed to ipcp_sdb_release. The functions operating on sdbs are moved to their own header. --- include/ouroboros/shm_du_buff.h | 53 +++++++++++++++++++++++++++++++++++++++++ 1 file changed, 53 insertions(+) create mode 100644 include/ouroboros/shm_du_buff.h (limited to 'include/ouroboros/shm_du_buff.h') diff --git a/include/ouroboros/shm_du_buff.h b/include/ouroboros/shm_du_buff.h new file mode 100644 index 00000000..9f796be1 --- /dev/null +++ b/include/ouroboros/shm_du_buff.h @@ -0,0 +1,53 @@ +/* + * Ouroboros - Copyright (C) 2016 - 2017 + * + * Data Buffer element in Random Deletion Ring Buffer + * + * Dimitri Staessens + * Sander Vrijders + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public License + * version 2.1 as published by the Free Software Foundation. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA + * 02110-1301 USA + */ + +#ifndef OUROBOROS_SHM_DU_BUFF_H +#define OUROBOROS_SHM_DU_BUFF_H + +#include +#include + +struct shm_du_buff; + +size_t shm_du_buff_get_idx(struct shm_du_buff * sdb); + +uint8_t * shm_du_buff_head(struct shm_du_buff * sdb); + +uint8_t * shm_du_buff_tail(struct shm_du_buff * sdb); + +uint8_t * shm_du_buff_head_alloc(struct shm_du_buff * sdb, + size_t size); + +uint8_t * shm_du_buff_tail_alloc(struct shm_du_buff * sdb, + size_t size); + +void shm_du_buff_head_release(struct shm_du_buff * sdb, + size_t size); + +void shm_du_buff_tail_release(struct shm_du_buff * sdb, + size_t size); + +void shm_du_buff_truncate(struct shm_du_buff * sdb, + size_t len); + +#endif /* OUROBOROS_SHM_DU_BUFF_H */ -- cgit v1.2.3