[klibc] [PATCH 13/16] Define types and values in sys/socket.h
Louis Rilling
Louis.Rilling at kerlabs.com
Tue Mar 16 04:29:43 PDT 2010
On 01/03/10 23:46 -0800, Mike Waychison wrote:
> It seems a lot of #defines and types in linux/socket.h are now hidden behind
> __KERNEL__. Include them in sys/socket.h for the time being.
>
> At the same time, pull in asm/socket.h and linux/uio.h as they aren't
> implicitly pulled in anymore.
Unfortunately this prevents from building klibc with earlier kernels (e.g.
2.6.26 on debian Lenny).
What's the status of supporting earlier kernels?
gcc -Wp,-MD,usr/klibc/inet/.inet_ntoa.o.d -nostdinc -iwithprefix include -I/home/louis/klibc.git/usr/include/arch/x86_64 -Iusr/include/arch/x86_64 -I/home/louis/klibc.git/usr/include/bits64 -Iusr/include/bits64 -I/home/louis/klibc.git/usr/klibc/../include -Iusr/klibc/../include -I/home/louis/klibc.git/usr/include -Iusr/include -I/home/louis/klibc.git/linux/include -Ilinux/include -I/home/louis/klibc.git/linux/arch/x86/include -Ilinux/arch/x86/include -D__KLIBC__=1 -D__KLIBC_MINOR__=5 -D_BITSIZE=64 -fno-stack-protector -m64 -Os -fno-asynchronous-unwind-tables -fomit-frame-pointer -falign-functions=1 -falign-jumps=1 -falign-loops=1 -W -Wall -Wno-sign-compare -Wno-unused-parameter -c -o usr/klibc/inet/inet_ntoa.o usr/klibc/inet/inet_ntoa.c
In file included from /home/louis/klibc.git/usr/klibc/../include/netinet/in.h:12,
from /home/louis/klibc.git/usr/klibc/../include/arpa/inet.h:12,
from usr/klibc/inet/inet_ntoa.c:7:
/home/louis/klibc.git/usr/klibc/../include/sys/socket.h:146: error: redefinition of typedef ?sa_family_t?
/home/louis/klibc.git/linux/include/linux/socket.h:31: error: previous declaration of ?sa_family_t? was here
/home/louis/klibc.git/usr/klibc/../include/sys/socket.h:147: error: redefinition of ?struct sockaddr?
/home/louis/klibc.git/usr/klibc/../include/sys/socket.h:152: error: redefinition of ?struct msghdr?
make[4]: *** [usr/klibc/inet/inet_ntoa.o] Erreur 1
make[3]: *** [all] Erreur 2
make[2]: *** [klibc] Erreur 2
make[2]: quittant le répertoire « /home/louis/klibc.git »
make[1]: *** [override_dh_auto_build] Erreur 2
make[1]: quittant le répertoire « /home/louis/klibc.git »
make: *** [build] Erreur 2
Thanks,
Louis
>
> Signed-off-by: Mike Waychison <mikew at google.com>
> ---
> usr/include/sys/socket.h | 133 ++++++++++++++++++++++++++++++++++++++++++++++
> 1 files changed, 132 insertions(+), 1 deletions(-)
>
> diff --git a/usr/include/sys/socket.h b/usr/include/sys/socket.h
> index 7d47087..c69caaf 100644
> --- a/usr/include/sys/socket.h
> +++ b/usr/include/sys/socket.h
> @@ -9,6 +9,8 @@
> #include <klibc/compiler.h>
> #include <klibc/sysconfig.h>
> #include <linux/socket.h>
> +#include <linux/uio.h>
> +#include <asm/socket.h>
> #if _KLIBC_HAS_ARCHSOCKET_H
> #include <klibc/archsocket.h>
> #endif
> @@ -17,7 +19,7 @@
> that are hidden under #ifdef __KERNEL__... what a brilliant idea!
> These are the "common" definitions; if not appropriate, override
> them in <klibc/archsocket.h>. */
> -
> +
> #ifndef SOCK_STREAM
> # define SOCK_STREAM 1
> # define SOCK_DGRAM 2
> @@ -27,7 +29,136 @@
> # define SOCK_PACKET 10
> #endif
>
> +#ifndef AF_INET
> +#define AF_UNSPEC 0
> +#define AF_UNIX 1 /* Unix domain sockets */
> +#define AF_LOCAL 1 /* POSIX name for AF_UNIX */
> +#define AF_INET 2 /* Internet IP Protocol */
> +#define AF_AX25 3 /* Amateur Radio AX.25 */
> +#define AF_IPX 4 /* Novell IPX */
> +#define AF_APPLETALK 5 /* AppleTalk DDP */
> +#define AF_NETROM 6 /* Amateur Radio NET/ROM */
> +#define AF_BRIDGE 7 /* Multiprotocol bridge */
> +#define AF_ATMPVC 8 /* ATM PVCs */
> +#define AF_X25 9 /* Reserved for X.25 project */
> +#define AF_INET6 10 /* IP version 6 */
> +#define AF_ROSE 11 /* Amateur Radio X.25 PLP */
> +#define AF_DECnet 12 /* Reserved for DECnet project */
> +#define AF_NETBEUI 13 /* Reserved for 802.2LLC project*/
> +#define AF_SECURITY 14 /* Security callback pseudo AF */
> +#define AF_KEY 15 /* PF_KEY key management API */
> +#define AF_NETLINK 16
> +#define AF_ROUTE AF_NETLINK /* Alias to emulate 4.4BSD */
> +#define AF_PACKET 17 /* Packet family */
> +#define AF_ASH 18 /* Ash */
> +#define AF_ECONET 19 /* Acorn Econet */
> +#define AF_ATMSVC 20 /* ATM SVCs */
> +#define AF_RDS 21 /* RDS sockets */
> +#define AF_SNA 22 /* Linux SNA Project (nutters!) */
> +#define AF_IRDA 23 /* IRDA sockets */
> +#define AF_PPPOX 24 /* PPPoX sockets */
> +#define AF_WANPIPE 25 /* Wanpipe API Sockets */
> +#define AF_LLC 26 /* Linux LLC */
> +#define AF_CAN 29 /* Controller Area Network */
> +#define AF_TIPC 30 /* TIPC sockets */
> +#define AF_BLUETOOTH 31 /* Bluetooth sockets */
> +#define AF_IUCV 32 /* IUCV sockets */
> +#define AF_RXRPC 33 /* RxRPC sockets */
> +#define AF_ISDN 34 /* mISDN sockets */
> +#define AF_PHONET 35 /* Phonet sockets */
> +#define AF_IEEE802154 36 /* IEEE802154 sockets */
> +#define AF_MAX 37 /* For now.. */
> +#endif // !AF_INET
> +
> +#ifndef PF_UNSPEC
> +#define PF_UNSPEC AF_UNSPEC
> +#define PF_UNIX AF_UNIX
> +#define PF_LOCAL AF_LOCAL
> +#define PF_INET AF_INET
> +#define PF_AX25 AF_AX25
> +#define PF_IPX AF_IPX
> +#define PF_APPLETALK AF_APPLETALK
> +#define PF_NETROM AF_NETROM
> +#define PF_BRIDGE AF_BRIDGE
> +#define PF_ATMPVC AF_ATMPVC
> +#define PF_X25 AF_X25
> +#define PF_INET6 AF_INET6
> +#define PF_ROSE AF_ROSE
> +#define PF_DECnet AF_DECnet
> +#define PF_NETBEUI AF_NETBEUI
> +#define PF_SECURITY AF_SECURITY
> +#define PF_KEY AF_KEY
> +#define PF_NETLINK AF_NETLINK
> +#define PF_ROUTE AF_ROUTE
> +#define PF_PACKET AF_PACKET
> +#define PF_ASH AF_ASH
> +#define PF_ECONET AF_ECONET
> +#define PF_ATMSVC AF_ATMSVC
> +#define PF_RDS AF_RDS
> +#define PF_SNA AF_SNA
> +#define PF_IRDA AF_IRDA
> +#define PF_PPPOX AF_PPPOX
> +#define PF_WANPIPE AF_WANPIPE
> +#define PF_LLC AF_LLC
> +#define PF_CAN AF_CAN
> +#define PF_TIPC AF_TIPC
> +#define PF_BLUETOOTH AF_BLUETOOTH
> +#define PF_IUCV AF_IUCV
> +#define PF_RXRPC AF_RXRPC
> +#define PF_ISDN AF_ISDN
> +#define PF_PHONET AF_PHONET
> +#define PF_IEEE802154 AF_IEEE802154
> +#define PF_MAX AF_MAX
> +#endif // !PF_UNSPEC
> +
> +#ifndef MSG_OOB
> +#define MSG_OOB 1
> +#define MSG_PEEK 2
> +#define MSG_DONTROUTE 4
> +#define MSG_TRYHARD 4 /* Synonym for MSG_DONTROUTE for DECnet */
> +#define MSG_CTRUNC 8
> +#define MSG_PROBE 0x10 /* Do not send. Only probe path f.e. for MTU */
> +#define MSG_TRUNC 0x20
> +#define MSG_DONTWAIT 0x40 /* Nonblocking io */
> +#define MSG_EOR 0x80 /* End of record */
> +#define MSG_WAITALL 0x100 /* Wait for a full request */
> +#define MSG_FIN 0x200
> +#define MSG_SYN 0x400
> +#define MSG_CONFIRM 0x800 /* Confirm path validity */
> +#define MSG_RST 0x1000
> +#define MSG_ERRQUEUE 0x2000 /* Fetch message from error queue */
> +#define MSG_NOSIGNAL 0x4000 /* Do not generate SIGPIPE */
> +#define MSG_MORE 0x8000 /* Sender will send more */
> +
> +#define MSG_EOF MSG_FIN
> +
> +#define MSG_CMSG_CLOEXEC 0x40000000 /* Set close_on_exit for file
> + descriptor received through
> + SCM_RIGHTS */
> +#if defined(CONFIG_COMPAT)
> +#define MSG_CMSG_COMPAT 0x80000000 /* This message needs 32 bit fixups */
> +#else
> +#define MSG_CMSG_COMPAT 0 /* We never have 32 bit fixups */
> +#endif
> +#endif // !MSG_OOB
> +
> +/* These types is hidden under __KERNEL__ in kernel sources */
> +typedef unsigned short sa_family_t;
> +struct sockaddr {
> + sa_family_t sa_family; /* address family, AF_xxx */
> + char sa_data[14]; /* 14 bytes of protocol address */
> +};
> typedef int socklen_t;
> +struct msghdr {
> + void *msg_name;
> + int msg_namelen;
> + struct iovec *msg_iov;
> + size_t msg_iovlen;
> + void *msg_control;
> + size_t msg_controllen;
> + unsigned msg_flags;
> +};
> +
>
> __extern int socket(int, int, int);
> __extern int bind(int, struct sockaddr *, int);
>
> _______________________________________________
> klibc mailing list
> klibc at zytor.com
> http://www.zytor.com/mailman/listinfo/klibc
--
Dr Louis Rilling Kerlabs
Skype: louis.rilling Batiment Germanium
Phone: (+33|0) 6 80 89 08 23 80 avenue des Buttes de Coesmes
http://www.kerlabs.com/ 35700 Rennes
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 197 bytes
Desc: Digital signature
URL: <http://www.zytor.com/pipermail/klibc/attachments/20100316/9797b0bf/attachment-0001.sig>
More information about the klibc
mailing list