// Reference: ARM11 MPCore Processor Technical Reference Manual (ARM DDI 0360E) Section 3.5 "Summary
// of CP15 instructions"

use crate::arch::asm;

/// Full system is the required shareability domain, reads and writes are the
/// required access types
pub struct SY;

impl super::super::sealed::Dmb for SY {
    #[inline(always)]
    unsafe fn __dmb(&self) {
        asm!(
            "mcr p15, 0, r0, c7, c10, 5",
            options(preserves_flags, nostack)
        )
    }
}

impl super::super::sealed::Dsb for SY {
    #[inline(always)]
    unsafe fn __dsb(&self) {
        asm!(
            "mcr p15, 0, r0, c7, c10, 4",
            options(preserves_flags, nostack)
        )
    }
}

impl super::super::sealed::Isb for SY {
    #[inline(always)]
    unsafe fn __isb(&self) {
        asm!(
            "mcr p15, 0, r0, c7, c5, 4",
            options(preserves_flags, nostack)
        )
    }
}
