if_ec.h 1.5 KB

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