19f532d00SPekka Enberg #ifndef KVM__DISK_IMAGE_H 29f532d00SPekka Enberg #define KVM__DISK_IMAGE_H 39f532d00SPekka Enberg 49f532d00SPekka Enberg #include <stdint.h> 59f532d00SPekka Enberg 6*2924f993SAsias He #define SECTOR_SHIFT 9 7*2924f993SAsias He #define SECTOR_SIZE (1UL << SECTOR_SHIFT) 8*2924f993SAsias He 99f532d00SPekka Enberg struct disk_image { 109f532d00SPekka Enberg void *mmap; 119f532d00SPekka Enberg int fd; 129f532d00SPekka Enberg uint64_t size; 139f532d00SPekka Enberg }; 149f532d00SPekka Enberg 159f532d00SPekka Enberg struct disk_image *disk_image__open(const char *filename); 169f532d00SPekka Enberg void disk_image__close(struct disk_image *self); 175a24a9f2SPekka Enberg int disk_image__read_sector(struct disk_image *self, uint64_t sector, void *dst, uint32_t dst_len); 18258dd093SPekka Enberg int disk_image__write_sector(struct disk_image *self, uint64_t sector, void *src, uint32_t src_len); 199f532d00SPekka Enberg 209f532d00SPekka Enberg #endif /* KVM__DISK_IMAGE_H */ 21