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.

Committer:
AnnaBridge
Date:
Wed Feb 20 20:53:29 2019 +0000
Revision:
172:65be27845400
Parent:
171:3a7713b1edbc
mbed library release version 165

Who changed what in which revision?

UserRevisionLine numberNew contents of line
AnnaBridge 171:3a7713b1edbc 1 /*************************************************************************************************/
AnnaBridge 171:3a7713b1edbc 2 /*!
AnnaBridge 171:3a7713b1edbc 3 * \file wsf_os.h
AnnaBridge 171:3a7713b1edbc 4 *
AnnaBridge 171:3a7713b1edbc 5 * \brief Software foundation OS API.
AnnaBridge 171:3a7713b1edbc 6 *
AnnaBridge 171:3a7713b1edbc 7 * $Date: 2014-08-08 06:30:50 -0700 (Fri, 08 Aug 2014) $
AnnaBridge 171:3a7713b1edbc 8 * $Revision: 1725 $
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_OS_H
AnnaBridge 171:3a7713b1edbc 23 #define WSF_OS_H
AnnaBridge 171:3a7713b1edbc 24
AnnaBridge 171:3a7713b1edbc 25 #include "wsf_os_int.h"
AnnaBridge 171:3a7713b1edbc 26 #include "wsf_queue.h"
AnnaBridge 171:3a7713b1edbc 27
AnnaBridge 171:3a7713b1edbc 28 #ifdef __cplusplus
AnnaBridge 171:3a7713b1edbc 29 extern "C" {
AnnaBridge 171:3a7713b1edbc 30 #endif
AnnaBridge 171:3a7713b1edbc 31
AnnaBridge 171:3a7713b1edbc 32 /**************************************************************************************************
AnnaBridge 171:3a7713b1edbc 33 Data Types
AnnaBridge 171:3a7713b1edbc 34 **************************************************************************************************/
AnnaBridge 171:3a7713b1edbc 35
AnnaBridge 171:3a7713b1edbc 36 /*! Common message structure passed to event handler */
AnnaBridge 171:3a7713b1edbc 37 typedef struct
AnnaBridge 171:3a7713b1edbc 38 {
AnnaBridge 171:3a7713b1edbc 39 uint16_t param; /*! General purpose parameter passed to event handler */
AnnaBridge 171:3a7713b1edbc 40 uint8_t event; /*! General purpose event value passed to event handler */
AnnaBridge 171:3a7713b1edbc 41 uint8_t status; /*! General purpose status value passed to event handler */
AnnaBridge 171:3a7713b1edbc 42 } wsfMsgHdr_t;
AnnaBridge 171:3a7713b1edbc 43
AnnaBridge 171:3a7713b1edbc 44 /**************************************************************************************************
AnnaBridge 171:3a7713b1edbc 45 Callback Function Types
AnnaBridge 171:3a7713b1edbc 46 **************************************************************************************************/
AnnaBridge 171:3a7713b1edbc 47
AnnaBridge 171:3a7713b1edbc 48 /*************************************************************************************************/
AnnaBridge 171:3a7713b1edbc 49 /*!
AnnaBridge 171:3a7713b1edbc 50 * \fn wsfEventHandler_t
AnnaBridge 171:3a7713b1edbc 51 *
AnnaBridge 171:3a7713b1edbc 52 * \brief Event handler callback function.
AnnaBridge 171:3a7713b1edbc 53 *
AnnaBridge 171:3a7713b1edbc 54 * \param event Mask of events set for the event handler.
AnnaBridge 171:3a7713b1edbc 55 * \param pMsg Pointer to message for the event handler.
AnnaBridge 171:3a7713b1edbc 56 *
AnnaBridge 171:3a7713b1edbc 57 * \return None.
AnnaBridge 171:3a7713b1edbc 58 */
AnnaBridge 171:3a7713b1edbc 59 /*************************************************************************************************/
AnnaBridge 171:3a7713b1edbc 60 typedef void (*wsfEventHandler_t)(wsfEventMask_t event, wsfMsgHdr_t *pMsg);
AnnaBridge 171:3a7713b1edbc 61
AnnaBridge 171:3a7713b1edbc 62 /**************************************************************************************************
AnnaBridge 171:3a7713b1edbc 63 Function Declarations
AnnaBridge 171:3a7713b1edbc 64 **************************************************************************************************/
AnnaBridge 171:3a7713b1edbc 65
AnnaBridge 171:3a7713b1edbc 66 /*************************************************************************************************/
AnnaBridge 171:3a7713b1edbc 67 /*!
AnnaBridge 171:3a7713b1edbc 68 * \fn WsfSetEvent
AnnaBridge 171:3a7713b1edbc 69 *
AnnaBridge 171:3a7713b1edbc 70 * \brief Set an event for an event handler.
AnnaBridge 171:3a7713b1edbc 71 *
AnnaBridge 171:3a7713b1edbc 72 * \param handlerId Handler ID.
AnnaBridge 171:3a7713b1edbc 73 * \param event Event or events to set.
AnnaBridge 171:3a7713b1edbc 74 *
AnnaBridge 171:3a7713b1edbc 75 * \return None.
AnnaBridge 171:3a7713b1edbc 76 */
AnnaBridge 171:3a7713b1edbc 77 /*************************************************************************************************/
AnnaBridge 171:3a7713b1edbc 78 void WsfSetEvent(wsfHandlerId_t handlerId, wsfEventMask_t event);
AnnaBridge 171:3a7713b1edbc 79
AnnaBridge 171:3a7713b1edbc 80 /*************************************************************************************************/
AnnaBridge 171:3a7713b1edbc 81 /*!
AnnaBridge 171:3a7713b1edbc 82 * \fn WsfTaskLock
AnnaBridge 171:3a7713b1edbc 83 *
AnnaBridge 171:3a7713b1edbc 84 * \brief Lock task scheduling.
AnnaBridge 171:3a7713b1edbc 85 *
AnnaBridge 171:3a7713b1edbc 86 * \return None.
AnnaBridge 171:3a7713b1edbc 87 */
AnnaBridge 171:3a7713b1edbc 88 /*************************************************************************************************/
AnnaBridge 171:3a7713b1edbc 89 void WsfTaskLock(void);
AnnaBridge 171:3a7713b1edbc 90
AnnaBridge 171:3a7713b1edbc 91 /*************************************************************************************************/
AnnaBridge 171:3a7713b1edbc 92 /*!
AnnaBridge 171:3a7713b1edbc 93 * \fn WsfTaskUnlock
AnnaBridge 171:3a7713b1edbc 94 *
AnnaBridge 171:3a7713b1edbc 95 * \brief Unlock task scheduling.
AnnaBridge 171:3a7713b1edbc 96 *
AnnaBridge 171:3a7713b1edbc 97 * \return None.
AnnaBridge 171:3a7713b1edbc 98 */
AnnaBridge 171:3a7713b1edbc 99 /*************************************************************************************************/
AnnaBridge 171:3a7713b1edbc 100 void WsfTaskUnlock(void);
AnnaBridge 171:3a7713b1edbc 101
AnnaBridge 171:3a7713b1edbc 102 /*************************************************************************************************/
AnnaBridge 171:3a7713b1edbc 103 /*!
AnnaBridge 171:3a7713b1edbc 104 * \fn WsfTaskSetReady
AnnaBridge 171:3a7713b1edbc 105 *
AnnaBridge 171:3a7713b1edbc 106 * \brief Set the task used by the given handler as ready to run.
AnnaBridge 171:3a7713b1edbc 107 *
AnnaBridge 171:3a7713b1edbc 108 * \param handlerId Event handler ID.
AnnaBridge 171:3a7713b1edbc 109 * \param event Task event mask.
AnnaBridge 171:3a7713b1edbc 110 *
AnnaBridge 171:3a7713b1edbc 111 * \return None.
AnnaBridge 171:3a7713b1edbc 112 */
AnnaBridge 171:3a7713b1edbc 113 /*************************************************************************************************/
AnnaBridge 171:3a7713b1edbc 114 void WsfTaskSetReady(wsfHandlerId_t handlerId, wsfTaskEvent_t event);
AnnaBridge 171:3a7713b1edbc 115
AnnaBridge 171:3a7713b1edbc 116 /*************************************************************************************************/
AnnaBridge 171:3a7713b1edbc 117 /*!
AnnaBridge 171:3a7713b1edbc 118 * \fn WsfTaskMsgQueue
AnnaBridge 171:3a7713b1edbc 119 *
AnnaBridge 171:3a7713b1edbc 120 * \brief Return the task message queue used by the given handler.
AnnaBridge 171:3a7713b1edbc 121 *
AnnaBridge 171:3a7713b1edbc 122 * \param handlerId Event handler ID.
AnnaBridge 171:3a7713b1edbc 123 *
AnnaBridge 171:3a7713b1edbc 124 * \return Task message queue.
AnnaBridge 171:3a7713b1edbc 125 */
AnnaBridge 171:3a7713b1edbc 126 /*************************************************************************************************/
AnnaBridge 171:3a7713b1edbc 127 wsfQueue_t *WsfTaskMsgQueue(wsfHandlerId_t handlerId);
AnnaBridge 171:3a7713b1edbc 128
AnnaBridge 171:3a7713b1edbc 129 /*************************************************************************************************/
AnnaBridge 171:3a7713b1edbc 130 /*!
AnnaBridge 171:3a7713b1edbc 131 * \fn WsfOsSetNextHandler
AnnaBridge 171:3a7713b1edbc 132 *
AnnaBridge 171:3a7713b1edbc 133 * \brief Set the next WSF handler function in the WSF OS handler array. This function
AnnaBridge 171:3a7713b1edbc 134 * should only be called as part of the OS initialization procedure.
AnnaBridge 171:3a7713b1edbc 135 *
AnnaBridge 171:3a7713b1edbc 136 * \param handler WSF handler function.
AnnaBridge 171:3a7713b1edbc 137 *
AnnaBridge 171:3a7713b1edbc 138 * \return WSF handler ID for this handler.
AnnaBridge 171:3a7713b1edbc 139 */
AnnaBridge 171:3a7713b1edbc 140 /*************************************************************************************************/
AnnaBridge 171:3a7713b1edbc 141 wsfHandlerId_t WsfOsSetNextHandler(wsfEventHandler_t handler);
AnnaBridge 171:3a7713b1edbc 142
AnnaBridge 171:3a7713b1edbc 143 #ifdef __cplusplus
AnnaBridge 171:3a7713b1edbc 144 };
AnnaBridge 171:3a7713b1edbc 145 #endif
AnnaBridge 171:3a7713b1edbc 146
AnnaBridge 171:3a7713b1edbc 147 #endif /* WSF_OS_H */