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