92 lines · c
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 the5 * definition of the ax25_address structure.6 */7 8#ifndef ROSE_KERNEL_H9#define ROSE_KERNEL_H10 11#include <linux/socket.h>12#include <linux/ax25.h>13 14#define ROSE_MTU 25115 16#define ROSE_MAX_DIGIS 617 18#define ROSE_DEFER 119#define ROSE_T1 220#define ROSE_T2 321#define ROSE_T3 422#define ROSE_IDLE 523#define ROSE_QBITINCL 624#define ROSE_HOLDBACK 725 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 0x0036#define ROSE_NUMBER_BUSY 0x0137#define ROSE_INVALID_FACILITY 0x0338#define ROSE_NETWORK_CONGESTION 0x0539#define ROSE_OUT_OF_ORDER 0x0940#define ROSE_ACCESS_BARRED 0x0B41#define ROSE_NOT_OBTAINABLE 0x0D42#define ROSE_REMOTE_PROCEDURE 0x1143#define ROSE_LOCAL_PROCEDURE 0x1344#define ROSE_SHIP_ABSENT 0x3945 46typedef struct {47 char rose_addr[5];48} rose_address;49 50struct 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 58struct 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 66struct 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 75struct rose_cause_struct {76 unsigned char cause;77 unsigned char diagnostic;78};79 80struct 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#endif92