Searched refs:client (Results 1 - 25 of 29) sorted by relevance

12

/seL4-refos-master/libs/librefos/src/refos-util/
H A Dserv_connect.c22 @brief Server client connection module implementation. */
30 /* Allocate and set up new client structure. */
57 printf("ERROR: failed to mint client session cap.\n");
79 struct srv_client *client = (struct srv_client *) obj; local
80 assert(client && client->magic == ct->clientMagic);
82 /* Clean up client info from cspace. */
83 if (client->liveness) {
84 //seL4_CNode_Revoke(REFOS_CSPACE, client->liveness, REFOS_CDEPTH); // FIXME REVOKE BUG
85 seL4_CNode_Delete(REFOS_CSPACE, client
[all...]
/seL4-refos-master/projects/refos/impl/libs/librefos/src/refos-util/
H A Dserv_connect.c22 @brief Server client connection module implementation. */
30 /* Allocate and set up new client structure. */
57 printf("ERROR: failed to mint client session cap.\n");
79 struct srv_client *client = (struct srv_client *) obj; local
80 assert(client && client->magic == ct->clientMagic);
82 /* Clean up client info from cspace. */
83 if (client->liveness) {
84 //seL4_CNode_Revoke(REFOS_CSPACE, client->liveness, REFOS_CDEPTH); // FIXME REVOKE BUG
85 seL4_CNode_Delete(REFOS_CSPACE, client
[all...]
/seL4-refos-master/projects/refos/impl/apps/console_server/src/
H A Ddevice_input.h38 struct srv_client *client; /*!< No ownership, Weak Reference. */ member in struct:input_waiter
59 client.
63 /*! @brief Block current calling client and save its reply cap for when there is input available.
65 @param c The client to be blocked. (No ownership transfer)
71 /*! @brief Purge all weak references to client form waiting list. Used when client dies.
72 @param client The dying client to be purged.
74 void input_purge_client(struct srv_client *client);
H A Ddevice_input.c30 module simply provides a client waiting list layer on top of getchar, managing client getc() and
36 When a client wants to getc() with blocking enabled and there isn't a character already waiting
37 to be recieved, the Console server must block the calling client until an RX irq comes in from the
103 assert(waiter->reply && waiter->client);
110 waiter->client->rpcClient.skip_reply = false;
111 waiter->client->rpcClient.reply = waiter->reply;
116 reply_data_getc((void*) waiter->client, ch);
122 waiter->client->rpcClient.reply = 0;
200 waiter->client
234 input_purge_client(struct srv_client *client) argument
[all...]
/seL4-refos-master/projects/refos/impl/apps/timer_server/src/
H A Ddevice_timer.h36 struct srv_client *client; /* No ownership. */ member in struct:device_timer_waiter
69 /*! @brief Save the current caller client's reply cap, and reply to it when its sleep time has
72 @param c The client structure of the waiting client.
73 @param waitTime The amount of time in nanoseconds that the client wishes to wait, relative to
80 /*! @brief Purge all weak references to client form waiting list. Used when client dies.
81 @param client The dying client to be purged.
83 void device_timer_purge_client(struct device_timer_state *client);
[all...]
H A Ddevice_timer.c34 When a client wants to sleep for some amount of seconds, we use seL4_CNode_SaveCaller in order
40 next waking client, allowing less IRQ overhead and much better sleep accuracy. This may be
105 assert(waiter->reply && waiter->client);
113 waiter->client->rpcClient.skip_reply = false;
114 waiter->client->rpcClient.reply = waiter->reply;
115 reply_data_write((void*) waiter->client, sizeof(uint64_t));
118 waiter->client->rpcClient.reply = 0;
369 waiter->client = c;
403 device_timer_purge_client(struct device_timer_state *client) argument
/seL4-refos-master/projects/refos/impl/
H A Drefos_cidl_compile20 ./cidl_compile -g --client --header $libros_xpath/${1}_interface.xml > $libros_hpath/${1}_client.h || exit 1
21 ./cidl_compile -g --client $libros_xpath/${1}_interface.xml > $libros_spath/${1}_client.c || exit 1
H A Dcidl_compile45 TEMPLATE_CLIENT = open('cidl_templates/client.py', 'r').read()
61 return (HEADER_PFX + get_if_name(if_name) + '_%s.h')%('client' if client_mode else 'server')
154 def process(filename, client, header, disp, pre_process, dbg):
164 dct_root['client_mode'] = client
166 dct_root['includes'].append('#include <%s>' % get_headerfile_name(filename, client))
171 template_str = TEMPLATE_CLIENT_HEADER if client else TEMPLATE_SERVER_HEADER
173 template_str = TEMPLATE_CLIENT if client else TEMPLATE_SERVER
195 parser.add_argument('-c', '--client', action='store_true',\
196 help='generate header/src files for the RPC client.')
211 process(args.filename, args.client, arg
[all...]
/seL4-refos-master/apps/console_server/src/
H A Ddevice_input.h38 struct srv_client *client; /*!< No ownership, Weak Reference. */ member in struct:input_waiter
59 client.
63 /*! @brief Block current calling client and save its reply cap for when there is input available.
65 @param c The client to be blocked. (No ownership transfer)
71 /*! @brief Purge all weak references to client form waiting list. Used when client dies.
72 @param client The dying client to be purged.
74 void input_purge_client(struct srv_client *client);
H A Ddevice_input.c30 module simply provides a client waiting list layer on top of getchar, managing client getc() and
36 When a client wants to getc() with blocking enabled and there isn't a character already waiting
37 to be recieved, the Console server must block the calling client until an RX irq comes in from the
103 assert(waiter->reply && waiter->client);
110 waiter->client->rpcClient.skip_reply = false;
111 waiter->client->rpcClient.reply = waiter->reply;
116 reply_data_getc((void*) waiter->client, ch);
122 waiter->client->rpcClient.reply = 0;
200 waiter->client
234 input_purge_client(struct srv_client *client) argument
[all...]
/seL4-refos-master/apps/timer_server/src/
H A Ddevice_timer.h36 struct srv_client *client; /* No ownership. */ member in struct:device_timer_waiter
69 /*! @brief Save the current caller client's reply cap, and reply to it when its sleep time has
72 @param c The client structure of the waiting client.
73 @param waitTime The amount of time in nanoseconds that the client wishes to wait, relative to
80 /*! @brief Purge all weak references to client form waiting list. Used when client dies.
81 @param client The dying client to be purged.
83 void device_timer_purge_client(struct device_timer_state *client);
[all...]
H A Ddevice_timer.c34 When a client wants to sleep for some amount of seconds, we use seL4_CNode_SaveCaller in order
40 next waking client, allowing less IRQ overhead and much better sleep accuracy. This may be
105 assert(waiter->reply && waiter->client);
113 waiter->client->rpcClient.skip_reply = false;
114 waiter->client->rpcClient.reply = waiter->reply;
115 reply_data_write((void*) waiter->client, sizeof(uint64_t));
118 waiter->client->rpcClient.reply = 0;
369 waiter->client = c;
403 device_timer_purge_client(struct device_timer_state *client) argument
/seL4-refos-master/
H A Drefos_cidl_compile20 ./cidl_compile -g --client --header $libros_xpath/${1}_interface.xml > $libros_hpath/${1}_client.h || exit 1
21 ./cidl_compile -g --client $libros_xpath/${1}_interface.xml > $libros_spath/${1}_client.c || exit 1
H A Dcidl_compile45 TEMPLATE_CLIENT = open('cidl_templates/client.py', 'r').read()
61 return (HEADER_PFX + get_if_name(if_name) + '_%s.h')%('client' if client_mode else 'server')
154 def process(filename, client, header, disp, pre_process, dbg):
164 dct_root['client_mode'] = client
166 dct_root['includes'].append('#include <%s>' % get_headerfile_name(filename, client))
171 template_str = TEMPLATE_CLIENT_HEADER if client else TEMPLATE_SERVER_HEADER
173 template_str = TEMPLATE_CLIENT if client else TEMPLATE_SERVER
195 parser.add_argument('-c', '--client', action='store_true',\
196 help='generate header/src files for the RPC client.')
211 process(args.filename, args.client, arg
[all...]
/seL4-refos-master/projects/refos/impl/apps/process_server/src/dispatchers/
H A Dproc_syscall.c123 /*! @brief Handles client watching syscalls.
125 Most servers would need to call this in order to be notified of client death in order to be able
126 to delete any internal book-keeping for the dead client.
140 /* Retrieve the corresponding client's ASID unwrapped from its liveness cap. */
145 /* Verify the corresponding client. */
146 struct proc_pcb *client = pid_get_pcb(&procServ.PIDList, local
148 if (!client) {
151 assert(client->magic == REFOS_PCB_MAGIC);
160 /* Add the new client to the watch list of the calling process. */
161 int error = client_watch(&pcb->clientWatchList, client
193 struct proc_pcb *client = pid_get_pcb(&procServ.PIDList, local
[all...]
/seL4-refos-master/apps/process_server/src/dispatchers/
H A Dproc_syscall.c123 /*! @brief Handles client watching syscalls.
125 Most servers would need to call this in order to be notified of client death in order to be able
126 to delete any internal book-keeping for the dead client.
140 /* Retrieve the corresponding client's ASID unwrapped from its liveness cap. */
145 /* Verify the corresponding client. */
146 struct proc_pcb *client = pid_get_pcb(&procServ.PIDList, local
148 if (!client) {
151 assert(client->magic == REFOS_PCB_MAGIC);
160 /* Add the new client to the watch list of the calling process. */
161 int error = client_watch(&pcb->clientWatchList, client
193 struct proc_pcb *client = pid_get_pcb(&procServ.PIDList, local
[all...]
/seL4-refos-master/libs/libsel4utils/src/time_server/
H A Dclient.c17 #include <sel4utils/time_server/client.h>
/seL4-refos-master/projects/seL4_libs/libsel4utils/src/time_server/
H A Dclient.c17 #include <sel4utils/time_server/client.h>
/seL4-refos-master/projects/refos/design/
H A Dintro.tex32 \texttt{Dataspaces} are abstractions over memory objects, analogous to UNIX files. A dataspace may be opened and closed, written to and read from, mapped into client memory and may represent a device, a file, or simply anonymous memory.
34 \texttt{Servers} are normal processes which have registered themselves using the naming service so that other client processes may find them. Once a client finds a process, the client may connect and establish a session with the server and the server is given access to the notification of client deaths in order to do any client bookkeeping that it may require.
40 \texttt{Pagers} are servers which implement the pager service interface, which is very closely related to the dataspace interface and can be considered an optional feature of a dataspace server. Dataspace servers which act as pagers may have their dataspaces mapped directly into client virtual memory.
57 \textbf{Reply} protocols occur via reply capabilities. A call via invoking a synchronous endpoint generates a reply capability for the server to respond to the caller. The callee can send a response to the original caller and unblock the caller by replying with the reply capability. Reply capabilities are guaranteed either to succeed or to fail and not to block. Non-blocking replies are required for a trusted server to safely reply to an untrusted client.
61 with at-least-once semantics (the bits are OR'd together). The asynchronous endpoint can be used to notify an untrusted client. To send messages (as opposed to just notifications) to an untrusted client, share
[all...]
H A Dprotocol.tex45 \autoref{f:estab} illustrates that to interact with a server one must establish a session with the server through the server's anonymous endpoint capability. An established session with a server is represented by a \obj{session} capability with the server knowing the security subject of the client and optionally death notifications set up so that the server is informed when the client exits and at this time can modify its bookkeeping accordingly.
63 F box F [label = "handle request, create client"];
67 F box F [ label = "create session capability for new client"];
82 \autoref{f:openclose} shows how a client opens a dataspace which could subsequently be used for mapping in a window. This example also shows how a dataspace is closed.
139 \autoref{f:pagefault} shows the page fault resolution protocol in the case of an external dataspace server backing a window in the client's address space. In \refOS, the \seLf microkernel sends the page fault notification to an endpoint capability pretending to be the faulting process.
170 \autoref{f:deathnotify} illustrates an example death notification protocol. Note that it is assumed that the client is active and has already established a connection with the data server (see \autoref{f:estab}) and that the data server has subsequently set up death notification.
184 P box P [ label = "Delete client process" ];
186 D box D [ label = "Delete client session bookkeeping" ];
196 \autoref{f:sharedata} is an example of how to set up a shared dataspace. Note that it is assumed that the share is not revocable and that sharing is with an entity that is trusted. Therefore, given two clients, at least one of the clients must trust the other client
[all...]
H A Dinterface.tex34 \item[\obj{session}] is an object representing an active connection session to a server. If something has access to a session object, it can invoke methods on the server on behalf of the session client.
51 The process server interface provides the abstraction for managing processes and threads. The abstraction includes management of processes' virtual memory, memory window creation and deletion, process creation and deletion, death notification of client processes and thread management. Note that in implementations \cp{procserv}{session} could be the same capability as \cp{procserv}{process} in which case the process server is connectionless. \cp{procserv}{session} may also be shared with \cp{procserv}{anon} for simplification.
56 Authenticate a new client of a server against the \srv{procserv} and register for death
59 \item [procserv\_liveness\_C] The new client's liveness capability, which the client has given to the server through session connection
61 \item [death\_id] The unique client ID that the server will receive on death notification
66 Stop watching a client and remove its death notifications.
70 Create a new memory window segment for the calling client. Note that clients may only create memory windows for their own address space and alignment restrictions may apply here due to implementation and/or hardware restrictions. In the \refOS client environment, a valid memory window segment must be covering any virtual address ranges before any mapping can be performed (including dataspace and device frame mappings).
72 \item [base\_vaddr] The window base address in the calling client'
[all...]
H A Dappendix.tex74 \caption{Protocol for sharing a memory object from client A to client B.}
253 caller client wants other processes to have when they gain access
257 \item[\ty{clientB\_clientid\_cap}] A distinguished badged client B cap
258 to identify a client.
261 client B by another client to share the memory object anonymous
262 capability \ty{mobject\_anon\_cap} so that client B can make
/seL4-refos-master/projects/seL4_libs/libsel4serialserver/src/
H A Dclientapi.c25 #include <serial_server/client.h>
H A Dtest.c20 #include <serial_server/client.h>
/seL4-refos-master/projects/seL4_libs/libsel4test/include/sel4test/
H A Dtest.h28 #include <sel4rpc/client.h>
53 /* RPC client for serial server resource allocation */

Completed in 81 milliseconds

12