#include unsigned be(unsigned i) { return (i>>24) | ((i&255)<<24) | ((i>>8) & 0xff00) | (i<<8 & 0xff0000); } /* #define RPCROUTER_CTRL_CMD_DATA 1 #define RPCROUTER_CTRL_CMD_HELLO 2 #define RPCROUTER_CTRL_CMD_BYE 3 #define RPCROUTER_CTRL_CMD_NEW_SERVER 4 #define RPCROUTER_CTRL_CMD_REMOVE_SERVER 5 #define RPCROUTER_CTRL_CMD_REMOVE_CLIENT 6 #define RPCROUTER_CTRL_CMD_RESUME_TX 7 #define RPCROUTER_CTRL_CMD_EXIT 8 #define RPCROUTER_DEFAULT_RX_QUOTA 5 union rr_control_msg { uint32_t cmd; struct { uint32_t cmd; uint32_t prog; uint32_t vers; uint32_t pid; uint32_t cid; } srv; struct { uint32_t cmd; uint32_t pid; uint32_t cid; } cli; }; struct rr_header { uint32_t version; uint32_t type; uint32_t src_pid; uint32_t src_cid; uint32_t confirm_rx; uint32_t size; uint32_t dst_pid; uint32_t dst_cid; }; */ unsigned smem[0x00100000/4]; int dumprpc(int s) { unsigned mid=-1,len,i,type; while(s<0x36460/4+0x2000/4 && smem[s+1]) { type=smem[s+1]; printf("type:%d src:%x,%x dst:%x,%x conf:%d\n",smem[s+1],smem[s+2],smem[s+3],smem[s+6],smem[s+7],smem[s+4]); len=smem[s+5]/4; if(type==1) for(i=0;i