blob: dac7d297b89555a314e5ab6e247e8d677c637857 (
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 - Copyright (C) 2006..2016 Giovanni Di Sirio.
This file is part of ChibiOS.
ChibiOS 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 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 chsystypes.h
* @brief System types header.
*
* @addtogroup scheduler
* @{
*/
#ifndef CHSYSTYPES_H
#define CHSYSTYPES_H
/*===========================================================================*/
/* Module constants. */
/*===========================================================================*/
/*===========================================================================*/
/* Module pre-compile time settings. */
/*===========================================================================*/
/*===========================================================================*/
/* Derived constants and error checks. */
/*===========================================================================*/
/*===========================================================================*/
/* Module data structures and types. */
/*===========================================================================*/
/**
* @extends threads_queue_t
*
* @brief Type of a thread structure.
*/
typedef struct ch_thread thread_t;
/**
* @brief Type of a thread reference.
*/
typedef thread_t * thread_reference_t;
/**
* @brief Type of a generic threads single link list, it works like a stack.
*/
typedef struct ch_threads_list threads_list_t;
/**
* @extends threads_list_t
*
* @brief Type of a generic threads bidirectional linked list header and element.
*/
typedef struct ch_threads_queue threads_queue_t;
/**
* @extends threads_queue_t
*
* @brief Type of a ready list header.
*/
typedef struct ch_ready_list ready_list_t;
/**
* @brief Type of a Virtual Timer callback function.
*/
typedef void (*vtfunc_t)(void *p);
/**
* @brief Type of a Virtual Timer structure.
*/
typedef struct ch_virtual_timer virtual_timer_t;
/**
* @brief Type of virtual timers list header.
*/
typedef struct ch_virtual_timers_list virtual_timers_list_t;
/**
* @brief Type of a system debug structure.
*/
typedef struct ch_system_debug system_debug_t;
/**
* @brief Type of system data structure.
*/
typedef struct ch_system ch_system_t;
/*===========================================================================*/
/* Module macros. */
/*===========================================================================*/
/**
* @brief Utility to make the parameter a quoted string.
*/
#define __CH_STRINGIFY(a) #a
/*===========================================================================*/
/* External declarations. */
/*===========================================================================*/
#ifdef __cplusplus
extern "C" {
#endif
#ifdef __cplusplus
}
#endif
/*===========================================================================*/
/* Module inline functions. */
/*===========================================================================*/
#endif /* CHSYSTYPES_H */
/** @} */
|