Date: Fri, 2 Feb 2007 13:11:10 +0100 From: Pieter de Goeje <pieter@degoeje.nl> To: freebsd-current@freebsd.org Cc: Ivan Voras <ivoras@fer.hr>, freebsd-geom@freebsd.org Subject: Re: First steps towards importing gvirstor into -current Message-ID: <200702021311.10339.pieter@degoeje.nl> In-Reply-To: <epspv7$a9e$1@sea.gmane.org> References: <epspv7$a9e$1@sea.gmane.org>
next in thread | previous in thread | raw e-mail | index | archive | help
--Boundary-00=_epywF30SSJkq3Nj
Content-Type: text/plain;
charset="utf-8"
Content-Transfer-Encoding: 7bit
Content-Disposition: inline
Hi, I tried the beta3a version from the wiki on an amd64 -CURRENT machine.
I made some changes (attached) to g_virstor.c and geom_virstor.c to let them
compile cleanly on AMD64. Both files contained instances of some printf
variant with format "%u" while the parameter was a size_t, so I changed the
format to "%zu".
Also, I needed to add -fPIC to the gcc command line to build geom_virstor.so.
For some reason, it wasnt able to find "path.h" so I included that one in the
search path.
After successfully building gvirstor (and loading it), I tried to use it:
# ./gvirstor label -s 10000 test /dev/ad0s3b
Assertion failed: (G_OPT_TYPE(opt) != 0), function parse_arguments,
file /usr/src/sbin/geom/core/geom.c, line 272.
Abort (core dumped)
Basically I'm stuck here.
Regards,
Pieter de Goeje
PS.
How do I download the latest sources from the p4 repository?
--Boundary-00=_epywF30SSJkq3Nj
Content-Type: text/x-diff;
charset="utf-8";
name="g_virstor-patch"
Content-Transfer-Encoding: 7bit
Content-Disposition: attachment;
filename="g_virstor-patch"
--- gvirstor.orig/g_virstor.c Fri Aug 25 16:03:58 2006
+++ gvirstor/g_virstor.c Fri Feb 2 11:43:34 2007
@@ -1418,7 +1418,7 @@
sc->n_components, virstor_valid_components(sc));
sbuf_printf(sb, "%s<State>%u%% physical free</State>\n",
indent, 100-(used * 100) / count);
- sbuf_printf(sb, "%s<ChunkSize>%u</ChunkSize>\n", indent,
+ sbuf_printf(sb, "%s<ChunkSize>%zu</ChunkSize>\n", indent,
sc->chunk_size);
sbuf_printf(sb, "%s<PhysicalFree>%u%%</PhysicalFree>\n",
indent,
@@ -1426,9 +1426,9 @@
: 100);
sbuf_printf(sb, "%s<ChunkPhysicalCount>%u</ChunkPhysicalCount>\n",
indent, count);
- sbuf_printf(sb, "%s<ChunkVirtualCount>%u</ChunkVirtualCount>\n",
+ sbuf_printf(sb, "%s<ChunkVirtualCount>%zu</ChunkVirtualCount>\n",
indent, sc->chunk_count);
- sbuf_printf(sb, "%s<PhysicalBacking>%u%%</PhysicalBacking>\n",
+ sbuf_printf(sb, "%s<PhysicalBacking>%zu%%</PhysicalBacking>\n",
indent,
(count * 100) / sc->chunk_count);
sbuf_printf(sb, "%s<PhysicalBackingSize>%jd</PhysicalBackingSize>\n",
@@ -1521,7 +1521,7 @@
chunk_index = offset / chunk_size;
in_chunk_offset = offset % chunk_size;
in_chunk_length = min(length, chunk_size - in_chunk_offset);
- LOG_MSG(LVL_DEBUG, "Mapped (%ju, %ju) to (%u,%u,%u)",
+ LOG_MSG(LVL_DEBUG, "Mapped (%ju, %ju) to (%zu,%zu,%zu)",
offset, length,
chunk_index, in_chunk_offset, in_chunk_length);
me = &sc->map[chunk_index];
--Boundary-00=_epywF30SSJkq3Nj
Content-Type: text/x-diff;
charset="utf-8";
name="geom_virstor-patch"
Content-Transfer-Encoding: 7bit
Content-Disposition: attachment;
filename="geom_virstor-patch"
--- gvirstor.orig/geom_virstor.c Fri Nov 24 12:47:33 2006
+++ gvirstor/geom_virstor.c Fri Feb 2 11:47:05 2007
@@ -166,7 +166,7 @@
nargs = gctl_get_int(req, "nargs");
if (nargs < 2) {
- gctl_error(req, "Too few arguments: expecting: name provider0 [provider1 ...]", nargs);
+ gctl_error(req, "Too few arguments: expecting: name provider0 [provider1 ...]");
return;
}
@@ -205,7 +205,7 @@
new_size += MAXPHYS;
fprintf(stderr, "Resizing chunk size to be a multiple of MAXPHYS "
"(%d KB).\n", MAXPHYS / 1024);
- fprintf(stderr, "New chunk size: %u KB\n", new_size / 1024);
+ fprintf(stderr, "New chunk size: %zu KB\n", new_size / 1024);
md.md_chunk_size = new_size;
}
@@ -309,7 +309,7 @@
if (map_size % md.md_chunk_size != 0)
map_chunks++;
if (verbose) {
- printf(" (%u MB, %d chunks) ", map_size/(1024*1024), map_chunks);
+ printf(" (%zu MB, %d chunks) ", map_size/(1024*1024), map_chunks);
fflush(stdout);
}
@@ -326,7 +326,7 @@
* in the future */
map = calloc(total_chunks, sizeof *map);
if (map == NULL)
- gctl_error(req, "Out of memory (need %u bytes for allocation map)",
+ gctl_error(req, "Out of memory (need %zu bytes for allocation map)",
map_size);
written = pwrite(fd, map, map_size, 0);
@@ -393,7 +393,7 @@
sect = malloc(ssize);
bzero(sect, ssize);
if (sect == NULL)
- err(1, "Cannot allocate sector of %u bytes", ssize);
+ err(1, "Cannot allocate sector of %zu bytes", ssize);
virstor_metadata_encode(&md, sect);
error = g_metadata_store(name, sect, ssize);
free(sect);
--Boundary-00=_epywF30SSJkq3Nj--
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200702021311.10339.pieter>
