Linux kernel & device driver programming

Cross-Referenced Linux and Device Driver Code

[ source navigation ] [ diff markup ] [ identifier search ] [ freetext search ] [ file search ]
Version: [ 2.6.11.8 ] [ 2.6.25 ] [ 2.6.25.8 ] [ 2.6.31.13 ] Architecture: [ i386 ]
  1 #include <linux/kernel.h>
  2 #include <linux/stat.h>
  3 /* FIX UP */
  4 #include "soundbus.h"
  5 
  6 #define soundbus_config_of_attr(field, format_string)                   \
  7 static ssize_t                                                          \
  8 field##_show (struct device *dev, struct device_attribute *attr,        \
  9               char *buf)                                                \
 10 {                                                                       \
 11         struct soundbus_dev *mdev = to_soundbus_device (dev);           \
 12         return sprintf (buf, format_string, mdev->ofdev.node->field);   \
 13 }
 14 
 15 static ssize_t modalias_show(struct device *dev, struct device_attribute *attr,
 16                              char *buf)
 17 {
 18         struct soundbus_dev *sdev = to_soundbus_device(dev);
 19         struct of_device *of = &sdev->ofdev;
 20         int length;
 21 
 22         if (*sdev->modalias) {
 23                 strlcpy(buf, sdev->modalias, sizeof(sdev->modalias) + 1);
 24                 strcat(buf, "\n");
 25                 length = strlen(buf);
 26         } else {
 27                 length = sprintf(buf, "of:N%sT%s\n",
 28                                  of->node->name, of->node->type);
 29         }
 30 
 31         return length;
 32 }
 33 
 34 soundbus_config_of_attr (name, "%s\n");
 35 soundbus_config_of_attr (type, "%s\n");
 36 
 37 struct device_attribute soundbus_dev_attrs[] = {
 38         __ATTR_RO(name),
 39         __ATTR_RO(type),
 40         __ATTR_RO(modalias),
 41         __ATTR_NULL
 42 };
 43 
  This page was automatically generated by the LXR engine.