xref: /aosp_15_r20/external/kernel-headers/original/uapi/linux/rose.h (revision f80ad8b4341604f5951dab671d41019a6d7087ce)
1*f80ad8b4SAndroid Build Coastguard Worker /* SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note */
2*f80ad8b4SAndroid Build Coastguard Worker /*
3*f80ad8b4SAndroid Build Coastguard Worker  * These are the public elements of the Linux kernel Rose implementation.
4*f80ad8b4SAndroid Build Coastguard Worker  * For kernel AX.25 see the file ax25.h. This file requires ax25.h for the
5*f80ad8b4SAndroid Build Coastguard Worker  * definition of the ax25_address structure.
6*f80ad8b4SAndroid Build Coastguard Worker  */
7*f80ad8b4SAndroid Build Coastguard Worker 
8*f80ad8b4SAndroid Build Coastguard Worker #ifndef	ROSE_KERNEL_H
9*f80ad8b4SAndroid Build Coastguard Worker #define	ROSE_KERNEL_H
10*f80ad8b4SAndroid Build Coastguard Worker 
11*f80ad8b4SAndroid Build Coastguard Worker #include <linux/socket.h>
12*f80ad8b4SAndroid Build Coastguard Worker #include <linux/ax25.h>
13*f80ad8b4SAndroid Build Coastguard Worker 
14*f80ad8b4SAndroid Build Coastguard Worker #define ROSE_MTU	251
15*f80ad8b4SAndroid Build Coastguard Worker 
16*f80ad8b4SAndroid Build Coastguard Worker #define ROSE_MAX_DIGIS 6
17*f80ad8b4SAndroid Build Coastguard Worker 
18*f80ad8b4SAndroid Build Coastguard Worker #define	ROSE_DEFER	1
19*f80ad8b4SAndroid Build Coastguard Worker #define ROSE_T1		2
20*f80ad8b4SAndroid Build Coastguard Worker #define	ROSE_T2		3
21*f80ad8b4SAndroid Build Coastguard Worker #define	ROSE_T3		4
22*f80ad8b4SAndroid Build Coastguard Worker #define	ROSE_IDLE	5
23*f80ad8b4SAndroid Build Coastguard Worker #define	ROSE_QBITINCL	6
24*f80ad8b4SAndroid Build Coastguard Worker #define	ROSE_HOLDBACK	7
25*f80ad8b4SAndroid Build Coastguard Worker 
26*f80ad8b4SAndroid Build Coastguard Worker #define	SIOCRSGCAUSE		(SIOCPROTOPRIVATE+0)
27*f80ad8b4SAndroid Build Coastguard Worker #define	SIOCRSSCAUSE		(SIOCPROTOPRIVATE+1)
28*f80ad8b4SAndroid Build Coastguard Worker #define	SIOCRSL2CALL		(SIOCPROTOPRIVATE+2)
29*f80ad8b4SAndroid Build Coastguard Worker #define	SIOCRSSL2CALL		(SIOCPROTOPRIVATE+2)
30*f80ad8b4SAndroid Build Coastguard Worker #define	SIOCRSACCEPT		(SIOCPROTOPRIVATE+3)
31*f80ad8b4SAndroid Build Coastguard Worker #define	SIOCRSCLRRT		(SIOCPROTOPRIVATE+4)
32*f80ad8b4SAndroid Build Coastguard Worker #define	SIOCRSGL2CALL		(SIOCPROTOPRIVATE+5)
33*f80ad8b4SAndroid Build Coastguard Worker #define	SIOCRSGFACILITIES	(SIOCPROTOPRIVATE+6)
34*f80ad8b4SAndroid Build Coastguard Worker 
35*f80ad8b4SAndroid Build Coastguard Worker #define	ROSE_DTE_ORIGINATED	0x00
36*f80ad8b4SAndroid Build Coastguard Worker #define	ROSE_NUMBER_BUSY	0x01
37*f80ad8b4SAndroid Build Coastguard Worker #define	ROSE_INVALID_FACILITY	0x03
38*f80ad8b4SAndroid Build Coastguard Worker #define	ROSE_NETWORK_CONGESTION	0x05
39*f80ad8b4SAndroid Build Coastguard Worker #define	ROSE_OUT_OF_ORDER	0x09
40*f80ad8b4SAndroid Build Coastguard Worker #define	ROSE_ACCESS_BARRED	0x0B
41*f80ad8b4SAndroid Build Coastguard Worker #define	ROSE_NOT_OBTAINABLE	0x0D
42*f80ad8b4SAndroid Build Coastguard Worker #define	ROSE_REMOTE_PROCEDURE	0x11
43*f80ad8b4SAndroid Build Coastguard Worker #define	ROSE_LOCAL_PROCEDURE	0x13
44*f80ad8b4SAndroid Build Coastguard Worker #define	ROSE_SHIP_ABSENT	0x39
45*f80ad8b4SAndroid Build Coastguard Worker 
46*f80ad8b4SAndroid Build Coastguard Worker typedef struct {
47*f80ad8b4SAndroid Build Coastguard Worker 	char		rose_addr[5];
48*f80ad8b4SAndroid Build Coastguard Worker } rose_address;
49*f80ad8b4SAndroid Build Coastguard Worker 
50*f80ad8b4SAndroid Build Coastguard Worker struct sockaddr_rose {
51*f80ad8b4SAndroid Build Coastguard Worker 	__kernel_sa_family_t srose_family;
52*f80ad8b4SAndroid Build Coastguard Worker 	rose_address	srose_addr;
53*f80ad8b4SAndroid Build Coastguard Worker 	ax25_address	srose_call;
54*f80ad8b4SAndroid Build Coastguard Worker 	int		srose_ndigis;
55*f80ad8b4SAndroid Build Coastguard Worker 	ax25_address	srose_digi;
56*f80ad8b4SAndroid Build Coastguard Worker };
57*f80ad8b4SAndroid Build Coastguard Worker 
58*f80ad8b4SAndroid Build Coastguard Worker struct full_sockaddr_rose {
59*f80ad8b4SAndroid Build Coastguard Worker 	__kernel_sa_family_t srose_family;
60*f80ad8b4SAndroid Build Coastguard Worker 	rose_address	srose_addr;
61*f80ad8b4SAndroid Build Coastguard Worker 	ax25_address	srose_call;
62*f80ad8b4SAndroid Build Coastguard Worker 	unsigned int	srose_ndigis;
63*f80ad8b4SAndroid Build Coastguard Worker 	ax25_address	srose_digis[ROSE_MAX_DIGIS];
64*f80ad8b4SAndroid Build Coastguard Worker };
65*f80ad8b4SAndroid Build Coastguard Worker 
66*f80ad8b4SAndroid Build Coastguard Worker struct rose_route_struct {
67*f80ad8b4SAndroid Build Coastguard Worker 	rose_address	address;
68*f80ad8b4SAndroid Build Coastguard Worker 	unsigned short	mask;
69*f80ad8b4SAndroid Build Coastguard Worker 	ax25_address	neighbour;
70*f80ad8b4SAndroid Build Coastguard Worker 	char		device[16];
71*f80ad8b4SAndroid Build Coastguard Worker 	unsigned char	ndigis;
72*f80ad8b4SAndroid Build Coastguard Worker 	ax25_address	digipeaters[AX25_MAX_DIGIS];
73*f80ad8b4SAndroid Build Coastguard Worker };
74*f80ad8b4SAndroid Build Coastguard Worker 
75*f80ad8b4SAndroid Build Coastguard Worker struct rose_cause_struct {
76*f80ad8b4SAndroid Build Coastguard Worker 	unsigned char	cause;
77*f80ad8b4SAndroid Build Coastguard Worker 	unsigned char	diagnostic;
78*f80ad8b4SAndroid Build Coastguard Worker };
79*f80ad8b4SAndroid Build Coastguard Worker 
80*f80ad8b4SAndroid Build Coastguard Worker struct rose_facilities_struct {
81*f80ad8b4SAndroid Build Coastguard Worker 	rose_address	source_addr,   dest_addr;
82*f80ad8b4SAndroid Build Coastguard Worker 	ax25_address	source_call,   dest_call;
83*f80ad8b4SAndroid Build Coastguard Worker 	unsigned char	source_ndigis, dest_ndigis;
84*f80ad8b4SAndroid Build Coastguard Worker 	ax25_address	source_digis[ROSE_MAX_DIGIS];
85*f80ad8b4SAndroid Build Coastguard Worker 	ax25_address	dest_digis[ROSE_MAX_DIGIS];
86*f80ad8b4SAndroid Build Coastguard Worker 	unsigned int	rand;
87*f80ad8b4SAndroid Build Coastguard Worker 	rose_address	fail_addr;
88*f80ad8b4SAndroid Build Coastguard Worker 	ax25_address	fail_call;
89*f80ad8b4SAndroid Build Coastguard Worker };
90*f80ad8b4SAndroid Build Coastguard Worker 
91*f80ad8b4SAndroid Build Coastguard Worker #endif
92