Zephyr API Documentation 3.7.99
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#ifdef CONFIG_NEWLIB_LIBC
15#include <sys/_pthreadtypes.h>
16#endif
17
18#include <zephyr/kernel.h>
19
20#ifdef __cplusplus
21extern "C" {
22#endif
23
24#if !defined(_DEV_T_DECLARED) && !defined(__dev_t_defined)
25typedef int dev_t;
26#define _DEV_T_DECLARED
27#define __dev_t_defined
28#endif
29
30#if !defined(_INO_T_DECLARED) && !defined(__ino_t_defined)
31typedef int ino_t;
32#define _INO_T_DECLARED
33#define __ino_t_defined
34#endif
35
36#if !defined(_NLINK_T_DECLARED) && !defined(__nlink_t_defined)
37typedef unsigned short nlink_t;
38#define _NLINK_T_DECLARED
39#define __nlink_t_defined
40#endif
41
42#if !defined(_UID_T_DECLARED) && !defined(__uid_t_defined)
43typedef unsigned short uid_t;
44#define _UID_T_DECLARED
45#define __uid_t_defined
46#endif
47
48#if !defined(_GID_T_DECLARED) && !defined(__gid_t_defined)
49typedef unsigned short gid_t;
50#define _GID_T_DECLARED
51#define __gid_t_defined
52#endif
53
54#if !defined(_BLKSIZE_T_DECLARED) && !defined(__blksize_t_defined)
55typedef unsigned long blksize_t;
56#define _BLKSIZE_T_DECLARED
57#define __blksize_t_defined
58#endif
59
60#if !defined(_BLKCNT_T_DECLARED) && !defined(__blkcnt_t_defined)
61typedef unsigned long blkcnt_t;
62#define _BLKCNT_T_DECLARED
63#define __blkcnt_t_defined
64#endif
65
66#if !defined(CONFIG_ARCMWDT_LIBC)
67typedef int pid_t;
68#endif
69
70#ifndef __useconds_t_defined
71typedef unsigned long useconds_t;
72#endif
73
74/* time related attributes */
75#if !defined(CONFIG_NEWLIB_LIBC) && !defined(CONFIG_ARCMWDT_LIBC)
76#if !defined(__clockid_t_defined) && !defined(_CLOCKID_T_DECLARED)
78#endif
79#endif /* !CONFIG_NEWLIB_LIBC && !CONFIG_ARCMWDT_LIBC */
80#if !defined(__timer_t_defined) && !defined(_TIMER_T_DECLARED)
81typedef unsigned long timer_t;
82#endif
83
84/* Thread attributes */
86 void *stack;
88};
89
90#if !defined(CONFIG_NEWLIB_LIBC)
92BUILD_ASSERT(sizeof(pthread_attr_t) >= sizeof(struct pthread_attr));
93#endif
94
97
98/* Semaphore */
99typedef struct k_sem sem_t;
100
101/* Mutex */
103
105 unsigned char type: 2;
106 bool initialized: 1;
107};
108#if !defined(CONFIG_NEWLIB_LIBC)
110BUILD_ASSERT(sizeof(pthread_mutexattr_t) >= sizeof(struct pthread_mutexattr));
111#endif
112
113/* Condition variables */
115
119
120#if !defined(CONFIG_NEWLIB_LIBC)
122BUILD_ASSERT(sizeof(pthread_condattr_t) >= sizeof(struct pthread_condattr));
123#endif
124
125/* Barrier */
127
131
133
135
137 bool flag;
138};
139
140#if !defined(CONFIG_NEWLIB_LIBC)
143/* Newlib typedefs pthread_once_t as a struct with two ints */
144BUILD_ASSERT(sizeof(pthread_once_t) >= sizeof(struct pthread_once));
145#endif
146
147#ifdef __cplusplus
148}
149#endif
150
151#endif /* ZEPHYR_INCLUDE_POSIX_TYPES_H_ */
Public kernel APIs.
int dev_t
Definition posix_types.h:25
uint32_t pthread_cond_t
Definition posix_types.h:114
unsigned long useconds_t
Definition posix_types.h:71
uint32_t pthread_spinlock_t
Definition posix_types.h:96
struct pthread_barrierattr pthread_barrierattr_t
int pid_t
Definition posix_types.h:67
unsigned short gid_t
Definition posix_types.h:49
uint32_t pthread_t
Definition posix_types.h:95
uint32_t pthread_mutex_t
Definition posix_types.h:102
uint32_t pthread_rwlockattr_t
Definition posix_types.h:132
unsigned long blksize_t
Definition posix_types.h:55
unsigned short uid_t
Definition posix_types.h:43
int ino_t
Definition posix_types.h:31
uint32_t pthread_key_t
Definition posix_types.h:141
unsigned short nlink_t
Definition posix_types.h:37
unsigned long timer_t
Definition posix_types.h:81
unsigned long blkcnt_t
Definition posix_types.h:61
uint32_t clockid_t
Definition posix_types.h:77
uint32_t pthread_rwlock_t
Definition posix_types.h:134
uint32_t pthread_barrier_t
Definition posix_types.h:126
struct k_sem sem_t
Definition posix_types.h:99
__UINT32_TYPE__ uint32_t
Definition stdint.h:90
Definition posix_types.h:85
void * stack
Definition posix_types.h:86
uint32_t details[2]
Definition posix_types.h:87
Definition posix_types.h:128
int pshared
Definition posix_types.h:129
Definition posix_types.h:116
clockid_t clock
Definition posix_types.h:117
Definition posix_types.h:104
unsigned char type
Definition posix_types.h:105
bool initialized
Definition posix_types.h:106
Definition posix_types.h:136
bool flag
Definition posix_types.h:137