fs: limit filesystem stacking depth
[pandora-kernel.git] / include / linux / pps_kernel.h
index 9404854..ce2ab3d 100644 (file)
@@ -43,7 +43,7 @@ struct pps_source_info {
                        int event, void *data); /* PPS echo function */
 
        struct module *owner;
-       struct device *dev;
+       struct device *dev;             /* Parent device for device_create */
 };
 
 struct pps_event_time {
@@ -69,6 +69,7 @@ struct pps_device {
        wait_queue_head_t queue;                /* PPS event queue */
 
        unsigned int id;                        /* PPS source unique ID */
+       void const *lookup_cookie;              /* pps_lookup_dev only */
        struct cdev cdev;
        struct device *dev;
        struct fasync_struct *async_queue;      /* fasync method */
@@ -81,6 +82,16 @@ struct pps_device {
 
 extern struct device_attribute pps_attrs[];
 
+/*
+ * Internal functions.
+ *
+ * These are not actually part of the exported API, but this is a
+ * convenient header file to put them in.
+ */
+
+extern int pps_register_cdev(struct pps_device *pps);
+extern void pps_unregister_cdev(struct pps_device *pps);
+
 /*
  * Exported functions
  */
@@ -88,10 +99,10 @@ extern struct device_attribute pps_attrs[];
 extern struct pps_device *pps_register_source(
                struct pps_source_info *info, int default_params);
 extern void pps_unregister_source(struct pps_device *pps);
-extern int pps_register_cdev(struct pps_device *pps);
-extern void pps_unregister_cdev(struct pps_device *pps);
 extern void pps_event(struct pps_device *pps,
                struct pps_event_time *ts, int event, void *data);
+/* Look up a pps device by magic cookie */
+struct pps_device *pps_lookup_dev(void const *cookie);
 
 static inline void timespec_to_pps_ktime(struct pps_ktime *kt,
                struct timespec ts)