obpvec
switch (obpvec->pv_romvec_vers) {
obpvec->pv_halt(); /* What else? */
promops.po_revision = obpvec->pv_printrev;
promops.po_halt = obpvec->pv_halt;
promops.po_reboot = obpvec->pv_reboot;
promops.po_abort = obpvec->pv_abort;
promops.po_setcontext = obpvec->pv_setctxt;
promops.po_tickdata = obpvec->pv_ticks;
no = obpvec->pv_nodeops;
promops.po_stdin = *obpvec->pv_stdin;
promops.po_stdout = *obpvec->pv_stdout;
promops.po_bootcookie = *obpvec->pv_v0bootargs; /* deref 1 lvl */
promops.po_putchar = obpvec->pv_putchar;
promops.po_getchar = obpvec->pv_getchar;
promops.po_peekchar = obpvec->pv_nbgetchar;
promops.po_putstr = obpvec->pv_putstr;
promops.po_open = obpvec->pv_v0devops.v0_open;
promops.po_close = (void *)obpvec->pv_v0devops.v0_close;
promops.po_cpustart = obpvec->pv_v3cpustart;
promops.po_cpustop = obpvec->pv_v3cpustop;
promops.po_cpuidle = obpvec->pv_v3cpuidle;
promops.po_cpuresume = obpvec->pv_v3cpuresume;
promops.po_stdin = *obpvec->pv_v2bootargs.v2_fd0;
promops.po_stdout = *obpvec->pv_v2bootargs.v2_fd1;
promops.po_bootcookie = &obpvec->pv_v2bootargs;
promops.po_interpret = obpvec->pv_fortheval.v2_eval;
promops.po_open = obpvec->pv_v2devops.v2_open;
promops.po_close = (void *)obpvec->pv_v2devops.v2_close;
promops.po_read = obpvec->pv_v2devops.v2_read;
promops.po_write = obpvec->pv_v2devops.v2_write;
promops.po_instance_to_package = obpvec->pv_v2devops.v2_fd_phandle;
obpvec->pv_romvec_vers,
obpvec->pv_printrev >> 16, obpvec->pv_printrev & 0xffff,
obpvec->pv_plugin_vers);
} else if (obpvec->pv_magic == OBP_MAGIC) {
if (obpvec->pv_magic == OBP_MAGIC) {
if (obpvec->pv_romvec_vers < 2) {
(*obpvec->pv_putstr)(str, n);
int fd = *obpvec->pv_v2bootargs.v2_fd1;
(*obpvec->pv_v2devops.v2_write)(fd, str, n);
obpvec->pv_fortheval.v0_eval(strlen(s), s);
(*obpvec->pv_putstr)(buf, len);
(*obpvec->pv_v2devops.v2_seek)(handle, hi, lo);
*obpvec->pv_synchook = f;
switch (obpvec->pv_romvec_vers) {
obpvec->pv_halt(); /* What else? */
promops.po_revision = obpvec->pv_printrev;
promops.po_halt = obpvec->pv_halt;
promops.po_stdout = *obpvec->pv_stdout;
promops.po_putchar = obpvec->pv_putchar;
promops.po_open = obpvec->pv_v0devops.v0_open;
promops.po_close = (void *)obpvec->pv_v0devops.v0_close;
promops.po_bootcookie = *obpvec->pv_v0bootargs; /* deref 1 lvl */
promops.po_stdout = *obpvec->pv_v2bootargs.v2_fd1;
promops.po_open = obpvec->pv_v2devops.v2_open;
promops.po_close = (void *)obpvec->pv_v2devops.v2_close;
promops.po_read = obpvec->pv_v2devops.v2_read;
promops.po_write = obpvec->pv_v2devops.v2_write;
promops.po_bootcookie = &obpvec->pv_v2bootargs;
} else if (obpvec->pv_magic == OBP_MAGIC) {
(*obpvec->pv_v2devops.v2_seek)(handle, hi, lo);
(*obpvec->pv_v0devops.v0_rbdev)(fd, nblk, dblk, buf)
(*obpvec->pv_v0devops.v0_wbdev)(fd, nblk, dblk, buf)
return ((*obpvec->pv_v0devops.v0_wnet)(pd->fd, len, buf));
return ((*obpvec->pv_v0devops.v0_rnet)(pd->fd, len, buf));