26#ifdef F___iop_control_internals
27int _iop_reboot_count = 0;
30extern int _iop_reboot_count;
47 for (arglen = 0; arg[arglen] !=
'\0'; arglen++)
48 reset_pkt.arg[arglen] = arg[arglen];
53 reset_pkt.header.psize =
sizeof reset_pkt;
54 reset_pkt.header.cid = SIF_CMD_RESET_CMD;
55 reset_pkt.arglen = arglen;
56 reset_pkt.mode = mode;
58 dmat.src = &reset_pkt;
59 dmat.dest = (
void *)SifGetReg(SIF_SYSREG_SUBADDR);
60 dmat.size =
sizeof(reset_pkt);
61 dmat.attr = SIF_DMA_ERT | SIF_DMA_INT_O;
62 SifWriteBackDCache(&reset_pkt,
sizeof(reset_pkt));
66 if (!SifSetDma(&dmat, 1))
71 SifSetReg(SIF_SYSREG_RPCINIT, 0);
72 SifSetReg(SIF_SYSREG_SUBADDR, (
int)NULL);
84 printf(
"too long parameter \'%s\'\n", arg);
91 strcpy(param_str,
"rom0:UDNL ");
92 strcat(param_str, arg);
int SifIopReboot(const char *arg)
int SifIopReset(const char *arg, int mode)