#include "lib/util/util_net.h"
#include "lib/util/debug.h"
#include "lib/util/util.h"
-
-#define NDR_SVAL(ndr, ofs) (NDR_BE(ndr)?RSVAL(ndr->data,ofs):SVAL(ndr->data,ofs))
-#define NDR_IVAL(ndr, ofs) (NDR_BE(ndr)?RIVAL(ndr->data,ofs):IVAL(ndr->data,ofs))
-#define NDR_IVALS(ndr, ofs) (NDR_BE(ndr)?RIVALS(ndr->data,ofs):IVALS(ndr->data,ofs))
-#define NDR_SSVAL(ndr, ofs, v) do { if (NDR_BE(ndr)) { RSSVAL(ndr->data,ofs,v); } else SSVAL(ndr->data,ofs,v); } while (0)
-#define NDR_SIVAL(ndr, ofs, v) do { if (NDR_BE(ndr)) { RSIVAL(ndr->data,ofs,v); } else SIVAL(ndr->data,ofs,v); } while (0)
-#define NDR_SIVALS(ndr, ofs, v) do { if (NDR_BE(ndr)) { RSIVALS(ndr->data,ofs,v); } else SIVALS(ndr->data,ofs,v); } while (0)
-
+#include "lib/util/bytearray.h"
+
+#define NDR_PULL_U16(ndr, ofs) \
+ (NDR_BE(ndr) ? PULL_BE_U16(ndr->data,ofs) : PULL_LE_U16(ndr->data,ofs))
+
+#define NDR_PULL_U32(ndr, ofs) \
+ (NDR_BE(ndr) ? PULL_BE_U32(ndr->data,ofs) : PULL_LE_U32(ndr->data,ofs))
+
+#define NDR_PULL_I32(ndr, ofs) \
+ (int32_t)(NDR_BE(ndr) ? PULL_BE_U32(ndr->data,ofs) : PULL_LE_U32(ndr->data,ofs))
+
+#define NDR_PUSH_U16(ndr, ofs, v) \
+ do { \
+ if (NDR_BE(ndr)) { \
+ PUSH_BE_U16(ndr->data, ofs, v); \
+ } else { \
+ PUSH_LE_U16(ndr->data, ofs, v); \
+ } \
+ } while (0)
+
+#define NDR_PUSH_U32(ndr, ofs, v) \
+ do { \
+ if (NDR_BE(ndr)) { \
+ PUSH_BE_U32(ndr->data, ofs, v); \
+ } else { \
+ PUSH_LE_U32(ndr->data, ofs, v); \
+ } \
+ } while (0)
+
+#define NDR_PUSH_I32(ndr, ofs, v) \
+ do { \
+ if (NDR_BE(ndr)) { \
+ PUSH_BE_U32(ndr->data, ofs, v); \
+ } else { \
+ PUSH_LE_U32(ndr->data, ofs, v); \
+ } \
+ } while (0)
static void ndr_dump_data(struct ndr_print *ndr, const uint8_t *buf, int len);
{
NDR_PULL_CHECK_FLAGS(ndr, ndr_flags);
NDR_PULL_NEED_BYTES(ndr, 1);
- *v = (int8_t)CVAL(ndr->data, ndr->offset);
+ *v = (int8_t)PULL_BE_U8(ndr->data, ndr->offset);
ndr->offset += 1;
return NDR_ERR_SUCCESS;
}
{
NDR_PULL_CHECK_FLAGS(ndr, ndr_flags);
NDR_PULL_NEED_BYTES(ndr, 1);
- *v = CVAL(ndr->data, ndr->offset);
+ *v = PULL_BE_U8(ndr->data, ndr->offset);
ndr->offset += 1;
return NDR_ERR_SUCCESS;
}
NDR_PULL_CHECK_FLAGS(ndr, ndr_flags);
NDR_PULL_ALIGN(ndr, 2);
NDR_PULL_NEED_BYTES(ndr, 2);
- *v = (uint16_t)NDR_SVAL(ndr, ndr->offset);
+ *v = (uint16_t)NDR_PULL_U16(ndr, ndr->offset);
ndr->offset += 2;
return NDR_ERR_SUCCESS;
}
NDR_PULL_CHECK_FLAGS(ndr, ndr_flags);
NDR_PULL_ALIGN(ndr, 2);
NDR_PULL_NEED_BYTES(ndr, 2);
- *v = NDR_SVAL(ndr, ndr->offset);
+ *v = NDR_PULL_U16(ndr, ndr->offset);
ndr->offset += 2;
return NDR_ERR_SUCCESS;
}
NDR_PULL_CHECK_FLAGS(ndr, ndr_flags);
NDR_PULL_ALIGN(ndr, 4);
NDR_PULL_NEED_BYTES(ndr, 4);
- *v = NDR_IVALS(ndr, ndr->offset);
+ *v = NDR_PULL_I32(ndr, ndr->offset);
ndr->offset += 4;
return NDR_ERR_SUCCESS;
}
NDR_PULL_CHECK_FLAGS(ndr, ndr_flags);
NDR_PULL_ALIGN(ndr, 4);
NDR_PULL_NEED_BYTES(ndr, 4);
- *v = NDR_IVAL(ndr, ndr->offset);
+ *v = NDR_PULL_U32(ndr, ndr->offset);
ndr->offset += 4;
return NDR_ERR_SUCCESS;
}
NDR_PULL_CHECK_FLAGS(ndr, ndr_flags);
NDR_PULL_ALIGN(ndr, 4);
NDR_PULL_NEED_BYTES(ndr, 8);
- *v = NDR_IVAL(ndr, ndr->offset);
- *v |= (uint64_t)(NDR_IVAL(ndr, ndr->offset+4)) << 32;
+ *v = NDR_PULL_U32(ndr, ndr->offset);
+ *v |= (uint64_t)(NDR_PULL_U32(ndr, ndr->offset+4)) << 32;
ndr->offset += 8;
return NDR_ERR_SUCCESS;
}
NDR_PULL_CHECK_FLAGS(ndr, ndr_flags);
NDR_PULL_ALIGN(ndr, 4);
NDR_PULL_NEED_BYTES(ndr, 8);
- *v = ((uint64_t)NDR_IVAL(ndr, ndr->offset)) << 32;
- *v |= NDR_IVAL(ndr, ndr->offset+4);
+ *v = ((uint64_t)NDR_PULL_U32(ndr, ndr->offset)) << 32;
+ *v |= NDR_PULL_U32(ndr, ndr->offset+4);
ndr->offset += 8;
return NDR_ERR_SUCCESS;
}
{
NDR_PUSH_CHECK_FLAGS(ndr, ndr_flags);
NDR_PUSH_NEED_BYTES(ndr, 1);
- SCVAL(ndr->data, ndr->offset, (uint8_t)v);
+ PUSH_BE_U8(ndr->data, ndr->offset, (uint8_t)v);
ndr->offset += 1;
return NDR_ERR_SUCCESS;
}
{
NDR_PUSH_CHECK_FLAGS(ndr, ndr_flags);
NDR_PUSH_NEED_BYTES(ndr, 1);
- SCVAL(ndr->data, ndr->offset, v);
+ PUSH_BE_U8(ndr->data, ndr->offset, v);
ndr->offset += 1;
return NDR_ERR_SUCCESS;
}
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_PUSH_U16(ndr, ndr->offset, (uint16_t)v);
ndr->offset += 2;
return NDR_ERR_SUCCESS;
}
NDR_PUSH_CHECK_FLAGS(ndr, ndr_flags);
NDR_PUSH_ALIGN(ndr, 2);
NDR_PUSH_NEED_BYTES(ndr, 2);
- NDR_SSVAL(ndr, ndr->offset, v);
+ NDR_PUSH_U16(ndr, ndr->offset, v);
ndr->offset += 2;
return NDR_ERR_SUCCESS;
}
NDR_PUSH_CHECK_FLAGS(ndr, ndr_flags);
NDR_PUSH_ALIGN(ndr, 4);
NDR_PUSH_NEED_BYTES(ndr, 4);
- NDR_SIVALS(ndr, ndr->offset, v);
+ NDR_PUSH_I32(ndr, ndr->offset, v);
ndr->offset += 4;
return NDR_ERR_SUCCESS;
}
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_PUSH_U32(ndr, ndr->offset, v);
ndr->offset += 4;
return NDR_ERR_SUCCESS;
}
NDR_PUSH_CHECK_FLAGS(ndr, ndr_flags);
NDR_PUSH_ALIGN(ndr, 4);
NDR_PUSH_NEED_BYTES(ndr, 8);
- NDR_SIVAL(ndr, ndr->offset, (v & 0xFFFFFFFF));
- NDR_SIVAL(ndr, ndr->offset+4, (v>>32));
+ NDR_PUSH_U32(ndr, ndr->offset, (v & 0xFFFFFFFF));
+ NDR_PUSH_U32(ndr, ndr->offset+4, (v>>32));
ndr->offset += 8;
return NDR_ERR_SUCCESS;
}
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_PUSH_U32(ndr, ndr->offset, (v>>32));
+ NDR_PUSH_U32(ndr, ndr->offset+4, (v & 0xFFFFFFFF));
ndr->offset += 8;
return NDR_ERR_SUCCESS;
}