summaryrefslogtreecommitdiffstats
path: root/sys/dev/asr/asr.c
diff options
context:
space:
mode:
Diffstat (limited to 'sys/dev/asr/asr.c')
-rw-r--r--sys/dev/asr/asr.c119
1 files changed, 10 insertions, 109 deletions
diff --git a/sys/dev/asr/asr.c b/sys/dev/asr/asr.c
index bee1099..ae83763 100644
--- a/sys/dev/asr/asr.c
+++ b/sys/dev/asr/asr.c
@@ -235,14 +235,12 @@ debug_asr_dump_ccb(union ccb *ccb)
#define debug_usr_cmd_dump_message(message)
#endif /* DEBUG_ASR_USR_CMD */
-#define dsDescription_size 46 /* Snug as a bug in a rug */
#include "dev/asr/dptsig.h"
static dpt_sig_S ASR_sig = {
{ 'd', 'P', 't', 'S', 'i', 'G'}, SIG_VERSION, PROC_INTEL,
PROC_386 | PROC_486 | PROC_PENTIUM | PROC_SEXIUM, FT_HBADRVR, 0,
- OEM_DPT, OS_FREE_BSD, CAP_ABOVE16MB, DEV_ALL,
- ADF_ALL_SC5,
+ OEM_DPT, OS_FREE_BSD, CAP_ABOVE16MB, DEV_ALL, ADF_ALL_SC5,
0, 0, ASR_VERSION, ASR_REVISION, ASR_SUBREVISION,
ASR_MONTH, ASR_DAY, ASR_YEAR,
/* 01234567890123456789012345678901234567890123456789 < 50 chars */
@@ -3494,24 +3492,14 @@ static int
asr_ioctl(dev_t dev, u_long cmd, caddr_t data, int flag, struct thread *td)
{
Asr_softc_t *sc = dev->si_drv1;
- int i, j;
- int error = 0;
+ int i, error = 0;
if (sc != NULL)
switch(cmd) {
case DPT_SIGNATURE:
-#if (dsDescription_size != 50)
- case DPT_SIGNATURE + ((50 - dsDescription_size) << 16):
-#endif
- if (cmd & 0xFFFF0000) {
- bcopy(&ASR_sig, data, sizeof(dpt_sig_S));
- return (0);
- }
- /* Traditional version of the ioctl interface */
- case DPT_SIGNATURE & 0x0000FFFF:
- return (copyout ((caddr_t)(&ASR_sig), *((caddr_t *)data),
- sizeof(dpt_sig_S)));
+ return (copyout((caddr_t)(&ASR_sig), *((caddr_t *)data),
+ sizeof(dpt_sig_S)));
/* Traditional version of the ioctl interface */
case DPT_CTRLINFO & 0x0000FFFF:
@@ -3535,9 +3523,9 @@ asr_ioctl(dev_t dev, u_long cmd, caddr_t data, int flag, struct thread *td)
CtlrInfo.drvrHBAnum = asr_unit(dev);
CtlrInfo.baseAddr = sc->ha_Base;
i = ASR_getBlinkLedCode (sc);
- if (i == -1) {
+ if (i == -1)
i = 0;
- }
+
CtlrInfo.blinkState = i;
CtlrInfo.pciBusNum = sc->ha_pciBusNum;
CtlrInfo.pciDeviceNum = sc->ha_pciDeviceNum;
@@ -3546,42 +3534,16 @@ asr_ioctl(dev_t dev, u_long cmd, caddr_t data, int flag, struct thread *td)
#define FLG_OSD_I2O 0x0004
CtlrInfo.hbaFlags = FLG_OSD_PCI_VALID|FLG_OSD_DMA|FLG_OSD_I2O;
CtlrInfo.Interrupt = sc->ha_irq;
- if (cmd & 0xFFFF0000) {
- bcopy(&CtlrInfo, data, sizeof(CtlrInfo));
- } else {
- error = copyout(&CtlrInfo, *(caddr_t *)data, sizeof(CtlrInfo));
- }
+ error = copyout(&CtlrInfo, *(caddr_t *)data, sizeof(CtlrInfo));
} return (error);
/* Traditional version of the ioctl interface */
case DPT_SYSINFO & 0x0000FFFF:
case DPT_SYSINFO: {
sysInfo_S Info;
- char * cp;
- /* Kernel Specific ptok `hack' */
-#define ptok(a) ((char *)(uintptr_t)(a) + KERNBASE)
bzero(&Info, sizeof(Info));
- /* Appears I am the only person in the Kernel doing this */
- outb (0x70, 0x12);
- i = inb(0x71);
- j = i >> 4;
- if (i == 0x0f) {
- outb (0x70, 0x19);
- j = inb (0x71);
- }
- Info.drive0CMOS = j;
-
- j = i & 0x0f;
- if (i == 0x0f) {
- outb (0x70, 0x1a);
- j = inb (0x71);
- }
- Info.drive1CMOS = j;
-
- Info.numDrives = *((char *)ptok(0x475));
-
Info.processorFamily = ASR_sig.dsProcessorFamily;
#if defined(__i386__)
switch (cpu) {
@@ -3604,66 +3566,9 @@ asr_ioctl(dev_t dev, u_long cmd, caddr_t data, int flag, struct thread *td)
/* Info.osRevision = 0; */
/* Info.osSubRevision = 0; */
Info.busType = SI_PCI_BUS;
- Info.flags = SI_CMOS_Valid | SI_NumDrivesValid
- | SI_OSversionValid | SI_BusTypeValid | SI_NO_SmartROM;
-
- /* Go Out And Look For I2O SmartROM */
- for(j = 0xC8000; j < 0xE0000; j += 2048) {
- int k;
+ Info.flags = SI_OSversionValid|SI_BusTypeValid|SI_NO_SmartROM;
- cp = ptok(j);
- if (*((unsigned short *)cp) != 0xAA55) {
- continue;
- }
- j += (cp[2] * 512) - 2048;
- if ((*((u_long *)(cp + 6))
- != ('S' + (' ' * 256) + (' ' * 65536L)))
- || (*((u_long *)(cp + 10))
- != ('I' + ('2' * 256) + ('0' * 65536L)))) {
- continue;
- }
- cp += 0x24;
- for (k = 0; k < 64; ++k) {
- if (*((unsigned short *)cp)
- == (' ' + ('v' * 256))) {
- break;
- }
- }
- if (k < 64) {
- Info.smartROMMajorVersion
- = *((unsigned char *)(cp += 4)) - '0';
- Info.smartROMMinorVersion
- = *((unsigned char *)(cp += 2));
- Info.smartROMRevision
- = *((unsigned char *)(++cp));
- Info.flags |= SI_SmartROMverValid;
- Info.flags &= ~SI_NO_SmartROM;
- break;
- }
- }
- /* Get The Conventional Memory Size From CMOS */
- outb (0x70, 0x16);
- j = inb (0x71);
- j <<= 8;
- outb (0x70, 0x15);
- j |= inb(0x71);
- Info.conventionalMemSize = j;
-
- /* Get The Extended Memory Found At Power On From CMOS */
- outb (0x70, 0x31);
- j = inb (0x71);
- j <<= 8;
- outb (0x70, 0x30);
- j |= inb(0x71);
- Info.extendedMemSize = j;
- Info.flags |= SI_MemorySizeValid;
-
- /* Copy Out The Info Structure To The User */
- if (cmd & 0xFFFF0000) {
- bcopy(&Info, data, sizeof(Info));
- } else {
- error = copyout(&Info, *(caddr_t *)data, sizeof(Info));
- }
+ error = copyout(&Info, *(caddr_t *)data, sizeof(Info));
return (error); }
/* Get The BlinkLED State */
@@ -3672,11 +3577,7 @@ asr_ioctl(dev_t dev, u_long cmd, caddr_t data, int flag, struct thread *td)
if (i == -1) {
i = 0;
}
- if (cmd & 0xFFFF0000) {
- bcopy(&i, data, sizeof(i));
- } else {
- error = copyout(&i, *(caddr_t *)data, sizeof(i));
- }
+ error = copyout(&i, *(caddr_t *)data, sizeof(i));
break;
/* Send an I2O command */
OpenPOWER on IntegriCloud