这篇教程C++ xdr_reserve_space函数代码示例写得很实用,希望能帮到您。
本文整理汇总了C++中xdr_reserve_space函数的典型用法代码示例。如果您正苦于以下问题:C++ xdr_reserve_space函数的具体用法?C++ xdr_reserve_space怎么用?C++ xdr_reserve_space使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。 在下文中一共展示了xdr_reserve_space函数的26个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的C++代码示例。 示例1: encode_attr_bitmapstatic unsigned encode_attr_bitmap(struct xdr_stream *xdr, const uint32_t *bitmap, uint32_t **savep){ uint32_t bm[2]; uint32_t *p; bm[0] = htonl(bitmap[0] & CB_SUPPORTED_ATTR0); bm[1] = htonl(bitmap[1] & CB_SUPPORTED_ATTR1); if (bm[1] != 0) { p = xdr_reserve_space(xdr, 16); if (unlikely(p == NULL)) return htonl(NFS4ERR_RESOURCE); *p++ = htonl(2); *p++ = bm[0]; *p++ = bm[1]; } else if (bm[0] != 0) { p = xdr_reserve_space(xdr, 12); if (unlikely(p == NULL)) return htonl(NFS4ERR_RESOURCE); *p++ = htonl(1); *p++ = bm[0]; } else { p = xdr_reserve_space(xdr, 8); if (unlikely(p == NULL)) return htonl(NFS4ERR_RESOURCE); *p++ = htonl(0); } *savep = p; return 0;}
开发者ID:FatSunHYS,项目名称:OSCourseDesign,代码行数:29,
示例2: gssx_enc_cbstatic int gssx_enc_cb(struct xdr_stream *xdr, struct gssx_cb *cb){ __be32 *p; int err; /* cb->initiator_addrtype */ p = xdr_reserve_space(xdr, 8); if (!p) return -ENOSPC; p = xdr_encode_hyper(p, cb->initiator_addrtype); /* cb->initiator_address */ err = gssx_enc_buffer(xdr, &cb->initiator_address); if (err) return err; /* cb->acceptor_addrtype */ p = xdr_reserve_space(xdr, 8); if (!p) return -ENOSPC; p = xdr_encode_hyper(p, cb->acceptor_addrtype); /* cb->acceptor_address */ err = gssx_enc_buffer(xdr, &cb->acceptor_address); if (err) return err; /* cb->application_data */ err = gssx_enc_buffer(xdr, &cb->application_data); return err;}
开发者ID:Lyude,项目名称:linux,代码行数:32,
示例3: encode_sattrguard3static void encode_sattrguard3(struct xdr_stream *xdr, const struct nfs3_sattrargs *args){ __be32 *p; if (args->guard) { p = xdr_reserve_space(xdr, 4 + 8); *p++ = xdr_one; xdr_encode_nfstime3(p, &args->guardtime); } else { p = xdr_reserve_space(xdr, 4); *p = xdr_zero; }}
开发者ID:Albinoman887,项目名称:pyramid-3.4.10,代码行数:14,
示例4: unx_marshal/* * Marshal credentials. * Maybe we should keep a cached credential for performance reasons. */static intunx_marshal(struct rpc_task *task, struct xdr_stream *xdr){ struct rpc_clnt *clnt = task->tk_client; struct rpc_cred *cred = task->tk_rqstp->rq_cred; __be32 *p, *cred_len, *gidarr_len; int i; struct group_info *gi = cred->cr_cred->group_info; /* Credential */ p = xdr_reserve_space(xdr, 3 * sizeof(*p)); if (!p) goto marshal_failed; *p++ = rpc_auth_unix; cred_len = p++; *p++ = xdr_zero; /* stamp */ if (xdr_stream_encode_opaque(xdr, clnt->cl_nodename, clnt->cl_nodelen) < 0) goto marshal_failed; p = xdr_reserve_space(xdr, 3 * sizeof(*p)); if (!p) goto marshal_failed; *p++ = cpu_to_be32(from_kuid(&init_user_ns, cred->cr_cred->fsuid)); *p++ = cpu_to_be32(from_kgid(&init_user_ns, cred->cr_cred->fsgid)); gidarr_len = p++; if (gi) for (i = 0; i < UNX_NGROUPS && i < gi->ngroups; i++) *p++ = cpu_to_be32(from_kgid(&init_user_ns, gi->gid[i])); *gidarr_len = cpu_to_be32(p - gidarr_len - 1); *cred_len = cpu_to_be32((p - cred_len - 1) << 2); p = xdr_reserve_space(xdr, (p - gidarr_len - 1) << 2); if (!p) goto marshal_failed; /* Verifier */ p = xdr_reserve_space(xdr, 2 * sizeof(*p)); if (!p) goto marshal_failed; *p++ = rpc_auth_null; *p = xdr_zero; return 0;marshal_failed: return -EMSGSIZE;}
开发者ID:Anjali05,项目名称:linux,代码行数:54,
示例5: encode_compound_hdr_resstatic unsigned encode_compound_hdr_res(struct xdr_stream *xdr, struct cb_compound_hdr_res *hdr){ unsigned status; hdr->status = xdr_reserve_space(xdr, 4); if (unlikely(hdr->status == NULL)) return htonl(NFS4ERR_RESOURCE); status = encode_string(xdr, hdr->taglen, hdr->tag); if (unlikely(status != 0)) return status; hdr->nops = xdr_reserve_space(xdr, 4); if (unlikely(hdr->nops == NULL)) return htonl(NFS4ERR_RESOURCE); return 0;}
开发者ID:FatSunHYS,项目名称:OSCourseDesign,代码行数:15,
示例6: nfs3_xdr_enc_setacl3argsstatic void nfs3_xdr_enc_setacl3args(struct rpc_rqst *req, struct xdr_stream *xdr, const struct nfs3_setaclargs *args){ unsigned int base; int error; encode_nfs_fh3(xdr, NFS_FH(args->inode)); encode_uint32(xdr, args->mask); base = req->rq_slen; if (args->npages != 0) xdr_write_pages(xdr, args->pages, 0, args->len); else xdr_reserve_space(xdr, NFS_ACL_INLINE_BUFSIZE); error = nfsacl_encode(xdr->buf, base, args->inode, (args->mask & NFS_ACL) ? args->acl_access : NULL, 1, 0); BUG_ON(error < 0); error = nfsacl_encode(xdr->buf, base + error, args->inode, (args->mask & NFS_DFACL) ? args->acl_default : NULL, 1, NFS_ACL_DEFAULT); BUG_ON(error < 0);}
开发者ID:Albinoman887,项目名称:pyramid-3.4.10,代码行数:26,
示例7: encode_sattr3static void encode_sattr3(struct xdr_stream *xdr, const struct iattr *attr){ u32 nbytes; __be32 *p; nbytes = 6 * 4; if (attr->ia_valid & ATTR_MODE) nbytes += 4; if (attr->ia_valid & ATTR_UID) nbytes += 4; if (attr->ia_valid & ATTR_GID) nbytes += 4; if (attr->ia_valid & ATTR_SIZE) nbytes += 8; if (attr->ia_valid & ATTR_ATIME_SET) nbytes += 8; if (attr->ia_valid & ATTR_MTIME_SET) nbytes += 8; p = xdr_reserve_space(xdr, nbytes); if (attr->ia_valid & ATTR_MODE) { *p++ = xdr_one; *p++ = cpu_to_be32(attr->ia_mode & S_IALLUGO); } else *p++ = xdr_zero; if (attr->ia_valid & ATTR_UID) { *p++ = xdr_one; *p++ = cpu_to_be32(attr->ia_uid); } else *p++ = xdr_zero; if (attr->ia_valid & ATTR_GID) { *p++ = xdr_one; *p++ = cpu_to_be32(attr->ia_gid); } else *p++ = xdr_zero; if (attr->ia_valid & ATTR_SIZE) { *p++ = xdr_one; p = xdr_encode_hyper(p, (u64)attr->ia_size); } else *p++ = xdr_zero; if (attr->ia_valid & ATTR_ATIME_SET) { *p++ = xdr_two; p = xdr_encode_nfstime3(p, &attr->ia_atime); } else if (attr->ia_valid & ATTR_ATIME) { *p++ = xdr_one; } else *p++ = xdr_zero; if (attr->ia_valid & ATTR_MTIME_SET) { *p++ = xdr_two; xdr_encode_nfstime3(p, &attr->ia_mtime); } else if (attr->ia_valid & ATTR_MTIME) { *p = xdr_one; } else *p = xdr_zero;}
开发者ID:Albinoman887,项目名称:pyramid-3.4.10,代码行数:60,
示例8: encode_createverf3static void encode_createverf3(struct xdr_stream *xdr, const __be32 *verifier){ __be32 *p; p = xdr_reserve_space(xdr, NFS3_CREATEVERFSIZE); memcpy(p, verifier, NFS3_CREATEVERFSIZE);}
开发者ID:Albinoman887,项目名称:pyramid-3.4.10,代码行数:7,
示例9: encode_cb_sequence_resstatic __be32 encode_cb_sequence_res(struct svc_rqst *rqstp, struct xdr_stream *xdr, const struct cb_sequenceres *res){ __be32 *p; __be32 status = res->csr_status; if (unlikely(status != 0)) goto out; status = encode_sessionid(xdr, &res->csr_sessionid); if (status) goto out; p = xdr_reserve_space(xdr, 4 * sizeof(uint32_t)); if (unlikely(p == NULL)) return htonl(NFS4ERR_RESOURCE); *p++ = htonl(res->csr_sequenceid); *p++ = htonl(res->csr_slotid); *p++ = htonl(res->csr_highestslotid); *p++ = htonl(res->csr_target_highestslotid);out: dprintk("%s: exit with status = %d/n", __func__, ntohl(status)); return status;}
开发者ID:AshishNamdev,项目名称:linux,代码行数:26,
示例10: encode_boolstatic void encode_bool(struct xdr_stream *xdr, const int value){ __be32 *p; p = xdr_reserve_space(xdr, 4); *p = value ? xdr_one : xdr_zero;}
开发者ID:119-org,项目名称:hi3518-osdrv,代码行数:7,
示例11: encode_cb_sequence_resstatic __be32 encode_cb_sequence_res(struct svc_rqst *rqstp, struct xdr_stream *xdr, const void *resp){ const struct cb_sequenceres *res = resp; __be32 *p; __be32 status = res->csr_status; if (unlikely(status != 0)) return status; status = encode_sessionid(xdr, &res->csr_sessionid); if (status) return status; p = xdr_reserve_space(xdr, 4 * sizeof(uint32_t)); if (unlikely(p == NULL)) return htonl(NFS4ERR_RESOURCE); *p++ = htonl(res->csr_sequenceid); *p++ = htonl(res->csr_slotid); *p++ = htonl(res->csr_highestslotid); *p++ = htonl(res->csr_target_highestslotid); return 0;}
开发者ID:ReneNyffenegger,项目名称:linux,代码行数:25,
示例12: encode_fhandle/* * 2.3.3. fhandle * * typedef opaque fhandle[FHSIZE]; */static void encode_fhandle(struct xdr_stream *xdr, const struct nfs_fh *fh){ __be32 *p; p = xdr_reserve_space(xdr, NFS2_FHSIZE); memcpy(p, fh->data, NFS2_FHSIZE);}
开发者ID:u9621071,项目名称:kernel-uek-UEK3,代码行数:12,
示例13: encode_int32static void encode_int32(struct xdr_stream *xdr, const s32 value){ __be32 *p; p = xdr_reserve_space(xdr, 4); *p = cpu_to_be32(value);}
开发者ID:119-org,项目名称:hi3518-osdrv,代码行数:7,
示例14: encode_path/* * 2.3.8. path * * typedef string path<MAXPATHLEN>; */static void encode_path(struct xdr_stream *xdr, struct page **pages, u32 length){ __be32 *p; p = xdr_reserve_space(xdr, 4); *p = cpu_to_be32(length); xdr_write_pages(xdr, pages, 0, length);}
开发者ID:u9621071,项目名称:kernel-uek-UEK3,代码行数:13,
示例15: encode_specdata3static void encode_specdata3(struct xdr_stream *xdr, const dev_t rdev){ __be32 *p; p = xdr_reserve_space(xdr, 8); *p++ = cpu_to_be32(MAJOR(rdev)); *p = cpu_to_be32(MINOR(rdev));}
开发者ID:Albinoman887,项目名称:pyramid-3.4.10,代码行数:8,
示例16: encode_nfs_fh3static void encode_nfs_fh3(struct xdr_stream *xdr, const struct nfs_fh *fh){ __be32 *p; BUG_ON(fh->size > NFS3_FHSIZE); p = xdr_reserve_space(xdr, 4 + fh->size); xdr_encode_opaque(p, fh->data, fh->size);}
开发者ID:Albinoman887,项目名称:pyramid-3.4.10,代码行数:8,
示例17: encode_nlm_statstatic void encode_nlm_stat(struct xdr_stream *xdr, const __be32 stat){ __be32 *p; BUG_ON(be32_to_cpu(stat) > NLM_LCK_DENIED_GRACE_PERIOD); p = xdr_reserve_space(xdr, 4); *p = stat;}
开发者ID:119-org,项目名称:hi3518-osdrv,代码行数:9,
示例18: encode_netobj/* * typedef opaque netobj<MAXNETOBJ_SZ> */static void encode_netobj(struct xdr_stream *xdr, const u8 *data, const unsigned int length){ __be32 *p; BUG_ON(length > XDR_MAX_NETOBJ); p = xdr_reserve_space(xdr, 4 + length); xdr_encode_opaque(p, data, length);}
开发者ID:119-org,项目名称:hi3518-osdrv,代码行数:12,
示例19: encode_filename/* * 2.3.7. filename * * typedef string filename<MAXNAMLEN>; */static void encode_filename(struct xdr_stream *xdr, const char *name, u32 length){ __be32 *p; BUG_ON(length > NFS2_MAXNAMLEN); p = xdr_reserve_space(xdr, 4 + length); xdr_encode_opaque(p, name, length);}
开发者ID:ARMWorks,项目名称:FA_2451_Linux_Kernel,代码行数:14,
示例20: encode_nlm4_stat/* * enum nlm4_stats { * NLM4_GRANTED = 0, * NLM4_DENIED = 1, * NLM4_DENIED_NOLOCKS = 2, * NLM4_BLOCKED = 3, * NLM4_DENIED_GRACE_PERIOD = 4, * NLM4_DEADLCK = 5, * NLM4_ROFS = 6, * NLM4_STALE_FH = 7, * NLM4_FBIG = 8, * NLM4_FAILED = 9 * }; * * struct nlm4_stat { * nlm4_stats stat; * }; * * NB: we don't swap bytes for the NLM status values. The upper * layers deal directly with the status value in network byte * order. */static void encode_nlm4_stat(struct xdr_stream *xdr, const __be32 stat){ __be32 *p; BUG_ON(be32_to_cpu(stat) > NLM_FAILED); p = xdr_reserve_space(xdr, 4); *p = stat;}
开发者ID:openube,项目名称:android_kernel_sony_c2305,代码行数:31,
示例21: encode_caller_namestatic void encode_caller_name(struct xdr_stream *xdr, const char *name){ u32 length = strlen(name); __be32 *p; BUG_ON(length > NLM_MAXSTRLEN); p = xdr_reserve_space(xdr, 4 + length); xdr_encode_opaque(p, name, length);}
开发者ID:Albinoman887,项目名称:pyramid-3.4.10,代码行数:10,
示例22: gssx_enc_boolstatic int gssx_enc_bool(struct xdr_stream *xdr, int v){ __be32 *p; p = xdr_reserve_space(xdr, 4); if (unlikely(p == NULL)) return -ENOSPC; *p = v ? xdr_one : xdr_zero; return 0;}
开发者ID:Lyude,项目名称:linux,代码行数:10,
示例23: encode_stringstatic unsigned encode_string(struct xdr_stream *xdr, unsigned int len, const char *str){ uint32_t *p; p = xdr_reserve_space(xdr, 4 + len); if (unlikely(p == NULL)) return htonl(NFS4ERR_RESOURCE); xdr_encode_opaque(p, str, len); return 0;}
开发者ID:FatSunHYS,项目名称:OSCourseDesign,代码行数:10,
示例24: xdr_reserve_space__be32 *pnfs_osd_xdr_ioerr_reserve_space(struct xdr_stream *xdr){ __be32 *p; p = xdr_reserve_space(xdr, 32 + 24); if (unlikely(!p)) dprintk("%s: out of xdr space/n", __func__); return p;}
开发者ID:MiniBlu,项目名称:cm11_kernel_htc_msm8974a3ul,代码行数:10,
示例25: encode_caller_name/* * string caller_name<LM_MAXSTRLEN>; */static void encode_caller_name(struct xdr_stream *xdr, const char *name){ /* NB: client-side does not set lock->len */ u32 length = strlen(name); __be32 *p; BUG_ON(length > NLM_MAXSTRLEN); p = xdr_reserve_space(xdr, 4 + length); xdr_encode_opaque(p, name, length);}
开发者ID:119-org,项目名称:hi3518-osdrv,代码行数:13,
示例26: encode_op_hdrstatic unsigned encode_op_hdr(struct xdr_stream *xdr, uint32_t op, uint32_t res){ uint32_t *p; p = xdr_reserve_space(xdr, 8); if (unlikely(p == NULL)) return htonl(NFS4ERR_RESOURCE); *p++ = htonl(op); *p = res; return 0;}
开发者ID:FatSunHYS,项目名称:OSCourseDesign,代码行数:11,
注:本文中的xdr_reserve_space函数示例整理自Github/MSDocs等源码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。 C++ xdr_ressize_check函数代码示例 C++ xdr_recv_uint32函数代码示例 |