• Jason Gunthorpe's avatar
    IB/uverbs: Add UVERBS_ATTR_FLAGS_IN to the specs language · bccd0622
    Jason Gunthorpe authored
    This clearly indicates that the input is a bitwise combination of values
    in an enum, and identifies which enum contains the definition of the bits.
    
    Special accessors are provided that handle the mandatory validation of the
    allowed bits and enforce the correct type for bitwise flags.
    
    If we had introduced this at the start then the kabi would have uniformly
    used u64 data to pass flags, however today there is a mixture of u64 and
    u32 flags. All places are converted to accept both sizes and the accessor
    fixes it. This allows all existing flags to grow to u64 in future without
    any hassle.
    
    Finally all flags are, by definition, optional. If flags are not passed
    the accessor does not fail, but provides a value of zero.
    Signed-off-by: default avatarJason Gunthorpe <jgg@mellanox.com>
    Reviewed-by: default avatarLeon Romanovsky <leonro@mellanox.com>
    bccd0622
uverbs_ioctl.h 18.5 KB