Files
rosetta/lib/libc/pthread/include/pthread.h
T
2026-07-19 13:31:22 +01:00

38 lines
890 B
C

#ifndef PTHREAD_H_
#define PTHREAD_H_
#include <magenta/types.h>
#define __PTHREAD_ATTR_SIZE__ 32
#define PTHREAD_MUTEX_INITIALIZER ((pthread_mutex_t) {.__v = 0})
typedef struct __pthread *pthread_t;
typedef struct __pthread_attr {
long __sig;
char __opaque[__PTHREAD_ATTR_SIZE__];
} pthread_attr_t;
typedef struct __pthread_mutex {
kern_futex_t __v;
} pthread_mutex_t;
extern int __pthread_init(void);
extern int pthread_create(
pthread_t *thread,
const pthread_attr_t *attr,
void *(*start_func)(void *),
void *arg);
extern pthread_t pthread_self(void);
extern int pthread_join(pthread_t thread, void **retval);
extern int pthread_detach(pthread_t thread);
extern void pthread_exit(void *retval);
extern int pthread_mutex_lock(pthread_mutex_t *mut);
extern int pthread_mutex_trylock(pthread_mutex_t *mut);
extern int pthread_mutex_unlock(pthread_mutex_t *mut);
#endif