[PATCH 1/5] ptp: Added a brand new class driver for ptp clocks.
Ira W. Snyder
iws at ovro.caltech.edu
Thu Aug 19 11:23:01 EDT 2010
On Thu, Aug 19, 2010 at 02:29:49PM +0200, Arnd Bergmann wrote:
> On Thursday 19 August 2010, Richard Cochran wrote:
> >
> > On Wed, Aug 18, 2010 at 05:02:03PM +0200, Arnd Bergmann wrote:
> > > You might want to use callbacks for these system calls that you
> > > can register to at module load time, like it is done for the
> > > existing syscalls.
> >
> > Can you point me to a specific example?
>
> The struct k_clock contains callback functions to clock source
> specific implementations of the syscalls and other functions.
> Adding a new clock source that is (potentially) implemented
> as a module means you have to define a new k_clock in that module
> that you register using register_posix_clock.
>
> If you need additional syscalls to be implemented by the same
> module, you can put more callback functions into struct k_clock
> that would then only be implemented by the new module.
>
> > > The simpler way (e.g. for testing) is using Kconfig dependencies, like
> > >
> > > config PTP
> > > bool "IEEE 1588 Precision Time Protocol"
> > >
> > > config PPS
> > > tristate "Pulse per Second"
> > > depends on PTP || !PTP
> > >
> > > The depends statement is a way of expressing that when PTP is enabled,
> > > PPS cannot be a module, while it may be a module if PTP is disabled.
> >
> > THis did not work for me.
> >
> > What I got was, in effect, two independent booleans.
>
> Hmm, right. I wonder what I was thinking of then.
>
> You can certainly do
>
> config PTP
> bool "IEEE 1588 Precision Time Protocol"
> depends on PPS != m
>
> but that will hide the PTP option if PPS is set to 'm', which is normally
> not what you want.
>
Arnd,
Perhaps you were thinking of the vhost example (taken from
drivers/vhost/Kconfig):
config VHOST_NET
tristate "Host kernel accelerator for virtio net (EXPERIMENTAL)"
depends on NET && EVENTFD && (TUN || !TUN) && (MACVTAP || !MACVTAP) && EXPERIMENTAL
They have a similar construct with both TUN and MACVTAP there. Perhaps
the parens are a necessary part of the "X || !X" syntax? Just a random
guess.
Ira
More information about the linux-arm-kernel
mailing list