int convert_patches(struct fsex_libdata *lib, int dest, char *output, int force) { uint8 *patch, *data; int i, fd; uint8 newpatch[2000]; struct fsex_libdata newlib; data = lib->data; newlib.model = dest; fd = create_libfile(&newlib, output, force); if (fd < 0) { return fd; } printf("\nPatches from %s:\n\n", lib->filename); for (i = 0; i < lib->num_patch; i++) { if (lib->patch[i].skip) continue; memcpy(newpatch, lib->patch[i].patch, lib->patch[i].size); /* Patch Common */ patch = newpatch + (lib->patch[i].common - lib->patch[i].patch); printf(" %04d [%-12.12s]\r", i + 1, &patch[PATCH_NAME_1]); /* Patch Tone 1 */ patch = newpatch + (lib->patch[i].tone1 - lib->patch[i].patch); do_conversion(1, lib->model, dest, patch); /* Patch Tone 2 */ patch = newpatch + (lib->patch[i].tone2 - lib->patch[i].patch); do_conversion(2, lib->model, dest, patch); /* Patch Tone 3 */ patch = newpatch + (lib->patch[i].tone3 - lib->patch[i].patch); do_conversion(3, lib->model, dest, patch); /* Patch Tone 4 */ patch = newpatch + (lib->patch[i].tone4 - lib->patch[i].patch); do_conversion(4, lib->model, dest, patch); /* write raw data */ write(fd, newpatch, lib->patch[i].size); write32_be(fd, 0); /* FIXME: comment field */ } printf("\nCreate new library: %s\n", output); close_libfile(fd, i); return 0; }
static int vmod12e16_ioctl(struct inode *ino, struct file *filp, unsigned int cmd, unsigned long arg) { struct vmod12e16_conversion cnv, *cnvp = &cnv; int err; switch (cmd) { case VMOD12E16_IOCCONVERT: if (copy_from_user(cnvp, (const void __user*)arg, sizeof(cnv))) return -EINVAL; if ((err = do_conversion(filp, cnvp)) != 0) return err; if (copy_to_user((void __user *)arg, cnvp, sizeof(cnv))) return -EINVAL; return 0; break; default: return -ENOTTY; break; } return 0; }
start_states() #endif { zzRULE; zzBLOCK(zztasp1); zzMake0; { { zzBLOCK(zztasp2); zzMake0; { if ( (LA(1)==PER_PER) ) { zzmatch(PER_PER); zzCONSUME; do_conversion(); } else { if ( (LA(1)==NAME_PER_PER) ) { zzmatch(NAME_PER_PER); zzCONSUME; do_conversion(); { zzBLOCK(zztasp3); zzMake0; { while ( (LA(1)==NAME_PER_PER) ) { zzmatch(NAME_PER_PER); zzCONSUME; do_conversion(); zzLOOP(zztasp3); } zzEXIT(zztasp3); } } } else {zzFAIL(1,zzerr1,&zzMissSet,&zzMissText,&zzBadTok,&zzBadText,&zzErrk); goto fail;} } zzEXIT(zztasp2); } } zzmatch(PER_PER); zzCONSUME; zzEXIT(zztasp1); return; fail: zzEXIT(zztasp1); zzsyn(zzMissText, zzBadTok, (ANTLRChar *)"", zzMissSet, zzMissTok, zzErrk, zzBadText); zzresynch(setwd1, 0x2); } }