1 /*
2  * Copyright (C) 2017 XRADIO TECHNOLOGY CO., LTD. All rights reserved.
3  *
4  *  Redistribution and use in source and binary forms, with or without
5  *  modification, are permitted provided that the following conditions
6  *  are met:
7  *    1. Redistributions of source code must retain the above copyright
8  *       notice, this list of conditions and the following disclaimer.
9  *    2. Redistributions in binary form must reproduce the above copyright
10  *       notice, this list of conditions and the following disclaimer in the
11  *       documentation and/or other materials provided with the
12  *       distribution.
13  *    3. Neither the name of XRADIO TECHNOLOGY CO., LTD. nor the names of
14  *       its contributors may be used to endorse or promote products derived
15  *       from this software without specific prior written permission.
16  *
17  *  THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
18  *  "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
19  *  LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
20  *  A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
21  *  OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
22  *  SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
23  *  LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
24  *  DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
25  *  THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
26  *  (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
27  *  OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
28  */
29 
30 #ifndef _KERNEL_OS_RTTHREAD_OS_COMMON_H_
31 #define _KERNEL_OS_RTTHREAD_OS_COMMON_H_
32 
33 #include <stdint.h>
34 #include <stdio.h>
35 #include "rtthread.h"
36 #include "rthw.h"
37 
38 #ifdef __cplusplus
39 extern "C" {
40 #endif
41 
42 typedef enum  {
43     OS_PRIORITY_IDLE            = 31, //(RT_THREAD_PRIORITY_MAX - 1) - 0,   // 31
44     OS_PRIORITY_LOW             = 30, //(RT_THREAD_PRIORITY_MAX - 1) - 1,   // 30
45     OS_PRIORITY_BELOW_NORMAL    = 29, //(RT_THREAD_PRIORITY_MAX - 1) - 2,   // 29
46     OS_PRIORITY_NORMAL          = 10, //(RT_THREAD_PRIORITY_MAX) / (3),     // 10
47     OS_PRIORITY_ABOVE_NORMAL    =  9, //(RT_THREAD_PRIORITY_MAX + 4) / (4), // 9
48     OS_PRIORITY_HIGH            =  8, //(RT_THREAD_PRIORITY_MAX) / (5),     // 6
49     OS_PRIORITY_REAL_TIME       =  1                                        // 1
50 } OS_Priority;
51 
52 /**
53  * @brief OS status definition
54  */
55 typedef enum {
56     OS_OK           = 0,    /* success */
57     OS_FAIL         = -1,   /* general failure */
58     OS_E_NOMEM      = -2,   /* out of memory */
59     OS_E_PARAM      = -3,   /* invalid parameter */
60     OS_E_TIMEOUT    = -4,   /* operation timeout */
61     OS_E_ISR        = -5,   /* not allowed in ISR context */
62 } OS_Status;
63 
64 /** @brief Type definition of OS time */
65 typedef unsigned long OS_Time_t;
66 
67 #define OS_WAIT_FOREVER         0xffffffffU /* Wait forever timeout value */
68 #define OS_SEMAPHORE_MAX_COUNT  0xffffffffU /* Maximum count value for semaphore */
69 #define OS_INVALID_HANDLE       NULL        /* OS invalid handle */
70 
71 #ifdef __cplusplus
72 }
73 #endif
74 
75 #endif /* _KERNEL_OS_RTTHREAD_OS_COMMON_H_ */
76