47#if defined(_WIN32) && defined(_MSC_VER)
48# ifndef _SSIZE_T_DEFINED
49# define _SSIZE_T_DEFINED
51typedef SSIZE_T ssize_t;
54# include <sys/types.h>
59#define XTC_BDEV_READ 0x01u
60#define XTC_BDEV_WRITE 0x02u
63typedef struct xtc_bdev xtc_bdev_t;
72int xtc_bdev_open(
const char *path,
int flags, xtc_bdev_t **out);
79void xtc_bdev_close(xtc_bdev_t *b);
90uint32_t xtc_bdev_logical_sector(
const xtc_bdev_t *b);
91uint32_t xtc_bdev_physical_sector(
const xtc_bdev_t *b);
92uint64_t xtc_bdev_capacity(
const xtc_bdev_t *b);
105ssize_t xtc_bdev_pread(xtc_bdev_t *b,
void *buf,
size_t n, uint64_t off);
106ssize_t xtc_bdev_pwrite(xtc_bdev_t *b,
const void *buf,
size_t n, uint64_t off);
114int xtc_bdev_flush(xtc_bdev_t *b);