io_uring_0307
IO_URING Advanced usage
Advanced usage
📦 [Linux kernel 5.1] int io_uring_register_buffers(struct io_uring *ring, const struct iovec *iovecs, unsigned nr_iovecs)
고정 버퍼 작업(io_uring_prep_write_fixed(), io_uring_prep_read_fixed())에 사용할 버퍼를 등록합니다.
⦿ Parameters
• ring: io_uring_queue_init()에 의해 설정된 'io_uring' 구조체입니다.
• iovecs: iovec 구조체에 대한 포인터입니다.
• nr_iovecs: iovec 구조체의 개수.
⦿ Return value
성공하면 0을 반환하고 실패하면 -errono를 반환합니다.
strerror(3)를 사용하면 사람이 읽을 수 있는 실패 이유 버전을 얻을 수 있습니다.
⦿ 참고
• 이 함수를 사용하는 고정 버퍼 예제 프로그램. - https://unixism.net/loti/tutorial/fixed_buffers.html#fixed-buffers
• io_uring_register - https://unixism.net/loti/ref-iouring/io_uring_register.html#io-uring-register
📦 [Linux kernel 5.1] int io_uring_unregister_buffers(struct io_uring *ring)
io_uring_register_buffers()에 의해 등록된 버퍼를 등록 해제합니다.
⦿ Parameters
• ring: io_uring_queue_init()에 의해 설정된 'io_uring' 구조체입니다.
⦿ Return value
성공하면 0을 반환하고 실패하면 -errono를 반환합니다.
strerror(3)를 사용하면 사람이 읽을 수 있는 실패 이유 버전을 얻을 수 있습니다.
📦 [Linux kernel 5.1] int io_uring_register_files(struct io_uring *ring, const int *files, unsigned nr_files)
제출 대기열 폴링(IORING_SETUP_SQPOLL)과 관련된 작업과 같은 후속 작업에 사용할 파일 설명자를 등록합니다.
⦿ Parameters
• ring: io_uring_queue_init()에 의해 설정된 'io_uring' 구조체입니다.
• files: 파일 설명자 배열에 대한 포인터입니다.
• nr_files: 배열의 파일 설명자 수입니다.
⦿ Return value
성공하면 0을 반환하고 실패하면 -errono를 반환합니다.
strerror(3)를 사용하면 사람이 읽을 수 있는 실패 이유 버전을 얻을 수 있습니다.
⦿ 참고
• 이 함수를 사용하는 제출 큐 폴링 예제 프로그램입니다.
https://unixism.net/loti/tutorial/sq_poll.html#sq-poll
📦 [Linux kernel 5.1] int io_uring_unregister_files(struct io_uring *ring)
io_uring_register_files()에 의해 등록된 파일 설명자를 등록 취소합니다.
⦿ Parameters
• ring: io_uring_queue_init()에 의해 설정된 'io_uring' 구조체입니다.
⦿ Return value
성공하면 0을 반환하고 실패하면 -errono를 반환합니다.
strerror(3)를 사용하면 사람이 읽을 수 있는 실패 이유 버전을 얻을 수 있습니다.
📦 [Linux kernel 5.5] int io_uring_register_files_update(struct io_uring *ring, unsigned off, int *files, unsigned nr_files)
io_uring_register_files()로 등록된 파일 설명자 세트를 업데이트합니다.
⦿ Parameters
• ring: io_uring_queue_init()에 의해 설정된 'io_uring' 구조체입니다.
• off: 업데이트할 파일 설명자 배열의 오프셋입니다.
• files: 파일 설명자의 배열.
• nr_files: 제공된 배열의 파일 설명자 수입니다.
⦿ Return value
성공하면 0을 반환하고 실패하면 -errono를 반환합니다.
strerror(3)를 사용하면 사람이 읽을 수 있는 실패 이유 버전을 얻을 수 있습니다.
📦 [Linux kernel 5.2] int io_uring_register_eventfd(struct io_uring *ring, int fd)
'io_uring'에 eventfd(2) 파일 설명자를 등록하면 io_uring 인스턴스에서 완료 이벤트에 대한 알림을 받을 수 있으며
이 함수를 사용하면 바로 그렇게 할 수 있습니다.
⦿ Parameters
• ring: io_uring_queue_init()에 의해 설정된 'io_uring' 구조체입니다.
• fd: eventfd(2) 파일 설명자
⦿ Return value
성공하면 0을 반환하고 실패하면 -errono를 반환합니다.
strerror(3)를 사용하면 사람이 읽을 수 있는 실패 이유 버전을 얻을 수 있습니다.
📦 [Linux kernel 5.6] int io_uring_register_eventfd_async(struct io_uring *ring, int fd)
알림이 비동기 방식으로 완료되는 이벤트에 대해서만 게시된다는 점을 제외하면 io_uring_register_eventfd()와 동일합니다.
즉, 제출되는 동안 인라인으로 완료되는 이벤트는 알림 이벤트를 트리거하지 않습니다.
⦿ Parameters
• ring: io_uring_queue_init()에 의해 설정된 'io_uring' 구조체입니다.
• fd: eventfd(2) 파일 설명자
⦿ Return value
성공하면 0을 반환하고 실패하면 -errono를 반환합니다.
strerror(3)를 사용하면 사람이 읽을 수 있는 실패 이유 버전을 얻을 수 있습니다.
📦 [Linux kernel 5.2] int io_uring_unregister_eventfd(struct io_uring *ring)
등록된 eventfd(2) 파일 설명자의 등록을 해제합니다.
⦿ Parameters
• ring: io_uring_queue_init()에 의해 설정된 'io_uring' 구조체입니다.
⦿ Return value
성공하면 0을 반환하고 실패하면 -errono를 반환합니다.
strerror(3)를 사용하면 사람이 읽을 수 있는 실패 이유 버전을 얻을 수 있습니다.
📦 [Linux kernel 5.6] int io_uring_register_personality(struct io_uring *ring)
이 작업은 실행 중인 애플리케이션의 자격 증명을 'io_uring'에 등록하고 이러한 자격 증명과 연관된 ID를 반환합니다.
별도의 사용자/프로세스 간에 링을 공유하려는 애플리케이션은 SQE 개성(personality) 필드에 이 자격 증명 ID를 전달할 수 있습니다.
설정된 경우 해당 특정 sqe에 이러한 자격 증명이 발급됩니다.
⦿ Parameters
• ring: io_uring_queue_init()에 의해 설정된 'io_uring' 구조체입니다.
⦿ Return value
성공 시 개성(personality) ID를 반환하고 실패 시 -errono를 반환합니다.
strerror(3)를 사용하면 사람이 읽을 수 있는 실패 이유 버전을 얻을 수 있습니다.
📦 [Linux kernel 5.6] int io_uring_unregister_personality(struct io_uring *ring, int id)
이전에 io_uring_register_personality()로 등록된 개성(personality)을 등록 해제합니다.
⦿ Parameters
• ring: io_uring_queue_init()에 의해 설정된 'io_uring' 구조체입니다.
• id: 등록을 취소하려면 개인 ID를 입력하세요.
⦿ Return value
성공 시 0을 반환하고 실패 시 -errono를 반환합니다.
strerror(3)를 사용하면 사람이 읽을 수 있는 실패 이유 버전을 얻을 수 있습니다.
⚛ 원문
