函数逻辑报告

Linux Kernel

v5.5.9

Brick Technologies Co., Ltd

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

函数名称:COMPAT_SYSCALL_DEFINE3

函数原型:COMPAT_SYSCALL_DEFINE3(io_submit, compat_aio_context_t, ctx_id, int, nr, compat_uptr_t __user *, iocbpp)

返回类型:

参数:

1953  ret等于0
1954  i等于0
1957  如果此条件成立可能性小(为编译器优化)(nr < 0)则返回:负EINVAL
1960  ctx等于lookup_ioctx(ctx_id)
1961  如果此条件成立可能性小(为编译器优化)(!ctx)则
1962  pr_debug("EINVAL: invalid context id\n")
1963  返回:负EINVAL
1966  如果nr大于 Size of ringbuffer, in units of struct io_event nr等于 Size of ringbuffer, in units of struct io_event
1969  如果nr大于Plugging is meant to work with larger batches of IOs. If we don't* have more than the below, then don't bother setting up a plug.blk_start_plug( & plug)
1971 i小于nr循环
1975  ret等于负EFAULT
1976  退出
1979  ret等于io_submit_one(ctx, A pointer passed in from user mode. This should not* be used for syscall parameters, just declare them* as pointers because the syscall entry code will have* appropriately converted them already., true)
1980  如果ret退出
1983  如果nr大于Plugging is meant to work with larger batches of IOs. If we don't* have more than the below, then don't bother setting up a plug.blk_finish_plug( & plug)
1986  percpu计数引用减
1987  返回:如果ii否则ret