xref: /linux-6.15/include/uapi/linux/hdlc/ioctl.h (revision c48c8d51)
1d7780723SDavid Howells #ifndef __HDLC_IOCTL_H__
2d7780723SDavid Howells #define __HDLC_IOCTL_H__
3d7780723SDavid Howells 
4d7780723SDavid Howells 
5d7780723SDavid Howells #define GENERIC_HDLC_VERSION 4	/* For synchronization with sethdlc utility */
6d7780723SDavid Howells 
7d7780723SDavid Howells #define CLOCK_DEFAULT   0	/* Default setting */
8d7780723SDavid Howells #define CLOCK_EXT	1	/* External TX and RX clock - DTE */
9d7780723SDavid Howells #define CLOCK_INT	2	/* Internal TX and RX clock - DCE */
10d7780723SDavid Howells #define CLOCK_TXINT	3	/* Internal TX and external RX clock */
11d7780723SDavid Howells #define CLOCK_TXFROMRX	4	/* TX clock derived from external RX clock */
12d7780723SDavid Howells 
13d7780723SDavid Howells 
14d7780723SDavid Howells #define ENCODING_DEFAULT	0 /* Default setting */
15d7780723SDavid Howells #define ENCODING_NRZ		1
16d7780723SDavid Howells #define ENCODING_NRZI		2
17d7780723SDavid Howells #define ENCODING_FM_MARK	3
18d7780723SDavid Howells #define ENCODING_FM_SPACE	4
19d7780723SDavid Howells #define ENCODING_MANCHESTER	5
20d7780723SDavid Howells 
21d7780723SDavid Howells 
22d7780723SDavid Howells #define PARITY_DEFAULT		0 /* Default setting */
23d7780723SDavid Howells #define PARITY_NONE		1 /* No parity */
24d7780723SDavid Howells #define PARITY_CRC16_PR0	2 /* CRC16, initial value 0x0000 */
25d7780723SDavid Howells #define PARITY_CRC16_PR1	3 /* CRC16, initial value 0xFFFF */
26d7780723SDavid Howells #define PARITY_CRC16_PR0_CCITT	4 /* CRC16, initial 0x0000, ITU-T version */
27d7780723SDavid Howells #define PARITY_CRC16_PR1_CCITT	5 /* CRC16, initial 0xFFFF, ITU-T version */
28d7780723SDavid Howells #define PARITY_CRC32_PR0_CCITT	6 /* CRC32, initial value 0x00000000 */
29d7780723SDavid Howells #define PARITY_CRC32_PR1_CCITT	7 /* CRC32, initial value 0xFFFFFFFF */
30d7780723SDavid Howells 
31d7780723SDavid Howells #define LMI_DEFAULT		0 /* Default setting */
32d7780723SDavid Howells #define LMI_NONE		1 /* No LMI, all PVCs are static */
33d7780723SDavid Howells #define LMI_ANSI		2 /* ANSI Annex D */
34d7780723SDavid Howells #define LMI_CCITT		3 /* ITU-T Annex A */
35d7780723SDavid Howells #define LMI_CISCO		4 /* The "original" LMI, aka Gang of Four */
36d7780723SDavid Howells 
37*c48c8d51SDavid Howells #ifndef __ASSEMBLY__
38*c48c8d51SDavid Howells 
39d7780723SDavid Howells typedef struct {
40d7780723SDavid Howells 	unsigned int clock_rate; /* bits per second */
41d7780723SDavid Howells 	unsigned int clock_type; /* internal, external, TX-internal etc. */
42d7780723SDavid Howells 	unsigned short loopback;
43d7780723SDavid Howells } sync_serial_settings;          /* V.35, V.24, X.21 */
44d7780723SDavid Howells 
45d7780723SDavid Howells typedef struct {
46d7780723SDavid Howells 	unsigned int clock_rate; /* bits per second */
47d7780723SDavid Howells 	unsigned int clock_type; /* internal, external, TX-internal etc. */
48d7780723SDavid Howells 	unsigned short loopback;
49d7780723SDavid Howells 	unsigned int slot_map;
50d7780723SDavid Howells } te1_settings;                  /* T1, E1 */
51d7780723SDavid Howells 
52d7780723SDavid Howells typedef struct {
53d7780723SDavid Howells 	unsigned short encoding;
54d7780723SDavid Howells 	unsigned short parity;
55d7780723SDavid Howells } raw_hdlc_proto;
56d7780723SDavid Howells 
57d7780723SDavid Howells typedef struct {
58d7780723SDavid Howells 	unsigned int t391;
59d7780723SDavid Howells 	unsigned int t392;
60d7780723SDavid Howells 	unsigned int n391;
61d7780723SDavid Howells 	unsigned int n392;
62d7780723SDavid Howells 	unsigned int n393;
63d7780723SDavid Howells 	unsigned short lmi;
64d7780723SDavid Howells 	unsigned short dce; /* 1 for DCE (network side) operation */
65d7780723SDavid Howells } fr_proto;
66d7780723SDavid Howells 
67d7780723SDavid Howells typedef struct {
68d7780723SDavid Howells 	unsigned int dlci;
69d7780723SDavid Howells } fr_proto_pvc;          /* for creating/deleting FR PVCs */
70d7780723SDavid Howells 
71d7780723SDavid Howells typedef struct {
72d7780723SDavid Howells 	unsigned int dlci;
73d7780723SDavid Howells 	char master[IFNAMSIZ];	/* Name of master FRAD device */
74d7780723SDavid Howells }fr_proto_pvc_info;		/* for returning PVC information only */
75d7780723SDavid Howells 
76d7780723SDavid Howells typedef struct {
77d7780723SDavid Howells     unsigned int interval;
78d7780723SDavid Howells     unsigned int timeout;
79d7780723SDavid Howells } cisco_proto;
80d7780723SDavid Howells 
81d7780723SDavid Howells /* PPP doesn't need any info now - supply length = 0 to ioctl */
82d7780723SDavid Howells 
83*c48c8d51SDavid Howells #endif /* __ASSEMBLY__ */
84d7780723SDavid Howells #endif /* __HDLC_IOCTL_H__ */
85