Changeset 28a5ebd in mainline for kernel/genarch/src/drivers


Ignore:
Timestamp:
2020-06-18T15:39:50Z (6 years ago)
Author:
Martin Decky <martin@…>
Branches:
lfn, master, serial, ticket/834-toolchain-update, topic/msim-upgrade, topic/simplify-dev-export
Children:
ce52c333
Parents:
4f663f3e
Message:

Use char32_t instead of wchat_t to represent UTF-32 strings

The intention of the native HelenOS string API has been always to
support Unicode in the UTF-8 and UTF-32 encodings as the sole character
representations and ignore the obsolete mess of older single-byte and
multibyte character encodings. Before C11, the wchar_t type has been
slightly misused for the purpose of the UTF-32 strings. The newer
char32_t type is obviously a much more suitable option. The standard
defines char32_t as uint_least32_t, thus we can take the liberty to fix
it to uint32_t.

To maintain compatilibity with the C Standard, the putwchar(wchar_t)
functions has been replaced by our custom putuchar(char32_t) functions
where appropriate.

Location:
kernel/genarch/src/drivers
Files:
6 edited

Legend:

Unmodified
Added
Removed
  • kernel/genarch/src/drivers/dsrln/dsrlnout.c

    r4f663f3e r28a5ebd  
    4949} dsrlnout_instance_t;
    5050
    51 static void dsrlnout_putwchar(outdev_t *dev, const wchar_t ch)
     51static void dsrlnout_putuchar(outdev_t *dev, const char32_t ch)
    5252{
    5353        dsrlnout_instance_t *instance = (dsrlnout_instance_t *) dev->data;
     
    6262
    6363static outdev_operations_t dsrlndev_ops = {
    64         .write = dsrlnout_putwchar,
     64        .write = dsrlnout_putuchar,
    6565        .redraw = NULL,
    6666        .scroll_up = NULL,
  • kernel/genarch/src/drivers/ega/ega.c

    r4f663f3e r28a5ebd  
    7171} ega_instance_t;
    7272
    73 static void ega_putwchar(outdev_t *, wchar_t);
     73static void ega_putuchar(outdev_t *, char32_t);
    7474static void ega_redraw(outdev_t *);
    7575
    7676static outdev_operations_t egadev_ops = {
    77         .write = ega_putwchar,
     77        .write = ega_putuchar,
    7878        .redraw = ega_redraw,
    7979        .scroll_up = NULL,
     
    8181};
    8282
    83 static uint16_t ega_oem_glyph(const wchar_t ch)
    84 {
    85         if ((ch >= 0x0000) && (ch <= 0x007f))
     83static uint16_t ega_oem_glyph(const char32_t ch)
     84{
     85        if (ch <= 0x007f)
    8686                return ch;
    8787
     
    515515}
    516516
    517 static void ega_display_wchar(ega_instance_t *instance, wchar_t ch)
     517static void ega_display_wchar(ega_instance_t *instance, char32_t ch)
    518518{
    519519        uint16_t index = ega_oem_glyph(ch);
     
    538538}
    539539
    540 static void ega_putwchar(outdev_t *dev, wchar_t ch)
     540static void ega_putuchar(outdev_t *dev, char32_t ch)
    541541{
    542542        ega_instance_t *instance = (ega_instance_t *) dev->data;
  • kernel/genarch/src/drivers/ns16550/ns16550.c

    r4f663f3e r28a5ebd  
    112112}
    113113
    114 static void ns16550_putwchar(outdev_t *dev, wchar_t ch)
     114static void ns16550_putuchar(outdev_t *dev, char32_t ch)
    115115{
    116116        ns16550_instance_t *instance = (ns16550_instance_t *) dev->data;
     
    128128
    129129static outdev_operations_t ns16550_ops = {
    130         .write = ns16550_putwchar,
     130        .write = ns16550_putuchar,
    131131        .redraw = NULL
    132132};
  • kernel/genarch/src/drivers/omap/uart.c

    r4f663f3e r28a5ebd  
    4949}
    5050
    51 static void omap_uart_putwchar(outdev_t *dev, wchar_t ch)
     51static void omap_uart_putuchar(outdev_t *dev, char32_t ch)
    5252{
    5353        omap_uart_t *uart = dev->data;
     
    6262
    6363static outdev_operations_t omap_uart_ops = {
    64         .write = omap_uart_putwchar,
     64        .write = omap_uart_putuchar,
    6565        .redraw = NULL,
    6666        .scroll_up = NULL,
  • kernel/genarch/src/drivers/pl011/pl011.c

    r4f663f3e r28a5ebd  
    5656}
    5757
    58 static void pl011_uart_putwchar(outdev_t *dev, wchar_t ch)
     58static void pl011_uart_putuchar(outdev_t *dev, char32_t ch)
    5959{
    6060        pl011_uart_t *uart = dev->data;
     
    7474
    7575static outdev_operations_t pl011_uart_ops = {
    76         .write = pl011_uart_putwchar,
     76        .write = pl011_uart_putuchar,
    7777        .redraw = NULL,
    7878        .scroll_up = NULL,
  • kernel/genarch/src/drivers/s3c24xx/uart.c

    r4f663f3e r28a5ebd  
    6161}
    6262
    63 static void s3c24xx_uart_putwchar(outdev_t *dev, wchar_t ch)
     63static void s3c24xx_uart_putuchar(outdev_t *dev, char32_t ch)
    6464{
    6565        s3c24xx_uart_t *uart =
     
    9494
    9595static outdev_operations_t s3c24xx_uart_ops = {
    96         .write = s3c24xx_uart_putwchar,
     96        .write = s3c24xx_uart_putuchar,
    9797        .redraw = NULL,
    9898        .scroll_up = NULL,
Note: See TracChangeset for help on using the changeset viewer.