diff --git a/book/src/kernel/linux-compatibility/README.md b/book/src/kernel/linux-compatibility/README.md index 096480db4..545727416 100644 --- a/book/src/kernel/linux-compatibility/README.md +++ b/book/src/kernel/linux-compatibility/README.md @@ -208,9 +208,9 @@ which are summarized in the table below. | 185 | security | ❌ | N/A | | 186 | gettid | ✅ | 💯 | | 187 | readahead | ❌ | N/A | -| 188 | setxattr | ✅ | ❓ | -| 189 | lsetxattr | ✅ | ❓ | -| 190 | fsetxattr | ✅ | ❓ | +| 188 | setxattr | ✅ | 💯 | +| 189 | lsetxattr | ✅ | 💯 | +| 190 | fsetxattr | ✅ | 💯 | | 191 | getxattr | ✅ | 💯 | | 192 | lgetxattr | ✅ | 💯 | | 193 | fgetxattr | ✅ | 💯 | @@ -302,14 +302,14 @@ which are summarized in the table below. | 279 | move_pages | ❌ | N/A | | 280 | utimensat | ✅ | ❓ | | 281 | epoll_pwait | ✅ | ❓ | -| 282 | signalfd | ✅ | ❓ | +| 282 | signalfd | ✅ | 💯 | | 283 | timerfd_create | ✅ | ❓ | | 284 | eventfd | ✅ | 💯 | | 285 | fallocate | ✅ | ❓ | | 286 | timerfd_settime | ✅ | ❓ | | 287 | timerfd_gettime | ✅ | 💯 | | 288 | accept4 | ✅ | ❓ | -| 289 | signalfd4 | ✅ | ❓ | +| 289 | signalfd4 | ✅ | 💯 | | 290 | eventfd2 | ✅ | [⚠️](syscall-flag-coverage/file-descriptor-and-io-control/#eventfd-and-eventfd2) | | 291 | epoll_create1 | ✅ | ❓ | | 292 | dup3 | ✅ | 💯 | diff --git a/book/src/kernel/linux-compatibility/syscall-flag-coverage/file-and-directory-operations/fully_covered.scml b/book/src/kernel/linux-compatibility/syscall-flag-coverage/file-and-directory-operations/fully_covered.scml index 2d34addb9..3ca98430f 100644 --- a/book/src/kernel/linux-compatibility/syscall-flag-coverage/file-and-directory-operations/fully_covered.scml +++ b/book/src/kernel/linux-compatibility/syscall-flag-coverage/file-and-directory-operations/fully_covered.scml @@ -95,6 +95,13 @@ getxattr(path, name, value, size); lgetxattr(path, name, value, size); fgetxattr(fd, name, value, size); +xattr_flags = XATTR_CREATE | XATTR_REPLACE; + +// Set an extended attribute value +setxattr(path, name, value, size, flags = ); +lsetxattr(path, name, value, size, flags = ); +fsetxattr(fd, name, value, size, flags = ); + // List extended attribute names listxattr(path, list, size); llistxattr(path, list, size); diff --git a/book/src/kernel/linux-compatibility/syscall-flag-coverage/file-descriptor-and-io-control/fully_covered.scml b/book/src/kernel/linux-compatibility/syscall-flag-coverage/file-descriptor-and-io-control/fully_covered.scml index 65b057193..1081aa83d 100644 --- a/book/src/kernel/linux-compatibility/syscall-flag-coverage/file-descriptor-and-io-control/fully_covered.scml +++ b/book/src/kernel/linux-compatibility/syscall-flag-coverage/file-descriptor-and-io-control/fully_covered.scml @@ -18,3 +18,7 @@ fdatasync(fd); // Open an epoll file descriptor epoll_create(size); + +// Create a file descriptor for accepting signals +signalfd(fd, mask, sizemask); +signalfd4(fd, mask, sizemask, flags = SFD_NONBLOCK | SFD_CLOEXEC);