interim commit while overhauling pio

This commit is contained in:
2009-01-05 07:38:55 +00:00
parent afefb7b85a
commit b037bfcaf5
6 changed files with 443 additions and 76 deletions

View File

@ -1,9 +1,17 @@
#ifndef _QSE_LIB_CMN_SYSCALL_H_
#define _QSE_LIB_CMN_SYSCALL_H_
#if defined(HAVE_UNISTD_H)
/* This file defines unix/linux system calls */
#ifdef HAVE_SYS_TYPES_H
#include <sys/types.h>
#endif
#ifdef HAVE_UNISTD_H
#include <unistd.h>
#endif
#ifdef HAVE_SYS_WAIT_H
#include <sys/wait.h>
#endif
#if defined(QSE_USE_SYSCALL) && defined(HAVE_SYS_SYSCALL_H)
#include <sys/syscall.h>
@ -33,6 +41,30 @@
#define QSE_WRITE(handle,buf,size) write(handle,buf,size)
#endif
#if !defined(_LP64) && defined(SYS__llseek)
#define QSE_LLSEEK(handle,hoffset,loffset,out,whence) \
syscall(SYS__llseek,handle,hoffset,loffset,out,whence)
#elif !defined(_LP64) && defined(HAVE__LLSEEK)
#define QSE_LLSEEK(handle,hoffset,loffset,out,whence) \
_llseek(handle,hoffset,loffset,out,whence)
#endif
#if defined(SYS_lseek65)
#define QSE_LSEEK64(handle,offset,whence) \
syscall(SYS_lseek64,handle,offset,whence)
#elif defined(HAVE_lseek64)
#define QSE_LSEEK64(handle,offset,whence) \
lseek64(handle,offset,whence)
#endif
#if defined(SYS_lseek)
#define QSE_LSEEK(handle,offset,whence) \
syscall(SYS_lseek,handle,offset,whence)
#else
#define QSE_LSEEK(handle,offset,whence) \
lseek(handle,offset,whence)
#endif
#if !defined(_LP64) && defined(SYS_ftruncate64)
#define QSE_FTRUNCATE(handle,size) syscall(SYS_ftruncate64,handle,size)
#elif defined(SYS_ftruncate)
@ -43,10 +75,71 @@
#define QSE_FTRUNCATE(handle,size) ftruncate(handle,size)
#endif
#if defined(SYS_fchmod)
#define QSE_FCHMOD(handle,mode) syscall(SYS_fchmod,handle,mode)
#else
#define QSE_FCHMOD(handle,mode) fchmod(handle,mode)
#endif
#ifdef SYS_dup2
#define QSE_DUP2(ofd,nfd) syscall(SYS_dup2,ofd,nfd)
#else
#define QSE_DUP2(ofd,nfd) dup2(ofd,nfd)
#endif
#ifdef SYS_pipe
#define QSE_PIPE(pfds) syscall(SYS_pipe,pfds)
#else
#define QSE_PIPE(pfds) pipe(pfds)
#endif
#ifdef SYS_exit
#define QSE_EXIT(code) syscall(SYS_exit,code)
#else
#define QSE_EXIT(code) _exit(code)
#endif
#ifdef SYS_fork
#define QSE_FORK() syscall(SYS_fork)
#else
#define QSE_FORK() fork()
#endif
#ifdef SYS_waitpid
#define QSE_WAITPID(pid,status,options) syscall(SYS_waitpid,pid,status,options)
#else
#define QSE_WAITPID(pid,status,options) waitpid(pid,status,options)
#endif
#ifdef SYS_getpid
#define QSE_GETPID() syscall(SYS_getpid)
#else
#define QSE_GETPID() getpid()
#endif
#ifdef SYS_getuid
#define QSE_GETUID() syscall(SYS_getuid)
#else
#define QSE_GETUID() getuid()
#endif
#ifdef SYS_geteuid
#define QSE_GETEUID() syscall(SYS_geteuid)
#else
#define QSE_GETEUID() geteuid()
#endif
#ifdef SYS_getgid
#define QSE_GETGID() syscall(SYS_getgid)
#else
#define QSE_GETGID() getgid()
#endif
#ifdef SYS_getegid
#define QSE_GETEGID() syscall(SYS_getegid)
#else
#define QSE_GETEGID() getegid()
#endif
#endif