Lines Matching refs:msg

408 int uffd_read_msg(int ufd, struct uffd_msg *msg)  in uffd_read_msg()  argument
410 int ret = read(uffd, msg, sizeof(*msg)); in uffd_read_msg()
412 if (ret != sizeof(*msg)) { in uffd_read_msg()
425 void uffd_handle_page_fault(struct uffd_msg *msg, struct uffd_args *args) in uffd_handle_page_fault() argument
429 if (msg->event != UFFD_EVENT_PAGEFAULT) in uffd_handle_page_fault()
430 err("unexpected msg event %u", msg->event); in uffd_handle_page_fault()
432 if (msg->arg.pagefault.flags & UFFD_PAGEFAULT_FLAG_WP) { in uffd_handle_page_fault()
434 wp_range(uffd, msg->arg.pagefault.address, page_size, false); in uffd_handle_page_fault()
436 } else if (msg->arg.pagefault.flags & UFFD_PAGEFAULT_FLAG_MINOR) { in uffd_handle_page_fault()
453 ((char *)msg->arg.pagefault.address - in uffd_handle_page_fault()
457 continue_range(uffd, msg->arg.pagefault.address, page_size, in uffd_handle_page_fault()
482 if (msg->arg.pagefault.flags & UFFD_PAGEFAULT_FLAG_WRITE) in uffd_handle_page_fault()
485 offset = (char *)(unsigned long)msg->arg.pagefault.address - area_dst; in uffd_handle_page_fault()
498 struct uffd_msg msg; in uffd_poll_thread() local
529 if (uffd_read_msg(uffd, &msg)) in uffd_poll_thread()
531 switch (msg.event) { in uffd_poll_thread()
533 err("unexpected msg event %u\n", msg.event); in uffd_poll_thread()
536 args->handle_fault(&msg, args); in uffd_poll_thread()
540 uffd = msg.arg.fork.ufd; in uffd_poll_thread()
544 uffd_reg.range.start = msg.arg.remove.start; in uffd_poll_thread()
545 uffd_reg.range.len = msg.arg.remove.end - in uffd_poll_thread()
546 msg.arg.remove.start; in uffd_poll_thread()
552 area_dst = (char *)(unsigned long)msg.arg.remap.to; in uffd_poll_thread()