Changeset b1bdc7a4 in mainline for uspace/srv/hid/kbd/generic/kbd.c


Ignore:
Timestamp:
2011-06-11T19:48:15Z (13 years ago)
Author:
Jiri Svoboda <jiri@…>
Branches:
lfn, master, serial, ticket/834-toolchain-update, topic/msim-upgrade, topic/simplify-dev-export
Children:
56ad818
Parents:
774fc85
Message:

Control keyboard port modules through ops structures. Allows compiling in
all modules at the same time.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • uspace/srv/hid/kbd/generic/kbd.c

    r774fc85 rb1bdc7a4  
    7171static unsigned lock_keys;
    7272
     73static kbd_port_ops_t *kbd_port;
     74
    7375bool irc_service = false;
    7476int irc_phone = -1;
     
    201203                        break;
    202204                case KBD_YIELD:
    203                         kbd_port_yield();
     205                        (*kbd_port->yield)();
    204206                        retval = 0;
    205207                        break;
    206208                case KBD_RECLAIM:
    207                         kbd_port_reclaim();
     209                        (*kbd_port->reclaim)();
    208210                        retval = 0;
    209211                        break;
     
    215217}
    216218
     219static kbd_port_ops_t *kbd_select_port(void)
     220{
     221        kbd_port_ops_t *kbd_port;
     222
     223#if defined(UARCH_amd64)
     224        kbd_port = &chardev_port;
     225#elif defined(UARCH_arm32) && defined(MACHINE_gta02)
     226        kbd_port = &chardev_port;
     227#elif defined(UARCH_arm32) && defined(MACHINE_testarm)
     228        kbd_port = &gxemul_port;
     229#elif defined(UARCH_arm32) && defined(MACHINE_integratorcp)
     230        kbd_port = &pl050_port;
     231#elif defined(UARCH_ia32)
     232        kbd_port = &chardev_port;
     233#elif defined(MACHINE_i460GX)
     234        kbd_port = &chardev_port;
     235#elif defined(MACHINE_ski)
     236        kbd_port = &ski_port;
     237#elif defined(MACHINE_msim)
     238        kbd_port = &msim_port;
     239#elif defined(MACHINE_lgxemul) || defined(MACHINE_bgxemul)
     240        kbd_port = &gxemul_port;
     241#elif defined(UARCH_ppc32)
     242        kbd_port = &adb_port;
     243#elif defined(UARCH_sparc64) && defined(PROCESSOR_sun4v)
     244        kbd_port = &niagara_port;
     245#elif defined(UARCH_sparc64) && defined(MACHINE_serengeti)
     246        kbd_port = &sgcn_port;
     247#elif defined(UARCH_sparc64) && defined(MACHINE_generic)
     248        kbd_port = &sun_port;
     249#else
     250        kbd_port = &dummy_port;
     251#endif
     252        return kbd_port;
     253}
    217254
    218255int main(int argc, char **argv)
     
    232269        }
    233270       
     271        /* Select port driver. */
     272        kbd_port = kbd_select_port();
     273
    234274        /* Initialize port driver. */
    235         if (kbd_port_init() != 0)
     275        if ((*kbd_port->init)() != 0)
    236276                return -1;
    237277
    238278        /* Initialize controller driver. */
    239         if (kbd_ctl_init() != 0)
     279        if (kbd_ctl_init(kbd_port) != 0)
    240280                return -1;
    241281
Note: See TracChangeset for help on using the changeset viewer.