Skip site navigation (1)Skip section navigation (2)
Date:      Fri, 29 Sep 1995 20:03:41 -0700 (PDT)
From:      Julian Elischer <julian@ref.tfs.com>
To:        deborah@microunity.com (Deborah Gronke Bennett)
Cc:        terry@lambert.org, freebsd-hackers@freebsd.org
Subject:   Re: spl'ing to a specific interrupt level
Message-ID:  <199509300303.UAA17894@ref.tfs.com>
In-Reply-To: <9509291809.ZM29816@gallifrey.microunity.com> from "Deborah Gronke Bennett" at Sep 29, 95 06:09:07 pm

next in thread | previous in thread | raw e-mail | index | archive | help
you've hit on one of the things I don't like about the present system.. 
it's hard to ad a new 'class' which is what you want to do..
(needs changes in autoconf, and even in config itself)
the joke is, that
if you have config'd slip, the tty and net masks get
Or'd anyway so effectively we only have 2 masks :(

go for tty for now and as we fiddle with the kernel
you can use something else when it's easier :)
> 
> 
> > >
> > > It's a programmed I/O device which is a bridge from the PC
> > > to a proprietary serial communications bus. It's kind of like
> > > a generic programmed port device, so we can use a program
> > > on the PC to write stuff onto this proprietary serial bus.
> >
> > If it gets an interrupt, it gets a priority level.
> >
> > > If I have to add it to an interrupt class, I suppose it's
> > > closest to a tty-style device (I notice that the lpt device
> > > uses tty). However, I am still wondering if there's any way
> > > to just block interrupts at my level and below, rather than
> > > block out everything which is on the ttytab list.
> >
> > I don't think I understand; you want to prioritize your driver below
> > the standard tty drivers?  I don't think that's wise; I'd just use
> > spltty.
> >
> 
> Here is what I understand about the FreeBSD interrupt system:
> (btw, my device is an isa device)
> from isa_configure, via config_isadev_c, my driver probe routine is called.
> If it succeeds, (id_alive is true) then some time later my attach routine
> is called. Just before register_intr is called to add my interrupt
> service routine to the proper level, INTRMASK is called to add my
> irq level to one of tty_imask, bio_imask, net_imask or SWI_CLOCK_MASK.
> (Which one depends on the keyword in my config line).
> 
> My understanding of the splXXX routines is that you call them to block
> critical sections which could somehow depend on each other - that's
> why you have the classes of bio (disk devices), net (network)
> and tty (serial devices). My quandry is that I don't want to block
> anything else I don't need to - I just want a routine to call
> to raise the spl level to my level (whatever I put after the "irq"
> on my config line). Is my only solution in this case to call splsoftclock?
> 
> So, to answer your question, what I want to do is not to prioritize
> my device with respect to any other device - I just want a way
> to block my critical sections.
> 
> Am I making this any clearer now?
> 
> -deborah bennett
> 
> 
> 
> 
> 




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?199509300303.UAA17894>