rfnc.rs 1.3 KB

12345678910111213141516171819202122232425262728293031323334353637
  1. //! Chapter 8. RFENCE Extension (EID #0x52464E43 "RFNC").
  2. /// Extension ID for Remote Fence extension.
  3. pub const EID_RFNC: usize = crate::eid_from_str("RFNC") as _;
  4. pub use fid::*;
  5. /// Declared in §8.8.
  6. mod fid {
  7. /// Function ID to `FENCE.I` instruction on remote harts.
  8. ///
  9. /// Declared in §8.1.
  10. pub const REMOTE_FENCE_I: usize = 0;
  11. /// Function ID to `SFENCE.VMA` for all address spaces on remote harts.
  12. ///
  13. /// Declared in §8.2.
  14. pub const REMOTE_SFENCE_VMA: usize = 1;
  15. /// Function ID to address space based `SFENCE.VMA` on remote harts.
  16. ///
  17. /// Declared in §8.3.
  18. pub const REMOTE_SFENCE_VMA_ASID: usize = 2;
  19. /// Function ID to virtual machine id based `HFENCE.GVMA` on remote harts.
  20. ///
  21. /// Declared in §8.4.
  22. pub const REMOTE_HFENCE_GVMA_VMID: usize = 3;
  23. /// Function ID to `HFENCE.GVMA` for all virtual machines on remote harts.
  24. ///
  25. /// Declared in §8.5.
  26. pub const REMOTE_HFENCE_GVMA: usize = 4;
  27. /// Function ID to address space based `HFENCE.VVMA` for current virtual machine on remote harts.
  28. ///
  29. /// Declared in §8.6.
  30. pub const REMOTE_HFENCE_VVMA_ASID: usize = 5;
  31. /// Function ID to `HFENCE.VVMA` for all address spaces in the current virtual machine on remote harts.
  32. ///
  33. /// Declared in §8.7.
  34. pub const REMOTE_HFENCE_VVMA: usize = 6;
  35. }