summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorzms123456 <[email protected]>2024-09-14 05:30:24 +0800
committerGitHub <[email protected]>2024-09-13 17:30:24 -0400
commitfb02e7934db9c6fe75df9c6fb7064b4132934845 (patch)
tree897cbf538a7f368b8020434dcdc9913dd302a408
parent49c39d4a8d0b7bf6ba2f56bda34f00fe898aca09 (diff)
[component][net]add more socket flag
-rw-r--r--components/lwp/lwp_sys_socket.h8
-rw-r--r--components/lwp/lwp_syscall.c17
2 files changed, 25 insertions, 0 deletions
diff --git a/components/lwp/lwp_sys_socket.h b/components/lwp/lwp_sys_socket.h
index 28a0887203..7f1fc457da 100644
--- a/components/lwp/lwp_sys_socket.h
+++ b/components/lwp/lwp_sys_socket.h
@@ -41,6 +41,10 @@
#define INTF_SO_SNDBUF 7
#define INTF_SO_SNDLOWAT 19
#define INTF_SO_RCVLOWAT 18
+#define INTF_SO_BINDTODEVICE 25
+#define INTF_SO_TIMESTAMPNS 35
+#define INTF_SO_TIMESTAMPING 37
+#define INTF_SO_SELECT_ERR_QUEUE 45
#define IMPL_SO_BROADCAST 0x0020
#define IMPL_SO_KEEPALIVE 0x0008
@@ -59,6 +63,10 @@
#define IMPL_SO_SNDBUF 0x1001
#define IMPL_SO_SNDLOWAT 0x1003
#define IMPL_SO_RCVLOWAT 0x1004
+#define IMPL_SO_BINDTODEVICE 0x100b
+#define IMPL_SO_TIMESTAMPNS INTF_SO_TIMESTAMPNS
+#define IMPL_SO_TIMESTAMPING INTF_SO_TIMESTAMPING
+#define IMPL_SO_SELECT_ERR_QUEUE INTF_SO_SELECT_ERR_QUEUE
/* IPPROTO_IP option names */
#define INTF_IP_TTL 2
diff --git a/components/lwp/lwp_syscall.c b/components/lwp/lwp_syscall.c
index 57ea57cf4f..d64af4455a 100644
--- a/components/lwp/lwp_syscall.c
+++ b/components/lwp/lwp_syscall.c
@@ -198,6 +198,18 @@ void lwp_cleanup(struct rt_thread *tid);
case INTF_SO_NO_CHECK:
*optname = IMPL_SO_NO_CHECK;
break;
+ case INTF_SO_BINDTODEVICE:
+ *optname = IMPL_SO_BINDTODEVICE;
+ break;
+ case INTF_SO_TIMESTAMPNS:
+ *optname = IMPL_SO_TIMESTAMPNS;
+ break;
+ case INTF_SO_TIMESTAMPING:
+ *optname = IMPL_SO_TIMESTAMPING;
+ break;
+ case INTF_SO_SELECT_ERR_QUEUE:
+ *optname = IMPL_SO_SELECT_ERR_QUEUE;
+ break;
/*
* SO_DONTLINGER (*level = ((int)(~SO_LINGER))),
@@ -3126,6 +3138,11 @@ static int netflags_muslc_2_lwip(int flags)
{
flgs |= MSG_MORE;
}
+ if (flags & MSG_ERRQUEUE)
+ {
+ flgs |= MSG_ERRQUEUE;
+ }
+
return flgs;
}