git.annexia.org
/
virt-df.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Convert everything to use int63 type throughout.
[virt-df.git]
/
lib
/
diskimage_mbr.ml
diff --git
a/lib/diskimage_mbr.ml
b/lib/diskimage_mbr.ml
index
07f9df8
..
30c5dc4
100644
(file)
--- a/
lib/diskimage_mbr.ml
+++ b/
lib/diskimage_mbr.ml
@@
-26,10
+26,11
@@
open ExtList
open Diskimage_utils
open Diskimage_utils
+open Int63.Operators
+
let plugin_id = "mbr"
let plugin_id = "mbr"
-let sector_size = 512
-let sector_size64 = 512L
+let sector_size = ~^512
(* Maximum number of extended partitions possible. *)
let max_extended_partitions = 100
(* Maximum number of extended partitions possible. *)
let max_extended_partitions = 100
@@
-47,8
+48,8
@@
let max_extended_partitions = 100
class partition_device partno start size dev =
let devname = dev#name in
let name = sprintf "%s%d" devname partno in
class partition_device partno start size dev =
let devname = dev#name in
let name = sprintf "%s%d" devname partno in
- let start = start *^ sector_size
64
in
- let size = size *^ sector_size
64
in
+ let start = start *^ sector_size in
+ let size = size *^ sector_size in
object (self)
inherit offset_device name start size sector_size dev
end
object (self)
inherit offset_device name start size sector_size dev
end
@@
-62,7
+63,7
@@
end
let rec probe dev =
(* Read the first sector. *)
let bits =
let rec probe dev =
(* Read the first sector. *)
let bits =
- try dev#read_bitstring
0L
sector_size
+ try dev#read_bitstring
~^0
sector_size
with exn -> raise Not_found in
(* Does this match a likely-looking MBR? *)
with exn -> raise Not_found in
(* Does this match a likely-looking MBR? *)
@@
-116,11
+117,16
@@
and parse_mbr_entry dev i bits =
part_dev = null_device; part_content = `Unknown }
and make_mbr_entry part_status dev partno part_type first_lba part_size =
part_dev = null_device; part_content = `Unknown }
and make_mbr_entry part_status dev partno part_type first_lba part_size =
- let first_lba = uint64_of_int32 first_lba in
- let part_size = uint64_of_int32 part_size in
+ let first_lba = Int63.of_int32 first_lba in
+ let part_size = Int63.of_int32 part_size in
+ (*
+ XXX Used to be:
+ let first_lba = uint63_of_int32 first_lba in
+ let part_size = uint63_of_int32 part_size in
+ *)
if !debug then
if !debug then
- eprintf "make_mbr_entry: first_lba = %
Lx part_size = %Lx
\n%!"
-
first_lba part_size
;
+ eprintf "make_mbr_entry: first_lba = %
s part_size = %s
\n%!"
+
(Int63.to_string first_lba) (Int63.to_string part_size)
;
{ part_status = part_status;
part_type = part_type;
part_dev = new partition_device partno first_lba part_size dev;
{ part_status = part_status;
part_type = part_type;
part_dev = new partition_device partno first_lba part_size dev;
@@
-169,6
+175,7
@@
and probe_extended_partition max fd epart sect =
else []
*)
else []
*)
+(*
(* Ugh, fake a UInt32 -> UInt64 conversion without sign extension, until
* we get working UInt32/UInt64 modules in extlib.
*)
(* Ugh, fake a UInt32 -> UInt64 conversion without sign extension, until
* we get working UInt32/UInt64 modules in extlib.
*)
@@
-176,3
+183,4
@@
and uint64_of_int32 u32 =
let i64 = Int64.of_int32 u32 in
if u32 >= 0l then i64
else Int64.add i64 0x1_0000_0000_L
let i64 = Int64.of_int32 u32 in
if u32 >= 0l then i64
else Int64.add i64 0x1_0000_0000_L
+*)