mirror of
https://github.com/DragonOS-Community/DragonOS.git
synced 2025-06-10 20:36:48 +00:00
uevent should be format Enum of smoltcp socket should be optimized. need to add interface for routing subsys actix is still not abled to run. clean some casual added code to other places
111 lines
3.7 KiB
Rust
111 lines
3.7 KiB
Rust
bitflags::bitflags! {
|
|
/// # Message Flags
|
|
/// Flags we can use with send/ and recv. \
|
|
/// Added those for 1003.1g not all are supported yet
|
|
/// ## Reference
|
|
/// - [Linux Socket Flags](https://code.dragonos.org.cn/xref/linux-6.6.21/include/linux/socket.h#299)
|
|
pub struct MessageFlag: u32 {
|
|
/// `MSG_OOB`
|
|
/// `0b0000_0001`\
|
|
/// Process out-of-band data.
|
|
const OOB = 1;
|
|
/// `MSG_PEEK`
|
|
/// `0b0000_0010`\
|
|
/// Peek at an incoming message.
|
|
const PEEK = 2;
|
|
/// `MSG_DONTROUTE`
|
|
/// `0b0000_0100`\
|
|
/// Don't use routing tables.
|
|
const DONTROUTE = 4;
|
|
/// `MSG_TRYHARD`
|
|
/// `0b0000_0100`\
|
|
/// `MSG_TRYHARD` is not defined in the standard, but it is used in Linux.
|
|
const TRYHARD = 4;
|
|
/// `MSG_CTRUNC`
|
|
/// `0b0000_1000`\
|
|
/// Control data lost before delivery.
|
|
const CTRUNC = 8;
|
|
/// `MSG_PROBE`
|
|
/// `0b0001_0000`\
|
|
const PROBE = 0x10;
|
|
/// `MSG_TRUNC`
|
|
/// `0b0010_0000`\
|
|
/// Data truncated before delivery.
|
|
const TRUNC = 0x20;
|
|
/// `MSG_DONTWAIT`
|
|
/// `0b0100_0000`\
|
|
/// This flag is used to make the socket non-blocking.
|
|
const DONTWAIT = 0x40;
|
|
/// `MSG_EOR`
|
|
/// `0b1000_0000`\
|
|
/// End of record.
|
|
const EOR = 0x80;
|
|
/// `MSG_WAITALL`
|
|
/// `0b0001_0000_0000`\
|
|
/// Wait for full request or error.
|
|
const WAITALL = 0x100;
|
|
/// `MSG_FIN`
|
|
/// `0b0010_0000_0000`\
|
|
/// Terminate the connection.
|
|
const FIN = 0x200;
|
|
/// `MSG_SYN`
|
|
/// `0b0100_0000_0000`\
|
|
/// Synchronize sequence numbers.
|
|
const SYN = 0x400;
|
|
/// `MSG_CONFIRM`
|
|
/// `0b1000_0000_0000`\
|
|
/// Confirm path validity.
|
|
const CONFIRM = 0x800;
|
|
/// `MSG_RST`
|
|
/// `0b0001_0000_0000_0000`\
|
|
/// Reset the connection.
|
|
const RST = 0x1000;
|
|
/// `MSG_ERRQUEUE`
|
|
/// `0b0010_0000_0000_0000`\
|
|
/// Fetch message from error queue.
|
|
const ERRQUEUE = 0x2000;
|
|
/// `MSG_NOSIGNAL`
|
|
/// `0b0100_0000_0000_0000`\
|
|
/// Do not generate a signal.
|
|
const NOSIGNAL = 0x4000;
|
|
/// `MSG_MORE`
|
|
/// `0b1000_0000_0000_0000`\
|
|
/// Sender will send more.
|
|
const MORE = 0x8000;
|
|
/// `MSG_WAITFORONE`
|
|
/// `0b0001_0000_0000_0000_0000`\
|
|
/// For nonblocking operation.
|
|
const WAITFORONE = 0x10000;
|
|
/// `MSG_SENDPAGE_NOPOLICY`
|
|
/// `0b0010_0000_0000_0000_0000`\
|
|
/// Sendpage: do not apply policy.
|
|
const SENDPAGE_NOPOLICY = 0x10000;
|
|
/// `MSG_BATCH`
|
|
/// `0b0100_0000_0000_0000_0000`\
|
|
/// Sendpage: next message is batch.
|
|
const BATCH = 0x40000;
|
|
/// `MSG_EOF`
|
|
const EOF = Self::FIN.bits;
|
|
/// `MSG_NO_SHARED_FRAGS`
|
|
const NO_SHARED_FRAGS = 0x80000;
|
|
/// `MSG_SENDPAGE_DECRYPTED`
|
|
const SENDPAGE_DECRYPTED = 0x10_0000;
|
|
|
|
/// `MSG_ZEROCOPY`
|
|
const ZEROCOPY = 0x400_0000;
|
|
/// `MSG_SPLICE_PAGES`
|
|
const SPLICE_PAGES = 0x800_0000;
|
|
/// `MSG_FASTOPEN`
|
|
const FASTOPEN = 0x2000_0000;
|
|
/// `MSG_CMSG_CLOEXEC`
|
|
const CMSG_CLOEXEC = 0x4000_0000;
|
|
/// `MSG_CMSG_COMPAT`
|
|
// if define CONFIG_COMPAT
|
|
// const CMSG_COMPAT = 0x8000_0000;
|
|
const CMSG_COMPAT = 0;
|
|
/// `MSG_INTERNAL_SENDMSG_FLAGS`
|
|
const INTERNAL_SENDMSG_FLAGS
|
|
= Self::SPLICE_PAGES.bits | Self::SENDPAGE_NOPOLICY.bits | Self::SENDPAGE_DECRYPTED.bits;
|
|
}
|
|
}
|