CALLBACK
CALLBACK(getmem, &lowmem, &highmem);
CALLBACK(copyin, ep->ev_name, addr, strlen(ep->ev_name));
CALLBACK(copyin, "=", addr, 1);
CALLBACK(copyin, ep->ev_value, addr,
CALLBACK(copyin, "", addr, 1);
CALLBACK(copyin, "", addr, 1);
CALLBACK(getmem, &lowmem, &highmem);
CALLBACK(copyin, &bi, 0x2000, sizeof (bi));
CALLBACK(copyin, kernelname, 0x2000 + sizeof (bi),
CALLBACK(copyin, &x, a, sizeof (x)); \
CALLBACK(copyin, s, a, strlen(s) + 1); \
CALLBACK(copyin, &s, a, sizeof (s)); \
CALLBACK(copyin, mm->md_data, a, mm->md_size); \
CALLBACK(copyin, &x, a, sizeof (x)); \
CALLBACK(copyin, s, a, strlen(s) + 1); \
CALLBACK(copyin, &s, a, sizeof (s)); \
CALLBACK(copyin, mm->md_data, a, mm->md_size); \
CALLBACK(copyin, src, va, len);
CALLBACK(copyout, va, dst, len);
CALLBACK(copyin, buf, va, s);
CALLBACK(copyin, stack, GUEST_STACK, sizeof (stack));
CALLBACK(setreg, 4, (char *)sp - (char *)stack + GUEST_STACK);
CALLBACK(setgdt, GUEST_GDT, 8 * 4 - 1);
CALLBACK(exec, entry);
CALLBACK(copyin, stack, 0x1000, sizeof (stack));
CALLBACK(copyin, PT4, 0x2000, sizeof (PT4));
CALLBACK(copyin, PT3, 0x3000, sizeof (PT3));
CALLBACK(copyin, PT2, 0x4000, sizeof (PT2));
CALLBACK(setreg, 4, 0x1000);
CALLBACK(setmsr, MSR_EFER, EFER_LMA | EFER_LME);
CALLBACK(setcr, 4, CR4_PAE | CR4_VMXE);
CALLBACK(setcr, 3, 0x2000);
CALLBACK(setcr, 0, CR0_PG | CR0_PE | CR0_NE);
CALLBACK(copyin, gdtr, 0x5000, sizeof (gdtr));
CALLBACK(setgdt, 0x5000, sizeof (gdtr));
CALLBACK(exec, ehdr->e_entry);
rc = CALLBACK(readdir, f->f_fsdata, &fileno, &type, &namelen,
return (CALLBACK(open, upath, &f->f_fsdata));
CALLBACK(close, f->f_fsdata);
return (CALLBACK(read, f->f_fsdata, start, size, resid));
return (CALLBACK(seek, f->f_fsdata, offset, where));
CALLBACK(stat, f->f_fsdata, &mode, &uid, &gid, &size);
CALLBACK(swap_interpreter, guest_interp);
var = CALLBACK(getenv, i++);
CALLBACK(delay, usec);
CALLBACK(exit, v);
CALLBACK(putc, c);
return (CALLBACK(getc));
return (CALLBACK(poll));
rc = CALLBACK(diskread, dev->dd.d_unit, off, buf, size, &resid);
rc = CALLBACK(diskwrite, dev->dd.d_unit, off, buf, size,
return (CALLBACK(diskioctl, dev->dd.d_unit, cmd, data));
if (CALLBACK(diskioctl, i, DIOCGSECTORSIZE,
§orsize) != 0 || CALLBACK(diskioctl, i,
rv = CALLBACK(&pn, &en);
rv = CALLBACK(&pn, &en);
rv = CALLBACK(&pn, &en);
rv = CALLBACK(&pn, &en);
rv = CALLBACK(pnp, &en);
rv = CALLBACK(&pn, &en);
rv = CALLBACK(&pn, &en);
rv = CALLBACK(&pn, &en);
static int CALLBACK
#ifdef CALLBACK
#ifdef CALLBACK
#define prom_tree_access(CALLBACK, ARG, GENP) (CALLBACK)((ARG), 0)