Lines Matching refs:ctx

52 	ndmp_door_ctx_t *ctx = malloc(sizeof (ndmp_door_ctx_t));
53 if (ctx) {
54 ctx->start_ptr = ctx->ptr = ptr;
55 ctx->end_ptr = ptr + size;
56 ctx->status = 0;
58 return (ctx);
62 ndmp_door_decode_finish(ndmp_door_ctx_t *ctx)
64 int status = ctx->status;
65 if ((status == 0) && (ctx->ptr != ctx->end_ptr)) {
68 free(ctx);
75 ndmp_door_ctx_t *ctx = malloc(sizeof (ndmp_door_ctx_t));
76 if (ctx) {
77 ctx->start_ptr = ctx->ptr = ptr;
78 ctx->end_ptr = ptr + size;
79 ctx->status = 0;
81 return (ctx);
85 ndmp_door_encode_finish(ndmp_door_ctx_t *ctx, unsigned int *used)
87 int status = ctx->status;
89 if (ctx->ptr < ctx->end_ptr) {
91 *used = ctx->ptr - ctx->start_ptr;
96 free(ctx);
101 ndmp_door_get_int32(ndmp_door_ctx_t *ctx)
104 if (ctx->status == 0) {
105 if (ctx->ptr + sizeof (int32_t) <= ctx->end_ptr) {
106 (void) memcpy(&num, ctx->ptr, sizeof (int32_t));
107 ctx->ptr += sizeof (int32_t);
109 ctx->status = ENOSPC;
116 ndmp_door_get_uint32(ndmp_door_ctx_t *ctx)
118 return ((uint32_t)ndmp_door_get_int32(ctx));
122 ndmp_door_get_string(ndmp_door_ctx_t *ctx)
125 int len = ndmp_door_get_int32(ctx);
127 if (ctx->status == 0) {
131 if (ctx->ptr + len <= ctx->end_ptr) {
137 (void) memcpy(buf, ctx->ptr, len);
138 ctx->ptr += len;
142 ctx->status = errno;
145 ctx->status = ENOSPC;
152 ndmp_door_put_int32(ndmp_door_ctx_t *ctx, int32_t num)
154 if (ctx->status == 0) {
155 if (ctx->ptr + sizeof (int32_t) <= ctx->end_ptr) {
156 (void) memcpy(ctx->ptr, &num, sizeof (int32_t));
157 ctx->ptr += sizeof (int32_t);
159 ctx->status = ENOSPC;
165 ndmp_door_put_uint32(ndmp_door_ctx_t *ctx, uint32_t num)
167 ndmp_door_put_int32(ctx, (int32_t)num);
171 ndmp_door_put_string(ndmp_door_ctx_t *ctx, char *buf)
180 if (ctx->status == 0) {
181 ndmp_door_put_int32(ctx, len);
185 if (ctx->ptr + len <= ctx->end_ptr) {
186 (void) memcpy(ctx->ptr, buf, len);
187 ctx->ptr += len;
189 ctx->status = ENOSPC;
201 ndmp_door_get_int64(ndmp_door_ctx_t *ctx)
204 if (ctx->status == 0) {
205 if (ctx->ptr + sizeof (int64_t) <= ctx->end_ptr) {
206 (void) memcpy(&num, ctx->ptr, sizeof (int64_t));
207 ctx->ptr += sizeof (int64_t);
209 ctx->status = ENOSPC;
216 ndmp_door_get_uint64(ndmp_door_ctx_t *ctx)
218 return ((uint64_t)ndmp_door_get_int64(ctx));
223 ndmp_door_put_int64(ndmp_door_ctx_t *ctx, int64_t num)
225 if (ctx->status == 0) {
226 if (ctx->ptr + sizeof (int64_t) <= ctx->end_ptr) {
227 (void) memcpy(ctx->ptr, &num, sizeof (int64_t));
228 ctx->ptr += sizeof (int64_t);
230 ctx->status = ENOSPC;
236 ndmp_door_put_uint64(ndmp_door_ctx_t *ctx, uint64_t num)
238 ndmp_door_put_int64(ctx, (int64_t)num);
242 ndmp_door_put_short(ndmp_door_ctx_t *ctx, short num)
244 if (ctx->status == 0) {
245 if (ctx->ptr + sizeof (short) <= ctx->end_ptr) {
246 (void) memcpy(ctx->ptr, &num, sizeof (short));
247 ctx->ptr += sizeof (short);
249 ctx->status = ENOSPC;
255 ndmp_door_get_short(ndmp_door_ctx_t *ctx)
258 if (ctx->status == 0) {
259 if (ctx->ptr + sizeof (short) <= ctx->end_ptr) {
260 (void) memcpy(&num, ctx->ptr, sizeof (short));
261 ctx->ptr += sizeof (short);
263 ctx->status = ENOSPC;
270 ndmp_door_put_ushort(ndmp_door_ctx_t *ctx, unsigned short num)
272 ndmp_door_put_short(ctx, (short)num);
276 ndmp_door_get_ushort(ndmp_door_ctx_t *ctx)
278 return ((unsigned short)ndmp_door_get_short(ctx));
282 ndmp_door_put_buf(ndmp_door_ctx_t *ctx, unsigned char *start, int len)
284 ndmp_door_put_int32(ctx, len);
285 if (ctx->status == 0) {
286 if (ctx->ptr + len <= ctx->end_ptr) {
287 (void) memcpy(ctx->ptr, start, len);
288 ctx->ptr += len;
290 ctx->status = ENOSPC;
296 ndmp_door_get_buf(ndmp_door_ctx_t *ctx, unsigned char *buf, int bufsize)
303 len = ndmp_door_get_int32(ctx);
304 if (ctx->status == 0) {
306 ctx->status = ENOSPC;
310 if (ctx->ptr + len <= ctx->end_ptr) {
311 (void) memcpy(buf, ctx->ptr, len);
312 ctx->ptr += len;
314 ctx->status = ENOSPC;