On 8/21/2025 12:29 PM, Sagi Shahar wrote: [...]
+ +/* + * Allows each vCPU to be initialized with different eip and esp. + * + * __packed is used since the offsets are hardcoded in td_boot.S + * + * TODO: Replace hardcoded offsets with OFFSET(). This requires getting the + * neccesry Kbuild scripts working in KVM selftests.
neccesry -> necessary Also, are the comments about "__packed" and "TODO" out dated?
+ */ +struct td_per_vcpu_parameters { + uint32_t esp_gva; + uint64_t guest_code; +}; + +/* + * Boot parameters for the TD. + * + * Unlike a regular VM, KVM cannot set registers such as esp, eip, etc + * before boot, so to run selftests, these registers' values have to be + * initialized by the TD. + * + * This struct is loaded in TD private memory at TD_BOOT_PARAMETERS_GPA. + * + * The TD boot code will read off parameters from this struct and set up the + * vCPU for executing selftests. + * + * __packed is used since the offsets are hardcoded in td_boot.S
Same as above for "__packed".
+ */
[...]