All pastes #1616596 Raw Edit

Untitled

public text v1 · immutable
#1616596 ·published 2009-10-12 21:52 UTC
rendered paste body
#include <stdio.h>

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<len;i++)
            printf("%x ",be(smem[s+i+8]));
      else
      for(i=0;i<len;i++)
         printf("%x ",(smem[s+i+8]));
      puts("");
      s=s+len+8;
   }
}


int main(int argc, char *argv[]) {
	FILE *fin=fopen(argv[1],"rb");

	fread(smem,1,0x00100000,fin);

	printf("\nSend\n");
	dumprpc(0x10198/4+5);
	printf("\nReceive\n");
	dumprpc(0x121ac/4+5);
}