1/****************************************************************************
2 ****************************************************************************
3 ***
4 ***   This header was automatically generated from a Linux kernel header
5 ***   of the same name, to make information necessary for userspace to
6 ***   call into the kernel available to libc.  It contains only constants,
7 ***   structures, and macros generated from the original header, and thus,
8 ***   contains no copyrightable information.
9 ***
10 ***   To edit the content of this header, modify the corresponding
11 ***   source file (e.g. under external/kernel-headers/original/) then
12 ***   run bionic/libc/kernel/tools/update_all.py
13 ***
14 ***   Any manual change here will be lost the next time this script will
15 ***   be run. You've been warned!
16 ***
17 ****************************************************************************
18 ****************************************************************************/
19#ifndef ROSE_KERNEL_H
20#define ROSE_KERNEL_H
21#include <linux/socket.h>
22#include <linux/ax25.h>
23#define ROSE_MTU 251
24#define ROSE_MAX_DIGIS 6
25#define ROSE_DEFER 1
26#define ROSE_T1 2
27#define ROSE_T2 3
28#define ROSE_T3 4
29#define ROSE_IDLE 5
30#define ROSE_QBITINCL 6
31#define ROSE_HOLDBACK 7
32#define SIOCRSGCAUSE (SIOCPROTOPRIVATE + 0)
33#define SIOCRSSCAUSE (SIOCPROTOPRIVATE + 1)
34#define SIOCRSL2CALL (SIOCPROTOPRIVATE + 2)
35#define SIOCRSSL2CALL (SIOCPROTOPRIVATE + 2)
36#define SIOCRSACCEPT (SIOCPROTOPRIVATE + 3)
37#define SIOCRSCLRRT (SIOCPROTOPRIVATE + 4)
38#define SIOCRSGL2CALL (SIOCPROTOPRIVATE + 5)
39#define SIOCRSGFACILITIES (SIOCPROTOPRIVATE + 6)
40#define ROSE_DTE_ORIGINATED 0x00
41#define ROSE_NUMBER_BUSY 0x01
42#define ROSE_INVALID_FACILITY 0x03
43#define ROSE_NETWORK_CONGESTION 0x05
44#define ROSE_OUT_OF_ORDER 0x09
45#define ROSE_ACCESS_BARRED 0x0B
46#define ROSE_NOT_OBTAINABLE 0x0D
47#define ROSE_REMOTE_PROCEDURE 0x11
48#define ROSE_LOCAL_PROCEDURE 0x13
49#define ROSE_SHIP_ABSENT 0x39
50typedef struct {
51  char rose_addr[5];
52} rose_address;
53struct sockaddr_rose {
54  __kernel_sa_family_t srose_family;
55  rose_address srose_addr;
56  ax25_address srose_call;
57  int srose_ndigis;
58  ax25_address srose_digi;
59};
60struct full_sockaddr_rose {
61  __kernel_sa_family_t srose_family;
62  rose_address srose_addr;
63  ax25_address srose_call;
64  unsigned int srose_ndigis;
65  ax25_address srose_digis[ROSE_MAX_DIGIS];
66};
67struct rose_route_struct {
68  rose_address address;
69  unsigned short mask;
70  ax25_address neighbour;
71  char device[16];
72  unsigned char ndigis;
73  ax25_address digipeaters[AX25_MAX_DIGIS];
74};
75struct rose_cause_struct {
76  unsigned char cause;
77  unsigned char diagnostic;
78};
79struct rose_facilities_struct {
80  rose_address source_addr, dest_addr;
81  ax25_address source_call, dest_call;
82  unsigned char source_ndigis, dest_ndigis;
83  ax25_address source_digis[ROSE_MAX_DIGIS];
84  ax25_address dest_digis[ROSE_MAX_DIGIS];
85  unsigned int rand;
86  rose_address fail_addr;
87  ax25_address fail_call;
88};
89#endif
90