xref: /utopia/UTPA2-700.0.x/projects/tools/lint/mips-linux-gnu_include/netrose/rose.h (revision 53ee8cc121a030b8d368113ac3e966b4705770ef)
1*53ee8cc1Swenshuai.xi /* Definitions for Rose packet radio address family.
2*53ee8cc1Swenshuai.xi    Copyright (C) 1998, 1999 Free Software Foundation, Inc.
3*53ee8cc1Swenshuai.xi    This file is part of the GNU C Library.
4*53ee8cc1Swenshuai.xi 
5*53ee8cc1Swenshuai.xi    The GNU C Library is free software; you can redistribute it and/or
6*53ee8cc1Swenshuai.xi    modify it under the terms of the GNU Lesser General Public
7*53ee8cc1Swenshuai.xi    License as published by the Free Software Foundation; either
8*53ee8cc1Swenshuai.xi    version 2.1 of the License, or (at your option) any later version.
9*53ee8cc1Swenshuai.xi 
10*53ee8cc1Swenshuai.xi    The GNU C Library is distributed in the hope that it will be useful,
11*53ee8cc1Swenshuai.xi    but WITHOUT ANY WARRANTY; without even the implied warranty of
12*53ee8cc1Swenshuai.xi    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
13*53ee8cc1Swenshuai.xi    Lesser General Public License for more details.
14*53ee8cc1Swenshuai.xi 
15*53ee8cc1Swenshuai.xi    You should have received a copy of the GNU Lesser General Public
16*53ee8cc1Swenshuai.xi    License along with the GNU C Library; if not, write to the Free
17*53ee8cc1Swenshuai.xi    Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
18*53ee8cc1Swenshuai.xi    02111-1307 USA.  */
19*53ee8cc1Swenshuai.xi 
20*53ee8cc1Swenshuai.xi /* What follows is copied from the 2.1.93 <linux/rose.h>.  */
21*53ee8cc1Swenshuai.xi 
22*53ee8cc1Swenshuai.xi #ifndef _NETROSE_ROSE_H
23*53ee8cc1Swenshuai.xi #define _NETROSE_ROSE_H 1
24*53ee8cc1Swenshuai.xi 
25*53ee8cc1Swenshuai.xi /* Socket level values.  */
26*53ee8cc1Swenshuai.xi #define SOL_ROSE        260
27*53ee8cc1Swenshuai.xi 
28*53ee8cc1Swenshuai.xi 
29*53ee8cc1Swenshuai.xi /* These are the public elements of the Linux kernel Rose
30*53ee8cc1Swenshuai.xi    implementation.  For kernel AX.25 see the file ax25.h. This file
31*53ee8cc1Swenshuai.xi    requires ax25.h for the definition of the ax25_address structure.  */
32*53ee8cc1Swenshuai.xi #define ROSE_MTU	251
33*53ee8cc1Swenshuai.xi 
34*53ee8cc1Swenshuai.xi #define ROSE_MAX_DIGIS	6
35*53ee8cc1Swenshuai.xi 
36*53ee8cc1Swenshuai.xi #define	ROSE_DEFER	1
37*53ee8cc1Swenshuai.xi #define	ROSE_T1		2
38*53ee8cc1Swenshuai.xi #define	ROSE_T2		3
39*53ee8cc1Swenshuai.xi #define	ROSE_T3		4
40*53ee8cc1Swenshuai.xi #define	ROSE_IDLE	5
41*53ee8cc1Swenshuai.xi #define	ROSE_QBITINCL	6
42*53ee8cc1Swenshuai.xi #define	ROSE_HOLDBACK	7
43*53ee8cc1Swenshuai.xi 
44*53ee8cc1Swenshuai.xi #define	SIOCRSGCAUSE		(SIOCPROTOPRIVATE + 0)
45*53ee8cc1Swenshuai.xi #define	SIOCRSSCAUSE		(SIOCPROTOPRIVATE + 1)
46*53ee8cc1Swenshuai.xi #define	SIOCRSL2CALL		(SIOCPROTOPRIVATE + 2)
47*53ee8cc1Swenshuai.xi #define	SIOCRSSL2CALL		(SIOCPROTOPRIVATE + 2)
48*53ee8cc1Swenshuai.xi #define	SIOCRSACCEPT		(SIOCPROTOPRIVATE + 3)
49*53ee8cc1Swenshuai.xi #define	SIOCRSCLRRT		(SIOCPROTOPRIVATE + 4)
50*53ee8cc1Swenshuai.xi #define	SIOCRSGL2CALL		(SIOCPROTOPRIVATE + 5)
51*53ee8cc1Swenshuai.xi #define	SIOCRSGFACILITIES	(SIOCPROTOPRIVATE + 6)
52*53ee8cc1Swenshuai.xi 
53*53ee8cc1Swenshuai.xi #define	ROSE_DTE_ORIGINATED	0x00
54*53ee8cc1Swenshuai.xi #define	ROSE_NUMBER_BUSY	0x01
55*53ee8cc1Swenshuai.xi #define	ROSE_INVALID_FACILITY	0x03
56*53ee8cc1Swenshuai.xi #define	ROSE_NETWORK_CONGESTION	0x05
57*53ee8cc1Swenshuai.xi #define	ROSE_OUT_OF_ORDER	0x09
58*53ee8cc1Swenshuai.xi #define	ROSE_ACCESS_BARRED	0x0B
59*53ee8cc1Swenshuai.xi #define	ROSE_NOT_OBTAINABLE	0x0D
60*53ee8cc1Swenshuai.xi #define	ROSE_REMOTE_PROCEDURE	0x11
61*53ee8cc1Swenshuai.xi #define	ROSE_LOCAL_PROCEDURE	0x13
62*53ee8cc1Swenshuai.xi #define	ROSE_SHIP_ABSENT	0x39
63*53ee8cc1Swenshuai.xi 
64*53ee8cc1Swenshuai.xi 
65*53ee8cc1Swenshuai.xi typedef struct
66*53ee8cc1Swenshuai.xi {
67*53ee8cc1Swenshuai.xi   char rose_addr[5];
68*53ee8cc1Swenshuai.xi } rose_address;
69*53ee8cc1Swenshuai.xi 
70*53ee8cc1Swenshuai.xi struct sockaddr_rose
71*53ee8cc1Swenshuai.xi {
72*53ee8cc1Swenshuai.xi   sa_family_t srose_family;
73*53ee8cc1Swenshuai.xi   rose_address srose_addr;
74*53ee8cc1Swenshuai.xi   ax25_address srose_call;
75*53ee8cc1Swenshuai.xi   int srose_ndigis;
76*53ee8cc1Swenshuai.xi   ax25_address	srose_digi;
77*53ee8cc1Swenshuai.xi };
78*53ee8cc1Swenshuai.xi 
79*53ee8cc1Swenshuai.xi struct full_sockaddr_rose
80*53ee8cc1Swenshuai.xi {
81*53ee8cc1Swenshuai.xi   sa_family_t srose_family;
82*53ee8cc1Swenshuai.xi   rose_address srose_addr;
83*53ee8cc1Swenshuai.xi   ax25_address srose_call;
84*53ee8cc1Swenshuai.xi   unsigned int srose_ndigis;
85*53ee8cc1Swenshuai.xi   ax25_address srose_digis[ROSE_MAX_DIGIS];
86*53ee8cc1Swenshuai.xi };
87*53ee8cc1Swenshuai.xi 
88*53ee8cc1Swenshuai.xi struct rose_route_struct
89*53ee8cc1Swenshuai.xi {
90*53ee8cc1Swenshuai.xi   rose_address address;
91*53ee8cc1Swenshuai.xi   unsigned short int mask;
92*53ee8cc1Swenshuai.xi   ax25_address	neighbour;
93*53ee8cc1Swenshuai.xi   char device[16];
94*53ee8cc1Swenshuai.xi   unsigned char	ndigis;
95*53ee8cc1Swenshuai.xi   ax25_address digipeaters[AX25_MAX_DIGIS];
96*53ee8cc1Swenshuai.xi };
97*53ee8cc1Swenshuai.xi 
98*53ee8cc1Swenshuai.xi struct rose_cause_struct
99*53ee8cc1Swenshuai.xi {
100*53ee8cc1Swenshuai.xi   unsigned char	cause;
101*53ee8cc1Swenshuai.xi   unsigned char	diagnostic;
102*53ee8cc1Swenshuai.xi };
103*53ee8cc1Swenshuai.xi 
104*53ee8cc1Swenshuai.xi struct rose_facilities_struct
105*53ee8cc1Swenshuai.xi {
106*53ee8cc1Swenshuai.xi   rose_address source_addr,   dest_addr;
107*53ee8cc1Swenshuai.xi   ax25_address source_call,   dest_call;
108*53ee8cc1Swenshuai.xi   unsigned char source_ndigis, dest_ndigis;
109*53ee8cc1Swenshuai.xi   ax25_address source_digis[ROSE_MAX_DIGIS];
110*53ee8cc1Swenshuai.xi   ax25_address dest_digis[ROSE_MAX_DIGIS];
111*53ee8cc1Swenshuai.xi   unsigned int rand;
112*53ee8cc1Swenshuai.xi   rose_address fail_addr;
113*53ee8cc1Swenshuai.xi   ax25_address fail_call;
114*53ee8cc1Swenshuai.xi };
115*53ee8cc1Swenshuai.xi 
116*53ee8cc1Swenshuai.xi #endif	/* netrose/rose.h */
117