summaryrefslogtreecommitdiffhomepage
path: root/src/libPThread/PThreadKit
diff options
context:
space:
mode:
Diffstat (limited to 'src/libPThread/PThreadKit')
-rw-r--r--src/libPThread/PThreadKit/.keep0
-rw-r--r--src/libPThread/PThreadKit/Thread.h23
2 files changed, 23 insertions, 0 deletions
diff --git a/src/libPThread/PThreadKit/.keep b/src/libPThread/PThreadKit/.keep
new file mode 100644
index 00000000..e69de29b
--- /dev/null
+++ b/src/libPThread/PThreadKit/.keep
diff --git a/src/libPThread/PThreadKit/Thread.h b/src/libPThread/PThreadKit/Thread.h
new file mode 100644
index 00000000..de8efe8a
--- /dev/null
+++ b/src/libPThread/PThreadKit/Thread.h
@@ -0,0 +1,23 @@
+// SPDX-License-Identifier: Apache-2.0
+// Copyright 2026, Amlal El Mahrouss (amlal@nekernel.org)
+// Licensed under the Apache License, Version 2.0 (see LICENSE file)
+// Official repository: https://github.com/ne-foss-org/nekernel
+
+#ifndef LIBPOSIX_POSIXKIT_THREAD_H
+#define LIBPOSIX_POSIXKIT_THREAD_H
+
+#include <libPOSIXWrapper/POSIXKit/unistd.h>
+
+/// @brief Please use these macros to specify whether your function is thread safe or not.
+#define PTHREAD_UNSAFE __THREAD_UNSAFE
+#define PTHREAD_SAFE __THREAD_SAFE
+
+PTHREAD_SAFE SInt32 pthread_create(_Output ThreadRef* thread, VoidPtr attr,
+ VoidPtr (*start_routine)(VoidPtr), VoidPtr arg);
+PTHREAD_SAFE SInt32 pthread_join(ThreadRef thread, VoidPtr* retval);
+PTHREAD_SAFE SInt32 pthread_exit(SInt32 retval);
+PTHREAD_SAFE SInt32 pthread_detach(ThreadRef thread);
+PTHREAD_SAFE ThreadRef pthread_self(Void);
+PTHREAD_SAFE SInt32 pthread_yield(void);
+
+#endif // LIBPOSIX_POSIXKIT_THREAD_H