Lines Matching defs:imsg

32 #include <imsg.h>
44 int vmm_start_vm(struct imsg *, uint32_t *, pid_t *);
45 int vmm_dispatch_parent(int, struct privsep_proc *, struct imsg *);
49 int get_info_vm(struct privsep *, struct imsg *, int);
95 vmm_dispatch_parent(int fd, struct privsep_proc *p, struct imsg *imsg)
105 uint32_t id = 0, peerid = imsg->hdr.peerid;
109 switch (imsg->hdr.type) {
111 res = config_getvm(ps, imsg);
118 res = config_getcdrom(ps, imsg);
125 res = config_getdisk(ps, imsg);
132 res = config_getif(ps, imsg);
139 res = vmm_start_vm(imsg, &id, &pid);
146 IMSG_SIZE_CHECK(imsg, &vid);
147 memcpy(&vid, imsg->data, sizeof(vid));
201 res = get_info_vm(ps, imsg, 0);
205 config_getconfig(env, imsg);
208 IMSG_SIZE_CHECK(imsg, &mode);
209 memcpy(&mode, imsg->data, sizeof(mode));
217 config_getreset(env, imsg);
220 IMSG_SIZE_CHECK(imsg, &verbose);
221 memcpy(&verbose, imsg->data, sizeof(verbose));
227 imsg->hdr.type, imsg->hdr.peerid, imsg->hdr.pid,
232 IMSG_SIZE_CHECK(imsg, &vid);
233 memcpy(&vid, imsg->data, sizeof(vid));
241 imsg->hdr.type, imsg->hdr.peerid, imsg->hdr.pid,
242 imsg_get_fd(imsg), &vid, sizeof(vid));
245 IMSG_SIZE_CHECK(imsg, &vid);
246 memcpy(&vid, imsg->data, sizeof(vid));
254 imsg->hdr.type, imsg->hdr.peerid, imsg->hdr.pid,
255 imsg_get_fd(imsg), &vid, sizeof(vid));
258 IMSG_SIZE_CHECK(imsg, &vid);
259 memcpy(&vid, imsg->data, sizeof(vid));
263 close(imsg_get_fd(imsg)); /* XXX */
268 imsg->hdr.type, imsg->hdr.peerid, imsg->hdr.pid,
269 imsg_get_fd(imsg), &vid, sizeof(vid));
272 IMSG_SIZE_CHECK(imsg, &vmc);
273 memcpy(&vmc, imsg->data, sizeof(vmc));
275 imsg->hdr.peerid, vmc.vmc_owner.uid) != 0) {
280 vm->vm_tty = imsg_get_fd(imsg);
285 if ((vm = vm_getbyvmid(imsg->hdr.peerid)) == NULL) {
287 close(imsg_get_fd(imsg)); /* XXX */
291 vm->vm_receive_fd = imsg_get_fd(imsg);
292 res = vmm_start_vm(imsg, &id, &pid);
299 IMSG_SIZE_CHECK(imsg, &var);
300 memcpy(&var, imsg->data, sizeof(var));
307 imsg->hdr.type, imsg->hdr.peerid, imsg->hdr.pid,
308 imsg_get_fd(imsg), &var, sizeof(var));
313 env->vmd_fd = imsg_get_fd(imsg);
321 env->vmd_psp_fd = imsg_get_fd(imsg);
333 if ((vm = vm_getbyvmid(imsg->hdr.peerid)) != NULL) {
340 id = imsg->hdr.peerid;
454 * Create a new imsg control channel between vmm parent and a VM
488 * imsg callback for messages that are received from a VM child process.
497 struct imsg imsg;
523 if ((n = imsg_get(ibuf, &imsg)) == -1)
528 DPRINTF("%s: got imsg %d from %s",
529 __func__, imsg.hdr.type,
532 switch (imsg.hdr.type) {
540 IMSG_SIZE_CHECK(&imsg, &vmr);
546 &imsg, PROC_PARENT, -1);
553 fatalx("%s: got invalid imsg %d from %s",
554 __func__, imsg.hdr.type,
557 imsg_free(&imsg);
635 * imsg: The VM data structure that is including the VM create parameters.
644 vmm_start_vm(struct imsg *imsg, uint32_t *id, pid_t *pid)
654 if ((vm = vm_getbyvmid(imsg->hdr.peerid)) == NULL) {
661 if ((vm->vm_tty = imsg_get_fd(imsg)) == -1) {
820 * imsg: the received imsg including the peer id.
828 get_info_vm(struct privsep *ps, struct imsg *imsg, int terminate)
887 IMSG_VMDOP_GET_INFO_VM_DATA, imsg->hdr.peerid, -1,