Changeset 965dc18 in mainline for uspace/srv/kbd/arch/mips32/src/kbd.c


Ignore:
Timestamp:
2008-12-05T19:59:03Z (16 years ago)
Author:
Jakub Jermar <jakub@…>
Branches:
lfn, master, serial, ticket/834-toolchain-update, topic/msim-upgrade, topic/simplify-dev-export
Children:
49093a4
Parents:
0258e67
Message:

Merge sparc branch to trunk.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • uspace/srv/kbd/arch/mips32/src/kbd.c

    r0258e67 r965dc18  
    3535 */
    3636#include <arch/kbd.h>
     37#include <genarch/nofb.h>
    3738#include <ipc/ipc.h>
    3839#include <sysinfo.h>
     
    100101*/
    101102
    102 static int kbd_arch_process_no_fb(keybuffer_t *keybuffer, int scan_code)
    103 {
    104 
    105         static unsigned long buf = 0;
    106         static int count = 0;   
    107 
    108         /* Please preserve this code (it can be used to determine scancodes)
    109        
    110         keybuffer_push(keybuffer, to_hex((scan_code>>4)&0xf));
    111         keybuffer_push(keybuffer, to_hex(scan_code&0xf));
    112         keybuffer_push(keybuffer, ' ');
    113         keybuffer_push(keybuffer, ' ');
    114        
    115         return 1;
    116         */
    117        
    118         if(scan_code == 0x7e) {
    119                 switch (buf) {
    120                 case MSIM_KEY_F5:
    121                         keybuffer_push(keybuffer,FUNCTION_KEYS | 5);
    122                         buf = count = 0;
    123                         return 1;
    124                 case MSIM_KEY_F6:
    125                         keybuffer_push(keybuffer,FUNCTION_KEYS | 6);
    126                         buf = count = 0;
    127                         return 1;
    128                 case MSIM_KEY_F7:
    129                         keybuffer_push(keybuffer,FUNCTION_KEYS | 7);
    130                         buf = count = 0;
    131                         return 1;
    132                 case MSIM_KEY_F8:
    133                         keybuffer_push(keybuffer,FUNCTION_KEYS | 8);
    134                         buf = count = 0;
    135                         return 1;
    136                 case MSIM_KEY_F9:
    137                         keybuffer_push(keybuffer,FUNCTION_KEYS | 9);
    138                         buf = count = 0;
    139                         return 1;
    140                 case MSIM_KEY_F10:
    141                         keybuffer_push(keybuffer,FUNCTION_KEYS | 10);
    142                         buf = count = 0;
    143                         return 1;
    144                 case MSIM_KEY_F11:
    145                         keybuffer_push(keybuffer,FUNCTION_KEYS | 11);
    146                         buf = count = 0;
    147                         return 1;
    148                 case MSIM_KEY_F12:
    149                         keybuffer_push(keybuffer,FUNCTION_KEYS | 12);
    150                         buf = count = 0;
    151                         return 1;
    152                 default:
    153                         keybuffer_push(keybuffer, buf & 0xff);
    154                         keybuffer_push(keybuffer, (buf >> 8) &0xff);
    155                         keybuffer_push(keybuffer, (buf >> 16) &0xff);
    156                         keybuffer_push(keybuffer, (buf >> 24) &0xff);
    157                         keybuffer_push(keybuffer, scan_code);
    158                         buf = count = 0;
    159                         return 1;
    160                 }
    161         }
    162 
    163         buf |= ((unsigned long) scan_code)<<(8*(count++));
    164        
    165         if((buf & 0xff) != (MSIM_KEY_F1 & 0xff)) {
    166                 keybuffer_push(keybuffer, buf);
    167                 buf = count = 0;
    168                 return 1;
    169         }
    170 
    171         if (count <= 1)
    172                 return 1;
    173 
    174         if ((buf & 0xffff) != (MSIM_KEY_F1 & 0xffff)
    175                 && (buf & 0xffff) != (MSIM_KEY_F5 & 0xffff) ) {
    176 
    177                 keybuffer_push(keybuffer, buf & 0xff);
    178                 keybuffer_push(keybuffer, (buf >> 8) &0xff);
    179                 buf = count = 0;
    180                 return 1;
    181         }
    182 
    183         if (count <= 2)
    184                 return 1;
    185 
    186         switch (buf) {
    187         case MSIM_KEY_F1:
    188                 keybuffer_push(keybuffer,FUNCTION_KEYS | 1);
    189                 buf = count = 0;
    190                 return 1;
    191         case MSIM_KEY_F2:
    192                 keybuffer_push(keybuffer,FUNCTION_KEYS | 2);
    193                 buf = count = 0;
    194                 return 1;
    195         case MSIM_KEY_F3:
    196                 keybuffer_push(keybuffer,FUNCTION_KEYS | 3);
    197                 buf = count = 0;
    198                 return 1;
    199         case MSIM_KEY_F4:
    200                 keybuffer_push(keybuffer,FUNCTION_KEYS | 4);
    201                 buf = count = 0;
    202                 return 1;
    203         }
    204 
    205 
    206         if((buf & 0xffffff) != (MSIM_KEY_F5 & 0xffffff)
    207                 && (buf & 0xffffff) != (MSIM_KEY_F9 & 0xffffff)) {
    208 
    209                 keybuffer_push(keybuffer, buf & 0xff);
    210                 keybuffer_push(keybuffer, (buf >> 8) & 0xff);
    211                 keybuffer_push(keybuffer, (buf >> 16) & 0xff);
    212                 buf=count=0;
    213                 return 1;
    214         }
    215 
    216         if (count <= 3)
    217                 return 1;
    218        
    219         switch (buf) {
    220         case MSIM_KEY_F5:
    221         case MSIM_KEY_F6:
    222         case MSIM_KEY_F7:
    223         case MSIM_KEY_F8:
    224         case MSIM_KEY_F9:
    225         case MSIM_KEY_F10:
    226         case MSIM_KEY_F11:
    227         case MSIM_KEY_F12:
    228                 return 1;
    229         default:
    230                 keybuffer_push(keybuffer, buf & 0xff);
    231                 keybuffer_push(keybuffer, (buf >> 8) &0xff);
    232                 keybuffer_push(keybuffer, (buf >> 16) &0xff);
    233                 keybuffer_push(keybuffer, (buf >> 24) &0xff);
    234                 buf = count = 0;
    235                 return 1;
    236         }
    237         return 1;
    238 }
    239 
    240 
    241 
    242103static int kbd_arch_process_fb(keybuffer_t *keybuffer, int scan_code)
    243104{
     
    372233                return kbd_arch_process_fb(keybuffer, scan_code);
    373234
    374         return kbd_arch_process_no_fb(keybuffer, scan_code);
     235        return kbd_process_no_fb(keybuffer, scan_code);
    375236}
    376237/** @}
Note: See TracChangeset for help on using the changeset viewer.