// Called from entry.S to get us going. // entry.S already took care of defining envs, pages, uvpd, and uvpt. #include extern void umain(int argc, char **argv); const volatile struct Env *thisenv; const char *binaryname = ""; void libmain(int argc, char **argv) { // set thisenv to point at our Env structure in envs[]. // LAB 3: Your code here. envid_t id = sys_getenvid(); thisenv = &envs[ENVX(id)]; // save the name of the program so that panic() can use it if (argc > 0) binaryname = argv[0]; // call user main routine umain(argc, argv); // exit gracefully exit(); }