1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26
|
#include <sys/types.h>
#include <sys/stat.h>
#include <fcntl.h>
#include <unistd.h>
bool disk_dev_open(disk_dev_t *dev, const char *path)
{
dev->fd = open(path, O_RDWR|O_DIRECT);
return dev->fd >= 0;
}
void disk_dev_close(disk_dev_t *dev)
{
close(dev->fd);
dev->fd = -1;
}
ssize_t disk_dev_read(disk_dev_t *dev, uint64_t offset_bytes, uint32_t len_bytes, void *buf)
{
return pread(dev->fd, buf, len_bytes, offset_bytes);
}
ssize_t disk_dev_write(disk_dev_t *dev, uint64_t offset_bytes, uint32_t len_bytes, void *buf)
{
return pwrite(dev->fd, buf, len_bytes, offset_bytes);
}
|