rtxSList.h
Go to the documentation of this file.00001 /* 00002 * Copyright (c) 2003-2017 Objective Systems, Inc. 00003 * 00004 * This software is furnished under a license and may be used and copied 00005 * only in accordance with the terms of such license and with the 00006 * inclusion of the above copyright notice. This software or any other 00007 * copies thereof may not be provided or otherwise made available to any 00008 * other person. No title to and ownership of the software is hereby 00009 * transferred. 00010 * 00011 * The information in this software is subject to change without notice 00012 * and should not be construed as a commitment by Objective Systems, Inc. 00013 * 00014 * PROPRIETARY NOTICE 00015 * 00016 * This software is an unpublished work subject to a confidentiality agreement 00017 * and is protected by copyright and trade secret law. Unauthorized copying, 00018 * redistribution or other use of this work is prohibited. 00019 * 00020 * The above notice of copyright on this source code product does not indicate 00021 * any actual or intended publication of such source code. 00022 * 00023 *****************************************************************************/ 00024 00028 #ifndef _RTXSLIST_H_ 00029 #define _RTXSLIST_H_ 00030 00031 #include "rtxsrc/rtxContext.h" 00032 00055 typedef struct _OSRTSListNode { 00056 void* data; 00057 struct _OSRTSListNode* next; 00058 } OSRTSListNode; 00059 00060 struct OSCTXT; 00061 00068 typedef struct _OSRTSList { 00069 OSSIZE count; 00070 OSRTSListNode* head; 00071 OSRTSListNode* tail; 00072 struct OSCTXT* pctxt; 00073 } OSRTSList; 00074 00075 #ifdef __cplusplus 00076 extern "C" { 00077 #endif 00078 00085 EXTERNRT void rtxSListInit (OSRTSList* pList); 00086 00098 EXTERNRT void rtxSListInitEx (OSCTXT* pctxt, OSRTSList* pList); 00099 00108 EXTERNRT void rtxSListFree (OSRTSList* pList); 00109 00119 EXTERNRT void rtxSListFreeAll (OSRTSList* pList); 00120 00127 EXTERNRT OSRTSList* rtxSListCreate (OSVOIDARG); 00128 00140 EXTERNRT OSRTSList* rtxSListCreateEx (OSCTXT* pctxt); 00141 00152 EXTERNRT OSRTSListNode* rtxSListAppend (OSRTSList* pList, void* pData); 00153 00165 EXTERNRT OSBOOL rtxSListFind (OSRTSList* pList, void* pData); 00166 00176 EXTERNRT void rtxSListRemove (OSRTSList* pList, void* pData); 00177 00182 #define OSALLOCELEMSNODE(pctxt,type) \ 00183 (type*) (((char*)rtxMemAllocZ (pctxt, sizeof(type) + \ 00184 sizeof(OSRTSListNode))) + sizeof(OSRTSListNode)) 00185 00186 00187 #ifdef __cplusplus 00188 } 00189 #endif 00190 00191 #endif