73 lines
		
	
	
		
			1.5 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
			
		
		
	
	
			73 lines
		
	
	
		
			1.5 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
/* Definitions for Econet sockets. */
 | 
						|
 | 
						|
#ifndef __LINUX_IF_EC
 | 
						|
#define __LINUX_IF_EC
 | 
						|
 | 
						|
/* User visible stuff. Glibc provides its own but libc5 folk will use these */
 | 
						|
 | 
						|
struct ec_addr
 | 
						|
{
 | 
						|
  unsigned char station;		/* Station number.  */
 | 
						|
  unsigned char net;			/* Network number.  */
 | 
						|
};
 | 
						|
 | 
						|
struct sockaddr_ec
 | 
						|
{
 | 
						|
  unsigned short sec_family;
 | 
						|
  unsigned char port;			/* Port number.  */
 | 
						|
  unsigned char cb;			/* Control/flag byte.  */
 | 
						|
  unsigned char type;			/* Type of message.  */
 | 
						|
  struct ec_addr addr;
 | 
						|
  unsigned long cookie;
 | 
						|
};
 | 
						|
 | 
						|
#define ECTYPE_PACKET_RECEIVED		0	/* Packet received */
 | 
						|
#define ECTYPE_TRANSMIT_STATUS		0x10	/* Transmit completed, 
 | 
						|
						   low nibble holds status */
 | 
						|
 | 
						|
#define ECTYPE_TRANSMIT_OK		1
 | 
						|
#define ECTYPE_TRANSMIT_NOT_LISTENING	2
 | 
						|
#define ECTYPE_TRANSMIT_NET_ERROR	3
 | 
						|
#define ECTYPE_TRANSMIT_NO_CLOCK	4
 | 
						|
#define ECTYPE_TRANSMIT_LINE_JAMMED	5
 | 
						|
#define ECTYPE_TRANSMIT_NOT_PRESENT	6
 | 
						|
 | 
						|
#ifdef __KERNEL__
 | 
						|
 | 
						|
#define EC_HLEN				6
 | 
						|
 | 
						|
/* This is what an Econet frame looks like on the wire. */
 | 
						|
struct ec_framehdr 
 | 
						|
{
 | 
						|
  unsigned char dst_stn;
 | 
						|
  unsigned char dst_net;
 | 
						|
  unsigned char src_stn;
 | 
						|
  unsigned char src_net;
 | 
						|
  unsigned char cb;
 | 
						|
  unsigned char port;
 | 
						|
};
 | 
						|
 | 
						|
struct econet_sock {
 | 
						|
  /* struct sock has to be the first member of econet_sock */
 | 
						|
  struct sock	sk;
 | 
						|
  unsigned char cb;
 | 
						|
  unsigned char port;
 | 
						|
  unsigned char station;
 | 
						|
  unsigned char net;
 | 
						|
  unsigned short num;
 | 
						|
};
 | 
						|
 | 
						|
static inline struct econet_sock *ec_sk(const struct sock *sk)
 | 
						|
{
 | 
						|
	return (struct econet_sock *)sk;
 | 
						|
}
 | 
						|
 | 
						|
struct ec_device
 | 
						|
{
 | 
						|
  unsigned char station, net;		/* Econet protocol address */
 | 
						|
};
 | 
						|
 | 
						|
#endif
 | 
						|
 | 
						|
#endif
 |