+}
+
+resetstate()
+{
+ int i;
+ off_t kfroms, ktos;
+ int fromssize, tossize;
+ char buf[BUFSIZ];
+
+ turnonoff(PROFILING_OFF);
+ bzero(buf, BUFSIZ);
+ ssiz = kfetch(N_SSIZ);
+ sbuf = kfetch(N_SBUF);
+ ssiz -= sizeof(struct phdr);
+ sbuf += sizeof(struct phdr);
+ klseek(kmem, (off_t)sbuf, 0);
+ for (i = ssiz; i > 0; i -= BUFSIZ)
+ if (write(kmem, buf, i < BUFSIZ ? i : BUFSIZ) < 0) {
+ perror("sbuf write");
+ exit(1);
+ }
+ s_textsize = kfetch(N_S_TEXTSIZE);
+ fromssize = s_textsize / HASHFRACTION;
+ kfroms = kfetch(N_FROMS);
+ klseek(kmem, kfroms, 0);
+ for (i = fromssize; i > 0; i -= BUFSIZ)
+ if (write(kmem, buf, i < BUFSIZ ? i : BUFSIZ) < 0) {
+ perror("kforms write");
+ exit(1);
+ }
+ tossize = (s_textsize * ARCDENSITY / 100) * sizeof(struct tostruct);
+ ktos = kfetch(N_TOS);
+ klseek(kmem, ktos, 0);
+ for (i = tossize; i > 0; i -= BUFSIZ)
+ if (write(kmem, buf, i < BUFSIZ ? i : BUFSIZ) < 0) {
+ perror("ktos write");
+ exit(1);
+ }