linux/include/linux/if_ec.h
<<
>>
Prefs
   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
   8struct ec_addr
   9{
  10  unsigned char station;                /* Station number.  */
  11  unsigned char net;                    /* Network number.  */
  12};
  13
  14struct 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. */
  40struct 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
  50struct 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
  60static inline struct econet_sock *ec_sk(const struct sock *sk)
  61{
  62        return (struct econet_sock *)sk;
  63}
  64
  65struct ec_device
  66{
  67  unsigned char station, net;           /* Econet protocol address */
  68};
  69
  70#endif
  71
  72#endif
  73