> Actually, I couldn't make CVS do what I wanted, so it's a big tarball
> with an itty-bitty little patch instead.
>
> This requires an up-to-date -current kernel (for the pci_cfgreg changes,
> etc.)
>
> I haven't done anything special with newbus attachments yet, and the
> embedded controller stuff is still broken, but this should compile and
> run. It needs resource management work (only interrupts are handled
> correctly) and lots of event handlers and so on, but it should be a good
> foundation to start with.
Great! This is really great!! I didn't think we can have ACPICA
kernel so earlier.
> Comments and suggestions would definitely be appreciated.
>
> http://people.freebsd.org/~msmith/acpica-bsd-20001002.tar.gz
OK, I have a patch for AcpiOsSleep and AcpiOsSleepUsec which I was
involed in recently.
For Semaphore, mtx_* (ported from BSD/OS?) is used in your implementation.
I just wonder if NetBSD people will use traditional lock...
--- OsdSchedule.c- Mon Oct 2 18:20:32 2000
+++ OsdSchedule.c Mon Oct 2 18:34:24 2000
@@ -36,6 +36,7 @@
#include <sys/kernel.h>
#include <sys/malloc.h>
#include <sys/taskqueue.h>
+#include <machine/clock.h>
/*
* This is a little complicated due to the fact that we need to build and then
@@ -112,11 +113,20 @@
void
AcpiOsSleep (UINT32 Seconds, UINT32 Milliseconds)
{
- tsleep(NULL, 0, "acpislp", (Seconds * hz) + Milliseconds / (1000 * hz));
+ int timo;
+
+ timo = (Seconds * hz) + Milliseconds / (1000 * hz);
+ if (timo == 0) /* 0 means no timeout... */
+ timo = 1;
+ tsleep(NULL, 0, "acpislp", timo);
}
void
AcpiOsSleepUsec (UINT32 Microseconds)
{
- tsleep(NULL, 0, "acpislp", Microseconds / (1000000 * hz));
+ if (Microseconds > 1000) { /* the interpreter will be released */
+ AcpiOsSleep(0, Microseconds / 1000);
+ } else {
+ DELAY(Microseconds);
+ }
}
To Unsubscribe: send mail to [EMAIL PROTECTED]
with "unsubscribe freebsd-current" in the body of the message