crash.software
Projects
Pull Requests
Issues
Builds
criu
Code
Files
Commits
Branches
Tags
Pull Requests
Code Comments
Code Compare
Issues
List
Boards
Milestones
Builds
Statistics
Contributions
Source Lines
Child Projects
Projects
STRLCPY
criu
Files
🤬
Sign In
48373432
ROOT
/
criu
/
uffd.c
Search
History
1476 lines
|
ISO-8859-1
|
30 KB
Blame
Outline
2
4
8
No wrap
Soft wrap
Outline
LOG_PREFIX
lp_debug
(
lpi,fmt,arg...
)
lp_info
(
lpi,fmt,arg...
)
lp_warn
(
lpi,fmt,arg...
)
lp_err
(
lpi,fmt,arg...
)
lp_perror
(
lpi,fmt,arg...
)
NEED_UFFD_API_FEATURES
LAZY_PAGES_SOCK_NAME
LAZY_PAGES_RESTORE_FINISHED
DEFAULT_XFER_LEN
MAX_XFER_LEN
lazy_sock_mutex
:
mutex_t*
lazy_iov
l
:
struct list_head
start
:
unsigned long
end
:
unsigned long
img_start
:
unsigned long
lazy_pages_info
pid
:
int
exited
:
bool
iovs
:
struct list_head
reqs
:
struct list_head
parent
:
struct lazy_pages_info*
ref_cnt
:
unsigned
pr
:
struct page_read
xfer_len
:
unsigned long
total_pages
:
unsigned long
copied_pages
:
unsigned long
lpfd
:
struct epoll_rfd
l
:
struct list_head
buf_size
:
unsigned long
buf
:
void*
epollfd
:
int
restore_finished
:
bool
lazy_sk_rfd
:
struct epoll_rfd
lazy_pages_sk_id
:
int
handle_uffd_event
(
struct epoll_rfd*
)
:
int
lpi_init
(
void
)
{...}
:
struct lazy_pages_info*
free_iovs
(
struct lazy_pages_info*
)
{...}
:
void
lpi_fini
(
struct lazy_pages_info*
)
:
void
lpi_put
(
struct lazy_pages_info*
)
{...}
:
void
lpi_get
(
struct lazy_pages_info*
)
{...}
:
void
lpi_fini
(
struct lazy_pages_info*
)
{...}
:
void
prepare_sock_addr
(
struct sockaddr_un*
)
{...}
:
int
send_uffd
(
int,int
)
{...}
:
int
lazy_pages_setup_zombie
(
int
)
{...}
:
int
uffd_noncooperative
(
void
)
{...}
:
bool
uffd_api_ioctl
(
void*,int,pid_t
)
{...}
:
int
uffd_open
(
int,unsigned long*,int*
)
{...}
:
int
setup_uffd
(
int,struct task_restore_args*
)
{...}
:
int
prepare_lazy_pages_socket
(
void
)
{...}
:
int
server_listen
(
struct sockaddr_un*
)
{...}
:
int
init_mm_entry
(
struct lazy_pages_info*
)
{...}
:
MmEntry*
find_iov
(
struct lazy_pages_info*,unsigned long
)
{...}
:
struct lazy_iov*
split_iov
(
struct lazy_iov*,unsigned long
)
{...}
:
int
merge_iov_lists
(
struct list_head*,struct list_head*
)
{...}
:
void
__copy_iov_list
(
struct list_head*,struct list_head*
)
{...}
:
int
copy_iovs
(
struct lazy_pages_info*,struct lazy_pages_info*
)
{...}
:
int
__drop_iovs
(
struct list_head*,unsigned long,int
)
{...}
:
int
drop_iovs
(
struct lazy_pages_info*,unsigned long,int
)
{...}
:
int
extract_range
(
struct lazy_iov*,unsigned long,unsigned long
)
{...}
:
struct lazy_iov*
__remap_iovs
(
struct list_head*,unsigned long,unsigned long,unsigned long
)
{...}
:
int
remap_iovs
(
struct lazy_pages_info*,unsigned long,unsigned long,unsigned long
)
{...}
:
int
collect_iovs
(
struct lazy_pages_info*
)
{...}
:
int
uffd_io_complete
(
struct page_read*,unsigned long,int
)
:
int
ud_open
(
int,struct lazy_pages_info**
)
{...}
:
int
handle_exit
(
struct lazy_pages_info*
)
{...}
:
int
uffd_recoverable_error
(
int
)
{...}
:
bool
uffd_check_op_error
(
struct lazy_pages_info*,const char*,int*,long
)
{...}
:
int
uffd_copy
(
struct lazy_pages_info*,__u64,int*
)
{...}
:
int
uffd_io_complete
(
struct page_read*,unsigned long,int
)
{...}
:
int
uffd_zero
(
struct lazy_pages_info*,__u64,int
)
{...}
:
int
uffd_seek_pages
(
struct lazy_pages_info*,__u64,int
)
{...}
:
int
uffd_handle_pages
(
struct lazy_pages_info*,__u64,int,unsigned
)
{...}
:
int
pick_next_range
(
struct lazy_pages_info*
)
{...}
:
struct lazy_iov*
update_xfer_len
(
struct lazy_pages_info*,bool
)
{...}
:
void
xfer_pages
(
struct lazy_pages_info*
)
{...}
:
int
handle_remove
(
struct lazy_pages_info*,struct uffd_msg*
)
{...}
:
int
handle_remap
(
struct lazy_pages_info*,struct uffd_msg*
)
{...}
:
int
handle_fork
(
struct lazy_pages_info*,struct uffd_msg*
)
{...}
:
int
complete_forks
(
int,struct epoll_event**,int*
)
{...}
:
int
is_page_queued
(
struct lazy_pages_info*,unsigned long
)
{...}
:
bool
handle_page_fault
(
struct lazy_pages_info*,struct uffd_msg*
)
{...}
:
int
handle_uffd_event
(
struct epoll_rfd*
)
{...}
:
int
lazy_pages_summary
(
struct lazy_pages_info*
)
{...}
:
void
handle_requests
(
int,struct epoll_event**,int
)
{...}
:
int
lazy_pages_finish_restore
(
void
)
{...}
:
int
prepare_lazy_socket
(
void
)
{...}
:
int
lazy_sk_read_event
(
struct epoll_rfd*
)
{...}
:
int
lazy_sk_hangup_event
(
struct epoll_rfd*
)
{...}
:
int
prepare_uffds
(
int,int
)
{...}
:
int
cr_lazy_pages
(
bool
)
{...}
:
int
All occurrences
Please wait...
Page is in error, reload to recover