]> git.ipfire.org Git - thirdparty/vala.git/commitdiff
linux: add adjtime(2) and adjtimex(2) with assorted flags and constants
authorMichael 'Mickey' Lauer <mickey@vanille-media.de>
Sun, 22 Nov 2009 23:00:14 +0000 (00:00 +0100)
committerMichael 'Mickey' Lauer <mickey@vanille-media.de>
Sun, 22 Nov 2009 23:00:14 +0000 (00:00 +0100)
vapi/linux.vapi

index dd06567e189903f6ac9cbb4b541ef9685b92be9c..caa2185b60eaf12966b8af501f7ef0daee08c007 100644 (file)
@@ -154,6 +154,54 @@ namespace Linux {
     [CCode (cheader_filename = "sched.h")]
     public int unshare (CloneFlags flags);
 
+    [CCode (cheader_filename = "sys/time.h")]
+    public int adjtime (Posix.timeval delta, Posix.timeval? olddelta = null);
+
+    // adjtimex(2)
+    [CCode (cprefix = "ADJ_", cheader_filename = "sys/timex.h")]
+    public enum AdjustModes {
+        OFFSET,
+        FREQUENCY,
+        MAXERROR,
+        ESTERROR,
+        STATUS,
+        TIMECONST,
+        TICK,
+        OFFSET_SINGLESHOT
+    }
+
+    [CCode (cheader_filename = "sys/timex.h")]
+    public const int TIME_OK;
+    [CCode (cheader_filename = "sys/timex.h")]
+    public const int TIME_INS;
+    [CCode (cheader_filename = "sys/timex.h")]
+    public const int TIME_DEL;
+    [CCode (cheader_filename = "sys/timex.h")]
+    public const int TIME_OOP;
+    [CCode (cheader_filename = "sys/timex.h")]
+    public const int TIME_WAIT;
+    [CCode (cheader_filename = "sys/timex.h")]
+    public const int TIME_BAD;
+
+    // adjtimex(2)
+    [CCode (cname = "struct timex", cheader_filename = "sys/timex.h")]
+    public struct timex {
+        public AdjustModes modes;   /* mode selector */
+        public long offset;         /* time offset (usec) */
+        public long freq;           /* frequency offset (scaled ppm) */
+        public long maxerror;       /* maximum error (usec) */
+        public long esterror;       /* estimated error (usec) */
+        public int status;          /* clock command/status */
+        public long constant;       /* pll time constant */
+        public long precision;      /* clock precision (usec) (read-only) */
+        public long tolerance;      /* clock frequency tolerance (ppm) (read-only) */
+        public Posix.timeval time;  /* current time (read-only) */
+        public long tick;           /* usecs between clock ticks */
+    }
+
+    [CCode (cheader_filename = "sys/timex.h")]
+    public int adjtimex (Linux.timex buf);
+
     [CCode (cheader_filename = "time.h")]
     public time_t timegm (GLib.Time t);