slot for session id.
--------------------------------------------------------------------------
--- Copyright (c) 2007-2011, ETH Zurich.
+-- Copyright (c) 2007-2012, ETH Zurich.
-- All rights reserved.
--
-- This file is distributed under the terms in the attached LICENSE file.
-- If you do not find this file, copies can be found by writing to:
--- ETH Zurich D-INFK, Haldeneggsteig 4, CH-8092 Zurich. Attn: Systems Group.
+-- ETH Zurich D-INFK, CAB F.78, Universitaetstr. 6, CH-8092 Zurich,
+-- Attn: Systems Group.
--
-- Hakefile for if/
--
"skb_map",
"octopus",
"spawn",
+ "terminal",
+ "terminal_config",
+ "terminal_session",
"test",
"timer",
"trivfs",
"xmplrpc",
"xmplthc",
"unixsock",
- "bcache",
- "replay" ],
+ "bcache",
+ "replay" ],
arch <- allArchitectures
] ++
--- /dev/null
+/*
+ * Copyright (c) 2012, ETH Zurich.
+ * All rights reserved.
+ *
+ * This file is distributed under the terms in the attached LICENSE file.
+ * If you do not find this file, copies can be found by writing to:
+ * ETH Zurich D-INFK, CAB F.78, Universitaetstr. 6, CH-8092 Zurich,
+ * Attn: Systems Group.
+ */
+
+interface terminal "Unidirectional character stream." {
+
+ /**
+ * \brief Input or output of a character buffer.
+ *
+ * \param buffer Buffer holding characters.
+ * \param length Amount of characters in the buffer.
+ */
+ message characters(char buffer[length]);
+};
--- /dev/null
+/*
+ * Copyright (c) 2012, ETH Zurich.
+ * All rights reserved.
+ *
+ * This file is distributed under the terms in the attached LICENSE file.
+ * If you do not find this file, copies can be found by writing to:
+ * ETH Zurich D-INFK, CAB F.78, Universitaetstr. 6, CH-8092 Zurich,
+ * Attn: Systems Group.
+ */
+
+interface terminal_config "Terminal Configuration Interface" {
+ alias option uint32;
+
+ /**
+ * \brief Configure terminal device.
+ *
+ * \param opt Configuration option.
+ * \param argument Optional argument. Interpretation depends on opt.
+ */
+ message configuration(option opt, string argument);
+
+ /**
+ * \brief Signals that a client wants to teardown a connection.
+ *
+ * Flounder does not yet support proper teardown of connections. This
+ * message emulates this by informing the server, that the client wants to
+ * teardown a connection.
+ */
+ message disconnect();
+};
--- /dev/null
+/*
+ * Copyright (c) 2012, ETH Zurich.
+ * All rights reserved.
+ *
+ * This file is distributed under the terms in the attached LICENSE file.
+ * If you do not find this file, copies can be found by writing to:
+ * ETH Zurich D-INFK, CAB F.78, Universitaetstr. 6, CH-8092 Zurich,
+ * Attn: Systems Group.
+ */
+
+interface terminal_session "Terminal Session Interface" {
+
+ /**
+ * \brief Associate a terminal with a session.
+ *
+ * \param session_id ID capability representing the session.
+ * \param in_iref Interface reference to be used for incoming characters
+ * as seen by the terminal client.
+ * \param out_iref Interface reference to be used for outgoing characters
+ * as seen by the terminal client.
+ * \param conf_iref Interface reference to be used for configuration
+ * messages.
+ * \param err SYS_ERR_OK if successful
+ * TERM_ERR_TERMINAL_IN_USE if terminal is already part
+ * of another session
+ */
+ rpc session_associate_with_terminal(in cap session_id, out iref in_iref,
+ out iref out_iref, out iref conf_iref,
+ out errval err);
+};
*/
/*
- * Copyright (c) 2007, 2008, 2009, 2010, ETH Zurich.
+ * Copyright (c) 2007, 2008, 2009, 2010, 2012, ETH Zurich.
* All rights reserved.
*
* This file is distributed under the terms in the attached LICENSE file.
/* well-known capabilities */
extern struct capref cap_root, cap_monitorep, cap_irq, cap_io, cap_dispatcher,
- cap_selfep, cap_kernel, cap_initep, cap_perfmon, cap_dispframe;
+ cap_selfep, cap_kernel, cap_initep, cap_perfmon, cap_dispframe, cap_sessionid;
/**
* \brief Returns the number of valid bits in the CSpace address of a cap
.slot = TASKCN_SLOT_INITEP
};
+/// Session ID
+struct capref cap_sessionid = {
+ .cnode = TASK_CNODE_INIT,
+ .slot = TASKCN_SLOT_SESSIONID
+};
+
static inline bool backoff(int count)
{
// very crude exponential backoff based upon core id