/*****************************************************************************

 *                                                                           *

 * sys/unistd.h                                                              *

 *                                                                           *

 * Freely redistributable and modifiable.  Use at your own risk.             *

 *                                                                           *

 * Copyright 1994 The Downhill Project                                       *

 *                                                                           *

 *****************************************************************************/





#if !defined(_DOWNHILL_SYS_UNISTD_H)

#define _DOWNHILL_SYS_UNISTD_H





/* Include stuff *************************************************************/

#include "DOWNHILL/DH_POSIX.H"

#include <stdio.h>

#include <sys/types.h>



#ifdef __cplusplus

extern "C" {

#endif



/* Define stuff **************************************************************/



/* File premissions ======================================================== */

#define F_OK 0

#define X_OK 0

#define R_OK 2

#define W_OK 4



/* lseek() positions ======================================================= */

#if (_DOWNHILL_POSIX_SOURCE == 0)

#define L_SET  SEEK_SET

#define L_INCR SEEK_CUR

#define L_XTND SEEK_END

#endif





/* Extern stuff **************************************************************/

extern int   opterr;

extern int   optind;

extern int   optopt;

extern char* optarg;





/* Prototype stuff ***********************************************************/

uid_t        getuid(void);

uid_t        geteuid(void);

int          setuid(uid_t user_Id);

gid_t        getgid(void);

gid_t        getegid(void);

int          getgroups(int group_Max,gid_t group_Id[]);

int          setgid(gid_t group_Id);

unsigned int sleep(unsigned int sleep_Duration);

int          pause(void);

int          chown(char* file_Name,uid_t file_User,gid_t file_Group);

#if (_DOWNHILL_POSIX_SOURCE == 0)

int          setruid(uid_t user_Id);

int          seteuid(uid_t user_Id);

int          setrgid(gid_t group_Id);

int          setegid(gid_t group_Id);

int          fchown(int file_Fd,uid_t file_User,gid_t file_Group);

int          getopt(int arg_Count,char* arg_Value[],char flag_List[]);

int          readlink(char* file_Name,char* buf_Mem,int buf_Size);

int          ftruncate(int file_Fd,off_t file_Size);

int          truncate(char* file_Name,off_t file_Size);

#endif



//kms

# ifndef getpagesize

#  define getpagesize() 4096

# endif



#ifdef __cplusplus

}

#endif



#endif /* _DOWNHILL_SYS_UNISTD_H */

