本文整理汇总了C++中cmn_err函数的典型用法代码示例。如果您正苦于以下问题:C++ cmn_err函数的具体用法?C++ cmn_err怎么用?C++ cmn_err使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。
在下文中一共展示了cmn_err函数的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: _init
/* Loadable module configuration entry points */
int
_init(void)
{
cmn_err(CE_NOTE, "Inside _init");
return(mod_install(&ml));
}
示例2: t_kopen
//.........这里部分代码省略.........
* there is no fd pointing at it. However, since I could
* call closef if there is an error and closef requires
* the fp read locked, I will acquire the read lock here
* and make sure I release it before I leave this routine.
*/
fp->f_vnode = vp;
mutex_exit(&fp->f_tlock);
madefp = 1;
} else {
vp = fp->f_vnode;
}
if (vp->v_stream == NULL) {
if (madefp)
(void) closef(fp);
KTLILOG(1, "t_kopen: not a streams device\n", 0);
return (ENOSTR);
}
/*
* allocate a new transport structure
*/
ntiptr = kmem_alloc(TIUSERSZ, KM_SLEEP);
ntiptr->fp = fp;
ntiptr->flags = madefp ? MADE_FP : 0;
KTLILOG(2, "t_kopen: vp %x, ", vp);
KTLILOG(2, "stp %x\n", vp->v_stream);
/*
* see if TIMOD is already pushed
*/
error = strioctl(vp, I_FIND, (intptr_t)"timod", 0, K_TO_K, cr, &retval);
if (error) {
kmem_free(ntiptr, TIUSERSZ);
if (madefp)
(void) closef(fp);
KTLILOG(1, "t_kopen: strioctl(I_FIND, timod): %d\n", error);
return (error);
}
if (retval == 0) {
tryagain:
error = strioctl(vp, I_PUSH, (intptr_t)"timod", 0, K_TO_K, cr,
&retval);
if (error) {
switch (error) {
case ENOSPC:
case EAGAIN:
case ENOSR:
/*
* This probably means the master file
* should be tuned.
*/
cmn_err(CE_WARN,
"t_kopen: I_PUSH of timod failed, error %d\n",
error);
(void) delay(hz);
error = 0;
goto tryagain;
default:
kmem_free(ntiptr, TIUSERSZ);
if (madefp)
(void) closef(fp);
KTLILOG(1, "t_kopen: I_PUSH (timod): %d",
error);
return (error);
}
}
}
inforeq.PRIM_type = T_INFO_REQ;
strioc.ic_cmd = TI_GETINFO;
strioc.ic_timout = 0;
strioc.ic_dp = (char *)&inforeq;
strioc.ic_len = (int)sizeof (struct T_info_req);
error = strdoioctl(vp->v_stream, &strioc, FNATIVE, K_TO_K, cr, &retval);
if (error) {
kmem_free(ntiptr, TIUSERSZ);
if (madefp)
(void) closef(fp);
KTLILOG(1, "t_kopen: strdoioctl(T_INFO_REQ): %d\n", error);
return (error);
}
if (retval) {
if ((retval & 0xff) == TSYSERR)
error = (retval >> 8) & 0xff;
else
error = t_tlitosyserr(retval & 0xff);
kmem_free(ntiptr, TIUSERSZ);
if (madefp)
(void) closef(fp);
KTLILOG(1, "t_kopen: strdoioctl(T_INFO_REQ): retval: 0x%x\n",
retval);
return (error);
}
示例3: dm2s_mbox_init
/*
* dm2s_mbox_init - Mailbox specific initialization.
*/
static int
dm2s_mbox_init(dm2s_t *dm2sp)
{
int ret;
clock_t tout;
ASSERT(MUTEX_HELD(&dm2sp->ms_lock));
dm2sp->ms_target = DM2S_TARGET_ID;
dm2sp->ms_key = DSCP_KEY;
dm2sp->ms_state &= ~DM2S_MB_INITED;
/* Iterate until mailbox gets connected */
while (!(dm2sp->ms_state & DM2S_MB_CONN)) {
DPRINTF(DBG_MBOX, ("dm2s_mbox_init: calling mb_init\n"));
ret = scf_mb_init(dm2sp->ms_target, dm2sp->ms_key,
dm2s_event_handler, (void *)dm2sp);
DPRINTF(DBG_MBOX, ("dm2s_mbox_init: mb_init ret=%d\n", ret));
if (ret != 0) {
DPRINTF(DBG_MBOX,
("dm2s_mbox_init: failed ret =%d\n", ret));
DTRACE_PROBE1(dm2s_mbox_fail, int, ret);
} else {
dm2sp->ms_state |= DM2S_MB_INITED;
/* Block until the mailbox is ready to communicate. */
while (!(dm2sp->ms_state &
(DM2S_MB_CONN | DM2S_MB_DISC))) {
if (cv_wait_sig(&dm2sp->ms_wait,
&dm2sp->ms_lock) <= 0) {
/* interrupted */
ret = EINTR;
break;
}
}
}
if ((ret != 0) || (dm2sp->ms_state & DM2S_MB_DISC)) {
if (dm2sp->ms_state & DM2S_MB_INITED) {
(void) scf_mb_fini(dm2sp->ms_target,
dm2sp->ms_key);
}
if (dm2sp->ms_state & DM2S_MB_DISC) {
DPRINTF(DBG_WARN,
("dm2s_mbox_init: mbox DISC_ERROR\n"));
DTRACE_PROBE1(dm2s_mbox_fail,
int, DM2S_MB_DISC);
}
dm2sp->ms_state &= ~(DM2S_MB_INITED | DM2S_MB_DISC |
DM2S_MB_CONN);
if (ret == EINTR) {
return (ret);
}
/*
* If there was failure, then wait for
* DM2S_MB_TOUT secs and retry again.
*/
DPRINTF(DBG_MBOX, ("dm2s_mbox_init: waiting...\n"));
tout = ddi_get_lbolt() + drv_usectohz(DM2S_MB_TOUT);
ret = cv_timedwait_sig(&dm2sp->ms_wait,
&dm2sp->ms_lock, tout);
if (ret == 0) {
/* if interrupted, return immediately. */
DPRINTF(DBG_MBOX,
("dm2s_mbox_init: interrupted\n"));
return (EINTR);
}
}
}
/*
* Obtain the max size of a single message.
* NOTE: There is no mechanism to update the
* upperlayers dynamically, so we expect this
* size to be atleast the default MTU size.
*/
ret = scf_mb_ctrl(dm2sp->ms_target, dm2sp->ms_key,
SCF_MBOP_MAXMSGSIZE, &dm2sp->ms_mtu);
if ((ret == 0) && (dm2sp->ms_mtu < DM2S_DEF_MTU)) {
cmn_err(CE_WARN, "Max message size expected >= %d "
"but found %d\n", DM2S_DEF_MTU, dm2sp->ms_mtu);
ret = EIO;
}
if (ret != 0) {
dm2sp->ms_state &= ~DM2S_MB_INITED;
(void) scf_mb_fini(dm2sp->ms_target, dm2sp->ms_key);
}
DPRINTF(DBG_MBOX, ("dm2s_mbox_init: mb_init ret=%d\n", ret));
return (ret);
//.........这里部分代码省略.........
示例4: VirtioNetISR
/**
* Interrupt Service Routine for Virtio Net.
*
* @param Arg Private data (unused, will be NULL).
* @returns DDI_INTR_CLAIMED if it's our interrupt, DDI_INTR_UNCLAIMED if it isn't.
*/
static uint_t VirtioNetISR(caddr_t Arg)
{
cmn_err(CE_NOTE, "VirtioNetISR Arg=%p\n", Arg);
NOREF(Arg);
return DDI_INTR_UNCLAIMED;
}
示例5: dr_stop_user_threads
//.........这里部分代码省略.........
mutex_enter(&p->p_lock);
thread_lock(tp);
if (tp->t_state == TS_STOPPED) {
/* add another reason to stop this thread */
tp->t_schedflag &= ~TS_RESUME;
} else {
tp->t_proc_flag |= TP_CHKPT;
thread_unlock(tp);
mutex_exit(&p->p_lock);
add_one_utstop();
mutex_enter(&p->p_lock);
thread_lock(tp);
aston(tp);
if (tp->t_state == TS_SLEEP &&
(tp->t_flag & T_WAKEABLE)) {
setrun_locked(tp);
}
}
/* grab thread if needed */
if (tp->t_state == TS_ONPROC && tp->t_cpu != CPU)
poke_cpu(tp->t_cpu->cpu_id);
thread_unlock(tp);
mutex_exit(&p->p_lock);
}
mutex_exit(&pidlock);
/* let everything catch up */
utstop_timedwait(count * count * DR_UTSTOP_WAIT);
/* now, walk the threadlist again to see if we are done */
mutex_enter(&pidlock);
for (tp = curthread->t_next, bailout = 0;
tp != curthread; tp = tp->t_next) {
proc_t *p = ttoproc(tp);
/* handle kernel threads separately */
if (p->p_as == &kas || p->p_stat == SZOMB)
continue;
/*
* If this thread didn't stop, and we don't allow
* unstopped blocked threads, bail.
*/
thread_lock(tp);
if (!CPR_ISTOPPED(tp) &&
!(dr_allow_blocked_threads &&
DR_VSTOPPED(tp))) {
bailout = 1;
if (count == DR_UTSTOP_RETRY - 1) {
/*
* save the pid for later reporting
*/
srh->sr_err_idx =
dr_add_int(srh->sr_err_ints,
srh->sr_err_idx, DR_MAX_ERR_INT,
(uint64_t)p->p_pid);
cmn_err(CE_WARN, "%s: "
"failed to stop thread: "
"process=%s, pid=%d",
f, p->p_user.u_psargs, p->p_pid);
PR_QR("%s: failed to stop thread: "
"process=%s, pid=%d, t_id=0x%p, "
"t_state=0x%x, t_proc_flag=0x%x, "
"t_schedflag=0x%x\n",
f, p->p_user.u_psargs, p->p_pid,
tp, tp->t_state, tp->t_proc_flag,
tp->t_schedflag);
}
}
thread_unlock(tp);
}
mutex_exit(&pidlock);
/* were all the threads stopped? */
if (!bailout)
break;
}
/* were we unable to stop all threads after a few tries? */
if (bailout) {
handle->h_err = drerr_int(ESBD_UTHREAD, srh->sr_err_ints,
srh->sr_err_idx, 0);
return (ESRCH);
}
return (DDI_SUCCESS);
}
示例6: load_platform_drivers
void
load_platform_drivers(void)
{
extern int watchdog_available;
extern int watchdog_enable;
dev_info_t *dip; /* dip of the isa driver */
int simba_present = 0;
dev_info_t *root_child_node;
major_t major;
if (ddi_install_driver("power") != DDI_SUCCESS)
cmn_err(CE_WARN, "Failed to install \"power\" driver.");
/*
* Install Isa driver. This is required for the southbridge IDE
* workaround - to reset the IDE channel during IDE bus reset.
* Panic the system in case ISA driver could not be loaded or
* any problem in accessing its pci config space. Since the register
* to reset the channel for IDE is in ISA config space!.
*/
root_child_node = ddi_get_child(ddi_root_node());
while (root_child_node != NULL) {
if (strcmp(ddi_node_name(root_child_node), "pci") == 0) {
root_child_node = ddi_get_child(root_child_node);
if (strcmp(ddi_node_name(root_child_node), "pci") == 0)
simba_present = 1;
break;
}
root_child_node = ddi_get_next_sibling(root_child_node);
}
if (simba_present)
dip = e_ddi_hold_devi_by_path(PLATFORM_ISA_PATHNAME_WITH_SIMBA,
0);
else
dip = e_ddi_hold_devi_by_path(PLATFORM_ISA_PATHNAME, 0);
if (dip == NULL) {
cmn_err(CE_PANIC, "Could not install the isa driver\n");
return;
}
if (pci_config_setup(dip, &platform_isa_handle) != DDI_SUCCESS) {
cmn_err(CE_PANIC, "Could not get the config space of isa\n");
return;
}
/*
* Load the blade support chip driver.
*
*/
if (((major = ddi_name_to_major(BSC_DRV)) == -1) ||
(ddi_hold_installed_driver(major) == NULL)) {
cmn_err(CE_WARN, "%s: failed to load", BSC_DRV);
} else {
bsc_drv_func_ptr = (void (*)(struct bscv_idi_info *))
modgetsymvalue(BSC_DRV_FUNC, 0);
if (bsc_drv_func_ptr == NULL) {
cmn_err(CE_WARN, "load_platform_defaults: %s()"
" not found; signatures will not be updated\n",
BSC_DRV_FUNC);
watchdog_available = 0;
if (watchdog_enable) {
cmn_err(CE_WARN, "load_platform_defaults: %s()"
" not found; BSC OS watchdog service not available\n",
BSC_DRV_FUNC);
}
}
}
}
示例7: dummy_close
static int
dummy_close(dev_t dev, int flag, int otyp, cred_t *cred)
{
cmn_err(CE_NOTE, "Inside dummy_close");
return DDI_SUCCESS;
}
示例8: dummy_write
static int
dummy_write(dev_t dev, struct uio *uiop, cred_t *credp)
{
cmn_err(CE_NOTE, "Inside dummy_write");
return DDI_SUCCESS;
}
示例9: dummy_open
static int
dummy_open(dev_t *devp, int flag, int otyp, cred_t *cred)
{
cmn_err(CE_NOTE, "Inside dummy_open");
return DDI_SUCCESS;
}
示例10: _fini
int
_fini(void)
{
cmn_err(CE_NOTE, "Inside _fini");
return(mod_remove(&ml));
}
示例11: _info
int
_info(struct modinfo *modinfop)
{
cmn_err(CE_NOTE, "Inside _info");
return(mod_info(&ml, modinfop));
}
示例12: fcoet_do_flogi
/* ARGSUSED */
fct_status_t
fcoet_do_flogi(fct_local_port_t *port, fct_flogi_xchg_t *fx)
{
cmn_err(CE_WARN, "FLOGI requested (not supported)");
return (FCT_FAILURE);
}
示例13: fcoet_ctl
void
fcoet_ctl(struct fct_local_port *port, int cmd, void *arg)
{
stmf_change_status_t st;
stmf_state_change_info_t *ssci = (stmf_state_change_info_t *)arg;
fcoet_soft_state_t *this_ss = PORT2SS(port);
st.st_completion_status = FCT_SUCCESS;
st.st_additional_info = NULL;
switch (cmd) {
case FCT_CMD_PORT_ONLINE:
if (this_ss->ss_state == FCT_STATE_ONLINE)
st.st_completion_status = STMF_ALREADY;
else if (this_ss->ss_state != FCT_STATE_OFFLINE)
st.st_completion_status = FCT_FAILURE;
if (st.st_completion_status == FCT_SUCCESS) {
this_ss->ss_state = FCT_STATE_ONLINING;
this_ss->ss_state_not_acked = 1;
st.st_completion_status = fcoet_enable_port(this_ss);
if (st.st_completion_status != STMF_SUCCESS) {
this_ss->ss_state = FCT_STATE_OFFLINE;
this_ss->ss_state_not_acked = 0;
} else {
this_ss->ss_state = FCT_STATE_ONLINE;
}
}
fct_ctl(port->port_lport, FCT_CMD_PORT_ONLINE_COMPLETE, &st);
this_ss->ss_change_state_flags = 0;
break;
case FCT_CMD_PORT_OFFLINE:
if (this_ss->ss_state == FCT_STATE_OFFLINE) {
st.st_completion_status = STMF_ALREADY;
} else if (this_ss->ss_state != FCT_STATE_ONLINE) {
st.st_completion_status = FCT_FAILURE;
}
if (st.st_completion_status == FCT_SUCCESS) {
this_ss->ss_state = FCT_STATE_OFFLINING;
this_ss->ss_state_not_acked = 1;
this_ss->ss_change_state_flags = ssci->st_rflags;
st.st_completion_status = fcoet_disable_port(this_ss);
if (st.st_completion_status != STMF_SUCCESS) {
this_ss->ss_state = FCT_STATE_ONLINE;
this_ss->ss_state_not_acked = 0;
} else {
this_ss->ss_state = FCT_STATE_OFFLINE;
}
}
/*
* Notify the watchdog to do clear work
*/
mutex_enter(&this_ss->ss_watch_mutex);
cv_signal(&this_ss->ss_watch_cv);
mutex_exit(&this_ss->ss_watch_mutex);
fct_ctl(port->port_lport, FCT_CMD_PORT_OFFLINE_COMPLETE, &st);
break;
case FCT_ACK_PORT_ONLINE_COMPLETE:
this_ss->ss_state_not_acked = 0;
break;
case FCT_ACK_PORT_OFFLINE_COMPLETE:
this_ss->ss_state_not_acked = 0;
if (this_ss->ss_change_state_flags & STMF_RFLAG_RESET) {
if (fct_port_initialize(port,
this_ss->ss_change_state_flags,
"fcoet_ctl FCT_ACK_PORT_OFFLINE_COMPLETE "
"with RLFLAG_RESET") != FCT_SUCCESS) {
cmn_err(CE_WARN, "fcoet_ctl: "
"fct_port_initialize %s failed",
this_ss->ss_alias);
FCOET_LOG("fcoet_ctl: fct_port_initialize "
"%s failed", this_ss->ss_alias);
}
}
break;
default:
FCOET_LOG("fcoet_ctl", "Unsupported cmd %x", cmd);
break;
}
}
示例14: getblk_common
/*
* Assign a buffer for the given block. If the appropriate
* block is already associated, return it; otherwise search
* for the oldest non-busy buffer and reassign it.
*/
struct buf *
getblk_common(void * arg, dev_t dev, daddr_t blkno, long bsize, int errflg)
{
ufsvfs_t *ufsvfsp = (struct ufsvfs *)arg;
struct buf *bp;
struct buf *dp;
struct buf *nbp = NULL;
struct buf *errbp;
uint_t index;
kmutex_t *hmp;
struct hbuf *hp;
if (getmajor(dev) >= devcnt)
cmn_err(CE_PANIC, "blkdev");
biostats.bio_lookup.value.ui32++;
index = bio_bhash(dev, blkno);
hp = &hbuf[index];
dp = (struct buf *)hp;
hmp = &hp->b_lock;
mutex_enter(hmp);
loop:
for (bp = dp->b_forw; bp != dp; bp = bp->b_forw) {
if (bp->b_blkno != blkno || bp->b_edev != dev ||
(bp->b_flags & B_STALE))
continue;
/*
* Avoid holding the hash lock in the event that
* the buffer is locked by someone. Since the hash chain
* may change when we drop the hash lock
* we have to start at the beginning of the chain if the
* buffer identity/contents aren't valid.
*/
if (!sema_tryp(&bp->b_sem)) {
biostats.bio_bufbusy.value.ui32++;
mutex_exit(hmp);
/*
* OK, we are dealing with a busy buffer.
* In the case that we are panicking and we
* got called from bread(), we have some chance
* for error recovery. So better bail out from
* here since sema_p() won't block. If we got
* called directly from ufs routines, there is
* no way to report an error yet.
*/
if (panicstr && errflg)
goto errout;
/*
* For the following line of code to work
* correctly never kmem_free the buffer "header".
*/
sema_p(&bp->b_sem);
if (bp->b_blkno != blkno || bp->b_edev != dev ||
(bp->b_flags & B_STALE)) {
sema_v(&bp->b_sem);
mutex_enter(hmp);
goto loop; /* start over */
}
mutex_enter(hmp);
}
/* Found */
biostats.bio_hit.value.ui32++;
bp->b_flags &= ~B_AGE;
/*
* Yank it off the free/delayed write lists
*/
hp->b_length--;
notavail(bp);
mutex_exit(hmp);
ASSERT((bp->b_flags & B_NOCACHE) == NULL);
if (nbp == NULL) {
/*
* Make the common path short.
*/
ASSERT(SEMA_HELD(&bp->b_sem));
return (bp);
}
biostats.bio_bufdup.value.ui32++;
/*
* The buffer must have entered during the lock upgrade
* so free the new buffer we allocated and return the
* found buffer.
*/
kmem_free(nbp->b_un.b_addr, nbp->b_bufsize);
nbp->b_un.b_addr = NULL;
/*
* Account for the memory
//.........这里部分代码省略.........
示例15: sdt_provide_module
/*ARGSUSED*/
static void
sdt_provide_module(void *arg, struct modctl *ctl)
{
struct module *mp = ctl->mod_mp;
char *modname = ctl->mod_modname;
int primary, nprobes = 0;
sdt_probedesc_t *sdpd;
sdt_probe_t *sdp, *old;
uint32_t *tab;
sdt_provider_t *prov;
int len;
/*
* One for all, and all for one: if we haven't yet registered all of
* our providers, we'll refuse to provide anything.
*/
for (prov = sdt_providers; prov->sdtp_name != NULL; prov++) {
if (prov->sdtp_id == DTRACE_PROVNONE)
return;
}
if (mp->sdt_nprobes != 0 || (sdpd = mp->sdt_probes) == NULL)
return;
kobj_textwin_alloc(mp);
/*
* Hack to identify unix/genunix/krtld.
*/
primary = vmem_contains(heap_arena, (void *)ctl,
sizeof (struct modctl)) == 0;
/*
* If there hasn't been an sdt table allocated, we'll do so now.
*/
if (mp->sdt_tab == NULL) {
for (; sdpd != NULL; sdpd = sdpd->sdpd_next) {
nprobes++;
}
/*
* We could (should?) determine precisely the size of the
* table -- but a reasonable maximum will suffice.
*/
mp->sdt_size = nprobes * SDT_ENTRY_SIZE;
mp->sdt_tab = kobj_texthole_alloc(mp->text, mp->sdt_size);
if (mp->sdt_tab == NULL) {
cmn_err(CE_WARN, "couldn't allocate SDT table "
"for module %s", modname);
return;
}
}
tab = (uint32_t *)mp->sdt_tab;
for (sdpd = mp->sdt_probes; sdpd != NULL; sdpd = sdpd->sdpd_next) {
char *name = sdpd->sdpd_name, *func, *nname;
int i, j;
sdt_provider_t *prov;
ulong_t offs;
dtrace_id_t id;
for (prov = sdt_providers; prov->sdtp_prefix != NULL; prov++) {
char *prefix = prov->sdtp_prefix;
if (strncmp(name, prefix, strlen(prefix)) == 0) {
name += strlen(prefix);
break;
}
}
nname = kmem_alloc(len = strlen(name) + 1, KM_SLEEP);
for (i = 0, j = 0; name[j] != '\0'; i++) {
if (name[j] == '_' && name[j + 1] == '_') {
nname[i] = '-';
j += 2;
} else {
nname[i] = name[j++];
}
}
nname[i] = '\0';
sdp = kmem_zalloc(sizeof (sdt_probe_t), KM_SLEEP);
sdp->sdp_loadcnt = ctl->mod_loadcnt;
sdp->sdp_primary = primary;
sdp->sdp_ctl = ctl;
sdp->sdp_name = nname;
sdp->sdp_namelen = len;
sdp->sdp_provider = prov;
func = kobj_searchsym(mp, sdpd->sdpd_offset +
(uintptr_t)mp->text, &offs);
if (func == NULL)
func = "<unknown>";
//.........这里部分代码省略.........