函数逻辑报告

Linux Kernel

v5.5.9

Brick Technologies Co., Ltd

Source Code:fs\fcntl.c Create Date:2022-07-29 10:35:45
Last Modify:2020-03-12 14:18:49 Copyright©Brick
首页 函数Tree
注解内核,赢得工具下载SCCTEnglish

函数名称:SYSCALL_DEFINE3

函数原型:SYSCALL_DEFINE3(fcntl64, unsigned int, fd, unsigned int, cmd, unsigned long, arg)

返回类型:

参数:

475  __userargp等于arg
476  f等于fdget_raw(fd)
478  err等于负EBADF
480  如果非file则转到:out
483  如果此条件成立可能性小(为编译器优化)(f_mode & File is opened with O_PATH; almost nothing can be done with it )则
484  如果非check_fcntl_cmd(cmd)则转到:out1
488  err等于security_file_fcntl(file, cmd, arg)
489  如果err则转到:out1
493  :cmd恒等于using 'struct flock64'
494  :cmd恒等于F_OFD_GETLK
495  err等于负EFAULT
496  如果copy_from_user( & flock, argp, flock的长度)则退出
498  err等于fcntl_getlk64(file, cmd, & flock)
499  如果非errcopy_to_user(argp, & flock, flock的长度)则err等于负EFAULT
501  退出
502  :cmd恒等于F_SETLK64
503  :cmd恒等于F_SETLKW64
504  :cmd恒等于F_OFD_SETLK
505  :cmd恒等于F_OFD_SETLKW
506  err等于负EFAULT
507  如果copy_from_user( & flock, argp, flock的长度)则退出
509  err等于fcntl_setlk64(fd, file, cmd, & flock)
510  退出
511  默认
512  err等于do_fcntl(fd, cmd, arg, file)
513  退出
515  out1 :
516  fdput(f)
517  out :
518  返回:err