The official Mbed 2 C/C++ SDK provides the software platform and libraries to build your applications.
Dependents: hello SerialTestv11 SerialTestv12 Sierpinski ... more
mbed 2
This is the mbed 2 library. If you'd like to learn about Mbed OS please see the mbed-os docs.
TARGET_ARM_BEETLE_SOC/TOOLCHAIN_IAR/wsf_queue.h@171:3a7713b1edbc, 2018-11-08 (annotated)
- Committer:
- AnnaBridge
- Date:
- Thu Nov 08 11:45:42 2018 +0000
- Revision:
- 171:3a7713b1edbc
mbed library. Release version 164
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
AnnaBridge | 171:3a7713b1edbc | 1 | /*************************************************************************************************/ |
AnnaBridge | 171:3a7713b1edbc | 2 | /*! |
AnnaBridge | 171:3a7713b1edbc | 3 | * \file wsf_queue.h |
AnnaBridge | 171:3a7713b1edbc | 4 | * |
AnnaBridge | 171:3a7713b1edbc | 5 | * \brief General purpose queue service. |
AnnaBridge | 171:3a7713b1edbc | 6 | * |
AnnaBridge | 171:3a7713b1edbc | 7 | * $Date: 2011-10-14 21:35:03 -0700 (Fri, 14 Oct 2011) $ |
AnnaBridge | 171:3a7713b1edbc | 8 | * $Revision: 191 $ |
AnnaBridge | 171:3a7713b1edbc | 9 | * |
AnnaBridge | 171:3a7713b1edbc | 10 | * Copyright (c) 2009 Wicentric, Inc., all rights reserved. |
AnnaBridge | 171:3a7713b1edbc | 11 | * Wicentric confidential and proprietary. |
AnnaBridge | 171:3a7713b1edbc | 12 | * |
AnnaBridge | 171:3a7713b1edbc | 13 | * IMPORTANT. Your use of this file is governed by a Software License Agreement |
AnnaBridge | 171:3a7713b1edbc | 14 | * ("Agreement") that must be accepted in order to download or otherwise receive a |
AnnaBridge | 171:3a7713b1edbc | 15 | * copy of this file. You may not use or copy this file for any purpose other than |
AnnaBridge | 171:3a7713b1edbc | 16 | * as described in the Agreement. If you do not agree to all of the terms of the |
AnnaBridge | 171:3a7713b1edbc | 17 | * Agreement do not use this file and delete all copies in your possession or control; |
AnnaBridge | 171:3a7713b1edbc | 18 | * if you do not have a copy of the Agreement, you must contact Wicentric, Inc. prior |
AnnaBridge | 171:3a7713b1edbc | 19 | * to any use, copying or further distribution of this software. |
AnnaBridge | 171:3a7713b1edbc | 20 | */ |
AnnaBridge | 171:3a7713b1edbc | 21 | /*************************************************************************************************/ |
AnnaBridge | 171:3a7713b1edbc | 22 | #ifndef WSF_QUEUE_H |
AnnaBridge | 171:3a7713b1edbc | 23 | #define WSF_QUEUE_H |
AnnaBridge | 171:3a7713b1edbc | 24 | |
AnnaBridge | 171:3a7713b1edbc | 25 | #ifdef __cplusplus |
AnnaBridge | 171:3a7713b1edbc | 26 | extern "C" { |
AnnaBridge | 171:3a7713b1edbc | 27 | #endif |
AnnaBridge | 171:3a7713b1edbc | 28 | |
AnnaBridge | 171:3a7713b1edbc | 29 | /************************************************************************************************** |
AnnaBridge | 171:3a7713b1edbc | 30 | Macros |
AnnaBridge | 171:3a7713b1edbc | 31 | **************************************************************************************************/ |
AnnaBridge | 171:3a7713b1edbc | 32 | |
AnnaBridge | 171:3a7713b1edbc | 33 | /*! Initialize a queue */ |
AnnaBridge | 171:3a7713b1edbc | 34 | #define WSF_QUEUE_INIT(pQueue) {(pQueue)->pHead = NULL; (pQueue)->pTail = NULL;} |
AnnaBridge | 171:3a7713b1edbc | 35 | |
AnnaBridge | 171:3a7713b1edbc | 36 | /************************************************************************************************** |
AnnaBridge | 171:3a7713b1edbc | 37 | Data Types |
AnnaBridge | 171:3a7713b1edbc | 38 | **************************************************************************************************/ |
AnnaBridge | 171:3a7713b1edbc | 39 | |
AnnaBridge | 171:3a7713b1edbc | 40 | /*! Queue structure */ |
AnnaBridge | 171:3a7713b1edbc | 41 | typedef struct |
AnnaBridge | 171:3a7713b1edbc | 42 | { |
AnnaBridge | 171:3a7713b1edbc | 43 | void *pHead; /*! head of queue */ |
AnnaBridge | 171:3a7713b1edbc | 44 | void *pTail; /*! tail of queue */ |
AnnaBridge | 171:3a7713b1edbc | 45 | } wsfQueue_t; |
AnnaBridge | 171:3a7713b1edbc | 46 | |
AnnaBridge | 171:3a7713b1edbc | 47 | /************************************************************************************************** |
AnnaBridge | 171:3a7713b1edbc | 48 | Function Declarations |
AnnaBridge | 171:3a7713b1edbc | 49 | **************************************************************************************************/ |
AnnaBridge | 171:3a7713b1edbc | 50 | |
AnnaBridge | 171:3a7713b1edbc | 51 | /*************************************************************************************************/ |
AnnaBridge | 171:3a7713b1edbc | 52 | /*! |
AnnaBridge | 171:3a7713b1edbc | 53 | * \fn WsfQueueEnq |
AnnaBridge | 171:3a7713b1edbc | 54 | * |
AnnaBridge | 171:3a7713b1edbc | 55 | * \brief Enqueue an element to the tail of a queue. |
AnnaBridge | 171:3a7713b1edbc | 56 | * |
AnnaBridge | 171:3a7713b1edbc | 57 | * \param pQueue Pointer to queue. |
AnnaBridge | 171:3a7713b1edbc | 58 | * \param pElem Pointer to element. |
AnnaBridge | 171:3a7713b1edbc | 59 | * |
AnnaBridge | 171:3a7713b1edbc | 60 | * \return None. |
AnnaBridge | 171:3a7713b1edbc | 61 | */ |
AnnaBridge | 171:3a7713b1edbc | 62 | /*************************************************************************************************/ |
AnnaBridge | 171:3a7713b1edbc | 63 | void WsfQueueEnq(wsfQueue_t *pQueue, void *pElem); |
AnnaBridge | 171:3a7713b1edbc | 64 | |
AnnaBridge | 171:3a7713b1edbc | 65 | /*************************************************************************************************/ |
AnnaBridge | 171:3a7713b1edbc | 66 | /*! |
AnnaBridge | 171:3a7713b1edbc | 67 | * \fn WsfQueueDeq |
AnnaBridge | 171:3a7713b1edbc | 68 | * |
AnnaBridge | 171:3a7713b1edbc | 69 | * \brief Dequeue an element from the head of a queue. |
AnnaBridge | 171:3a7713b1edbc | 70 | * |
AnnaBridge | 171:3a7713b1edbc | 71 | * \param pQueue Pointer to queue. |
AnnaBridge | 171:3a7713b1edbc | 72 | * |
AnnaBridge | 171:3a7713b1edbc | 73 | * \return Pointer to element that has been dequeued or NULL if queue is empty. |
AnnaBridge | 171:3a7713b1edbc | 74 | */ |
AnnaBridge | 171:3a7713b1edbc | 75 | /*************************************************************************************************/ |
AnnaBridge | 171:3a7713b1edbc | 76 | void *WsfQueueDeq(wsfQueue_t *pQueue); |
AnnaBridge | 171:3a7713b1edbc | 77 | |
AnnaBridge | 171:3a7713b1edbc | 78 | /*************************************************************************************************/ |
AnnaBridge | 171:3a7713b1edbc | 79 | /*! |
AnnaBridge | 171:3a7713b1edbc | 80 | * \fn WsfQueuePush |
AnnaBridge | 171:3a7713b1edbc | 81 | * |
AnnaBridge | 171:3a7713b1edbc | 82 | * \brief Push an element to the head of a queue. |
AnnaBridge | 171:3a7713b1edbc | 83 | * |
AnnaBridge | 171:3a7713b1edbc | 84 | * \param pQueue Pointer to queue. |
AnnaBridge | 171:3a7713b1edbc | 85 | * \param pElem Pointer to element. |
AnnaBridge | 171:3a7713b1edbc | 86 | * |
AnnaBridge | 171:3a7713b1edbc | 87 | * \return None. |
AnnaBridge | 171:3a7713b1edbc | 88 | */ |
AnnaBridge | 171:3a7713b1edbc | 89 | /*************************************************************************************************/ |
AnnaBridge | 171:3a7713b1edbc | 90 | void WsfQueuePush(wsfQueue_t *pQueue, void *pElem); |
AnnaBridge | 171:3a7713b1edbc | 91 | |
AnnaBridge | 171:3a7713b1edbc | 92 | /*************************************************************************************************/ |
AnnaBridge | 171:3a7713b1edbc | 93 | /*! |
AnnaBridge | 171:3a7713b1edbc | 94 | * \fn WsfQueueInsert |
AnnaBridge | 171:3a7713b1edbc | 95 | * |
AnnaBridge | 171:3a7713b1edbc | 96 | * \brief Insert an element into a queue. This function is typically used when iterating |
AnnaBridge | 171:3a7713b1edbc | 97 | * over a queue. |
AnnaBridge | 171:3a7713b1edbc | 98 | * |
AnnaBridge | 171:3a7713b1edbc | 99 | * \param pQueue Pointer to queue. |
AnnaBridge | 171:3a7713b1edbc | 100 | * \param pElem Pointer to element to be inserted. |
AnnaBridge | 171:3a7713b1edbc | 101 | * \param pPrev Pointer to previous element in the queue before element to be inserted. |
AnnaBridge | 171:3a7713b1edbc | 102 | * Note: set pPrev to NULL if pElem is first element in queue. |
AnnaBridge | 171:3a7713b1edbc | 103 | * \return None. |
AnnaBridge | 171:3a7713b1edbc | 104 | */ |
AnnaBridge | 171:3a7713b1edbc | 105 | /*************************************************************************************************/ |
AnnaBridge | 171:3a7713b1edbc | 106 | void WsfQueueInsert(wsfQueue_t *pQueue, void *pElem, void *pPrev); |
AnnaBridge | 171:3a7713b1edbc | 107 | |
AnnaBridge | 171:3a7713b1edbc | 108 | /*************************************************************************************************/ |
AnnaBridge | 171:3a7713b1edbc | 109 | /*! |
AnnaBridge | 171:3a7713b1edbc | 110 | * \fn WsfQueueRemove |
AnnaBridge | 171:3a7713b1edbc | 111 | * |
AnnaBridge | 171:3a7713b1edbc | 112 | * \brief Remove an element from a queue. This function is typically used when iterating |
AnnaBridge | 171:3a7713b1edbc | 113 | * over a queue. |
AnnaBridge | 171:3a7713b1edbc | 114 | * |
AnnaBridge | 171:3a7713b1edbc | 115 | * \param pQueue Pointer to queue. |
AnnaBridge | 171:3a7713b1edbc | 116 | * \param pElem Pointer to element to be removed. |
AnnaBridge | 171:3a7713b1edbc | 117 | * \param pPrev Pointer to previous element in the queue before element to be removed. |
AnnaBridge | 171:3a7713b1edbc | 118 | * |
AnnaBridge | 171:3a7713b1edbc | 119 | * \return None. |
AnnaBridge | 171:3a7713b1edbc | 120 | */ |
AnnaBridge | 171:3a7713b1edbc | 121 | /*************************************************************************************************/ |
AnnaBridge | 171:3a7713b1edbc | 122 | void WsfQueueRemove(wsfQueue_t *pQueue, void *pElem, void *pPrev); |
AnnaBridge | 171:3a7713b1edbc | 123 | |
AnnaBridge | 171:3a7713b1edbc | 124 | /*************************************************************************************************/ |
AnnaBridge | 171:3a7713b1edbc | 125 | /*! |
AnnaBridge | 171:3a7713b1edbc | 126 | * \fn WsfQueueCount |
AnnaBridge | 171:3a7713b1edbc | 127 | * |
AnnaBridge | 171:3a7713b1edbc | 128 | * \brief Count the number of elements in a queue. |
AnnaBridge | 171:3a7713b1edbc | 129 | * |
AnnaBridge | 171:3a7713b1edbc | 130 | * \param pQueue Pointer to queue. |
AnnaBridge | 171:3a7713b1edbc | 131 | * |
AnnaBridge | 171:3a7713b1edbc | 132 | * \return Number of elements in queue. |
AnnaBridge | 171:3a7713b1edbc | 133 | */ |
AnnaBridge | 171:3a7713b1edbc | 134 | /*************************************************************************************************/ |
AnnaBridge | 171:3a7713b1edbc | 135 | uint16_t WsfQueueCount(wsfQueue_t *pQueue); |
AnnaBridge | 171:3a7713b1edbc | 136 | |
AnnaBridge | 171:3a7713b1edbc | 137 | /*************************************************************************************************/ |
AnnaBridge | 171:3a7713b1edbc | 138 | /*! |
AnnaBridge | 171:3a7713b1edbc | 139 | * \fn WsfQueueEmpty |
AnnaBridge | 171:3a7713b1edbc | 140 | * |
AnnaBridge | 171:3a7713b1edbc | 141 | * \brief Return TRUE if queue is empty. |
AnnaBridge | 171:3a7713b1edbc | 142 | * |
AnnaBridge | 171:3a7713b1edbc | 143 | * \param pQueue Pointer to queue. |
AnnaBridge | 171:3a7713b1edbc | 144 | * |
AnnaBridge | 171:3a7713b1edbc | 145 | * \return TRUE if queue is empty, FALSE otherwise. |
AnnaBridge | 171:3a7713b1edbc | 146 | */ |
AnnaBridge | 171:3a7713b1edbc | 147 | /*************************************************************************************************/ |
AnnaBridge | 171:3a7713b1edbc | 148 | bool_t WsfQueueEmpty(wsfQueue_t *pQueue); |
AnnaBridge | 171:3a7713b1edbc | 149 | |
AnnaBridge | 171:3a7713b1edbc | 150 | |
AnnaBridge | 171:3a7713b1edbc | 151 | #ifdef __cplusplus |
AnnaBridge | 171:3a7713b1edbc | 152 | }; |
AnnaBridge | 171:3a7713b1edbc | 153 | #endif |
AnnaBridge | 171:3a7713b1edbc | 154 | |
AnnaBridge | 171:3a7713b1edbc | 155 | #endif /* WSF_QUEUE_H */ |