Re: [PATCH v15 16/28] x86/txt: Intel Trusted eXecution Technology (TXT) definitions
From: ross . philipson
Date: Wed Dec 17 2025 - 13:45:04 EST
On 12/16/25 2:14 PM, Dave Hansen wrote:
On 12/15/25 15:33, Ross Philipson wrote:>
+static inline struct txt_heap_event_log_pointer2_1_element*
+txt_find_log2_1_element(struct txt_os_sinit_data *os_sinit_data)
+{
+ struct txt_heap_ext_data_element *ext_elem;
+
+ /* The extended element array is at the end of this table */
+ ext_elem = (struct txt_heap_ext_data_element *)
+ ((u8 *)os_sinit_data + sizeof(struct txt_os_sinit_data));
I'd really honestly see a helper for this kind of thing:
#define ptr_after(foo) ((void *)foo + sizeof(foo))
resulting in:
ext_elem = ptr_after(os_sinit_data);
We can do that.
> would be a billion times easier to read than what's there. I honestly
don't even see why this bothers with the u8 and cast to 'struct
txt_heap_ext_data_element *' versus just using void* and being done with it.
There's no type safety here in the first place so why bother?
Earlier, this was done to a number of other functions for the same reason. We will change it here too.
Ross
+ while (ext_elem->type != TXT_HEAP_EXTDATA_TYPE_END) {
+ if (ext_elem->type == TXT_HEAP_EXTDATA_TYPE_EVENT_LOG_POINTER2_1) {
+ return (struct txt_heap_event_log_pointer2_1_element *)
+ ((u8 *)ext_elem + sizeof(struct txt_heap_ext_data_element));
+ }
+ ext_elem = (struct txt_heap_ext_data_element *)
+ ((u8 *)ext_elem + ext_elem->size);
+ }