⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 ruaxrpc.c

📁 1. 8623L平台
💻 C
📖 第 1 页 / 共 2 页
字号:
 					goto runit;				}			}			if (argc==4) {				if (strcmp(argv[1],"-xkill")==0) {					RMuint32 arg;					pB->xrpcid=XRPC_ID_XKILL;					RMasciiToUInt32(argv[2],&arg);					pB->param0=arg;					RMasciiToUInt32(argv[3],&arg);					pB->param1=arg; 					goto runit;				}				if (strcmp(argv[1],"-ustart")==0) {					RMuint32 arg;					pB->xrpcid=XRPC_ID_XSTART;					RMasciiToUInt32(argv[2],&arg);					pB->param0=arg+UCODE_ONES;					RMasciiToUInt32(argv[3],&arg);					pB->param1=arg;					goto runit;				}				if (strcmp(argv[1],"-ukill")==0) {					RMuint32 arg;					pB->xrpcid=XRPC_ID_XKILL;					RMasciiToUInt32(argv[2],&arg);					pB->param0=arg+UCODE_ONES;					RMasciiToUInt32(argv[3],&arg);					pB->param1=arg;					goto runit;				}			}			else if (argc==5) {				if (strcmp(argv[1],"-xunload")==0) {					RMuint32 arg;					RMuint32 size;										if((size=gbus_write_file( (RMuint8 *)(pB+1), argv[4]))<0)						goto wayout;										pB->xrpcid=XRPC_ID_XUNLOAD;					RMasciiToUInt32(argv[2],&arg);					pB->param1=arg;					RMasciiToUInt32(argv[3],&arg);					pB->param0=arg;					pB->headerandblocksize=sizeof(struct xrpc_block_header)+size;					goto runit;				}			}			else if (argc==7) {				if (strcmp(argv[1],"-xstart")==0) {					RMuint32 arg;					pB->xrpcid=XRPC_ID_XSTART;					RMasciiToUInt32(argv[2],&arg);					pB->param0=arg;					RMasciiToUInt32(argv[3],&arg);					pB->param1=arg;					RMasciiToUInt32(argv[4],&arg);					pB->param2=arg;					RMasciiToUInt32(argv[5],&arg);					pB->param3=arg;					RMasciiToUInt32(argv[6],&arg);					pB->param4=arg;					goto runit;				}  				if (strcmp(argv[1],"-e")==0) { 					RMuint32 arg;  					pB->xrpcid=XRPC_ID_SETENHANCEDMODE; 					RMasciiToUInt32(argv[2],&arg); 					pB->param0=arg; /* it is ignored (xos<=Me0) 2007jan16 e.m. */ 					RMasciiToUInt32(argv[3],&arg); 					pB->param1=arg; 					RMasciiToUInt32(argv[4],&arg); 					pB->param2=arg; 					RMasciiToUInt32(argv[5],&arg); 					pB->param3=arg; 					RMasciiToUInt32(argv[6],&arg); 					pB->param4=arg;  					goto runit;  				}			}			else {				if (strcmp(argv[1],"-v")==0) {					pB->xrpcid=XRPC_ID_SHA1XOS;					if ((RMSUCCEEDED(rc=RUASetProperty(pR, XPUBlock, RMXPUBlockPropertyID_DoXrpc, &p0, sizeof(RMuint32), 0)))) {						printf("xos SHA-1 = %08lx%08lx%08lx%08lx%08lx\n",						       pB->param4,						       pB->param3,						       pB->param2,						       pB->param1,						       pB->param0);					}					else 						fprintf(stderr,"xrpc failed\n");										goto wayout;				}								if (strcmp(argv[1],"-V")==0) {					pB->xrpcid=XRPC_ID_VERSION;					if ((RMSUCCEEDED(rc=RUASetProperty(pR, XPUBlock, RMXPUBlockPropertyID_DoXrpc, &p0, sizeof(RMuint32), 0)))) {						printf("xos Version = %08lx (xos%c%lx)\n",						       pB->param0,						       (RMascii)(pB->param0>>24),						       pB->param0&0xFFFFFF);					}					else 						fprintf(stderr,"xrpc failed\n");										goto wayout;				}				if (strcmp(argv[1],"-s")==0) {					pB->xrpcid=XRPC_ID_GETSERIAL;					if ((RMSUCCEEDED(rc=RUASetProperty(pR, XPUBlock, RMXPUBlockPropertyID_DoXrpc, &p0, sizeof(RMuint32), 0)))) {						printf("serial# = %08lx%08lx%08lx%08lx\n",						       pB->param3,						       pB->param2,						       pB->param1,						       pB->param0);					}					else 						fprintf(stderr,"xrpc failed\n");										goto wayout;				}				if (strcmp(argv[1],"-d")==0) {					RMuint32 last;					pB->xrpcid=XRPC_ID_GETPROTECTION;					/*					  in this dump, the first match is to be understood as					  the good match.					  Also: http://mordred/web/bugzilla/show_bug.cgi?id=55					 */					printf("\n");					#undef DO#define DO(i,j)								\					do {	\					        RMuint32 cur;			\									\						pB->param1=REG_BASE_dram_controller_ ##i+dc_mem_access_ ##j; \						RUASetProperty(pR, XPUBlock, RMXPUBlockPropertyID_DoXrpc, &p0, sizeof(RMuint32), 0); \						cur=(pB->param0&(ac_D1w-1))<<12; \						if (cur==0) { \							printf("(%d) [0x%08lx,...       [ is",j,last); \							printprot(pB->param0); \				                } \					        else { \							cur+=MEM_BASE_dram_controller_ ##i; \							        printf("(%d) [0x%08lx,0x%08lx[ (%9lu bytes) is",j,last,cur,cur-last); \								printprot(pB->param0); \								last=cur; \						} \					} while (0)					printf("DRAM0 data\n");					last=MEM_BASE_dram_controller_0;					DO(0,0);					DO(0,1);					DO(0,2);					DO(0,3);					DO(0,4);					DO(0,5);					printf("DRAM1 data\n");					last=MEM_BASE_dram_controller_1;					DO(1,0);					DO(1,1);					DO(1,2);					DO(1,3);					DO(1,4);					DO(1,5);					#undef DO#define DO(i,j)								\					do {	\					        RMuint32 cur;			\									\						pB->param1=REG_BASE_ ##i+dc_mem_access_ ##j; \						RUASetProperty(pR, XPUBlock, RMXPUBlockPropertyID_DoXrpc, &p0, sizeof(RMuint32), 0); \						cur=pB->param0&(ac_D1w-1); \						if (cur==0) { \							printf("(%d) [0x%08lx,...       [ is",j,last); \							printprot(pB->param0); \				                } \					        else { \							cur+=PMEM_BASE_ ##i; \							printf("(%d) [0x%08lx,0x%08lx[ (%9lu bytes) is",j,last,cur,cur-last); \							printprot(pB->param0); \							last=cur;	\						} \					} while (0)#undef DO2#define DO2(x) \					do {				\						printf(#x " data\n");	\						last=PMEM_BASE_ ##x;	\						DO(x,0);		\						DO(x,1);		\						DO(x,2);		\						DO(x,3);		\					} while (0)					DO2(mpeg_engine_0);					DO2(mpeg_engine_1);					DO2(audio_engine_0);					DO2(audio_engine_1);					DO2(demux_engine);					DO2(xpu_block);					printf("\n");#undef DO#define DO(i,j)								\					do {	\					        RMuint32 cur;			\									\						pB->param1=REG_BASE_ ##i+dc_reg_access_ ##j; \						RUASetProperty(pR, XPUBlock, RMXPUBlockPropertyID_DoXrpc, &p0, sizeof(RMuint32), 0); \						cur=pB->param0&(ac_D1w-1); \						if (cur==0) { \							printf("(%d) [0x%08lx,...       [ is",j,last); \							printprot(pB->param0); \				                } \					        else { \							cur+=REG_BASE_ ##i; \							printf("(%d) [0x%08lx,0x%08lx[ is",j,last,cur); \							printprot(pB->param0); \							last=cur;	\						} \					} while (0)#undef DO2#define DO2(x) \					do {				\						printf(#x " regs\n");	\						last=REG_BASE_ ##x;	\						DO(x,0);		\						DO(x,1);		\						DO(x,2);		\					} while (0)					DO2(dram_controller_0);					DO2(dram_controller_1);#undef DO2#define DO2(x) \					do {				\						printf(#x " regs\n");	\						last=REG_BASE_ ##x;	\						DO(x,0);		\						DO(x,1);		\					} while (0)					DO2(mpeg_engine_0);					DO2(mpeg_engine_1);					DO2(audio_engine_0);					DO2(audio_engine_1);					DO2(demux_engine);#undef DO2#define DO2(x) \					do {				\						printf(#x " regs\n");	\						last=REG_BASE_ ##x;	\						DO(x,0);		\						DO(x,1);		\						DO(x,2);		\						DO(x,3);		\						DO(x,4);		\					} while (0)					DO2(display_block);					DO2(xpu_block);					printf("\n");					goto wayout;				}				if (strcmp(argv[1],"-r")==0) {#if (EM86XX_MODE == EM86XX_MODEID_STANDALONE)										printf("reboot...\n");					pB->xrpcid=XRPC_ID_REBOOT;					goto runit;#else					printf("withhost mode : cannot reboot while em8xxx.o is loaded\n"					       " unload em8xxx.o first, and use xrpc -r instead of ruaxrpc -r\n");#endif				}								if (strcmp(argv[1],"-bc")==0) {					printf("Bonding Comment\n");					pB->xrpcid=XRPC_ID_BONDINGCOMMENT;					pB->param0=0; 					pB->param1=0;  					pB->param2=0; 					pB->param3=0; 					pB->param4=0;					pB->headerandblocksize=sizeof(struct xrpc_block_header);					goto runit;				}				if (strcmp(argv[1],"-c")==0) {					printf("cache dump... (use xboot/gen/cacha,v scripts)\n");					pB->xrpcid=XRPC_ID_CACHEDUMP;					goto runit;				}					if (strcmp(argv[1],"-P")==0) {					printf("pbusopen...\n");					memcpy(base_addr,xrpc_xload_pbusopen,sizeof(xrpc_xload_pbusopen));					goto runit;				}								if (strcmp(argv[1],"-F")==0) {					printf("formatall...\n");					memcpy(base_addr,xrpc_xload_formatall,sizeof(xrpc_xload_formatall));					goto runit;				}			}		}				fprintf(stderr,"inconsistent command line\n");		goto wayout;			runit:		if ((RMSUCCEEDED(rc=RUASetProperty(pR, XPUBlock, RMXPUBlockPropertyID_DoXrpc, &p0, sizeof(RMuint32), 0)))) {			printf("xrpc succeeded\n");		}		else {			fprintf(stderr,				"xrpc failed (%d) --- if a xtask is using a cipher or if you reboot\n"				"                 --- xrpc will fail with RM_BUSY\n", rc);		}				printf("output = %08lx%08lx%08lx%08lx%08lx\n",		       pB->param4,		       pB->param3,		       pB->param2,		       pB->param1,		       pB->param0);			wayout:		RUAUnMap(pR,base_addr,XRPC_ALLOC_SIZE-16);		RUAUnLock(pR,p0,XRPC_ALLOC_SIZE-16);		RUAFree(pR,p);	wayout2:		{}	}#endif		RUADestroyInstance(pR);		return (rc==RM_OK)?0:-1;}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -