netfilter: xt_connlimit: netns support
[safe/jmp/linux-2.6] / include / linux / platform_device.h
index 72736fd..71ff887 100644 (file)
@@ -20,9 +20,11 @@ struct platform_device {
        struct device   dev;
        u32             num_resources;
        struct resource * resource;
-       void            *platform_data;
 
        struct platform_device_id       *id_entry;
+
+       /* arch specific additions */
+       struct pdev_archdata    archdata;
 };
 
 #define platform_get_device_id(pdev)   ((pdev)->id_entry)
@@ -37,8 +39,8 @@ extern struct device platform_bus;
 
 extern struct resource *platform_get_resource(struct platform_device *, unsigned int, unsigned int);
 extern int platform_get_irq(struct platform_device *, unsigned int);
-extern struct resource *platform_get_resource_byname(struct platform_device *, unsigned int, char *);
-extern int platform_get_irq_byname(struct platform_device *, char *);
+extern struct resource *platform_get_resource_byname(struct platform_device *, unsigned int, const char *);
+extern int platform_get_irq_byname(struct platform_device *, const char *);
 extern int platform_add_devices(struct platform_device **, int);
 
 extern struct platform_device *platform_device_register_simple(const char *, int id,
@@ -58,8 +60,6 @@ struct platform_driver {
        int (*remove)(struct platform_device *);
        void (*shutdown)(struct platform_device *);
        int (*suspend)(struct platform_device *, pm_message_t state);
-       int (*suspend_late)(struct platform_device *, pm_message_t state);
-       int (*resume_early)(struct platform_device *);
        int (*resume)(struct platform_device *);
        struct device_driver driver;
        struct platform_device_id *id_table;
@@ -83,6 +83,8 @@ struct early_platform_driver {
        struct platform_driver *pdrv;
        struct list_head list;
        int requested_id;
+       char *buffer;
+       int bufsize;
 };
 
 #define EARLY_PLATFORM_ID_UNSET -2
@@ -102,21 +104,29 @@ extern int early_platform_driver_probe(char *class_str,
                                       int nr_probe, int user_only);
 extern void early_platform_cleanup(void);
 
+#define early_platform_init(class_string, platdrv)             \
+       early_platform_init_buffer(class_string, platdrv, NULL, 0)
 
 #ifndef MODULE
-#define early_platform_init(class_string, platform_driver)             \
+#define early_platform_init_buffer(class_string, platdrv, buf, bufsiz) \
 static __initdata struct early_platform_driver early_driver = {                \
        .class_str = class_string,                                      \
-       .pdrv = platform_driver,                                        \
+       .buffer = buf,                                                  \
+       .bufsize = bufsiz,                                              \
+       .pdrv = platdrv,                                                \
        .requested_id = EARLY_PLATFORM_ID_UNSET,                        \
 };                                                                     \
-static int __init early_platform_driver_setup_func(char *buf)          \
+static int __init early_platform_driver_setup_func(char *buffer)       \
 {                                                                      \
-       return early_platform_driver_register(&early_driver, buf);      \
+       return early_platform_driver_register(&early_driver, buffer);   \
 }                                                                      \
 early_param(class_string, early_platform_driver_setup_func)
 #else /* MODULE */
-#define early_platform_init(class_string, platform_driver)
+#define early_platform_init_buffer(class_string, platdrv, buf, bufsiz) \
+static inline char *early_platform_driver_setup_func(void)             \
+{                                                                      \
+       return bufsiz ? buf : NULL;                                     \
+}
 #endif /* MODULE */
 
 #endif /* _PLATFORM_DEVICE_H_ */