diff options
author | Thomas Huth <thuth@redhat.com> | 2016-09-09 21:52:03 +0200 |
---|---|---|
committer | Alexey Kardashevskiy <aik@ozlabs.ru> | 2016-09-14 17:50:40 +1000 |
commit | e0dc16c217b3d7f98165ff2c7473c9222c879354 (patch) | |
tree | 882baa32b5d7389727a3e9e5b3ba3ce18d2b11c2 /lib | |
parent | 91d86c568ebb45f940ce75575ce4d08420638617 (diff) | |
download | SLOF-e0dc16c217b3d7f98165ff2c7473c9222c879354.zip SLOF-e0dc16c217b3d7f98165ff2c7473c9222c879354.tar.gz SLOF-e0dc16c217b3d7f98165ff2c7473c9222c879354.tar.bz2 |
paflof: Add socket(), send() and recv() functions to paflof
Code is slightly based on the implementation from net-snk, but
has been adapted to use the forth_eval() and forth_push/pop() macros
instead.
Signed-off-by: Thomas Huth <thuth@redhat.com>
Signed-off-by: Alexey Kardashevskiy <aik@ozlabs.ru>
Diffstat (limited to 'lib')
-rw-r--r-- | lib/libc/include/sys/socket.h | 53 |
1 files changed, 53 insertions, 0 deletions
diff --git a/lib/libc/include/sys/socket.h b/lib/libc/include/sys/socket.h new file mode 100644 index 0000000..e9175be --- /dev/null +++ b/lib/libc/include/sys/socket.h @@ -0,0 +1,53 @@ +/****************************************************************************** + * Copyright (c) 2004, 2008 IBM Corporation + * All rights reserved. + * This program and the accompanying materials + * are made available under the terms of the BSD License + * which accompanies this distribution, and is available at + * http://www.opensource.org/licenses/bsd-license.php + * + * Contributors: + * IBM Corporation - initial implementation + *****************************************************************************/ + + +#ifndef _SOCKET_H +#define _SOCKET_H +#include <stdint.h> + +#define AF_PACKET 0 +#define AF_INET 1 +#define AF_INET6 2 + +#define SOCK_RAW 0 +#define SOCK_PACKET 1 +#define SOCK_DGRAM 2 +#define SOCK_STREAM 3 + +#define INADDR_ANY 0xFFFFFFFF + +#define IPPROTO_UDP 1 + +#define ETH_ALEN 6 /**< HW address length */ + +struct sockaddr { + uint16_t tra_port; + + uint16_t ipv4_proto; + uint32_t ipv4_addr; + + // protocol field is only used by "connect"-handler + uint16_t llc_proto; + uint8_t mac_addr[ETH_ALEN]; +}; + +int socket(int, int, int, char *); +int sendto(int, const void *, int, int, const void *, int); +int send(int, const void *, int, int); +int recv(int, void *, int, int); + +#define htonl(x) x +#define htons(x) x + +#endif + |