34#include "xtc_export.h"
49#if defined(_WIN32) && defined(_MSC_VER)
50# ifndef _SSIZE_T_DEFINED
51# define _SSIZE_T_DEFINED
53typedef SSIZE_T ssize_t;
56# include <sys/types.h>
61#define XTC_BDEV_READ 0x01u
62#define XTC_BDEV_WRITE 0x02u
65typedef struct xtc_bdev xtc_bdev_t;
74XTC_API
int xtc_bdev_open(
const char *path,
int flags, xtc_bdev_t **out);
81XTC_API
void xtc_bdev_close(xtc_bdev_t *b);
92XTC_API uint32_t xtc_bdev_logical_sector(
const xtc_bdev_t *b);
93XTC_API uint32_t xtc_bdev_physical_sector(
const xtc_bdev_t *b);
94XTC_API uint64_t xtc_bdev_capacity(
const xtc_bdev_t *b);
107XTC_API ssize_t xtc_bdev_pread(xtc_bdev_t *b,
void *buf,
size_t n, uint64_t off);
108XTC_API ssize_t xtc_bdev_pwrite(xtc_bdev_t *b,
const void *buf,
size_t n, uint64_t off);
116XTC_API
int xtc_bdev_flush(xtc_bdev_t *b);