1
0
mirror of https://github.com/elua/elua.git synced 2025-01-08 20:56:17 +08:00
elua/doc/eluadoc/arch_platform_cpu.lua
Bogdan Marinescu 3612e87224 Added documentation on interrupts:
Generic info/eLua interrupt handlers: using interrupt handlers from Lua and C
  Platform interface/CPU: updated CPU platform interface
  Platform interface/Timers: updated timers platform interface
  Generic modules/cpu: updated CPU module documentation
  Generic modules/tmr: updated timer module documentation
  eLua internals/Overview/Implementing interrupts: interrupt handlers implementation guide

Also minor bugfixes in the interrupt implementation.
2010-11-06 23:58:05 +00:00

85 lines
3.3 KiB
Lua

-- eLua platform interface - CPU
data_en =
{
-- Title
title = "eLua platform interface - CPU",
-- Menu name
menu_name = "CPU",
-- Overview
overview = "This part of the platform interface groups functions related to the CPU and its functional modules (interrupt controller, memory controller and others).",
-- Functions
funcs =
{
{ sig = "int #platform_cpu_set_global_interrupts#( int status );",
desc = "Set or clear the global interrupt flag of the CPU.",
args = "$status$ - $PLATFORM_CPU_ENABLE$ to set the global interrupt flag or $PLATFORM_CPU_DISABLE$ to clear the global interrupt flag.",
ret = "the previous value of the global interrupt flag (1 if set, 0 otherwise)."
},
{ sig = "int #platform_cpu_get_global_interrupts#();",
desc = "Get the value of the global interrupt flag of the CPU.",
ret = "the value of the global interrupt flag (1 if set, 0 otherwise)."
},
{ sig = "int #platform_cpu_set_interrupt#( elua_int_id id, elua_int_resnum resnum, int status );",
desc = "Enable or disable a specific CPU interrupt for a given resource ID.",
args =
{
"$id$ - the interrupt ID, as defined in %platform_conf.h%.",
"$resnum$ - the resource ID.",
"$status$ - $PLATFORM_CPU_ENABLE to enable the interrupt or $PLATFORM_CPU_DISABLE$ to disable the interrupt.",
},
ret =
{
"$PLATFORM_INT_INVALID$ - invalid interrupt ID",
"$PLATFORM_INT_NOT_HANDLED$ - this interrupt cannot be enabled/disabled",
"$PLATFORM_INT_BAD_RESNUM$ - this resource ID can't be used to enable/disable the interrupt",
"the previous status of the interrupt (1 if enabled, 0 otherwise) if no error occured."
}
},
{ sig = "int #platform_cpu_get_interrupt#( elua_int_id id, elua_int_resnum resnum );",
desc = "Get the interrupt enabled status of a specific CPU interrupt for a given resource ID.",
args =
{
"$id$ - the interrupt ID, as defined in %platform_conf.h%",
"$resnum$ - the resource ID"
},
ret =
{
"$PLATFORM_INT_INVALID$ - invalid interrupt ID",
"$PLATFORM_INT_NOT_HANDLED$ - this interrupt cannot be enabled/disabled",
"$PLATFORM_INT_BAD_RESNUM$ - this resource ID can't be used to enable/disable the interrupt",
"the status of the interrupt (1 if enabled, 0 otherwise) if no error occured."
}
},
{ sig = "int #platform_cpu_get_interrupt_flag#( elua_int_id id, elua_int_resnum resnum, int clear );",
desc = "Return the interrupt pending flag of a specific CPU interrupt or a given resource ID and optionally clear it.",
args =
{
"$id$ - the interrupt ID, as defined in %platform_conf.h%.",
"$resnum$ - the resource ID.",
"$clear$ - 1 to clear the interrupt pending flag if it is set, 0 otherwise."
},
ret =
{
"$PLATFORM_INT_INVALID$ - invalid interrupt ID.",
"$PLATFORM_INT_NOT_HANDLED$ - this interrupt's flag cannot be read.",
"$PLATFORM_INT_BAD_RESNUM$ - this resource ID can't be used to read this interrupt's flag.",
"the value of the interrupt pending flag if no error occured."
}
},
{ sig = "u32 #platform_cpu_get_frequency#();",
desc = "Get the CPU frequency.",
ret = "the CPU $core$ frequency (in Hertz)."
},
}
}