00001
00002
00003 #include "includes.h"
00004 #include "librpc/gen_ndr/ndr_notify.h"
00005
00006 _PUBLIC_ NTSTATUS ndr_push_notify_entry(struct ndr_push *ndr, int ndr_flags, const struct notify_entry *r)
00007 {
00008 if (ndr_flags & NDR_SCALARS) {
00009 NDR_CHECK(ndr_push_align(ndr, 8));
00010 NDR_CHECK(ndr_push_server_id(ndr, NDR_SCALARS, &r->server));
00011 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->filter));
00012 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->subdir_filter));
00013 {
00014 uint32_t _flags_save_string = ndr->flags;
00015 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_UTF8|LIBNDR_FLAG_STR_NULLTERM);
00016 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->path));
00017 ndr->flags = _flags_save_string;
00018 }
00019 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->path_len));
00020 NDR_CHECK(ndr_push_pointer(ndr, NDR_SCALARS, r->private_data));
00021 }
00022 if (ndr_flags & NDR_BUFFERS) {
00023 NDR_CHECK(ndr_push_server_id(ndr, NDR_BUFFERS, &r->server));
00024 }
00025 return NT_STATUS_OK;
00026 }
00027
00028 _PUBLIC_ NTSTATUS ndr_pull_notify_entry(struct ndr_pull *ndr, int ndr_flags, struct notify_entry *r)
00029 {
00030 if (ndr_flags & NDR_SCALARS) {
00031 NDR_CHECK(ndr_pull_align(ndr, 8));
00032 NDR_CHECK(ndr_pull_server_id(ndr, NDR_SCALARS, &r->server));
00033 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->filter));
00034 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->subdir_filter));
00035 {
00036 uint32_t _flags_save_string = ndr->flags;
00037 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_UTF8|LIBNDR_FLAG_STR_NULLTERM);
00038 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->path));
00039 ndr->flags = _flags_save_string;
00040 }
00041 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->path_len));
00042 NDR_CHECK(ndr_pull_pointer(ndr, NDR_SCALARS, &r->private_data));
00043 }
00044 if (ndr_flags & NDR_BUFFERS) {
00045 NDR_CHECK(ndr_pull_server_id(ndr, NDR_BUFFERS, &r->server));
00046 }
00047 return NT_STATUS_OK;
00048 }
00049
00050 _PUBLIC_ void ndr_print_notify_entry(struct ndr_print *ndr, const char *name, const struct notify_entry *r)
00051 {
00052 ndr_print_struct(ndr, name, "notify_entry");
00053 ndr->depth++;
00054 ndr_print_server_id(ndr, "server", &r->server);
00055 ndr_print_uint32(ndr, "filter", r->filter);
00056 ndr_print_uint32(ndr, "subdir_filter", r->subdir_filter);
00057 ndr_print_string(ndr, "path", r->path);
00058 ndr_print_uint32(ndr, "path_len", r->path_len);
00059 ndr_print_pointer(ndr, "private_data", r->private_data);
00060 ndr->depth--;
00061 }
00062
00063 NTSTATUS ndr_push_notify_depth(struct ndr_push *ndr, int ndr_flags, const struct notify_depth *r)
00064 {
00065 uint32_t cntr_entries_0;
00066 if (ndr_flags & NDR_SCALARS) {
00067 NDR_CHECK(ndr_push_align(ndr, 8));
00068 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->max_mask));
00069 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->max_mask_subdir));
00070 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->num_entries));
00071 for (cntr_entries_0 = 0; cntr_entries_0 < r->num_entries; cntr_entries_0++) {
00072 NDR_CHECK(ndr_push_notify_entry(ndr, NDR_SCALARS, &r->entries[cntr_entries_0]));
00073 }
00074 }
00075 if (ndr_flags & NDR_BUFFERS) {
00076 for (cntr_entries_0 = 0; cntr_entries_0 < r->num_entries; cntr_entries_0++) {
00077 NDR_CHECK(ndr_push_notify_entry(ndr, NDR_BUFFERS, &r->entries[cntr_entries_0]));
00078 }
00079 }
00080 return NT_STATUS_OK;
00081 }
00082
00083 NTSTATUS ndr_pull_notify_depth(struct ndr_pull *ndr, int ndr_flags, struct notify_depth *r)
00084 {
00085 uint32_t cntr_entries_0;
00086 TALLOC_CTX *_mem_save_entries_0;
00087 if (ndr_flags & NDR_SCALARS) {
00088 NDR_CHECK(ndr_pull_align(ndr, 8));
00089 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->max_mask));
00090 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->max_mask_subdir));
00091 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->num_entries));
00092 NDR_PULL_ALLOC_N(ndr, r->entries, r->num_entries);
00093 _mem_save_entries_0 = NDR_PULL_GET_MEM_CTX(ndr);
00094 NDR_PULL_SET_MEM_CTX(ndr, r->entries, 0);
00095 for (cntr_entries_0 = 0; cntr_entries_0 < r->num_entries; cntr_entries_0++) {
00096 NDR_CHECK(ndr_pull_notify_entry(ndr, NDR_SCALARS, &r->entries[cntr_entries_0]));
00097 }
00098 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_entries_0, 0);
00099 }
00100 if (ndr_flags & NDR_BUFFERS) {
00101 _mem_save_entries_0 = NDR_PULL_GET_MEM_CTX(ndr);
00102 NDR_PULL_SET_MEM_CTX(ndr, r->entries, 0);
00103 for (cntr_entries_0 = 0; cntr_entries_0 < r->num_entries; cntr_entries_0++) {
00104 NDR_CHECK(ndr_pull_notify_entry(ndr, NDR_BUFFERS, &r->entries[cntr_entries_0]));
00105 }
00106 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_entries_0, 0);
00107 }
00108 return NT_STATUS_OK;
00109 }
00110
00111 _PUBLIC_ void ndr_print_notify_depth(struct ndr_print *ndr, const char *name, const struct notify_depth *r)
00112 {
00113 uint32_t cntr_entries_0;
00114 ndr_print_struct(ndr, name, "notify_depth");
00115 ndr->depth++;
00116 ndr_print_uint32(ndr, "max_mask", r->max_mask);
00117 ndr_print_uint32(ndr, "max_mask_subdir", r->max_mask_subdir);
00118 ndr_print_uint32(ndr, "num_entries", r->num_entries);
00119 ndr->print(ndr, "%s: ARRAY(%d)", "entries", r->num_entries);
00120 ndr->depth++;
00121 for (cntr_entries_0=0;cntr_entries_0<r->num_entries;cntr_entries_0++) {
00122 char *idx_0=NULL;
00123 asprintf(&idx_0, "[%d]", cntr_entries_0);
00124 if (idx_0) {
00125 ndr_print_notify_entry(ndr, "entries", &r->entries[cntr_entries_0]);
00126 free(idx_0);
00127 }
00128 }
00129 ndr->depth--;
00130 ndr->depth--;
00131 }
00132
00133 _PUBLIC_ NTSTATUS ndr_push_notify_array(struct ndr_push *ndr, int ndr_flags, const struct notify_array *r)
00134 {
00135 uint32_t cntr_depth_0;
00136 if (ndr_flags & NDR_SCALARS) {
00137 NDR_CHECK(ndr_push_align(ndr, 8));
00138 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->num_depths));
00139 for (cntr_depth_0 = 0; cntr_depth_0 < r->num_depths; cntr_depth_0++) {
00140 NDR_CHECK(ndr_push_notify_depth(ndr, NDR_SCALARS, &r->depth[cntr_depth_0]));
00141 }
00142 }
00143 if (ndr_flags & NDR_BUFFERS) {
00144 for (cntr_depth_0 = 0; cntr_depth_0 < r->num_depths; cntr_depth_0++) {
00145 NDR_CHECK(ndr_push_notify_depth(ndr, NDR_BUFFERS, &r->depth[cntr_depth_0]));
00146 }
00147 }
00148 return NT_STATUS_OK;
00149 }
00150
00151 _PUBLIC_ NTSTATUS ndr_pull_notify_array(struct ndr_pull *ndr, int ndr_flags, struct notify_array *r)
00152 {
00153 uint32_t cntr_depth_0;
00154 TALLOC_CTX *_mem_save_depth_0;
00155 if (ndr_flags & NDR_SCALARS) {
00156 NDR_CHECK(ndr_pull_align(ndr, 8));
00157 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->num_depths));
00158 NDR_PULL_ALLOC_N(ndr, r->depth, r->num_depths);
00159 _mem_save_depth_0 = NDR_PULL_GET_MEM_CTX(ndr);
00160 NDR_PULL_SET_MEM_CTX(ndr, r->depth, 0);
00161 for (cntr_depth_0 = 0; cntr_depth_0 < r->num_depths; cntr_depth_0++) {
00162 NDR_CHECK(ndr_pull_notify_depth(ndr, NDR_SCALARS, &r->depth[cntr_depth_0]));
00163 }
00164 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_depth_0, 0);
00165 }
00166 if (ndr_flags & NDR_BUFFERS) {
00167 _mem_save_depth_0 = NDR_PULL_GET_MEM_CTX(ndr);
00168 NDR_PULL_SET_MEM_CTX(ndr, r->depth, 0);
00169 for (cntr_depth_0 = 0; cntr_depth_0 < r->num_depths; cntr_depth_0++) {
00170 NDR_CHECK(ndr_pull_notify_depth(ndr, NDR_BUFFERS, &r->depth[cntr_depth_0]));
00171 }
00172 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_depth_0, 0);
00173 }
00174 return NT_STATUS_OK;
00175 }
00176
00177 _PUBLIC_ void ndr_print_notify_array(struct ndr_print *ndr, const char *name, const struct notify_array *r)
00178 {
00179 uint32_t cntr_depth_0;
00180 ndr_print_struct(ndr, name, "notify_array");
00181 ndr->depth++;
00182 ndr_print_uint32(ndr, "num_depths", r->num_depths);
00183 ndr->print(ndr, "%s: ARRAY(%d)", "depth", r->num_depths);
00184 ndr->depth++;
00185 for (cntr_depth_0=0;cntr_depth_0<r->num_depths;cntr_depth_0++) {
00186 char *idx_0=NULL;
00187 asprintf(&idx_0, "[%d]", cntr_depth_0);
00188 if (idx_0) {
00189 ndr_print_notify_depth(ndr, "depth", &r->depth[cntr_depth_0]);
00190 free(idx_0);
00191 }
00192 }
00193 ndr->depth--;
00194 ndr->depth--;
00195 }
00196
00197 _PUBLIC_ NTSTATUS ndr_push_notify_event(struct ndr_push *ndr, int ndr_flags, const struct notify_event *r)
00198 {
00199 if (ndr_flags & NDR_SCALARS) {
00200 NDR_CHECK(ndr_push_align(ndr, 8));
00201 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->action));
00202 {
00203 uint32_t _flags_save_string = ndr->flags;
00204 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_UTF8|LIBNDR_FLAG_STR_NULLTERM);
00205 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->path));
00206 ndr->flags = _flags_save_string;
00207 }
00208 NDR_CHECK(ndr_push_pointer(ndr, NDR_SCALARS, r->private_data));
00209 }
00210 if (ndr_flags & NDR_BUFFERS) {
00211 }
00212 return NT_STATUS_OK;
00213 }
00214
00215 _PUBLIC_ NTSTATUS ndr_pull_notify_event(struct ndr_pull *ndr, int ndr_flags, struct notify_event *r)
00216 {
00217 if (ndr_flags & NDR_SCALARS) {
00218 NDR_CHECK(ndr_pull_align(ndr, 8));
00219 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->action));
00220 {
00221 uint32_t _flags_save_string = ndr->flags;
00222 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_UTF8|LIBNDR_FLAG_STR_NULLTERM);
00223 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->path));
00224 ndr->flags = _flags_save_string;
00225 }
00226 NDR_CHECK(ndr_pull_pointer(ndr, NDR_SCALARS, &r->private_data));
00227 }
00228 if (ndr_flags & NDR_BUFFERS) {
00229 }
00230 return NT_STATUS_OK;
00231 }
00232
00233 _PUBLIC_ void ndr_print_notify_event(struct ndr_print *ndr, const char *name, const struct notify_event *r)
00234 {
00235 ndr_print_struct(ndr, name, "notify_event");
00236 ndr->depth++;
00237 ndr_print_uint32(ndr, "action", r->action);
00238 ndr_print_string(ndr, "path", r->path);
00239 ndr_print_pointer(ndr, "private_data", r->private_data);
00240 ndr->depth--;
00241 }
00242