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

Modem编程

开发平台:

Unix_Linux

  1. /*
  2.  * sysdep.h Header file for the really system dependant routines
  3.  * in sysdep1.c and sysdep2.c. Because of this, the
  4.  * header file "port.h" is not used when "sysdep.h" is
  5.  * included. This file is only included from sysdep[12].c
  6.  * anyway!
  7.  *
  8.  * This file is part of the minicom communications package,
  9.  * Copyright 1991-1995 Miquel van Smoorenburg.
  10.  *
  11.  * This program is free software; you can redistribute it and/or
  12.  * modify it under the terms of the GNU General Public License
  13.  * as published by the Free Software Foundation; either version
  14.  * 2 of the License, or (at your option) any later version.
  15.  */
  16. #include <sys/types.h>
  17. /* Include standard Posix header files. */
  18. #if defined (_POSIX) || defined(_BSD43)
  19. #  include <stdlib.h>
  20. #  include <unistd.h>
  21. #endif
  22. #ifndef _COH3
  23. #  include <sys/wait.h>
  24. #endif
  25. /* Now see if we need to use sgtty, termio or termios. */
  26. #ifdef _SCO
  27. #  define _IBCS2 /* So we get struct winsize :-) */
  28. #endif
  29. #if defined (_SYSV)
  30. #  if !defined(_POSIX) || defined(_NO_TERMIOS)
  31. #    include <sys/termio.h>
  32. #  else
  33. #    include <sys/termios.h>
  34. #  endif
  35. #else
  36. #  if defined(_POSIX) && !defined(_NO_TERMIOS)
  37. #    include <termios.h>
  38. #  else
  39. #    define _V7
  40. #    include <sgtty.h>
  41. #  endif
  42. #endif
  43. /* Some system-specific include files for modem control. */
  44. #ifdef _HPUX_SOURCE
  45. #  include <sys/modem.h>
  46. #endif
  47. #if defined(_BSD43) || defined (_SYSV)
  48. #  ifndef SUN
  49. #    include <sys/ioctl.h>
  50. #  endif
  51. #endif
  52. #ifdef _COHERENT
  53. #  include <sgtty.h>
  54. #endif
  55. #ifdef _DGUX_SOURCE
  56. #  include <sys/termiox.h>
  57. #endif
  58. /* And more "standard" include files. */
  59. #include <stdio.h>
  60. #include <setjmp.h>
  61. /* Be sure we know WEXITSTATUS and WTERMSIG */
  62. #if !defined(_BSD43)
  63. #  ifndef WEXITSTATUS
  64. #    define WEXITSTATUS(s) (((s) >> 8) & 0377)
  65. #  endif
  66. #  ifndef WTERMSIG
  67. #    define WTERMSIG(s) ((s) & 0177)
  68. #  endif
  69. #endif
  70. /* Some ancient SysV systems don't define these */
  71. #ifndef VMIN
  72. #  define VMIN 4
  73. #endif
  74. #ifndef VTIME
  75. #  define VTIME 5
  76. #endif
  77. #ifndef IUCLC
  78. #  define IUCLC 0
  79. #endif
  80. #ifndef IXANY
  81. #  define IXANY 0
  82. #endif
  83. /* Different names for the same beast. */
  84. #ifndef TIOCMODG /* BSD 4.3 */
  85. #  ifdef TIOCMGET
  86. #    define TIOCMODG TIOCMGET /* Posix */
  87. #  else
  88. #    ifdef MCGETA
  89. #      define TIOCMODG MCGETA /* HP/UX */
  90. #    endif
  91. #  endif
  92. #endif
  93. #ifndef TIOCMODS
  94. #  ifdef TIOCMSET
  95. #    define TIOCMODS TIOCMSET
  96. #  else
  97. #    ifdef MCSETA
  98. #      define TIOCMODS MCSETA
  99. #    endif
  100. #  endif
  101. #endif
  102. #ifndef TIOCM_CAR /* BSD + Posix */
  103. #  ifdef MDCD
  104. #    define TIOCM_CAR MDCD /* HP/UX */
  105. #  endif
  106. #endif
  107. /* Define some thing that might not be there */
  108. #ifndef TANDEM
  109. #  define TANDEM 0
  110. #endif
  111. #ifndef BITS8
  112. #  define BITS8 0
  113. #endif
  114. #ifndef PASS8
  115. #  ifdef LLITOUT
  116. #  define PASS8 LLITOUT
  117. #  else
  118. #  define PASS8 0
  119. #  endif
  120. #endif
  121. #ifndef CRTSCTS
  122. #  define CRTSCTS 0
  123. #endif
  124. /* If this is SysV without Posix, emulate Posix. */
  125. #if defined(_SYSV)
  126. #if !defined(_POSIX) || defined(_NO_TERMIOS)
  127. #  define termios termio
  128. #  ifndef TCSANOW
  129. #    define TCSANOW 0
  130. #  endif
  131. #  define tcgetattr(fd, tty)        ioctl(fd, TCGETA, tty)
  132. #  define tcsetattr(fd, flags, tty) ioctl(fd, TCSETA, tty)
  133. #  define tcsendbreak(fd, len)      ioctl(fd, TCSBRK, 0)
  134. #  define speed_t int
  135. #  define cfsetispeed(xtty, xspd) 
  136. ((xtty)->c_cflag = ((xtty)->c_cflag & ~CBAUD) | (xspd))
  137. #  define cfsetospeed(tty, spd)
  138. #endif
  139. #endif
  140. /* Redefine cfset{i,o}speed for Linux > 1.1.68 && libc < 4.5.21 */
  141. #if defined (__linux__) && defined(CBAUDEX)
  142. #  undef cfsetispeed
  143. #  undef cfsetospeed
  144. #  define cfsetispeed(xtty, xspd) 
  145. ((xtty)->c_cflag = ((xtty)->c_cflag & ~CBAUD) | (xspd))
  146. #  define cfsetospeed(tty, spd)
  147. #endif