- nlist("/vmunix", nl);
- if (nl[X_DUMPDEV].n_value == 0)
- {
- fprintf(stderr, "savecore: dumpdev not in namelist\n");
- exit(6);
- }
- if (nl[X_DUMPLO].n_value == 0)
- {
- fprintf(stderr, "savecore: dumplo not in namelist\n");
- exit(6);
- }
- if (nl[X_TIME].n_value == 0)
- {
- fprintf(stderr, "savecore: time not in namelist\n");
- exit(6);
- }
- if (nl[X_PHYSMEM].n_value == 0)
- {
- fprintf("savecore: physmem not in namelist\n");
- exit(6);
- }
- if (nl[X_VERSION].n_value == 0)
- {
- fprintf("savecore: version not in namelist\n");
- exit(6);
- }
- if (nl[X_PANICSTR].n_value == 0)
- {
- fprintf("savecore: panicstr not in namelist\n");
- exit(6);
- }
- kmem = Open("/dev/kmem", 0);
- Lseek(kmem, nl[X_DUMPDEV].n_value, 0);
- Read(kmem, &dumpdev, sizeof dumpdev);
- Lseek(kmem, nl[X_DUMPLO].n_value, 0);
- Read(kmem, &dumplo, sizeof dumplo);
- Lseek(kmem, nl[X_PHYSMEM].n_value, 0);
- Read(kmem, &physmem, sizeof physmem);
- Lseek(kmem, nl[X_PANICSTR].n_value, 0);
- Read(kmem, &panicstr, sizeof panicstr);
- dumplo *= 512L;
- ddname = find_dev(dumpdev, S_IFBLK);
- /*
- * Check for version mismatch
- */
- if ((fp = fdopen(kmem, "r")) == NULL)
- {
- fprintf(stderr, "Couldn't fdopen kmem\n");
- exit(11);
- }
- fseek(fp, nl[X_VERSION].n_value, 0);
- fgets(vers, sizeof vers, fp);
- fclose(fp);
- if ((fp = fopen(ddname, "r")) == NULL)
- {
- perror(ddname);
- exit(12);