On Wed, Sep 26, 2007 at 02:29:30PM +0200, Kay Sievers wrote:
> I really don't want to see something like: "the user isn't asking for
> information which isn't in the blkid cache" thing near the code udev
> has to call. The cache must be part of the "high-level" blkid
> functions, and nothing like this should come near the plain probing
> functions.
> The compile-time udev switch and the udev symlink logic is already in
> the util-linux fsprobe wrapper, and there is no need to move that
> into blkid now, especially not by trying to make anything
> "transparent".
I expect description of filesystem + probing function + FS magic
strings and two interfaces:
1) a low-level interface where we will "blindly" call probing
function(s) and
2) a high-level interface with "smart" features like cache,
/dev/disk/by-* support, device-mapper support, etc.
A description of filesystem should be stored in the same file like a
probing function. I think better is one .c file per filesystem (like
in udev). For example:
util-linux-ng/libfsprobe/fs/swap.c:
static int
probe_swap(struct probe *p, struct fsmagic *m)
{
if (strcmp(m->magic, "SWAP-SPACE")==0)
fsprobe_set_tag(p, "VERSION" "1");
else if (strcmp(m->magic, "SWAPSPACE2")==0)
fsprobe_set_tag(p, "VERSION", "2");
else
return -1;
if (! (p->flags & (LABEL|UUID))
/* don't waste time, LABEL/UUID unnecessary */
return 1;
buf = fsprobe_get_buff(p->dev, 10);
.....
fsprobe_set_tag(p, "LABEL", foo);
fsprobe_set_tag(p, "RAWLABEL", foo);
fsprobe_set_tag(p. "UUID", bar);
}
static struct fsmagic swap_magics[] = {
/* offset, len, magic */
{ 0xff6, 10, "SWAP-SPACE" },
{ 0xff6, 10, "SWAPSPACE2" },
{ 0, 0, NULL }
};
struct fsdesc swap_desc = {
.name = "swap";
.probe_fn = probe_swap;
.magic = swap_magics;
.family = FSP_OTHER; /* or _RAID, _FILESYSTEM, _CRYPT, ... */
.flag = FSP_MAGIC_REQUIRED;
};
util-linux-ng/libfsprobe/probe-low.c
...
util-linux-ng/libfsprobe/probe-high.c
...
Karel
--
Karel Zak <[EMAIL PROTECTED]>
-
To unsubscribe from this list: send the line "unsubscribe util-linux-ng" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at http://vger.kernel.org/majordomo-info.html