Zephyr API Documentation 4.0.0-rc3
A Scalable Open Source RTOS
Loading...
Searching...
No Matches
posix_types.h
Go to the documentation of this file.
1/*
2 * Copyright (c) 2018 Intel Corporation
3 *
4 * SPDX-License-Identifier: Apache-2.0
5 */
6
7#ifndef ZEPHYR_INCLUDE_POSIX_TYPES_H_
8#define ZEPHYR_INCLUDE_POSIX_TYPES_H_
9
10#if !(defined(CONFIG_ARCH_POSIX) && defined(CONFIG_EXTERNAL_LIBC))
11#include <sys/types.h>
12#endif
13
14#if !defined(_CLOCK_T_DECLARED) && !defined(__clock_t_defined)
15typedef unsigned long clock_t;
16#define _CLOCK_T_DECLARED
17#define __clock_t_defined
18#endif
19
20#if !defined(_CLOCKID_T_DECLARED) && !defined(__clockid_t_defined)
21typedef unsigned long clockid_t;
22#define _CLOCKID_T_DECLARED
23#define __clockid_t_defined
24#endif
25
26#ifdef CONFIG_NEWLIB_LIBC
27#include <sys/_pthreadtypes.h>
28#endif
29
30#include <zephyr/kernel.h>
31
32#ifdef __cplusplus
33extern "C" {
34#endif
35
36#if !defined(_DEV_T_DECLARED) && !defined(__dev_t_defined)
37typedef int dev_t;
38#define _DEV_T_DECLARED
39#define __dev_t_defined
40#endif
41
42#if !defined(_INO_T_DECLARED) && !defined(__ino_t_defined)
43typedef int ino_t;
44#define _INO_T_DECLARED
45#define __ino_t_defined
46#endif
47
48#if !defined(_NLINK_T_DECLARED) && !defined(__nlink_t_defined)
49typedef unsigned short nlink_t;
50#define _NLINK_T_DECLARED
51#define __nlink_t_defined
52#endif
53
54#if !defined(_UID_T_DECLARED) && !defined(__uid_t_defined)
55typedef unsigned short uid_t;
56#define _UID_T_DECLARED
57#define __uid_t_defined
58#endif
59
60#if !defined(_GID_T_DECLARED) && !defined(__gid_t_defined)
61typedef unsigned short gid_t;
62#define _GID_T_DECLARED
63#define __gid_t_defined
64#endif
65
66#if !defined(_BLKSIZE_T_DECLARED) && !defined(__blksize_t_defined)
67typedef unsigned long blksize_t;
68#define _BLKSIZE_T_DECLARED
69#define __blksize_t_defined
70#endif
71
72#if !defined(_BLKCNT_T_DECLARED) && !defined(__blkcnt_t_defined)
73typedef unsigned long blkcnt_t;
74#define _BLKCNT_T_DECLARED
75#define __blkcnt_t_defined
76#endif
77
78#if !defined(CONFIG_ARCMWDT_LIBC)
79typedef int pid_t;
80#endif
81
82#ifndef __useconds_t_defined
83typedef unsigned long useconds_t;
84#endif
85
86/* time related attributes */
87#if !defined(CONFIG_NEWLIB_LIBC) && !defined(CONFIG_ARCMWDT_LIBC)
88#if !defined(__clockid_t_defined) && !defined(_CLOCKID_T_DECLARED)
89typedef uint32_t clockid_t;
90#endif
91#endif /* !CONFIG_NEWLIB_LIBC && !CONFIG_ARCMWDT_LIBC */
92#if !defined(__timer_t_defined) && !defined(_TIMER_T_DECLARED)
93typedef unsigned long timer_t;
94#endif
95
96/* Thread attributes */
98 void *stack;
100};
101
102#if !defined(CONFIG_NEWLIB_LIBC)
104BUILD_ASSERT(sizeof(pthread_attr_t) >= sizeof(struct pthread_attr));
105#endif
106
109
110/* Semaphore */
111typedef struct k_sem sem_t;
112
113/* Mutex */
115
117 unsigned char type: 2;
118 bool initialized: 1;
119};
120#if !defined(CONFIG_NEWLIB_LIBC)
122BUILD_ASSERT(sizeof(pthread_mutexattr_t) >= sizeof(struct pthread_mutexattr));
123#endif
124
125/* Condition variables */
127
131
132#if !defined(CONFIG_NEWLIB_LIBC)
134BUILD_ASSERT(sizeof(pthread_condattr_t) >= sizeof(struct pthread_condattr));
135#endif
136
137/* Barrier */
139
143
145
147
149 bool flag;
150};
151
152#if !defined(CONFIG_NEWLIB_LIBC)
155/* Newlib typedefs pthread_once_t as a struct with two ints */
156BUILD_ASSERT(sizeof(pthread_once_t) >= sizeof(struct pthread_once));
157#endif
158
159#ifdef __cplusplus
160}
161#endif
162
163#endif /* ZEPHYR_INCLUDE_POSIX_TYPES_H_ */
Public kernel APIs.
int dev_t
Definition posix_types.h:37
uint32_t pthread_cond_t
Definition posix_types.h:126
unsigned long useconds_t
Definition posix_types.h:83
uint32_t pthread_spinlock_t
Definition posix_types.h:108
struct pthread_barrierattr pthread_barrierattr_t
int pid_t
Definition posix_types.h:79
unsigned short gid_t
Definition posix_types.h:61
unsigned long clock_t
Definition posix_types.h:15
uint32_t pthread_t
Definition posix_types.h:107
uint32_t pthread_mutex_t
Definition posix_types.h:114
uint32_t pthread_rwlockattr_t
Definition posix_types.h:144
unsigned long blksize_t
Definition posix_types.h:67
unsigned long clockid_t
Definition posix_types.h:21
unsigned short uid_t
Definition posix_types.h:55
int ino_t
Definition posix_types.h:43
uint32_t pthread_key_t
Definition posix_types.h:153
unsigned short nlink_t
Definition posix_types.h:49
unsigned long timer_t
Definition posix_types.h:93
unsigned long blkcnt_t
Definition posix_types.h:73
uint32_t pthread_rwlock_t
Definition posix_types.h:146
uint32_t pthread_barrier_t
Definition posix_types.h:138
struct k_sem sem_t
Definition posix_types.h:111
__UINT32_TYPE__ uint32_t
Definition stdint.h:90
Definition posix_types.h:97
void * stack
Definition posix_types.h:98
uint32_t details[2]
Definition posix_types.h:99
Definition posix_types.h:140
int pshared
Definition posix_types.h:141
Definition posix_types.h:128
clockid_t clock
Definition posix_types.h:129
Definition posix_types.h:116
unsigned char type
Definition posix_types.h:117
bool initialized
Definition posix_types.h:118
Definition posix_types.h:148
bool flag
Definition posix_types.h:149