From a27913a47d81b61ca176d927cd5d43e64c11def9 Mon Sep 17 00:00:00 2001 From: Richard Nyberg Date: Tue, 12 Sep 2006 08:55:53 +0000 Subject: Add functions for conversions between binary data and ascii hex. Add function for reading a whole file. Enable printf format checking for some functions. --- misc/subr.h | 11 +++++++++++ 1 file changed, 11 insertions(+) (limited to 'misc/subr.h') diff --git a/misc/subr.h b/misc/subr.h index 9260ed9..bf30433 100644 --- a/misc/subr.h +++ b/misc/subr.h @@ -5,14 +5,18 @@ #include #define min(x, y) ((x) <= (y) ? (x) : (y)) +#define SHAHEXSIZE 41 int set_nonblocking(int fd); int set_blocking(int fd); int mkdirs(char *path); +__attribute__((format (printf, 3, 0))) int vaopen(int *resfd, int flags, const char *fmt, va_list ap); +__attribute__((format (printf, 3, 4))) int vopen(int *resfd, int flags, const char *fmt, ...); +__attribute__((format (printf, 3, 4))) int vfopen(FILE **ret, const char *mode, const char *fmt, ...); int vfsync(const char *fmt, ...); @@ -20,10 +24,17 @@ void set_bit(uint8_t *bits, unsigned long index); int has_bit(const uint8_t *bits, unsigned long index); void clear_bit(uint8_t *bits, unsigned long index); +char *bin2hex(const uint8_t *bin, char *hex, size_t bsize); +uint8_t *hex2bin(const char *hex, uint8_t *bin, size_t bsize); +uint8_t hex2i(char c); +int ishex(char *str); + long rand_between(long min, long max); int read_fully(int fd, void *buf, size_t len); int write_fully(int fd, const void *buf, size_t len); +__attribute__((format (printf, 3, 4))) +int read_whole_file(void **out, size_t *size, const char *fmt, ...); char *find_btpd_dir(void); -- cgit 1.4.1