Lines Matching refs:cp

164 fc_ops(dev_info_t *ap, fco_handle_t handle, fc_ci_t *cp)
167 char *name = fc_cell2ptr(cp->svc_name);
171 return (pv->f(ap, handle, cp));
200 fco_getproplen(dev_info_t *ap, fco_handle_t rp, fc_ci_t *cp)
209 if (strstr(fc_cell2ptr(cp->svc_name), "inherited") == NULL)
212 if (fc_cell2int(cp->nargs) != 2)
213 return (fc_syntax_error(cp, "nargs must be 2"));
215 if (fc_cell2int(cp->nresults) < 1)
216 return (fc_syntax_error(cp, "nresults must be > 0"));
221 h = fc_cell2phandle(fc_arg(cp, 0));
223 return (fc_priv_error(cp, "unknown handle"));
228 pnp = fc_cell2ptr(fc_arg(cp, 1));
231 return (fc_priv_error(cp, "EFAULT copying in propname"));
236 fc_result(cp, 0) = fc_int2cell(proplen);
237 cp->nresults = fc_int2cell(1);
238 return (fc_success_op(ap, rp, cp));
247 fco_getprop(dev_info_t *ap, fco_handle_t rp, fc_ci_t *cp)
256 if (strstr(fc_cell2ptr(cp->svc_name), "inherited") == NULL)
259 if (fc_cell2int(cp->nargs) != 3)
260 return (fc_syntax_error(cp, "nargs must be 3"));
262 if (fc_cell2int(cp->nresults) < 1)
263 return (fc_syntax_error(cp, "nresults must be > 0"));
268 h = fc_cell2phandle(fc_arg(cp, 0));
270 return (fc_priv_error(cp, "unknown handle"));
275 pnp = fc_cell2ptr(fc_arg(cp, 2));
278 return (fc_priv_error(cp, "EFAULT copying in propname"));
285 char *up = fc_cell2ptr(fc_arg(cp, 1));
291 return (fc_priv_error(cp, "EFAULT copying data out"));
294 cp->nresults = fc_int2cell(1);
295 fc_result(cp, 0) = fc_int2cell(proplen);
296 return (fc_success_op(ap, rp, cp));
300 fco_ap_phandle(dev_info_t *ap, fco_handle_t rp, fc_ci_t *cp)
304 if (fc_cell2int(cp->nargs) != 0)
305 return (fc_syntax_error(cp, "nargs must be 0"));
307 if (fc_cell2int(cp->nresults) < 1)
308 return (fc_syntax_error(cp, "nresults must be > 0"));
313 cp->nresults = fc_int2cell(1);
314 fc_result(cp, 0) = fc_phandle2cell(h);
315 return (fc_success_op(ap, rp, cp));
319 fco_child(dev_info_t *ap, fco_handle_t rp, fc_ci_t *cp)
324 if (fc_cell2int(cp->nargs) != 1)
325 return (fc_syntax_error(cp, "nargs must be 1"));
327 if (fc_cell2int(cp->nresults) < 1)
328 return (fc_syntax_error(cp, "nresults must be > 0"));
333 h = fc_cell2phandle(fc_arg(cp, 0));
335 return (fc_priv_error(cp, "unknown handle"));
345 cp->nresults = fc_int2cell(1);
346 fc_result(cp, 0) = fc_phandle2cell(h);
347 return (fc_success_op(ap, rp, cp));
351 fco_peer(dev_info_t *ap, fco_handle_t rp, fc_ci_t *cp)
356 if (fc_cell2int(cp->nargs) != 1)
357 return (fc_syntax_error(cp, "nargs must be 1"));
359 if (fc_cell2int(cp->nresults) < 1)
360 return (fc_syntax_error(cp, "nresults must be > 0"));
365 h = fc_cell2phandle(fc_arg(cp, 0));
367 return (fc_priv_error(cp, "unknown handle"));
377 cp->nresults = fc_int2cell(1);
378 fc_result(cp, 0) = fc_phandle2cell(h);
379 return (fc_success_op(ap, rp, cp));
383 fco_parent(dev_info_t *ap, fco_handle_t rp, fc_ci_t *cp)
388 if (fc_cell2int(cp->nargs) != 1)
389 return (fc_syntax_error(cp, "nargs must be 1"));
391 if (fc_cell2int(cp->nresults) < 1)
392 return (fc_syntax_error(cp, "nresults must be > 0"));
397 h = fc_cell2phandle(fc_arg(cp, 0));
399 return (fc_priv_error(cp, "unknown handle"));
409 cp->nresults = fc_int2cell(1);
410 fc_result(cp, 0) = fc_phandle2cell(h);
411 return (fc_success_op(ap, rp, cp));
418 fco_alloc_phandle(dev_info_t *ap, fco_handle_t rp, fc_ci_t *cp)
424 if (fc_cell2int(cp->nargs) != 0)
425 return (fc_syntax_error(cp, "nargs must be 0"));
427 if (fc_cell2int(cp->nresults) < 1)
428 return (fc_syntax_error(cp, "nresults must be > 0"));
431 return (fc_priv_error(cp, "Can't allocate a nodeid"));
443 cp->nresults = fc_int2cell(1);
444 fc_result(cp, 0) = fc_phandle2cell(h);
445 return (fc_success_op(ap, rp, cp));
469 fco_new_device(dev_info_t *ap, fco_handle_t rp, fc_ci_t *cp)
478 if (fc_cell2int(cp->nargs) != 4)
479 return (fc_syntax_error(cp, "nargs must be 4"));
485 ph = fc_cell2phandle(fc_arg(cp, 1));
488 return (fc_priv_error(cp, "unknown parent phandle"));
490 ch = fc_cell2phandle(fc_arg(cp, 0));
500 return (fc_priv_error(cp, "first child must be a "
511 return (fc_priv_error(cp, "first "
515 return (fc_priv_error(cp, "known child -- "
528 return (fc_priv_error(cp, "known child -- "
531 return (fc_priv_error(cp, "parent is an unknown "
539 return (fc_priv_error(cp, "bad node-creation state"));
546 s = fc_cell2ptr(fc_arg(cp, 3));
549 return (fc_priv_error(cp, "EFAULT copying in nodename"));
551 s = fc_cell2ptr(fc_arg(cp, 2));
555 return (fc_priv_error(cp, "EFAULT copying in unit address"));
576 return (fc_priv_error(cp, "Unknown phandle"));
585 return (fc_priv_error(cp, "Can't create node"));
609 return (fc_priv_error(cp, "Can't set ndi nodename"));
618 return (fc_priv_error(cp, "Can't create name property"));
635 cp->nresults = fc_int2cell(0);
636 return (fc_success_op(ap, rp, cp));
643 fco_finish_device(dev_info_t *ap, fco_handle_t rp, fc_ci_t *cp)
648 if (fc_cell2int(cp->nargs) != 1)
649 return (fc_syntax_error(cp, "nargs must be 1"));
652 return (fc_priv_error(cp, "bad node-creation state"));
654 h = fc_cell2phandle(fc_arg(cp, 0));
657 return (fc_priv_error(cp, "bad phandle"));
679 cp->nresults = fc_int2cell(0);
680 return (fc_success_op(ap, rp, cp));
687 fco_create_property(dev_info_t *ap, fco_handle_t rp, fc_ci_t *cp)
696 if (fc_cell2int(cp->nargs) != 4)
697 return (fc_syntax_error(cp, "nargs must be 4"));
699 h = fc_cell2phandle(fc_arg(cp, 0));
700 len = fc_cell2size(fc_arg(cp, 1));
701 bp = fc_cell2ptr(fc_arg(cp, 2));
702 pnp = fc_cell2ptr(fc_arg(cp, 3));
706 return (fc_priv_error(cp, "bad phandle"));
710 return (fc_priv_error(cp, "EFAULT copying in propname"));
717 return (fc_priv_error(cp, "EFAULT copying in propval"));
730 return (fc_priv_error(cp, "setting <name> to NULL"));
733 return (fc_priv_error(cp, "changing <name> property"));
740 cp->nresults = fc_int2cell(0);
741 return (fc_success_op(ap, rp, cp));
751 return (fc_priv_error(cp, "Can't create property"));
753 cp->nresults = fc_int2cell(0);
754 return (fc_success_op(ap, rp, cp));
768 fco_validate(dev_info_t *ap, fco_handle_t rp, fc_ci_t *cp)
772 cp->nresults = fc_int2cell(0);
773 return (fc_success_op(ap, rp, cp));
798 fco_invalidate(dev_info_t *ap, fco_handle_t rp, fc_ci_t *cp)
828 cp->nresults = fc_int2cell(0);
829 return (fc_success_op(ap, rp, cp));
833 fco_exit(dev_info_t *ap, fco_handle_t rp, fc_ci_t *cp)
836 cp->nresults = fc_int2cell(0);
837 return (fc_success_op(ap, rp, cp));
845 fco_local_ether_addr(dev_info_t *ap, fco_handle_t rp, fc_ci_t *cp)
847 if (fc_cell2int(cp->nargs) != 0)
848 return (fc_syntax_error(cp, "nargs must be 0"));
850 if (fc_cell2int(cp->nresults) != 2)
851 return (fc_syntax_error(cp, "nresults must be 2"));
853 cp->nresults = fc_int2cell(2);
855 (void) localetheraddr(NULL, (struct ether_addr *)(&fc_result(cp, 0)));
857 return (fc_success_op(ap, rp, cp));