host.rs 2.2 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556
  1. //! Penglai PMP host-side extension (Penglai Host extension) spec.
  2. /// Extension ID for Penglai Host extension.
  3. ///
  4. /// Penglai Host extension isn't a standard extension. The currently used extension ID is temporary.
  5. pub const EID_PENGLAI_HOST: usize = 0x100100;
  6. pub use fid::*;
  7. mod fid {
  8. /// Feature ID for init secure memory management.
  9. #[doc(alias = "SBI_MM_INIT")]
  10. pub const MM_INIT: usize = 100;
  11. /// Feature ID for create an enclave.
  12. #[doc(alias = "SBI_CREATE_ENCLAVE")]
  13. pub const CREATE_ENCLAVE: usize = 99;
  14. /// Feature ID for attest enclave and generate attest report.
  15. #[doc(alias = "SBI_ATTEST_ENCLAVE")]
  16. pub const ATTEST_ENCLAVE: usize = 98;
  17. /// Feature ID for running enclave on current hart.
  18. #[doc(alias = "SBI_RUN_ENCLAVE")]
  19. pub const RUN_ENCLAVE: usize = 97;
  20. /// Feature ID for stoping enclave.
  21. #[doc(alias = "SBI_STOP_ENCLAVE")]
  22. pub const STOP_ENCLAVE: usize = 96;
  23. /// Feature ID for resume enclave.
  24. #[doc(alias = "SBI_RESUME_ENCLAVE")]
  25. pub const RESUME_ENCLAVE: usize = 95;
  26. /// Feature ID for destory enclave.
  27. #[doc(alias = "SBI_DESTROY_ENCLAVE")]
  28. pub const DESTROY_ENCLAVE: usize = 94;
  29. /// Feature ID for allocate secure memory from secure monitor.
  30. #[doc(alias = "SBI_ALLOC_ENCLAVE_MM")]
  31. pub const ALLOC_ENCLAVE_MM: usize = 93;
  32. /// Feature ID for extend secure memory.
  33. #[doc(alias = "SBI_MEMORY_EXTEND")]
  34. pub const MEMORY_EXTEND: usize = 92;
  35. /// Feature ID for reclaim secure memory from secure monitor.
  36. #[doc(alias = "SBI_MEMORY_RECLAIM")]
  37. pub const MEMORY_RECLAIM: usize = 91;
  38. /// Feature ID for free secure memory used by enclave.
  39. #[doc(alias = "SBI_FREE_ENCLAVE_MEM")]
  40. pub const FREE_ENCLAVE_MEM: usize = 90;
  41. /// Feature ID for print debug information.
  42. #[doc(alias = "SBI_DEBUG_PRINT")]
  43. pub const DEBUG_PRINT: usize = 88;
  44. }
  45. /// Enclave resume status.
  46. pub mod resume_status {
  47. /// Resume enclave from the timer interrupt.
  48. pub const RESUME_FROM_TIMER_IRQ: usize = 2000;
  49. /// Resume enclave from enclave stopped.
  50. pub const RESUME_FROM_STOP: usize = 2003;
  51. /// Resume enclave from an ocall.
  52. pub const RESUME_FROM_OCALL: usize = 2;
  53. }