static int rtc_probe(struct exi_device *dev) { struct rtc_private *priv = &rtc_private; unsigned long flags; int retval = -ENODEV; if (exi_device_get(dev)) { spin_lock_init(&priv->lock); exi_set_drvdata(dev, priv); priv->dev = dev; memset(&priv->sram, 0, sizeof(struct gcn_sram)); sram_load(dev); spin_lock_irqsave(&priv->lock, flags); ppc_md.set_rtc_time = gcn_set_rtc_time; ppc_md.get_rtc_time = gcn_get_rtc_time; spin_unlock_irqrestore(&priv->lock, flags); retval = 0; } return retval; }
static int gcnrtc_probe(struct exi_device *dev) { struct gcnrtc_drvdata *drvdata = &gcnrtc_drvdata; unsigned long flags; int retval = -ENODEV; if (exi_device_get(dev)) { spin_lock_init(&drvdata->lock); exi_set_drvdata(dev, drvdata); drvdata->dev = dev; memset(&drvdata->sram, 0, sizeof(struct gcn_sram)); sram_load(dev); spin_lock_irqsave(&drvdata->lock, flags); ppc_md.set_rtc_time = gcnrtc_plat_rtc_set_time; ppc_md.get_rtc_time = gcnrtc_plat_rtc_get_time; spin_unlock_irqrestore(&drvdata->lock, flags); drvdata->rtc_dev = rtc_device_register(DRV_MODULE_NAME, &dev->dev, &gcnrtc_ops, THIS_MODULE); retval = 0; } return retval; }
void loader_init(char *s) { char *name, *p; romfile = s; rom_load(); vid_settitle(rom.name); name = strdup(base(romfile)); p = (char *) strchr(name, '.'); if (p) *p = 0; sramfile = malloc(strlen(savedir) + strlen(name) + 7); sprintf(sramfile, "%s%s.sav", savedir, name); rtcfile = malloc(strlen(savedir) + strlen(name) + 7); sprintf(rtcfile, "%s%s.rtc", savedir, name); printf("Loading sramfile: %s\n", sramfile); printf("Loading rtcfile: %s\n", rtcfile); sram_load(); rtc_load(); }
void loader_init(char *s) { char *name, *p; DIR* dir; printf("%s - %s\n",s,savedir); // sys_checkdir(savedir, 1); /* needs to be writable */ dir=opendir(savedir); if(!dir) { mkdir(savedir,0); printf("Savedir created!"); } else closedir(dir); romfile = s; printf("Loading rom...\n"); rom_load(); printf("Rom loaded!\n"); vid_settitle(rom.name); if (savename && *savename) { if (savename[0] == '-' && savename[1] == 0) name = ldup(rom.name); else name = strdup(savename); } else if (romfile && *base(romfile) && strcmp(romfile, "-")) { name = strdup(base(romfile)); p = strchr(name, '.'); if (p) *p = 0; } else name = ldup(rom.name); // name=rom.name; saveprefix = malloc(strlen(savedir) + strlen(name) + 2); sprintf(saveprefix, "%s/%s", savedir, name); sramfile = malloc(strlen(saveprefix) + 5); strcpy(sramfile, saveprefix); strcat(sramfile, ".sav"); rtcfile = malloc(strlen(saveprefix) + 5); strcpy(rtcfile, saveprefix); strcat(rtcfile, ".rtc"); printf("before sram / rtc load ..."); sram_load(); rtc_load(); printf(" done\n"); // atexit(cleanup); }
void loader_init(char *s) { char *name, *p; sys_checkdir(savedir, 1); /* needs to be writable */ romfile = s; rom_load(); vid_settitle(rom.name); if (savename && *savename) { if (savename[0] == '-' && savename[1] == 0) name = ldup(rom.name); else name = strdup(savename); } else if (romfile && *base(romfile) && strcmp(romfile, "-")) { name = strdup(base(romfile)); p = strchr(name, '.'); if (p) *p = 0; } else name = ldup(rom.name); saveprefix = malloc(strlen(savedir) + strlen(name) + 2); sprintf(saveprefix, "%s/%s", savedir, name); sramfile = malloc(strlen(saveprefix) + 5); strcpy(sramfile, saveprefix); strcat(sramfile, ".sav"); rtcfile = malloc(strlen(saveprefix) + 5); strcpy(rtcfile, saveprefix); strcat(rtcfile, ".rtc"); sram_load(); rtc_load(); atexit(cleanup); }
static void gbcLoadSRAM() { save_sram = 0; if (enable_sram) sram_load(); }