rustream.h 2.7 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677
  1. /*
  2. * Control messages (regular priority)
  3. */
  4. #define M_DATA 0 /* regular data (not ctl) */
  5. #define M_BREAK 01 /* line break */
  6. #define M_HANGUP 02 /* line disconnect */
  7. #define M_DELIM 03 /* data delimiter */
  8. #define M_ECHO 04 /* request ACK (1 param) */
  9. #define M_ACK 05 /* response to ECHO (1 param) */
  10. #define M_IOCTL 06 /* ioctl; set/get params */
  11. #define M_DELAY 07 /* real-time xmit delay (1 param) */
  12. #define M_CTL 010 /* device-specific control message */
  13. #define M_PASS 011 /* pass file */
  14. #define M_YDEL 012 /* stream has started generating delims */
  15. #define M_NDEL 013 /* stream has stopped generating delims */
  16. /*
  17. * Control messages (high priority; go to head of queue)
  18. */
  19. #define M_SIGNAL 0101 /* generate process signal */
  20. #define M_FLUSH 0102 /* flush your queues */
  21. #define M_STOP 0103 /* stop transmission immediately */
  22. #define M_START 0104 /* restart transmission after stop */
  23. #define M_IOCACK 0105 /* acknowledge ioctl */
  24. #define M_IOCNAK 0106 /* negative ioctl acknowledge */
  25. #define M_CLOSE 0107 /* channel closes (dk only) */
  26. #define M_IOCWAIT 0110 /* stop ioctl timeout, ack/nak follows later */
  27. /*
  28. * ioctl message packet
  29. */
  30. #define STIOCSIZE 16
  31. #define STIOCHDR 4
  32. struct stioctl {
  33. unsigned char com[STIOCHDR]; /* four-byte command, low order byte first */
  34. char data[STIOCSIZE]; /* depends on command */
  35. };
  36. /*
  37. * header for messages, see mesg.c
  38. */
  39. #define MSLEN 2
  40. struct mesg {
  41. char type;
  42. unsigned char magic;
  43. unsigned char size[MSLEN]; /* 2 byte size, low order first */
  44. };
  45. #define MSGMAGIC 0345
  46. #define MSGHLEN 4 /* true length of struct mesg in bytes */
  47. /*
  48. * magic numbers of line disciplines
  49. */
  50. #define tty_ld 0 /* tty processing */
  51. #define cdkp_ld 1 /* URP protocol -- character mode (same as 1) */
  52. #define rdk_ld 2 /* raw datakit protocol */
  53. #define pk_ld 3 /* packet driver */
  54. #define mesg_ld 4 /* data message protocol */
  55. #define dkp_ld 5 /* URP protocol -- block mode */
  56. #define ntty_ld 6 /* new tty processing */
  57. #define buf_ld 7 /* buffer up characters till timeout */
  58. #define trc_ld 8 /* stream tracer */
  59. #define rmesg_ld 9 /* reverse message processing */
  60. #define ip_ld 10 /* IP - push on net interfaces (il, ec, ...) */
  61. #define tcp_ld 11 /* TCP (inet) - only one instance, on /dev/ip6 */
  62. #define chroute_ld 12 /* Chaosnet - push on net interfaces (il, ec, ...) */
  63. #define arp_ld 13 /* Ethernet address resolution - on net interfaces */
  64. #define udp_ld 14 /* UDP (inet) - only one instance, on /dev/ip */
  65. #define chaos_ld 15 /* Chaosnet - only one, above any chroute_ld */
  66. #define filter_ld 16 /* Delimiter filtering */
  67. #define dump_ld 17 /* Debug dumper */
  68. #define conn_ld 18 /* Connection line discipline */
  69. #define uxp_ld 19 /* unix common control protocol */