Barrelfish
Functions
server.h File Reference

Terminal server library (libterm_server) API. More...

Functions

errval_t term_server_change_in_ws (struct term_server *server, struct waitset *ws)
 Change waitset used for incoming characters. More...
 
errval_t term_server_change_out_ws (struct term_server *server, struct waitset *ws)
 Change waitset used for outgoing characters. More...
 
errval_t term_server_change_conf_ws (struct term_server *server, struct waitset *ws)
 Change waitset used for configuration messages. More...
 
errval_t term_server_change_session_ws (struct term_server *server, struct waitset *ws)
 Change waitset used for the session interface. More...
 
errval_t term_server_init (struct term_server *server, iref_t *session_iref, struct waitset *session_ws, struct waitset *in_ws, struct waitset *out_ws, struct waitset *conf_ws, term_characters_handler_fn chars_cb, term_server_configuration_handler_fn conf_cb, term_server_new_session_fn session_cb)
 Initialize terminal server and export session interface. More...
 
void term_server_send (struct term_server *server, const char *data, size_t length)
 Enqueue characters for sending to the terminal client. More...
 
void term_server_set_chars_handler (struct term_server *server, term_characters_handler_fn chars_cb)
 Set a handler called when new characters arrives. More...
 
void term_server_set_conf_handler (struct term_server *server, term_server_configuration_handler_fn *conf_cb)
 Set a handler called when a new configuration message arrives. More...
 
void term_server_set_err_handler (struct term_server *server, term_async_err_handler_fn err_cb)
 Set an error handler if an asynchronous error occurs. More...
 
void term_server_set_new_session_handler (struct term_server *server, term_server_new_session_fn session_cb)
 Set an handler called when a new session is established. More...
 

Detailed Description

Terminal server library (libterm_server) API.

Function Documentation

errval_t term_server_change_conf_ws ( struct term_server *  server,
struct waitset ws 
)

Change waitset used for configuration messages.

Parameters
serverTerminal server state.
wsNew waitset.
errval_t term_server_change_in_ws ( struct term_server *  server,
struct waitset ws 
)

Change waitset used for incoming characters.

Parameters
serverTerminal server state.
wsNew waitset.
errval_t term_server_change_out_ws ( struct term_server *  server,
struct waitset ws 
)

Change waitset used for outgoing characters.

Parameters
serverTerminal server state.
wsNew waitset.
errval_t term_server_change_session_ws ( struct term_server *  server,
struct waitset ws 
)

Change waitset used for the session interface.

Parameters
serverTerminal server state.
wsNew waitset.
errval_t term_server_init ( struct term_server *  server,
iref_t *  session_iref,
struct waitset session_ws,
struct waitset in_ws,
struct waitset out_ws,
struct waitset conf_ws,
term_characters_handler_fn  chars_cb,
term_server_configuration_handler_fn  conf_cb,
term_server_new_session_fn  session_cb 
)

Initialize terminal server and export session interface.

Parameters
serverTerminal server state, filled-in by function.
session_irefInterface reference of the session interface, filled-in by function.
session_wsWaitset used for the session interface.
in_wsWaitset used for incoming characters.
out_wsWaitset used for outgoing characters.
conf_wsWaitset used for configuration messages.
chars_cbCallback when new characters arrive.
conf_cbCallback when configuration message arrive.
session_cbCallback when new session is established.
Returns
SYS_ERR_OK if successful. TERM_ERR_EXPORT_SESSION_INTERFACE if export of session inteface failed.
void term_server_send ( struct term_server *  server,
const char *  data,
size_t  length 
)

Enqueue characters for sending to the terminal client.

Parameters
serverTerminal server state.
dataCharacters to send.
lengthNumber of characters to send.

Function always completes without blocking. The actual sending might not happen until the 'out_ws'-waitset is dispatched. The programmer can check whether the send completed using term_server_sending().

The function copies the supplied data to its internal buffers, so the programmer can modify the data after the call.

void term_server_set_chars_handler ( struct term_server *  server,
term_characters_handler_fn  chars_cb 
)

Set a handler called when new characters arrives.

Parameters
serverTerminal server state.
chars_cbCharacters handler.
void term_server_set_conf_handler ( struct term_server *  server,
term_server_configuration_handler_fn *  conf_cb 
)

Set a handler called when a new configuration message arrives.

Parameters
serverTerminal server state.
conf_cbConfiguration message handler.
void term_server_set_err_handler ( struct term_server *  server,
term_async_err_handler_fn  err_cb 
)

Set an error handler if an asynchronous error occurs.

Parameters
serverTerminal server state.
err_cbError handler.
void term_server_set_new_session_handler ( struct term_server *  server,
term_server_new_session_fn  session_cb 
)

Set an handler called when a new session is established.

Parameters
serverTerminal server state.
session_cbNew session handler.