Searched refs:dataspace (Results 1 - 25 of 37) sorted by relevance

12

/seL4-refos-master/projects/refos/impl/apps/process_server/src/system/memserv/
H A Ddataspace.c13 #include "dataspace.h"
20 @brief Process Server anon RAM dataspace implementation. */
24 /* --------------------------- RAM dataspace OAT callback functions ----------------------------- */
29 in order to create dataspace objects. Here we malloc some memory for the structure, initialise
30 its data structures, initialise its page array, and mint the dataspace badge capability.
32 @param oat The parent dataspace list (struct ram_dspace_list*).
33 @param id The dataspace ID allocated by the OAT table.
34 @param arg Arg[0] is the dataspace size, the rest unused.
35 @return A new dataspace (struct ram_dspace *) on success, NULL on error. (Transfers ownership)
67 /* Mint the badged capability representing this ram dataspace
269 ram_dspace_check_page(struct ram_dspace *dataspace, uint32_t offset) argument
281 ram_dspace_get_page(struct ram_dspace *dataspace, uint32_t offset) argument
334 ram_dspace_get_size(struct ram_dspace *dataspace) argument
341 ram_dspace_expand(struct ram_dspace *dataspace, uint32_t size) argument
385 ram_dspace_set_to_paddr(struct ram_dspace *dataspace, uint32_t paddr) argument
440 ram_dspace_read_page(char *buf, size_t len, struct ram_dspace *dataspace, uint32_t offset) argument
471 ram_dspace_write_page(char *buf, size_t len, struct ram_dspace *dataspace, uint32_t offset) argument
487 ram_dspace_read(char *buf, size_t len, struct ram_dspace *dataspace, uint32_t offset) argument
518 ram_dspace_write(char *buf, size_t len, struct ram_dspace *dataspace, uint32_t offset) argument
552 ram_dspace_content_init(struct ram_dspace *dataspace, cspacepath_t initEP, uint32_t initPID) argument
617 ram_dspace_need_content_init(struct ram_dspace *dataspace, uint32_t offset) argument
637 ram_dspace_add_content_init_waiter(struct ram_dspace *dataspace, uint32_t offset, cspacepath_t reply) argument
671 ram_dspace_add_content_init_waiter_save_current_caller(struct ram_dspace *dataspace, uint32_t offset) argument
696 ram_dspace_content_init_reply_waiters(struct ram_dspace *dataspace, uint32_t offset) argument
736 ram_dspace_set_content_init_provided(struct ram_dspace *dataspace, uint32_t offset) argument
[all...]
H A Ddataspace.h14 @brief Process Server anon RAM dataspace implementation.
16 A dataspace implementation which is backed by physical RAM. Provides methods for creating &
40 /*! @brief Ram dataspace structure
42 A single ram dataspace backed by physical kernel pages. This structure assumes ownership of its
66 /*! Weak reference to this dataspace's parent. */
70 /*! @brief Ram dataspace list. */
76 /*! @brief Ram dataspace content init waiter structure */
83 /* ------------------------------- RAM dataspace table functions -------------------------------- */
85 /*! @brief Initialises an empty ram dataspace list. */
88 /*! @brief De-initialises an empty ram dataspace lis
[all...]
H A Dringbuffer.c15 #include "dataspace.h"
20 @brief Ring buffer implementation, operating on the internal RAM dataspace objects. */
27 assert(buf && buf->dataspace);
31 ((char*) &buf->localStart), sizeof(uint32_t), buf->dataspace, 0
36 ((char*) &buf->localStart), sizeof(uint32_t), buf->dataspace, 0
46 assert(buf && buf->dataspace);
50 ((char*) &buf->localEnd), sizeof(uint32_t), buf->dataspace, sizeof(uint32_t)
55 ((char*) &buf->localEnd), sizeof(uint32_t), buf->dataspace, sizeof(uint32_t)
73 rb_create(struct ram_dspace *dataspace, enum rb_mode mode) argument
75 assert(dataspace
[all...]
H A Dringbuffer.h14 @brief Ring buffer implementation, operating on the internal RAM dataspace objects.
17 is designed for communication with the clients who share to us our own dataspace. Since reading
33 #include "dataspace.h"
47 the associated dataspace; merely provides a wrapping to use ringbuffers on top of a struct
51 The structure also shares ownership of the underlying dataspace object, using a shared
54 object "hangs onto" its dataspace.
64 struct ram_dspace *dataspace; /* Shared ownership. */ member in struct:rb_buffer
67 /*! @brief Creates a ring buffer structure operating on the given dataspace.
69 Creates a ring buffer structure operating on the given dataspace. This assumes a shared
70 ownership of the given dataspace, an
[all...]
/seL4-refos-master/apps/process_server/src/system/memserv/
H A Ddataspace.c13 #include "dataspace.h"
20 @brief Process Server anon RAM dataspace implementation. */
24 /* --------------------------- RAM dataspace OAT callback functions ----------------------------- */
29 in order to create dataspace objects. Here we malloc some memory for the structure, initialise
30 its data structures, initialise its page array, and mint the dataspace badge capability.
32 @param oat The parent dataspace list (struct ram_dspace_list*).
33 @param id The dataspace ID allocated by the OAT table.
34 @param arg Arg[0] is the dataspace size, the rest unused.
35 @return A new dataspace (struct ram_dspace *) on success, NULL on error. (Transfers ownership)
67 /* Mint the badged capability representing this ram dataspace
269 ram_dspace_check_page(struct ram_dspace *dataspace, uint32_t offset) argument
281 ram_dspace_get_page(struct ram_dspace *dataspace, uint32_t offset) argument
334 ram_dspace_get_size(struct ram_dspace *dataspace) argument
341 ram_dspace_expand(struct ram_dspace *dataspace, uint32_t size) argument
385 ram_dspace_set_to_paddr(struct ram_dspace *dataspace, uint32_t paddr) argument
440 ram_dspace_read_page(char *buf, size_t len, struct ram_dspace *dataspace, uint32_t offset) argument
471 ram_dspace_write_page(char *buf, size_t len, struct ram_dspace *dataspace, uint32_t offset) argument
487 ram_dspace_read(char *buf, size_t len, struct ram_dspace *dataspace, uint32_t offset) argument
518 ram_dspace_write(char *buf, size_t len, struct ram_dspace *dataspace, uint32_t offset) argument
552 ram_dspace_content_init(struct ram_dspace *dataspace, cspacepath_t initEP, uint32_t initPID) argument
617 ram_dspace_need_content_init(struct ram_dspace *dataspace, uint32_t offset) argument
637 ram_dspace_add_content_init_waiter(struct ram_dspace *dataspace, uint32_t offset, cspacepath_t reply) argument
671 ram_dspace_add_content_init_waiter_save_current_caller(struct ram_dspace *dataspace, uint32_t offset) argument
696 ram_dspace_content_init_reply_waiters(struct ram_dspace *dataspace, uint32_t offset) argument
736 ram_dspace_set_content_init_provided(struct ram_dspace *dataspace, uint32_t offset) argument
[all...]
H A Ddataspace.h14 @brief Process Server anon RAM dataspace implementation.
16 A dataspace implementation which is backed by physical RAM. Provides methods for creating &
40 /*! @brief Ram dataspace structure
42 A single ram dataspace backed by physical kernel pages. This structure assumes ownership of its
66 /*! Weak reference to this dataspace's parent. */
70 /*! @brief Ram dataspace list. */
76 /*! @brief Ram dataspace content init waiter structure */
83 /* ------------------------------- RAM dataspace table functions -------------------------------- */
85 /*! @brief Initialises an empty ram dataspace list. */
88 /*! @brief De-initialises an empty ram dataspace lis
[all...]
H A Dringbuffer.c15 #include "dataspace.h"
20 @brief Ring buffer implementation, operating on the internal RAM dataspace objects. */
27 assert(buf && buf->dataspace);
31 ((char*) &buf->localStart), sizeof(uint32_t), buf->dataspace, 0
36 ((char*) &buf->localStart), sizeof(uint32_t), buf->dataspace, 0
46 assert(buf && buf->dataspace);
50 ((char*) &buf->localEnd), sizeof(uint32_t), buf->dataspace, sizeof(uint32_t)
55 ((char*) &buf->localEnd), sizeof(uint32_t), buf->dataspace, sizeof(uint32_t)
73 rb_create(struct ram_dspace *dataspace, enum rb_mode mode) argument
75 assert(dataspace
[all...]
H A Dringbuffer.h14 @brief Ring buffer implementation, operating on the internal RAM dataspace objects.
17 is designed for communication with the clients who share to us our own dataspace. Since reading
33 #include "dataspace.h"
47 the associated dataspace; merely provides a wrapping to use ringbuffers on top of a struct
51 The structure also shares ownership of the underlying dataspace object, using a shared
54 object "hangs onto" its dataspace.
64 struct ram_dspace *dataspace; /* Shared ownership. */ member in struct:rb_buffer
67 /*! @brief Creates a ring buffer structure operating on the given dataspace.
69 Creates a ring buffer structure operating on the given dataspace. This assumes a shared
70 ownership of the given dataspace, an
[all...]
/seL4-refos-master/libs/librefos/include/refos-rpc/
H A Ddata_client_helper.h30 This file contains a simple layer of helper functions that make using the dataspace interface
34 /*! @brief Set the data_open() to paddr mode, for dataservers which support opening a dataspace at a
40 /*! @brief Structure containing state for a mapped dataspace. */
43 seL4_CPtr dataspace; /* Has ownership. */ member in struct:data_mapping
55 /*! @brief Helper function to open a dataspace, allocate a window to map into, then map it there.
56 @param session The client connection session to the dataspace server. (No ownership)
57 @param name The name of the dataspace server.
61 @param dspaceSize The size of dataspace to open. Note that some data servers may ignore this.
89 /* Open the dataspace. */
91 /* Default dataspace siz
[all...]
/seL4-refos-master/projects/refos/impl/libs/librefos/include/refos-rpc/
H A Ddata_client_helper.h30 This file contains a simple layer of helper functions that make using the dataspace interface
34 /*! @brief Set the data_open() to paddr mode, for dataservers which support opening a dataspace at a
40 /*! @brief Structure containing state for a mapped dataspace. */
43 seL4_CPtr dataspace; /* Has ownership. */ member in struct:data_mapping
55 /*! @brief Helper function to open a dataspace, allocate a window to map into, then map it there.
56 @param session The client connection session to the dataspace server. (No ownership)
57 @param name The name of the dataspace server.
61 @param dspaceSize The size of dataspace to open. Note that some data servers may ignore this.
89 /* Open the dataspace. */
91 /* Default dataspace siz
[all...]
/seL4-refos-master/projects/refos/impl/apps/file_server/src/
H A Dpager.c16 Creates big anon RAM dataspace and uses it to manage allocation/deallocation of the frames of
17 the RAM dataspace to be used for paging clients. The frame block works by using a frame pool
18 (cpool_t structure), with the big dataspace mapped into a window. We then call data_datamap
53 /* Initialise the anonymouse RAM dataspace to allocate from. */
56 fb->dataspace = data_open(REFOS_PROCSERV_EP, "anon", O_CREAT | O_WRONLY |O_TRUNC, O_RDWR,
58 if (error != ESUCCESS || !fb->dataspace) {
59 ROS_ERROR("page_init failed to open anon dataspace.");
60 assert(!"page_init failed to open anon dataspace.");
75 /* Map the dataspace into the window. */
77 error = data_datamap(REFOS_PROCSERV_EP, fb->dataspace, f
[all...]
H A Dpager.h34 seL4_CPtr dataspace; member in struct:fs_frame_block
/seL4-refos-master/apps/file_server/src/
H A Dpager.c16 Creates big anon RAM dataspace and uses it to manage allocation/deallocation of the frames of
17 the RAM dataspace to be used for paging clients. The frame block works by using a frame pool
18 (cpool_t structure), with the big dataspace mapped into a window. We then call data_datamap
53 /* Initialise the anonymouse RAM dataspace to allocate from. */
56 fb->dataspace = data_open(REFOS_PROCSERV_EP, "anon", O_CREAT | O_WRONLY |O_TRUNC, O_RDWR,
58 if (error != ESUCCESS || !fb->dataspace) {
59 ROS_ERROR("page_init failed to open anon dataspace.");
60 assert(!"page_init failed to open anon dataspace.");
75 /* Map the dataspace into the window. */
77 error = data_datamap(REFOS_PROCSERV_EP, fb->dataspace, f
[all...]
H A Dpager.h34 seL4_CPtr dataspace; member in struct:fs_frame_block
/seL4-refos-master/projects/refos/impl/apps/test_os/src/
H A Dtest_anon_ram.c27 test_start("anon dataspace");
29 /* Open an anonymous dataspace and map it entirely in our VSpace. */
35 test_assert(anon.dataspace != 0);
39 /* Write to and read from anon dataspace. */
42 tvprintf("anon dataspace contents: [%s]\n", anon.vaddr);
46 int error = data_expand(REFOS_PROCSERV_EP, anon.dataspace, 0x3000);
48 test_assert(data_get_size(REFOS_PROCSERV_EP, anon.dataspace) == 0x3000);
/seL4-refos-master/apps/test_os/src/
H A Dtest_anon_ram.c27 test_start("anon dataspace");
29 /* Open an anonymous dataspace and map it entirely in our VSpace. */
35 test_assert(anon.dataspace != 0);
39 /* Write to and read from anon dataspace. */
42 tvprintf("anon dataspace contents: [%s]\n", anon.vaddr);
46 int error = data_expand(REFOS_PROCSERV_EP, anon.dataspace, 0x3000);
48 test_assert(data_get_size(REFOS_PROCSERV_EP, anon.dataspace) == 0x3000);
/seL4-refos-master/projects/refos/design/
H A Dprotocol.tex82 \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.
94 D box D [label = "handle request, create dataspace"];
96 C box C [label="read/write/share/use dataspace"];
102 \caption{Sample protocol for opening and closing a dataspace}
109 \autoref{f:opendata} shows mapping an open dataspace into a given memory window. The initialisation sets up the components for sample fault delegation in the system. Note that the process server is acting as the memory manager. The paging could instead be implemented through a separate memory manager process.
121 C abox P [ label = "Create a dataspace" ];
133 \caption{Sample protocol for mapping a dataspace into a given window}
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.
152 C box C [label = "VM fault into mapped dataspace"];
[all...]
H A Dinterface.tex20 Servers implement interfaces which provide management (creation, destruction, monitoring, sharing and manipulation) of objects. For example, an audio device may implement the dataspace interface for UNIX \texttt{/dev/audio} which gives the abstraction to manage audio objects.
36 \item[\obj{dataspace}] is an object that represents a dataspace. The dataspace itself may represent anything that may be modeled as a series of bytes including devices, RAM and files. If something has access to a dataspace object, it may read from the dataspace object, write to the dataspace object and execute the dataspace object by mapping a memory window to the dataspace, closing the dataspace, o
[all...]
/seL4-refos-master/libs/librefos/include/refos-util/
H A Dinit.h40 /*! @brief Self-loader dataspace mapping struct. */
42 seL4_CPtr dataspace; member in struct:sl_dataspace_s
79 down before proper parameter sharing using a shared dataspace has been set up.
/seL4-refos-master/projects/refos/impl/libs/librefos/include/refos-util/
H A Dinit.h40 /*! @brief Self-loader dataspace mapping struct. */
42 seL4_CPtr dataspace; member in struct:sl_dataspace_s
79 down before proper parameter sharing using a shared dataspace has been set up.
/seL4-refos-master/libs/librefossys/src/refos-io/
H A Dmmap_segment.c64 /* Create the dataspace. */
65 seL4_CPtr dataspace = data_open(REFOS_PROCSERV_EP, "anon", 0, 0, local
73 /* Map the segment dataspace into the window. */
74 error = data_datamap(REFOS_PROCSERV_EP, dataspace, window, 0);
83 csfree_delete(dataspace);
89 data_close(REFOS_PROCSERV_EP, dataspace);
90 csfree_delete(dataspace);
127 /* Get the associated dataspace and release it. */
131 seL4_DebugPrintf("mmap_segment_fill: Failed to get window dataspace, error occued.\n");
137 seL4_DebugPrintf("mmap_segment_fill: Failed delete dataspace
[all...]
/seL4-refos-master/projects/refos/impl/libs/librefossys/src/refos-io/
H A Dmmap_segment.c64 /* Create the dataspace. */
65 seL4_CPtr dataspace = data_open(REFOS_PROCSERV_EP, "anon", 0, 0, local
73 /* Map the segment dataspace into the window. */
74 error = data_datamap(REFOS_PROCSERV_EP, dataspace, window, 0);
83 csfree_delete(dataspace);
89 data_close(REFOS_PROCSERV_EP, dataspace);
90 csfree_delete(dataspace);
127 /* Get the associated dataspace and release it. */
131 seL4_DebugPrintf("mmap_segment_fill: Failed to get window dataspace, error occued.\n");
137 seL4_DebugPrintf("mmap_segment_fill: Failed delete dataspace
[all...]
/seL4-refos-master/projects/refos/impl/apps/selfloader/src/
H A Dselfloader.c64 /*! @brief Open the ELF header dataspace, and map it so we can read it.
65 @param fsSession Resolved mount point and session of ELF header dataspace.
87 /*! @brief Helper function to map out a zero vspace segment. Simply opens an anonymous dataspace
90 @param size The size of the zero segment dataspace.
92 dataspace region, due to page alignment.
93 @param out[out] Optional output struct to store windows & dataspace capabilities. If this is
94 set to NULL, the created window and dataspace caps are simply used then
107 assert(!elfSegment->dataspace);
112 /* Open a anon ram dataspace on procserv. */
113 dvprintf(" Creating zero segment dataspace
[all...]
/seL4-refos-master/apps/selfloader/src/
H A Dselfloader.c64 /*! @brief Open the ELF header dataspace, and map it so we can read it.
65 @param fsSession Resolved mount point and session of ELF header dataspace.
87 /*! @brief Helper function to map out a zero vspace segment. Simply opens an anonymous dataspace
90 @param size The size of the zero segment dataspace.
92 dataspace region, due to page alignment.
93 @param out[out] Optional output struct to store windows & dataspace capabilities. If this is
94 set to NULL, the created window and dataspace caps are simply used then
107 assert(!elfSegment->dataspace);
112 /* Open a anon ram dataspace on procserv. */
113 dvprintf(" Creating zero segment dataspace
[all...]
/seL4-refos-master/projects/refos/impl/apps/process_server/src/test/
H A Dtest_memserv.c21 #include "../system/memserv/dataspace.h"
146 /* --------------------------------- RAM dataspace module test ---------------------------------- */
151 test_start("ram dataspace list");
164 tvprintf(" Creating dataspace %d (size %d)...\n", i, rsz[i]);
173 tvprintf("Testing dataspace get...\n");
212 /* Create new dataspace should assign new ID. */
213 tvprintf("Testing new dataspace creation to assign new ID...\n");
229 int ram_dspace_read_page(char *buf, size_t len, struct ram_dspace *dataspace, uint32_t offset);
230 int ram_dspace_write_page(char *buf, size_t len, struct ram_dspace *dataspace, uint32_t offset);
245 int (*dsRead)(char *buf, size_t len, struct ram_dspace *dataspace, uint32_
[all...]

Completed in 147 milliseconds

12