home *** CD-ROM | disk | FTP | other *** search
/ Mac Easy 2010 May / Mac Life Ubuntu.iso / casper / filesystem.squashfs / usr / src / linux-headers-2.6.28-15 / include / asm-m68k / termios.h < prev    next >
Encoding:
C/C++ Source or Header  |  2008-12-24  |  2.8 KB  |  93 lines

  1. #ifndef _M68K_TERMIOS_H
  2. #define _M68K_TERMIOS_H
  3.  
  4. #include <asm/termbits.h>
  5. #include <asm/ioctls.h>
  6.  
  7. struct winsize {
  8.     unsigned short ws_row;
  9.     unsigned short ws_col;
  10.     unsigned short ws_xpixel;
  11.     unsigned short ws_ypixel;
  12. };
  13.  
  14. #define NCC 8
  15. struct termio {
  16.     unsigned short c_iflag;        /* input mode flags */
  17.     unsigned short c_oflag;        /* output mode flags */
  18.     unsigned short c_cflag;        /* control mode flags */
  19.     unsigned short c_lflag;        /* local mode flags */
  20.     unsigned char c_line;        /* line discipline */
  21.     unsigned char c_cc[NCC];    /* control characters */
  22. };
  23.  
  24. #ifdef __KERNEL__
  25. /*    intr=^C        quit=^|        erase=del    kill=^U
  26.     eof=^D        vtime=\0    vmin=\1        sxtc=\0
  27.     start=^Q    stop=^S        susp=^Z        eol=\0
  28.     reprint=^R    discard=^U    werase=^W    lnext=^V
  29.     eol2=\0
  30. */
  31. #define INIT_C_CC "\003\034\177\025\004\0\1\0\021\023\032\0\022\017\027\026\0"
  32. #endif
  33.  
  34. /* modem lines */
  35. #define TIOCM_LE    0x001
  36. #define TIOCM_DTR    0x002
  37. #define TIOCM_RTS    0x004
  38. #define TIOCM_ST    0x008
  39. #define TIOCM_SR    0x010
  40. #define TIOCM_CTS    0x020
  41. #define TIOCM_CAR    0x040
  42. #define TIOCM_RNG    0x080
  43. #define TIOCM_DSR    0x100
  44. #define TIOCM_CD    TIOCM_CAR
  45. #define TIOCM_RI    TIOCM_RNG
  46. #define TIOCM_OUT1    0x2000
  47. #define TIOCM_OUT2    0x4000
  48. #define TIOCM_LOOP    0x8000
  49.  
  50. /* ioctl (fd, TIOCSERGETLSR, &result) where result may be as below */
  51.  
  52. #ifdef __KERNEL__
  53.  
  54. /*
  55.  * Translate a "termio" structure into a "termios". Ugh.
  56.  */
  57. #define user_termio_to_kernel_termios(termios, termio) \
  58. ({ \
  59.     unsigned short tmp; \
  60.     get_user(tmp, &(termio)->c_iflag); \
  61.     (termios)->c_iflag = (0xffff0000 & ((termios)->c_iflag)) | tmp; \
  62.     get_user(tmp, &(termio)->c_oflag); \
  63.     (termios)->c_oflag = (0xffff0000 & ((termios)->c_oflag)) | tmp; \
  64.     get_user(tmp, &(termio)->c_cflag); \
  65.     (termios)->c_cflag = (0xffff0000 & ((termios)->c_cflag)) | tmp; \
  66.     get_user(tmp, &(termio)->c_lflag); \
  67.     (termios)->c_lflag = (0xffff0000 & ((termios)->c_lflag)) | tmp; \
  68.     get_user((termios)->c_line, &(termio)->c_line); \
  69.     copy_from_user((termios)->c_cc, (termio)->c_cc, NCC); \
  70. })
  71.  
  72. /*
  73.  * Translate a "termios" structure into a "termio". Ugh.
  74.  */
  75. #define kernel_termios_to_user_termio(termio, termios) \
  76. ({ \
  77.     put_user((termios)->c_iflag, &(termio)->c_iflag); \
  78.     put_user((termios)->c_oflag, &(termio)->c_oflag); \
  79.     put_user((termios)->c_cflag, &(termio)->c_cflag); \
  80.     put_user((termios)->c_lflag, &(termio)->c_lflag); \
  81.     put_user((termios)->c_line,  &(termio)->c_line); \
  82.     copy_to_user((termio)->c_cc, (termios)->c_cc, NCC); \
  83. })
  84.  
  85. #define user_termios_to_kernel_termios(k, u) copy_from_user(k, u, sizeof(struct termios2))
  86. #define kernel_termios_to_user_termios(u, k) copy_to_user(u, k, sizeof(struct termios2))
  87. #define user_termios_to_kernel_termios_1(k, u) copy_from_user(k, u, sizeof(struct termios))
  88. #define kernel_termios_to_user_termios_1(u, k) copy_to_user(u, k, sizeof(struct termios))
  89.  
  90. #endif    /* __KERNEL__ */
  91.  
  92. #endif /* _M68K_TERMIOS_H */
  93.