From 26cf9c3c6b8dd8d8c94867fefaac64bac7df02a4 Mon Sep 17 00:00:00 2001 From: rofl0r Date: Wed, 19 Dec 2012 05:08:07 +0100 Subject: link.h: expose glibc/svr4 dynlinker debugging glue this is already implemented in the dynliker (see struct debug), but was not exposed. we need it to do so to make wine happy... --- include/link.h | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) diff --git a/include/link.h b/include/link.h index d5160e7e..c30431e9 100644 --- a/include/link.h +++ b/include/link.h @@ -3,6 +3,7 @@ #include #define __NEED_size_t +#define __NEED_uint32_t #include #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 -- cgit v1.2.1 From 3bb167b33818b3ac569f73a2ff82ff1ab3b04c4a Mon Sep 17 00:00:00 2001 From: rofl0r Date: Wed, 19 Dec 2012 06:09:57 +0100 Subject: x86_64/bits/signal.h: fix typo in REG_CSGSFS --- arch/x86_64/bits/signal.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/arch/x86_64/bits/signal.h b/arch/x86_64/bits/signal.h index b4220fe2..71b656b5 100644 --- a/arch/x86_64/bits/signal.h +++ b/arch/x86_64/bits/signal.h @@ -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 -- cgit v1.2.1 From 36d7303878a8827b706317383fc218529f432143 Mon Sep 17 00:00:00 2001 From: rofl0r Date: Wed, 19 Dec 2012 07:32:38 +0100 Subject: add inet_network (required for wine) --- include/arpa/inet.h | 1 + src/network/inet_network.c | 11 +++++++++++ 2 files changed, 12 insertions(+) create mode 100644 src/network/inet_network.c diff --git a/include/arpa/inet.h b/include/arpa/inet.h index 92938403..fdc501aa 100644 --- a/include/arpa/inet.h +++ b/include/arpa/inet.h @@ -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); diff --git a/src/network/inet_network.c b/src/network/inet_network.c new file mode 100644 index 00000000..ae60d7f6 --- /dev/null +++ b/src/network/inet_network.c @@ -0,0 +1,11 @@ +#include +#include +#include +#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); +} -- cgit v1.2.1 From 3159e2fc816f5c56b54f86f38748ba1ff9e18f9f Mon Sep 17 00:00:00 2001 From: rofl0r Date: Wed, 19 Dec 2012 19:02:22 +0100 Subject: socket.h: add SO_(SND/RCV)BUFFORCE to generic block --- include/sys/socket.h | 2 ++ 1 file changed, 2 insertions(+) diff --git a/include/sys/socket.h b/include/sys/socket.h index f1489186..19b2aa55 100644 --- a/include/sys/socket.h +++ b/include/sys/socket.h @@ -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 -- cgit v1.2.1