On 06/10/21 22:37, Michael Roth wrote:
+struct sev_sync_data {
- uint32_t token;
- bool pending;
- bool done;
- bool aborted;
- uint64_t info;
+};
Please add a comment explaining roughly the design and what the fields are for. Maybe the bools can be replaced by an enum { DONE, ABORT, SYNC, RUNNING } (running is for pending==false)?
Also, for the part that you can feel free to ignore: this seems to be similar to the ucall mechanism. Is it possible to implement the ucall interface in terms of this one (or vice versa)?
One idea could be to:
- move ucall to the main lib/ directory
- make it use a struct of function pointers, whose default implementation would be in the existing lib/ARCH/ucall.c files
- add a function to register the struct for the desired implementation
- make sev.c register its own implementation
Thanks,
Paolo