/* * Copyright 2014 Con Kolivas * * This program 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. See COPYING for more details. */ /* This file should contain all exported functions of libckpool */ #ifndef LIBCKPOOL_H #define LIBCKPOOL_H #include #include static inline bool sock_connecting(void) { return errno == EINPROGRESS; } static inline bool sock_blocks(void) { return (errno == EAGAIN || errno == EWOULDBLOCK); } static inline bool sock_timeout(void) { return (errno == ETIMEDOUT); } static inline bool interrupted(void) { return (errno == EINTR); } void keep_sockalive(int fd); void noblock_socket(int fd); void block_socket(int fd); bool sock_connecting(void); void align_len(size_t *len); void __bin2hex(uchar *s, const uchar *p, size_t len); void *bin2hex(const uchar *p, size_t len); bool hex2bin(uchar *p, const uchar *hexstr, size_t len); void b58tobin(uchar *b58bin, const uchar *b58); void address_to_pubkeytxn(uchar *pkh, const uchar *addr); int ser_number(uchar *s, int32_t val); bool fulltest(const uchar *hash, const uchar *target); void copy_tv(tv_t *dest, const tv_t *src); void ts_to_tv(tv_t *val, const ts_t *spec); void tv_to_ts(ts_t *spec, const tv_t *val); void us_to_tv(tv_t *val, int64_t us); void us_to_ts(ts_t *spec, int64_t us); void ms_to_ts(ts_t *spec, int64_t ms); void ms_to_tv(tv_t *val, int64_t ms); void tv_time(tv_t *tv); void ts_time(ts_t *ts); void cksleep_prepare_r(ts_t *ts); void nanosleep_abstime(ts_t *ts_end); void timeraddspec(ts_t *a, const ts_t *b); void cksleep_ms_r(ts_t *ts_start, int ms); void cksleep_us_r(ts_t *ts_start, int64_t us); void cksleep_ms(int ms); void cksleep_us(int64_t us); double us_tvdiff(tv_t *end, tv_t *start); int ms_tvdiff(tv_t *end, tv_t *start); double tvdiff(tv_t *end, tv_t *start); #endif /* LIBCKPOOL_H */