47,12 → 47,8 |
|
#define NAME "CONSOLE" |
|
/** Index of currently used virtual console. |
*/ |
int active_console = 0; |
|
/** Information about framebuffer |
*/ |
struct { |
int phone; /**< Framebuffer phone */ |
ipcarg_t rows; /**< Framebuffer rows */ |
59,23 → 55,20 |
ipcarg_t cols; /**< Framebuffer columns */ |
} fb_info; |
|
|
typedef struct { |
keybuffer_t keybuffer; /**< Buffer for incoming keys. */ |
FIFO_CREATE_STATIC(keyrequests, ipc_callid_t , MAX_KEYREQUESTS_BUFFERED); /**< Buffer for unsatisfied request for keys. */ |
int keyrequest_counter; /**< Number of requests in buffer. */ |
int client_phone; /**< Phone to connected client. */ |
int used; /**< 1 if this virtual console is connected to some client.*/ |
screenbuffer_t screenbuffer; /**< Screenbuffer for saving screen contents and related settings. */ |
keybuffer_t keybuffer; |
FIFO_CREATE_STATIC(keyrequests, ipc_callid_t , MAX_KEYREQUESTS_BUFFERED); |
int keyrequest_counter; |
int client_phone; |
int used; |
screenbuffer_t screenbuffer; |
} connection_t; |
|
connection_t connections[CONSOLE_COUNT]; /**< Array of data for virtual consoles */ |
keyfield_t *interbuffer = NULL; /**< Pointer to memory shared with framebufer used for faster virt. console switching */ |
|
|
/** Find unused virtual console. |
* |
*/ |
connection_t connections[CONSOLE_COUNT]; |
keyfield_t *interbuffer = NULL; |
|
static int find_free_connection() |
{ |
int i = 0; |
88,9 → 81,7 |
return CONSOLE_COUNT; |
} |
|
/** Find index of virtual console used by client with given phone. |
* |
*/ |
|
static int find_connection(int client_phone) |
{ |
int i = 0; |
160,7 → 151,7 |
} |
|
|
/** Handler for keyboard */ |
/* Handler for keyboard */ |
static void keyboard_events(ipc_callid_t iid, ipc_call_t *icall) |
{ |
ipc_callid_t callid; |