Example #1
0
// Lua: sei() - to enable all interrupts
// or sei( id1, resnum1, [resnum2], ..., [resnumn] ) - to enable a specific id/resnum(s)
static int cpu_sei( lua_State *L )
{
#ifdef BUILD_LUA_INT_HANDLERS  
  unsigned i;
  elua_int_id id;
  elua_int_resnum resnum;  

  if( lua_gettop( L ) > 0 )
  {
    id = ( elua_int_id )luaL_checkinteger( L, 1 );
    for( i = 2; i <= lua_gettop( L ); i ++ )
    {
      resnum = ( elua_int_resnum )luaL_checkinteger( L, i );
      platform_cpu_set_interrupt( id, resnum, PLATFORM_CPU_ENABLE );
    }
    elua_int_enable( id );
  }
  else
#else // #ifdef BUILD_LUA_INT_HANDLERS
  if( lua_gettop( L ) > 0 )
    return luaL_error( L, "Lua interrupt support not available." );
#endif // #ifdef BUILD_LUA_INT_HANDLERS  
  platform_cpu_set_global_interrupts( PLATFORM_CPU_ENABLE );
  return 0;
}
Example #2
0
// Lua: sei() - to enable all interrupts
// or sei( id1, resnum1, [resnum2], ..., [resnumn] ) - to enable a specific id/resnum(s)
static int cpu_sei( lua_State *L )
{
  unsigned i;
  elua_int_id id;
  elua_int_resnum resnum;  

  if( lua_gettop( L ) > 0 )
  {
    id = ( elua_int_id )luaL_checkinteger( L, 1 );
    for( i = 2; i <= lua_gettop( L ); i ++ )
    {
      resnum = ( elua_int_resnum )luaL_checkinteger( L, i );
      platform_cpu_set_interrupt( id, resnum, PLATFORM_CPU_ENABLE );
    }
    elua_int_enable( id );
  }
  else
    platform_cpu_set_global_interrupts( PLATFORM_CPU_ENABLE );
  return 0;
}