Messages in this thread | | | From | Bret Indrelee <> | Subject | RE: PATCH: PCI changes for pre-2.3.16-1 | Date | Tue, 31 Aug 1999 14:24:02 -0500 |
| |
> > If you want to make life easier, just do a > > > > char * pci_slot_fmt(struct pci_dev *dev) > > { > > static char fmt[10]; > > > > sprintf(fmt, "%d:%d:%d", BUS(dev), SLOT(dev), FN(dev)); > > return fmt; > > } > > Writing functions returning pointers to static data is > just a subscription > for the magic bug of the week contest. I don't want to have > to take care > of "you cannot print two slot names in one printk" type things. > > > if it's the re-typing of the stuff you object to, and you > just want to > > have one place to change when you want to change the way > you print out > > devices. I'd certainly agree with that kind of thing. > > I want to save re-typing and also to unify the format of > PCI slot numbers > printed at various places in the kernel. Also, it saves a > bit of space > since the cached string takes only 8 bytes which is certainly > less than > what does passing of two extra parameters to a single printk take. > > Also, adding a slot name to struct pci_dev seems to be the simplest > and lowest-overhead solution I see.
This may be a reasonable compromised. Define a couple of macros to create the name.
#define PCI_SLOT_NAME_FMT "%d:%d:%d" #define PCI_SLOT_NAME(dev) BUS(dev), SLOT(dev), FN(dev)
printk(KERN_WARNING PCI_SLOT_NAME_FMT " is misbehaving. It should be punished.\n", PCI_SLOT_NAME(dev));
The only problem with this is that the argument to the second macro gets evaluated multiple times.
This gives you consistent names without reserving a field for the name. If you really must save those keystrokes, you could come up with shorter names for the macros.
-Bret
------------------------------------------------------------- SBS Technologies, Connectivity Products ... solutions for real-time connectivity
Bret Indrelee, Engineer SBS Technologies, Inc., Connectivity Products 1284 Corporate Center Drive, St. Paul MN 55121 Direct: (651) 905-4731 Main: (651) 905-4700 Fax: (651) 905-4701 E-mail: bindrelee@sbs-cp.com http://www.sbs.com -------------------------------------------------------------
- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.rutgers.edu Please read the FAQ at http://www.tux.org/lkml/
| |