Changeset 593e023 in mainline for uspace/srv/hid/input/port


Ignore:
Timestamp:
2014-08-12T17:14:32Z (12 years ago)
Author:
Martin Decky <martin@…>
Branches:
lfn, master, serial, ticket/834-toolchain-update, topic/fix-logger-deadlock, topic/msim-upgrade, topic/simplify-dev-export
Children:
c3bdc92
Parents:
ce3efa0
Message:

allow compositor and console to coexist side-by-side, use the input server as a poor man's seat arbitrator

  • kernel console notifies both about the release and grab events
  • input server arbitrates the seat selection between kernel console and any number of user space UIs (currently the console server and the compositor server)
  • input port yield and reclaim methods have been removed (they are used only on Ski and Niagara, both already need a more generic mechanism for the kernel/user space cooperation)
  • console and compositor server keep track of the kernel console via the input arbitration
  • move the waiting for a character device from init and terminal widget to getterm
Location:
uspace/srv/hid/input/port
Files:
8 edited

Legend:

Unmodified
Added
Removed
  • uspace/srv/hid/input/port/adb.c

    rce3efa0 r593e023  
    4949
    5050static int adb_port_init(kbd_dev_t *);
    51 static void adb_port_yield(void);
    52 static void adb_port_reclaim(void);
    53 static void adb_port_write(uint8_t data);
     51static void adb_port_write(uint8_t);
    5452
    5553kbd_port_ops_t adb_port = {
    5654        .init = adb_port_init,
    57         .yield = adb_port_yield,
    58         .reclaim = adb_port_reclaim,
    5955        .write = adb_port_write
    6056};
     
    9591       
    9692        return EOK;
    97 }
    98 
    99 static void adb_port_yield(void)
    100 {
    101 }
    102 
    103 static void adb_port_reclaim(void)
    104 {
    10593}
    10694
  • uspace/srv/hid/input/port/adb_mouse.c

    rce3efa0 r593e023  
    109109}
    110110
    111 static void adb_port_yield(void)
    112 {
    113 }
    114 
    115 static void adb_port_reclaim(void)
    116 {
    117 }
    118 
    119111static void adb_port_write(uint8_t data)
    120112{
     
    123115mouse_port_ops_t adb_mouse_port = {
    124116        .init = adb_port_init,
    125         .yield = adb_port_yield,
    126         .reclaim = adb_port_reclaim,
    127117        .write = adb_port_write
    128118};
  • uspace/srv/hid/input/port/chardev.c

    rce3efa0 r593e023  
    4747
    4848static int chardev_port_init(kbd_dev_t *);
    49 static void chardev_port_yield(void);
    50 static void chardev_port_reclaim(void);
    5149static void chardev_port_write(uint8_t data);
    5250
    5351kbd_port_ops_t chardev_port = {
    5452        .init = chardev_port_init,
    55         .yield = chardev_port_yield,
    56         .reclaim = chardev_port_reclaim,
    5753        .write = chardev_port_write
    5854};
     
    115111}
    116112
    117 static void chardev_port_yield(void)
    118 {
    119 }
    120 
    121 static void chardev_port_reclaim(void)
    122 {
    123 }
    124 
    125113static void chardev_port_write(uint8_t data)
    126114{
  • uspace/srv/hid/input/port/msim.c

    rce3efa0 r593e023  
    4444
    4545static int msim_port_init(kbd_dev_t *);
    46 static void msim_port_yield(void);
    47 static void msim_port_reclaim(void);
    4846static void msim_port_write(uint8_t data);
    4947
    5048kbd_port_ops_t msim_port = {
    5149        .init = msim_port_init,
    52         .yield = msim_port_yield,
    53         .reclaim = msim_port_reclaim,
    5450        .write = msim_port_write
    5551};
     
    104100}
    105101
    106 static void msim_port_yield(void)
    107 {
    108 }
    109 
    110 static void msim_port_reclaim(void)
    111 {
    112 }
    113 
    114102static void msim_port_write(uint8_t data)
    115103{
  • uspace/srv/hid/input/port/niagara.c

    rce3efa0 r593e023  
    4848
    4949static int niagara_port_init(kbd_dev_t *);
    50 static void niagara_port_yield(void);
    51 static void niagara_port_reclaim(void);
    5250static void niagara_port_write(uint8_t data);
    5351
    5452kbd_port_ops_t niagara_port = {
    5553        .init = niagara_port_init,
    56         .yield = niagara_port_yield,
    57         .reclaim = niagara_port_reclaim,
    5854        .write = niagara_port_write
    5955};
     
    7975static input_buffer_t input_buffer = (input_buffer_t) AS_AREA_ANY;
    8076
    81 static volatile bool polling_disabled = false;
    8277static void niagara_thread_impl(void *arg);
    8378
     
    108103       
    109104        return 0;
    110 }
    111 
    112 static void niagara_port_yield(void)
    113 {
    114         polling_disabled = true;
    115 }
    116 
    117 static void niagara_port_reclaim(void)
    118 {
    119         polling_disabled = false;
    120105}
    121106
     
    149134
    150135        while (1) {
    151                 if (polling_disabled == false)
    152                         niagara_key_pressed();
     136                niagara_key_pressed();
    153137                usleep(POLL_INTERVAL);
    154138        }
  • uspace/srv/hid/input/port/ns16550.c

    rce3efa0 r593e023  
    4646
    4747static int ns16550_port_init(kbd_dev_t *);
    48 static void ns16550_port_yield(void);
    49 static void ns16550_port_reclaim(void);
    5048static void ns16550_port_write(uint8_t data);
    5149
    5250kbd_port_ops_t ns16550_port = {
    5351        .init = ns16550_port_init,
    54         .yield = ns16550_port_yield,
    55         .reclaim = ns16550_port_reclaim,
    5652        .write = ns16550_port_write
    5753};
     
    146142}
    147143
    148 static void ns16550_port_yield(void)
    149 {
    150 }
    151 
    152 static void ns16550_port_reclaim(void)
    153 {
    154 }
    155 
    156144static void ns16550_port_write(uint8_t data)
    157145{
  • uspace/srv/hid/input/port/pl050.c

    rce3efa0 r593e023  
    4646
    4747static int pl050_port_init(kbd_dev_t *);
    48 static void pl050_port_yield(void);
    49 static void pl050_port_reclaim(void);
    5048static void pl050_port_write(uint8_t data);
    5149
    5250kbd_port_ops_t pl050_port = {
    5351        .init = pl050_port_init,
    54         .yield = pl050_port_yield,
    55         .reclaim = pl050_port_reclaim,
    5652        .write = pl050_port_write
    5753};
     
    129125}
    130126
    131 static void pl050_port_yield(void)
    132 {
    133 }
    134 
    135 static void pl050_port_reclaim(void)
    136 {
    137 }
    138 
    139127static void pl050_port_write(uint8_t data)
    140128{
  • uspace/srv/hid/input/port/ski.c

    rce3efa0 r593e023  
    4545
    4646static int ski_port_init(kbd_dev_t *);
    47 static void ski_port_yield(void);
    48 static void ski_port_reclaim(void);
    4947static void ski_port_write(uint8_t data);
    5048
    5149kbd_port_ops_t ski_port = {
    5250        .init = ski_port_init,
    53         .yield = ski_port_yield,
    54         .reclaim = ski_port_reclaim,
    5551        .write = ski_port_write
    5652};
     
    6460static void ski_thread_impl(void *arg);
    6561static int32_t ski_getchar(void);
    66 
    67 static volatile bool polling_disabled = false;
    6862
    6963/** Initialize Ski port driver. */
     
    8175
    8276        return 0;
    83 }
    84 
    85 static void ski_port_yield(void)
    86 {
    87         polling_disabled = true;
    88 }
    89 
    90 static void ski_port_reclaim(void)
    91 {
    92         polling_disabled = false;
    9377}
    9478
Note: See TracChangeset for help on using the changeset viewer.