Commit d08116b0 authored by Dean Camera's avatar Dean Camera

Create a new Common module documentation group for the new Global Interrupt macros.

parent c263ea83
...@@ -48,6 +48,12 @@ ...@@ -48,6 +48,12 @@
* *
* Macros to aid debugging of a user application. * Macros to aid debugging of a user application.
*/ */
/** \defgroup Group_GlobalInt Global Interrupt Macros
* \brief Convenience macros for the management of interrupts globally within the device.
*
* Macros and functions to create and control global interrupts within the device.
*/
#ifndef __LUFA_COMMON_H__ #ifndef __LUFA_COMMON_H__
#define __LUFA_COMMON_H__ #define __LUFA_COMMON_H__
...@@ -228,6 +234,8 @@ ...@@ -228,6 +234,8 @@
* \note This is supplied on some architectures where the standard library does not include a valid * \note This is supplied on some architectures where the standard library does not include a valid
* definition. If an existing definition exists, the definition here will be ignored. * definition. If an existing definition exists, the definition here will be ignored.
* *
* \ingroup Group_GlobalInt
*
* \param Name Unique name of the interrupt service routine. * \param Name Unique name of the interrupt service routine.
*/ */
#define ISR(Name, ...) void Name (void) __attribute__((__interrupt__)); void Name (void) #define ISR(Name, ...) void Name (void) __attribute__((__interrupt__)); void Name (void)
...@@ -280,6 +288,8 @@ ...@@ -280,6 +288,8 @@
* value can be stored before altering the global interrupt enable state, before restoring the * value can be stored before altering the global interrupt enable state, before restoring the
* flag(s) back to their previous values after a critical section using \ref SetGlobalInterruptMask(). * flag(s) back to their previous values after a critical section using \ref SetGlobalInterruptMask().
* *
* \ingroup Group_GlobalInt
*
* \return Mask containing the current Global Interrupt Enable Mask bit(s). * \return Mask containing the current Global Interrupt Enable Mask bit(s).
*/ */
static inline uint_reg_t GetGlobalInterruptMask(void) ATTR_ALWAYS_INLINE ATTR_WARN_UNUSED_RESULT; static inline uint_reg_t GetGlobalInterruptMask(void) ATTR_ALWAYS_INLINE ATTR_WARN_UNUSED_RESULT;
...@@ -300,6 +310,8 @@ ...@@ -300,6 +310,8 @@
* This can be combined with \ref GetGlobalInterruptMask() to save and restore the Global Interrupt Enable * This can be combined with \ref GetGlobalInterruptMask() to save and restore the Global Interrupt Enable
* Mask bit(s) of the device after a critical section has completed. * Mask bit(s) of the device after a critical section has completed.
* *
* \ingroup Group_GlobalInt
*
* \param[in] GlobalIntState Global Interrupt Enable Mask value to use * \param[in] GlobalIntState Global Interrupt Enable Mask value to use
*/ */
static inline void SetGlobalInterruptMask(const uint_reg_t GlobalIntState) ATTR_ALWAYS_INLINE; static inline void SetGlobalInterruptMask(const uint_reg_t GlobalIntState) ATTR_ALWAYS_INLINE;
...@@ -319,7 +331,10 @@ ...@@ -319,7 +331,10 @@
GCC_MEMORY_BARRIER(); GCC_MEMORY_BARRIER();
} }
/** Enables global interrupt handling for the device, allowing interrupts to be handled. */ /** Enables global interrupt handling for the device, allowing interrupts to be handled.
*
* \ingroup Group_GlobalInt
*/
static inline void GlobalInterruptEnable(void) ATTR_ALWAYS_INLINE; static inline void GlobalInterruptEnable(void) ATTR_ALWAYS_INLINE;
static inline void GlobalInterruptEnable(void) static inline void GlobalInterruptEnable(void)
{ {
...@@ -334,7 +349,10 @@ ...@@ -334,7 +349,10 @@
GCC_MEMORY_BARRIER(); GCC_MEMORY_BARRIER();
} }
/** Disabled global interrupt handling for the device, preventing interrupts from being handled. */ /** Disabled global interrupt handling for the device, preventing interrupts from being handled.
*
* \ingroup Group_GlobalInt
*/
static inline void GlobalInterruptDisable(void) ATTR_ALWAYS_INLINE; static inline void GlobalInterruptDisable(void) ATTR_ALWAYS_INLINE;
static inline void GlobalInterruptDisable(void) static inline void GlobalInterruptDisable(void)
{ {
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment