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_ */