y16t/lib/y16t_internal.h
2023-01-03 23:13:32 +01:00

17 lines
512 B
C

// SPDX-License-Identifier: ISC
#pragma once
#include <sys/types.h>
#include <inttypes.h>
// conversion between hilbert curve distance and x,y values
__attribute__((pure))
uint32_t y16t_hilbert_xy2d(uint32_t n, uint32_t x, uint32_t y);
void y16t_hilbert_d2xy(uint32_t n, uint32_t d, uint32_t *x, uint32_t *y);
// handling of resumption of pread/pwrite calls
ssize_t y16t_pread_all(int fd, void *buf, size_t nbyte, off_t offset);
ssize_t y16t_pwrite_all(int fd, const void *buf, size_t nbyte, off_t offset);