summaryrefslogtreecommitdiff
path: root/netcon/RPC.h
diff options
context:
space:
mode:
authorJoseph Henry <josephjah@gmail.com>2016-01-11 10:12:59 -0800
committerJoseph Henry <josephjah@gmail.com>2016-01-11 10:12:59 -0800
commit3e65ecb93d62d628b99d68fec8b1ec94993f4f09 (patch)
tree763cf3956766a28f6c767c067eabec49e039ecff /netcon/RPC.h
parentff9317365a1d9498076b0971f0209fc2aec5c142 (diff)
downloadinfinitytier-3e65ecb93d62d628b99d68fec8b1ec94993f4f09.tar.gz
infinitytier-3e65ecb93d62d628b99d68fec8b1ec94993f4f09.zip
Stateless RPC rework
Diffstat (limited to 'netcon/RPC.h')
-rw-r--r--netcon/RPC.h28
1 files changed, 21 insertions, 7 deletions
diff --git a/netcon/RPC.h b/netcon/RPC.h
index ad8f54d9..ee8182e8 100644
--- a/netcon/RPC.h
+++ b/netcon/RPC.h
@@ -1,12 +1,25 @@
#ifndef __RPCLIB_H_
#define __RPCLIB_H_
-#define IDX_PID 0
-#define IDX_TID sizeof(pid_t)
+#include <stdint.h>
+
+#define MAGIC_SIZE sizeof(uint64_t)
+#define MAGIC_PADDING_SIZE 12
+#define TOKEN_SIZE MAGIC_SIZE+MAGIC_PADDING_SIZE
+
+// 1st section
+#define IDX_SIGNAL_BYTE 0
+#define IDX_PID 1
+#define IDX_TID sizeof(pid_t) + 1
#define IDX_COUNT IDX_TID + sizeof(pid_t)
#define IDX_TIME IDX_COUNT + sizeof(int)
#define IDX_PAYLOAD IDX_TIME + 20 /* 20 being the length of the timestamp string */
+// 2nd section
+#define CMD_ID_IDX 0
+#define MAGIC_IDX 1
+#define STRUCT_IDX MAGIC_IDX+MAGIC_SIZE
+
#define BUF_SZ 256
#define PAYLOAD_SZ 223 /* BUF_SZ-IDX_PAYLOAD */
@@ -37,18 +50,19 @@
extern "C" {
#endif
-void rpc_mutex_destroy();
-void rpc_mutex_init();
-
int get_retval(int);
-int get_new_fd(int);
int rpc_join(const char * sockname);
-int rpc_send_command(int cmd, int rpc_sock, void *data, int len);
+int rpc_send_command(int cmd, int forfd, void *data, int len);
+int get_new_fd(int sock);
ssize_t sock_fd_write(int sock, int fd);
ssize_t sock_fd_read(int sock, void *buf, ssize_t bufsize, int *fd);
+void rpc_mutex_destroy();
+void rpc_mutex_init();
+
+
/* Structures used for sending commands via RPC mechanism */
struct bind_st {