本文整理汇总了C++中LBUG函数的典型用法代码示例。如果您正苦于以下问题:C++ LBUG函数的具体用法?C++ LBUG怎么用?C++ LBUG使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。
在下文中一共展示了LBUG函数的20个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的C++代码示例。
示例1: pluralize
string pluralize(string str)
{
switch (str)
{
case "were": return "was";
case "don't": return "doesn't";
case "aren't": return "isn't";
case "possum": return "possums";
case "staff": return "staves";
case "die": return "dies";
case "laf": return "lafs";
case "barf": return "barfs";
case "snarf": return "snarfs";
case "hum": return "hums";
}
if ( str[<2..<1] == "ff" ) /* e.g. "bluff" */
return str + "s";
// Temporary fix for MudOS v22.2b13 pluralizing elf as eves
if ( str[<1..<1] == "f" )
{
LBUG(str);
return str[0..<2] + "ves";
}
if ( str[<5..<1] == "penis" )
return str + "es";
return efun::pluralize(str);
}
开发者ID:Lundex,项目名称:lima,代码行数:29,代码来源:m_grammar.c
示例2: osc_lock_unuse
static int osc_lock_unuse(const struct lu_env *env,
const struct cl_lock_slice *slice)
{
struct osc_lock *ols = cl2osc_lock(slice);
LINVRNT(osc_lock_invariant(ols));
switch (ols->ols_state) {
case OLS_NEW:
LASSERT(!ols->ols_hold);
LASSERT(ols->ols_agl);
return 0;
case OLS_UPCALL_RECEIVED:
osc_lock_unhold(ols);
case OLS_ENQUEUED:
LASSERT(!ols->ols_hold);
osc_lock_detach(env, ols);
ols->ols_state = OLS_NEW;
return 0;
case OLS_GRANTED:
LASSERT(!ols->ols_glimpse);
LASSERT(ols->ols_hold);
/*
* Move lock into OLS_RELEASED state before calling
* osc_cancel_base() so that possible synchronous cancellation
* (that always happens e.g., for liblustre) sees that lock is
* released.
*/
ols->ols_state = OLS_RELEASED;
return osc_lock_unhold(ols);
default:
CERROR("Impossible state: %d\n", ols->ols_state);
LBUG();
}
}
开发者ID:Cool-Joe,项目名称:imx23-audio,代码行数:35,代码来源:osc_lock.c
示例3: lmv_intent_lock
int lmv_intent_lock(struct obd_export *exp, struct md_op_data *op_data,
void *lmm, int lmmsize, struct lookup_intent *it,
int flags, struct ptlrpc_request **reqp,
ldlm_blocking_callback cb_blocking,
__u64 extra_lock_flags)
{
struct obd_device *obd = exp->exp_obd;
int rc;
LASSERT(it != NULL);
LASSERT(fid_is_sane(&op_data->op_fid1));
CDEBUG(D_INODE, "INTENT LOCK '%s' for '%*s' on "DFID"\n",
LL_IT2STR(it), op_data->op_namelen, op_data->op_name,
PFID(&op_data->op_fid1));
rc = lmv_check_connect(obd);
if (rc)
return rc;
if (it->it_op & (IT_LOOKUP | IT_GETATTR | IT_LAYOUT))
rc = lmv_intent_lookup(exp, op_data, lmm, lmmsize, it,
flags, reqp, cb_blocking,
extra_lock_flags);
else if (it->it_op & IT_OPEN)
rc = lmv_intent_open(exp, op_data, lmm, lmmsize, it,
flags, reqp, cb_blocking,
extra_lock_flags);
else
LBUG();
return rc;
}
开发者ID:AkyZero,项目名称:wrapfs-latest,代码行数:32,代码来源:lmv_intent.c
示例4: lnet_selftest_exit
static void
lnet_selftest_exit(void)
{
int i;
switch (lst_init_step) {
case LST_INIT_CONSOLE:
lstcon_console_fini();
case LST_INIT_FW:
sfw_shutdown();
case LST_INIT_RPC:
srpc_shutdown();
case LST_INIT_WI_TEST:
for (i = 0;
i < cfs_cpt_number(lnet_cpt_table()); i++) {
if (!lst_sched_test[i])
continue;
cfs_wi_sched_destroy(lst_sched_test[i]);
}
LIBCFS_FREE(lst_sched_test,
sizeof(lst_sched_test[0]) *
cfs_cpt_number(lnet_cpt_table()));
lst_sched_test = NULL;
case LST_INIT_WI_SERIAL:
cfs_wi_sched_destroy(lst_sched_serial);
lst_sched_serial = NULL;
case LST_INIT_NONE:
break;
default:
LBUG();
}
}
开发者ID:020gzh,项目名称:linux,代码行数:33,代码来源:module.c
示例5: llog_lvfs_next_block
static int llog_lvfs_next_block(struct llog_handle *loghandle, int *cur_idx,
int next_idx, __u64 *cur_offset, void *buf,
int len)
{
LBUG();
return 0;
}
开发者ID:DCteam,项目名称:lustre,代码行数:7,代码来源:llog_lvfs.c
示例6: osd_dir_it_key_size
static int osd_dir_it_key_size(const struct lu_env *env, const struct dt_it *di)
{
struct osd_zap_it *it = (struct osd_zap_it *)di;
zap_attribute_t *za = &osd_oti_get(env)->oti_za;
int rc;
ENTRY;
if (it->ozi_pos <= 1) {
it->ozi_pos = 1;
RETURN(2);
} else if (it->ozi_pos == 2) {
RETURN(3);
}
if ((rc = -zap_cursor_retrieve(it->ozi_zc, za)) == 0)
rc = strlen(za->za_name);
#if LUSTRE_VERSION_CODE < OBD_OCD_VERSION(2, 3, 90, 0)
if (rc == 0 && za->za_name[0] == '.') {
if (za->za_name[1] == 0 || (za->za_name[1] == '.' &&
za->za_name[2] == 0)) {
/* we should not get onto . and ..
* stored in the directory. ->next() and
* other methods should prevent this
*/
LBUG();
}
}
#endif
RETURN(rc);
}
开发者ID:hejin,项目名称:lustre-stable,代码行数:31,代码来源:osd_index.c
示例7: lov_read_and_clear_async_rc
int lov_read_and_clear_async_rc(struct cl_object *clob)
{
struct lu_object *luobj;
int rc = 0;
luobj = lu_object_locate(&cl_object_header(clob)->coh_lu,
&lov_device_type);
if (luobj != NULL) {
struct lov_object *lov = lu2lov(luobj);
lov_conf_freeze(lov);
switch (lov->lo_type) {
case LLT_RAID0: {
struct lov_stripe_md *lsm;
int i;
lsm = lov->lo_lsm;
LASSERT(lsm != NULL);
for (i = 0; i < lsm->lsm_stripe_count; i++) {
struct lov_oinfo *loi = lsm->lsm_oinfo[i];
if (loi->loi_ar.ar_rc && !rc)
rc = loi->loi_ar.ar_rc;
loi->loi_ar.ar_rc = 0;
}
}
case LLT_RELEASED:
case LLT_EMPTY:
break;
default:
LBUG();
}
lov_conf_thaw(lov);
}
return rc;
}
开发者ID:383530895,项目名称:linux,代码行数:35,代码来源:lov_object.c
示例8: ptlrpc_ni_fini
void ptlrpc_ni_fini(void)
{
wait_queue_head_t waitq;
struct l_wait_info lwi;
int rc;
int retries;
/* Wait for the event queue to become idle since there may still be
* messages in flight with pending events (i.e. the fire-and-forget
* messages == client requests and "non-difficult" server
* replies */
for (retries = 0;; retries++) {
rc = LNetEQFree(ptlrpc_eq_h);
switch (rc) {
default:
LBUG();
case 0:
LNetNIFini();
return;
case -EBUSY:
if (retries != 0)
CWARN("Event queue still busy\n");
/* Wait for a bit */
init_waitqueue_head(&waitq);
lwi = LWI_TIMEOUT(cfs_time_seconds(2), NULL, NULL);
l_wait_event(waitq, 0, &lwi);
break;
}
}
/* notreached */
}
开发者ID:IDM350,项目名称:linux,代码行数:35,代码来源:events.c
示例9: libcfs_force_lbug
static int libcfs_force_lbug(struct ctl_table *table, int write,
void __user *buffer,
size_t *lenp, loff_t *ppos)
{
if (write)
LBUG();
return 0;
}
开发者ID:Abioy,项目名称:kasan,代码行数:8,代码来源:linux-proc.c
示例10: llog_lvfs_write_rec
static int llog_lvfs_write_rec(struct llog_handle *loghandle,
struct llog_rec_hdr *rec,
struct llog_cookie *reccookie, int cookiecount,
void *buf, int idx)
{
LBUG();
return 0;
}
开发者ID:DCteam,项目名称:lustre,代码行数:8,代码来源:llog_lvfs.c
示例11: mdt_handle_last_unlink
/* if object is dying, pack the lov/llog data,
* parameter info->mti_attr should be valid at this point! */
int mdt_handle_last_unlink(struct mdt_thread_info *info, struct mdt_object *mo,
const struct md_attr *ma)
{
struct mdt_body *repbody;
const struct lu_attr *la = &ma->ma_attr;
int rc;
ENTRY;
repbody = req_capsule_server_get(info->mti_pill, &RMF_MDT_BODY);
LASSERT(repbody != NULL);
if (ma->ma_valid & MA_INODE)
mdt_pack_attr2body(info, repbody, la, mdt_object_fid(mo));
if (ma->ma_valid & MA_LOV) {
__u32 mode;
if (mdt_object_exists(mo) < 0)
/* If it is a remote object, and we do not retrieve
* EA back unlink reg file*/
mode = S_IFREG;
else
mode = lu_object_attr(&mo->mot_obj.mo_lu);
LASSERT(ma->ma_lmm_size);
mdt_dump_lmm(D_INFO, ma->ma_lmm);
repbody->eadatasize = ma->ma_lmm_size;
if (S_ISREG(mode))
repbody->valid |= OBD_MD_FLEASIZE;
else if (S_ISDIR(mode))
repbody->valid |= OBD_MD_FLDIREA;
else
LBUG();
}
if (ma->ma_cookie_size && (ma->ma_valid & MA_COOKIE)) {
repbody->aclsize = ma->ma_cookie_size;
repbody->valid |= OBD_MD_FLCOOKIE;
}
if (info->mti_mdt->mdt_opts.mo_oss_capa &&
info->mti_exp->exp_connect_flags & OBD_CONNECT_OSS_CAPA &&
repbody->valid & OBD_MD_FLEASIZE) {
struct lustre_capa *capa;
capa = req_capsule_server_get(info->mti_pill, &RMF_CAPA2);
LASSERT(capa);
capa->lc_opc = CAPA_OPC_OSS_DESTROY;
rc = mo_capa_get(info->mti_env, mdt_object_child(mo), capa, 0);
if (rc)
RETURN(rc);
repbody->valid |= OBD_MD_FLOSSCAPA;
}
RETURN(0);
}
开发者ID:hpc,项目名称:lustre,代码行数:59,代码来源:mdt_lib.c
示例12: qsd_request_exit
/**
* Companion of qsd_request_enter() dropping lqe_pending_req to 0.
*/
static inline void qsd_request_exit(struct lquota_entry *lqe)
{
if (lqe->lqe_pending_req != 1) {
LQUOTA_ERROR(lqe, "lqe_pending_req != 1!!!");
LBUG();
}
lqe->lqe_pending_req--;
lqe->lqe_pending_rel = 0;
wake_up_all(&lqe->lqe_waiters);
}
开发者ID:hejin,项目名称:lustre-stable,代码行数:13,代码来源:qsd_handler.c
示例13: osc_lock_upcall
/**
* Lock upcall function that is executed either when a reply to ENQUEUE rpc is
* received from a server, or after osc_enqueue_base() matched a local DLM
* lock.
*/
static int osc_lock_upcall(void *cookie, struct lustre_handle *lockh,
int errcode)
{
struct osc_lock *oscl = cookie;
struct cl_lock_slice *slice = &oscl->ols_cl;
struct lu_env *env;
int rc;
ENTRY;
env = cl_env_percpu_get();
/* should never happen, similar to osc_ldlm_blocking_ast(). */
LASSERT(!IS_ERR(env));
rc = ldlm_error2errno(errcode);
if (oscl->ols_state == OLS_ENQUEUED) {
oscl->ols_state = OLS_UPCALL_RECEIVED;
} else if (oscl->ols_state == OLS_CANCELLED) {
rc = -EIO;
} else {
CERROR("Impossible state: %d\n", oscl->ols_state);
LBUG();
}
if (rc == 0)
osc_lock_granted(env, oscl, lockh, errcode == ELDLM_OK);
/* Error handling, some errors are tolerable. */
if (oscl->ols_locklessable && rc == -EUSERS) {
/* This is a tolerable error, turn this lock into
* lockless lock.
*/
osc_object_set_contended(cl2osc(slice->cls_obj));
LASSERT(slice->cls_ops != oscl->ols_lockless_ops);
/* Change this lock to ldlmlock-less lock. */
osc_lock_to_lockless(env, oscl, 1);
oscl->ols_state = OLS_GRANTED;
rc = 0;
} else if (oscl->ols_glimpse && rc == -ENAVAIL) {
LASSERT(oscl->ols_flags & LDLM_FL_LVB_READY);
osc_lock_lvb_update(env, cl2osc(slice->cls_obj),
NULL, &oscl->ols_lvb);
/* Hide the error. */
rc = 0;
} else if (rc < 0 && oscl->ols_flags & LDLM_FL_NDELAY) {
rc = -EWOULDBLOCK;
}
if (oscl->ols_owner != NULL)
cl_sync_io_note(env, oscl->ols_owner, rc);
cl_env_percpu_put(env);
RETURN(rc);
}
开发者ID:jokeryuy,项目名称:encryption_client_lus,代码行数:60,代码来源:osc_lock.c
示例14: lmv_intent_lock
int lmv_intent_lock(struct obd_export *exp, struct md_op_data *op_data,
struct lookup_intent *it, struct ptlrpc_request **reqp,
ldlm_blocking_callback cb_blocking,
__u64 extra_lock_flags)
{
struct obd_device *obd = exp->exp_obd;
int rc;
ENTRY;
LASSERT(it != NULL);
LASSERT(fid_is_sane(&op_data->op_fid1));
CDEBUG(D_INODE, "INTENT LOCK '%s' for "DFID" '%.*s' on "DFID"\n",
LL_IT2STR(it), PFID(&op_data->op_fid2),
(int)op_data->op_namelen, op_data->op_name,
PFID(&op_data->op_fid1));
rc = lmv_check_connect(obd);
if (rc)
RETURN(rc);
if (it->it_op & (IT_LOOKUP | IT_GETATTR | IT_LAYOUT))
rc = lmv_intent_lookup(exp, op_data, it, reqp, cb_blocking,
extra_lock_flags);
else if (it->it_op & IT_OPEN)
rc = lmv_intent_open(exp, op_data, it, reqp, cb_blocking,
extra_lock_flags);
else
LBUG();
if (rc < 0) {
struct lustre_handle lock_handle;
if (it->d.lustre.it_lock_mode != 0) {
lock_handle.cookie = it->d.lustre.it_lock_handle;
ldlm_lock_decref(&lock_handle,
it->d.lustre.it_lock_mode);
}
it->d.lustre.it_lock_handle = 0;
it->d.lustre.it_lock_mode = 0;
if (it->d.lustre.it_remote_lock_mode != 0) {
lock_handle.cookie = it->d.lustre.it_remote_lock_handle;
ldlm_lock_decref(&lock_handle,
it->d.lustre.it_remote_lock_mode);
}
it->d.lustre.it_remote_lock_handle = 0;
it->d.lustre.it_remote_lock_mode = 0;
}
RETURN(rc);
}
开发者ID:dinatale2,项目名称:lustre-stable,代码行数:54,代码来源:lmv_intent.c
示例15: lov_unpackmd
/* Unpack LOV object metadata from disk storage. It is packed in LE byte
* order and is opaque to the networking layer.
*/
int lov_unpackmd(struct obd_export *exp, struct lov_stripe_md **lsmp,
struct lov_mds_md *lmm, int lmm_bytes)
{
struct obd_device *obd = class_exp2obd(exp);
struct lov_obd *lov = &obd->u.lov;
int rc = 0, lsm_size;
__u16 stripe_count;
__u32 magic;
__u32 pattern;
ENTRY;
/* If passed an MDS struct use values from there, otherwise defaults */
if (lmm) {
rc = lov_verify_lmm(lmm, lmm_bytes, &stripe_count);
if (rc)
RETURN(rc);
magic = le32_to_cpu(lmm->lmm_magic);
pattern = le32_to_cpu(lmm->lmm_pattern);
} else {
magic = LOV_MAGIC;
stripe_count = lov_get_stripecnt(lov, magic, 0);
pattern = LOV_PATTERN_RAID0;
}
/* If we aren't passed an lsmp struct, we just want the size */
if (!lsmp) {
/* XXX LOV STACKING call into osc for sizes */
LBUG();
RETURN(lov_stripe_md_size(stripe_count));
}
/* If we are passed an allocated struct but nothing to unpack, free */
if (*lsmp && !lmm) {
lov_free_memmd(lsmp);
RETURN(0);
}
lsm_size = lov_alloc_memmd(lsmp, stripe_count, pattern, magic);
if (lsm_size < 0)
RETURN(lsm_size);
/* If we are passed a pointer but nothing to unpack, we only alloc */
if (!lmm)
RETURN(lsm_size);
LASSERT(lsm_op_find(magic) != NULL);
rc = lsm_op_find(magic)->lsm_unpackmd(lov, *lsmp, lmm);
if (rc) {
lov_free_memmd(lsmp);
RETURN(rc);
}
RETURN(lsm_size);
}
开发者ID:karig,项目名称:lustre-stable,代码行数:56,代码来源:lov_pack.c
示例16: _kgnilnd_api_rc_lbug
void
_kgnilnd_api_rc_lbug(const char* rcstr, int rc, struct libcfs_debug_msg_data *msgdata,
const char *fmt, ...)
{
va_list args;
va_start(args, fmt);
libcfs_debug_vmsg2(msgdata, fmt, args,
" GNI API violated? Unexpected rc %s(%d)!\n",
rcstr, rc);
va_end(args);
LBUG();
}
开发者ID:Zealsathish,项目名称:lustre,代码行数:13,代码来源:gnilnd_debug.c
示例17: qsd_request_enter
/**
* helper function bumping lqe_pending_req if there is no quota request in
* flight for the lquota entry \a lqe. Otherwise, EBUSY is returned.
*/
static inline int qsd_request_enter(struct lquota_entry *lqe)
{
/* is there already a quota request in flight? */
if (lqe->lqe_pending_req != 0) {
LQUOTA_DEBUG(lqe, "already a request in flight");
return -EBUSY;
}
if (lqe->lqe_pending_rel != 0) {
LQUOTA_ERROR(lqe, "no request in flight with pending_rel="LPU64,
lqe->lqe_pending_rel);
LBUG();
}
lqe->lqe_pending_req++;
return 0;
}
开发者ID:hejin,项目名称:lustre-stable,代码行数:21,代码来源:qsd_handler.c
示例18: lov_page_own
static int lov_page_own(const struct lu_env *env,
const struct cl_page_slice *slice, struct cl_io *io,
int nonblock)
{
struct lov_io *lio = lov_env_io(env);
struct lov_io_sub *sub;
LINVRNT(lov_page_invariant(slice));
LINVRNT(!cl2lov_page(slice)->lps_invalid);
sub = lov_page_subio(env, lio, slice);
if (!IS_ERR(sub)) {
lov_sub_page(slice)->cp_owner = sub->sub_io;
lov_sub_put(sub);
} else
LBUG(); /* Arrgh */
return 0;
}
开发者ID:Chong-Li,项目名称:cse522,代码行数:18,代码来源:lov_page.c
示例19: chance_to_hit
int chance_to_hit(object weapon, object target)
{
string attack_skill = weapon->query_skill_used();
string defend_skill = target->query_defend_skill_used();
int attack_value = aggregate_skill(attack_skill);
int defend_value = target->aggregate_skill(defend_skill);
int res;
// Skill tests to potentially increase the skills
this_body()->test_skill(attack_skill, defend_value);
target->test_skill(defend_skill, attack_value);
// Calculate the value
res = attack_value-defend_value+MAX_SKILL_VALUE;
res = res*100/(2*MAX_SKILL_VALUE);
LBUG( res );
return res;
}
开发者ID:Lundex,项目名称:lima,代码行数:18,代码来源:skills.c
示例20: gss_cli_ctx_die_pf
static
void gss_cli_ctx_die_pf(struct ptlrpc_cli_ctx *ctx, int grace)
{
LASSERT(ctx->cc_sec);
LASSERT(atomic_read(&ctx->cc_refcount) > 0);
cli_ctx_expire(ctx);
spin_lock(&ctx->cc_sec->ps_lock);
if (test_and_clear_bit(PTLRPC_CTX_CACHED_BIT, &ctx->cc_flags)) {
LASSERT(!hlist_unhashed(&ctx->cc_cache));
LASSERT(atomic_read(&ctx->cc_refcount) > 1);
hlist_del_init(&ctx->cc_cache);
if (atomic_dec_and_test(&ctx->cc_refcount))
LBUG();
}
spin_unlock(&ctx->cc_sec->ps_lock);
}
开发者ID:Xyratex,项目名称:lustre-stable,代码行数:21,代码来源:gss_pipefs.c
注:本文中的LBUG函数示例由纯净天空整理自Github/MSDocs等源码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。 |
请发表评论