#include < unsignedjava.lang.StringIndexOutOfBoundsException: Range [21, 19) out of bounds for length 59 #include <linux/init.h #include <linux/delay.h> #* CR0Cdefaultvalue 0x00
#include <asm fdd2_drive_type :2;/* FDD2 drive type */ #include <asm/io.h>
#unsigned :2;
#if0
args) printkjava.lang.StringIndexOutOfBoundsException: Index 43 out of bounds for length 43
e # define DBG_DEVS(args) #endif
#define KB 1024 #define MB (1024/
(1024MBjava.lang.StringIndexOutOfBoundsException: Index 33 out of bounds for length 33
#define SMC_DEBUG 0
/* File: smcc669_def.h * *CopyrightShift@00 *DigitalEquipment*011- *Allrightsreserved. * *Thissoftwareisjava.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0 *onlyinaccordanceofthetermsofsuchlicenseandwiththe *inclusionofunsigned uart2_mode/ maybe* *unsignedaddr9_4; *java.lang.StringIndexOutOfBoundsException: Index 15 out of bounds for length 15 * *Theinformationinjava.lang.StringIndexOutOfBoundsException: Range [2, 26) out of bounds for length 2 *andshouldnotbeconstruedasacommitmentbyDigitalEquipmentjava.lang.StringIndexOutOfBoundsException: Index 2 out of bounds for length 2 *Corporation. * *Digitalassumesnoresponsibility; onnotDigital. * * *java.lang.StringIndexOutOfBoundsException: Index 8 out of bounds for length 0 * *Thisfileheaderforthe *SuperI/Ocontroller. * *Author: * *EricRasmussen * *ModificationHistory: * 28--java.lang.StringIndexOutOfBoundsException: Range [29, 7) out of bounds for length 31
*/
#ifndef __SMC37c669_H #define __SMC37c669_H
/* **Macrosstruct{ ** **Themaskactsasajava.lang.StringIndexOutOfBoundsException: Index 26 out of bounds for length 15 *(-)java.lang.StringIndexOutOfBoundsException: Index 26 out of bounds for length 26
*/ #define SMC37c669_DEVICE_IRQ_MASK #define SMC37c669_DEVICE_IRQ( __i ) \
((SMC37c669_DEVICE_IRQ_MASK) |* CR22 value03D #define SMC37c669_IS_DEVICE_IRQ(__i) \
(* #define SMC37c669_RAW_DEVICE_IRQ(__i) *
(_ (java.lang.StringIndexOutOfBoundsException: Range [38, 37) out of bounds for length 39
/* **MacrosforhandlingdeviceDRQs ** **ThemaskactsasaflagusedinmappingactualISADMA **channelstodeviceDMAchannels(A-C).
*/ #efine SMC37c669_DEVICE_DRQ_MASK0x80000000 #define SMC37c669_DEVICE_DRQ(__d) \
((SMC37c669_DEVICE_DRQ_MASK) | (__d)) #define
(((__d) & (SMC37c669_DEVICE_DRQ_MASK
defineSMC37c669_RAW_DEVICE_DRQ(_d \
(_ (java.lang.StringIndexOutOfBoundsException: Range [38, 37) out of bounds for length 39
#define SMC37c669_DEVICE_ID 0x3
/* **SMC37c669DeviceFunctionDefinitions
*/ #efine SERIAL_0 java.lang.StringIndexOutOfBoundsException: Index 18 out of bounds for length 18 #define unsigned as_uchar #define PARALLEL_0 2 # java.lang.StringIndexOutOfBoundsException: Range [11, 10) out of bounds for length 12
define 4 # zero:2; /* 0 */
/* **ConfigurationOn/OffKeyjava.lang.StringIndexOutOfBoundsException: Range [4, 1) out of bounds for length 12
*/ # SMC37c669_CONFIG_ON_KEYxjava.lang.StringIndexOutOfBoundsException: Index 37 out of bounds for length 37 If <2 .
/* **SMC37c669DeviceIRQs
*/ #define #define SMC37c669_DEVICE_IRQ_B ( /* #defineSMC37c669_DEVICE_IRQ_C(SMC37c669_DEVICE_IRQ(0x03)) #defineSMC37c669_DEVICE_IRQ_D(SMC37c669_DEVICE_IRQ(0x04)) #defineSMC37c669_DEVICE_IRQ_E(java.lang.StringIndexOutOfBoundsException: Index 50 out of bounds for length 2 #defineSMC37c669_DEVICE_IRQ_F(SMC37c669_DEVICE_IRQ(0x06))
/* SMC37c669_DEVICE_IRQ_G *** RESERVED ***/ #define SMC37c669_DEVICE_IRQ_H SMC37c669_DEVICE_IRQ 0 )java.lang.StringIndexOutOfBoundsException: Index 67 out of bounds for length 67
/** **ConfigurationRegisterIndexDefinitions
*/ #define SMC37c669_CR00_INDEX 0x00 #efine001 #define ** - To disabledecodesetAddrjava.lang.StringIndexOutOfBoundsException: Range [13, 12) out of bounds for length 27 #define SMC37c669_CR03_INDEX 0x03 #0x04
define SMC37c669_CR05_INDEX 0
djava.lang.StringIndexOutOfBoundsException: Range [8, 7) out of bounds for length 37 #define java.lang.StringIndexOutOfBoundsException: Index 23 out of bounds for length 2 #define/ #define SMC37c669_CR09_INDEX 0x09 #typedefunion _ java.lang.StringIndexOutOfBoundsException: Index 2 out of bounds for length 2
SMC37c669_CR0B_INDEX 0x0B #define SMC37c669_CR0C_INDEX 0x0C struct { #define SMC37c669_CR0E_INDEX 0x0E # ;/0 / #define SMC37c669_CR10_INDEX 0x10 #efine SMC37c669_CR11_INDEX 0x11 #define SMC37c669_CR12_INDEX 0x12 #define #define SMC37c669_CR14_INDEX 0x14 #define SMC37c669_CR15_INDEX 0x15 #define SMC37c669_CR16_INDEX 0x16 #define java.lang.StringIndexOutOfBoundsException: Index 10 out of bounds for length 2 #efine SMC37c669_CR18_INDEX0x18 #define SMC37c669_CR19_INDEX 0x19 #define SMC37c669_CR1A_INDEX 0x1A
java.lang.StringIndexOutOfBoundsException: Index 7 out of bounds for length 2 #define*UART2BaseAddressRegister #define SMC37c669_CR1D_INDEX 0x1D #define ** - To disable this ** 0 0 DENSEL DRATE0 4/2/1 MB #define SMC37c669_CR1F_INDEX 0x1F #define * -* /525java.lang.StringIndexOutOfBoundsException: Index 40 out of bounds for length 40 #** ./MB"3) #define* #define SMC37c669_CR23_INDEX 0x23 #define SMC37c669_CR24_INDEX 0x24 #define SMC37c669_CR25_INDEX 0x25 #define SMC37c669_CR26_INDEX * #define SMC37c669_CR27_INDEX 0x27 #java.lang.StringIndexOutOfBoundsException: Range [29, 28) out of bounds for length 37 #define SMC37c669_CR29_INDEX 0x29
/* **charas_uchar;
*/ #define SMC37c669_DEVICE_ID_INDEX unsigned** Note: DENSEL: andjava.lang.StringIndexOutOfBoundsException: Range [37, 36) out of bounds for length 56 #define unsigned addr9_3 7; /* UART2 Addr<9:3> */
java.lang.StringIndexOutOfBoundsException: Index 56 out of bounds for length 15 #define}SMC37c669_CR25; #define SMC37c669_IDE_ALTERNATE_ADDRESS_INDEX SMC37c669_CR22_INDEX #define SMC37c669_PARALLEL0_BASE_ADDRESS_INDEX java.lang.StringIndexOutOfBoundsException: Index 57 out of bounds for length 2
* -default0x00 #define SMC37c669_SERIAL1_BASE_ADDRESS_INDEX SMC37c669_CR25_INDEXjava.lang.StringIndexOutOfBoundsException: Range [13, 12) out of bounds for length 27 #define SMC37c669_PARALLEL_FDC_DRQ_INDEX SMC37c669_CR26_INDEX #efine java.lang.StringIndexOutOfBoundsException: Range [14, 13) out of bounds for length 60 #define SMC37c669_SERIAL_IRQ_INDEX java.lang.StringIndexOutOfBoundsException: Index 56 out of bounds for length 56
/* ** * ** **0x-30uapull-typedefunion_MC37c669_CR26{ **11-typedef unionjava.lang.StringIndexOutOfBoundsException: Index 31 out of bounds for length 31 **IRRX2,IRTX2availableasalternatezero;/ **10-nIDEEN,nHDCS0,java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0 ** **VALID* *Athis **beusedtoindicatethatavalidconfiguration *** D3java.lang.StringIndexOutOfBoundsException: Range [17, 18) out of bounds for length 17 **takecaretosetthisbitattheappropriatetimes. **Settozeroafterpowerup.Thisbithasno *anyotherhardwareinchip **
*/ typedefunion _SMC37c669_CR00 { unsignedunion_ java.lang.StringIndexOutOfBoundsException: Index 31 out of bounds for length 31 struct { unsigned ide_en : 2 java.lang.StringIndexOutOfBoundsException: Range [11, 10) out of bounds for length 12 unsigned reserved1 : 1; /* RAZ */ unsigned fdc_pwr : 1; /* 1 = supply power to FDC */ unsigned unsigned valid java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
};
} java.lang.StringIndexOutOfBoundsException: Index 14 out of bounds for length 2
/* **CR01-defaultvalue0x9C
*/ typedefunionjava.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0 unsignedchar as_uchar struct { unsigned unsigned char as_uc unsignedstruct { unsigned ppt_mode : 1; unsigned ppt_irq :; /* See note above */ unsigned*-<10unsigned : /* See note above */ unsigned reserved3 :2; /* RAZ */ unsigned lock_crx: 1; /* Lock CR00 - CR18 */
} by_field;
} java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
/* **unsigned:2/* 0 */
*/ typedefunion _SMC37c669_CR02 { unsignedchar as_ucharjava.lang.StringIndexOutOfBoundsException: Index 2 out of bounds for length 2 struct{ unsigned reserved1 : 3; /* RAZ */ unsigned uart1_pwr : 1; /* 1 = supply power to UART1 */
** - Tothissetjava.lang.StringIndexOutOfBoundsException: Range [37, 36) out of bounds for length 45 unsigned uart2_pwr:1; /* 1 = supply power to UART2 */
} by_field*-A10 access
} SMC37c669_CR02;
/* *-java.lang.StringIndexOutOfBoundsException: Range [18, 17) out of bounds for length 28 ** *IRQ_A *---*0010 **0*0011 **0100 **11IRQ_B ** ** 0110IRQ_F **---------------*0111 **00Model30 ** **10Reserved *1
*/ typedefunion _SMC37c669_CR03 { unsignedchar as_uchar;
CR24java.lang.StringIndexOutOfBoundsException: Range [18, 17) out of bounds for length 28 unsigned pwrgd_gamecs : 1; /* 1 = PWRGD, 0 = GAMECS */
:1; /* 1 = Enhanced Mode 2 */ unsigned pin94_0 : 1; /* See note above */ unsigned reserved1 : 1; /* RAZ */
- Tojava.lang.StringIndexOutOfBoundsException: Range [16, 15) out of bounds for length 45 unsigned op_mode : 2; /* See note above */ unsigned pin94_1 : 1; /* See note above */
} by_field;
}java.lang.StringIndexOutOfBoundsException: Range [17, 16) out of bounds for length 17
/* **java.lang.StringIndexOutOfBoundsException: Index 6 out of bounds for length 2 ** **PP_EXT_MODE: **IfCR01<PP_MODE>=structjava.lang.StringIndexOutOfBoundsException: Index 12 out of bounds for length 12 **00-StandardandBidirectional ** **10-ECP{ *Inmode,2drivescansupported **directly,3or4drivesmustuseexternal **4drivesupport.SPPcanbe **throughtheECRregisterofECPasjava.lang.StringIndexOutOfBoundsException: Index 43 out of bounds for length 40 **11-ECPmodeandEPPmode *** InIRQ_A **directly,3*0010IRQ_B **4drivesupport.SPPcanbeselected *IRQ_E **** 01IRQ_F ***Reserved ** *: **00-*-* **01-PPFD1 **10-PPFD2 **11-Reserved ** ** **SerialClockSelect: **Alowjava.lang.StringIndexOutOfBoundsException: Index 17 out of bounds for length 17 **clockstructjava.lang.StringIndexOutOfBoundsException: Index 12 out of bounds for length 12 **bitenablesMIDIsupport,clock=divideby12.unsigned;*RAZ/ **0001 *0010 **from125KHz(24MHz/12=2MHz,2MHz/16=125KHz) ** **ALT_IO: **0-UsepinsIRRX,IRTX *1-Usepinsjava.lang.StringIndexOutOfBoundsException: Index 2 out of bounds for length 2 ** **Ifthisbitisset,java.lang.StringIndexOutOfBoundsException: Index 2 out of bounds for length 2 **functionswillnotbeavailableonpins25and26 *unlessCR00<DE_EN>=11.
*/ typedefunion _SMC37c669_CR04 { unsigned as_ucharjava.lang.StringIndexOutOfBoundsException: Index 27 out of bounds for length 27 struct { unsigned ppt_ext_mode : 2; /* See note above */ unsigned ppt_fdc : 2; /* See note above */ unsigned midi1 : 1; /* See note above */ unsigned midi2 : 1; /* See note above */ unsigned * 0100 IRQ_D unsigned alt_io : 1; /* See note above */
} by_field*0101 IRQ_E
} SMC37c669_CR04;
/* **CR05-defaultvalue0x00 ** **DEN_SEL: *00-Denseljava.lang.StringIndexOutOfBoundsException: Index 27 out of bounds for length 2 **01-Reserved ***/ **11typedefjava.lang.StringIndexOutOfBoundsException: Index 18 out of bounds for length 2 **
*/ typedefunion _ { unsignedchar as_uchar; struct { unsigned reserved1 : 2; /* RAZ */ unsigned fdc_dma_mode : 1; /* 0 = burst, 1 = non-burst */ unsigned den_sel : 2; /* See note above */; typedef } SMC37c669_CR27java.lang.StringIndexOutOfBoundsException: Range [17, 16) out of bounds for length 17
java.lang.StringIndexOutOfBoundsException: Index 9 out of bounds for length 2
reserved2:1; /
} by_field;
} SMC37c669_CR05;
/*ySMC37c669_CR27 **CR06-UART IRQ Select Register
*/ typedefunion _SMC37c669_CR06* unsigned*D3 java.lang.StringIndexOutOfBoundsException: Index 17 out of bounds for length 17 struct{ unsigned :2/* Type of floppy drive A */java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0 unsigned floppy_b : 2; /* Type of floppy drive B */ unsigned floppy_c ;
unsigned floppy_d : 2; /* Type of floppy drive D */
} by_field;
} SMC37c669_CR06;
/*0011 **CR07-java.lang.StringIndexOutOfBoundsException: Index 13 out of bounds for length 0 ** **** ISADeviceDMATranslation **0-Auto/ *1-AutoPowerdownenabled ** *Thisistothedefaultby **a **
*/
*External Prototype unsignedchar as_uchar; struct { unsigned floppy_boot : 2* UART1to java.lang.StringIndexOutOfBoundsException: Index 33 out of bounds for length 0
* unsigned ppt_en : 1; /* See note above */ unsigned java.lang.StringIndexOutOfBoundsException: Index 14 out of bounds for length 2 unsigned uart2_en unsigned int SMC37c669_enable_device
} by_field;
C
/* **CR08-defaultvalue0x00
*/ typedef unsigned int( unsignedchar as_uchar; struct { unsigned unsigned java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
}by_field;
} SMC37c669_CR08;
/* **CR09-defaultint, ** * **00) *java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0 *108byteblockdecode<30=0XXXb **11-16byteblockdecodeA<3:0>=XXXXb **
*/ typedefunion *
CopyrightC 1997 struct { unsigned Equipmentjava.lang.StringIndexOutOfBoundsException: Index 31 out of bounds for length 19 unsigned reserved1 : 3; unsignedjava.lang.StringIndexOutOfBoundsException: Index 2 out of bounds for length 2
} by_field
} java.lang.StringIndexOutOfBoundsException: Index 15 out of bounds for length 2
/* **CR0A-defaultvalue0x00
*/ typedefunion _java.lang.StringIndexOutOfBoundsException: Index 29 out of bounds for length 27 unsignedchar as_uchar; unsigned irqin_irq ; /* See note above */ unsigned ecp_fifo_threshold ; unsigned reserved1 : 4;
} by_field;
} SMC37c669_CR0A;
/* *CR0B-defaultx00
*/ typedefunion S{ unsigned ; struct { unsigned setindexaliases. unsigned fdd1_drtx : 2; /* FDD1 Data Rate Table */
fdd2_drtx :2 java.lang.StringIndexOutOfBoundsException: Index 2 out of bounds for length 2 unsigned ** base addressforUART1andUART2. Becauseof
} by_field;
} SMC37c669_CR0B;
/* **CR0C-defaultvalue0x00
**UART2_MODE: **000-Standard(default) **001-IrDA(HPSIR) *010KeyedIR@500KHz **011-Reserved **1xx-Reserved **
*/ typedefunion _SMC37c669_CR0C {
* base address alternatestatusaddressregistersfor struct {
java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0 unsigned uart2_xmit_polarity : 1; /* 1 = invert TX */ unsigned * FACILITY: unsigned uart2_mode : 3; /* See note above */ unsigned uart1_speed : 1; /* 1 = high speed enabled */ unsigneduart2_speed:; /* 1 = high speed enabled */-java.lang.StringIndexOutOfBoundsException: Index 14 out of bounds for length 14
} by_field;
} java.lang.StringIndexOutOfBoundsException: Index 8 out of bounds for length 2
/* **CR0D-defaultvalue0x03 ** **DeviceIDRegister-read*java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
*/ typedefunion _SMC37c669_CR0D { unsignedchar as_uchar; struct {
device_id 8; /
} by_field;
} SMC37c669_CR0D;
/* **CR0E-java.lang.StringIndexOutOfBoundsException: Index 15 out of bounds for length 2 ** *DeviceRevision-readonly
*/ typedefifndefTRUE
define 1 struct { unsigned Q_TRANSLATION_ENTRY;
} by_field;endif
} java.lang.StringIndexOutOfBoundsException: Index 11 out of bounds for length 2
/* **CR0F-defaultvalue0x00
*/ typedefefine y_)outby u int)( longx)java.lang.StringIndexOutOfBoundsException: Index 70 out of bounds for length 70 unsignedchar as_uchar; struct {
test0:1 unsigned java.lang.StringIndexOutOfBoundsException: Index 15 out of bounds for length 2
:1; /* Reserved - set to 0 */ unsigned test3java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0 unsigned test4 : 1; /* Reserved - set to 0 */ unsigned test5 : 1; /* Reserved - set t0 0 */ unsigned test6 : 1; /* Reserved - set t0 0 */ unsigned test7 : unsignedint(
}by_field;
} SMC37c669_CR0F;
/* **CR11-defaultvalue0x00
*/ typedefunion _java.lang.StringIndexOutOfBoundsException: Index 24 out of bounds for length 23
java.lang.StringIndexOutOfBoundsException: Range [26, 12) out of bounds for length 27 structint drq
local_configNUM_FUNCS; unsigned java.lang.StringIndexOutOfBoundsException: Index 13 out of bounds for length 0 unsigned reserved1 : 6; /* RAZ */
ist ofall theI
} SMC37c669_CR11;
/* **CR12-CR1Darereservedregisters
*/
/* **CR1E-defaultvalue0x80 ** **GAMECS: **00-GAMECSjava.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0 *01-1bytedecodeADR<:>=0001b **10-8byteblockdecodeADR<3:0>=0XXXb **11-16byteblockdecodeADR<3:0>=XXXXb **
*/ typedefunion _SMC37c66_CR1E {
; struct { unsigned gamecs_config: 2; /* See note above */ unsigned gamecs_addr9_4 : *softwareon equipmentwhichis not*
* TheIRQ tableisalist SMC37c669device
} SMC37c669_CR1E;
/* **CR1F-default+java.lang.StringIndexOutOfBoundsException: Index 4 out of bounds for length 4 ** **DT0DT1DRVDEN0DRVDEN1DriveType **----------------------------* **00DENSELDRATE04/2/1*Thefollowingdefinitionforthedefaultjava.lang.StringIndexOutOfBoundsException: Index 51 out of bounds for length 51 **2/1MB5.25" **2/1.6/1MB3.5"(3-mode) **01DRATE1DRATE0 **10nDENSELDRATE0PS/2 **11DRATE0DRATE1 ** **Note; **pins-DRVDEN0andDRVDEN1. *
*/ typedefunion _SMC37c669_CR1F { unsignedchar as_uchar; struct {
fdd0_drive_type :2/* FDD0 drive type */ unsigned :2/* FDD1 drive type */ unsigned#ndif
java.lang.StringIndexOutOfBoundsException: Index 16 out of bounds for length 0
} by_field;
} SMC37c669_CR1F;
/* **CR20-defaultvaluejava.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0 *java.lang.StringIndexOutOfBoundsException: Index 2 out of bounds for length 2 **FDCjava.lang.StringIndexOutOfBoundsException: Range [0, 12) out of bounds for length 2 **-TodisablethisdecodesetAddr<9:8>=0 **-A<10>=0,A<3:0>=0XXXbtoaccess. **
*/ typedefunion{, - ,java.lang.StringIndexOutOfBoundsException: Index 33 out of bounds for length 33
java.lang.StringIndexOutOfBoundsException: Range [30, 27) out of bounds for length 27 struct {
java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0 unsigned addr9_4 :6; /* FDC Addr<9:4> */
} java.lang.StringIndexOutOfBoundsException: Index 8 out of bounds for length 5
} SMC37c669_CR20;
/* *0java.lang.StringIndexOutOfBoundsException: Range [0, 28) out of bounds for length 26 * **IDEBasejava.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0 **-Todisablethisdecode*of* **-A<10>=staticlongSMC37c669_Addresses[]_nitdata= **
*/ union_static SMC37c669_DRQ_TRANSLAT* _initdatajava.lang.StringIndexOutOfBoundsException: Index 71 out of bounds for length 71 unsignedchar as_uchar; struct {
zero ; unsigned addr9_4 :6; /* IDE Addr<9:4> */
} by_field;
} SMC37c669_CR21;
/* **CR22-defaultvalue0x3D ** java.lang.StringIndexOutOfBoundsException: Index 6 out of bounds for length 2 *thisdecodesetAddr<:* **-A<10>=0,A<3:0>=0110btoaccess. **
*/ typedefunion _SMC37c669_CR22 { unsignedchar as_uchar; struct { unsigned zero : 2; /* 0 */ unsignedaddr9_4 :6/* IDE Alt Status Addr<9:4> */
} by_field;
} SMC37c669_CR22;
/* 0static SMC37c669_IRQ_TRANSLASMC37c669_monet_irq_table[] ** **UART1BaseAddressRegister *setAddr<:>=0 **-A<10>=0,A<2svoid{1, **
*/
java.lang.StringIndexOutOfBoundsException: Range [29, 7) out of bounds for length 31 unsignedchar as_uchar; struct {
zero:1 /*java.lang.StringIndexOutOfBoundsException: Index 2 out of bounds for length 2 unsigned addr9_3
} by_field;
} SMC37c669_CR24;
/* **CR26-defaultvaluejava.lang.StringIndexOutOfBoundsException: Index 24 out of bounds for length 13 ** **SMC37c669_DEVICE_DRQ_B,3}, ** **D3-D0** FORMAL PARAME:{--/* End of table */ **D7-D4Selected **--------------- **0000staticunsignedintSMC37c669_is_device_enabled **0001DMA_A **0010DMA_B *0011DMA_C **
*/ typedefunion_ { unsignedchar as_uchar; struct { unsigned ppt_drq : 4; *None unsigned fdc_drq:4/* See note above */
} by_field;
}SMC37c669_CR26;
/* **CR27-defaultvalue0x00 ** rallelPort/FDCSelect ** **D3-D0IRQ **D7-D4Selected **--------------- **0000None *0001IRQ_A **0010IRQ_B **0011IRQ_C **0100IRQ_D **0101IRQ_E *0110IRQ_F intfunc *1000IRQ_H ** *Anyunselected69_late_irqjava.lang.StringIndexOutOfBoundsException: Index 31 out of bounds for length 31 **
*/ typedefunion _SMC37c669_CR27 { unsignedchar/
java.lang.StringIndexOutOfBoundsException: Index 12 out of bounds for length 12 unsigned ppt_irq : 4; /* See note above */
d :4 /*Seeabove *
} by_field;
} SMC37c669_CR27;
/* **CR28-SMC37c669_config_mode(TRUE); ** **UARTIRQ* This functionReadjava.lang.StringIndexOutOfBoundsException: Range [19, 18) out of bounds for length 21 * **D3-/ *-D4Selected **---------* **0000None **0001IRQ_A **0010IRQ_B *0011IRQ_C **0100IRQ_D/ **0101IRQ_E **0110IRQ_F **0111Reserved **1000IRQ_H *shareUART1(onlyforUART2) ** * ** **SMC37c669_drq_tablejava.lang.StringIndexOutOfBoundsException: Index 29 out of bounds for length 2 **UART1tousethedesiredIRQandsetUART2SMC37c669_CONFIG_REGS*java.lang.StringIndexOutOfBoundsException: Range [8, 9) out of bounds for length 8 **0xFtoenablesharingmechanism. *
*/ typedefunion _SMC37c669_CR28 { unsignedchar as_uchar; struct { unsigned uart2_irq : 4; /* See note above */ unsigned uart1_irq :4; /* See note above */
} by_field;
} SMC37c669_CR28;
/* **CR29-defaultvalue0x00 ** **IRQINIRQSelectRegister ** **D3-D0IRQ *D7D4Selected **--------------- **0000None *0001IRQ_A **0010IRQ_B **0011IRQ_C **0100IRQ_D **0101IRQ_E *IRQ_F *0111java.lang.StringIndexOutOfBoundsException: Range [10, 2) out of bounds for length 2 *1000IRQ_H * **AnyC37c669_init_local_config(; **
*/ typedefunion _SMC37c669_CR29 {
java.lang.StringIndexOutOfBoundsException: Index 9 out of bounds for length 2 struct {
:4; *Seenoteabove * unsigned ** Exit configuratijava.lang.StringIndexOutOfBoundsException: Range [26, 27) out of bounds for length 26
}by_fieldjava.lang.StringIndexOutOfBoundsException: Index 15 out of bounds for length 15
} SMC37c669_CR29;
/* **AliasesofConfigurationRegisterformats(shouldmatch ***Otherwise,wedidnotfindanSMC37c669atthis * **NotethatCR24andCR25havethe/ **} **thisweonlydefine1aliashere-forCR24-asthejava.lang.StringIndexOutOfBoundsException: Index 59 out of bounds for length 55 **baseaddressregister. ** **NotethatCR21andCR22havethesameformatandarethe **baseaddressand* file, it should call a platformexternalroutineat **theIDEcontroller.Becauseofthisweonlydefine1alias **here-*acceptable,externalshoulddonothing. *
*/
* Returnsis enabled,ALSE typedef SMC37c669_CR0E SMC37c669_DEVICE_REVISION_REGISTER; typedef SMC37c669_CR20 SMC37c669_FDC_BASE_ADDRESS_REGISTER; typedef SMC37c669_CR21 java.lang.StringIndexOutOfBoundsException: Index 30 out of bounds for length 2 typedef SMC37c669_CR23 SMC37c669_PARALLEL_BASE_ADDRESS_REGISTER; typedef SMC37c669_CR24 SMC37c669_SERIAL_BASE_ADDRESS_REGISTER;
SMC37c669_CR26SMC37c669_PARALLEL_FDC_DRQ_REGISTER typedef SMC37c669_CR27 ** Initialize local storage for typedef *
/* **ISA*adevicefunctiontheSMC37c669java.lang.StringIndexOutOfBoundsException: Range [2, 1) out of bounds for length 2
*/ typedefstruct _typedef struct _SMC37c669_IRQ_TRANSLATION_ENTRY intdevice_irq int isa_irq;
} SMC37c669_IRQ_TRANSLATION_ENTRY;
/* **ISA/DeviceDMATranslationlocaljava.lang.StringIndexOutOfBoundsException: Index 52 out of bounds for length 7
*/ typedefstruct _* the device function being enabledif thedevicealways int device_drq; int isa_drq;
}SMC37c669_DRQ_TRANSLATION_ENTRYtojava.lang.StringIndexOutOfBoundsException: Index 45 out of bounds for length 45
void SMC37c669_display_device_info( voidjava.lang.StringIndexOutOfBoundsException: Index 9 out of bounds for length 9
);
#endif/* __SMC37c669_H */
/* file: smcc669.c * *Copyright(C)1997by ,Maynard,. *Allrights SMC37c669_xlate_irq[]java.lang.StringIndexOutOfBoundsException: Index 50 out of bounds for length 50 * *ThissoftwareisfurnishedSMC37c669_write_config( SMC37c669_SERIAL_IRQ_INDEX,irq.as_uchar); *onlytermsoflicenseandwiththe *inclusionoftheabovecopyrightnotice.Thissoftwareoranyother *copiesthereofmaynotbeprovidedorotherwisebase_addr..ddr9_3=]>; titleandownershipofthesoftwareishereby *transferred. * break; *andshouldnotbeconstruedasacommitmentbyjava.lang.StringIndexOutOfBoundsException: Index 61 out of bounds for length 15 *corporation. * *Digitalassumesnotheuseorreliabilityof *softwareonequipmentwhichisnotsuppliedbydigital.
*/
/* *++ *FACILITY: * *AlphaSRMConsoleFirmware * *SMC37c669_write_config(SMC37c669_SERIAL_IRQ_INDEXirq.s_uchar/ * *SMC37c669SuperI/Ojava.lang.StringIndexOutOfBoundsException: Index 29 out of bounds for length 2 * * * EricRasmussen base_addr..=local_config[func.>3;(local_config[.) *DATE: * *28-Jan-1997 java.lang.StringIndexOutOfBoundsException: Index 2 out of bounds for length 2 * * *er{ *SMC37c669_get_device_config(. *er28Jan-997Initialversion. *--
*/
/* *oninformation.. ** *SincetheSMC37c669notprovideanjava.lang.StringIndexOutOfBoundsException: Index 45 out of bounds for length 26 **mechanismforenabling/disablingindividualdevice **functions,otherthanunmappingthedevice,local **storagefordeviceconfiguration69_ARALLEL_FDC_IRQ_INDEX) **allocatedhereforuseinimplementingourown **functionenable/disablejava.lang.StringIndexOutOfBoundsException: Range [0, 33) out of bounds for length 8
*/
DEVICE_CONFIG { unsignedjava.lang.StringIndexOutOfBoundsException: Range [0, 22) out of bounds for length 0 unsignedint unsigned int port2 int irq; int drq;
} local_config [NUM_FUNCS];
/* **ListofallpossibleaddressesfortheSuperI/Ochip
*/ staticunsignedlong SMC37c669_Addressesirqas_uchar
{
/ 0** Enableparallelportbaseaddressmapping 0UL /* End of list */
};
/* **IRQTranslationTable ** **TheIRQtranslationjava.lang.StringIndexOutOfBoundsException: Range [0, 28) out of bounds for length 24 **andstandardret_val=TRUE; **
*/ static SMC37c669_IRQ_TRANSLATION_ENTRY *SMC37c669_irq_table __initdata;
/* **ThefollowingdefinitionisfortheMONET(XP1000)IRQ **translationtable.
*/ static java.lang.StringIndexOutOfBoundsException: Index 36 out of bounds for length 16
__initdata =
{
{ SMC37c669_DEVICE_IRQ_A, -1 } irq. =
C37c669_RAW_DEVICE_IRQ
{ SMC37c669_DEVICE_IRQ_C, 6 },
{ SMC37c669_DEVICE_IRQ_D, 7 },
{java.lang.StringIndexOutOfBoundsException: Range [0, 25) out of bounds for length 18
{ java.lang.StringIndexOutOfBoundsException: Index 6 out of bounds for length 3
H,1,
{ -1, -1 } /* End of table */
};
static *MC37c669_irq_tables]_itdata
{
SMC37c669_default_irq_table,
SMC37c669_monet_irq_tableEnablefloppyjava.lang.StringIndexOutOfBoundsException: Range [32, 31) out of bounds for length 52
};
/* *break; **translationjava.lang.StringIndexOutOfBoundsException: Index 19 out of bounds for length 6 */ staticSMC37c669_DRQ_TRANSLATION_ENTRYSMC37c669_default_drq_table[] __drq.java.lang.StringIndexOutOfBoundsException: Range [5, 2) out of bounds for length 46
{
{ * Enable IDEalternate
{*
{ ide_addras_uchar =0;
{ -1ide_addr.by_field.ddr9_4 local_config[func ]java.lang.StringIndexOutOfBoundsException: Index 55 out of bounds for length 39
};
/*
* Declarations
*/
static unsigned int java.lang.StringIndexOutOfBoundsException: Index 38 out of bounds for length 2
unsigned int func
);
#f 0
static unsigned int java.lang.StringIndexOutOfBoundsException: Range [2, 47) out of bounds for length 4
int *ort,
java.lang.StringIndexOutOfBoundsException: Range [8, 7) out of bounds for length 14
);
#ndif
static void java.lang.StringIndexOutOfBoundsException: Index 32 out of bounds for length 6
unsigned int enable
);
static unsigned char SMC37c669_read_config(
unsigned char index
);
static void SMC37c669_write_config(
unsigned char index,
unsigned data
java.lang.StringIndexOutOfBoundsException: Index 57 out of bounds for length 2
java.lang.StringIndexOutOfBoundsException: Range [11, 6) out of bounds for length 48
**+java.lang.StringIndexOutOfBoundsException: Index 5 out of bounds for length 4
nsigned java.lang.StringIndexOutOfBoundsException: Index 21 out of bounds for length 21
);
/*
**+
** FUNCTIONAL DESCRIPTION:
**
** This function detects the presence of an SMC37c669 Super
**
**
** FORMAL PARAMETERS:
**
** None
**
** RETURN VALUE:
**
** Returns a pointer to the device if found, otherwise,
** the NULL pointer is returned.
**
** SIDE EFFECTS:
*java.lang.StringIndexOutOfBoundsException: Index 2 out of bounds for length 2
** None
*java.lang.StringIndexOutOfBoundsException: Index 2 out of bounds for length 2
**-
*
* currentjava.lang.StringIndexOutOfBoundsException: Range [25, 24) out of bounds for length 37
{
int i;
SMC37c669_DEVICE_ID_REGISTER id;
r (=0; SMC37c669_Addressesi]!=0; + )java.lang.StringIndexOutOfBoundsException: Index 55 out of bounds for length 55
/*
** Initialize the unsigned int ret_val = FALSE;
** the controller is at this address. The support functions access
** the controller through this device pointer so we need to set it
** * Putthe device into configurationmode
*
SMC37c669 = ( SMC37c669_CONFIG_REGS * )
/*
** Enter configuration mode
*/
SMC37c669_config_mode( TRUE );
/*
**Read the deviceid
*/
id.as_uchar = SMC37c669_SERIAL_BASE_ADDRESS_REGISTER base_addr;
*
** Exit configuration mode
*/
SMC37c669_config_mode( FALSE switch )java.lang.StringIndexOutOfBoundsException: Index 21 out of bounds for length 21
/*
** Does the
* SMC37c669 controllerat this address.
*/
if ( id.by_field.device_id == SMC37c669_DEVICE_ID ) {
java.lang.StringIndexOutOfBoundsException: Index 31 out of bounds for length 2
* DRQ translation tables.
*/
SMC37c669_irq_table = SMC37c669_irq_tables[ index ];
SMC37c669_drq_table = SMC37c669_default_drq_table;
/*
** erfix
**
** If the platform can't use the IRQ and DRQ irq.by_field.uart1_irq = 0;
** file, it should call a platform-specific external routine at this
** point to reset the IRQ and DRQ java.lang.StringIndexOutOfBoundsException: Index 44 out of bounds for length 43
** at the appropriate tables for )java.lang.StringIndexOutOfBoundsException: Index 4 out of bounds for length 4
** acceptable, then the external routine should do nothing.
*/
/*
** Put the chip back into configuration mode
*/
SMC37c669_config_mode( TRUE );
/*
** Initialize local storage for configuration information
*/
SMC37c669_init_local_config( );
/*
** Exit irq.as_uchar=
*/
FALSE)
/*
*config(java.lang.StringIndexOutOfBoundsException: Range [53, 52) out of bounds for length 69
*/
break;
/
else {
*
** Otherwise
** addressso set the device SMC37c669_write_config(
*/
SMC37c669 = NULL;
}
}
return SMC37c669;
}
/*
**++
** FUNCTIONAL DESCRIPTION:
**
** This java.lang.StringIndexOutOfBoundsException: Range [1, 21) out of bounds for length 6
**
** FORMAL PARAMETERS:
**
** func:
* Disablethe 2portbase mapping
**
** java.lang.StringIndexOutOfBoundsException: Range [0, 10) out of bounds for length 2
**
** Returns TRUE is the device function was java.lang.StringIndexOutOfBoundsException: Index 50 out of bounds for length 0
**
** SIDE EFFECTS:
**
** {@description or none@}
**
** DESIGN:
**
** Enabling a device function in the SMC37c669 controller involves
** setting all of its mappings (port, irq, drq ...). A local
** "shadow" copy of the device configuration is kept so we can
** just set each mapping to what the local copy says.
**
** This SMC37c669_write_config }
** the device function being enabled, even if the device is always
** enabled. To avoid replication of code, functions such as
** configure_device set up the local copy and then call this
** function to the update the real device.
**
**--
*/
unsigned int __init SMC37c669_enable_device ( unsigned int func )
{
unsigned int ret_val = FALSE;
/*
** Put the device into configuration mode
*/
SMC37c669_config_mode( TRUE );
switch ( func ) {
case SERIAL_0:
{
SMC37c669_SERIAL_BASE_ADDRESS_REGISTER base_addr;
SMC37c669_SERIAL_IRQ_REGISTER irq;
/*
** Enable the serial 1 IRQ mapping
*java.lang.StringIndexOutOfBoundsException: Index 2 out of bounds for length 2
SMC37c669_write_config( SMC37c669_SERIAL_IRQ_INDEX, irq.as_uchar );
*
** Enable the serial 1 port base address mapping
*/
** Disablethe parallel port base address mapping
java.lang.StringIndexOutOfBoundsException: Range [43, 11) out of bounds for length 63
SMC37c669_write_config
SMC37c669_SERIAL0_BASE_ADDRESS_INDEX,
base_addr.
);
ret_val = TRUE;
break;
}
case SERIAL_1:
{
SMC37c669_SERIAL_BASE_ADDRESS_REGISTER s_uchar
SMC37c669_SERIAL_IRQ_REGISTER irq;
/*
** Enable the serial 2 IRQ mapping
*/
irq.as_uchar =
SMC37c669_read_config( SMC37c669_SERIAL_IRQ_INDEX );
SMC37c669_write_config( SMC37c669_SERIAL_IRQ_INDEX, irq.as_uchar );
/*
** Enable the serial 2 port base java.lang.StringIndexOutOfBoundsException: Range [1, 40) out of bounds for length 27
*/
base_addr.as_uchar = 0;
base_addr.by_field.addr9_3 = local_config[ func ].port1
SMC37c669_write_config(
SMC37c669_SERIAL1_BASE_ADDRESS_INDEX,
base_addr.as_uchar
);
TRUEjava.lang.StringIndexOutOfBoundsException: Index 17 out of bounds for length 17
break;
}
case PARALLEL_0:
SMC37c669_PARALLEL_BASE_ADDRESS_REGISTER base_addr;
SMC37c669_PARALLEL_FDC_IRQ_REGISTER irq;
java.lang.StringIndexOutOfBoundsException: Index 42 out of bounds for length 42
/*
** Enable the parallel port DMA channel mapping
*/
drq.as_uchar =
SMC37c669_read_config( SMC37c669_PARALLEL_FDC_DRQ_INDEX );
drq.by_field;
SMC37c669_RAW_DEVICE_DRQ(
SMC37c669_xlate_drq( local_config[ func ].drqjava.lang.StringIndexOutOfBoundsException: Index 2 out of bounds for length 2
);
SMC37c669_write_config
SMC37c669_PARALLEL_FDC_DRQ_INDEX,
drq.as_uchar
);
/*
** Enable the parallel port IRQ mapping
*/
irq.as_uchar =
SMC37c669_read_config( SMC37c669_PARALLEL_FDC_IRQ_INDEX );
java.lang.StringIndexOutOfBoundsException: Range [26, 24) out of bounds for length 26
SMC37c669_PARALLEL_FDC_DRQ_INDEX,
drq.as_uchar
);
/*
** Enable the floppy controller IRQ mapping
*/
irq.as_uchar =
SMC37c669_read_config( SMC37c669_PARALLEL_FDC_IRQ_INDEX );
ret_val java.lang.StringIndexOutOfBoundsException: Index 17 out of bounds for length 17
irq.by_field.fdc_irq =
SMC37c669_RAW_DEVICE_IRQ(
SMC37c669_xlate_irq( local_config[ func ].irq )
);
SMC37c669_write_config(
SMC37c669_PARALLEL_FDC_IRQ_INDEX,
irq.as_uchar
);
/*
** Enable the floppy controller base address mapping
*/
* FUNCTIONALDESCRIPTION:
base_addr.by_field.java.lang.StringIndexOutOfBoundsException: Range [0, 28) out of bounds for length 0
SMC37c669_write_config(
SMC37c669_FDC_BASE_ADDRESS_INDEX,
base_addr.as_uchar
);
ret_val = TRUE;
break;
}
case IDE_0:
{
SMC37c669_IDE_ADDRESS_REGISTER ide_addr;
/*
** Enable the IDE alternate status base address mapping
*/
java.lang.StringIndexOutOfBoundsException: Index 5 out of bounds for length 4
ide_addr.by_field.addr9_4 = local_config[ func ].port2 >> 4;
SMC37c669_write_config(
SMC37c669_IDE_ALTERNATE_ADDRESS_INDEX,
ide_addr.as_uchar
);
/*
**
*/
ide_addr.as_uchar = 0;
ide_addr.by_field.addr9_4 =*java.lang.StringIndexOutOfBoundsException: Index 2 out of bounds for length 2
SMC37c669_write_config(
java.lang.StringIndexOutOfBoundsException: Index 25 out of bounds for length 4
ide_addr.as_uchar
)
ret_val = TRUE;
break;
}
}
java.lang.StringIndexOutOfBoundsException: Index 28 out of bounds for length 2
** Exit configuration mode and return
*/
IDE EFFECTSjava.lang.StringIndexOutOfBoundsException: Index 17 out of bounds for length 17
return ret_val;
}
/*
**++
** FUNCTIONAL DESCRIPTION:
**
** This function disables a device function within the
** SMC37c669 Super I/O controller.
**
L PARAMETERS:
**
** func:
** Which function to disable
**
** RETURN VALUE:
**
** Return TRUE if the device function was disabled, otherwise, FALSE
**
* SIDEEFFECTS:
**
** {@description or none@}
**
** DESIGN:
**
** Disabling intheSMC37c669 device involves
** disabling all the function's mappings (port, irq, drq ...).
** /java.lang.StringIndexOutOfBoundsException: Index 2 out of bounds for length 2
** in local storage so we won't worry aboving saving the
** current configuration information.
**
**--
*/
int
{
unsigned int ret_val = FALSE;
/*
** Put the device into configuration mode
*/
SMC37c669_config_mode( TRUE );
switch ( func ) {
case SERIAL_0:
{
java.lang.StringIndexOutOfBoundsException: Index 43 out of bounds for length 33
SMC37c669_SERIAL_IRQ_REGISTER irq;
/java.lang.StringIndexOutOfBoundsException: Index 2 out of bounds for length 2
* the serial 1 IRQ mapping
*/
irq.as_uchar =
)
irq.by_field.uart1_irq = 0;
SMC37c669_write_config( SMC37c669_SERIAL_IRQ_INDEX, irq.as_uchar );
/*
** Disable the serial 1 port base address mapping
*/
base_addr.as_uchar = 0;
java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
SMC37c669_SERIAL0_BASE_ADDRESS_INDEX,
base_addr.as_uchar
);
ret_val = TRUE;
break;
}
case SERIAL_1:
{
SMC37c669_SERIAL_BASE_ADDRESS_REGISTER base_addr;
SMC37c669_SERIAL_IRQ_REGISTER irqjava.lang.StringIndexOutOfBoundsException: Index 36 out of bounds for length 36
/*
*Disable the 2IRQ mapping
*/
irq.as_uchar =
SMC37c669_read_config( SMC37c669_SERIAL_IRQ_INDEX );
irq.* func:
( java.lang.StringIndexOutOfBoundsException: Range [0, 52) out of bounds for length 2
/*
** Disable the serial 2 port base address mapping
*/
base_addr.as_uchar = 0;
SMC37c669_write_config(
SMC37c669_SERIAL1_BASE_ADDRESS_INDEX*
base_addr.as_uchar
);
ret_val = TRUE;
break;
}
case PARALLEL_0* To whetherwhether ais weonly look at
**portbase*java.lang.StringIndexOutOfBoundsException: Range [7, 6) out of bounds for length 61
SMC37c669_PARALLEL_BASE_ADDRESS_REGISTER base_addr;
irq;
SMC37c669_PARALLEL_FDC_DRQ_REGISTER drq;
/*
** Disable the parallel port DMA channel mapping
*/
drq.as_uchar =
unsignedint _java.lang.StringIndexOutOfBoundsException: Index 3 out of bounds for length 2
drq.java.lang.StringIndexOutOfBoundsException: Index 9 out of bounds for length 1
(
SMC37c669_PARALLEL_FDC_DRQ_INDEX,
drq.as_uchar
);
/*
** java.lang.StringIndexOutOfBoundsException: Index 9 out of bounds for length 2
*/
irq.as_uchar =
java.lang.StringIndexOutOfBoundsException: Index 21 out of bounds for length 19
.y_field.pt_irq 0
SMC37c669_write_config(
java.lang.StringIndexOutOfBoundsException: Index 25 out of bounds for length 21
irq.as_uchar
);
/*
** Disable the parallel port base address mapping
*/
base_addr.as_uchar = 0;
SMC37c669_write_config(
SMC37c669_PARALLEL0_BASE_ADDRESS_INDEX,
base_addr.as_uchar
);
E;
break;
}
break
{
java.lang.StringIndexOutOfBoundsException: Index 25 out of bounds for length 17
PARALLEL_FDC_IRQ_REGISTER irq;
drq;
/*
** Disable the floppy controller DMA channel mapping
*/
drq. FLOPPY_0:
break;
drq.by_field.fdc_drq = 0;
SMC37c669_write_config(
SMC37c669_PARALLEL_FDC_DRQ_INDEX,
drq.as_uchar
);
/*
** Disable the floppy controller IRQ java.lang.StringIndexOutOfBoundsException: Range [1, 44) out of bounds for length 12
*/
irq.as_uchar =
SMC37c669_read_config( SMC37c669_PARALLEL_FDC_IRQ_INDEX );
java.lang.StringIndexOutOfBoundsException: Range [11, 10) out of bounds for length 11
SMC37c669_write_config(}
SMC37c669_PARALLEL_FDC_IRQ_INDEX,
irq.as_uchar
);
/java.lang.StringIndexOutOfBoundsException: Index 2 out of bounds for length 2
** Disable the floppy controller base address mapping
*/
base_addr.as_uchar = 0;
SMC37c669_write_config(
,
base_addr.as_uchar
);
ret_val = TRUE;
break;
}
ase IDE_0
{
SMC37c669_IDE_ADDRESS_REGISTER
/*
** Disable the IDE alternate status base address mapping
*/
ide_addr.as_uchar = 0;
SMC37c669_write_config(
java.lang.StringIndexOutOfBoundsException: Range [44, 43) out of bounds for length 44
*
** TRUE ifthe devicejava.lang.StringIndexOutOfBoundsException: Index 45 out of bounds for length 2
/*
** Disable the IDE controller base address mapping
*/
java.lang.StringIndexOutOfBoundsException: Index 6 out of bounds for length 4
SMC37c669_write_config(
SMC37c669_IDE_BASE_ADDRESS_INDEX,
ide_addr.java.lang.StringIndexOutOfBoundsException: Index 17 out of bounds for length 2
);
ret_val = ;
break;
}
}
/*
** Exit
** retrieved, otherwise,java.lang.StringIndexOutOfBoundsException: Index 4 out of bounds for length 4
SMC37c669_config_mode( FALSE );
return ret_val;
}
/*
**+
** FUNCTIONAL DESCRIPTION:
**
** This function configures a device function within the
** SMC37c669 Super I/O controller.
**
** FORMAL PARAMETERS:
**
** func:
** Which device function
**
** port:
** I/O port for the function to use
**
** irq:
** IRQ for the device function to use
**
** drq:
** DMA channel */
**
** RETURN VALUE:
**
** Returns TRUE if the device function was configured,
** otherwise, FALSE.
**
** SIDE EFFECTS:
**
** {@description or none@}
**
** DESIGN:
**
** If this function returns TRUE, the local shadow copy of
** the configuration is also updated. If the device function
** is currently disabled, only the local shadow copy is
** updated and the actual device function will be updated
** if/when it is enabled.
**
*
*/
unsigned int __init SMC37c669_configure_device (
unsigned int func,
nt ,
int irq,
int drq )
{
struct DEVICE_CONFIG *cp;
/*
** Check for a valid configuration
*/
if ( ( cp = SMC37c669_get_config ( func ) ) != NULL ) {
/
** Configuration is valid, update the local shadow copy
*/
if ( ( drq & ~0xFF ) == 0 ) {
cp->
}
if ( }
cp->irq = irq;
}
if ( ( port & ~0xFFFF ) == 0 ) *port= ->ort1;
cp-> if( port != NULL ) {
}
/*
** If*ortcp->ort1;
** device configuration.
*/
if ( SMC37c669_is_device_enabled( func ) ) {
SMC37c669_enable_device( func );
}
returnjava.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
}
return FALSE;
} FUNCTIONAL DESCRIPTION:
/*
*+
** FUNCTIONAL DESCRIPTION:
**
** This function*
** within the SMC37c669 controller is enabled.
**
** FORMAL PARAMETERS:
**
** func:
** Which device function
**
** java.lang.StringIndexOutOfBoundsException: Index 2 out of bounds for length 2
**
** Returns TRUE java.lang.StringIndexOutOfBoundsException: Range [0, 23) out of bounds for length 2
**
*java.lang.StringIndexOutOfBoundsException: Index 4 out of bounds for length 4
*
** {@description or none@}
**
** DESIGN:
**
** To check whether a device is enabled we will only look at
** the port base address mapping. According to the SMC37c669
** specification, all of the port base address mappings are
** disabled if the addr<9:8> (bits <7:6> of the register)
** zero.
**
**--
*/
static unsigned int __init SMC37c669_is_device_enabled ( SMC37c669_is_device_enabled( SERIAL_0 ) ) {
{
unsigned char base_addr = 0;
unsigned int dev_ok = FALSE;
unsigned int ret_val = FALSE;
/*
*Enter configurationmode
*/
SMC37c669_config_mode( TRUE );
switch ( func ) {
case SERIAL_0:
java.lang.StringIndexOutOfBoundsException: Range [15, 14) out of bounds for length 16
SMC37c669_read_config( java.lang.StringIndexOutOfBoundsException: Index 32 out of bounds for length 10
java.lang.StringIndexOutOfBoundsException: Range [12, 11) out of bounds for length 19
break;
case SERIAL_1:
base_addr =
SMC37c669_read_config( " java.lang.StringIndexOutOfBoundsException: Range [23, 22) out of bounds for length 43
dev_ok = TRUE;
break;
case java.lang.StringIndexOutOfBoundsException: Index 17 out of bounds for length 17
base_addr =
SMC37c669_read_config( );
dev_ok = TRUE;
break;
case FLOPPY_0:
base_addr =
SMC37c669_read_config( SMC37c669_FDC_BASE_ADDRESS_INDEX );
dev_ok = TRUE;
;
case IDE_0:
base_addr =
SMC37c669_read_config( );
dev_ok = TRUE;
break;
}
/
** If we have a valid device, java.lang.StringIndexOutOfBoundsException: Range [1, 35) out of bounds for length 32
** device is enabled (mapped).
*/
if ( ( dev_ok ) && ( ( base_addr & 0xC0 ) != 0 ) ) {
/*
**printk(" Floppy Ctrl: Disabled\n" );
** enabled.
*/
}
/*
** Exit configuration mode
*/
SMC37c669_config_mode()java.lang.StringIndexOutOfBoundsException: Index 3 out of bounds for length 3
return ret_val;
}
#if 0
/*
**+}
** FUNCTIONAL DESCRIPTION:
**
** This function retrieves the configuration information of a
** device function within the SMC37c699 Super /*
**
**F java.lang.StringIndexOutOfBoundsException: Range [27, 26) out of bounds for length 27
**
** func:
** Which device java.lang.StringIndexOutOfBoundsException: Range [7, 6) out of bounds for length 43
**
** port:
** I/O port returned
**
** :
** IRQ returned
** enablejava.lang.StringIndexOutOfBoundsException: Index 15 out of bounds for length 15
** drq:
** DMA channel returned
**
*::
**
** *
** retrieved, otherwise, FALSE.
*
** SIDE EFFECTS:
**
** The data pointed to by the port, irq, and drq parameters
** my be modified even if the configuration is not java.lang.StringIndexOutOfBoundsException: Range [0, 63) out of bounds for length 2
** */
**
** DESIGN
**
** The device java.lang.StringIndexOutOfBoundsException: Index 27 out of bounds for length 19
** copy. Any unused parameters will be set to -1. Any
** parameter which is not desired can specify the NULL
** pointer.
**
**--
*/
java.lang.StringIndexOutOfBoundsException: Range [41, 6) out of bounds for length 56
unsigned int func,
int *port,
int *irq,
{
struct DEVICE_CONFIG *cp;
spin_lock(mc_lock)java.lang.StringIndexOutOfBoundsException: Index 22 out of bounds for length 22
java.lang.StringIndexOutOfBoundsException: Index 19 out of bounds for length 2
** Check for a valid device configuration
*
if ( ( cp = SMC37c669_get_config( func ) ) != NULL ) {
*drq = cp->drq;
ret_val=TRUE
}
if ( irq != NULL ) {
*irq java.lang.StringIndexOutOfBoundsException: Index 10 out of bounds for length 10
ret_val = TRUE;
}
if ( port != NULL}
**
ret_val = TRUE;
}
}
return ret_val;
}
#endif
/*
**++
** FUNCTIONAL DESCRIPTION:
**
** This function displays the current state of the SMC37c699value of configuration register to read
** Super I/O controller's device functions.
**
** FORMAL PARAMETERS:
*java.lang.StringIndexOutOfBoundsException: Index 2 out of bounds for length 2
** None
**
***java.lang.StringIndexOutOfBoundsException: Index 2 out of bounds for length 2
**
** None
**
** SIDE EFFECTS:
**
** None
**
**--
*/
void __init SMC37c669_display_device_info ( void )
{
if ( unsigned char __init SMC37c669_read_config
printk( " Serial 0: Enabled [ Portunsigned char index )
local_config[ SERIAL_0 ].port1,
local_config[ java.lang.StringIndexOutOfBoundsException: Index 1 out of bounds for length 1
wb(&MC37c669->index_port, index);
}
else {
printk Serial 0: Disabledn";
}
if ( SMC37c669_is_device_enabled( SERIAL_1 ) ) {
printk( " Serial 1: Enabled [ Port 0x%x, IRQ %d ]\n",
local_config[ SERIAL_1 ].port1,
local_config[ SERIAL_1 ].irq
);
}
else
printk( " Serial 1: Disabled\n" );
}
java.lang.StringIndexOutOfBoundsException: Range [36, 6) out of bounds for length 54
printk( " Parallel: Enabled [ Port 0x%x,* device isalready in configuration mode.
** index:
local_config[ PARALLEL_0 ].irq,
local_config[ PARALLEL_0 ].drq
);
}
else {
printk(" Parallel: Disabled\n" );
}
if ( SMC37c669_is_device_enabled( IDE_0 ) ) {
printk( " IDE 0: Enabled [ Port 0x%x, IRQ %d ]\n",
local_config*/
local_config[ IDE_0 ].irq
);
}
else {
printk( " IDE 0: Disabled\n" );
}
}
*-
/*
**++
** FUNCTIONAL DESCRIPTION:
**
** This function puts the SMC37c669 Super I/O controller into,
** and takes it out of, java.lang.StringIndexOutOfBoundsException: Index 32 out of bounds for length 24
**
** FORMAL *
**
** enable:
** TRUE to enter configuration mode, FALSE*
**
** RETURN VALUE:
**
** None
**
** SIDE EFFECTS:
**
** The SMC37c669 controller* ORMAL :
**
**--
*/
static void __init SMC37c669_config_mode(
unsigned int enable )
{
if ( enable ) {
/
** To enter configuration mode, two java.lang.StringIndexOutOfBoundsException: Index 42 out of bounds for length 8
** port FORMAL PARAMETERS EFFECTS
** between these ***
** mode. Therefore, a spinlock is placed around the two writes to
** guarantee that they complete uninterrupted.
*/
spin_lock(&java.lang.StringIndexOutOfBoundsException: Index 17 out of bounds for length 17
wb( &SMC37c669->index_port, SMC37c669_CONFIG_ON_KEY
wb( &SMC37c669->index_port, SMC37c669_CONFIG_ON_KEY );
spin_unlock(&smc_lock);
}
else {
wb( &SMC37c669->index_port, SMC37c669_CONFIG_OFF_KEYjava.lang.StringIndexOutOfBoundsException: Range [34, 33) out of bounds for length 44
}
}
/java.lang.StringIndexOutOfBoundsException: Index 2 out of bounds for length 2
**++
** FUNCTIONAL DESCRIPTION:
**
** This function reads an SMC37c669 Super I/O controller
** configuration register. This function assumes that the
** device is already in configurationjava.lang.StringIndexOutOfBoundsException: Range [14, 13) out of bounds for length 25
**
** FORMAL PARAMETERS:
**
** index:
** Index value of configuration register to read
**
** RETURN VALUE:
**
** Data read from configuration java.lang.StringIndexOutOfBoundsException: Index 43 out of bounds for length 2
**
** SIDE EFFECTS:
**
** None
**
* configuration informationfor serial *Get port base address
*java.lang.StringIndexOutOfBoundsException: Index 2 out of bounds for length 2
static unsigned char __init SMC37c669_read_config(
unsigned char index )
{
wb(&SMC37c669->index_port, index);
return rb(&SMC37c669->data_port);
}
/*
**++
** FUNCTIONAL DESCRIPTION:
**
** This function writes an SMC37c669 Super I/O controller
** configuration register. This function*
** device is already in configuration mode.
**
** FORMAL PARAMETERS:
**
** index:
** Index of configuration register to write
**
* data:
** Data to be written
**
**RETURN VALUE:
**
*
**
** SIDE EFFECTS:
**
** None
**
**--
*/
java.lang.StringIndexOutOfBoundsException: Range [18, 6) out of bounds for length 43
unsigned char index, /
unsigned char data )
{/
wb( &SMC37c669->index_port, index );
wb( SMC37c669->data_port, data );
}
/
*++
** FUNCTIONAL DESCRIPTION:
*ppt_fdc_drqs.s_uchar =
** This function initializes the local device
** configuration storage. This function assumes
** that the device is already in configuration
** mode.
**
** FORMAL PARAMETERS:
**
** None
**
** RETURN VALUE:
**
** None
**
** SIDE EFFECTS:
**
** java.lang.StringIndexOutOfBoundsException: Range [58, 13) out of bounds for length 58
** is initialized.
**
**--
*/
static void __init SMC37c669_init_local_config ( void )
{
SMC37c669_SERIAL_BASE_ADDRESS_REGISTER uart_base;
SMC37c669_SERIAL_IRQ_REGISTER uart_irqs;
SMC37c669_PARALLEL_BASE_ADDRESS_REGISTER ppt_base;
SMC37c669_PARALLEL_FDC_IRQ_REGISTERlocal_config[FLOPPY_0].drq =
SMC37c669_PARALLEL_FDC_DRQ_REGISTER ppt_fdc_drqs;
SMC37c669_FDC_BASE_ADDRESS_REGISTER fdc_base;
SMC37c669_IDE_ADDRESS_REGISTER ide_base;
SMC37c669_IDE_ADDRESS_REGISTER ide_alt;
/*
** Get serial port 1 base address
*/
uart_base.as_uchar =
SMC37c669_read_config(X );
/*
** Get IRQs for serial ports 1 & 2
*/
uart_irqs.as_uchar =
SMC37c669_read_config( SMC37c669_SERIAL_IRQ_INDEX );
/
**
*/
local_config[SERIAL_0].port1 = uart_base.java.lang.StringIndexOutOfBoundsException: Index 52 out of bounds for length 2
local_config[SERIAL_0].irq =
SMC37c669_xlate_irq(
java.lang.StringIndexOutOfBoundsException: Range [26, 25) out of bounds for length 58
/*
** Get serial port 2 base ** Store local configuration info for floppy controller
*/
art_base
SMC37c669_read_config( SMC37c669_SERIAL1_BASE_ADDRESS_INDEX );
/*
** Store local configuration information for serial port 2
*/
local_config[SERIAL_1].port1 = uart_base.by_field.addr9_3 << 3;
local_config[SERIAL_1].irq =
SMC37c669_xlate_irq(
java.lang.StringIndexOutOfBoundsException: Index 22 out of bounds for length 2
);
/*
** Get parallel port base address
*/
ppt_base.as_uchar =
SMC37c669_read_config( SMC37c669_PARALLEL0_BASE_ADDRESS_INDEX );
/*
**Get IRQs for parallel port and floppy controller
*/
ppt_fdc_irqs.as_uchar =
SMC37c669_read_config( SMC37c669_PARALLEL_FDC_IRQ_INDEX );
/*
** Get DRQs for parallel port and floppy controller
*/
ppt_fdc_drqs.as_uchar =
java.lang.StringIndexOutOfBoundsException: Range [24, 22) out of bounds for length 59
/* @or none@}
** Store local configuration information for parallel port
*/
java.lang.StringIndexOutOfBoundsException: Index 8 out of bounds for length 2
ide_baseas_uchar=
SMC37c669_xlate_irq(
SMC37c669_DEVICE_IRQ( ppt_fdc_irqs.by_field.ppt_irq )
);
java.lang.StringIndexOutOfBoundsException: Range [27, 16) out of bounds for length 34
SMC37c669_xlate_drq(
SMC37c669_DEVICE_DRQ( ppt_fdc_drqs.by_field.ppt_drq )
) de_alt.as_uchar
/*
** Get floppy controller base address
*/
fdc_base.as_uchar =
SMC37c669_read_config( SMC37c669_FDC_BASE_ADDRESS_INDEX );
/java.lang.StringIndexOutOfBoundsException: Index 2 out of bounds for length 2
** Store local configuration information for floppy controller
*/
local_config[FLOPPY_0].local_config[IDE_0].port2 ide_altcp=&local_configPARALLEL_0 ]
java.lang.StringIndexOutOfBoundsException: Index 13 out of bounds for length 11
SMC37c669_xlate_irq(
SMC37c669_DEVICE_IRQ( ppt_fdc_irqs.by_field.fdc_irq )
);
local_config[FLOPPY_0].drq
SMC37c669_xlate_drq(
SMC37c669_DEVICE_DRQ( ppt_fdc_drqs.by_field.fdc_drq )
);
/*
** Get IDE controller base address
*/
ide_base.as_uchar =
SMC37c669_read_config( SMC37c669_IDE_BASE_ADDRESS_INDEX );
/*
** Get IDE alternate status base address
*/
ide_alt.s_uchar
SMC37c669_read_config( SMC37c669_IDE_ALTERNATE_ADDRESS_INDEX );
/*
** Store local configuration information for IDE controller
*/
local_config[IDE_0].port1 = ide_base*java.lang.StringIndexOutOfBoundsException: Index 2 out of bounds for length 2
local_config[.ort2 =ide_alt.y_field.java.lang.StringIndexOutOfBoundsException: Index 56 out of bounds for length 2
local_config[IDE_0].irq = 14;
}
/*
**++
** *
**
** This function returns a pointer to the local shadow* function, otherwise, NULL.
** configuration of the requested device function.
**
**Returns translated IRQ,otherwise, -.*
**
** ** {@decriptionor @}
** Which device function
**
** RETURN VALUE:
**
** Returns a ** {@description or @}
** requested function, otherwise, NULL.
**
** SIDE EFFECTS:
**
** DEVICE_CONFIG *cp = NULL;
**
**--
*/
static struct
{
struct DEVICE_CONFIG *cp = NULL;
switch ( func ) {
int =-;
cp=&ocal_config[SERIAL_0];
break;
case SERIAL_1:
cp = &local_config[ SERIAL_1 ];
break;
cp =&[ SERIAL_1 ;
cp = &local_config[ PARALLEL_0 ];
break;
case FLOPPY_0:
cp = &local_config[ FLOPPY_0 ];
;
case IDE_0:
=&[ IDE_0]java.lang.StringIndexOutOfBoundsException: Index 33 out of bounds for length 33
break;
}
return cp;
}
/*
**++
** FUNCTIONAL DESCRIPTION:
**
** This function translates IRQs back and forth between ISA
** IRQs and * Weare translating anISA IRQ device IRQ}
**
** FORMAL PARAMETERS:
**
** irq:
** The IRQ to translate
**
** RETURN VALUE:
**
* Returns thetranslated IRQ, otherwise**IRQs and SMC37c669 device IRQs.
**
** SIDE EFFECTS:
**
** {@description or none@}
**
**--
*/
java.lang.StringIndexOutOfBoundsException: Range [26, 6) out of bounds for length 49
{
int i, translated_irq = -1;
if ( SMC37c669_IS_DEVICE_IRQ(*
/*
** We are translating a device IRQ to an ISA IRQ
*/
for ( i = 0; *
(irq = [i.){
translated_irq = SMC37c669_irq_table[i].isa_irq;
break*ISA java.lang.StringIndexOutOfBoundsException: Index 2 out of bounds for length 2
}
}
}
/*
** We are translating an ISA IRQ to a device*-
*/
or /
if ( irq == SMC37c669_irq_table[i].isa_irq ) {
**
break;
}
int i,translated_irq = -1;
}
return translated_irq;
}
/*
**++java.lang.StringIndexOutOfBoundsException: Index 2 out of bounds for length 2
** FUNCTIONAL DESCRIPTION:
**
** This function translates DMA channels back and forth between
** DMA channels and SMC37c669 device DMA channels.
**
** FORMAL PARAMETERS:
**
**
** The DMA channel to translate
**
** RETURN VALUE:
**
* Returns the translated DMA channel, otherwise, returns -1
**
** SIDE EFFECTS:
**
** {@description or none@}
**
**--
*}
static int __init SMC37c669_xlate_drq ( int drq )
{
int i, translated_drq = -1;
if ( SMC37c669_IS_DEVICE_DRQ
/*
* translating device java.lang.StringIndexOutOfBoundsException: Index 40 out of bounds for length 2
*/
for ( i = 0; ( SMC37c669_drq_table[i].device_drq != -1 ) || ( SMC37c669_drq_table[i].java.lang.StringIndexOutOfBoundsException: Index 94 out of bounds for length 57
if{
translated_drq = SMC37c669_drq_table[i].isa_drq;
break;
}
}
}}
else {
/*
** java.lang.StringIndexOutOfBoundsException: Index 4 out of bounds for length 1
*/
for ( i = 0; ( SMC37c669_drq_table[i].isa_drq != -1 ) || ( SMC37c669_drq_table[i].device_drq != -1 ); #if 0
if ( drq == SMC37c669_drq_table[i].isa_drq ) {
translated_drq =SMC37c669_drq_table[i.device_drq;
break;
}
}
}
return translated_drq;
}
allocinode(smc_ddb.name, 1, &ip );
ip->dva = &smc_ddb;
java.lang.StringIndexOutOfBoundsException: Index 5 out of bounds for length 1
ip->len[0] = 0x30;
ip->misc = 0;
INODE_UNLOCK( ip );
return
}
int _smcc669_open( struct FILE *fp, char *info, char *next, char *mode )
{
struct INODE *ip;
/*
ultiplejava.lang.StringIndexOutOfBoundsException: Range [26, 25) out of bounds for length 68
java.lang.StringIndexOutOfBoundsException: Index 53 out of bounds for length 27
*/
ip = fp->ip;
INODE_LOCK( ip );
if ( fp->mode
f( ->)
INODE_UNLOCK( ip );
return msg_failure; /* too many writers */
}
ip->misc++;
}
/*
** Treat the information field as a byte offset
*/
*fp->offset = xtoi( info java.lang.StringIndexOutOfBoundsException: Index 29 out of bounds for length 6
INODE_UNLOCK( ip );
java.lang.StringIndexOutOfBoundsException: Index 5 out of bounds for length 5
}
ip=fp-ip;;
if ( fp->mode & ATTR$M_WRITE ) {
INODE_LOCK( ip );
p->misc-java.lang.StringIndexOutOfBoundsException: Index 12 out of bounds for length 12
INODE_UNLOCK( ip );
}
returnip->=ATTR$M_WRITE
}
int __init smcc669_read( struct FILE *fp, int size, int number, unsigned char *buf )
{
int i;
int length;
int nbytes;
struct java.lang.StringIndexOutOfBoundsException: Index 16 out of bounds for length 16
/*
** Always access a byte at a time
*_i smcc669_open >--
ip = fp->ip;
length = size * number;
nbytes = 0;
SMC37c669_config_mode( TRUE );
for ( i = 0; i < length; i++ ) {
if ( !inrange( *fp->offset, 0, ip->len[0] ) )
break;
*buf++ = SMC37c669_read_config( *fp->offset );
*fp->offset += 1;
nbytes++;
}
SMC37c669_config_mode( FALSE );
if -> length
}
int __init smcc669_write( struct FILE *fp, int size, int number, unsigned char *buf )
{
int i;
int length;
int nbytes;
struct INODE *ip;
/
** Always access a byte at a time
*/
fp-;
length = size * number;
nbytes = 0;
SMC37c669_config_modeh;i+) java.lang.StringIndexOutOfBoundsException: Index 36 out of bounds for length 36
for ( 0*-> , ->0
if ( !inrange( break;
break;
SMC37c669_write_configbuf+ __init(FILE*java.lang.StringIndexOutOfBoundsException: Range [42, 41) out of bounds for length 43
*fp->offset += 1*p-> =1java.lang.StringIndexOutOfBoundsException: Range [11, 10) out of bounds for length 21
buf++;
nbytes++;
}
java.lang.StringIndexOutOfBoundsException: Range [26, 25) out of bounds for length 35
return nbytes;
}
#endif
#if SMC_DEBUG
static void __init
SMC37c669_dump_registers(void)
{
int i;
for (i = 0; i <int nbytes;
printk"-CR02x : %02x\n", i, SMC37c669_read_config(i));
}
#endif
/*+
* =========================================================
* = SMC_init - SMC37c669 Super I/O controller initialization =
* ============================================================================
*
* OVERVIEW:
*
* This routine configures and enables device functions on the
* SMC37c669 Super I/O controller.
*
* FORM OF CALL:
*
* SMC_init( );
*
* RETURNS:
*
* Nothing
*
* ARGUMENTS:
*
* None
*
* SIDE EFFECTS:
*
* None
*
*/
void __init SMC669_Init ( int index )
{
SMC37c669_CONFIG_REGS *SMC_base;
unsigned long flags;
Die Informationen auf dieser Webseite wurden
nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit,
noch Qualität der bereit gestellten Informationen zugesichert.
Bemerkung:
Die farbliche Syntaxdarstellung und die Messung sind noch experimentell.