#include <stdlib.h>
#include <stdio.h>
#include <string.h>
#include <unistd.h>

#define CPUARG "-cpu"
#define CPUVAL "arm926"
#define QEMUBIN "/bin/qemu-arm-static.bin"

int main(int argc, char *argv[])
{
  FILE *f;
  int i;
  char **argnew;
  argnew=malloc((argc+3)*sizeof(char*));
  argnew[0]=malloc(strlen(argv[0])+1);
  strcpy(argnew[0],argv[0]);
  argnew[1]=malloc(strlen(CPUARG)+1);
  strcpy(argnew[1],CPUARG);
  argnew[2]=malloc(strlen(CPUVAL)+1);
  strcpy(argnew[2],CPUVAL);
  //i=0; printf("%d = %s\n",i,argv[i]);
  for(i=1;i<argc;i++)
  {
    argnew[i+2]=malloc(strlen(argv[i])+1);
    strcpy(argnew[i+2],argv[i]);
    //printf("%d = %s\n",i,argv[i]);
  }
  argnew[argc+2]=NULL;
  /* Not useful...
  if(argc>=2) {
    // Set the short process name (max 16 chars)
    i=strlen(argv[1]);
    while(i>1 && argv[1][i-1]!='/') i--;
    if(f=fopen("/proc/self/comm","w")) {
      fprintf(f,"%s",argv[1]+i);
      fclose(f);
    }
  }
  */
  execv(QEMUBIN,argnew);
  //execv("/bin/echo",argnew);
  //while(1) { i++; }
  return(1);
}
