Exemple #1
0
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;
}
Exemple #2
0
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;
}
Exemple #3
0
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;
    }
}
Exemple #4
0
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");
}
Exemple #5
0
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); 
}
Exemple #6
0
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;
}
Exemple #7
0
void arg_help(char * msg)
{
  printf("\n\nFatal - %s\n\n", msg == NULL ? "": msg); 
  arg_print(base); 
  exit(EXIT_FAILURE); 
}
Exemple #8
0
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;
}