@@ -14,13 +14,13 @@ struct solaris_x86_slice {
};
struct solaris_x86_vtoc {
- unsigned long v_bootinfo[3]; /* info for mboot */
- unsigned long v_sanity; /* to verify vtoc sanity */
- unsigned long v_version; /* layout version */
+ unsigned int v_bootinfo[3]; /* info for mboot */
+ uint32_t v_sanity; /* to verify vtoc sanity */
+ uint32_t v_version; /* layout version */
char v_volume[8]; /* volume name */
- unsigned short v_sectorsz; /* sector size in bytes */
- unsigned short v_nparts; /* number of partitions */
- unsigned long v_reserved[10]; /* free space */
+ uint16_t v_sectorsz; /* sector size in bytes */
+ uint16_t v_nparts; /* number of partitions */
+ unsigned int v_reserved[10]; /* free space */
struct solaris_x86_slice
v_slice[SOLARIS_X86_NUMSLICE]; /* slice headers */
time_t timestamp[SOLARIS_X86_NUMSLICE]; /* timestamp */
@@ -44,7 +44,7 @@ read_solaris_pt(int fd, struct slice all, struct slice *sp, int ns) {
return -1;
if(v->v_version != 1) {
- fprintf(stderr, "Cannot handle solaris version %ld vtoc\n",
+ fprintf(stderr, "Cannot handle solaris version %d vtoc\n",
v->v_version);
return 0;
}
Some of the items in struct solaris_x86_vtoc defined in kernel uses fixed size types (with specified byte order). We're not able to find original 32-bit x86 Solaris sources, but expect struct definition in kernel is correct, therefore use it as a source of size of struct items. With one exception: keep timestamp[SOLARIS_X86_NUMSLICE] as time_t (kernel uses unsigned int). Cc: Christoph Hellwig <hch@infradead.org> Cc: Baruch Even <baruch@ev-en.org> Signed-off-by: Petr Vorel <pvorel@suse.cz> --- changes v1->v2: new commit. kpartx/solaris.c | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-)