mirror of
https://git.freebsd.org/ports.git
synced 2025-05-23 04:03:14 -04:00
37 lines
948 B
Text
37 lines
948 B
Text
Index: qemu/qemu-mkcow.c
|
|
@@ -21,6 +21,8 @@
|
|
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
|
* THE SOFTWARE.
|
|
*/
|
|
+#include "config-host.h"
|
|
+
|
|
#include <stdlib.h>
|
|
#include <stdio.h>
|
|
#include <stdarg.h>
|
|
@@ -36,6 +38,12 @@
|
|
#include <sys/stat.h>
|
|
#include <netinet/in.h>
|
|
|
|
+#ifdef _BSD
|
|
+#include <sys/types.h>
|
|
+#include <sys/ioctl.h>
|
|
+#include <sys/disk.h>
|
|
+#endif
|
|
+
|
|
#include "cow.h"
|
|
|
|
#include "bswap.h"
|
|
@@ -56,6 +64,13 @@ int cow_create(int cow_fd, const char *i
|
|
perror(image_filename);
|
|
exit(1);
|
|
}
|
|
+#ifdef _BSD
|
|
+ struct stat sb;
|
|
+ if (!fstat(fd,&sb) && (S_IFCHR & sb.st_mode)) {
|
|
+ if (ioctl(fd, DIOCGMEDIASIZE, (off_t *)&image_sectors))
|
|
+ image_sectors = lseek(fd, 0LL, SEEK_END);
|
|
+ } else
|
|
+#endif
|
|
image_sectors = lseek64(fd, 0, SEEK_END);
|
|
if (fstat(fd, &st) != 0) {
|
|
close(fd);
|