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