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 #ifndef _LINUX_FIRMWARE_H
  2 #define _LINUX_FIRMWARE_H
  3 
  4 #include <linux/module.h>
  5 #include <linux/types.h>
  6 #include <linux/compiler.h>
  7 
  8 #define FW_ACTION_NOHOTPLUG 0
  9 #define FW_ACTION_HOTPLUG 1
 10 
 11 struct firmware {
 12         size_t size;
 13         const u8 *data;
 14 };
 15 
 16 struct device;
 17 
 18 struct builtin_fw {
 19         char *name;
 20         void *data;
 21         unsigned long size;
 22 };
 23 
 24 /* We have to play tricks here much like stringify() to get the
 25    __COUNTER__ macro to be expanded as we want it */
 26 #define __fw_concat1(x, y) x##y
 27 #define __fw_concat(x, y) __fw_concat1(x, y)
 28 
 29 #define DECLARE_BUILTIN_FIRMWARE(name, blob)                                 \
 30         DECLARE_BUILTIN_FIRMWARE_SIZE(name, &(blob), sizeof(blob))
 31 
 32 #define DECLARE_BUILTIN_FIRMWARE_SIZE(name, blob, size)                      \
 33         static const struct builtin_fw __fw_concat(__builtin_fw,__COUNTER__) \
 34         __used __section(.builtin_fw) = { name, blob, size }
 35 
 36 #if defined(CONFIG_FW_LOADER) || (defined(CONFIG_FW_LOADER_MODULE) && defined(MODULE))
 37 int request_firmware(const struct firmware **fw, const char *name,
 38                      struct device *device);
 39 int request_firmware_nowait(
 40         struct module *module, int uevent,
 41         const char *name, struct device *device, void *context,
 42         void (*cont)(const struct firmware *fw, void *context));
 43 
 44 void release_firmware(const struct firmware *fw);
 45 #else
 46 static inline int request_firmware(const struct firmware **fw,
 47                                    const char *name,
 48                                    struct device *device)
 49 {
 50         return -EINVAL;
 51 }
 52 static inline int request_firmware_nowait(
 53         struct module *module, int uevent,
 54         const char *name, struct device *device, void *context,
 55         void (*cont)(const struct firmware *fw, void *context))
 56 {
 57         return -EINVAL;
 58 }
 59 
 60 static inline void release_firmware(const struct firmware *fw)
 61 {
 62 }
 63 #endif
 64 
 65 #endif
 66 
  This page was automatically generated by the LXR engine.