[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

external device drivers



I am trying to write an external device driver for the
Mac port of MiNT, but I am unclear on the use of wake
and sleep (among other things).  I would like to have
a device that other Mac applications can send data
to and have the device pass that data on to a mint
program when it is read.  My first question is: does
this device have to be a TTY device?  I thought the
answer was yes, because the kernel had built in support
for putting a process to sleep if it tried to read a TTY
device with no data available, but now I'm not sure.  When
I thought the kernel would automatically put a process to
sleep I though that the only sleep/wake call I would need
was a call to wakeselect in the routine that is called when
data arrives from another Mac application.  Now I am thinking
that I might need to call sleep in the read routine, but I don't
know which queue or condition to sleep on.  I also don't know
if I need to change the wake call in the data ready routine
depending on whether I am sleeping because of a select call
or a read call.

If anybody has any ideas on this, or some source code, or some
pointers to documentation, I would like to hear about it.  I
have read parts of the modem driver and the raw disk driver
on atari.archive but this stuff still doesn't quite make sense
to me.

Thanks,
  Brad