#ifndef LINUX_PPS_KERNEL_H
#define LINUX_PPS_KERNEL_H
#include <linux/pps.h>
#include <linux/cdev.h>
#include <linux/device.h>
#include <linux/time.h>
struct pps_device;
struct pps_source_info { … };
struct pps_event_time { … };
struct pps_device { … };
extern const struct attribute_group *pps_groups[];
extern int pps_register_cdev(struct pps_device *pps);
extern void pps_unregister_cdev(struct pps_device *pps);
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 void pps_event(struct pps_device *pps,
struct pps_event_time *ts, int event, void *data);
struct pps_device *pps_lookup_dev(void const *cookie);
static inline void timespec_to_pps_ktime(struct pps_ktime *kt,
struct timespec64 ts)
{ … }
static inline void pps_get_ts(struct pps_event_time *ts)
{ … }
static inline void pps_sub_ts(struct pps_event_time *ts, struct timespec64 delta)
{ … }
#endif