| #ifndef LINUX_USER_SOCKET_H |
| #define LINUX_USER_SOCKET_H |
| |
| #include "sockbits.h" |
| |
| #ifndef TARGET_ARCH_HAS_SOCKET_TYPES |
| /** sock_type - Socket types - default values |
| * |
| * |
| * @SOCK_STREAM - stream (connection) socket |
| * @SOCK_DGRAM - datagram (conn.less) socket |
| * @SOCK_RAW - raw socket |
| * @SOCK_RDM - reliably-delivered message |
| * @SOCK_SEQPACKET - sequential packet socket |
| * @SOCK_DCCP - Datagram Congestion Control Protocol socket |
| * @SOCK_PACKET - linux specific way of getting packets at the dev level. |
| * For writing rarp and other similar things on the user |
| * level. |
| * @SOCK_CLOEXEC - sets the close-on-exec (FD_CLOEXEC) flag. |
| * @SOCK_NONBLOCK - sets the O_NONBLOCK file status flag. |
| */ |
| enum sock_type { |
| TARGET_SOCK_STREAM = 1, |
| TARGET_SOCK_DGRAM = 2, |
| TARGET_SOCK_RAW = 3, |
| TARGET_SOCK_RDM = 4, |
| TARGET_SOCK_SEQPACKET = 5, |
| TARGET_SOCK_DCCP = 6, |
| TARGET_SOCK_PACKET = 10, |
| }; |
| |
| #define TARGET_SOCK_MAX (TARGET_SOCK_PACKET + 1) |
| #define TARGET_SOCK_TYPE_MASK 0xf /* Covers up to TARGET_SOCK_MAX-1. */ |
| |
| /* Flags for socket, socketpair, accept4 */ |
| #define TARGET_SOCK_CLOEXEC TARGET_O_CLOEXEC |
| #ifndef TARGET_SOCK_NONBLOCK |
| #define TARGET_SOCK_NONBLOCK TARGET_O_NONBLOCK |
| #endif |
| #endif /* TARGET_ARCH_HAS_SOCKET_TYPES */ |
| |
| #endif |