// --- Types ---
typedef Uint32 tPID; //!< Process ID type
+typedef Uint32 tPGID; //!< Process Group ID type
typedef Uint32 tTID; //!< Thread ID Type
typedef Uint32 tUID; //!< User ID Type
typedef Uint32 tGID; //!< Group ID Type
typedef Sint64 tTime; //!< Same again
typedef struct sShortSpinlock tShortSpinlock; //!< Opaque (kinda) spinlock
typedef int bool; //!< Boolean type
+typedef Uint64 off_t; //!< VFS Offset
// --- Helper Macros ---
/**
#define CLONE_VM 0x10
//! Don't copy user pages
#define CLONE_NOUSER 0x20
+//! Inherit the parent's PGID
+#define CLONE_PGID 0x40
/**
* \}
*/
* \{
*/
extern int vsnprintf(char *__s, size_t __maxlen, const char *__format, va_list args);
-extern size_t snprintf(char *__s, size_t __n, const char *__format, ...);
+extern int snprintf(char *__s, size_t __n, const char *__format, ...);
extern int sprintf(char *__s, const char *__format, ...);
extern size_t strlen(const char *Str);
extern char *strcpy(char *__dest, const char *__src);
extern void Threads_Yield(void);
extern void Threads_Sleep(void);
extern int Threads_WakeTID(tTID Thread);
+extern tPGID Threads_GetPGID(void);
extern tPID Threads_GetPID(void);
extern tTID Threads_GetTID(void);
extern tUID Threads_GetUID(void);