/* $OpenBSD: wlreg.h,v 1.3 2003/06/04 16:36:14 deraadt Exp $ */ /* * Copyright (c) 1995 Dale Rahn. All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions * are met: * 1. Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * 2. Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. * * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ struct clreg { volatile u_char anon1[0x7]; volatile u_char cl_cor7; /* 0x07 */ volatile u_char anon2[0x1]; volatile u_char cl_livr; /* 0x09 */ volatile u_char anon3[0x6]; volatile u_char cl_cor1; /* 0x10 */ volatile u_char cl_ier; /* 0x11 */ volatile u_char cl_stcr; /* 0x12 */ volatile u_char cl_ccr; /* 0x13 */ volatile u_char cl_cor5; /* 0x14 */ volatile u_char cl_cor4; /* 0x15 */ volatile u_char cl_cor3; /* 0x16 */ volatile u_char cl_cor2; /* 0x17 */ volatile u_char cl_cor6; /* 0x18 */ volatile u_char cl_dmabsts; /* 0x19 */ volatile u_char cl_csr; /* 0x1a */ volatile u_char cl_cmr; /* 0x1b */ volatile u_char cl_schr4; /* 0x1c */ volatile u_char cl_schr3; /* 0x1d */ volatile u_char cl_schr2; /* 0x1e */ volatile u_char cl_schr1; /* 0x1f */ volatile u_char anon5[0x2]; volatile u_char cl_scrh; /* 0x22 */ volatile u_char cl_scrl; /* 0x23 */ #define cl_rtpr rtpr.rtpr_rtpr #define cl_rtprh rtpr.hl.rtpr_rtprh #define cl_rtprl rtpr.hl.rtpr_rtprl union { volatile u_short rtpr_rtpr; /* 0x24 */ struct { volatile u_char rtpr_rtprh; /* 0x24 */ volatile u_char rtpr_rtprl; /* 0x25 */ } hl; } rtpr; volatile u_char cl_licr; /* 0x26 */ volatile u_char anon6[0x7]; volatile u_char cl_lnxt; /* 0x2e */ volatile u_char anon7[0x1]; volatile u_char cl_rfoc; /* 0x30 */ volatile u_char anon8[0x7]; volatile u_short cl_tcbadru; /* 0x38 */ volatile u_short cl_tcbadrl; /* 0x3a */ volatile u_short cl_rcbadru; /* 0x3c */ volatile u_short cl_rcbadrl; /* 0x3e */ volatile u_short cl_arbadru; /* 0x40 */ volatile u_short cl_arbadrl; /* 0x42 */ volatile u_short cl_brbadru; /* 0x44 */ volatile u_short cl_brbadrl; /* 0x46 */ volatile u_short cl_brbcnt; /* 0x48 */ volatile u_short cl_arbcnt; /* 0x4a */ volatile u_char anoni[0x2]; volatile u_char cl_brbsts; /* 0x4e */ volatile u_char cl_arbsts; /* 0x4f */ #define cl_atbadr atbadr.atbadr #define cl_atbadru atbadr.hl.atbadru #define cl_atbadrl atbadr.hl.atbadrl union { struct { volatile u_short atbadru; /* 0x50 */ volatile u_short atbadrl; /* 0x52 */ } hl; volatile u_long atbadr; /* 0x50 */ } atbadr; #define cl_btbadr btbadr.btbadr #define cl_btbadru btbadr.hl.btbadru #define cl_btbadrl btbadr.hl.btbadrl union { struct { volatile u_short btbadru; /* 0x54 */ volatile u_short btbadrl; /* 0x56 */ } hl; volatile u_long btbadr; /* 0x54 */ } btbadr; volatile u_short cl_btbcnt; /* 0x58 */ volatile u_short cl_atbcnt; /* 0x5a */ volatile u_char anono[0x2]; volatile u_char cl_btbsts; /* 0x5e */ volatile u_char cl_atbsts; /* 0x5f */ volatile u_char anonp[0x20]; volatile u_char cl_tftc; /* 0x80 */ volatile u_char cl_gfrcr; /* 0x81 */ volatile u_char anonq[0x2]; volatile u_char cl_reoir; /* 0x84 */ volatile u_char cl_teoir; /* 0x85 */ volatile u_char cl_meoir; /* 0x86 */ volatile u_char anonr[0x1]; #define cl_risr risr.risr_risr #define cl_risrl risr.hl.risr_risrl #define cl_risrh risr.hl.risr_risrh union { volatile u_short risr_risr; /* 0x88 */ struct { volatile u_char risr_risrh; /* 0x88 */ volatile u_char risr_risrl; /* 0x89 */ } hl; } risr; volatile u_char cl_tisr; /* 0x8a */ volatile u_char cl_misr; /* 0x8b */ volatile u_char anons[0x2]; volatile u_char cl_bercnt; /* 0x8e */ volatile u_char anont[0x31]; volatile u_char cl_tcor; /* 0xc0 */ volatile u_char anonu[0x2]; volatile u_char cl_tbpr; /* 0xc3 */ volatile u_char anonv[0x4]; volatile u_char cl_rcor; /* 0xc8 */ volatile u_char anonw[0x2]; volatile u_char cl_rbpr; /* 0xcb */ volatile u_char anonx[0xa]; volatile u_char cl_cpsr; /* 0xd6 */ volatile u_char anony[0x3]; volatile u_char cl_tpr; /* 0xda */ volatile u_char anonz[0x3]; volatile u_char cl_msvr_rts; /* 0xde */ volatile u_char cl_msvr_dtr; /* 0xdf */ volatile u_char cl_tpilr; /* 0xe0 */ volatile u_char cl_rpilr; /* 0xe1 */ volatile u_char cl_stk; /* 0xe2 */ volatile u_char cl_mpilr; /* 0xe3 */ volatile u_char anonA[0x8]; volatile u_char cl_tir; /* 0xec */ volatile u_char cl_rir; /* 0xed */ volatile u_char cl_car; /* 0xee */ volatile u_char cl_mir; /* 0xef */ volatile u_char anonB[0x6]; volatile u_char cl_dmr; /* 0xf6 */ volatile u_char anonC[0x1]; #define cl_rdr cl_tdr volatile u_char cl_tdr; /* 0xf8 */ volatile u_char anonD[7]; }; #define TIR_TEN 0x80 /* irq enable */ #define TIR_TACT 0x40 /* irq active */ #define TIR_TEOI 0x20 #define TIR_TVCT_M 0x0c /* vector (mask) */ #define TIR_TCN_M 0x03 /* channel number (mask) */ #define TEOIR_TERMBUF 0x80 #define TEOIR_EOF 0x40 #define TEOIR_SETTM2 0x20 #define TEOIR_SETTM1 0x10 #define TEOIR_NOTRANSF 0x08 #define REOIR_TERMBUFF 0x80 #define REOIR_DISCEXC 0x40 #define REOIR_SETTM2 0x20 #define REOIR_SETTM1 0x10 #define REOIR_NOTRANSF 0x08 #define REOIR_GAP_M 0x07 #define RISRH_BERR 0x80 #define RISRH_EOF 0x40 #define RISRH_EOB 0x20 #define RISRH_BA_BB 0x08 #define RISRL_TIMEOUT 0x80 #define RISRL_SCDET_M 0x70 #define RISRL_OE 0x08 #define RISRL_PE 0x04 #define RISRL_FE 0x02 #define RISRL_BREAK 0x01 #define RIR_REN 0x80 #define RIR_RACT 0x40 #define RIR_REOI 0x20 #define RIR_RCVT_M 0x0c #define RIR_RCN_M 0x03 #define IER_MDM 0x80 #define IER_RET 0x20 #define IER_RXD 0x08 #define IER_TIMER 0x04 #define IER_TXMPTY 0x02 #define IER_TXD 0x01 #define MIR_MER 0x80 #define MIR_MACT 0x40 #define MIR_MEO 0x20 #define MIR_MVCT_M 0x0c #define MIR_MCM_M 0x03 #define MISR_DSRCHG 0x80 #define MISR_CDCHG 0x40 #define MISR_CTSCHG 0x20 #define MISR_TIMER2 0x02 #define MISR_TIMER1 0x01 #define TISR_BERR 0x80 #define TISR_EOF 0x40 #define TISR_EOB 0x20 #define TISR_UE 0x10 #define TISR_BABB 0x08 #define TISR_TXEMPTY 0x02 #define TISR_TXDAT 0x01