Newer
Older
ubixos / lib / ubix / sstart.c
@Charlie Root Charlie Root on 2 Jan 2018 756 bytes Fixed crt1
char **environ;
const char *__progname = "";

void _start(unsigned int *ap, ...) {
  int argc;
  char **argv;
  char **env;
  const char *s;

  //argv = ≈
  //argc = *(long *)(void *)(argv - 1);
  //argc = *(long *)(void *)(argv - 1);
printf("0x%X}}", ap);
  argc = *ap++;
  argv = (char **)ap;
  ap += argc + 1;
  env = (char **)ap;
  environ = env;

//  if (env[0] != 0) 
 //   printf("env[0]: 0x%X\n",env[0]);

  /*
  printf("(&ap: 0x%X)\n",&ap);
  printf("(argv[0]: 0x%X\n",argv[0]);
  printf("(argv[-1]: 0x%X:0x%X)\n",argv[-1],*(argv - 1));
  */

/*
  if (argc > 0 && argv[0] != 0x0) {
     __progname = argv[0];
     for (s = __progname; *s != '\0'; s++)
       if (*s == '/')
    __progname = s + 1;
    }
*/

  exit(main(argc, argv, env));

  }