111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert/****************************************************************************
211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert ****************************************************************************
311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert ***
411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert ***   This header was automatically generated from a Linux kernel header
511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert ***   of the same name, to make information necessary for userspace to
611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert ***   call into the kernel available to libc.  It contains only constants,
711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert ***   structures, and macros generated from the original header, and thus,
811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert ***   contains no copyrightable information.
911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert ***
1011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert ***   To edit the content of this header, modify the corresponding
1111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert ***   source file (e.g. under external/kernel-headers/original/) then
1211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert ***   run bionic/libc/kernel/tools/update_all.py
1311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert ***
1411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert ***   Any manual change here will be lost the next time this script will
1511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert ***   be run. You've been warned!
1611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert ***
1711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert ****************************************************************************
1811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert ****************************************************************************/
1911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#ifndef _PPS_H_
2011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define _PPS_H_
2111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#include <linux/types.h>
2211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define PPS_VERSION "5.3.6"
2311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
2411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define PPS_MAX_SOURCES 16
2511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define PPS_API_VERS_1 1
2611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define PPS_API_VERS PPS_API_VERS_1
2711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define PPS_MAX_NAME_LEN 32
2811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
2911cd02dfb91661c65134cac258cf5924270e9d2Dan Albertstruct pps_ktime {
3011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __s64 sec;
3111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __s32 nsec;
3211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __u32 flags;
3311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
3411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert};
3511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define PPS_TIME_INVALID (1<<0)
3611cd02dfb91661c65134cac258cf5924270e9d2Dan Albertstruct pps_kinfo {
3711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __u32 assert_sequence;
3811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
3911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __u32 clear_sequence;
4011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert struct pps_ktime assert_tu;
4111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert struct pps_ktime clear_tu;
4211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert int current_mode;
4311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
4411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert};
4511cd02dfb91661c65134cac258cf5924270e9d2Dan Albertstruct pps_kparams {
4611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert int api_version;
4711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert int mode;
4811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
4911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert struct pps_ktime assert_off_tu;
5011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert struct pps_ktime clear_off_tu;
5111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert};
5211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define PPS_CAPTUREASSERT 0x01
5311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
5411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define PPS_CAPTURECLEAR 0x02
5511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define PPS_CAPTUREBOTH 0x03
5611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define PPS_OFFSETASSERT 0x10
5711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define PPS_OFFSETCLEAR 0x20
5811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
5911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define PPS_CANWAIT 0x100
6011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define PPS_CANPOLL 0x200
6111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define PPS_ECHOASSERT 0x40
6211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define PPS_ECHOCLEAR 0x80
6311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
6411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define PPS_TSFMT_TSPEC 0x1000
6511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define PPS_TSFMT_NTPFP 0x2000
6611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define PPS_KC_HARDPPS 0
6711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define PPS_KC_HARDPPS_PLL 1
6811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
6911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define PPS_KC_HARDPPS_FLL 2
7011cd02dfb91661c65134cac258cf5924270e9d2Dan Albertstruct pps_fdata {
7111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert struct pps_kinfo info;
7211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert struct pps_ktime timeout;
7311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
7411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert};
7511cd02dfb91661c65134cac258cf5924270e9d2Dan Albertstruct pps_bind_args {
7611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert int tsformat;
7711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert int edge;
7811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
7911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert int consumer;
8011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert};
8111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#include <linux/ioctl.h>
8211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define PPS_GETPARAMS _IOR('p', 0xa1, struct pps_kparams *)
8311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
8411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define PPS_SETPARAMS _IOW('p', 0xa2, struct pps_kparams *)
8511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define PPS_GETCAP _IOR('p', 0xa3, int *)
8611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define PPS_FETCH _IOWR('p', 0xa4, struct pps_fdata *)
8711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define PPS_KC_BIND _IOW('p', 0xa5, struct pps_bind_args *)
8811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
8911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#endif
90