[haiku-commits] BRANCH mmadia-github.separate-build-environment - headers/build/posix_target

  • From: mmadia-github.separate-build-environment <community@xxxxxxxxxxxx>
  • To: haiku-commits@xxxxxxxxxxxxx
  • Date: Thu, 9 Aug 2012 01:49:15 +0200 (CEST)

added 3 changesets to branch 
'refs/remotes/mmadia-github/separate-build-environment'
old head: 982b8f0b5c85c3dfdd6931b2448b9e11373570dc
new head: c71e5e77399bd6127a63434869907d61c198be12

----------------------------------------------------------------------------

b1f6e2a: Added target_fcntl.h

9ba78db: Missed prefixing a size_t.
  
  TODO: add a _haiku_build_size_t and update all uses of
  _HAIKU_BUILD_FEATURE___SIZE_TYPE__

c71e5e7: Don't wrap function pointers.

                                        [ Matt Madia <mattmadia@xxxxxxxxx> ]

----------------------------------------------------------------------------

3 files changed, 162 insertions(+), 12 deletions(-)
headers/build/posix_target/target_fcntl.h  |  156 ++++++++++++++++++++++++
headers/build/posix_target/target_stdlib.h |   16 +--
headers/build/posix_target/target_unistd.h |    2 +-

############################################################################

Commit:      b1f6e2a98351fc791c6541d912ae6e38eb6acc43

Author:      Matt Madia <mattmadia@xxxxxxxxx>
Date:        Wed Aug  8 23:24:04 2012 UTC

Added target_fcntl.h

----------------------------------------------------------------------------

diff --git a/headers/build/posix_target/target_fcntl.h 
b/headers/build/posix_target/target_fcntl.h
new file mode 100644
index 0000000..8b795f5
--- /dev/null
+++ b/headers/build/posix_target/target_fcntl.h
@@ -0,0 +1,156 @@
+/*
+ * Copyright 2002-2012 Haiku, Inc. All Rights Reserved.
+ * Distributed under the terms of the MIT License.
+ */
+#ifndef _FCNTL_H
+#define _FCNTL_H
+
+
+#include <sys/target_types.h>
+#include <sys/target_stat.h>
+#include <target_unistd.h>
+
+
+/* commands that can be passed to fcntl() */
+#define _HAIKU_BUILD_F_DUPFD                   0x0001          /* duplicate fd 
*/
+#define _HAIKU_BUILD_F_GETFD                   0x0002          /* get fd flags 
*/
+#define _HAIKU_BUILD_F_SETFD                   0x0004          /* set fd flags 
*/
+#define _HAIKU_BUILD_F_GETFL                   0x0008          /* get file 
status flags and access mode */
+#define _HAIKU_BUILD_F_SETFL                   0x0010          /* set file 
status flags */
+#define _HAIKU_BUILD_F_GETLK         0x0020            /* get locking 
information */
+#define _HAIKU_BUILD_F_SETLK         0x0080            /* set locking 
information */
+#define _HAIKU_BUILD_F_SETLKW        0x0100            /* as above, but waits 
if blocked */
+
+/* advisory locking types */
+#define _HAIKU_BUILD_F_RDLCK         0x0040            /* read or shared lock 
*/
+#define _HAIKU_BUILD_F_UNLCK         0x0200            /* unlock */
+#define _HAIKU_BUILD_F_WRLCK         0x0400            /* write or exclusive 
lock */
+
+/* file descriptor flags for fcntl() */
+#define _HAIKU_BUILD_FD_CLOEXEC                1                       /* 
close on exec */
+
+/* file access modes for open() */
+#define _HAIKU_BUILD_O_RDONLY          0x0000          /* read only */
+#define _HAIKU_BUILD_O_WRONLY          0x0001          /* write only */
+#define _HAIKU_BUILD_O_RDWR                    0x0002          /* read and 
write */
+#define _HAIKU_BUILD_O_ACCMODE         0x0003          /* mask to get the 
access modes above */
+#define _HAIKU_BUILD_O_RWMASK          O_ACCMODE
+
+/* flags for open() */
+#define _HAIKU_BUILD_O_EXCL                    0x0100          /* exclusive 
creat */
+#define _HAIKU_BUILD_O_CREAT                   0x0200          /* create and 
open file */
+#define _HAIKU_BUILD_O_TRUNC                   0x0400          /* open with 
truncation */
+#define _HAIKU_BUILD_O_NOCTTY          0x1000          /* don't make tty the 
controlling tty */
+#define _HAIKU_BUILD_O_NOTRAVERSE      0x2000          /* do not traverse leaf 
link */
+
+/* flags for open() and fcntl() */
+#define _HAIKU_BUILD_O_CLOEXEC         0x00000040      /* close on exec */
+#define _HAIKU_BUILD_O_NONBLOCK                0x00000080      /* non blocking 
io */
+#define _HAIKU_BUILD_O_NDELAY          O_NONBLOCK
+#define _HAIKU_BUILD_O_APPEND          0x00000800      /* to end of file */
+#define _HAIKU_BUILD_O_SYNC                    0x00010000      /* write 
synchronized I/O file integrity */
+#define _HAIKU_BUILD_O_RSYNC                   0x00020000      /* read 
synchronized I/O file integrity */
+#define _HAIKU_BUILD_O_DSYNC                   0x00040000      /* write 
synchronized I/O data integrity */
+#define _HAIKU_BUILD_O_NOFOLLOW                0x00080000      /* fail on 
symlinks */
+#define _HAIKU_BUILD_O_NOCACHE         0x00100000      /* do not use the file 
system cache if */
+                                                                       /* 
possible */
+#define _HAIKU_BUILD_O_DIRECT          O_NOCACHE
+#define _HAIKU_BUILD_O_DIRECTORY               0x00200000      /* fail if not 
a directory */
+
+/* flags for the *at() functions */
+#define _HAIKU_BUILD_AT_FDCWD          (-1)            /* CWD FD for the *at() 
functions */
+
+#define _HAIKU_BUILD_AT_SYMLINK_NOFOLLOW       0x01    /* fstatat(), 
fchmodat(), fchownat(),
+                                                                               
utimensat() */
+#define _HAIKU_BUILD_AT_SYMLINK_FOLLOW 0x02    /* linkat() */
+#define _HAIKU_BUILD_AT_REMOVEDIR              0x04    /* unlinkat() */
+#define _HAIKU_BUILD_AT_EACCESS                        0x08    /* faccessat() 
*/
+
+#ifndef _HAIKU_BUILD_LIBROOT_FUNCTION_WRAPPER
+/* commands that can be passed to fcntl() */
+#      define  F_DUPFD                 _HAIKU_BUILD_F_DUPFD            /* 
duplicate fd */
+#      define  F_GETFD                 _HAIKU_BUILD_F_GETFD            /* get 
fd flags */
+#      define  F_SETFD                 _HAIKU_BUILD_F_SETFD            /* set 
fd flags */
+#      define  F_GETFL                 _HAIKU_BUILD_F_GETFL            /* get 
file status flags and access mode */
+#      define  F_SETFL                 _HAIKU_BUILD_F_SETFL            /* set 
file status flags */
+#      define F_GETLK         _HAIKU_BUILD_F_GETLK             /* get locking 
information */
+#      define F_SETLK         _HAIKU_BUILD_F_SETLK             /* set locking 
information */
+#      define F_SETLKW        _HAIKU_BUILD_F_SETLKW            /* as above, 
but waits if blocked */
+
+/* advisory locking types */
+#      define F_RDLCK         _HAIKU_BUILD_F_RDLCK             /* read or 
shared lock */
+#      define F_UNLCK         _HAIKU_BUILD_F_UNLCK             /* unlock */
+#      define F_WRLCK         _HAIKU_BUILD_F_WRLCK             /* write or 
exclusive lock */
+
+/* file descriptor flags for fcntl() */
+#      define FD_CLOEXEC               _HAIKU_BUILD_FD_CLOEXEC                 
/* close on exec */
+
+/* file access modes for open() */
+#      define O_RDONLY         _HAIKU_BUILD_O_RDONLY           /* read only */
+#      define O_WRONLY         _HAIKU_BUILD_O_WRONLY           /* write only */
+#      define O_RDWR                   _HAIKU_BUILD_O_RDWR             /* read 
and write */
+#      define O_ACCMODE        _HAIKU_BUILD_O_ACCMODE          /* mask to get 
the access modes above */
+#      define O_RWMASK         _HAIKU_BUILD_O_RWMASK
+
+/* flags for open() */
+#      define  O_EXCL                  _HAIKU_BUILD_O_EXCL             /* 
exclusive creat */
+#      define O_CREAT                  _HAIKU_BUILD_O_CREAT            /* 
create and open file */
+#      define O_TRUNC                  _HAIKU_BUILD_O_TRUNC            /* open 
with truncation */
+#      define O_NOCTTY         _HAIKU_BUILD_O_NOCTTY           /* don't make 
tty the controlling tty */
+#      define  O_NOTRAVERSE    _HAIKU_BUILD_O_NOTRAVERSE               /* do 
not traverse leaf link */
+
+/* flags for open() and fcntl() */
+#      define O_CLOEXEC                _HAIKU_BUILD_O_CLOEXEC  /* close on 
exec */
+#      define  O_NONBLOCK              _HAIKU_BUILD_O_NONBLOCK /* non blocking 
io */
+#      define  O_NDELAY                _HAIKU_BUILD_O_NDELAY
+#      define O_APPEND         _HAIKU_BUILD_O_APPEND   /* to end of file */
+#      define O_SYNC                   _HAIKU_BUILD_O_SYNC     /* write 
synchronized I/O file integrity */
+#      define O_RSYNC                  _HAIKU_BUILD_O_RSYNC    /* read 
synchronized I/O file integrity */
+#      define O_DSYNC                  _HAIKU_BUILD_O_DSYNC    /* write 
synchronized I/O data integrity */
+#      define O_NOFOLLOW               _HAIKU_BUILD_O_NOFOLLOW /* fail on 
symlinks */
+#      define O_NOCACHE                _HAIKU_BUILD_O_NOCACHE  /* do not use 
the file system cache if */
+                                                                       /* 
possible */
+#      define O_DIRECT         _HAIKU_BUILD_O_DIRECT
+#      define O_DIRECTORY              _HAIKU_BUILD_O_DIRECTORY        /* fail 
if not a directory */
+
+/* flags for the *at() functions */
+#      define AT_FDCWD         _HAIKU_BUILD_AT_FDCWD           /* CWD FD for 
the *at() functions */
+
+#      define AT_SYMLINK_NOFOLLOW      _HAIKU_BUILD_AT_SYMLINK_NOFOLLOW        
/* fstatat(), fchmodat(), fchownat(),
+                                                                               
utimensat() */
+#      define AT_SYMLINK_FOLLOW        _HAIKU_BUILD_AT_SYMLINK_FOLLOW  /* 
linkat() */
+#      define AT_REMOVEDIR             _HAIKU_BUILD_AT_REMOVEDIR       /* 
unlinkat() */
+#      define AT_EACCESS                       _HAIKU_BUILD_AT_EACCESS /* 
faccessat() */
+
+#endif /* _HAIKU_BUILD_LIBROOT_FUNCTION_WRAPPER */
+
+/* advisory file locking */
+
+struct _HAIKU_BUILD_IDENTIFIER(flock) {
+       short   l_type;
+       short   l_whence;
+       _HAIKU_BUILD_IDENTIFIER(off_t)  l_start;
+       _HAIKU_BUILD_IDENTIFIER(off_t)  l_len;
+       _HAIKU_BUILD_IDENTIFIER(pid_t)  l_pid;
+};
+
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+_HAIKU_BUILD_DECLARE_FUNCTION(int, creat, (const char *path,
+       _haiku_build_mode_t mode))
+_HAIKU_BUILD_DECLARE_FUNCTION(int, open, (const char *path, int openMode, ...))
+       /* the third argument is the permissions of the created file when 
O_CREAT
+          is passed in oflags */
+_HAIKU_BUILD_DECLARE_FUNCTION(int, openat, (int fd, const char *path,
+       int openMode, ...))
+
+_HAIKU_BUILD_DECLARE_FUNCTION(int, fcntl, (int fd, int op, ...))
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _FCNTL_H */

############################################################################

Commit:      9ba78db2445a12d7ea8f2fbb1ac13ce9b01443cd

Author:      Matt Madia <mattmadia@xxxxxxxxx>
Date:        Wed Aug  8 23:27:08 2012 UTC

Missed prefixing a size_t.

TODO: add a _haiku_build_size_t and update all uses of
_HAIKU_BUILD_FEATURE___SIZE_TYPE__

----------------------------------------------------------------------------

diff --git a/headers/build/posix_target/target_unistd.h 
b/headers/build/posix_target/target_unistd.h
index 778cb14..ce178c6 100644
--- a/headers/build/posix_target/target_unistd.h
+++ b/headers/build/posix_target/target_unistd.h
@@ -345,7 +345,7 @@ 
_HAIKU_BUILD_DECLARE_FUNCTION(_HAIKU_BUILD_IDENTIFIER(ssize_t), pread,
 _HAIKU_BUILD_DECLARE_FUNCTION(_HAIKU_BUILD_IDENTIFIER(ssize_t), write,
        (int fd, const void *buffer, _HAIKU_BUILD_FEATURE___SIZE_TYPE__ count))
 _HAIKU_BUILD_DECLARE_FUNCTION(_HAIKU_BUILD_IDENTIFIER(ssize_t), write_pos,
-       (int fd, _haiku_build_off_t pos, const void *buffer,size_t count))
+       (int fd, _haiku_build_off_t pos, const void *buffer, 
_HAIKU_BUILD_FEATURE___SIZE_TYPE__ count))
 _HAIKU_BUILD_DECLARE_FUNCTION(_HAIKU_BUILD_IDENTIFIER(ssize_t), pwrite,
        (int fd, const void *buffer, _HAIKU_BUILD_FEATURE___SIZE_TYPE__ count,
                _haiku_build_off_t pos))

############################################################################

Commit:      c71e5e77399bd6127a63434869907d61c198be12

Author:      Matt Madia <mattmadia@xxxxxxxxx>
Date:        Wed Aug  8 23:44:41 2012 UTC

Don't wrap function pointers.

----------------------------------------------------------------------------

diff --git a/headers/build/posix_target/target_stdlib.h 
b/headers/build/posix_target/target_stdlib.h
index 2d3eae5..0613906 100644
--- a/headers/build/posix_target/target_stdlib.h
+++ b/headers/build/posix_target/target_stdlib.h
@@ -167,26 +167,20 @@ _HAIKU_BUILD_DECLARE_FUNCTION(int, lcong48_r, (unsigned 
short int param[7],
        struct _HAIKU_BUILD_IDENTIFIER(drand48_data) *data))
 
 /* search and sort functions */
-//typedef int (*_compare_function)(const void *, const void *);
-_HAIKU_BUILD_DECLARE_FUNCTION(int*, _compare_function,
-       (const void *, const void *))
+typedef int (*_compare_function)(const void *, const void *);
 
 _HAIKU_BUILD_DECLARE_FUNCTION(void*, bsearch, (const void *key,
        const void *base, _HAIKU_BUILD_FEATURE___SIZE_TYPE__ numElements,
-               _HAIKU_BUILD_FEATURE___SIZE_TYPE__ sizeOfElement,
-                       _haiku_build__compare_function))
+               _HAIKU_BUILD_FEATURE___SIZE_TYPE__ sizeOfElement, 
_compare_function))
 _HAIKU_BUILD_DECLARE_FUNCTION(int, heapsort, (void *base,
        _HAIKU_BUILD_FEATURE___SIZE_TYPE__ numElements,
-               _HAIKU_BUILD_FEATURE___SIZE_TYPE__ sizeOfElement,
-                       _haiku_build__compare_function))
+               _HAIKU_BUILD_FEATURE___SIZE_TYPE__ sizeOfElement, 
_compare_function))
 _HAIKU_BUILD_DECLARE_FUNCTION(int, mergesort, (void *base,
        _HAIKU_BUILD_FEATURE___SIZE_TYPE__ numElements,
-               _HAIKU_BUILD_FEATURE___SIZE_TYPE__ sizeOfElement,
-                       _haiku_build__compare_function))
+               _HAIKU_BUILD_FEATURE___SIZE_TYPE__ sizeOfElement, 
_compare_function))
 _HAIKU_BUILD_DECLARE_FUNCTION(void, qsort, (void *base,
        _HAIKU_BUILD_FEATURE___SIZE_TYPE__ numElements,
-               _HAIKU_BUILD_FEATURE___SIZE_TYPE__ sizeOfElement,
-                       _haiku_build__compare_function))
+               _HAIKU_BUILD_FEATURE___SIZE_TYPE__ sizeOfElement, 
_compare_function))
 _HAIKU_BUILD_DECLARE_FUNCTION(int, radixsort,
        (_haiku_build_u_char const **base, int numElements,
                _haiku_build_u_char const *table, _haiku_build_u_int endByte))


Other related posts: