mirror of
https://github.com/jart/cosmopolitan.git
synced 2025-06-30 16:28:30 +00:00
Make fixes and improvements
- Introduce __assert_disable global - Improve strsignal() thread safety - Make system call tracing thread safe - Fix SO_RCVTIMEO / SO_SNDTIMEO on Windows - Refactor DescribeFoo() functions into one place - Fix fork() on Windows when TLS and MAP_STACK exist - Round upwards in setsockopt(SO_RCVTIMEO) on Windows - Disable futexes on OpenBSD which seem extremely broken - Implement a better kludge for monotonic time on Windows
This commit is contained in:
parent
5d837c4e7c
commit
fbc053e018
186 changed files with 1836 additions and 1325 deletions
|
@ -3,6 +3,10 @@
|
|||
#include "libc/bits/bswap.h"
|
||||
#include "libc/calls/struct/sigset.h"
|
||||
#include "libc/calls/struct/timespec.h"
|
||||
#include "libc/sock/struct/linger.h"
|
||||
#include "libc/sock/struct/msghdr.h"
|
||||
#include "libc/sock/struct/pollfd.h"
|
||||
#include "libc/sock/struct/sockaddr.h"
|
||||
#if !(__ASSEMBLER__ + __LINKER__ + 0)
|
||||
COSMOPOLITAN_C_START_
|
||||
/*───────────────────────────────────────────────────────────────────────────│─╗
|
||||
|
@ -25,62 +29,11 @@ COSMOPOLITAN_C_START_
|
|||
#define htonl(u32) bswap_32(u32)
|
||||
#define ntohl(u32) bswap_32(u32)
|
||||
|
||||
struct in_addr { /* ARPA ABI */
|
||||
/* e.g. 127|0<<8|0<<16|1<<24 or inet_pton(AF_INET, "127.0.0.1", &s_addr) */
|
||||
uint32_t s_addr;
|
||||
};
|
||||
|
||||
struct sockaddr { /* Linux+NT ABI */
|
||||
uint16_t sa_family; /* AF_XXX */
|
||||
char sa_data[14];
|
||||
};
|
||||
|
||||
struct sockaddr_in { /* Linux+NT ABI */
|
||||
uint16_t sin_family; /* AF_XXX */
|
||||
uint16_t sin_port; /* htons(XXX) i.e. big endian */
|
||||
struct in_addr sin_addr;
|
||||
uint8_t sin_zero[8];
|
||||
};
|
||||
|
||||
struct sockaddr_un {
|
||||
uint16_t sun_family; /* AF_UNIX */
|
||||
char sun_path[108]; /* path */
|
||||
};
|
||||
|
||||
struct sockaddr_storage {
|
||||
union {
|
||||
uint16_t ss_family;
|
||||
intptr_t __ss_align;
|
||||
char __ss_storage[128];
|
||||
};
|
||||
};
|
||||
|
||||
struct ip_mreq {
|
||||
struct in_addr imr_multiaddr; /* IP multicast address of group */
|
||||
struct in_addr imr_interface; /* local IP address of interface */
|
||||
};
|
||||
|
||||
struct linger { /* Linux+XNU+BSD ABI */
|
||||
int32_t l_onoff; /* on/off */
|
||||
int32_t l_linger; /* seconds */
|
||||
};
|
||||
|
||||
struct pollfd {
|
||||
int32_t fd;
|
||||
int16_t events;
|
||||
int16_t revents;
|
||||
};
|
||||
|
||||
struct msghdr { /* Linux+NT ABI */
|
||||
void *msg_name; /* optional address */
|
||||
uint32_t msg_namelen; /* size of msg_name */
|
||||
struct iovec *msg_iov; /* scatter/gather array */
|
||||
uint64_t msg_iovlen; /* iovec count */
|
||||
void *msg_control; /* credentials and stuff */
|
||||
uint64_t msg_controllen; /* size of msg_control */
|
||||
uint32_t msg_flags; /* MSG_XXX */
|
||||
};
|
||||
|
||||
/*
|
||||
* Structure used in SIOCGIFCONF request.
|
||||
* Used to retrieve interface configuration
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue