* Fixed some misunderstanding regarding the _POSIX_* macros. They are
not supposed to be passed to pathconf() or sysconf(). * Added POSIX semaphore related macros. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@25361 a95241bf-73f2-0310-859d-f6bbb57e9c96
This commit is contained in:
parent
6806f7f873
commit
01b1098795
@ -28,7 +28,14 @@
|
||||
#define F_TEST 3 /* test a section for locks by other processes */
|
||||
|
||||
/* POSIX version support */
|
||||
#define _POSIX_VERSION (199009L)
|
||||
#define _POSIX_VERSION (199009L) /* TODO: Update! */
|
||||
|
||||
#define _POSIX_CHOWN_RESTRICTED 1
|
||||
#define _POSIX_JOB_CONTROL 1
|
||||
#define _POSIX_NO_TRUNC 0
|
||||
#define _POSIX_SAVED_IDS 1
|
||||
#define _POSIX_VDISABLE ((char)-2) /* TODO: Check this! */
|
||||
#define _POSIX_SEMAPHORES (200112L)
|
||||
|
||||
/* pathconf() constants */
|
||||
#define _PC_CHOWN_RESTRICTED 1
|
||||
@ -40,11 +47,6 @@
|
||||
#define _PC_PIPE_BUF 7
|
||||
#define _PC_VDISABLE 8
|
||||
#define _PC_LINK_MAX 25
|
||||
#define _POSIX_CHOWN_RESTRICTED 9
|
||||
#define _POSIX_JOB_CONTROL 10
|
||||
#define _POSIX_NO_TRUNC 11
|
||||
#define _POSIX_SAVED_IDS 12
|
||||
#define _POSIX_VDISABLE ((cc_t) - 2)
|
||||
|
||||
/* sysconf() constants */
|
||||
#define _SC_ARG_MAX 15
|
||||
@ -61,6 +63,9 @@
|
||||
#define _SC_GETPW_R_SIZE_MAX 26
|
||||
#define _SC_PAGE_SIZE 27
|
||||
#define _SC_PAGESIZE _SC_PAGE_SIZE
|
||||
#define _SC_SEM_NSEMS_MAX 28
|
||||
#define _SC_SEM_VALUE_MAX 29
|
||||
#define _SC_SEMAPHORES 30
|
||||
|
||||
/* lseek() constants */
|
||||
#ifndef SEEK_SET
|
||||
|
@ -15,6 +15,11 @@
|
||||
struct realtime_sem_context;
|
||||
|
||||
|
||||
#define MAX_POSIX_SEMS_PER_TEAM 128
|
||||
#define MAX_POSIX_SEMS 1024
|
||||
#define MAX_POSIX_SEM_VALUE INT_MAX
|
||||
|
||||
|
||||
__BEGIN_DECLS
|
||||
|
||||
void realtime_sem_init();
|
||||
@ -22,7 +27,7 @@ void delete_realtime_sem_context(struct realtime_sem_context* context);
|
||||
struct realtime_sem_context* clone_realtime_sem_context(
|
||||
struct realtime_sem_context* context);
|
||||
|
||||
status_t _user_realtime_sem_open(const char* name, int openFlags,
|
||||
status_t _user_realtime_sem_open(const char* name, int openFlagsOrShared,
|
||||
mode_t mode, uint32 semCount, sem_t* userSem,
|
||||
sem_t** _usedUserSem);
|
||||
status_t _user_realtime_sem_close(sem_id semID, sem_t** _deleteUserSem);
|
||||
|
@ -15,6 +15,7 @@
|
||||
#include <SupportDefs.h>
|
||||
|
||||
#include <libroot_private.h>
|
||||
#include <posix/realtime_sem.h>
|
||||
#include <user_group.h>
|
||||
|
||||
|
||||
@ -61,6 +62,12 @@ sysconf(int name)
|
||||
return MAX_PASSWD_BUFFER_SIZE;
|
||||
case _SC_PAGE_SIZE:
|
||||
return B_PAGE_SIZE;
|
||||
case _SC_SEM_NSEMS_MAX:
|
||||
return MAX_POSIX_SEMS;
|
||||
case _SC_SEM_VALUE_MAX:
|
||||
return MAX_POSIX_SEM_VALUE;
|
||||
case _SC_SEMAPHORES:
|
||||
return _POSIX_SEMAPHORES;
|
||||
}
|
||||
|
||||
return -1;
|
||||
@ -71,10 +78,8 @@ long
|
||||
fpathconf(int fd, int name)
|
||||
{
|
||||
switch (name) {
|
||||
// ToDo: out of what stupidity have those been defined differently?
|
||||
case _PC_CHOWN_RESTRICTED:
|
||||
case _POSIX_CHOWN_RESTRICTED:
|
||||
return 1;
|
||||
return _POSIX_CHOWN_RESTRICTED;
|
||||
|
||||
case _PC_MAX_CANON:
|
||||
return MAX_CANON;
|
||||
@ -86,8 +91,7 @@ fpathconf(int fd, int name)
|
||||
return NAME_MAX;
|
||||
|
||||
case _PC_NO_TRUNC:
|
||||
case _POSIX_NO_TRUNC:
|
||||
return 0;
|
||||
return _POSIX_NO_TRUNC;
|
||||
|
||||
case _PC_PATH_MAX:
|
||||
return PATH_MAX;
|
||||
@ -98,10 +102,8 @@ fpathconf(int fd, int name)
|
||||
case _PC_LINK_MAX:
|
||||
return LINK_MAX;
|
||||
|
||||
// _PC_VDISABLE
|
||||
// _POSIX_VDISABLE
|
||||
// _POSIX_JOB_CONTROL
|
||||
// _POSIX_SAVED_IDS
|
||||
case _PC_VDISABLE:
|
||||
return _POSIX_VDISABLE;
|
||||
}
|
||||
|
||||
return -1;
|
||||
|
Loading…
x
Reference in New Issue
Block a user