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

Re: sending signals from xdd's



Kay Roemer writes:

> While implementing TCP for MintNet, I came across the following
> problem:
> 
> TCP provides for delivery of out-of-band or urgent data. When
> urgent data arrives on a socket, the process which is the owner
> of the socket (this concept of the sockets owner is much like
> the one used for terminals), must be signaled that urgent data
> has arrived.
> 
> Usually Unixes do this by
> 1) sending this sockets owner a SIGURG signal and
> 2) waking up any processes seleting for exceptional conditions
>    on this socket.
> 
> The 2nd is impossible under MiNT, because Fselect() doesn't
> currently support selecting for exceptional conditions.

 unless its the one that also gets the signal, then it should wake up
because of that...
> 
> The 1st would require a device driver to be able to send signals
> to ANY process, even if the current process' effective UID is
> not zero and different from the effective UID of the process that
> should be signaled.
> 
> Currently the only possibility I see to do the 1st is to fork a
> new process (much like minixfs and modm0dev do) that is used to
> send signals.
> 
> Is there another way (without a different process) to signal
> different processes from a device driver?

 addroottimeout?
> 
> Perhaps (as Juergen suggested some time ago) post_sig() should be
> made available for device drivers through struct kerinfo?

 hmm which one takes longer worst case, post_sig or addroottimeout?
u know i'm thinking of ipl6 and receiver overruns again... :)

 cheers
	Juergen
-- 
J"urgen Lock / nox@jelal.north.de / UUCP: ..!uunet!unido!uniol!jelal!nox
								...ohne Gewehr
PGP public key fingerprint =  8A 18 58 54 03 7B FC 12  1F 8B 63 C7 19 27 CF DA