/* * Copyright (c) 2016, NORDUnet A/S. * See LICENSE for licensing information. */ #define _GNU_SOURCE #include #include #include #include #include #include #include #include #include #include #include #include "erlport.h" #include "permdb.h" #include "util.h" void set_error(char **error, const char *format, ...) { va_list args; int ret; if (error == NULL) { return; } va_start(args, format); char *formatted = NULL; ret = vasprintf (&formatted, format, args); if (ret == -1) { fprintf(stderr, "vasprintf error\n"); return; } if (*error) { free(*error); } fprintf(stderr, "error: %s\n", formatted); *error = formatted; va_end(args); } int calc_padding(int offset, int alignment) { int misalign = offset % alignment; if (misalign == 0) { return 0; } return alignment - misalign; } void print_entry(node_object node) { for (int i = 0; i < entriespernode; i++) { fprintf(stderr, " %016llx", (long long unsigned int)node.data[i]); } fprintf(stderr, "\n"); } void print_hex(const void *data, int length) { for (int i = 0; i < length; i++) { fprintf(stderr, "%02X ", ((unsigned char *)data)[i]); } fprintf(stderr, "\n"); } uint64_t read_host64(void *ptr) { uint64_t data; memcpy(&data, ptr, sizeof(data)); return data; } uint32_t read_be32(void *ptr) { uint32_t data; memcpy(&data, ptr, sizeof(data)); return ntohl(data); } uint16_t read_be16(void *ptr) { uint16_t data; memcpy(&data, ptr, sizeof(data)); return ntohs(data); } /* Local Variables: */ /* c-file-style: "BSD" */ /* End: */