aboutsummaryrefslogtreecommitdiffstats
path: root/test/packetdrill/symbols_openbsd.c
diff options
context:
space:
mode:
Diffstat (limited to 'test/packetdrill/symbols_openbsd.c')
-rw-r--r--test/packetdrill/symbols_openbsd.c281
1 files changed, 281 insertions, 0 deletions
diff --git a/test/packetdrill/symbols_openbsd.c b/test/packetdrill/symbols_openbsd.c
new file mode 100644
index 0000000..4cf1f30
--- /dev/null
+++ b/test/packetdrill/symbols_openbsd.c
@@ -0,0 +1,281 @@
+/*
+ * Copyright 2013 Google Inc.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
+ * 02110-1301, USA.
+ */
+/*
+ * Author: ncardwell@google.com (Neal Cardwell)
+ *
+ * Definitions of strace-style symbols for OpenBSD.
+ * Allows us to map from symbolic strings to integers for system call inputs.
+ */
+
+#if defined(__OpenBSD__)
+
+#include "symbols.h"
+
+#include <errno.h>
+#include <fcntl.h>
+#include <netinet/in.h>
+#include <netinet/udp.h>
+#include <poll.h>
+#include <stdlib.h>
+#include <string.h>
+#include <sys/ioctl.h>
+#include <sys/socket.h>
+#include <sys/stat.h>
+#include <sys/types.h>
+#include <sys/unistd.h>
+
+#include "tcp.h"
+
+/* A table of platform-specific string->int mappings. */
+struct int_symbol platform_symbols_table[] = {
+
+ /* /usr/include/sys/socket.h */
+ { SO_DEBUG, "SO_DEBUG" },
+ { SO_ACCEPTCONN, "SO_ACCEPTCONN" },
+ { SO_REUSEADDR, "SO_REUSEADDR" },
+ { SO_KEEPALIVE, "SO_KEEPALIVE" },
+ { SO_DONTROUTE, "SO_DONTROUTE" },
+ { SO_BROADCAST, "SO_BROADCAST" },
+ { SO_USELOOPBACK, "SO_USELOOPBACK" },
+ { SO_LINGER, "SO_LINGER" },
+ { SO_OOBINLINE, "SO_OOBINLINE" },
+ { SO_REUSEPORT, "SO_REUSEPORT" },
+ { SO_TIMESTAMP, "SO_TIMESTAMP" },
+ { SO_BINDANY, "SO_BINDANY" },
+ { SO_SNDBUF, "SO_SNDBUF" },
+ { SO_RCVBUF, "SO_RCVBUF" },
+ { SO_SNDLOWAT, "SO_SNDLOWAT" },
+ { SO_RCVLOWAT, "SO_RCVLOWAT" },
+ { SO_SNDTIMEO, "SO_SNDTIMEO" },
+ { SO_RCVTIMEO, "SO_RCVTIMEO" },
+ { SO_ERROR, "SO_ERROR" },
+ { SO_TYPE, "SO_TYPE" },
+ { SO_NETPROC, "SO_NETPROC" },
+ { SO_RTABLE, "SO_RTABLE" },
+ { SO_PEERCRED, "SO_PEERCRED" },
+ { SO_SPLICE, "SO_SPLICE" },
+
+ /* /usr/include/netinet/tcp.h */
+ { TCP_NODELAY, "TCP_NODELAY" },
+ { TCP_MAXSEG, "TCP_MAXSEG" },
+ { TCP_MD5SIG, "TCP_MD5SIG" },
+ { TCP_SACK_ENABLE, "TCP_SACK_ENABLE" },
+
+ /* /usr/include/sys/fcntl.h */
+ { O_RDONLY, "O_RDONLY" },
+ { O_WRONLY, "O_WRONLY" },
+ { O_RDWR, "O_RDWR" },
+ { O_ACCMODE, "O_ACCMODE" },
+ { FREAD, "FREAD" },
+ { FWRITE, "FWRITE" },
+ { O_NONBLOCK, "O_NONBLOCK" },
+ { O_APPEND, "O_APPEND" },
+ { O_SHLOCK, "O_SHLOCK" },
+ { O_EXLOCK, "O_EXLOCK" },
+ { O_ASYNC, "O_ASYNC" },
+ { O_FSYNC, "O_FSYNC" },
+ { O_NOFOLLOW, "O_NOFOLLOW" },
+ { O_SYNC, "O_SYNC" },
+ { O_CREAT, "O_CREAT" },
+ { O_TRUNC, "O_TRUNC" },
+ { O_EXCL, "O_EXCL" },
+ { O_DSYNC, "O_DSYNC" },
+ { O_RSYNC, "O_RSYNC" },
+ { O_NOCTTY, "O_NOCTTY" },
+ { O_CLOEXEC, "O_CLOEXEC" },
+ { O_DIRECTORY, "O_DIRECTORY" },
+ { FAPPEND, "FAPPEND" },
+ { FASYNC, "FASYNC" },
+ { FFSYNC, "FFSYNC" },
+ { FNONBLOCK, "FNONBLOCK" },
+ { FNDELAY, "FNDELAY" },
+ { O_NDELAY, "O_NDELAY" },
+ { F_DUPFD, "F_DUPFD" },
+ { F_GETFD, "F_GETFD" },
+ { F_SETFD, "F_SETFD" },
+ { F_GETFL, "F_GETFL" },
+ { F_SETFL, "F_SETFL" },
+ { F_GETOWN, "F_GETOWN" },
+ { F_SETOWN, "F_SETOWN" },
+ { F_GETLK, "F_GETLK" },
+ { F_SETLK, "F_SETLK" },
+ { F_SETLKW, "F_SETLKW" },
+ { F_DUPFD_CLOEXEC, "F_DUPFD_CLOEXEC" },
+ { FD_CLOEXEC, "FD_CLOEXEC" },
+ { F_RDLCK, "F_RDLCK" },
+ { F_UNLCK, "F_UNLCK" },
+ { F_WRLCK, "F_WRLCK" },
+ { LOCK_SH, "LOCK_SH" },
+ { LOCK_EX, "LOCK_EX" },
+ { LOCK_NB, "LOCK_NB" },
+ { LOCK_UN, "LOCK_UN" },
+ { AT_FDCWD, "AT_FDCWD" },
+ { AT_EACCESS, "AT_EACCESS" },
+ { AT_SYMLINK_NOFOLLOW, "AT_SYMLINK_NOFOLLOW" },
+ { AT_SYMLINK_FOLLOW, "AT_SYMLINK_FOLLOW" },
+ { AT_REMOVEDIR, "AT_REMOVEDIR" },
+
+ /* /usr/include/sys/unistd.h */
+ { F_OK, "F_OK" },
+ { X_OK, "X_OK" },
+ { W_OK, "W_OK" },
+ { R_OK, "R_OK" },
+ { SEEK_SET, "SEEK_SET" },
+ { SEEK_CUR, "SEEK_CUR" },
+ { SEEK_END, "SEEK_END" },
+
+ /* /usr/include/sys/socket.h */
+ { MSG_OOB, "MSG_OOB" },
+ { MSG_PEEK, "MSG_PEEK" },
+ { MSG_DONTROUTE, "MSG_DONTROUTE" },
+ { MSG_EOR, "MSG_EOR" },
+ { MSG_TRUNC, "MSG_TRUNC" },
+ { MSG_CTRUNC, "MSG_CTRUNC" },
+ { MSG_WAITALL, "MSG_WAITALL" },
+ { MSG_DONTWAIT, "MSG_DONTWAIT" },
+ { MSG_BCAST, "MSG_BCAST" },
+ { MSG_MCAST, "MSG_MCAST" },
+ { MSG_NOSIGNAL, "MSG_NOSIGNAL" },
+
+ /* /usr/include/sys/filio.h */
+ { FIOCLEX, "FIOCLEX" },
+ { FIONCLEX, "FIONCLEX" },
+ { FIONREAD, "FIONREAD" },
+ { FIONBIO, "FIONBIO" },
+ { FIOASYNC, "FIOASYNC" },
+ { FIOSETOWN, "FIOSETOWN" },
+ { FIOGETOWN, "FIOGETOWN" },
+
+ /* /usr/include/sys/poll.h */
+ { POLLIN, "POLLIN" },
+ { POLLPRI, "POLLPRI" },
+ { POLLOUT, "POLLOUT" },
+ { POLLERR, "POLLERR" },
+ { POLLHUP, "POLLHUP" },
+ { POLLNVAL, "POLLNVAL" },
+ { POLLRDNORM, "POLLRDNORM" },
+ { POLLNORM, "POLLNORM" },
+ { POLLWRNORM, "POLLWRNORM" },
+ { POLLRDBAND, "POLLRDBAND" },
+ { POLLWRBAND, "POLLWRBAND" },
+
+ /* /usr/include/sys/errno.h */
+ { ENOENT, "ENOENT" },
+ { ESRCH, "ESRCH" },
+ { EINTR, "EINTR" },
+ { EIO, "EIO" },
+ { ENXIO, "ENXIO" },
+ { E2BIG, "E2BIG" },
+ { ENOEXEC, "ENOEXEC" },
+ { EBADF, "EBADF" },
+ { ECHILD, "ECHILD" },
+ { EDEADLK, "EDEADLK" },
+ { ENOMEM, "ENOMEM" },
+ { EACCES, "EACCES" },
+ { EFAULT, "EFAULT" },
+ { ENOTBLK, "ENOTBLK" },
+ { EBUSY, "EBUSY" },
+ { EEXIST, "EEXIST" },
+ { EXDEV, "EXDEV" },
+ { ENODEV, "ENODEV" },
+ { ENOTDIR, "ENOTDIR" },
+ { EISDIR, "EISDIR" },
+ { EINVAL, "EINVAL" },
+ { ENFILE, "ENFILE" },
+ { EMFILE, "EMFILE" },
+ { ENOTTY, "ENOTTY" },
+ { ETXTBSY, "ETXTBSY" },
+ { EFBIG, "EFBIG" },
+ { ENOSPC, "ENOSPC" },
+ { ESPIPE, "ESPIPE" },
+ { EROFS, "EROFS" },
+ { EMLINK, "EMLINK" },
+ { EPIPE, "EPIPE" },
+ { EDOM, "EDOM" },
+ { ERANGE, "ERANGE" },
+ { EAGAIN, "EAGAIN" },
+ { EWOULDBLOCK, "EWOULDBLOCK" },
+ { EINPROGRESS, "EINPROGRESS" },
+ { EALREADY, "EALREADY" },
+ { ENOTSOCK, "ENOTSOCK" },
+ { EDESTADDRREQ, "EDESTADDRREQ" },
+ { EMSGSIZE, "EMSGSIZE" },
+ { EPROTOTYPE, "EPROTOTYPE" },
+ { ENOPROTOOPT, "ENOPROTOOPT" },
+ { EPROTONOSUPPORT, "EPROTONOSUPPORT" },
+ { ESOCKTNOSUPPORT, "ESOCKTNOSUPPORT" },
+ { EOPNOTSUPP, "EOPNOTSUPP" },
+ { EPFNOSUPPORT, "EPFNOSUPPORT" },
+ { EAFNOSUPPORT, "EAFNOSUPPORT" },
+ { EADDRINUSE, "EADDRINUSE" },
+ { EADDRNOTAVAIL, "EADDRNOTAVAIL" },
+ { ENETDOWN, "ENETDOWN" },
+ { ENETUNREACH, "ENETUNREACH" },
+ { ENETRESET, "ENETRESET" },
+ { ECONNABORTED, "ECONNABORTED" },
+ { ECONNRESET, "ECONNRESET" },
+ { ENOBUFS, "ENOBUFS" },
+ { EISCONN, "EISCONN" },
+ { ENOTCONN, "ENOTCONN" },
+ { ESHUTDOWN, "ESHUTDOWN" },
+ { ETOOMANYREFS, "ETOOMANYREFS" },
+ { ETIMEDOUT, "ETIMEDOUT" },
+ { ECONNREFUSED, "ECONNREFUSED" },
+ { ELOOP, "ELOOP" },
+ { ENAMETOOLONG, "ENAMETOOLONG" },
+ { EHOSTDOWN, "EHOSTDOWN" },
+ { EHOSTUNREACH, "EHOSTUNREACH" },
+ { ENOTEMPTY, "ENOTEMPTY" },
+ { EPROCLIM, "EPROCLIM" },
+ { EUSERS, "EUSERS" },
+ { EDQUOT, "EDQUOT" },
+ { ESTALE, "ESTALE" },
+ { EREMOTE, "EREMOTE" },
+ { EBADRPC, "EBADRPC" },
+ { ERPCMISMATCH, "ERPCMISMATCH" },
+ { EPROGUNAVAIL, "EPROGUNAVAIL" },
+ { EPROGMISMATCH, "EPROGMISMATCH" },
+ { EPROCUNAVAIL, "EPROCUNAVAIL" },
+ { ENOLCK, "ENOLCK" },
+ { ENOSYS, "ENOSYS" },
+ { EFTYPE, "EFTYPE" },
+ { EAUTH, "EAUTH" },
+ { ENEEDAUTH, "ENEEDAUTH" },
+ { EIPSEC, "EIPSEC" },
+ { ENOATTR, "ENOATTR" },
+ { EILSEQ, "EILSEQ" },
+ { ENOMEDIUM, "ENOMEDIUM" },
+ { EMEDIUMTYPE, "EMEDIUMTYPE" },
+ { EOVERFLOW, "EOVERFLOW" },
+ { ECANCELED, "ECANCELED" },
+ { EIDRM, "EIDRM" },
+ { ENOMSG, "ENOMSG" },
+ { ENOTSUP, "ENOTSUP" },
+
+ /* Sentinel marking the end of the table. */
+ { 0, NULL },
+
+};
+
+struct int_symbol *platform_symbols(void)
+{
+ return platform_symbols_table;
+}
+
+#endif /* __OpenBSD__ */