Re: [PATCH 0/9] Add vsprintf extension %pU to print UUID/GUIDs anduse it

From: Joe Perches
Date: Wed Sep 30 2009 - 20:21:05 EST


On Thu, 2009-10-01 at 02:07 +0200, Laurent Pinchart wrote:
> On Tuesday 29 September 2009 07:57:32 Huang Ying wrote:
> > It seems that the binary representation of UUID can be little-endian
> > (used by most kernel components) or big-endian (defined by RFC4122, used
> > in network?). Maybe we should consider about that.
> I think that's what the 'r' option is supposed to handle. Maybe you could use
> 'b' and 'l' options instead, to specify the endianness explicitly.

or %pUbe and $pUle.
I've no objections, whatever's clearer to most people.

> > In fact, I find there are many different UUID/GUID definitions in
> > kernel, such as that in efi, many file systems, some drivers, etc. It
> > seems that every kernel components need UUID/GUID has its own
> > definition, so I think we should unify all the UUID/GUID definitions in
> > kernel too. The file attached is a draft unified UUID/GUID definition,
> > with byte-order issue in mind.
> >
> > Any comment?
>
> Not much, it would help if you could show where those functions would be used.
>
> I would also use the 'le' and 'be' prefixes (as in le16, be32) instead of 'l'
> and 'b', making it leuuid and beuuid, or maybe uuid_le and uuid_be.

A reply might take awhile.
I believe Ying is on vacation for a week or so.

Here is the list that Ying sent me:

ïGUID in Linux kernel

arch/ia64/*.c: efi_guid_t
arch/x86/kernel/efi.c: efi_guid_t
fs/partitions/efi.[ch]: efi_guid_t
drivers/firmware/efivars.c: efi_guid_t
fs/partitions/ldm.[ch]: u8 [16], ldm_parse_guid,
memcmp, memcpy
fs/ntfs/layout.h: GUID
fs/cifs/cifs*.[ch]: u8 [16], memcpy
drivers/platform/x86/*wmi.c: u8[16], wmi_parse_guid
drivers/media/video/uvc/uvc*.[ch]: u8[16], constants, format
(bin-Âascii),struct initialize(!!)
drivers/net/usb/zaurus.c: u8[16]
drivers/staging/hv/*.c: hv_guid initializing,
drivers/char/ipmi/ipmi_msghandler.c: u8[16] show (sysfs)

Not standard uuid

fs/squashfs/*.[ch]: __le16
include/linux/firewire.h: unsigned long long
drivers/firewire/*.[ch]:
drivers/ieee1394/*.[ch]:
drivers/scsi/mpt2sas/mpi/mpi2_cnfg.h: u8[24]
drivers/infiniband/*.[ch]: __be64

UUID in Linux kernel

arch/arm/*/sharpsl_param.[ch]: u8[16]
arch/ia64/*/perfmon.[ch]: pfm_uuid_t=u8[16] cmp, format
arch/ia64/sn/kernel/io_acpi_init.c: acpi_vendor_uuid initializing
arch/x86/kernel/tboot.c: u8[16]
initializing,cmp
include/linux/tboot.h:
include/acpi/actbl1.h: u8[16]
include/acpi/acpi/acrestyp.h acpi_uuid=struct {u8[16]},
acpi_vendor_uuid,u8[16]
drivers/acpi/acpica/*.[ch]
drivers/acpi/pci_root.c
drivers/pnp/pnpacpi/*.[ch]
include/linux/ext2_fs.h: u8[16]
include/linux/ext3_fs.h:
fs/ext3/*.[ch]
drivers/ext4/ext4.h:
drivers/ext4/super.c:
include/linux/nfsd/nfsfh.h: u8[16]
fs/nfsd/*.c
include/linux/wlp.h: wlp_uuid=struct{u8[16]}
drivers/uwb/wlp/*.[ch]
include/linux/jbd2.h: u8[16]
include/linux/jbd.h:
include/linux/gfs2_ondisk.h: u8[16]
fs/gfs2/*.[ch]
include/linux/nilfs2_fs.h: u8[16]
fs/jfs/*.[ch]: u8[16] access
component
fs/ubifs/*.[ch]: u8[16] generate!!!
fs/xfs/support/uuid.[ch]: uuid_t=struct{u8[16]}
fs/xfs/*.[ch]
fs/ocfs2/*.[ch]: u8[16]
drivers/char/random.c: u8[16]
generate_random_uuid
include/linux/reiserfs_fs.h: u8[16]
fs/reiserfs/objectid.c:
fs/btrfs/*.[ch]: u8[16]
fs/afs/*.[ch]: afs_uuid=struct{u32,u16,xxx}
unmarshall(!!!), generate (DEC ver1 mode)
drivers/md/md.[ch]: u8[16]
generate(get_random_bytes)
drivers/md/drivers.[ch]:

Not standard UUID

include/linux/dm-ioctl.h: u8[129]
include/linux/dm-log-userspace.h:
drivers/md/dm-*.[ch]:

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/