X-Git-Url: http://www.chiark.greenend.org.uk/ucgi/~ian/git?a=blobdiff_plain;ds=sidebyside;f=secnet.h;h=49afd322e83130506da37f96e3036e7ea57efed0;hb=076bb54e68477f883033bee696c9c5f801ece2f2;hp=3186ac21de3b432c407a4053e224eb7c66e06e6f;hpb=1caa23ff879cec7f8f36b32a987f0610291ef177;p=secnet.git diff --git a/secnet.h b/secnet.h index 3186ac2..49afd32 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 @@ -432,7 +438,7 @@ struct dh_if { /* HASH interface */ typedef void *hash_init_fn(void); -typedef void hash_update_fn(void *st, uint8_t const *buf, int32_t len); +typedef void hash_update_fn(void *st, const void *buf, int32_t len); typedef void hash_final_fn(void *st, uint8_t *digest); struct hash_if { int32_t len; /* Hash output length in bytes */ @@ -489,4 +495,9 @@ extern void log_from_fd(int fd, cstring_t prefix, struct log_if *log); /***** END of log functions *****/ +#define STRING2(x) #x +#define STRING(x) STRING2(x) + +#define FILLZERO(obj) (memset(&(obj),0,sizeof((obj)))) + #endif /* secnet_h */