From 29d30cd033eab1bcb2097825e00f65697e12fc93 Mon Sep 17 00:00:00 2001 From: Laurent Vivier Date: Mon, 10 Oct 2005 21:42:58 +0000 Subject: [PATCH] Add turn_off_interrupts --- second/driver.c | 21 ++++++++++++++++----- second/driver.h | 1 + 2 files changed, 17 insertions(+), 5 deletions(-) diff --git a/second/driver.c b/second/driver.c index 7c7cb4b..6722620 100644 --- a/second/driver.c +++ b/second/driver.c @@ -4,11 +4,13 @@ * */ +#include #include #include #include "misc.h" #include "glue.h" +#include "lowmem.h" /* * OpenDriver: @@ -114,7 +116,6 @@ ssize_t read(int fd, void *buf, size_t count) } #endif -#if 0 typedef struct { short drvrFlags; @@ -152,7 +153,7 @@ typedef struct DCtlEntry DCtlEntry; typedef DCtlEntry * DCtlPtr; typedef DCtlPtr * DCtlHandle; -void list_drivers() +void turn_off_interrupts() { int i; short count; @@ -160,9 +161,11 @@ void list_drivers() DCtlPtr currentPtr; DriverHeader *driverPtr, **driverHandle; short refnum; + OSErr err; + VDParamBlock pb; + VDFlagRec flag; count = LMGetUnitTableEntryCount(); - printf("count %d\n", count); currentHandle = (DCtlEntry ***) LMGetUTableBase(); for (i = 0; i < count; i++) { @@ -178,7 +181,15 @@ void list_drivers() } else driverPtr = (void*)(currentPtr->dCtlDriver); - printf("Name: %s\n", p2cstring(driverPtr->drvrName)); + + err = OpenDriver(driverPtr->drvrName, &refnum); + if (err != noErr) + continue; + pb.ioRefNum = refnum; + pb.csCode = 7; /* SetInterrupt */ + flag.flag = 1; + pb.csParam = &flag; + + err = PBControlSync((ParmBlkPtr) &pb); } } -#endif diff --git a/second/driver.h b/second/driver.h index fd305bf..2f122a3 100644 --- a/second/driver.h +++ b/second/driver.h @@ -11,3 +11,4 @@ extern ssize_t write(int fd, const void *buf, size_t count); extern ssize_t read(int fd, void *buf, size_t count); extern OSErr SerGetBuf(short refNum, long *count); #endif +extern void turn_off_interrupts();