X-Git-Url: http://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?a=blobdiff_plain;f=secnet.h;h=9cc22059ad0272e189a4b54d3b5a505d67b7e71f;hb=16f73fa6cc7426276bc4bd0cc8537d08c64cbc83;hp=3186ac21de3b432c407a4053e224eb7c66e06e6f;hpb=1caa23ff879cec7f8f36b32a987f0610291ef177;p=secnet.git diff --git a/secnet.h b/secnet.h index 3186ac2..9cc2205 100644 --- a/secnet.h +++ b/secnet.h @@ -148,19 +148,25 @@ extern void *safe_malloc_ary(size_t size, size_t count, const char *message); extern int sys_cmd(const char *file, const char *argc, ...); +extern uint64_t now_global; +extern struct timeval tv_now_global; + +static const uint64_t *const now = &now_global; +static const struct timeval *const tv_now = &tv_now_global; + +/* "now" is current program time, in milliseconds. It is derived + from tv_now. Both are provided by the event loop. */ + /***** END of utility functions *****/ /***** SCHEDULING support */ -/* "now" is current program time, in milliseconds. It is derived - (once) from tv_now. If nfds_io is insufficient for your needs, set - it to the required number and return ERANGE. timeout is in milliseconds; - if it is too high then lower it. It starts at -1 (==infinite) */ +/* If nfds_io is insufficient for your needs, set it to the required + number and return ERANGE. timeout is in milliseconds; if it is too + high then lower it. It starts at -1 (==infinite) */ typedef int beforepoll_fn(void *st, struct pollfd *fds, int *nfds_io, - int *timeout_io, const struct timeval *tv_now, - uint64_t *now); -typedef void afterpoll_fn(void *st, struct pollfd *fds, int nfds, - const struct timeval *tv_now, uint64_t *now); + int *timeout_io); +typedef void afterpoll_fn(void *st, struct pollfd *fds, int nfds); /* Register interest in the main loop of the program. Before a call to poll() your supplied beforepoll function will be called. After