home *** CD-ROM | disk | FTP | other *** search
/ PC Welt 2006 November (DVD) / PCWELT_11_2006.ISO / casper / filesystem.squashfs / usr / src / linux-headers-2.6.17-6 / include / asm-ia64 / termios.h < prev    next >
Encoding:
C/C++ Source or Header  |  2006-08-11  |  3.2 KB  |  114 lines

  1. #ifndef _ASM_IA64_TERMIOS_H
  2. #define _ASM_IA64_TERMIOS_H
  3.  
  4. /*
  5.  * Modified 1999
  6.  *    David Mosberger-Tang <davidm@hpl.hp.com>, Hewlett-Packard Co
  7.  *
  8.  * 99/01/28    Added N_IRDA and N_SMSBLOCK
  9.  */
  10.  
  11. #include <asm/termbits.h>
  12. #include <asm/ioctls.h>
  13.  
  14. struct winsize {
  15.     unsigned short ws_row;
  16.     unsigned short ws_col;
  17.     unsigned short ws_xpixel;
  18.     unsigned short ws_ypixel;
  19. };
  20.  
  21. #define NCC 8
  22. struct termio {
  23.     unsigned short c_iflag;        /* input mode flags */
  24.     unsigned short c_oflag;        /* output mode flags */
  25.     unsigned short c_cflag;        /* control mode flags */
  26.     unsigned short c_lflag;        /* local mode flags */
  27.     unsigned char c_line;        /* line discipline */
  28.     unsigned char c_cc[NCC];    /* control characters */
  29. };
  30.  
  31. /* modem lines */
  32. #define TIOCM_LE    0x001
  33. #define TIOCM_DTR    0x002
  34. #define TIOCM_RTS    0x004
  35. #define TIOCM_ST    0x008
  36. #define TIOCM_SR    0x010
  37. #define TIOCM_CTS    0x020
  38. #define TIOCM_CAR    0x040
  39. #define TIOCM_RNG    0x080
  40. #define TIOCM_DSR    0x100
  41. #define TIOCM_CD    TIOCM_CAR
  42. #define TIOCM_RI    TIOCM_RNG
  43. #define TIOCM_OUT1    0x2000
  44. #define TIOCM_OUT2    0x4000
  45. #define TIOCM_LOOP    0x8000
  46.  
  47. /* ioctl (fd, TIOCSERGETLSR, &result) where result may be as below */
  48.  
  49. /* line disciplines */
  50. #define N_TTY        0
  51. #define N_SLIP        1
  52. #define N_MOUSE        2
  53. #define N_PPP        3
  54. #define N_STRIP        4
  55. #define N_AX25        5
  56. #define N_X25        6    /* X.25 async */
  57. #define N_6PACK        7
  58. #define N_MASC        8    /* Reserved for Mobitex module <kaz@cafe.net> */
  59. #define N_R3964        9    /* Reserved for Simatic R3964 module */
  60. #define N_PROFIBUS_FDL    10    /* Reserved for Profibus <Dave@mvhi.com> */
  61. #define N_IRDA        11    /* Linux IR - http://irda.sourceforge.net/ */
  62. #define N_SMSBLOCK    12    /* SMS block mode - for talking to GSM data cards about SMS msgs */
  63. #define N_HDLC        13    /* synchronous HDLC */
  64. #define N_SYNC_PPP    14    /* synchronous PPP */
  65. #define N_HCI        15  /* Bluetooth HCI UART */
  66.  
  67. # ifdef __KERNEL__
  68.  
  69. /*    intr=^C        quit=^\        erase=del    kill=^U
  70.     eof=^D        vtime=\0    vmin=\1        sxtc=\0
  71.     start=^Q    stop=^S        susp=^Z        eol=\0
  72.     reprint=^R    discard=^U    werase=^W    lnext=^V
  73.     eol2=\0
  74. */
  75. #define INIT_C_CC "\003\034\177\025\004\0\1\0\021\023\032\0\022\017\027\026\0"
  76.  
  77. /*
  78.  * Translate a "termio" structure into a "termios". Ugh.
  79.  */
  80. #define SET_LOW_TERMIOS_BITS(termios, termio, x) {    \
  81.     unsigned short __tmp;                \
  82.     get_user(__tmp,&(termio)->x);            \
  83.     *(unsigned short *) &(termios)->x = __tmp;    \
  84. }
  85.  
  86. #define user_termio_to_kernel_termios(termios, termio)        \
  87. ({                                \
  88.     SET_LOW_TERMIOS_BITS(termios, termio, c_iflag);        \
  89.     SET_LOW_TERMIOS_BITS(termios, termio, c_oflag);        \
  90.     SET_LOW_TERMIOS_BITS(termios, termio, c_cflag);        \
  91.     SET_LOW_TERMIOS_BITS(termios, termio, c_lflag);        \
  92.     copy_from_user((termios)->c_cc, (termio)->c_cc, NCC);    \
  93. })
  94.  
  95. /*
  96.  * Translate a "termios" structure into a "termio". Ugh.
  97.  */
  98. #define kernel_termios_to_user_termio(termio, termios)        \
  99. ({                                \
  100.     put_user((termios)->c_iflag, &(termio)->c_iflag);    \
  101.     put_user((termios)->c_oflag, &(termio)->c_oflag);    \
  102.     put_user((termios)->c_cflag, &(termio)->c_cflag);    \
  103.     put_user((termios)->c_lflag, &(termio)->c_lflag);    \
  104.     put_user((termios)->c_line,  &(termio)->c_line);    \
  105.     copy_to_user((termio)->c_cc, (termios)->c_cc, NCC);    \
  106. })
  107.  
  108. #define user_termios_to_kernel_termios(k, u) copy_from_user(k, u, sizeof(struct termios))
  109. #define kernel_termios_to_user_termios(u, k) copy_to_user(u, k, sizeof(struct termios))
  110.  
  111. # endif /* __KERNEL__ */
  112.  
  113. #endif /* _ASM_IA64_TERMIOS_H */
  114.