예제 #1
0
        /// <summary>
        /// Prepares this Submission Queue Entry as an openat2.
        /// </summary>
        /// <param name="dfd">Directory file descriptor</param>
        /// <param name="path">Path to be opened</param>
        /// <param name="how">How pat should be opened</param>
        /// <param name="userData">User data that will be returned with the respective <see cref="Completion"/></param>
        /// <param name="options">Options for the handling of the prepared Submission Queue Entry</param>
        /// <param name="personality">The personality to impersonate for this submission</param>
        public void PrepareOpenAt2(int dfd, byte *path, open_how *how, ulong userData = 0, SubmissionOption options = SubmissionOption.None, ushort personality = 0)
        {
            var sqe = _sqe;

            unchecked
            {
                sqe->opcode      = IORING_OP_OPENAT2;
                sqe->flags       = (byte)options;
                sqe->fd          = dfd;
                sqe->off         = (ulong)how;
                sqe->addr        = (ulong)path;
                sqe->len         = SizeOf.open_how;
                sqe->user_data   = userData;
                sqe->personality = personality;
            }
        }
예제 #2
0
 public static int openat2(int dirfd, byte *pathname, open_how *how, size_t size)
 {
     return((int)syscall(__NR_openat2, dirfd, pathname, how, size));
 }