On 03/09/10 15:39, Hennerich, Michael wrote: > Hi Jonathan, > > Jonathan Cameron wrote on 2010-03-09: >> On 03/09/10 15:13, Hennerich, Michael wrote: >>> Shouldn't those be better declared 'static'? >> >> No. Convention is to do that when calling the macro as then it is >> explicit in the relevant place. Now if any of the calls are missing >> the static keyword, that would be an error. > > I don't mind - as long as they are declared static. > Because I'm seeing collisions with your driver - that doesn't declare it's common attributes static. > > What about this patch? That's where they should be.... Actually I have a vague recollection that there is already a patch doing these in Greg's tree. Also, not worth pushing upstream as huge changes going into this driver shortly. Of these, only name still exists. Jonathan > > Index: drivers/staging/iio/adc/max1363_core.c > =================================================================== > --- drivers/staging/iio/adc/max1363_core.c (revision 8430) > +++ drivers/staging/iio/adc/max1363_core.c (working copy) > @@ -446,12 +446,12 @@ > return ret; > } > > -IIO_DEV_ATTR_AVAIL_SCAN_MODES(max1363_show_av_scan_modes); > -IIO_DEV_ATTR_SCAN_MODE(S_IRUGO | S_IWUSR, > +static IIO_DEV_ATTR_AVAIL_SCAN_MODES(max1363_show_av_scan_modes); > +static IIO_DEV_ATTR_SCAN_MODE(S_IRUGO | S_IWUSR, > max1363_show_scan_mode, > max1363_store_scan_mode); > > -IIO_DEV_ATTR_SCAN(max1363_scan); > +static IIO_DEV_ATTR_SCAN(max1363_scan); > > static ssize_t max1363_show_name(struct device *dev, > struct device_attribute *attr, > @@ -462,7 +462,7 @@ > return sprintf(buf, "%s\n", st->chip_info->name); > } > > -IIO_DEVICE_ATTR(name, S_IRUGO, max1363_show_name, NULL, 0); > +static IIO_DEVICE_ATTR(name, S_IRUGO, max1363_show_name, NULL, 0); > > /*name export */ > > -Michael > > >> >> I've cheated a bit on the event equivalent as they define a pair of >> structures. Keep meaning to ask on how to do things like that >> properly (don't suppose anyone knows?) >> >> On another note, I'm getting increasingly tempted to drop the device >> specific headers and move over to a more hwmon like fix naming at >> review. With new api they are huge and sometimes actually add code >> rather than saving it. Not that it effects these particularly macros. >> >> >> >>> >>> >>> Index: drivers/staging/iio/sysfs.h >>> =================================================================== >>> --- drivers/staging/iio/sysfs.h (revision 8430) >>> +++ drivers/staging/iio/sysfs.h (working copy) >>> @@ -95,16 +95,16 @@ >>> .val2 = _val2 } >>> #define IIO_DEVICE_ATTR(_name, _mode, _show, _store, _addr) \ >>> - struct iio_dev_attr iio_dev_attr_##_name \ >>> + static struct iio_dev_attr iio_dev_attr_##_name \ >>> = IIO_ATTR(_name, _mode, _show, _store, _addr) >>> >>> #define IIO_DEVICE_ATTR_2(_name, _mode, _show, _store, _addr, >>> _val2) \ - struct iio_dev_attr iio_dev_attr_##_name \ + >>> static struct iio_dev_attr iio_dev_attr_##_name >> \ >>> = IIO_ATTR_2(_name, _mode, _show, _store, _addr, _val2) >>> #define IIO_CONST_ATTR(_name, _string) >> \ >>> - struct iio_const_attr iio_const_attr_##_name \ + static >>> struct iio_const_attr iio_const_attr_##_name >> \ >>> = { .string = _string, >> \ >>> .dev_attr = __ATTR(_name, S_IRUGO, iio_read_const_attr, >>> NULL)} >>> >>> >>> ------------------------------------------------------------------ >>> ********* Analog Devices GmbH Open Platform Solutions >>> ** ***** >>> ** ** Wilhelm-Wagenfeld-Strasse 6 >>> ** ***** D-80807 Munich >>> ********* Germany >>> Registergericht München HRB 40368, Geschäftsführer: Thomas Wessel, >>> William A. Martin, Margaret K. Seif >>> >>> > Greetings, > Michael > > Analog Devices GmbH Wilhelm-Wagenfeld-Str. 6 80807 Muenchen > Sitz der Gesellschaft Muenchen, Registergericht Muenchen HRB 4036 Geschaeftsfuehrer Thomas Wessel, William A. Martin, Margaret Seif > > -- To unsubscribe from this list: send the line "unsubscribe linux-iio" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html