u_Lib.h
上传用户:luoyougen
上传日期:2008-05-12
资源大小:23136k
文件大小:14k
源码类别:

VxWorks

开发平台:

C/C++

  1. /* u_Lib.h - simulator UNIX/VxSim interface header */
  2. /*
  3. modification history
  4. --------------------
  5. 02i,08nov01,jmp  moved some structures from solaris/sysLib.c.
  6. 02h,24oct01,hbh  Added u_usleep, u_getppid, u_signal.
  7. 02g,19may98,dbt  added u_lockf prototype.
  8. 02f,20nov96,dvs  took out redundant u_sigprocmask entry during merge.
  9. 02e,23jul96,ism  added SIMSPARCSOLARIS support
  10. 02d,19jan94,gae  alphabetized.
  11. 02c,14dec93,gae  added setsid, system, execlp, fork.
  12. 02b,10jul93,gae  fixed dirent's.
  13. 02a,09jan93,gae  renamed from sysULib.h; discarded major portions.
  14. 01c,05aug92,gae  added non-ANSI forward declarations.
  15. 01b,29jul92,gae  added more prototypes; ANSIfied.
  16. 01a,04jun92,gae  written.
  17. */
  18. /*
  19. This header contains the prototype declarations for all UNIX
  20. calls made by VxSim.
  21. */
  22. #ifndef INCu_Libh
  23. #define INCu_Libh
  24. #ifndef SIMSPARCSUNOS
  25. #define SIMSPARCSUNOS   50      /* CPU & CPU_FAMILY */
  26. #endif
  27. #ifndef SIMHPPA
  28. #define SIMHPPA         60      /* CPU & CPU_FAMILY */
  29. #endif
  30. /* defines used by u_lockf routine */
  31. #define F_ULOCK 0 /* unlock previously locked section */
  32. #define F_LOCK 1 /* lock section for exclusive use */
  33. #define F_TLOCK 2 /* test & lock section for exclusive use */
  34. #define F_TEST 3 /* test section for other locks */
  35. /*
  36.  * Definitions for UNIX library routines operating on directories.
  37.  */
  38. #if CPU==SIMSPARCSUNOS
  39. typedef struct unix__dirdesc
  40.     {
  41.     int     dd_fd;          /* file descriptor */
  42.     long    dd_loc;         /* buf offset of entry from last readddir() */
  43.     long    dd_size;        /* amount of valid data in buffer */
  44.     long    dd_bsize;       /* amount of entries read at a time */
  45.     long    dd_off;         /* Current offset in dir (for telldir) */
  46.     char    *dd_buf;        /* directory data buffer */
  47.     } UNIX_DIR;
  48. struct unix_dirent
  49.     {
  50.     long            d_off;          /* offset of next disk dir entry */
  51.     unsigned long   d_fileno;       /* file number of entry */
  52.     unsigned short  d_reclen;       /* length of this record */
  53.     unsigned short  d_namlen;       /* length of string in d_name */
  54.     char            d_name[255+1];  /* name (up to MAXNAMLEN + 1) */
  55.     };
  56. struct unix_stat
  57.     {
  58.     short st_dev;
  59.     unsigned long st_ino;
  60.     unsigned short st_mode;
  61.     unsigned short st_nlink;
  62.     unsigned short st_uid;
  63.     unsigned short st_gid;
  64.     short st_rdev;
  65.     long st_size;
  66.     long st_atime;
  67.     int st_spare1;
  68.     long st_mtime;
  69.     int st_spare2;
  70.     long st_ctime;
  71.     int st_spare3;
  72.     long st_blksize;
  73.     long st_blocks;
  74.     long                st_spare4[2];
  75.     };
  76. #endif /* CPU==SIMSPARCSUNOS */
  77. #if CPU==SIMSPARCSOLARIS
  78. #undef st_atime
  79. #undef st_ctime
  80. #undef st_mtime
  81. struct unix_stat
  82.     {
  83.     unsigned long   st_dev;
  84.     long            st_pad1[3];
  85.     unsigned long   st_ino;
  86.     unsigned long   st_mode;
  87.     unsigned long   st_nlink;
  88.     long            st_uid;
  89.     long            st_gid;
  90.     unsigned long   st_rdev;
  91.     long            st_pad2[2];
  92.     long            st_size;
  93.     long            st_pad3;
  94.     long            st_atime; /* st_atime */
  95.     long            st_spare1; /* " */
  96.     long            st_mtime; /* st_mtime */
  97.     long            st_spare2; /* " */
  98.     long            st_ctime; /* st_ctime */
  99.     long            st_spare3; /* " */
  100.     long            st_blksize;
  101.     long            st_blocks;
  102.     char            st_fstype[16];
  103.     long            st_pad4[8];
  104.     };
  105. struct unix_dirent
  106.     {
  107.     long            d_ino;          /* inode number of entry */
  108.     long            d_off;          /* offset of next disk dir entry */
  109.     unsigned short  d_reclen;       /* length of this record */
  110.     char            d_name[1+255];  /* name (up to MAXNAMLEN + 1) */
  111.     };
  112. typedef struct unix__dirdesc
  113.     {
  114.     int     dd_fd;          /* file descriptor */
  115.     long    dd_loc;         /* buf offset of entry from last readddir() */
  116.     long    dd_size;        /* amount of valid data in buffer */
  117.     long    dd_bsize;       /* amount of entries read at a time */
  118.     long    dd_off;         /* Current offset in dir (for telldir) */
  119.     char    *dd_buf;        /* directory data buffer */
  120.     } UNIX_DIR;
  121. struct unix_timeval /* don't drag in sys/time.h */
  122.     {
  123.     long    tv_sec; /* seconds */
  124.     long    tv_usec;    /* and microseconds */
  125.     };
  126. struct unix_itimerval
  127.     {
  128.     struct  unix_timeval it_interval;    /* timer interval */
  129.     struct  unix_timeval it_value;       /* current value */
  130.     };
  131. #endif /* CPU==SIMSPARCSOLARIS */
  132. #if CPU==SIMHPPA
  133. typedef struct unix__dirdesc
  134.     {
  135.     int   dd_fd;            /* file descriptor */
  136.     long  dd_loc;
  137.     long  dd_size;
  138.     long  dd_bbase;     /* ? */
  139.     /*  long  dd_entno;     / * directory entry number */
  140.     long    dd_off;         /* Current offset in dir (for telldir) !XXX */
  141.     long  dd_bsize;         /* buffer size */
  142.     char  *dd_buf;          /* malloc'ed buffer */
  143.     } UNIX_DIR;
  144. struct unix_dirent
  145.     {
  146.     /* ino_t d_ino;        / * file number of entry */
  147.     long  d_off;           /* offset of next disk dir entry !XXX */
  148.     short d_reclen;        /* length of this record */
  149.     short d_namlen;        /* length of string in d_name */
  150.     char  d_name[255 + 1]; /* name must be no longer than this */
  151.     };
  152. typedef unsigned short hp__site_t;   /* see stat.h */
  153. typedef unsigned short hp__cnode_t;  /* see stat.h */
  154. typedef long hp_dev_t;                /* For device numbers */
  155. typedef unsigned long hp_ino_t;       /* For file serial numbers */
  156. typedef long hp_gid_t;                /* For group IDs */
  157. typedef long hp_uid_t;                /* For user IDs */
  158. struct unix_stat
  159.     {
  160.     short st_dev;
  161.     unsigned long st_ino;
  162.     unsigned short st_mode;
  163.     unsigned short st_nlink;
  164.     unsigned short st_reserved1; /* old st_uid, replaced spare positions */
  165.     unsigned short st_reserved2; /* old st_gid, replaced spare positions */
  166.     short st_rdev;
  167.     long st_size;
  168.     long st_atime;
  169.     int st_spare1;
  170.     long st_mtime;
  171.     int st_spare2;
  172.     long st_ctime;
  173.     int st_spare3;
  174.     long st_blksize;
  175.     long st_blocks;
  176.     unsigned int    st_pad:30;
  177.     unsigned int    st_acl:1;
  178.     unsigned int    st_remote:1;
  179.     hp_dev_t   st_netdev;
  180.     hp_ino_t   st_netino;
  181.     hp__cnode_t       st_cnode;
  182.     hp__cnode_t       st_rcnode;
  183.     hp__site_t        st_netsite;
  184.     short   st_fstype;
  185.     hp_dev_t   st_realdev;
  186.     unsigned short  st_basemode;
  187.     unsigned short  st_spareshort;
  188. #ifdef _CLASSIC_ID_TYPES
  189.     unsigned short st_filler_uid;
  190.     unsigned short st_uid;
  191. #else
  192.     hp_uid_t   st_uid;
  193. #endif
  194. #ifdef _CLASSIC_ID_TYPES
  195.     unsigned short st_filler_gid;
  196.     unsigned short st_gid;
  197. #else
  198.     hp_gid_t   st_gid;
  199. #endif
  200. #define _SPARE4_SIZE 3
  201.     long    st_spare4[_SPARE4_SIZE];
  202.     };
  203. #endif  /* CPU==SIMHPPA */
  204. struct unix_tm
  205.     {
  206.     int     tm_sec;
  207.     int     tm_min;
  208.     int     tm_hour;
  209.     int     tm_mday;
  210.     int     tm_mon;
  211.     int     tm_year;
  212.     int     tm_wday;
  213.     int     tm_yday;
  214.     int     tm_isdst;
  215. #if CPU==SIMSPARCSUNOS
  216.     char    *tm_zone;
  217.     long    tm_gmtoff;
  218. #endif /* CPU==SIMSPARCSUNOS */
  219.     };
  220. #ifdef __STDC__
  221. /* UNIX routines */
  222. extern int u_connect (int s, int name, int namelen);
  223. extern int u_closedir (struct unix__dirdesc *dirp);
  224. extern int u_close (int fd);
  225. extern int u_dup2 (int fd1, int fd2);
  226. extern int u_errno (void);
  227. extern int u_execl (char *path, int arg0, int arg2, int arg3, int arg4, int arg5, int arg6, int arg7, int arg8, int arg9);
  228. extern int u_execlp (char *file, int arg0, int arg2, int arg3, int arg4, int arg5, int arg6, int arg7, int arg8, int arg9);
  229. extern int u_execvp (char *file, char *argv[]);
  230. extern void u_exit (int status);
  231. extern int u_fcntl (int fd, int cmd, int arg);
  232. extern int u_fork (void);
  233. extern int u_fpsetmask (int value);
  234. extern int u_free (char *ptr);
  235. extern int u_fstat (int fd, char *buf);
  236. extern char *u_getcwd (char *pathname, int size);
  237. extern char *u_getenv (char *name);
  238. extern int u_getgid (void);
  239. extern char *u_gethostbyname (char *name);
  240. extern int u_gethostname (char *name, int namelen);
  241. extern int u_getpgrp (int pid);
  242. extern int u_getpid (void);
  243. extern int u_getppid (void);
  244. extern int u_getuid (void);
  245. extern char *u_getwd (char *pathname);
  246. extern int u_ioctl (int fd, int request, char *arg);
  247. extern int u_isatty (int fd);
  248. extern int u_kill (int pid, int sig);
  249. extern int u_killpg (int pgrp, int sig);
  250. extern struct tm *u_localtime (long *clock);
  251. extern void u_longjmp (char *jmpbuf, int ret);
  252. extern int u_lseek (int fd, int offset, int whence);
  253. extern void *u_malloc (int size);
  254. extern int u_mkdir (char *path, int mode);
  255. extern int u_open (char *name, int flags, int mode);
  256. extern struct unix__dirdesc *u_opendir (char *dirname);
  257. extern int u_read (int fd, char *buf, int len);
  258. extern struct unix_dirent *u_readdir (struct unix__dirdesc *dirp);
  259. extern int u_rename (char *path1, char *path2);
  260. extern int u_rmdir (char *path);
  261. extern int u_select (int width, int *readfds, int *writefds, int *exceptfds, int *timeout);
  262. extern int u_setitimer (int which, int *value, int *ovalue);
  263. extern int u_setjmp (char *jmpbuf);
  264. extern int u_setsid (void);
  265. extern char *u_shmat (int shmid, char *shmaddr, int shmflg);
  266. extern int u_shmctl (int shmid, int cmd, char *buf);
  267. extern int u_shmget (int key, int size, int shmflg);
  268. extern int u_sigaction (int sig, int *act, int *oact);
  269. extern int u_sigaddset (int *set, int signo);
  270. extern int u_sigblock (int mask);
  271. extern int u_sigdelset (int *set, int signo);
  272. extern int u_sigemptyset (int *set);
  273. extern int u_sigfillset (int *set);
  274. #if (CPU==SIMSPARCSOLARIS)
  275. extern int u_sigprocmask (int how, int *set, int *oldset);
  276. extern int u_sigaltstack (int *stk, int *ostk);
  277. #else /* CPU==SIMSPARCSOLARIS */
  278. extern int u_sigsetmask (int mask);
  279. extern int u_sigstack (int *stk, int *ostk);
  280. #endif /* CPU==SIMSPARCSOLARIS */
  281. extern int u_signal (int sig, void * disp);
  282. extern int u_sigsuspend (int *pMask);
  283. extern int u_socket (int domain, int type, int protocol);
  284. extern int u_stat (char *path, char *buf);
  285. extern int u_system (char *cmd);
  286. extern int u_tcgetpgrp (int fd);
  287. extern int u_time (int *tloc);
  288. extern int u_uname (char *name);
  289. extern int u_unlink (char *path);
  290. extern int u_usleep (unsigned int useconds);
  291. extern int u_wait (int *statusp);
  292. extern int u_write (int fd, char *buf, int len);
  293. extern int u_lockf (int fd, int function, int size);
  294. #else
  295. extern int u_connect (/* int s, int name, int namelen */);
  296. extern int u_closedir (/* struct unix__dirdesc *dirp */);
  297. extern int u_close (/* int fd */);
  298. extern int u_dup2 (/* int fd1, int fd2 */);
  299. extern int u_errno (/* void */);
  300. extern int u_execl (/* char *path, int arg0, int arg2, int arg3, int arg4, int arg5, int arg6, int arg7, int arg8, int arg9 */);
  301. extern int u_execlp (/* char *file, int arg0, int arg2, int arg3, int arg4, int arg5, int arg6, int arg7, int arg8, int arg9 */);
  302. extern int u_execvp (/* char *file, char *argv[] */);
  303. extern void u_exit (/* int status */);
  304. extern int u_fcntl (/* int fd, int cmd, int arg */);
  305. extern int u_fork (/* void */);
  306. extern int u_free (/* char *ptr */);
  307. extern int u_fstat (/* int fd, char *buf */);
  308. extern char *u_getcwd (/* char *pathname, int size */);
  309. extern char *u_getenv (/* char *name */);
  310. extern int u_getgid (/* void */);
  311. extern char *u_gethostbyname (/* char *name */);
  312. extern int u_gethostname (/* char *name, int namelen */);
  313. extern int u_getpgrp (/* int pid */);
  314. extern int u_getpid (/* void */);
  315. extern int u_getppid (/* void */);
  316. extern int u_getuid (/* void */);
  317. extern char *u_getwd (/* char *pathname */);
  318. extern int u_ioctl (/* int fd, int request, char *arg */);
  319. extern int u_isatty (/* int fd */);
  320. extern int u_kill (/* int pid, int sig */);
  321. extern int u_killpg (/* int pgrp, int sig */);
  322. extern struct tm *u_localtime (/* long *clock */);
  323. extern void u_longjmp (/* char *jmpbuf, int ret */);
  324. extern int u_lseek (/* int fd, int offset, int whence */);
  325. extern void *u_malloc (/* int size */);
  326. extern int u_mkdir (/* char *path, int mode */);
  327. extern int u_open (/* char *name, int flags, int mode */);
  328. extern struct unix__dirdesc *u_opendir (/* char *dirname */);
  329. extern int u_read (/* int fd, char *buf, int len */);
  330. extern struct unix_dirent *u_readdir (/* struct unix__dirdesc *dirp */);
  331. extern int u_rename (/* char *path1, char *path2 */);
  332. extern int u_rmdir (/* char *path */);
  333. extern int u_select (/* int width, int *readfds, int *writefds, int *exceptfds, int *timeout */);
  334. extern int u_setjmp (/* char *jmpbuf */);
  335. extern int u_setitimer (/* int which, int *value, int *ovalue */);
  336. extern int u_setsid (/* void */);
  337. extern char *u_shmat (/* int shmid, char *shmaddr, int shmflg */);
  338. extern int u_shmctl (/* int shmid, int cmd, char *buf */);
  339. extern int u_shmget (/* int key, int size, int shmflg */);
  340. extern int u_sigaction (/* int sig, int *act, int *oact */);
  341. extern int u_sigaddset (/* int *set, int signo */);
  342. extern int u_sigblock (/* int mask */);
  343. extern int u_sigdelset (/* int *set, int signo */);
  344. extern int u_sigemptyset (/* int *set */);
  345. extern int u_sigfillset (/* int *set */);
  346. #if (CPU==SIMSPARCSOLARIS)
  347. extern int u_sigprocmask (/* int how, sigset_t *set, sigset_t *oldset */);
  348. extern int u_sigaltstack (/* int *stk, int *ostk */);
  349. #else /* CPU==SIMSPARCSOLARIS */
  350. extern int u_signal (/* int sig, void * disp */);
  351. extern int u_sigsetmask (/* int mask */);
  352. extern int u_sigstack (/* int *stk, int *ostk */);
  353. #endif /* CPU==SIMSPARCSOLARIS */
  354. extern int u_sigsuspend (/* int *pMask */);
  355. extern int u_socket (/* int domain, int type, int protocol */);
  356. extern int u_stat (/* char *path, char *buf */);
  357. extern int u_system (/* char *cmd */);
  358. extern int u_tcgetpgrp (/* int fd */);
  359. extern int u_time (/* int *tloc */);
  360. extern int u_uname (/* char *name */);
  361. extern int u_unlink (/* char *path */);
  362. extern int u_usleep (/*unsigned int useconds*/);
  363. extern int u_wait (/* int *statusp */);
  364. extern int u_write (/* int fd, char *buf, int len */);
  365. extern int u_lockf (/* int fd, int function, int size */);
  366. #endif /* __STDC__ */
  367. #endif /* INCu_Libh */