X-Git-Url: https://git.saurik.com/apple/security.git/blobdiff_plain/b04fe171f0375ecd5d8a24747ca1dff85720a0ca..6b200bc335dc93c5516ccb52f14bd896d8c7fad7:/SecurityTests/clxutils/clAppUtils/ringBufferIo.h diff --git a/SecurityTests/clxutils/clAppUtils/ringBufferIo.h b/SecurityTests/clxutils/clAppUtils/ringBufferIo.h deleted file mode 100644 index 5235fdc8..00000000 --- a/SecurityTests/clxutils/clAppUtils/ringBufferIo.h +++ /dev/null @@ -1,101 +0,0 @@ -/* - * Ring buffer I/O for sslThroughput test. - */ - -#ifndef _RING_BUFFER_IO_ -#define _RING_BUFFER_IO_ - -#include -#include -#include -#include - -#ifdef __cplusplus -extern "C" { -#endif - -/* Reasonable defaults for Ring Buffer params */ -#define DEFAULT_NUM_RB_BUFS 16 -#define DEFAULT_BUF_RB_SIZE 2048 /* in the ring buffers */ - - -/* one element in a ring buffer */ -typedef struct { - size_t validBytes; // bytes written and not yet consumed - size_t readOffset; // next byte to be read from this offset - size_t capacity; // mallocd size of buf - unsigned char *buf; -} RingElement; - -/* - * A ring buffer shared between one writer thread and one reader thread. - * Per the DeMoney Theorem, we don't need to provide any locking between - * the two threads if we have the appropriate protocol, which is as follows: - * - * -- the RingElements at which the reader and writer are currently - * processing are indicated by readerDex and writerDex. - * -- the writer thread never advances writerDex to a RingElement - * currently in use by the reader thread. - * -- the reader thread can advance to a RingElement in use by - * the writer thread, but it can't read from that RingElement - * until the writer thread has advanced past that RingElement. - */ -typedef struct { - size_t numElements; - RingElement *elements; - unsigned writerDex; // writer thread is working on this one - unsigned readerDex; // read thread is working on this one - const char *bufName; // e.g. serverToClient - - /* - * Flag to emulate closing of socket. There's only one since the thread - * that sets this presumably will not be reading from or writing to - * this RingBuffer again; the "other" thread will detect this and abort - * as appropriate. - */ - bool closed; -} RingBuffer; - -/* - * A pair of RingBuffer ptrs suitable for use as the SSLConnectionRef - * for ringReadFunc() and ringWriteFunc(). - */ -typedef struct { - RingBuffer *rdBuf; - RingBuffer *wrtBuf; -} RingBuffers; - -void ringBufSetup( - RingBuffer *ring, - const char *bufName, - size_t numElements, - size_t bufSize); - -void ringBufferReset( - RingBuffer *ring); - -/* - * The "I/O" callbacks for SecureTransport. - * The SSLConnectionRef is a RingBuffers *. - */ -OSStatus ringReadFunc( - SSLConnectionRef connRef, - void *data, - size_t *dataLen); /* IN/OUT */ -OSStatus ringWriteFunc( - SSLConnectionRef connRef, - const void *data, - size_t *dataLen); /* IN/OUT */ - -/* close both sides of a RingBuffers */ -void ringBuffersClose( - RingBuffers *rbs); - -/* to coordinate stdio from multi threads */ -extern pthread_mutex_t printfMutex; - -#ifdef __cplusplus -} -#endif - -#endif /* _RING_BUFFER_IO_ */