/* push a NTTIME_1sec */ _PUBLIC_ enum ndr_err_code ndr_push_NTTIME_1sec(struct ndr_push *ndr, int ndr_flags, NTTIME t) { NDR_PUSH_CHECK_FLAGS(ndr, ndr_flags); t /= 10000000; NDR_CHECK(ndr_push_hyper(ndr, ndr_flags, t)); return NDR_ERR_SUCCESS; }
_PUBLIC_ enum ndr_err_code ndr_push_witness_notifyResponse(struct ndr_push *ndr, int ndr_flags, const struct witness_notifyResponse *r) { uint32_t cntr_messages_0; { uint32_t _flags_save_STRUCT = ndr->flags; ndr_set_flags(&ndr->flags, LIBNDR_PRINT_ARRAY_HEX); NDR_PUSH_CHECK_FLAGS(ndr, ndr_flags); if (ndr_flags & NDR_SCALARS) { NDR_CHECK(ndr_push_align(ndr, 4)); NDR_CHECK(ndr_push_witness_notifyResponse_type(ndr, NDR_SCALARS, r->type)); NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_size_witness_notifyResponse(r, ndr->flags) - 20)); NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->num)); NDR_CHECK(ndr_push_unique_ptr(ndr, r->messages)); if (r->messages) { uint32_t _flags_save_witness_notifyResponse_message = ndr->flags; ndr_set_flags(&ndr->flags, LIBNDR_FLAG_REMAINING); { struct ndr_push *_ndr_messages; NDR_CHECK(ndr_push_subcontext_start(ndr, &_ndr_messages, 4, ndr_size_witness_notifyResponse(r, ndr->flags) - 20)); for (cntr_messages_0 = 0; cntr_messages_0 < (r->num); cntr_messages_0++) { NDR_CHECK(ndr_push_set_switch_value(_ndr_messages, &r->messages[cntr_messages_0], r->type)); NDR_CHECK(ndr_push_witness_notifyResponse_message(_ndr_messages, NDR_SCALARS, &r->messages[cntr_messages_0])); } NDR_CHECK(ndr_push_subcontext_end(ndr, _ndr_messages, 4, ndr_size_witness_notifyResponse(r, ndr->flags) - 20)); } ndr->flags = _flags_save_witness_notifyResponse_message; } NDR_CHECK(ndr_push_trailer_align(ndr, 4)); } if (ndr_flags & NDR_BUFFERS) { } ndr->flags = _flags_save_STRUCT; } return NDR_ERR_SUCCESS; }
/* push an array of uint8 */ _PUBLIC_ enum ndr_err_code ndr_push_array_uint8(struct ndr_push *ndr, int ndr_flags, const uint8_t *data, uint32_t n) { NDR_PUSH_CHECK_FLAGS(ndr, ndr_flags); if (!(ndr_flags & NDR_SCALARS)) { return NDR_ERR_SUCCESS; } return ndr_push_bytes(ndr, data, n); }
/* push a uint8_t */ _PUBLIC_ enum ndr_err_code ndr_push_uint8(struct ndr_push *ndr, int ndr_flags, uint8_t v) { NDR_PUSH_CHECK_FLAGS(ndr, ndr_flags); NDR_PUSH_NEED_BYTES(ndr, 1); SCVAL(ndr->data, ndr->offset, v); ndr->offset += 1; return NDR_ERR_SUCCESS; }
/* push a double */ _PUBLIC_ enum ndr_err_code ndr_push_double(struct ndr_push *ndr, int ndr_flags, double v) { NDR_PUSH_CHECK_FLAGS(ndr, ndr_flags); NDR_PUSH_ALIGN(ndr, 8); NDR_PUSH_NEED_BYTES(ndr, 8); memcpy(ndr->data+ndr->offset, &v, 8); ndr->offset += 8; return NDR_ERR_SUCCESS; }
/* push a uint32_t */ _PUBLIC_ enum ndr_err_code ndr_push_uint32(struct ndr_push *ndr, int ndr_flags, uint32_t v) { NDR_PUSH_CHECK_FLAGS(ndr, ndr_flags); NDR_PUSH_ALIGN(ndr, 4); NDR_PUSH_NEED_BYTES(ndr, 4); NDR_SIVAL(ndr, ndr->offset, v); ndr->offset += 4; return NDR_ERR_SUCCESS; }
/* push a int16_t */ _PUBLIC_ enum ndr_err_code ndr_push_int16(struct ndr_push *ndr, int ndr_flags, int16_t v) { NDR_PUSH_CHECK_FLAGS(ndr, ndr_flags); NDR_PUSH_ALIGN(ndr, 2); NDR_PUSH_NEED_BYTES(ndr, 2); NDR_SSVAL(ndr, ndr->offset, (uint16_t)v); ndr->offset += 2; return NDR_ERR_SUCCESS; }
_PUBLIC_ enum ndr_err_code ndr_push_timeval(struct ndr_push *ndr, int ndr_flags, const struct timeval *t) { NDR_PUSH_CHECK_FLAGS(ndr, ndr_flags); NDR_CHECK(ndr_push_hyper(ndr, ndr_flags, t->tv_sec)); NDR_CHECK(ndr_push_uint32(ndr, ndr_flags, t->tv_usec)); return NDR_ERR_SUCCESS; }
/* push a pointer */ _PUBLIC_ enum ndr_err_code ndr_push_pointer(struct ndr_push *ndr, int ndr_flags, void* v) { uintptr_t h = (intptr_t)v; NDR_PUSH_CHECK_FLAGS(ndr, ndr_flags); NDR_PUSH_ALIGN(ndr, sizeof(h)); NDR_PUSH_NEED_BYTES(ndr, sizeof(h)); memcpy(ndr->data+ndr->offset, &h, sizeof(h)); ndr->offset += sizeof(h); return NDR_ERR_SUCCESS; }
/* push a udlongr */ _PUBLIC_ enum ndr_err_code ndr_push_udlongr(struct ndr_push *ndr, int ndr_flags, uint64_t v) { NDR_PUSH_CHECK_FLAGS(ndr, ndr_flags); NDR_PUSH_ALIGN(ndr, 4); NDR_PUSH_NEED_BYTES(ndr, 8); NDR_SIVAL(ndr, ndr->offset, (v>>32)); NDR_SIVAL(ndr, ndr->offset+4, (v & 0xFFFFFFFF)); ndr->offset += 8; return NDR_ERR_SUCCESS; }
enum ndr_err_code ndr_push_drsuapi_DsBindInfo(struct ndr_push *ndr, int ndr_flags, const union drsuapi_DsBindInfo *r) { uint32_t _flags_save = ndr->flags; ndr->flags = ndr->flags & ~LIBNDR_FLAG_NDR64; NDR_PUSH_CHECK_FLAGS(ndr, ndr_flags); if (ndr_flags & NDR_SCALARS) { uint32_t level = ndr_push_get_switch_value(ndr, r); NDR_CHECK(ndr_push_union_align(ndr, 4)); switch (level) { case 24: { { struct ndr_push *_ndr_info24; NDR_CHECK(ndr_push_subcontext_start(ndr, &_ndr_info24, 0, 24)); NDR_CHECK(ndr_push_drsuapi_DsBindInfo24(_ndr_info24, NDR_SCALARS, &r->info24)); NDR_CHECK(ndr_push_subcontext_end(ndr, _ndr_info24, 0, 24)); } break; } case 28: { { struct ndr_push *_ndr_info28; NDR_CHECK(ndr_push_subcontext_start(ndr, &_ndr_info28, 0, 28)); NDR_CHECK(ndr_push_drsuapi_DsBindInfo28(_ndr_info28, NDR_SCALARS, &r->info28)); NDR_CHECK(ndr_push_subcontext_end(ndr, _ndr_info28, 0, 28)); } break; } case 48: { { struct ndr_push *_ndr_info48; NDR_CHECK(ndr_push_subcontext_start(ndr, &_ndr_info48, 0, 48)); NDR_CHECK(ndr_push_drsuapi_DsBindInfo48(_ndr_info48, NDR_SCALARS, &r->info48)); NDR_CHECK(ndr_push_subcontext_end(ndr, _ndr_info48, 0, 48)); } break; } case 52: { { struct ndr_push *_ndr_info52; NDR_CHECK(ndr_push_subcontext_start(ndr, &_ndr_info52, 0, 52)); NDR_CHECK(ndr_push_drsuapi_DsBindInfo52(_ndr_info52, NDR_SCALARS, &r->info52)); NDR_CHECK(ndr_push_subcontext_end(ndr, _ndr_info52, 0, 52)); } break; } default: { { struct ndr_push *_ndr_Fallback; NDR_CHECK(ndr_push_subcontext_start(ndr, &_ndr_Fallback, 0, level)); NDR_CHECK(ndr_push_drsuapi_DsBindInfoFallBack(_ndr_Fallback, NDR_SCALARS, &r->Fallback)); NDR_CHECK(ndr_push_subcontext_end(ndr, _ndr_Fallback, 0, level)); } break; } } } if (ndr_flags & NDR_BUFFERS) { uint32_t level = ndr_push_get_switch_value(ndr, r); switch (level) { case 24: break; case 28: break; case 48: break; case 52: break; default: break; } } ndr->flags = _flags_save; return NDR_ERR_SUCCESS; }
/* push a gid_t */ _PUBLIC_ enum ndr_err_code ndr_push_gid_t(struct ndr_push *ndr, int ndr_flags, gid_t g) { NDR_PUSH_CHECK_FLAGS(ndr, ndr_flags); return ndr_push_hyper(ndr, NDR_SCALARS, (uint64_t)g); }
/* push a NTTIME */ _PUBLIC_ enum ndr_err_code ndr_push_NTTIME(struct ndr_push *ndr, int ndr_flags, NTTIME t) { NDR_PUSH_CHECK_FLAGS(ndr, ndr_flags); NDR_CHECK(ndr_push_udlong(ndr, ndr_flags, t)); return NDR_ERR_SUCCESS; }
_PUBLIC_ enum ndr_err_code ndr_push_dcerpc_sec_vt_count(struct ndr_push *ndr, int ndr_flags, const struct dcerpc_sec_vt_count *r) { NDR_PUSH_CHECK_FLAGS(ndr, ndr_flags); /* nothing */ return NDR_ERR_SUCCESS; }