[haiku-commits] r36074 - in haiku/trunk: headers/posix headers/private/system/posix src/system/libroot/posix/unistd

  • From: ingo_weinhold@xxxxxx
  • To: haiku-commits@xxxxxxxxxxxxx
  • Date: Wed, 7 Apr 2010 20:52:25 +0200 (CEST)

Author: bonefish
Date: 2010-04-07 20:52:25 +0200 (Wed, 07 Apr 2010)
New Revision: 36074
Changeset: http://dev.haiku-os.org/changeset/36074/haiku

Modified:
   haiku/trunk/headers/posix/unistd.h
   haiku/trunk/headers/private/system/posix/realtime_sem_defs.h
   haiku/trunk/src/system/libroot/posix/unistd/conf.c
Log:
Defined more sysconf() and _POSIX_* constants required by POSIX.


Modified: haiku/trunk/headers/posix/unistd.h
===================================================================
--- haiku/trunk/headers/posix/unistd.h  2010-04-07 18:51:00 UTC (rev 36073)
+++ haiku/trunk/headers/posix/unistd.h  2010-04-07 18:52:25 UTC (rev 36074)
@@ -36,8 +36,18 @@
 #define _POSIX_SAVED_IDS               1
 #define _POSIX_VDISABLE                        ((unsigned char)-2)
        /* TODO: Check this! */
-#define _POSIX_SEMAPHORES              (200112L)
-#define _POSIX_THREADS                 (200112L)
+/* TODO: Update these to the current POSIX version! Ideally after actually
+       supporting the features. */
+#define _POSIX_SEMAPHORES                                      (200112L)
+#define _POSIX_THREADS                                         (200112L)
+#define _POSIX_MAPPED_FILES                                    (200809L)
+#define _POSIX_THREAD_PROCESS_SHARED           (200809L)
+#define _POSIX_THREAD_ATTR_STACKADDR           (-1)    /* currently 
unsupported */
+#define _POSIX_THREAD_ATTR_STACKSIZE           (200809L)
+#define _POSIX_THREAD_PRIORITY_SCHEDULING      (-1)    /* currently 
unsupported */
+#define _POSIX_REALTIME_SIGNALS                                (-1)    /* 
currently unsupported */
+#define _POSIX_MEMORY_PROTECTION                       (200809L)
+#define _POSIX_SEM_VALUE_MAX                           INT_MAX
 
 /* pathconf() constants */
 /* BeOS supported values, do not touch */
@@ -51,7 +61,6 @@
 #define _PC_VDISABLE                   8
 #define _PC_LINK_MAX                   25
 /* new values */
-/* TODO: reorder */
 #define _PC_SYNC_IO                            26
 #define _PC_ASYNC_IO                   27
 #define _PC_PRIO_IO                            28
@@ -79,6 +88,7 @@
 #define _SC_STREAM_MAX                 22
 #define _SC_TZNAME_MAX                 23
 #define _SC_VERSION                            24
+/* new values */
 #define _SC_GETGR_R_SIZE_MAX   25
 #define _SC_GETPW_R_SIZE_MAX   26
 #define _SC_PAGE_SIZE                  27
@@ -87,20 +97,28 @@
 #define _SC_SEM_VALUE_MAX              29
 #define _SC_SEMAPHORES                 30
 #define _SC_THREADS                            31
-/* TODO: check and reorder */
-#define _SC_IOV_MAX                            32
-#define _SC_UIO_MAXIOV                 _SC_IOV_MAX
-#define _SC_NPROCESSORS_MAX            33
-#define _SC_NPROCESSORS_CONF   34
-#define _SC_NPROCESSORS_ONLN   35
-#define _SC_CPUID_MAX                  36
-#define _SC_ATEXIT_MAX                 37
-#define _SC_PASS_MAX                   39
-#define _SC_PHYS_PAGES                 40
-#define _SC_AVPHYS_PAGES               41
-#define _SC_PIPE                               42
-#define _SC_SELECT                             43
-#define _SC_POLL                               44
+/* TODO: check */
+#define _SC_IOV_MAX                                            32
+#define _SC_UIO_MAXIOV                                 _SC_IOV_MAX
+#define _SC_NPROCESSORS_MAX                            33
+#define _SC_NPROCESSORS_CONF                   34
+#define _SC_NPROCESSORS_ONLN                   35
+#define _SC_CPUID_MAX                                  36
+#define _SC_ATEXIT_MAX                                 37
+#define _SC_PASS_MAX                                   39
+#define _SC_PHYS_PAGES                                 40
+#define _SC_AVPHYS_PAGES                               41
+#define _SC_PIPE                                               42
+#define _SC_SELECT                                             43
+#define _SC_POLL                                               44
+#define _SC_MAPPED_FILES                               45
+#define _SC_THREAD_PROCESS_SHARED              46
+#define _SC_THREAD_STACK_MIN                   47
+#define _SC_THREAD_ATTR_STACKADDR              48
+#define _SC_THREAD_ATTR_STACKSIZE              49
+#define _SC_THREAD_PRIORITY_SCHEDULING 50
+#define _SC_REALTIME_SIGNALS                   51
+#define        _SC_MEMORY_PROTECTION                   52
 
 
 /* confstr() constants */

Modified: haiku/trunk/headers/private/system/posix/realtime_sem_defs.h
===================================================================
--- haiku/trunk/headers/private/system/posix/realtime_sem_defs.h        
2010-04-07 18:51:00 UTC (rev 36073)
+++ haiku/trunk/headers/private/system/posix/realtime_sem_defs.h        
2010-04-07 18:52:25 UTC (rev 36074)
@@ -1,12 +1,17 @@
 /*
- * Copyright 2008, Ingo Weinhold, ingo_weinhold@xxxxxxx
+ * Copyright 2008-2010, Ingo Weinhold, ingo_weinhold@xxxxxxx
  * Distributed under the terms of the MIT License.
  */
 #ifndef SYSTEM_REALTIME_SEM_H
 #define SYSTEM_REALTIME_SEM_H
 
+
+#include <unistd.h>
+
+
 #define MAX_POSIX_SEMS_PER_TEAM        128
 #define MAX_POSIX_SEMS                 1024
-#define MAX_POSIX_SEM_VALUE            INT_MAX
+#define MAX_POSIX_SEM_VALUE            _POSIX_SEM_VALUE_MAX
 
+
 #endif // SYSTEM_REALTIME_SEM_H

Modified: haiku/trunk/src/system/libroot/posix/unistd/conf.c
===================================================================
--- haiku/trunk/src/system/libroot/posix/unistd/conf.c  2010-04-07 18:51:00 UTC 
(rev 36073)
+++ haiku/trunk/src/system/libroot/posix/unistd/conf.c  2010-04-07 18:52:25 UTC 
(rev 36074)
@@ -18,6 +18,7 @@
 #include <fs_info.h>
 #include <libroot_private.h>
 #include <posix/realtime_sem_defs.h>
+#include <thread_defs.h>
 #include <user_group.h>
 
 bool _kern_cpu_enabled(int cpu);
@@ -69,7 +70,7 @@
                case _SC_SEM_NSEMS_MAX:
                        return MAX_POSIX_SEMS;
                case _SC_SEM_VALUE_MAX:
-                       return MAX_POSIX_SEM_VALUE;
+                       return _POSIX_SEM_VALUE_MAX;
                case _SC_SEMAPHORES:
                        return _POSIX_SEMAPHORES;
                case _SC_THREADS:
@@ -130,14 +131,28 @@
                        }
                        return info.max_pages - info.used_pages;
                }
-               /*
+               case _SC_MAPPED_FILES:
+                       return _POSIX_MAPPED_FILES;
+               case _SC_THREAD_PROCESS_SHARED:
+                       return _POSIX_THREAD_PROCESS_SHARED;
+               case _SC_THREAD_STACK_MIN:
+                       return MIN_USER_STACK_SIZE;
+               case _SC_THREAD_ATTR_STACKADDR:
+                       return _POSIX_THREAD_ATTR_STACKADDR;
+               case _SC_THREAD_ATTR_STACKSIZE:
+                       return _POSIX_THREAD_ATTR_STACKSIZE;
+               case _SC_THREAD_PRIORITY_SCHEDULING:
+                       return _POSIX_THREAD_PRIORITY_SCHEDULING;
+               case _SC_REALTIME_SIGNALS:
+                       return _POSIX_REALTIME_SIGNALS;
+               case _SC_MEMORY_PROTECTION:
+                       return _POSIX_MEMORY_PROTECTION;
+
+               // not POSIX (anymore)
                case _SC_PIPE:
-                       return 1;
                case _SC_SELECT:
-                       return 1;
                case _SC_POLL:
                        return 1;
-               */
        }
 
        errno = EINVAL;


Other related posts:

  • » [haiku-commits] r36074 - in haiku/trunk: headers/posix headers/private/system/posix src/system/libroot/posix/unistd - ingo_weinhold