diff druntime/import/core/sys/posix/sys/types.d @ 1458:e0b2d67cfe7c

Added druntime (this should be removed once it works).
author Robert Clipsham <robert@octarineparrot.com>
date Tue, 02 Jun 2009 17:43:06 +0100
parents
children
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/druntime/import/core/sys/posix/sys/types.d	Tue Jun 02 17:43:06 2009 +0100
@@ -0,0 +1,429 @@
+/**
+ * D header file for POSIX.
+ *
+ * Copyright: Copyright Sean Kelly 2005 - 2009.
+ * License:   <a href="http://www.boost.org/LICENSE_1_0.txt>Boost License 1.0</a>.
+ * Authors:   Sean Kelly
+ * Standards: The Open Group Base Specifications Issue 6, IEEE Std 1003.1, 2004 Edition
+ *
+ *          Copyright Sean Kelly 2005 - 2009.
+ * Distributed under the Boost Software License, Version 1.0.
+ *    (See accompanying file LICENSE_1_0.txt or copy at
+ *          http://www.boost.org/LICENSE_1_0.txt)
+ */
+module core.sys.posix.sys.types;
+
+private import core.sys.posix.config;
+private import core.stdc.stdint;
+public import core.stdc.stddef; // for size_t
+public import core.stdc.time;   // for clock_t, time_t
+
+extern (C):
+
+//
+// Required
+//
+/*
+blkcnt_t
+blksize_t
+dev_t
+gid_t
+ino_t
+mode_t
+nlink_t
+off_t
+pid_t
+size_t
+ssize_t
+time_t
+uid_t
+*/
+
+version( linux )
+{
+  static if( __USE_FILE_OFFSET64 )
+  {
+    alias long      blkcnt_t;
+    alias ulong     ino_t;
+    alias long      off_t;
+  }
+  else
+  {
+    alias c_long    blkcnt_t;
+    alias c_ulong   ino_t;
+    alias c_long    off_t;
+  }
+    alias c_long    blksize_t;
+    alias ulong     dev_t;
+    alias uint      gid_t;
+    alias uint      mode_t;
+    alias c_ulong   nlink_t;
+    alias int       pid_t;
+    //size_t (defined in core.stdc.stddef)
+    alias c_long    ssize_t;
+    //time_t (defined in core.stdc.time)
+    alias uint      uid_t;
+}
+else version( OSX )
+{
+    alias long      blkcnt_t;
+    alias int       blksize_t;
+    alias int       dev_t;
+    alias uint      gid_t;
+    alias uint      ino_t;
+    alias ushort    mode_t;
+    alias ushort    nlink_t;
+    alias long      off_t;
+    alias int       pid_t;
+    //size_t (defined in core.stdc.stddef)
+    alias size_t    ssize_t;
+    //time_t (defined in core.stdc.time)
+    alias uint      uid_t;
+}
+else version( freebsd )
+{
+    alias long      blkcnt_t;
+    alias uint      blksize_t;
+    alias uint      dev_t;
+    alias uint      gid_t;
+    alias uint      ino_t;
+    alias ushort    mode_t;
+    alias ushort    nlink_t;
+    alias long      off_t;
+    alias int       pid_t;
+    //size_t (defined in core.stdc.stddef)
+    alias size_t    ssize_t;
+    //time_t (defined in core.stdc.time)
+    alias uint      uid_t;
+    alias uint      fflags_t;
+}
+
+//
+// XOpen (XSI)
+//
+/*
+clock_t
+fsblkcnt_t
+fsfilcnt_t
+id_t
+key_t
+suseconds_t
+useconds_t
+*/
+
+version( linux )
+{
+  static if( __USE_FILE_OFFSET64 )
+  {
+    alias ulong     fsblkcnt_t;
+    alias ulong     fsfilcnt_t;
+  }
+  else
+  {
+    alias c_ulong   fsblkcnt_t;
+    alias c_ulong   fsfilcnt_t;
+  }
+    // clock_t (defined in core.stdc.time)
+    alias uint      id_t;
+    alias int       key_t;
+    alias c_long    suseconds_t;
+    alias uint      useconds_t;
+}
+else version( OSX )
+{
+    //clock_t
+    alias uint  fsblkcnt_t;
+    alias uint  fsfilcnt_t;
+    alias uint  id_t;
+    // key_t
+    alias int   suseconds_t;
+    alias uint  useconds_t;
+}
+else version( freebsd )
+{
+    //clock_t
+    alias ulong     fsblkcnt_t;
+    alias ulong     fsfilcnt_t;
+    alias long      id_t;
+    alias c_long    key_t;
+    alias c_long    suseconds_t;
+    alias uint      useconds_t;
+}
+
+//
+// Thread (THR)
+//
+/*
+pthread_attr_t
+pthread_cond_t
+pthread_condattr_t
+pthread_key_t
+pthread_mutex_t
+pthread_mutexattr_t
+pthread_once_t
+pthread_rwlock_t
+pthread_rwlockattr_t
+pthread_t
+*/
+
+version( linux )
+{
+    private struct __sched_param
+    {
+        int __sched_priority;
+    }
+
+    struct pthread_attr_t
+    {
+        int             __detachstate;
+        int             __schedpolicy;
+        __sched_param   __schedparam;
+        int             __inheritsched;
+        int             __scope;
+        size_t          __guardsize;
+        int             __stackaddr_set;
+        void*           __stackaddr;
+        size_t          __stacksize;
+    }
+
+    private alias int __atomic_lock_t;
+
+    private struct _pthread_fastlock
+    {
+        c_long          __status;
+        __atomic_lock_t __spinlock;
+    }
+
+    private alias void* _pthread_descr;
+
+    private alias long __pthread_cond_align_t;
+
+    struct pthread_cond_t
+    {
+        _pthread_fastlock       __c_lock;
+        _pthread_descr          __c_waiting;
+        char[48 -
+             _pthread_fastlock.sizeof -
+             _pthread_descr.sizeof -
+             __pthread_cond_align_t.sizeof]
+                                __padding;
+        __pthread_cond_align_t  __align;
+    }
+
+    struct pthread_condattr_t
+    {
+        int __dummy;
+    }
+
+    alias uint pthread_key_t;
+
+    struct pthread_mutex_t
+    {
+        int                 __m_reserved;
+        int                 __m_count;
+        _pthread_descr      __m_owner;
+        int                 __m_kind;
+        _pthread_fastlock   __m_lock;
+    }
+
+    struct pthread_mutexattr_t
+    {
+        int __mutexkind;
+    }
+
+    alias int pthread_once_t;
+
+    struct pthread_rwlock_t
+    {
+        _pthread_fastlock   __rw_lock;
+        int                 __rw_readers;
+        _pthread_descr      __rw_writer;
+        _pthread_descr      __rw_read_waiting;
+        _pthread_descr      __rw_write_waiting;
+        int                 __rw_kind;
+        int                 __rw_pshared;
+    }
+
+    struct pthread_rwlockattr_t
+    {
+        int __lockkind;
+        int __pshared;
+    }
+
+    alias c_ulong pthread_t;
+}
+else version( OSX )
+{
+    version( X86_64 )
+    {
+        enum __PTHREAD_SIZE__               = 1168;
+        enum __PTHREAD_ATTR_SIZE__          = 56;
+        enum __PTHREAD_MUTEXATTR_SIZE__     = 8;
+        enum __PTHREAD_MUTEX_SIZE__         = 56;
+        enum __PTHREAD_CONDATTR_SIZE__      = 8;
+        enum __PTHREAD_COND_SIZE__          = 40;
+        enum __PTHREAD_ONCE_SIZE__          = 8;
+        enum __PTHREAD_RWLOCK_SIZE__        = 192;
+        enum __PTHREAD_RWLOCKATTR_SIZE__    = 16;
+    }
+    else version( X86 )
+    {
+        enum __PTHREAD_SIZE__               = 596;
+        enum __PTHREAD_ATTR_SIZE__          = 36;
+        enum __PTHREAD_MUTEXATTR_SIZE__     = 8;
+        enum __PTHREAD_MUTEX_SIZE__         = 40;
+        enum __PTHREAD_CONDATTR_SIZE__      = 4;
+        enum __PTHREAD_COND_SIZE__          = 24;
+        enum __PTHREAD_ONCE_SIZE__          = 4;
+        enum __PTHREAD_RWLOCK_SIZE__        = 124;
+        enum __PTHREAD_RWLOCKATTR_SIZE__    = 12;
+    }
+
+    struct pthread_handler_rec
+    {
+      void function(void*)  __routine;
+      void*                 __arg;
+      pthread_handler_rec*  __next;
+    }
+
+    struct pthread_attr_t
+    {
+        c_long                              __sig;
+        byte[__PTHREAD_ATTR_SIZE__]         __opaque;
+    }
+
+    struct pthread_cond_t
+    {
+        c_long                              __sig;
+        byte[__PTHREAD_COND_SIZE__]         __opaque;
+    }
+
+    struct pthread_condattr_t
+    {
+        c_long                              __sig;
+        byte[__PTHREAD_CONDATTR_SIZE__]     __opaque;
+    }
+
+    alias c_ulong pthread_key_t;
+
+    struct pthread_mutex_t
+    {
+        c_long                              __sig;
+        byte[__PTHREAD_MUTEX_SIZE__]        __opaque;
+    }
+
+    struct pthread_mutexattr_t
+    {
+        c_long                              __sig;
+        byte[__PTHREAD_MUTEXATTR_SIZE__]    __opaque;
+    }
+
+    struct pthread_once_t
+    {
+        c_long                              __sig;
+        byte[__PTHREAD_ONCE_SIZE__]         __opaque;
+    }
+
+    struct pthread_rwlock_t
+    {
+        c_long                              __sig;
+        byte[__PTHREAD_RWLOCK_SIZE__]       __opaque;
+    }
+
+    struct pthread_rwlockattr_t
+    {
+        c_long                              __sig;
+        byte[__PTHREAD_RWLOCKATTR_SIZE__]   __opaque;
+    }
+
+    private struct _opaque_pthread_t
+    {
+        c_long                  __sig;
+        pthread_handler_rec*    __cleanup_stack;
+        byte[__PTHREAD_SIZE__]  __opaque;
+    }
+
+    alias _opaque_pthread_t* pthread_t;
+}
+else version( freebsd )
+{
+    alias int lwpid_t;
+
+    alias void* pthread_attr_t;
+    alias void* pthread_cond_t;
+    alias void* pthread_condattr_t;
+    alias void* pthread_key_t;
+    alias void* pthread_mutex_t;
+    alias void* pthread_mutexattr_t;
+    alias void* pthread_once_t;
+    alias void* pthread_rwlock_t;
+    alias void* pthread_rwlockattr_t;
+    alias void* pthread_t;
+}
+
+//
+// Barrier (BAR)
+//
+/*
+pthread_barrier_t
+pthread_barrierattr_t
+*/
+
+version( linux )
+{
+    struct pthread_barrier_t
+    {
+        _pthread_fastlock   __ba_lock;
+        int                 __ba_required;
+        int                 __ba_present;
+        _pthread_descr      __ba_waiting;
+    }
+
+    struct pthread_barrierattr_t
+    {
+        int __pshared;
+    }
+}
+else version( freebsd )
+{
+    alias void* pthread_barrier_t;
+    alias void* pthread_barrierattr_t;
+}
+
+//
+// Spin (SPN)
+//
+/*
+pthread_spinlock_t
+*/
+
+version( linux )
+{
+    alias int pthread_spinlock_t; // volatile
+}
+else version( OSX )
+{
+    //struct pthread_spinlock_t;
+}
+else version( freebsd )
+{
+    alias void* pthread_spinlock_t;
+}
+
+//
+// Timer (TMR)
+//
+/*
+clockid_t
+timer_t
+*/
+
+//
+// Trace (TRC)
+//
+/*
+trace_attr_t
+trace_event_id_t
+trace_event_set_t
+trace_id_t
+*/