函数逻辑报告

Linux Kernel

v5.5.9

Brick Technologies Co., Ltd

Source Code:include\linux\uaccess.h Create Date:2022-07-27 06:58:40
Last Modify:2020-03-12 14:18:49 Copyright©Brick
首页 函数Tree
注解内核,赢得工具下载SCCTEnglish

函数名称:copy_from_user

函数原型:static __always_inline unsigned long __must_check copy_from_user(void *to, const void __user *from, unsigned long n)

返回类型:unsigned long

参数:

类型参数名称
void *to
const void __user *from
unsigned longn
143  如果此条件成立可能性大(为编译器优化)(check_copy_size(to, n, false))则n等于-of-line parts
145  返回:n
调用者
名称描述
kfifo_copy_from_user
kstrtobool_from_userSince "base" would be a nonsense argument, this open-codes the* _from_user helper instead of using the helper macro below.
kstrtoull_from_user
kstrtoll_from_user
kstrtoul_from_user
kstrtol_from_user
kstrtouint_from_user
kstrtoint_from_user
kstrtou16_from_user
kstrtos16_from_user
kstrtou8_from_user
kstrtos8_from_user
copy_user_test
test_user_copy_init
xz_dec_test_writeDecode the data given to us from the userspace. CRC32 of the uncompressed* data is calculated and is printed at the end of successful decoding. The* uncompressed data isn't stored anywhere for further use.* The
write_ldt
do_set_thread_areaSet a given TLS descriptor:
mtrr_ioctl
pseudo_lock_measure_trigger
msr_write
msr_ioctl
do_sys_vm86
arch_uretprobe_hijack_return_addr
fixup_umip_exceptionxup_umip_exception() - Fixup a general protection fault caused by UMIP*@regs: Registers as saved when entering the #GP handler* The instructions SGDT, SIDT, STR, SMSW and SLDT cause a general protection* fault if executed with CPL > 0 (i
copy_clone_args_from_user
SYSCALL_DEFINE1
COMPAT_SYSCALL_DEFINE1
ptrace_writedata
ptrace_peek_siginfo
ptrace_request
set_user_sigmaskThe api helps set app-provided sigmasks
SYSCALL_DEFINE4sys_rt_sigprocmask - change the list of currently blocked signals*@how: whether to add, remove, or set signals*@nset: stores pending signals*@oset: previous value of signal mask if non-null*@sigsetsize: size of sigset_t type
post_copy_siginfo_from_user
__copy_siginfo_from_user
copy_siginfo_from_user
__copy_siginfo_from_user32
copy_siginfo_from_user32
SYSCALL_DEFINE4sys_rt_sigtimedwait - synchronously wait for queued signals specified* in @uthese*@uthese: queued signals to wait for*@uinfo: if non-null, the signal's siginfo is returned here*@uts: upper bound on process time suspension*@sigsetsize: size of sigset_t type
SYSCALL_DEFINE2
restore_altstack
do_compat_sigaltstack
SYSCALL_DEFINE3sys_sigprocmask - examine and change blocked signals*@how: whether to add, remove, or set signals*@nset: signals to add or remove (if non-null)*@oset: previous value of signal mask if non-null* Some platforms have their own version with special arguments;
SYSCALL_DEFINE4sys_rt_sigaction - alter an action taken by a process*@sig: signal to be sent*@act: new sigaction*@oact: used to save the previous sigaction*@sigsetsize: size of sigset_t type
SYSCALL_DEFINE2sys_rt_sigsuspend - replace the signal mask for a value with the*@unewset value until a signal is received*@unewset: new signal mask value*@sigsetsize: size of sigset_t type
SYSCALL_DEFINE2
SYSCALL_DEFINE2Only setdomainname; getdomainname can be implemented by calling* uname()
COMPAT_SYSCALL_DEFINE2
SYSCALL_DEFINE4
SYSCALL_DEFINE2
prctl_set_auxv
do_sched_setscheduler
get_user_cpu_mask
sched_feat_write
psi_write
pm_qos_power_write
snapshot_ioctl
irq_debug_write
filter_write
kcmp_epoll_target
SYSCALL_DEFINE2
COMPAT_SYSCALL_DEFINE2
get_timespec64
__get_old_timespec32
get_old_timespec32
SYSCALL_DEFINE3
SYSCALL_DEFINE2
get_itimerval
get_old_itimerval32
udelay_test_write
copy_chunked_from_user
kimage_load_normal_segment
kimage_load_crash_segment
copy_user_segment_list
COMPAT_SYSCALL_DEFINE4
compat_get_timeval
compat_get_timespec
get_compat_sigset
proc_setgroups_write
fei_write
seccomp_get_action_avail
tracing_trace_options_write
tracing_set_trace_write
tracing_clock_write
trace_parse_run_command
perf_event_query_prog_array
get_user_stack_nth
probe_mem_readUprobes-specific fetch functions
map_update_elem
bpf_prog_load
bpf_prog_get_info_by_fd
check_btf_func
check_btf_line
btf_parse
btf_get_info_by_fd
__cgroup_bpf_run_filter_sysctl__cgroup_bpf_run_filter_sysctl - Run a program on sysctl*@head: sysctl table header*@table: sysctl table*@write: sysctl is being read (= 0) or written (= 1)*@buf: pointer to buffer passed by user space*@pcount: value-result argument: value is size of
__cgroup_bpf_run_filter_setsockopt
__cgroup_bpf_run_filter_getsockopt
_perf_ioctl
rseq_get_rseq_cs
memdup_usermemdup_user - duplicate memory region from user space*@src: source address in user space*@len: number of bytes to copy* Return: an ERR_PTR() on failure. Result is physically* contiguous, to be freed by kfree().
vmemdup_uservmemdup_user - duplicate memory region from user space*@src: source address in user space*@len: number of bytes to copy* Return: an ERR_PTR() on failure. Result may be not* physically contiguous. Use kvfree() to free.
memdup_user_nulmemdup_user_nul - duplicate memory region from user space and NUL-terminate*@src: source address in user space*@len: number of bytes to copy* Return: an ERR_PTR() on failure.
SYSCALL_DEFINE1
copy_huge_page_from_user
SYSCALL_DEFINE1
get_nodesCopy a node mask from user space.
COMPAT_SYSCALL_DEFINE5
slabinfo_writeslabinfo_write - Tuning for the slab allocator*@file: unused*@buffer: user buffer*@count: data length*@ppos: unused* Return: %0 on success, negative error code otherwise.
do_pages_statDetermine the nodes of a user array of pages and store it in* a user array of status.
gup_benchmark_ioctl
mcopy_atomic_pte
__mcopy_atomic
get_compat_ipc64_perm
get_compat_ipc_perm
load_msg
copy_msqid_from_user
semctl_main
copy_semid_from_user
do_semtimedop
copy_shmid_from_user
ksys_ipc
SYSCALL_DEFINE4
do_mq_notifyNotes: the case when user wants us to deregister (with NULL as pointer)* and he isn't currently owner of notification, will be silently discarded.* It isn't explicitly defined in the POSIX.
SYSCALL_DEFINE2
SYSCALL_DEFINE3
get_compat_mq_attr
blkpg_ioctl
blk_ioctl_discard
blk_ioctl_zeroout
blkdev_pr_register
blkdev_pr_reserve
blkdev_pr_release
blkdev_pr_preempt
blkdev_pr_clear
blk_fill_sghdr_rq
sg_scsi_ioctlsg_scsi_ioctl -- handle deprecated SCSI_IOCTL_SEND_COMMAND ioctl*@q: request queue to send scsi commands down*@disk: gendisk to operate on (option)*@mode: mode used to open the file through which the ioctl has been* submitted*@sic: userspace structure
get_sg_io_hdr
scsi_cmd_ioctl
bsg_scsi_fill_hdr
bsg_sg_io
blkdev_report_zones_ioctlBLKREPORTZONE ioctl processing.* Called from blkdev_ioctl.
blkdev_zone_mgmt_ioctlBLKRESETZONE, BLKOPENZONE, BLKCLOSEZONE and BLKFINISHZONE ioctl processing.* Called from blkdev_ioctl.
queue_state_write
generic_table_write_data
SYSCALL_DEFINE5Extract the description of a new key from userspace and either add it as a* new key to the specified keyring or update a matching key in that keyring.* If the description is NULL or an empty string, the key type is asked to* generate one from the payload.
keyctl_update_keyUpdate a key's data payload from the given data.* The key must grant the caller Write permission and the key type must support* updating for this to work. A negative key can be positively instantiated* with this call.* If successful, 0 will be returned
compat_keyctl_dh_computePerform the DH computation or DH based key derivation.* If successful, 0 will be returned.
__keyctl_dh_compute
keyctl_dh_compute
keyctl_pkey_params_get_2Get parameters from userspace. Callers must always call the free function* on params, even if an error is returned.
sel_write_load
smk_write_doismk_write_doi - write() for /smack/doi*@file: file pointer, not actually used*@buf: where to get the data from*@count: bytes sent*@ppos: where to start* Returns number of bytes written or error code, as appropriate
smk_write_directsmk_write_direct - write() for /smack/direct*@file: file pointer, not actually used*@buf: where to get the data from*@count: bytes sent*@ppos: where to start* Returns number of bytes written or error code, as appropriate
smk_write_mappedsmk_write_mapped - write() for /smack/mapped*@file: file pointer, not actually used*@buf: where to get the data from*@count: bytes sent*@ppos: where to start* Returns number of bytes written or error code, as appropriate
smk_write_loggingsmk_write_logging - write() for /smack/logging*@file: file pointer, not actually used*@buf: where to get the data from*@count: bytes sent*@ppos: where to start* Returns number of bytes written or error code, as appropriate
smk_write_ptracesmk_write_ptrace - write() for /smack/ptrace*@file: file pointer*@buf: data from user space*@count: bytes sent*@ppos: where to start - must be 0
aa_simple_write_to_bufferaa_simple_write_to_buffer - common routine for getting policy from user*@userbuf: user buffer to copy data from (NOT NULL)*@alloc_size: size of user buffer (REQUIRES: @alloc_size >= @copy_size)*@copy_size: size of data to copy from user buffer*@pos:
multi_transaction_new
rw_copy_check_uvectorw_copy_check_uvector() - Copy an array of &struct iovec from userspace* into the kernel and check that it is valid.*@type: One of %CHECK_IOVEC_ONLY, %READ, or %WRITE.*@uvector: Pointer to the userspace array.
SYSCALL_DEFINE4
COMPAT_SYSCALL_DEFINE4
SYSCALL_DEFINE6
copy_strings'copy_strings()' copies argument/environment strings from the old* processes's memory to the new process's stack. The call to get_user_pages()* ensures the destination page is created and not swapped out.
f_setown_ex
fcntl_rw_hint
do_fcntl
SYSCALL_DEFINE3
get_compat_flock
get_compat_flock64
ioctl_fiemap
ioctl_file_clone_range
ioctl_preallocateThis provides compatibility with legacy XFS pre-allocation ioctls* which predate the fallocate syscall.* Only the l_start, l_len and l_whence fields of the 'struct space_resv'* are used here, rest are ignored.
compat_ioctl_preallocatejust account for different alignment
get_fd_setUse "unsigned long" accesses to let user-mode fd_set's be long-aligned.
kern_select
SYSCALL_DEFINE1
do_sys_poll
do_compat_select
COMPAT_SYSCALL_DEFINE1
setxattrExtended attribute SET operations
simple_write_to_buffersimple_write_to_buffer - copy data from user space to the buffer*@to: the buffer to write to*@available: the size of the buffer*@ppos: the current position in the buffer*@from: the user space buffer to read from*@count: the maximum number of bytes to
simple_transaction_get
simple_attr_writerpret the buffer as a number to call the set function with
do_spliceDetermine where to splice to/from.
fanotify_write
SYSCALL_DEFINE4The following function implements the controller interface for* the eventpoll file that enables the insertion/removal/change of* file descriptors inside the interest set.
SYSCALL_DEFINE4
SYSCALL_DEFINE3
eventfd_write
userfaultfd_register
userfaultfd_unregister
userfaultfd_wakeserfaultfd_wake may be used in combination with the* UFFDIO_*_MODE_DONTWAKE to wakeup userfaults in batches.
userfaultfd_copy
userfaultfd_zeropage
userfaultfd_apiserland asks for a certain API version and we return which bits* and ioctl commands are implemented in this kernel for such API* version or -EINVAL if unknown.
io_submit_one
SYSCALL_DEFINE6
COMPAT_SYSCALL_DEFINE6
io_sqe_files_register
io_sqe_files_update
io_copy_iov
io_eventfd_register
io_uring_setupSets up an aio uring context, and returns the fd. Applications asks for a* ring size, we return the actual sq/cq ring sizes (among other things) in the* params structure passed in.
fscrypt_ioctl_add_keyAdd a master encryption key to the filesystem, causing all files which were* encrypted with it to appear "unlocked" (decrypted) when accessed.* When adding a key for use by v1 encryption policies, this ioctl is
do_remove_keyTry to remove an fscrypt master encryption key
fscrypt_ioctl_get_key_statusRetrieve the status of an fscrypt master encryption key
fscrypt_ioctl_set_policy
fscrypt_ioctl_get_policy_exExtended ioctl version; can get policies of any version
enable_verity
fsverity_ioctl_enablesverity_ioctl_enable() - enable verity on a file* Enable fs-verity on a file. See the "FS_IOC_ENABLE_VERITY" section of* Documentation/filesystems/fsverity.rst for the documentation.* Return: 0 on success, -errno on failure
create_entryThis registers a new binary format, it recognises the syntax* ':name:type:offset:magic:mask:interpreter:flags'* where the ':' is the IFS, that can be chosen with the first char
parse_commandSet status of entry/binfmt_misc:* '1' enables, '0' disables and '-1' clears entry/binfmt_misc
do_sys_name_to_handle
handle_to_path
quota_setinfo
quota_setquota
quota_enable
quota_disable
quota_getxstatev
quota_setxquota
quota_rmxquota
copy_struct_from_userpy_struct_from_user: copy a struct from userspace*@dst: Destination address, in kernel space
ib_copy_from_udata