Function report |
Source Code:fs\io_uring.c |
Create Date:2022-07-28 20:22:16 |
Last Modify:2020-03-12 14:18:49 | Copyright©Brick |
home page | Tree |
Annotation kernel can get tool activity | Download SCCT | Chinese |
Name:io_issue_sqe
Proto:static int io_issue_sqe(struct io_kiocb *req, const struct io_uring_sqe *sqe, struct io_kiocb **nxt, bool force_nonblock)
Type:int
Parameter:
Type | Parameter | Name |
---|---|---|
struct io_kiocb * | req | |
const struct io_uring_sqe * | sqe | |
struct io_kiocb ** | nxt | |
bool | force_nonblock |
3188 | Case opcode == IORING_OP_NOP |
3190 | Break |
3191 | Case opcode == IORING_OP_READV |
3192 | Case opcode == IORING_OP_READ_FIXED |
3193 | If sqe Then |
3194 | ret = io_read_prep(req, sqe, force_nonblock) |
3195 | If ret < 0 Then Break |
3198 | ret = io_read(req, nxt, force_nonblock) |
3199 | Break |
3200 | Case opcode == IORING_OP_WRITEV |
3201 | Case opcode == IORING_OP_WRITE_FIXED |
3202 | If sqe Then |
3203 | ret = io_write_prep(req, sqe, force_nonblock) |
3204 | If ret < 0 Then Break |
3207 | ret = io_write(req, nxt, force_nonblock) |
3208 | Break |
3209 | Case opcode == IORING_OP_FSYNC |
3210 | If sqe Then |
3211 | ret = io_prep_fsync(req, sqe) |
3212 | If ret < 0 Then Break |
3215 | ret = io_fsync(req, nxt, force_nonblock) |
3216 | Break |
3217 | Case opcode == IORING_OP_POLL_ADD |
3218 | If sqe Then |
3219 | ret = io_poll_add_prep(req, sqe) |
3220 | If ret Then Break |
3223 | ret = io_poll_add(req, nxt) |
3224 | Break |
3225 | Case opcode == IORING_OP_POLL_REMOVE |
3226 | If sqe Then |
3227 | ret = io_poll_remove_prep(req, sqe) |
3228 | If ret < 0 Then Break |
3231 | ret = Find a running poll command that matches one specified in sqe->addr,* and remove it if found. |
3232 | Break |
3233 | Case opcode == IORING_OP_SYNC_FILE_RANGE |
3234 | If sqe Then |
3235 | ret = io_prep_sfr(req, sqe) |
3236 | If ret < 0 Then Break |
3239 | ret = io_sync_file_range(req, nxt, force_nonblock) |
3240 | Break |
3241 | Case opcode == IORING_OP_SENDMSG |
3242 | If sqe Then |
3243 | ret = io_sendmsg_prep(req, sqe) |
3244 | If ret < 0 Then Break |
3247 | ret = io_sendmsg(req, nxt, force_nonblock) |
3248 | Break |
3249 | Case opcode == IORING_OP_RECVMSG |
3250 | If sqe Then |
3251 | ret = io_recvmsg_prep(req, sqe) |
3252 | If ret Then Break |
3255 | ret = io_recvmsg(req, nxt, force_nonblock) |
3256 | Break |
3257 | Case opcode == IORING_OP_TIMEOUT |
3258 | If sqe Then |
3259 | ret = io_timeout_prep(req, sqe, false) |
3260 | If ret Then Break |
3263 | ret = io_timeout(req) |
3264 | Break |
3265 | Case opcode == IORING_OP_TIMEOUT_REMOVE |
3273 | Case opcode == IORING_OP_ACCEPT |
3274 | If sqe Then |
3275 | ret = io_accept_prep(req, sqe) |
3276 | If ret Then Break |
3279 | ret = io_accept(req, nxt, force_nonblock) |
3280 | Break |
3281 | Case opcode == IORING_OP_CONNECT |
3282 | If sqe Then |
3283 | ret = io_connect_prep(req, sqe) |
3284 | If ret Then Break |
3287 | ret = io_connect(req, nxt, force_nonblock) |
3288 | Break |
3289 | Case opcode == IORING_OP_ASYNC_CANCEL |
3290 | If sqe Then |
3291 | ret = io_async_cancel_prep(req, sqe) |
3292 | If ret Then Break |
3295 | ret = io_async_cancel(req, nxt) |
3296 | Break |
3297 | Default |
3305 | If flags & _context is polled Then |
3306 | in_async = io_wq_current_is_worker() |
3312 | If in_async Then mutex_lock( & uring_lock) |
3321 | Return 0 |
Name | Describe |
---|---|
io_wq_submit_work | |
__io_queue_sqe |
Source code conversion tool public plug-in interface | X |
---|---|
Support c/c++/esqlc/java Oracle/Informix/Mysql Plug-in can realize: logical Report Code generation and batch code conversion |