Changeset 907bb49 in mainline for uspace/lib/libc/generic/console.c


Ignore:
Timestamp:
2009-03-18T22:22:31Z (15 years ago)
Author:
Jiri Svoboda <jirik.svoboda@…>
Branches:
lfn, master, serial, ticket/834-toolchain-update, topic/msim-upgrade, topic/simplify-dev-export
Children:
266daf5a
Parents:
eada065e
Message:

Consolidate console interface.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • uspace/lib/libc/generic/console.c

    reada065e r907bb49  
    11/*
     2 * Copyright (c) 2006 Josef Cejka
     3 * Copyright (c) 2006 Jakub Vana
    24 * Copyright (c) 2008 Jiri Svoboda
    35 * All rights reserved.
     
    3638#include <io/stream.h>
    3739#include <ipc/console.h>
     40#include <ipc/services.h>
    3841#include <console.h>
     42
     43static int console_phone = -1;
     44
     45void console_open(void)
     46{
     47        if (console_phone < 0) {
     48                int phone = ipc_connect_me_to(PHONE_NS, SERVICE_CONSOLE, 0, 0);
     49                if (phone >= 0)
     50                        console_phone = phone;
     51        }
     52}
     53
     54void console_close(void)
     55{
     56        if (console_phone >= 0) {
     57                if (ipc_hangup(console_phone) == 0) {
     58                        console_phone = -1;
     59                }
     60        }
     61}
     62
     63int console_phone_get(void)
     64{
     65        if (console_phone < 0)
     66                console_open();
     67       
     68        return console_phone;
     69}
     70
     71void console_wait(void)
     72{
     73        while (console_phone < 0)
     74                console_open();
     75}
    3976
    4077void console_clear(void)
    4178{
    42         int cons_phone = get_console_phone();
     79        int cons_phone = console_phone_get();
    4380        async_msg_0(cons_phone, CONSOLE_CLEAR);
    4481}
     
    4683void console_goto(int row, int col)
    4784{
    48         int cons_phone = get_console_phone();
     85        int cons_phone = console_phone_get();
    4986        async_msg_2(cons_phone, CONSOLE_GOTO, row, col);
     87}
     88
     89void console_putchar(int c)
     90{
     91        int cons_phone = console_phone_get();
     92        async_msg_1(cons_phone, CONSOLE_PUTCHAR, c);
    5093}
    5194
    5295void console_flush(void)
    5396{
    54         int cons_phone = get_console_phone();
     97        int cons_phone = console_phone_get();
    5598        async_msg_0(cons_phone, CONSOLE_FLUSH);
    5699}
     
    58101int console_get_size(int *rows, int *cols)
    59102{
    60         int cons_phone = get_console_phone();
     103        int cons_phone = console_phone_get();
    61104        ipcarg_t r, c;
    62105        int rc;
     
    72115void console_set_style(int style)
    73116{
    74         int cons_phone = get_console_phone();
     117        int cons_phone = console_phone_get();
    75118        async_msg_1(cons_phone, CONSOLE_SET_STYLE, style);
    76119}
     
    78121void console_set_color(int fg_color, int bg_color, int flags)
    79122{
    80         int cons_phone = get_console_phone();
     123        int cons_phone = console_phone_get();
    81124        async_msg_3(cons_phone, CONSOLE_SET_COLOR, fg_color, bg_color, flags);
    82125}
     
    84127void console_set_rgb_color(int fg_color, int bg_color)
    85128{
    86         int cons_phone = get_console_phone();
     129        int cons_phone = console_phone_get();
    87130        async_msg_2(cons_phone, CONSOLE_SET_RGB_COLOR, fg_color, bg_color);
    88131}
     
    90133void console_cursor_visibility(int show)
    91134{
    92         int cons_phone = get_console_phone();
     135        int cons_phone = console_phone_get();
    93136        async_msg_1(cons_phone, CONSOLE_CURSOR_VISIBILITY, show != 0);
    94137}
Note: See TracChangeset for help on using the changeset viewer.