ckupty.h
上传用户:dufan58
上传日期:2007-01-05
资源大小:3407k
文件大小:4k
源码类别:

通讯/手机编程

开发平台:

Windows_Unix

  1. /* C K U P T Y . H  --  Includes and definitions for ckupty.c  */
  2. /*
  3.   Copyright 1995 by the Massachusetts Institute of Technology.
  4.   Modified for use in C-Kermit by:
  5.   Jeffrey Altman <jaltman@columbia.edu>
  6.   The Kermit Project, Columbia University, New York City
  7.   November 1999
  8. */
  9. #ifndef __PTY_INT_H__
  10. #include <sys/types.h>
  11. /* #define WANT_UTMP */
  12. /* We don't want all the utmp/wtmp stuff */
  13. #ifdef WANT_UTMP
  14. #ifdef HAVE_UTMP_H
  15. #include <utmp.h>
  16. #endif /* HAVE_UTMP_H */
  17. #ifdef HAVE_UTMPX_H
  18. #include <utmpx.h>
  19. #endif /* HAVE_UTMPX_H */
  20. #endif /* WANT_UTMP */
  21. #ifdef HAVE_UNISTD_H
  22. #include <unistd.h>
  23. #endif /* HAVE_UNISTD_H */
  24. #ifdef __SCO__
  25. #include <sys/unistd.h>
  26. #endif /* __SCO__ */
  27. #ifdef HAVE_STDLIB_H
  28. #include <stdlib.h>
  29. #endif /* HAVE_STDLIB_H */
  30. #include <stdio.h>
  31. #include <sys/stat.h>
  32. #include <sys/ioctl.h>
  33. #include <sys/file.h>
  34. #include <sys/time.h>
  35. #include <ctype.h>
  36. #include <fcntl.h>
  37. #include <netinet/in.h>
  38. #include <errno.h>
  39. #include <pwd.h>
  40. #ifdef HAVE_SYS_LABEL_H
  41. /* only SunOS 4? */
  42. #include <sys/label.h>
  43. #include <sys/audit.h>
  44. #include <pwdadj.h>
  45. #endif /* HAVE_SYS_LABEL_H */
  46. #include <signal.h>
  47. #ifdef HPUX
  48. #include <sys/ptyio.h>
  49. #endif /* HPUX */
  50. #ifdef sysvimp
  51. #include <compat.h>
  52. #endif /* sysvimp */
  53. #ifdef COMMENT
  54. /* I don't think we actually use this for anything */
  55. /* and it kills Slackware builds, where there is no select.h. */
  56. #ifndef NO_SYS_SELECT_H
  57. #ifdef HAVE_SYS_SELECT_H
  58. #include <sys/select.h>
  59. #endif /* HAVE_SYS_SELECT_H */
  60. #endif /* NO_SYS_SELECT_H */
  61. #endif /* COMMENT */
  62. #ifdef HAVE_STREAMS
  63. #include <sys/stream.h>
  64. #include <sys/stropts.h>
  65. #endif /* HAVE_STREAMS */
  66. #ifdef POSIX_TERMIOS
  67. #ifndef ultrix
  68. #include <termios.h>
  69. #else
  70. #include <sgtty.h>
  71. #endif /* ultrix */
  72. #else /* POSIX_TERMIOS */
  73. #include <sgtty.h>
  74. #endif /* POSIX_TERMIOS */
  75. #include <netdb.h>
  76. /* #include <syslog.h> */
  77. #include <string.h>
  78. #include <sys/param.h>
  79. #ifdef HAVE_STREAMS
  80. /* krlogin doesn't test sys/tty... */
  81. #ifdef HAVE_SYS_TTY_H
  82. #include <sys/tty.h>
  83. #endif /* HAVE_SYS_TTY_H */
  84. #ifdef HAVE_SYS_PTYVAR_H
  85. /* Solaris actually uses packet mode, so the real macros are needed too */
  86. #include <sys/ptyvar.h>
  87. #endif /* HAVE_SYS_PTYVAR_H */
  88. #endif /* HAVE_STREAMS */
  89. #ifdef HAVE_VHANGUP
  90. #ifndef OPEN_CTTY_ONLY_ONCE
  91. /*
  92.   Breaks under Ultrix and others where you cannot get controlling
  93.   terminal twice.
  94. */
  95. #define VHANG_first
  96. #define VHANG_LAST
  97. #endif /* OPEN_CTTY_ONLY_ONCE */
  98. #endif /* HAVE_VHANGUP */
  99. /* Internal functions */
  100. _PROTOTYP(long ptyint_void_association,(void));
  101. _PROTOTYP(long ptyint_open_ctty ,(char *, int *));
  102. _PROTOTYP(VOID ptyint_vhangup, (void));
  103. #ifdef WANT_UTMP
  104. _PROTOTYP(long ptyint_update_wtmp, (struct utmp *, char *, char *));
  105. #endif /* WANT_UTMP */
  106. #define __PTY_INT_H__
  107. #endif /* __PTY_INT_H__ */
  108. #ifndef __LIBPTY_H__
  109. #ifdef WANT_UTMP
  110. /* Constants for pty_update_utmp */
  111. #define PTY_LOGIN_PROCESS 0
  112. #define PTY_USER_PROCESS 1
  113. #define PTY_DEAD_PROCESS 2
  114. #define PTY_TTYSLOT_USABLE (0x1) /* flags to update_utmp*/
  115. #define PTY_UTMP_USERNAME_VALID (0x2)
  116. #endif /* WANT_UTMP */
  117. _PROTOTYP(long pty_init,(void));
  118. _PROTOTYP(long pty_getpty, ( int *, char *, int));
  119. _PROTOTYP(long pty_open_slave, (char *, int *));
  120. _PROTOTYP(long pty_open_ctty, (char *, int *));
  121. _PROTOTYP(long pty_initialize_slave, (int));
  122. #ifdef WANT_UTMP
  123. _PROTOTYP(long pty_update_utmp, (int, int, char *, char *, char *, int));
  124. _PROTOTYP(long pty_logwtmp, (char *, char *, char *));
  125. #endif /* WANT_UTMP */
  126. _PROTOTYP(long pty_cleanup, (char *, int, int));
  127. #define PTY_GETPTY_STREAMS               (44806912L)
  128. #define PTY_GETPTY_FSTAT                 (44806913L)
  129. #define PTY_GETPTY_NOPTY                 (44806914L)
  130. #define PTY_GETPTY_SLAVE_TOOLONG         (44806915L)
  131. #define PTY_OPEN_SLAVE_OPENFAIL          (44806916L)
  132. #define PTY_OPEN_SLAVE_CHMODFAIL         (44806917L)
  133. #define PTY_OPEN_SLAVE_NOCTTY            (44806918L)
  134. #define PTY_OPEN_SLAVE_CHOWNFAIL         (44806919L)
  135. #define PTY_OPEN_SLAVE_LINE_PUSHFAIL     (44806920L)
  136. #define PTY_OPEN_SLAVE_PUSH_FAIL         (44806921L)
  137. #define PTY_OPEN_SLAVE_REVOKEFAIL        (44806922L)
  138. #ifdef WANT_UTMP
  139. #define PTY_UPDATE_UTMP_PROCTYPE_INVALID (44806923L)
  140. #endif /* WANT_UTMP */
  141. #define PTY_OPEN_SLAVE_TOOSHORT          (44806924L)
  142. #define ERROR_TABLE_BASE_pty             (44806912L)
  143. extern struct error_table et_pty_error_table;
  144. #define __LIBPTY_H__
  145. #endif /* __LIBPTY_H__ */