| und & operatoren.
-
Hallo ich habe folgendes Problem:
Der COde soll rebooten wenn [str] und [alt] gedrückt wurde:if(key >= 0x80) { saw_break_code = 1; key &= 0x7F; } /* the only break codes we're interested in are Shift, Ctrl, Alt */ if(saw_break_code) { if(key == RAW1_LEFT_ALT || key == RAW1_RIGHT_ALT) {kbd_status &= ~KBD_META_ALT;kprintf("los alt");} else if(key == RAW1_LEFT_CTRL || key == RAW1_RIGHT_CTRL) {kbd_status &= ~KBD_META_CTRL;kprintf("los str");} else if(key == RAW1_LEFT_SHIFT || key == RAW1_RIGHT_SHIFT) {kbd_status &= ~KBD_META_SHIFT;} saw_break_code = 0; return 0; } /* it's a make key: check the "meta" keys, as above */ if(key == RAW_BACKSPACE) { kprintf("back"); return 0; } if(key == RAW_DEL) { kprintf("del"); return 0; } if(key == RAW1_LEFT_ALT || key == RAW1_RIGHT_ALT) { kbd_status |= KBD_META_ALT;kprintf("gedrückt alt"); return 0; } if(key == RAW1_LEFT_CTRL || key == RAW1_RIGHT_CTRL) { kbd_status |= KBD_META_CTRL; kprintf("gedrückt str"); return 0; } if(key == RAW1_LEFT_SHIFT || key == RAW1_RIGHT_SHIFT) { kbd_status |= KBD_META_SHIFT; return 0; } /* Scroll Lock, Num Lock, and Caps Lock set the LEDs. These keys have on-off (toggle or XOR) action, instead of momentary action */ if(key == RAW1_SCROLL_LOCK) { kbd_status ^= KBD_META_SCRL; goto LEDS; } if(key == RAW1_NUM_LOCK) { kbd_status ^= KBD_META_NUM; goto LEDS; } if(key == RAW1_CAPS_LOCK) { kbd_status ^= KBD_META_CAPS; LEDS: write_kbd(0x60, 0xED); /* "set LEDs" command */ temp = 0; if(kbd_status & KBD_META_SCRL) temp |= 1; if(kbd_status & KBD_META_NUM) temp |= 2; if(kbd_status & KBD_META_CAPS) temp |= 4; write_kbd(0x60, temp); /* bottom 3 bits set LEDs */ return 0; } if((kbd_status & KBD_META_CTRL) && (kbd_status & KBD_META_ALT) ) { kprintf("\n[42;37;1m""*** rebooting!"); reboot(); }
-
Habe aus versehen tab und enter gedrückt ...
Wollte mich aufjedenfall schon mal im voraus bedanken.
-
vielleicht sagst du uns auch, was das Problem ist (wir können nämlich nicht hellsehen)
-
Naja ganz einfach der code rebootet nicht
habe es jetzt aber gelöst indem ich die return 0 lls entferne