Advertisement
Guest User

header file

a guest
Jun 25th, 2013
218
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 4.11 KB | None | 0 0
  1. /* Our own header, to be included *after* all standard system headers */
  2.  
  3. #ifndef __ourhdr_h
  4. #define __ourhdr_h
  5.  
  6. #include    <sys/types.h>   /* required for some of our prototypes */
  7. #include    <stdio.h>       /* for convenience */
  8. #include    <stdlib.h>      /* for convenience */
  9. #include    <string.h>      /* for convenience */
  10. #include    <unistd.h>      /* for convenience */
  11.  
  12. #define MAXLINE 4096            /* max line length */
  13.  
  14. #define FILE_MODE   (S_IRUSR | S_IWUSR | S_IRGRP | S_IROTH)
  15.                     /* default file access permissions for new files */
  16. #define DIR_MODE    (FILE_MODE | S_IXUSR | S_IXGRP | S_IXOTH)
  17.                     /* default permissions for new directories */
  18.  
  19. typedef void    Sigfunc(int);   /* for signal handlers */
  20.  
  21.                     /* 4.3BSD Reno <signal.h> doesn't define SIG_ERR */
  22. #if defined(SIG_IGN) && !defined(SIG_ERR)
  23. #define SIG_ERR ((Sigfunc *)-1)
  24. #endif
  25.  
  26. #define min(a,b)    ((a) < (b) ? (a) : (b))
  27. #define max(a,b)    ((a) > (b) ? (a) : (b))
  28.  
  29.                     /* prototypes for our own functions */
  30. char    *path_alloc(int *);         /* {Prog pathalloc} */
  31. int      open_max(void);            /* {Prog openmax} */
  32. void     clr_fl(int, int);          /* {Prog setfl} */
  33. void     set_fl(int, int);          /* {Prog setfl} */
  34. void     pr_exit(int);              /* {Prog prexit} */
  35. void     pr_mask(const char *);     /* {Prog prmask} */
  36. Sigfunc *signal_intr(int, Sigfunc *);/* {Prog signal_intr_function} */
  37.  
  38. int      tty_cbreak(int);           /* {Prog raw} */
  39. int      tty_raw(int);              /* {Prog raw} */
  40. int      tty_reset(int);            /* {Prog raw} */
  41. void     tty_atexit(void);          /* {Prog raw} */
  42. #ifdef  ECHO    /* only if <termios.h> has been included */
  43. struct termios  *tty_termios(void); /* {Prog raw} */
  44. #endif
  45.  
  46. void     sleep_us(unsigned int);    /* {Ex sleepus} */
  47. ssize_t  readn(int, void *, size_t);/* {Prog readn} */
  48. ssize_t  writen(int, const void *, size_t);/* {Prog writen} */
  49. int      daemon_init(void);         /* {Prog daemoninit} */
  50.  
  51. int      s_pipe(int *);             /* {Progs svr4_spipe bsd_spipe} */
  52. int      recv_fd(int, ssize_t (*func)(int, const void *, size_t));
  53.                                     /* {Progs recvfd_svr4 recvfd_43bsd} */
  54. int      send_fd(int, int);         /* {Progs sendfd_svr4 sendfd_43bsd} */
  55. int      send_err(int, int, const char *);/* {Prog senderr} */
  56. int      serv_listen(const char *); /* {Progs servlisten_svr4 servlisten_44bsd} */
  57. int      serv_accept(int, uid_t *); /* {Progs servaccept_svr4 servaccept_44bsd} */
  58. int      cli_conn(const char *);    /* {Progs cliconn_svr4 cliconn_44bsd} */
  59. int      buf_args(char *, int (*func)(int, char **));
  60.                                     /* {Prog bufargs} */
  61.  
  62. int      ptym_open(char *);         /* {Progs ptyopen_svr4 ptyopen_44bsd} */
  63. int      ptys_open(int, char *);    /* {Progs ptyopen_svr4 ptyopen_44bsd} */
  64. #ifdef  TIOCGWINSZ
  65. pid_t    pty_fork(int *, char *, const struct termios *,
  66.                   const struct winsize *);  /* {Prog ptyfork} */
  67. #endif
  68.  
  69. int     lock_reg(int, int, int, off_t, int, off_t);
  70.                                     /* {Prog lockreg} */
  71. #define read_lock(fd, offset, whence, len) \
  72.             lock_reg(fd, F_SETLK, F_RDLCK, offset, whence, len)
  73. #define readw_lock(fd, offset, whence, len) \
  74.             lock_reg(fd, F_SETLKW, F_RDLCK, offset, whence, len)
  75. #define write_lock(fd, offset, whence, len) \
  76.             lock_reg(fd, F_SETLK, F_WRLCK, offset, whence, len)
  77. #define writew_lock(fd, offset, whence, len) \
  78.             lock_reg(fd, F_SETLKW, F_WRLCK, offset, whence, len)
  79. #define un_lock(fd, offset, whence, len) \
  80.             lock_reg(fd, F_SETLK, F_UNLCK, offset, whence, len)
  81.  
  82. pid_t   lock_test(int, int, off_t, int, off_t);
  83.                                     /* {Prog locktest} */
  84.  
  85. #define is_readlock(fd, offset, whence, len) \
  86.             lock_test(fd, F_RDLCK, offset, whence, len)
  87. #define is_writelock(fd, offset, whence, len) \
  88.             lock_test(fd, F_WRLCK, offset, whence, len)
  89.  
  90. void    err_dump(const char *, ...);    /* {App misc_source} */
  91. void    err_msg(const char *, ...);
  92. void    err_quit(const char *, ...);
  93. void    err_ret(const char *, ...);
  94. void    err_sys(const char *, ...);
  95.  
  96. void    log_msg(const char *, ...);     /* {App misc_source} */
  97. void    log_open(const char *, int, int);
  98. void    log_quit(const char *, ...);
  99. void    log_ret(const char *, ...);
  100. void    log_sys(const char *, ...);
  101.  
  102. void    TELL_WAIT(void);        /* parent/child from {Sec race_conditions} */
  103. void    TELL_PARENT(pid_t);
  104. void    TELL_CHILD(pid_t);
  105. void    WAIT_PARENT(void);
  106. void    WAIT_CHILD(void);
  107.  
  108. #endif  /* __ourhdr_h */
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement