/
githubmirror
/
liburing
Обзор
Документация
Войти
/
githubmirror
/
liburing
Код
Запросы
0
Пакеты
0
Релизы
0
Аналитика
Безопасность
master
test/no-mmap-inval.c
44 строки
947 B
Jens Axboe
test/no-mmap-inval: skip for -ENOENT mmap return
31 окт 2024, 04:27
31 окт 2024, 04:27
5123e95
Код
Авторство
О чём код?
/* SPDX-License-Identifier: MIT */ /* * Description: test that using SETUP_NO_MMAP with an invalid SQ ring * address fails. * */ #include <stdlib.h> #include <sys/types.h> #include <stdio.h> #include <unistd.h> #include "liburing.h" #include "helpers.h" int main(int argc, char *argv[]) { struct io_uring_params p = { .sq_entries = 2, .cq_entries = 4, .flags = IORING_SETUP_NO_MMAP, }; struct io_uring ring; void *addr; int ret; if (argc > 1) return T_EXIT_SKIP; t_posix_memalign(&addr, sysconf(_SC_PAGESIZE), 8192); p.cq_off.user_addr = (unsigned long long) (uintptr_t) addr; ret = io_uring_queue_init_params(2, &ring, &p); if (ret == -EINVAL || ret == -ENOENT) { /* kernel doesn't support SETUP_NO_MMAP */ free(addr); return T_EXIT_SKIP; } else if (ret && (ret != -EFAULT && ret != -ENOMEM)) { fprintf(stderr, "Got %d, wanted -EFAULT\n", ret); return T_EXIT_FAIL; } free(addr); return T_EXIT_PASS; }