merge a few fixes by sh4rm4
authorRich Felker <dalias@aerifal.cx>
Wed, 19 Dec 2012 18:07:37 +0000 (13:07 -0500)
committerRich Felker <dalias@aerifal.cx>
Wed, 19 Dec 2012 18:07:37 +0000 (13:07 -0500)
arch/x86_64/bits/signal.h
include/arpa/inet.h
include/link.h
include/sys/socket.h
src/network/inet_network.c [new file with mode: 0644]

index b4220fe..71b656b 100644 (file)
@@ -20,7 +20,7 @@
 #define REG_RSP         15
 #define REG_RIP         16
 #define REG_EFL         17
-#define REG_CSGFS       18
+#define REG_CSGSFS      18
 #define REG_ERR         19
 #define REG_TRAPNO      20
 #define REG_OLDMASK     21
index 9293840..fdc501a 100644 (file)
@@ -24,6 +24,7 @@ uint32_t ntohl(uint32_t);
 uint16_t ntohs(uint16_t);
 
 in_addr_t inet_addr (const char *);
+in_addr_t inet_network (const char *);
 char *inet_ntoa (struct in_addr);
 int inet_pton (int, const char *__restrict, void *__restrict);
 const char *inet_ntop (int, const void *__restrict, char *__restrict, socklen_t);
index d5160e7..c30431e 100644 (file)
@@ -3,6 +3,7 @@
 
 #include <elf.h>
 #define __NEED_size_t
+#define __NEED_uint32_t
 #include <bits/alltypes.h>
 
 #if UINTPTR_MAX > 0xffffffff
@@ -11,6 +12,9 @@
 #define ElfW(type) Elf32_ ## type
 #endif
 
+/* this is the same everywhere except alpha and s390 */
+typedef uint32_t Elf_Symndx;
+
 struct dl_phdr_info {
        ElfW(Addr) dlpi_addr;
        const char *dlpi_name;
@@ -22,6 +26,21 @@ struct dl_phdr_info {
        void *dlpi_tls_data;
 };
 
+struct link_map {
+       ElfW(Addr) l_addr;
+       char *l_name;
+       ElfW(Dyn) *l_ld;
+       struct link_map *l_next, *l_prev;
+};
+
+struct r_debug {
+       int r_version;
+       struct link_map *r_map;
+       ElfW(Addr) r_brk;
+       enum { RT_CONSISTENT, RT_ADD, RT_DELETE } r_state;
+       ElfW(Addr) r_ldbase;
+};
+
 int dl_iterate_phdr(int (*)(struct dl_phdr_info *, size_t, void *), void *);
 
 #endif
index f148918..19b2aa5 100644 (file)
@@ -150,6 +150,8 @@ struct linger
 #define SO_SNDLOWAT     19
 #define SO_RCVTIMEO     20
 #define SO_SNDTIMEO     21
+#define SO_SNDBUFFORCE  32
+#define SO_RCVBUFFORCE  33
 #endif
 
 
diff --git a/src/network/inet_network.c b/src/network/inet_network.c
new file mode 100644 (file)
index 0000000..ae60d7f
--- /dev/null
@@ -0,0 +1,11 @@
+#include <sys/socket.h>
+#include <netinet/in.h>
+#include <arpa/inet.h>
+#include "__dns.h"
+
+in_addr_t inet_network(const char *p)
+{
+        struct sockaddr_in sin;
+        if (__ipparse(&sin, AF_INET, p)) return -1;
+        return ntohl(sin.sin_addr.s_addr);
+}