mirror of
https://github.com/jart/cosmopolitan.git
synced 2025-05-29 00:32:29 +00:00
Add test for ioctl(SIOCGIFCONF) and polyfill on BSDs
- Use nullness checks when calling weakly linked functions. - Avoid typedef for reasons described in Linux Kernel style guide. - Avoid enum in in Windows headers. Earlier in Cosmo's history all one hundred files in libc/nt/enum/ used to be enums and it resulted in gigabytes of DWARF data almost as large as everything else in the codebase combined. - Bitfields aren't our friends. They have frequent ABI breakages, inconsistent arithmetic across compilers, and different endianness between cpus. Compiler authors also haven't invested much roi into making bit fields go fast so they produce poor assembly. - Use memccpy() instead of strncpy() or snprintf() for length-bounded copying of C strings. strncpy() is a misunderstood function and snprintf() is awesome but memccpy() deserves more love.
This commit is contained in:
parent
86ab24ce56
commit
5144c22189
41 changed files with 502 additions and 476 deletions
|
@ -102,11 +102,11 @@ struct ifconf {
|
|||
#define IFHWADDRLEN 6
|
||||
#define IF_NAMESIZE 16
|
||||
#define IFNAMSIZ IF_NAMESIZE
|
||||
|
||||
struct ifreq {
|
||||
union {
|
||||
char ifrn_name[IFNAMSIZ]; /* Interface name, e.g. "en0". */
|
||||
} ifr_ifrn;
|
||||
|
||||
union {
|
||||
struct sockaddr ifru_addr; /* SIOCGIFADDR */
|
||||
struct sockaddr ifru_dstaddr; /* SIOCGIFDSTADDR */
|
||||
|
@ -128,8 +128,6 @@ struct ifreq {
|
|||
#define _IOT_ifreq_short _IOT(_IOTS(char), IFNAMSIZ, _IOTS(short), 1, 0, 0)
|
||||
#define _IOT_ifreq_int _IOT(_IOTS(char), IFNAMSIZ, _IOTS(int), 1, 0, 0)
|
||||
|
||||
#define IFF_UP (1 << 0)
|
||||
|
||||
const char *inet_ntop(int, const void *, char *, uint32_t);
|
||||
int inet_aton(const char *, struct in_addr *);
|
||||
int inet_pton(int, const char *, void *);
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue