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? 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