On Tue, Aug 21, 2018 at 10:25:50PM +0300, Nikolay Borisov wrote: > Hello, > > I'm doing some refactoring on btrfs and would like to convert some of > the "naked" definition of UUID in on-disk object to uuid_t. Since those > structs are defined in include/uapi/linux/btrfs_tree.h I naturally would > need to expose the kernel uuid_t to the uapi header via > include/uapi/linux/uuid.h. The uuid was originally unexported in > 60927bc31436 ("uuid: remove uuid_be defintions from the uapi header") > but at that time it was called uuid_be. The thing is that btrfs-progs > for example uses both btrfs_tree.h uapi header as well as libuuid. THe > latter also defines uuid_t. Both the kernel one and libuuid are binary > compatible. > > So what's the correct way (if any) to expose a kernel type that might > have also been defined by a userspace library? Please just use an raw array of __u8 for your APIs.