aboutsummaryrefslogtreecommitdiffstats
path: root/os/ports/RC/STM8/chtypes.h
blob: fd3370563027c9bc869872442fe18f8f07fc76d1 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
/*
    ChibiOS/RT - Copyright (C) 2006,2007,2008,2009,2010 Giovanni Di Sirio.

    This file is part of ChibiOS/RT.

    ChibiOS/RT is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
    the Free Software Foundation; either version 3 of the License, or
    (at your option) any later version.

    ChibiOS/RT is distributed in the hope that it will be useful,
    but WITHOUT ANY WARRANTY; without even the implied warranty of
    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
    GNU General Public License for more details.

    You should have received a copy of the GNU General Public License
    along with this program.  If not, see <http://www.gnu.org/licenses/>.
*/

/**
 * @file    STM8/chtypes.h
 * @brief   STM8 port system types.
 *
 * @addtogroup STM8_CORE
 * @{
 */

#ifndef _CHTYPES_H_
#define _CHTYPES_H_

#define __need_NULL
#define __need_size_t
#include <stddef.h>

//#if !defined(_STDINT_H) && !defined(__STDINT_H_)
//#include <stdint.h>
//#endif

typedef unsigned char   uint8_t;        /**< C99-style 8 bits unsigned.     */
typedef signed char     int8_t;         /**< C99-style 8 bits signed.       */
typedef unsigned int    uint16_t;       /**< C99-style 16 bits unsigned.    */
typedef signed int      int16_t;        /**< C99-style 16 bits signed.      */
typedef unsigned long   uint32_t;       /**< C99-style 32 bits unsigned.    */
typedef signed long     int32_t;        /**< C99-style 32 bits signed.      */
typedef uint8_t         uint_fast8_t;   /**< C99-style 8 bits unsigned.     */
typedef uint16_t        uint_fast16_t;  /**< C99-style 16 bits unsigned.    */
typedef uint32_t        uint_fast32_t;  /**< C99-style 32 bits unsigned.    */

/**
 * @brief   Boolean, recommended the fastest signed.
 */
typedef int8_t          bool_t;

/**
 * @brief   Thread mode flags, uint8_t is ok.
 */
typedef uint8_t         tmode_t;

/**
 * @brief   Thread state, uint8_t is ok.
 */
typedef uint8_t         tstate_t;

/**
 * @brief   Thread references counter, uint8_t is ok.
 */
typedef uint8_t         trefs_t;

/**
 * @brief   Priority, use the fastest unsigned type.
 */
typedef uint8_t         tprio_t;

/**
 * @brief   Message, use signed pointer equivalent.
 */
typedef int16_t         msg_t;

/**
 * @brief   Event Id, use fastest signed.
 */
typedef int8_t          eventid_t;

/**
 * @brief   Event Mask, recommended fastest unsigned.
 */
typedef uint8_t         eventmask_t;

/**
 * @brief   System Time, recommended fastest unsigned.
 */
typedef uint16_t        systime_t;

/**
 * @brief   Counter, recommended fastest signed.
 */
typedef int16_t         cnt_t;

/**
 * @brief   Inline function modifier.
 */
#define INLINE inline

/**
 * @brief   ROM constant modifier.
 * @note    Uses the custom "code" keyword in this port.
 */
#define ROMCONST code

/**
 * @brief   Packed structure modifier (within).
 * @note    Empty in this port.
 */
#define PACK_STRUCT_STRUCT

/**
 * @brief   Packed structure modifier (before).
 * @note    Empty in this port.
 */
#define PACK_STRUCT_BEGIN

/**
 * @brief   Packed structure modifier (after).
 * @note    Empty in this port.
 */
#define PACK_STRUCT_END

#endif /* _CHTYPES_H_ */

/** @} */