Changeset d31c3ea in mainline for uspace/srv/hid


Ignore:
Timestamp:
2024-10-01T11:13:28Z (13 months ago)
Author:
Jiri Svoboda <jiri@…>
Branches:
master
Children:
6907f26
Parents:
357d9dd
git-author:
Jiri Svoboda <jiri@…> (2024-09-30 19:13:18)
git-committer:
Jiri Svoboda <jiri@…> (2024-10-01 11:13:28)
Message:

Group vt callbacks into a callback structure

Location:
uspace/srv/hid
Files:
4 edited

Legend:

Unmodified
Added
Removed
  • uspace/srv/hid/output/ctl/serial.c

    r357d9dd rd31c3ea  
    4444#define SERIAL_COLS  80
    4545#define SERIAL_ROWS  24
     46
     47static serial_putuchar_t serial_putuchar_fn;
     48static serial_control_puts_t serial_control_puts_fn;
     49static serial_flush_t serial_flush_fn;
     50
     51static void serial_vt_putuchar(void *, char32_t);
     52static void serial_vt_control_puts(void *, const char *);
     53static void serial_vt_flush(void *);
     54
     55static vt100_cb_t serial_vt_cb = {
     56        .putuchar = serial_vt_putuchar,
     57        .control_puts = serial_vt_control_puts,
     58        .flush = serial_vt_flush
     59};
    4660
    4761/** Draw the character at the specified position.
     
    124138};
    125139
    126 errno_t serial_init(vt100_putuchar_t putuchar_fn,
    127     vt100_control_puts_t control_puts_fn, vt100_flush_t flush_fn)
     140errno_t serial_init(serial_putuchar_t putuchar_fn,
     141    serial_control_puts_t control_puts_fn, serial_flush_t flush_fn)
    128142{
    129143        char_attrs_t attrs;
    130         vt100_t *vt100 =
    131             vt100_create(NULL, SERIAL_COLS, SERIAL_ROWS, putuchar_fn,
    132             control_puts_fn, flush_fn);
     144        vt100_t *vt100;
     145
     146        serial_putuchar_fn = putuchar_fn;
     147        serial_control_puts_fn = control_puts_fn;
     148        serial_flush_fn = flush_fn;
     149
     150        vt100 = vt100_create(NULL, SERIAL_COLS, SERIAL_ROWS, &serial_vt_cb);
    133151        if (vt100 == NULL)
    134152                return ENOMEM;
     
    150168}
    151169
     170static void serial_vt_putuchar(void *arg, char32_t c)
     171{
     172        (void)arg;
     173        serial_putuchar_fn(c);
     174}
     175
     176static void serial_vt_control_puts(void *arg, const char *str)
     177{
     178        (void)arg;
     179        serial_control_puts_fn(str);
     180}
     181
     182static void serial_vt_flush(void *arg)
     183{
     184        (void)arg;
     185        serial_flush_fn();
     186}
     187
    152188/** @}
    153189 */
  • uspace/srv/hid/output/ctl/serial.h

    r357d9dd rd31c3ea  
    3838#include <vt/vt100.h>
    3939
    40 extern errno_t serial_init(vt100_putuchar_t, vt100_control_puts_t, vt100_flush_t);
     40typedef void (*serial_putuchar_t)(char32_t);
     41typedef void (*serial_control_puts_t)(const char *);
     42typedef void (*serial_flush_t)(void);
     43
     44extern errno_t serial_init(serial_putuchar_t, serial_control_puts_t,
     45    serial_flush_t);
    4146
    4247#endif
  • uspace/srv/hid/output/port/chardev.c

    r357d9dd rd31c3ea  
    6565static FIBRIL_CONDVAR_INITIALIZE(discovery_cv);
    6666
    67 static void chardev_flush(void *arg)
     67static void chardev_flush(void)
    6868{
    6969        size_t nwr;
    70 
    71         (void)arg;
    7270
    7371        if (chardev_bused == 0)
     
    8381{
    8482        if (chardev_bused == chardev_buf_size)
    85                 chardev_flush(NULL);
     83                chardev_flush();
    8684        chardev_buf[chardev_bused++] = (uint8_t) ch;
    8785}
    8886
    89 static void chardev_putuchar(void *arg, char32_t ch)
     87static void chardev_putuchar(char32_t ch)
    9088{
    9189        char buf[STR_BOUNDS(1)];
     
    9492        errno_t rc;
    9593
    96         (void)arg;
    97 
    9894        off = 0;
    9995        rc = chr_encode(ch, buf, &off, sizeof(buf));
     
    105101}
    106102
    107 static void chardev_control_puts(void *arg, const char *str)
     103static void chardev_control_puts(const char *str)
    108104{
    109105        const char *p;
     
    111107        p = str;
    112108        while (*p != '\0')
    113                 chardev_putuchar(arg, *p++);
     109                chardev_putuchar(*p++);
    114110}
    115111
  • uspace/srv/hid/remcons/remcons.c

    r357d9dd rd31c3ea  
    121121};
    122122
     123static void remcons_vt_putchar(void *, char32_t);
     124static void remcons_vt_cputs(void *, const char *);
     125static void remcons_vt_flush(void *);
     126
     127static vt100_cb_t remcons_vt_cb = {
     128        .putuchar = remcons_vt_putchar,
     129        .control_puts = remcons_vt_cputs,
     130        .flush = remcons_vt_flush
     131};
     132
    123133static void remcons_new_conn(tcp_listener_t *lst, tcp_conn_t *conn);
    124134
     
    568578        remcons->curs_visible = true;
    569579
    570         remcons->vt = vt100_create((void *)remcons, 80, 25,
    571             remcons_vt_putchar, remcons_vt_cputs, remcons_vt_flush);
     580        remcons->vt = vt100_create((void *)remcons, 80, 25, &remcons_vt_cb);
    572581        assert(remcons->vt != NULL); // XXX
    573582        remcons->vt->enable_rgb = remcons->enable_rgb;
Note: See TracChangeset for help on using the changeset viewer.