On Thu, Jul 05, 2018 at 08:31:42AM -0700, Dave Hansen wrote: > On 07/03/2018 11:19 AM, Jarkko Sakkinen wrote: > > +struct sgx_secs { > > + uint64_t size; > > + uint64_t base; > > + uint32_t ssaframesize; > > + uint32_t miscselect; > > + uint8_t reserved1[SGX_SECS_RESERVED1_SIZE]; > > + uint64_t attributes; > > + uint64_t xfrm; > > + uint32_t mrenclave[8]; > > + uint8_t reserved2[SGX_SECS_RESERVED2_SIZE]; > > + uint32_t mrsigner[8]; > > + uint8_t reserved3[SGX_SECS_RESERVED3_SIZE]; > > + uint16_t isvvprodid; > > + uint16_t isvsvn; > > + uint8_t reserved4[SGX_SECS_RESERVED4_SIZE]; > > +} __packed __aligned(4096); > > Why are the uint* versions in use here? Those are for userspace ABI, > but this is entirely for in-kernel-use, right? > > We've used u8/16/32/64 in arch code in a bunch of places. They're at > least a bit more compact and easier to read. It's this: > > u8 foo; > u64 bar; > > vs. this: > > uint8_t foo; > uint64_t bar; The reason was that with in-kernel LE these were in fact used by user space code. Now they can be changed to those that you suggested. /Jarkko