aboutsummaryrefslogtreecommitdiff
path: root/lib
diff options
context:
space:
mode:
authorThomas Huth <thuth@redhat.com>2016-09-09 21:52:03 +0200
committerAlexey Kardashevskiy <aik@ozlabs.ru>2016-09-14 17:50:40 +1000
commite0dc16c217b3d7f98165ff2c7473c9222c879354 (patch)
tree882baa32b5d7389727a3e9e5b3ba3ce18d2b11c2 /lib
parent91d86c568ebb45f940ce75575ce4d08420638617 (diff)
downloadSLOF-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.h53
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
+