42 |
container_share_id, |
container_share_id, |
43 |
container_allocate_id, |
container_allocate_id, |
44 |
container_deallocate_id, |
container_deallocate_id, |
45 |
container_map_id |
container_map_id, |
46 |
|
container_copy_id |
47 |
}; |
}; |
48 |
|
|
49 |
/* Create a container managed by the physical memory server. On |
/* Create a container managed by the physical memory server. On |
180 |
|
|
181 |
return l4_msg_label (msg); |
return l4_msg_label (msg); |
182 |
} |
} |
183 |
|
|
184 |
|
error_t |
185 |
|
hurd_pm_container_copy (hurd_pm_container_t src_container, |
186 |
|
uintptr_t src_start, |
187 |
|
hurd_pm_container_t dest_container, |
188 |
|
uintptr_t dest_start, |
189 |
|
size_t count, |
190 |
|
uintptr_t flags, |
191 |
|
size_t *amount) |
192 |
|
{ |
193 |
|
l4_msg_t msg; |
194 |
|
l4_msg_tag_t tag; |
195 |
|
|
196 |
|
l4_msg_clear (msg); |
197 |
|
l4_set_msg_label (msg, container_copy_id); |
198 |
|
l4_msg_append_word (msg, src_container); |
199 |
|
l4_msg_append_word (msg, src_start); |
200 |
|
l4_msg_append_word (msg, dest_container); |
201 |
|
l4_msg_append_word (msg, dest_start); |
202 |
|
l4_msg_append_word (msg, count); |
203 |
|
l4_msg_append_word (msg, flags); |
204 |
|
|
205 |
|
l4_msg_load (msg); |
206 |
|
|
207 |
|
tag = l4_call (physmem); |
208 |
|
l4_msg_store (tag, msg); |
209 |
|
|
210 |
|
*amount = l4_msg_word (msg, 0); |
211 |
|
|
212 |
|
return l4_msg_label (msg); |
213 |
|
} |