> > GLDv3 supports (mac_callbacks_t->mc_ioctl) callback. However, to issue > an IOCTL from userland, the device has to be opened first resulting in > (mac_callbacks_t->mc_start) call, which may do all the hardware > initialization in the driver. > > In the driver I am developing, I would like to receive IOCTLs > (i.e. mc_ioctl calls) even when the device has not started > (i.e. attached but mc_start has not been called yet). Is there a way to > achieve this? > > The reasoning behind this requirement is that, In the attach() function > I do all PCI initialization, booting the firmware etc, but keep the tx, > rx rings and link disabled. In mc_start() function, tx rx rings are > enabled, buffers are posted to rx ring and link is enabled (link may > still be down). In the time between attach() & mc_start(), I would like > to do operations such as rebooting the firmware etc.
I can't speak specifically to this issue, but in general I would strongly discourage you using the mc_ioctl as a point of extensibility for anything other than debugging, development, or experimental features. In particular, a primary goal of the GLDv3 framework is to provide a consistent programmatic and administrative model so that both layered software and administrators do not need to carry out specialized or one-off procedures for individual drivers. -- meem _______________________________________________ networking-discuss mailing list [email protected]
