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