blob: 386553ce66628b39da8f6f6bc6e287668c6a35eb [file] [log] [blame]
import xdc.runtime.Log;
import xdc.runtime.Diags;
/*!
* ======== Stack ========
* Stack monitoring functions
*/
@ModuleStartup
module Stack
{
/*!
* ======== Status ========
* Stack status information buffer
*/
struct Status {
Int unused; /*! number of words never used (so far) */
Int used; /*! worst-case number of words used (so far) */
Int curDepth; /*! current number of words on the stack */
}
/*!
* ======== UNUSED ========
* Unused stack space event
*/
config Log.Event UNUSED = {
mask: Diags.USER1,
msg: "unused stack space = %d words"
};
/*!
* ======== fill ========
* Fill unused stack with initial value
*
* This function is called at startup and may be called at runtime
* to re-initialize the stack. However, interrupts must be disabled
* during this process (to prevent corruption of ISR state).
*/
Void fill();
/*!
* ======== getUnused ========
* Get number of words of unused stack space
*/
Int getUnused();
/*!
* ======== getStatus ========
* Get number of words of unused stack space
*/
Void getStatus(Status *stat);
}