void cache_print_usparcIIs(struct instruction *i) { switch(i->code){ case WRITE_HINT: printf("\t%s\t[",i->mnemonic); arg_print(i,0); printf("], 3\n"); break; case PREF_IMM: printf("\t%s\t[",i->mnemonic); arg_print(i,1); printf(" + "); arg_print(i,0); printf("],1\n"); break; case COUNTER_HINT: printf("Counter SPR not present on alpha\n"); exit(0); break; default: printf("Error: Unknown cache hint requested\n"); exit(0); break; } return; }
void cache_print_ppc440s(struct instruction *i) { switch(i->code){ case FLUSH: case WRITE_HINT: case PREF_IMM: printf("\t%s\t",i->mnemonic); arg_print(i,0); printf(","); arg_print(i,1); printf("\n"); break; case COUNTER_HINT: printf("\t%s\t",i->mnemonic); arg_print(i,0); printf("\n"); break; default: printf("Error: Unknown cache hint requested\n"); exit(0); break; } return; }
void cache_print_knc(struct instruction *i) { switch (i->code) { case TOUCHL2: // FIXME printf("\t%s 2, \t", i->mnemonic); arg_print(i, 0); printf(","); arg_print(i, 1); printf("\n"); break; case FLUSH: // FIXME case FLUSHL2: // FIXME printf("\t%s \t", i->mnemonic); arg_print(i, 0); printf("("); arg_print(i, 1); printf(")\n"); break; case TOUCHLOCKSET: case TOUCHLOCKCLEAR: case WRITE_HINT: case PREF_IMM: printf("\t%s ", i->mnemonic); arg_print(i, 0); printf("("); arg_print(i, 1); printf(")\n"); break; case COUNTER_HINT: printf("\t%s\t", i->mnemonic); arg_print(i, 0); printf("\n"); break; case PREF0: case PREF1: case PREF0NT: case PREF1NT: printf("\t%s ", i->mnemonic); arg_print(i, 0); printf("("); arg_print(i, 1); printf(")\n"); break; default: printf("Error: Unknown cache hint requested\n"); exit(0); break; } }
void inst_print(reil_inst_t *inst) { char arg_str[MAX_ARG_STR]; // print address and mnemonic printf( "%.8llx.%.2x %7s ", inst->raw_info.addr, inst->inum, inst_op[inst->op] ); // print instruction arguments printf("%16s, ", arg_print(&inst->a, arg_str)); printf("%16s, ", arg_print(&inst->b, arg_str)); printf("%16s ", arg_print(&inst->c, arg_str)); printf("\n"); }
static void arg_print(struct arg_data * p) { if (p == NULL) return; arg_print(p->next); if (p->kind != ARG_BLANK) printf("-%c%s ", p->key, p->kind == ARG_NUMERIC ? "<n>": p->kind == ARG_STRING ? "<s>": " "); printf("%s\n", p->description); }
int main_regtest(int argc, char *argv[]) { arg_t *a; gzFile fp; if (argc == 1) { fprintf(stderr, "Usage: fastARG regtest <in.arg>\n"); return 1; } fp = strcmp(argv[1], "-") == 0? gzdopen(fileno(stdin), "r") : gzopen(argv[1], "r"); a = arg_load(fp); gzclose(fp); arg_print(a); arg_destroy(a); return 0; }
void arg_help(char * msg) { printf("\n\nFatal - %s\n\n", msg == NULL ? "": msg); arg_print(base); exit(EXIT_FAILURE); }
int wmain(int argc, wchar_t** argv) { _setmode(_fileno(stdout), _O_U16TEXT); _setmode(_fileno(stderr), _O_U16TEXT); #else int main(int argc, char** argv) { #endif struct Arguments args = parse_args(argc, argv); if(!args.valid) { return EXIT_FAILURE; } bool success = true; for(size_t i = 0; i < args.num_filenames; ++i) { FILE* file = open_file(args.filenames[i]); struct TempFile* temp_file = make_temp_file("newline_%.tmp"); if(file == NULL) { arg_printerr( arg_f arg_s(": ") arg_f arg_s(": ") arg_f, argv[0], args.filenames[i], arg_strerror(errno) ); if(temp_file != NULL) { fclose(temp_file->file); delete(temp_file->filename); free_temp_file(temp_file); } success = false; } else if(temp_file == NULL) { arg_printerr( arg_f arg_s(": ") arg_f arg_s(": Unable to create temporary ") arg_s("file"), argv[0], args.filenames[i] ); fclose(file); success = false; } else { bool result = trim_file( file, temp_file->file, args.newline_type, args.trailing_newline, args.strip_whitespace ); if(result) { // Need to copy the temp file to original file. It would be // faster to just rename() the temporary file to the original // file, but this won't preserve file metadata such as // permission bits or owners. ReplaceFile() does this on // Windows, but an easy solution for Unix systems doesn't seem // to exist. fseeko(file, 0, SEEK_SET); fseeko(temp_file->file, 0, SEEK_SET); uint8_t* buffer = malloc(FileBufferLen); size_t read_bytes = fread( buffer, 1, FileBufferLen, temp_file->file ); while(read_bytes) { fwrite(buffer, 1, read_bytes, file); read_bytes = fread( buffer, 1, FileBufferLen, temp_file->file ); } free(buffer); off_t file_len = ftello(file); fflush(file); ftruncate(fileno(file), file_len); } if(args.verbose) { if(result) { arg_print( arg_s("Processed ") arg_f, args.filenames[i] ); } else { arg_print( arg_s("No changes made to ") arg_f, args.filenames[i] ); } } fclose(file); fclose(temp_file->file); delete(temp_file->filename); free_temp_file(temp_file); } } free_args(&args); if(!success) { return EXIT_FAILURE; } return EXIT_SUCCESS; }