/*****************************************************************************/ /* * usersmdiag.h -- Diagnostics interface. * * Copyright (C) 1996 Thomas Sailer (t.sailer@alumni.ethz.ch) * Swiss Federal Institute of Technology (ETH), Electronics Lab * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, MA * 02110-1301, USA. * * * This is the Linux realtime sound output driver */ /*****************************************************************************/ #ifndef _USERSMDIAG_H #define _USERSMDIAG_H /* --------------------------------------------------------------------- */ #define USERSM_KEY_PROJ '0' /* --------------------------------------------------------------------- */ #define USERSM_CMD_REQ_CHACCESS_PAR 0x00020 #define USERSM_CMD_ACK_CHACCESS_PAR 0x10021 #define USERSM_CMD_SET_CHACCESS_PAR 0x00022 #define USERSM_CMD_CALIBRATE 0x00030 #define USERSM_CMD_REQ_CHANNELSTATE 0x00031 #define USERSM_CMD_ACK_CHANNELSTATE 0x10032 #define USERSM_CMD_REQ_DIAG 0x00040 #define USERSM_CMD_ACK_DIAG 0x10041 #define USERSM_CMD_REQ_DRVNAME 0x00050 #define USERSM_CMD_ACK_DRVNAME 0x10051 #define USERSM_CMD_REQ_DRVMODE 0x00052 #define USERSM_CMD_ACK_DRVMODE 0x10053 /* * diagnose modes; same as in */ #define USERSM_DIAGMODE_OFF 0 #define USERSM_DIAGMODE_INPUT 1 #define USERSM_DIAGMODE_DEMOD 2 #define USERSM_DIAGMODE_CONSTELLATION 3 /* * diagnose flags; same as in */ #define USERSM_DIAGFLAG_DCDGATE (1<<0) #define USERSM_DIAGFLAG_VALID (1<<1) /* --------------------------------------------------------------------- */ #define DIAGDATALEN 64 /* --------------------------------------------------------------------- */ struct usersmmsg { struct usersm_hdr { long type; unsigned int channel; } hdr; union { struct usersm_chaccess_par { int tx_delay; /* the transmitter keyup delay in 10ms units */ int tx_tail; /* the transmitter keyoff delay in 10ms units */ int slottime; /* the slottime in 10ms; usually 10 = 100ms */ int ppersist; /* the p-persistence 0..255 */ int fulldup; /* some driver do not support full duplex, setting */ /* this just makes them send even if DCD is on */ } cp; int calib; struct usersm_channel_state { int ptt; int dcd; int ptt_keyed; unsigned long tx_packets; unsigned long tx_errors; unsigned long rx_packets; unsigned long rx_errors; } cs; struct usersm_diag { unsigned int mode; unsigned int flags; unsigned int samplesperbit; unsigned int datalen; } diag; struct usersm_diag_out { struct usersm_diag diag; short samples[DIAGDATALEN]; } diag_out; char by[0]; } data; }; /* --------------------------------------------------------------------- */ #endif /* _USERSMDIAG_H */