master
1/* SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note */
2/*
3 * PPS generator API header
4 *
5 * Copyright (C) 2024 Rodolfo Giometti <giometti@enneenne.com>
6 */
7
8#ifndef _PPS_GEN_H_
9#define _PPS_GEN_H_
10
11#include <linux/types.h>
12#include <linux/ioctl.h>
13
14/**
15 * struct pps_gen_event - the PPS generator events
16 * @event: the event type
17 * @sequence: the event sequence number
18 *
19 * Userspace can get the last PPS generator event by using the
20 * ioctl(pps_gen, PPS_GEN_FETCHEVENT, ...) syscall.
21 * The sequence field can be used to save the last event ID, while in the
22 * event field is stored the last event type. Currently known event is:
23 *
24 * PPS_GEN_EVENT_MISSEDPULSE : last pulse was not generated
25 */
26struct pps_gen_event {
27 unsigned int event;
28 unsigned int sequence;
29};
30
31#define PPS_GEN_EVENT_MISSEDPULSE 1
32
33#define PPS_GEN_SETENABLE _IOW('p', 0xb1, unsigned int *)
34#define PPS_GEN_USESYSTEMCLOCK _IOR('p', 0xb2, unsigned int *)
35#define PPS_GEN_FETCHEVENT _IOR('p', 0xb3, struct pps_gen_event *)
36
37#endif /* _PPS_GEN_H_ */