Exemplo n.º 1
0
static void
cksecure(void)
{
	ulong db;
	extern ulong getdebug(void);

	if (getscr() & 1)
		panic("cpu%d: running non-secure", m->machno);
	db = getdebug();
	if (db)
		iprint("cpu%d: debug enable reg %#lux\n", m->machno, db);
}
Exemplo n.º 2
0
int main(int argc, char **argv) {
	int lid = LID_UNKNOWN; 
	int power = PWR_UNKNOWN;
	int brightscr=1023;	//screen brightness on AC (default at start)
	int brightkeyb=512;	//keyboard brightness on AC
	int dimscr=512;		//screen brightness on battery
	int dimkeyb=300;		//keyboard brightness on battery
	int keyTimer = 0;

	system("echo -ne \"\\033[9;0]\" >/dev/tty0");	//set screen blank to never -- it doesn't blank the frame buffer so don't use it
					
	//intialize the keyboard lights	
	keyb(powerstate() == PWR_AC_CORD?brightkeyb:dimkeyb);			

	keys_timerid = create_timer(KEYS_TIMER, KEYS_TIMEOUT);
	lcd_timerid = create_timer(LCD_TIMER, LCD_TIMEOUT);
	power_timerid = create_timer(POWER_TIMER, 0);

	signal(SIGQUIT, _powerDown);
	signal(SIGINT, _suspend);
	signal(SIGUSR1, _newMsg);

	while(1) {		//main loop
			
		if( (!power || newMsg) && GetKeyPressed() == 1) //if there is power the timers are not active, so nothing needs to be done
		{	
			if(!power){
			//a key has been pressed -- reset the timers
				set_timer(keys_timerid, KEYS_TIMEOUT);
				set_timer(lcd_timerid, LCD_TIMEOUT);
			
				screenOn();
			}
			
			if(newMsg && valkeyb){
				//stop flashing the keyboard
				keyb(valkeyb);
				toggleLED(0);
				valkeyb = 0;
				newMsg = 0;
			}
		}

		if(newMsg){
			if(!valkeyb)
				valkeyb = getkeyb();
			
			toggleLED(flashKeyBrd);
			
			if(flashKeyBrd){
				keyb(valkeyb);
				flashKeyBrd=0;
			}
			else{
				keyb(0);
				flashKeyBrd=1;
			}
		}
		
		if(powerDown && !suspend)
		{
			set_timer(power_timerid, POWER_TIMEOUT);
			powerDown = 0;
		}		
			
		if(suspend)
		{
			set_timer(power_timerid, 0);

			suspend = 0;
			powerDown = 0;
		}		

		
		if(lid != lidstate()) 
		{	
			lid = lidstate();
			lightswitch(lid);
		}
		
		if(power != powerstate())
		{	//there has been a change in the powerstate
			keyTimer = 0;
			power = powerstate();
			if (power) {	//AC is plugged in
		//		system("echo -ne \"\\033[9;0]\" >/dev/tty0");	//set screen blank to never
				screenOn();
				
				set_timer(keys_timerid, 0);
				set_timer(lcd_timerid, 0);	
			
				dimscr = getscr();      //store current brightness  as dim values
				dimkeyb = getkeyb();
				keysOn();
				lcdb(brightscr);
				keyb(brightkeyb);	//and brighten lights
			}
			else{		//AC is unplugged
		//		system("echo -ne \"\\033[9;1]\" >/dev/tty0");	//set screen blank to 1 minutes

				set_timer(keys_timerid, KEYS_TIMEOUT);
				set_timer(lcd_timerid, LCD_TIMEOUT);	
			
				brightscr = getscr();   //store current brightness as bright
				brightkeyb = getkeyb();
				lcdb(dimscr);
				keyb(dimkeyb);	//and dim lights
			}
		}

		sleep(1);		//wait one second
	}
}