ao_sys_lock_ie.h
System locking (interrupts globally)

Notes

This module defines locks to constitute critical sections by disabling interrupts globally.

Example

uint32_t x;

x = ao_sys_lock_ie();
{
    // ...

    // Critical section.
    // Interrupts are disabled globally.

    // ...
}
ao_sys_unlock_ie(x);

Include

xc.h

Functions

ao_sys_lock_ie

#define ao_sys_lock_ie()           \
(                                  \
    __builtin_disable_interrupts() \
)

Enters a critical section by disabling interrupts globally. This function clears the Status.IE bit and returns the previous value of the Status register.

ao_sys_unlock_ie

#define ao_sys_unlock_ie(x) \
{                           \
    _CP0_SET_STATUS(x);     \
}

Exits a critical section. This function writes the specified value to the Status register.