From 3ca57bcf8bf33e41f5343a439cce2e336adff85a Mon Sep 17 00:00:00 2001 From: Sean Cross Date: Mon, 7 Nov 2022 18:45:25 +0800 Subject: [PATCH] xous-api-names: add TryConnect This is a non-blocking version of Connect that is fallible. Signed-off-by: Sean Cross --- api/xous-api-names/src/api.rs | 28 ++++++++++++++++++++++++++++ 1 file changed, 28 insertions(+) diff --git a/api/xous-api-names/src/api.rs b/api/xous-api-names/src/api.rs index f93e7e0b4..b16c093f7 100644 --- a/api/xous-api-names/src/api.rs +++ b/api/xous-api-names/src/api.rs @@ -52,6 +52,34 @@ pub enum Opcode { /// } /// ``` BlockingConnect = 6, + + /// Connect to a Server, returning the connection ID or an authentication request if + /// it exists, and returning ServerNotFound if it does not exist. + /// + /// # Message Types + /// + /// * MutableLend + /// + /// # Arguments + /// + /// The memory being pointed to should be a &str, and the length of the string should + /// be specified in the `valid` field. + /// + /// # Return Values + /// + /// Memory is overwritten to contain a return value. This return value can be defined + /// as the following enum: + /// + /// ```rust + /// #[repr(C)] + /// #[non_exhaustive] + /// enum ConnectResult { + /// Success(xous::CID /* connection ID */, [u32; 4] /* Disconnection token */), + /// Error(u32 /* error code */), + /// Unhandled, /* Catchall for future Results */ + /// } + /// ``` + TryConnect = 7, } #[derive(Debug, rkyv::Archive, rkyv::Serialize, rkyv::Deserialize)]