Subversion Repositories HelenOS

Rev

Rev 4317 | Go to most recent revision | Details | Compare with Previous | Last modification | View Log | RSS feed

Rev Author Line No. Line
3767 svoboda 1
/*
4154 svoboda 2
 * Copyright (c) 2006 Josef Cejka
3
 * Copyright (c) 2006 Jakub Vana
3767 svoboda 4
 * Copyright (c) 2008 Jiri Svoboda
5
 * All rights reserved.
6
 *
7
 * Redistribution and use in source and binary forms, with or without
8
 * modification, are permitted provided that the following conditions
9
 * are met:
10
 *
11
 * - Redistributions of source code must retain the above copyright
12
 *   notice, this list of conditions and the following disclaimer.
13
 * - Redistributions in binary form must reproduce the above copyright
14
 *   notice, this list of conditions and the following disclaimer in the
15
 *   documentation and/or other materials provided with the distribution.
16
 * - The name of the author may not be used to endorse or promote products
17
 *   derived from this software without specific prior written permission.
18
 *
19
 * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
20
 * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
21
 * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
22
 * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
23
 * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
24
 * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
25
 * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
26
 * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
27
 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
28
 * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
29
 */
30
 
31
/** @addtogroup libc
32
 * @{
33
 */
34
/** @file
4317 decky 35
 */
3767 svoboda 36
 
4317 decky 37
#include <libc.h>
3767 svoboda 38
#include <async.h>
4482 decky 39
#include <io/console.h>
3767 svoboda 40
#include <ipc/console.h>
41
 
4482 decky 42
void console_clear(int phone)
4154 svoboda 43
{
4482 decky 44
    async_msg_0(phone, CONSOLE_CLEAR);
4154 svoboda 45
}
46
 
4482 decky 47
int console_get_size(int phone, ipcarg_t *rows, ipcarg_t *cols)
4154 svoboda 48
{
4482 decky 49
    return async_req_0_2(phone, CONSOLE_GET_SIZE, rows, cols);
4154 svoboda 50
}
51
 
4482 decky 52
void console_set_style(int phone, int style)
4164 svoboda 53
{
4482 decky 54
    async_msg_1(phone, CONSOLE_SET_STYLE, style);
4164 svoboda 55
}
56
 
4482 decky 57
void console_set_color(int phone, int fg_color, int bg_color, int flags)
4164 svoboda 58
{
4482 decky 59
    async_msg_3(phone, CONSOLE_SET_COLOR, fg_color, bg_color, flags);
4164 svoboda 60
}
61
 
4482 decky 62
void console_set_rgb_color(int phone, int fg_color, int bg_color)
4164 svoboda 63
{
4482 decky 64
    async_msg_2(phone, CONSOLE_SET_RGB_COLOR, fg_color, bg_color);
4164 svoboda 65
}
66
 
4482 decky 67
void console_cursor_visibility(int phone, bool show)
4164 svoboda 68
{
4482 decky 69
    async_msg_1(phone, CONSOLE_CURSOR_VISIBILITY, show != false);
4164 svoboda 70
}
71
 
4482 decky 72
void console_kcon_enable(int phone)
4164 svoboda 73
{
4482 decky 74
    async_msg_0(phone, CONSOLE_KCON_ENABLE);
4164 svoboda 75
}
76
 
4482 decky 77
void console_goto(int phone, ipcarg_t row, ipcarg_t col)
4164 svoboda 78
{
4482 decky 79
    async_msg_2(phone, CONSOLE_GOTO, row, col);
4164 svoboda 80
}
81
 
4482 decky 82
bool console_get_event(int phone, console_event_t *event)
3768 svoboda 83
{
4482 decky 84
    ipcarg_t type;
85
    ipcarg_t key;
86
    ipcarg_t mods;
4317 decky 87
    ipcarg_t c;
88
 
4482 decky 89
    int rc = async_req_0_4(phone, CONSOLE_GET_EVENT, &type, &key, &mods, &c);
90
    if (rc < 0)
91
        return false;
4317 decky 92
 
4482 decky 93
    event->type = type;
94
    event->key = key;
95
    event->mods = mods;
96
    event->c = c;
4317 decky 97
 
4482 decky 98
    return true;
4317 decky 99
}
100
 
3767 svoboda 101
/** @}
102
 */