Commit 57d1a2b62c3a89533bf50297a606ed028068e18e

Authored by bellard
1 parent d5249393

win32 port


git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@1041 c046a42c-6fe2-441c-8c8c-71466251a162
Showing 2 changed files with 36 additions and 9 deletions
qemu-img.c
@@ -113,7 +113,7 @@ void __attribute__((noreturn)) error(const char *fmt, ...) @@ -113,7 +113,7 @@ void __attribute__((noreturn)) error(const char *fmt, ...)
113 { 113 {
114 va_list ap; 114 va_list ap;
115 va_start(ap, fmt); 115 va_start(ap, fmt);
116 - fprintf(stderr, "qemuimg: "); 116 + fprintf(stderr, "qemu-img: ");
117 vfprintf(stderr, fmt, ap); 117 vfprintf(stderr, fmt, ap);
118 fprintf(stderr, "\n"); 118 fprintf(stderr, "\n");
119 exit(1); 119 exit(1);
@@ -127,8 +127,8 @@ static void format_print(void *opaque, const char *name) @@ -127,8 +127,8 @@ static void format_print(void *opaque, const char *name)
127 127
128 void help(void) 128 void help(void)
129 { 129 {
130 - printf("qemuimg version " QEMU_VERSION ", Copyright (c) 2004 Fabrice Bellard\n"  
131 - "usage: qemuimg command [command options]\n" 130 + printf("qemu-img version " QEMU_VERSION ", Copyright (c) 2004 Fabrice Bellard\n"
  131 + "usage: qemu-img command [command options]\n"
132 "QEMU disk image utility\n" 132 "QEMU disk image utility\n"
133 "\n" 133 "\n"
134 "Command syntax:\n" 134 "Command syntax:\n"
@@ -592,6 +592,24 @@ static int img_convert(int argc, char **argv) @@ -592,6 +592,24 @@ static int img_convert(int argc, char **argv)
592 return 0; 592 return 0;
593 } 593 }
594 594
  595 +#ifdef _WIN32
  596 +static int64_t get_allocated_file_size(const char *filename)
  597 +{
  598 + struct _stati64 st;
  599 + if (_stati64(filename, &st) < 0)
  600 + return -1;
  601 + return st.st_size;
  602 +}
  603 +#else
  604 +static int64_t get_allocated_file_size(const char *filename)
  605 +{
  606 + struct stat st;
  607 + if (stat(filename, &st) < 0)
  608 + return -1;
  609 + return (int64_t)st.st_blocks * 512;
  610 +}
  611 +#endif
  612 +
595 static int img_info(int argc, char **argv) 613 static int img_info(int argc, char **argv)
596 { 614 {
597 int c; 615 int c;
@@ -599,8 +617,7 @@ static int img_info(int argc, char **argv) @@ -599,8 +617,7 @@ static int img_info(int argc, char **argv)
599 BlockDriver *drv; 617 BlockDriver *drv;
600 BlockDriverState *bs; 618 BlockDriverState *bs;
601 char fmt_name[128], size_buf[128], dsize_buf[128]; 619 char fmt_name[128], size_buf[128], dsize_buf[128];
602 - int64_t total_sectors;  
603 - struct stat st; 620 + int64_t total_sectors, allocated_size;
604 621
605 fmt = NULL; 622 fmt = NULL;
606 for(;;) { 623 for(;;) {
@@ -637,10 +654,11 @@ static int img_info(int argc, char **argv) @@ -637,10 +654,11 @@ static int img_info(int argc, char **argv)
637 bdrv_get_format(bs, fmt_name, sizeof(fmt_name)); 654 bdrv_get_format(bs, fmt_name, sizeof(fmt_name));
638 bdrv_get_geometry(bs, &total_sectors); 655 bdrv_get_geometry(bs, &total_sectors);
639 get_human_readable_size(size_buf, sizeof(size_buf), total_sectors * 512); 656 get_human_readable_size(size_buf, sizeof(size_buf), total_sectors * 512);
640 - if (stat(filename, &st) < 0)  
641 - error("Could not stat '%s'", filename); 657 + allocated_size = get_allocated_file_size(filename);
  658 + if (allocated_size < 0)
  659 + error("Could not get file size '%s'", filename);
642 get_human_readable_size(dsize_buf, sizeof(dsize_buf), 660 get_human_readable_size(dsize_buf, sizeof(dsize_buf),
643 - (int64_t)st.st_blocks * 512); 661 + allocated_size);
644 printf("image: %s\n" 662 printf("image: %s\n"
645 "file format: %s\n" 663 "file format: %s\n"
646 "virtual size: %s (%lld bytes)\n" 664 "virtual size: %s (%lld bytes)\n"
@@ -45,7 +45,16 @@ @@ -45,7 +45,16 @@
45 #endif 45 #endif
46 46
47 #ifdef _WIN32 47 #ifdef _WIN32
48 -#define lseek64 _lseeki64 48 +#define lseek _lseeki64
  49 +#define ENOTSUP 4096
  50 +/* XXX: find 64 bit version */
  51 +#define ftruncate chsize
  52 +
  53 +static inline char *realpath(const char *path, char *resolved_path)
  54 +{
  55 + _fullpath(resolved_path, path, _MAX_PATH);
  56 + return resolved_path;
  57 +}
49 #endif 58 #endif
50 59
51 #ifdef QEMU_TOOL 60 #ifdef QEMU_TOOL