diff options
Diffstat (limited to 'framework/src/suricata/src/util-cuda-buffer.h')
-rw-r--r-- | framework/src/suricata/src/util-cuda-buffer.h | 111 |
1 files changed, 0 insertions, 111 deletions
diff --git a/framework/src/suricata/src/util-cuda-buffer.h b/framework/src/suricata/src/util-cuda-buffer.h deleted file mode 100644 index ab494e67..00000000 --- a/framework/src/suricata/src/util-cuda-buffer.h +++ /dev/null @@ -1,111 +0,0 @@ -/* Copyright (C) 2007-2013 Open Information Security Foundation - * - * You can copy, redistribute or modify this Program under the terms of - * the GNU General Public License version 2 as published by the Free - * Software Foundation. - * - * This program 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 General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * version 2 along with this program; if not, write to the Free Software - * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA - * 02110-1301, USA. - */ - -/** - * \file API to allow buffering of data. - * - * Introduced with cuda as the primary objective. Allows multiple - * threads to simultaneously access a single buffer and write to it. - * - * Current version allows only serial reads from the buffer. - * When the need arises, the API will be updated to allow multiple - * non-sequential reads. - * - * \author Anoop Saldanha <anoopsaldanha@gmail.com> - */ - -#ifdef __SC_CUDA_SUPPORT__ - -#ifndef __UTIL_CUDA_BUFFER_H__ -#define __UTIL_CUDA_BUFFER_H__ - -#include "util-atomic.h" - -/** - * \brief Used by consumers to retrieve the data buffered. - */ -typedef struct CudaBufferCulledInfo_ { - uint32_t no_of_items; - - uint32_t d_buffer_start_offset; - uint32_t d_buffer_len; - - /* we use no_of_items to determine the no of items here */ - uint32_t op_buffer_start_offset; - - uint8_t d_buffer_reset; - uint8_t op_buffer_reset; -} CudaBufferCulledInfo; - -/** - * /brief A slice which contains details on where to buffer data by a - * writer. - */ -typedef struct CudaBufferSlice_ { - uint32_t start_offset; - uint32_t end_offset; - uint8_t *buffer; - SC_ATOMIC_DECLARE(uint8_t, done); - - struct CudaBufferSlice_ *next; -} CudaBufferSlice; - -typedef struct CudaBufferData_ { - /* the data buffer */ - uint8_t *d_buffer; - uint32_t d_buffer_len; - uint32_t d_buffer_write; - uint32_t d_buffer_read; - - /* debug only. Can be removed */ - uint32_t no_of_items; - - /* these 2 buffers below - o_buffer and p_buffer should be - * used/updated in tandem - * p_buffer is the ptr buffer that points to a data instance that - * represents it's corresponding data stored in d_buffer. - * o_buffer is the corresponding entry to the one in p_buffer, which - * holds the offset to the corresponding entry in d_buffer. */ - uint32_t *o_buffer; - void **p_buffer; - uint32_t op_buffer_len; - uint32_t op_buffer_write; - uint32_t op_buffer_read; - - /* slice lists used by writers */ - CudaBufferSlice *slice_head; - CudaBufferSlice *slice_tail; - - /* mutex used by the entire struct */ - SCMutex m; -} CudaBufferData; - -void CudaBufferReportCulledConsumption(CudaBufferData *cb_data, - CudaBufferCulledInfo *culled_info); -void CudaBufferCullCompletedSlices(CudaBufferData *cb_data, - CudaBufferCulledInfo *culled_info, uint32_t size_limit); -CudaBufferSlice *CudaBufferGetSlice(CudaBufferData *data, uint32_t len, void *p); -void CudaBufferDeRegister(CudaBufferData *cb_data); -CudaBufferData *CudaBufferRegisterNew(uint8_t *d_buffer, uint32_t d_buffer_len, - uint32_t *o_buffer, void **p_buffer, - uint32_t op_buffer_no_of_items); -void CudaBufferInit(void); -void CudaBufferRegisterUnittests(void); - -#endif /* __UTIL_CUDA_BUFFER_H__ */ - -#endif /* __SC_CUDA_SUPPORT__ */ |