xref: /aosp_15_r20/external/kernel-headers/original/uapi/linux/hdlcdrv.h (revision f80ad8b4341604f5951dab671d41019a6d7087ce)
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  * hdlcdrv.h  -- HDLC packet radio network driver.
4*f80ad8b4SAndroid Build Coastguard Worker  * The Linux soundcard driver for 1200 baud and 9600 baud packet radio
5*f80ad8b4SAndroid Build Coastguard Worker  * (C) 1996-1998 by Thomas Sailer, HB9JNX/AE4WA
6*f80ad8b4SAndroid Build Coastguard Worker  */
7*f80ad8b4SAndroid Build Coastguard Worker 
8*f80ad8b4SAndroid Build Coastguard Worker #ifndef _UAPI_HDLCDRV_H
9*f80ad8b4SAndroid Build Coastguard Worker #define _UAPI_HDLCDRV_H
10*f80ad8b4SAndroid Build Coastguard Worker 
11*f80ad8b4SAndroid Build Coastguard Worker /* -------------------------------------------------------------------- */
12*f80ad8b4SAndroid Build Coastguard Worker /*
13*f80ad8b4SAndroid Build Coastguard Worker  * structs for the IOCTL commands
14*f80ad8b4SAndroid Build Coastguard Worker  */
15*f80ad8b4SAndroid Build Coastguard Worker 
16*f80ad8b4SAndroid Build Coastguard Worker struct hdlcdrv_params {
17*f80ad8b4SAndroid Build Coastguard Worker 	int iobase;
18*f80ad8b4SAndroid Build Coastguard Worker 	int irq;
19*f80ad8b4SAndroid Build Coastguard Worker 	int dma;
20*f80ad8b4SAndroid Build Coastguard Worker 	int dma2;
21*f80ad8b4SAndroid Build Coastguard Worker 	int seriobase;
22*f80ad8b4SAndroid Build Coastguard Worker 	int pariobase;
23*f80ad8b4SAndroid Build Coastguard Worker 	int midiiobase;
24*f80ad8b4SAndroid Build Coastguard Worker };
25*f80ad8b4SAndroid Build Coastguard Worker 
26*f80ad8b4SAndroid Build Coastguard Worker struct hdlcdrv_channel_params {
27*f80ad8b4SAndroid Build Coastguard Worker 	int tx_delay;  /* the transmitter keyup delay in 10ms units */
28*f80ad8b4SAndroid Build Coastguard Worker 	int tx_tail;   /* the transmitter keyoff delay in 10ms units */
29*f80ad8b4SAndroid Build Coastguard Worker 	int slottime;  /* the slottime in 10ms; usually 10 = 100ms */
30*f80ad8b4SAndroid Build Coastguard Worker 	int ppersist;  /* the p-persistence 0..255 */
31*f80ad8b4SAndroid Build Coastguard Worker 	int fulldup;   /* some driver do not support full duplex, setting */
32*f80ad8b4SAndroid Build Coastguard Worker 	               /* this just makes them send even if DCD is on */
33*f80ad8b4SAndroid Build Coastguard Worker };
34*f80ad8b4SAndroid Build Coastguard Worker 
35*f80ad8b4SAndroid Build Coastguard Worker struct hdlcdrv_old_channel_state {
36*f80ad8b4SAndroid Build Coastguard Worker   	int ptt;
37*f80ad8b4SAndroid Build Coastguard Worker   	int dcd;
38*f80ad8b4SAndroid Build Coastguard Worker   	int ptt_keyed;
39*f80ad8b4SAndroid Build Coastguard Worker };
40*f80ad8b4SAndroid Build Coastguard Worker 
41*f80ad8b4SAndroid Build Coastguard Worker struct hdlcdrv_channel_state {
42*f80ad8b4SAndroid Build Coastguard Worker  	int ptt;
43*f80ad8b4SAndroid Build Coastguard Worker  	int dcd;
44*f80ad8b4SAndroid Build Coastguard Worker  	int ptt_keyed;
45*f80ad8b4SAndroid Build Coastguard Worker  	unsigned long tx_packets;
46*f80ad8b4SAndroid Build Coastguard Worker  	unsigned long tx_errors;
47*f80ad8b4SAndroid Build Coastguard Worker  	unsigned long rx_packets;
48*f80ad8b4SAndroid Build Coastguard Worker  	unsigned long rx_errors;
49*f80ad8b4SAndroid Build Coastguard Worker };
50*f80ad8b4SAndroid Build Coastguard Worker 
51*f80ad8b4SAndroid Build Coastguard Worker struct hdlcdrv_ioctl {
52*f80ad8b4SAndroid Build Coastguard Worker 	int cmd;
53*f80ad8b4SAndroid Build Coastguard Worker 	union {
54*f80ad8b4SAndroid Build Coastguard Worker 		struct hdlcdrv_params mp;
55*f80ad8b4SAndroid Build Coastguard Worker 		struct hdlcdrv_channel_params cp;
56*f80ad8b4SAndroid Build Coastguard Worker 		struct hdlcdrv_channel_state cs;
57*f80ad8b4SAndroid Build Coastguard Worker 		struct hdlcdrv_old_channel_state ocs;
58*f80ad8b4SAndroid Build Coastguard Worker 		unsigned int calibrate;
59*f80ad8b4SAndroid Build Coastguard Worker 		unsigned char bits;
60*f80ad8b4SAndroid Build Coastguard Worker 		char modename[128];
61*f80ad8b4SAndroid Build Coastguard Worker 		char drivername[32];
62*f80ad8b4SAndroid Build Coastguard Worker 	} data;
63*f80ad8b4SAndroid Build Coastguard Worker };
64*f80ad8b4SAndroid Build Coastguard Worker 
65*f80ad8b4SAndroid Build Coastguard Worker /* -------------------------------------------------------------------- */
66*f80ad8b4SAndroid Build Coastguard Worker 
67*f80ad8b4SAndroid Build Coastguard Worker /*
68*f80ad8b4SAndroid Build Coastguard Worker  * ioctl values
69*f80ad8b4SAndroid Build Coastguard Worker  */
70*f80ad8b4SAndroid Build Coastguard Worker #define HDLCDRVCTL_GETMODEMPAR       0
71*f80ad8b4SAndroid Build Coastguard Worker #define HDLCDRVCTL_SETMODEMPAR       1
72*f80ad8b4SAndroid Build Coastguard Worker #define HDLCDRVCTL_MODEMPARMASK      2  /* not handled by hdlcdrv */
73*f80ad8b4SAndroid Build Coastguard Worker #define HDLCDRVCTL_GETCHANNELPAR    10
74*f80ad8b4SAndroid Build Coastguard Worker #define HDLCDRVCTL_SETCHANNELPAR    11
75*f80ad8b4SAndroid Build Coastguard Worker #define HDLCDRVCTL_OLDGETSTAT       20
76*f80ad8b4SAndroid Build Coastguard Worker #define HDLCDRVCTL_CALIBRATE        21
77*f80ad8b4SAndroid Build Coastguard Worker #define HDLCDRVCTL_GETSTAT          22
78*f80ad8b4SAndroid Build Coastguard Worker 
79*f80ad8b4SAndroid Build Coastguard Worker /*
80*f80ad8b4SAndroid Build Coastguard Worker  * these are mainly for debugging purposes
81*f80ad8b4SAndroid Build Coastguard Worker  */
82*f80ad8b4SAndroid Build Coastguard Worker #define HDLCDRVCTL_GETSAMPLES       30
83*f80ad8b4SAndroid Build Coastguard Worker #define HDLCDRVCTL_GETBITS          31
84*f80ad8b4SAndroid Build Coastguard Worker 
85*f80ad8b4SAndroid Build Coastguard Worker /*
86*f80ad8b4SAndroid Build Coastguard Worker  * not handled by hdlcdrv, but by its depending drivers
87*f80ad8b4SAndroid Build Coastguard Worker  */
88*f80ad8b4SAndroid Build Coastguard Worker #define HDLCDRVCTL_GETMODE          40
89*f80ad8b4SAndroid Build Coastguard Worker #define HDLCDRVCTL_SETMODE          41
90*f80ad8b4SAndroid Build Coastguard Worker #define HDLCDRVCTL_MODELIST         42
91*f80ad8b4SAndroid Build Coastguard Worker #define HDLCDRVCTL_DRIVERNAME       43
92*f80ad8b4SAndroid Build Coastguard Worker 
93*f80ad8b4SAndroid Build Coastguard Worker /*
94*f80ad8b4SAndroid Build Coastguard Worker  * mask of needed modem parameters, returned by HDLCDRVCTL_MODEMPARMASK
95*f80ad8b4SAndroid Build Coastguard Worker  */
96*f80ad8b4SAndroid Build Coastguard Worker #define HDLCDRV_PARMASK_IOBASE      (1<<0)
97*f80ad8b4SAndroid Build Coastguard Worker #define HDLCDRV_PARMASK_IRQ         (1<<1)
98*f80ad8b4SAndroid Build Coastguard Worker #define HDLCDRV_PARMASK_DMA         (1<<2)
99*f80ad8b4SAndroid Build Coastguard Worker #define HDLCDRV_PARMASK_DMA2        (1<<3)
100*f80ad8b4SAndroid Build Coastguard Worker #define HDLCDRV_PARMASK_SERIOBASE   (1<<4)
101*f80ad8b4SAndroid Build Coastguard Worker #define HDLCDRV_PARMASK_PARIOBASE   (1<<5)
102*f80ad8b4SAndroid Build Coastguard Worker #define HDLCDRV_PARMASK_MIDIIOBASE  (1<<6)
103*f80ad8b4SAndroid Build Coastguard Worker 
104*f80ad8b4SAndroid Build Coastguard Worker /* -------------------------------------------------------------------- */
105*f80ad8b4SAndroid Build Coastguard Worker 
106*f80ad8b4SAndroid Build Coastguard Worker 
107*f80ad8b4SAndroid Build Coastguard Worker /* -------------------------------------------------------------------- */
108*f80ad8b4SAndroid Build Coastguard Worker 
109*f80ad8b4SAndroid Build Coastguard Worker #endif /* _UAPI_HDLCDRV_H */
110*f80ad8b4SAndroid Build Coastguard Worker 
111*f80ad8b4SAndroid Build Coastguard Worker /* -------------------------------------------------------------------- */
112