aboutsummaryrefslogtreecommitdiffstats
path: root/erts/emulator/nifs/common/socket_util.h
diff options
context:
space:
mode:
Diffstat (limited to 'erts/emulator/nifs/common/socket_util.h')
-rw-r--r--erts/emulator/nifs/common/socket_util.h25
1 files changed, 25 insertions, 0 deletions
diff --git a/erts/emulator/nifs/common/socket_util.h b/erts/emulator/nifs/common/socket_util.h
index 686ce0bac6..af0bf70d8f 100644
--- a/erts/emulator/nifs/common/socket_util.h
+++ b/erts/emulator/nifs/common/socket_util.h
@@ -29,10 +29,35 @@
#include <erl_nif.h>
#include "socket_int.h"
+#define VOIDP(P) ((void*)P)
+#define CHARP(P) ((char*)P)
+
#define ESOCK_ABORT(E) esock_abort(E, __func__, __FILE__, __LINE__)
#define ESOCK_ASSERT(e) ((void) ((e) ? 1 : (ESOCK_ABORT(#e), 0)))
extern
+char* esock_encode_msghdr(ErlNifEnv* env,
+ int read,
+ struct msghdr* msgHdrP,
+ ErlNifBinary* ctrlBufP,
+ ERL_NIF_TERM* eSockAddr);
+extern
+char* esock_encode_iov(ErlNifEnv* env,
+ int read,
+ struct iovec* iov,
+ size_t len,
+ ERL_NIF_TERM* eIOV);
+extern
+char* esock_encode_cmsghdrs(ErlNifEnv* env,
+ ErlNifBinary* cmsgBinP,
+ struct msghdr* msgHdrP,
+ ERL_NIF_TERM* eCMsgHdr);
+
+extern
+char* esock_encode_mshghdr_flags(ErlNifEnv* env,
+ int msgFlags,
+ ERL_NIF_TERM* flags);
+extern
char* esock_decode_sockaddr(ErlNifEnv* env,
ERL_NIF_TERM eSockAddr,
SocketAddress* sockAddrP,