|
@@ -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)
|