Me@19: /* Me@19: * Copyright 2009 OpenSourceStewardshipFoundation.org Me@19: * Licensed under GNU General Public License version 2 Me@19: * Me@19: * Author: seanhalle@yahoo.com Me@19: */ Me@19: Me@19: #ifndef _PRIVATE_QUEUE_H Me@19: #define _PRIVATE_QUEUE_H Me@19: Me@20: seanhalle@28: #include "VMS_impl/VMS_primitive_data_types.h" seanhalle@28: #include "VMS_impl/vmalloc.h" Me@20: Me@19: Me@19: #define TRUE 1 Me@19: #define FALSE 0 Me@19: Me@19: #define LOCKED 1 Me@19: #define UNLOCKED 0 Me@19: Me@19: Me@19: /* It is the data that is shared so only need one mutex. */ Me@19: typedef struct Me@19: { void **insertPos; Me@19: void **extractPos; Me@19: void **startOfData; //data is pointers Me@19: void **endOfData; //set when alloc data Me@19: } Me@19: PrivQueueStruc; Me@19: seanhalle@30: typedef void (*DynArrayFnPtr) ( void * ); //fn has to cast void * Me@19: Me@19: PrivQueueStruc* makePrivQ ( ); Me@19: void* readPrivQ ( PrivQueueStruc *Q ); Me@19: void writePrivQ( void *in, PrivQueueStruc *Q ); Me@19: int writeIfSpacePrivQ( void * in, PrivQueueStruc* Q ); //return seanhalle@27: int numInPrivQ( PrivQueueStruc *Q ); Me@19: // false when full Me@19: seanhalle@30: Me@19: #endif /* _PRIVATE_QUEUE_H */ Me@19: