// Lua: cli() // Lua: cli() - to disable all interrupts // or cli( id1, resnum1, [resnum2], ..., [resnumn] ) - to disable a specific id/resnum(s) static int cpu_cli( 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_DISABLE ); } elua_int_disable( 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_DISABLE ); return 0; }
// Lua: cli() - to disable all interrupts // or cli( id1, resnum1, [resnum2], ..., [resnumn] ) - to disable a specific id/resnum(s) static int cpu_cli( 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_DISABLE ); } elua_int_disable( id ); } else platform_cpu_set_global_interrupts( PLATFORM_CPU_DISABLE ); return 0; }