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 / linux / if_ec.h < prev    next >
Encoding:
C/C++ Source or Header  |  2006-08-11  |  1.5 KB  |  73 lines

  1. /* Definitions for Econet sockets. */
  2.  
  3. #ifndef __LINUX_IF_EC
  4. #define __LINUX_IF_EC
  5.  
  6. /* User visible stuff. Glibc provides its own but libc5 folk will use these */
  7.  
  8. struct ec_addr
  9. {
  10.   unsigned char station;        /* Station number.  */
  11.   unsigned char net;            /* Network number.  */
  12. };
  13.  
  14. struct sockaddr_ec
  15. {
  16.   unsigned short sec_family;
  17.   unsigned char port;            /* Port number.  */
  18.   unsigned char cb;            /* Control/flag byte.  */
  19.   unsigned char type;            /* Type of message.  */
  20.   struct ec_addr addr;
  21.   unsigned long cookie;
  22. };
  23.  
  24. #define ECTYPE_PACKET_RECEIVED        0    /* Packet received */
  25. #define ECTYPE_TRANSMIT_STATUS        0x10    /* Transmit completed, 
  26.                            low nibble holds status */
  27.  
  28. #define ECTYPE_TRANSMIT_OK        1
  29. #define ECTYPE_TRANSMIT_NOT_LISTENING    2
  30. #define ECTYPE_TRANSMIT_NET_ERROR    3
  31. #define ECTYPE_TRANSMIT_NO_CLOCK    4
  32. #define ECTYPE_TRANSMIT_LINE_JAMMED    5
  33. #define ECTYPE_TRANSMIT_NOT_PRESENT    6
  34.  
  35. #ifdef __KERNEL__
  36.  
  37. #define EC_HLEN                6
  38.  
  39. /* This is what an Econet frame looks like on the wire. */
  40. struct ec_framehdr 
  41. {
  42.   unsigned char dst_stn;
  43.   unsigned char dst_net;
  44.   unsigned char src_stn;
  45.   unsigned char src_net;
  46.   unsigned char cb;
  47.   unsigned char port;
  48. };
  49.  
  50. struct econet_sock {
  51.   /* struct sock has to be the first member of econet_sock */
  52.   struct sock    sk;
  53.   unsigned char cb;
  54.   unsigned char port;
  55.   unsigned char station;
  56.   unsigned char net;
  57.   unsigned short num;
  58. };
  59.  
  60. static inline struct econet_sock *ec_sk(const struct sock *sk)
  61. {
  62.     return (struct econet_sock *)sk;
  63. }
  64.  
  65. struct ec_device
  66. {
  67.   unsigned char station, net;        /* Econet protocol address */
  68. };
  69.  
  70. #endif
  71.  
  72. #endif
  73.