Add SCML for accept and accept4

This commit is contained in:
jiangjianfeng 2025-12-17 03:10:28 +00:00 committed by Tate, Hongliang Tian
parent fff756f116
commit 420c54de0e
3 changed files with 28 additions and 2 deletions

View File

@ -63,7 +63,7 @@ which are summarized in the table below.
| 40 | sendfile | ✅ | 💯 |
| 41 | socket | ✅ | [⚠️](syscall-flag-coverage/networking-and-sockets/#socket) |
| 42 | connect | ✅ | [⚠️](syscall-flag-coverage/networking-and-sockets/#connect) |
| 43 | accept | ✅ | |
| 43 | accept | ✅ | [⚠️](syscall-flag-coverage/networking-and-sockets/#accept-and-accept4) |
| 44 | sendto | ✅ | [⚠️](syscall-flag-coverage/networking-and-sockets/#sendto-sendmsg-and-sendmmsg) |
| 45 | recvfrom | ✅ | [⚠️](syscall-flag-coverage/networking-and-sockets/#recvfrom-and-recvmsg) |
| 46 | sendmsg | ✅ | [⚠️](syscall-flag-coverage/networking-and-sockets/#sendto-sendmsg-and-sendmmsg) |
@ -308,7 +308,7 @@ which are summarized in the table below.
| 285 | fallocate | ✅ | ❓ |
| 286 | timerfd_settime | ✅ | [⚠️](syscall-flag-coverage/signals-and-timers/#timerfd_settime) |
| 287 | timerfd_gettime | ✅ | 💯 |
| 288 | accept4 | ✅ | |
| 288 | accept4 | ✅ | [⚠️](syscall-flag-coverage/networking-and-sockets/#accept-and-accept4) |
| 289 | signalfd4 | ✅ | 💯 |
| 290 | eventfd2 | ✅ | [⚠️](syscall-flag-coverage/file-descriptor-and-io-control/#eventfd-and-eventfd2) |
| 291 | epoll_create1 | ✅ | 💯 |

View File

@ -57,6 +57,17 @@ Supported functionality in SCML:
For more information,
see [the man page](https://man7.org/linux/man-pages/man2/connect.2.html).
### `accept` and `accept4`
Supported functionality in SCML:
```c
{{#include accept_and_accept4.scml}}
```
For more information,
see [the man page](https://man7.org/linux/man-pages/man2/accept.2.html).
## Socket Communication
### `sendto`, `sendmsg` and `sendmmsg`

View File

@ -0,0 +1,15 @@
struct sockaddr = {
sa_family = AF_INET | AF_UNIX | AF_VSOCK,
..
};
// Accept an incoming connection
accept(
sockfd, addr = <sockaddr>, addrlen
);
// Accept an incoming connection and set flags for the new socket
accept4(
sockfd, addr = <sockaddr>, addrlen,
flags = SOCK_NONBLOCK | SOCK_CLOEXEC
);