X-Git-Url: https://code.delx.au/gnu-emacs/blobdiff_plain/732fd4c7e11debd61c97eaaba3038d61e6ec7024..0a2aedfe6d650e825a50f25f972bac20d669f5cb:/src/systime.h diff --git a/src/systime.h b/src/systime.h index 40139a1b93..355a3c23fa 100644 --- a/src/systime.h +++ b/src/systime.h @@ -1,12 +1,12 @@ /* systime.h - System-dependent definitions for time manipulations. - Copyright (C) 1993-1994, 2002-2015 Free Software Foundation, Inc. + Copyright (C) 1993-1994, 2002-2016 Free Software Foundation, Inc. This file is part of GNU Emacs. GNU Emacs is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by -the Free Software Foundation, either version 3 of the License, or -(at your option) any later version. +the Free Software Foundation, either version 3 of the License, or (at +your option) any later version. GNU Emacs is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of @@ -83,13 +83,25 @@ extern struct timeval make_timeval (struct timespec) ATTRIBUTE_CONST; extern void set_waiting_for_input (struct timespec *); /* When lisp.h is not included Lisp_Object is not defined (this can - happen when this files is used outside the src directory). - Use GCPRO1 to determine if lisp.h was included. */ -#ifdef GCPRO1 + happen when this file is used outside the src directory). */ +#ifdef emacs + +/* Emacs uses the integer list (HI LO US PS) to represent the time + (HI << LO_TIME_BITS) + LO + US / 1e6 + PS / 1e12. */ +enum { LO_TIME_BITS = 16 }; + +/* A Lisp time (HI LO US PS), sans the cons cells. */ +struct lisp_time +{ + EMACS_INT hi; + int lo, us, ps; +}; + /* defined in editfns.c */ extern Lisp_Object make_lisp_time (struct timespec); -extern bool decode_time_components (Lisp_Object, Lisp_Object, Lisp_Object, - Lisp_Object, struct timespec *, double *); +extern int decode_time_components (Lisp_Object, Lisp_Object, Lisp_Object, + Lisp_Object, struct lisp_time *, double *); +extern struct timespec lisp_to_timespec (struct lisp_time); extern struct timespec lisp_time_argument (Lisp_Object); #endif