summaryrefslogtreecommitdiffstats
path: root/include
diff options
context:
space:
mode:
authorphk <phk@FreeBSD.org>1998-06-07 19:44:22 +0000
committerphk <phk@FreeBSD.org>1998-06-07 19:44:22 +0000
commita3d971d99da6c9c2a860d0863b2f7995f7605ffb (patch)
tree6e38c7241c6cc85503b065f6f77935df169cbecb /include
parent7926e3cc5bd26a7c5a3e810760d4e3d3fdeccb73 (diff)
downloadFreeBSD-src-a3d971d99da6c9c2a860d0863b2f7995f7605ffb.zip
FreeBSD-src-a3d971d99da6c9c2a860d0863b2f7995f7605ffb.tar.gz
This is a prototype implementation of the draft-mogul-pps-api-##.txt
paper. It will be updated along with the draft and possible subsequent standard. The ppbus based pps driver is updated to implement this API.
Diffstat (limited to 'include')
-rw-r--r--include/Makefile6
-rw-r--r--include/timepps.h86
2 files changed, 89 insertions, 3 deletions
diff --git a/include/Makefile b/include/Makefile
index cca7b0b..a03da72 100644
--- a/include/Makefile
+++ b/include/Makefile
@@ -1,5 +1,5 @@
# From: @(#)Makefile 8.2 (Berkeley) 1/4/94
-# $Id: Makefile,v 1.76 1998/03/28 11:48:14 dufault Exp $
+# $Id: Makefile,v 1.77 1998/05/21 19:21:43 eivind Exp $
#
# Doing a make install builds /usr/include
#
@@ -18,8 +18,8 @@ FILES= a.out.h ar.h assert.h bitstring.h ctype.h db.h dirent.h disktab.h \
paths.h pthread.h pthread_np.h pwd.h \
ranlib.h regex.h regexp.h resolv.h rune.h runetype.h setjmp.h sgtty.h \
signal.h stab.h stddef.h stdio.h stdlib.h string.h stringlist.h \
- strings.h struct.h sysexits.h tar.h time.h timers.h ttyent.h unistd.h \
- utime.h utmp.h vis.h
+ strings.h struct.h sysexits.h tar.h time.h timepps.h timers.h \
+ ttyent.h unistd.h utime.h utmp.h vis.h
.if defined(WANT_CSRG_LIBM)
FILES+= math.h
.endif
diff --git a/include/timepps.h b/include/timepps.h
new file mode 100644
index 0000000..c9277ce
--- /dev/null
+++ b/include/timepps.h
@@ -0,0 +1,86 @@
+/*
+ * ----------------------------------------------------------------------------
+ * "THE BEER-WARE LICENSE" (Revision 42):
+ * <phk@FreeBSD.org> wrote this file. As long as you retain this notice you
+ * can do whatever you want with this stuff. If we meet some day, and you think
+ * this stuff is worth it, you can buy me a beer in return. Poul-Henning Kamp
+ * ----------------------------------------------------------------------------
+ *
+ * $Id$
+ *
+ * The is a FreeBSD protype version of the "draft-mogul-pps-api-02.txt"
+ * specification for Pulse Per Second timing interfaces.
+ *
+ */
+
+#ifndef _TIME_PPS_H_
+#define _TIME_PPS_H_
+
+#include <sys/timepps.h>
+
+int time_pps_create(int filedes, pps_handle_t *handle);
+int time_pps_destroy(pps_handle_t handle);
+int time_pps_setparams(pps_handle_t handle, const pps_params_t *ppsparams);
+int time_pps_getparams(pps_handle_t handle, pps_params_t *ppsparams);
+int time_pps_getcap(pps_handle_t handle, int *mode);
+int time_pps_fetch(pps_handle_t handle, pps_info_t *ppsinfobuf);
+int time_pps_wait(pps_handle_t handle, const struct timespec *timeout,
+ pps_info_t *ppsinfobuf);
+
+__inline int
+time_pps_create(int filedes, pps_handle_t *handle)
+{
+ int error;
+
+ *handle = -1;
+ error = ioctl(filedes, PPS_IOC_CREATE, 0);
+ if (error < 0)
+ return (-1);
+ *handle = filedes;
+ return (0);
+}
+
+__inline int
+time_pps_destroy(pps_handle_t handle)
+{
+ return (ioctl(handle, PPS_IOC_DESTROY, 0));
+}
+
+__inline int
+time_pps_setparams(pps_handle_t handle, const pps_params_t *ppsparams)
+{
+ return (ioctl(handle, PPS_IOC_SETPARAMS, ppsparams));
+}
+
+__inline int
+time_pps_getparams(pps_handle_t handle, pps_params_t *ppsparams)
+{
+ return (ioctl(handle, PPS_IOC_GETPARAMS, ppsparams));
+}
+
+__inline int
+time_pps_getcap(pps_handle_t handle, int *mode)
+{
+ return (ioctl(handle, PPS_IOC_GETCAP, mode));
+}
+
+__inline int
+time_pps_fetch(pps_handle_t handle, pps_info_t *ppsinfobuf)
+{
+ return (ioctl(handle, PPS_IOC_FETCH, ppsinfobuf));
+}
+
+__inline int
+time_pps_wait(pps_handle_t handle, const struct timespec *timeout,
+ pps_info_t *ppsinfobuf)
+{
+ int error;
+ struct pps_wait_args arg;
+
+ arg.timeout = *timeout;
+ error = ioctl(handle, PPS_IOC_WAIT, &arg);
+ *ppsinfobuf = arg.pps_info_buf;
+ return (error);
+}
+
+#endif /* !_TIME_PPS_H_ */
OpenPOWER on IntegriCloud