On Fri, Jun 25, 2021 at 06:56:05PM +0200, Roberto Sassu wrote: > --- /dev/null > +++ b/include/uapi/linux/digest_lists.h > @@ -0,0 +1,43 @@ > +/* SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note */ > +/* > + * Copyright (C) 2017-2021 Huawei Technologies Duesseldorf GmbH > + * > + * Author: Roberto Sassu <roberto.sassu@xxxxxxxxxx> > + * > + * This program is free software; you can redistribute it and/or > + * modify it under the terms of the GNU General Public License as > + * published by the Free Software Foundation, version 2 of the > + * License. As you already have the SPDX line up there, you do not need this paragraph. Please remove it from all of the new files you have added in this series. > + * > + * File: digest_lists.h We know the filename, no need to have it here again. > + * Digest list definitions exported to user space. Now this is what probably needs more information... > + */ > + > +#ifndef _UAPI__LINUX_DIGEST_LISTS_H > +#define _UAPI__LINUX_DIGEST_LISTS_H > + > +#include <linux/types.h> > +#include <linux/hash_info.h> > + > +enum compact_types { COMPACT_KEY, COMPACT_PARSER, COMPACT_FILE, > + COMPACT_METADATA, COMPACT_DIGEST_LIST, COMPACT__LAST }; > + > +enum compact_modifiers { COMPACT_MOD_IMMUTABLE, COMPACT_MOD__LAST }; > + > +enum compact_actions { COMPACT_ACTION_IMA_MEASURED, > + COMPACT_ACTION_IMA_APPRAISED, > + COMPACT_ACTION_IMA_APPRAISED_DIGSIG, > + COMPACT_ACTION__LAST }; > + > +enum ops { DIGEST_LIST_ADD, DIGEST_LIST_DEL, DIGEST_LIST_OP__LAST }; > + For enums you export to userspace, you need to specify the values so that all compilers get them right. > +struct compact_list_hdr { > + __u8 version; You should never need a version, that way lies madness. > + __u8 _reserved; You better be testing this for 0, right? > + __le16 type; > + __le16 modifiers; > + __le16 algo; > + __le32 count; > + __le32 datalen; Why are user/kernel apis specified in little endian format? Why would that matter? Shouldn't they just be "native" endian? thanks, greg k-h