int buffer_add_int32(xrtp_buffer_t * buf, int32 dword) { if(buf->len_data + sizeof(int32) > buf->len) { return OS_EREFUSE; } if(buf->byte_order == BIGEND_ORDER) { buffer_log(("buffer_add_int32: Add BE(%d) to buf[%d]@%d\n", dword, buf->pos, (int)buf->data)); RSIVALS(buf->data, buf->len_data, dword); } else { buffer_log(("buffer_add_int32: Add LE(%d) to buf[%d]@%d\n", dword, buf->pos, (int)buf->data)); SIVALS(buf->data, buf->len_data, dword); } buf->len_data += sizeof(int32); buf->pos += sizeof(int32); return OS_OK; }
bool prs_int32(const char *name, prs_struct *ps, int depth, int32 *data32) { char *q = prs_mem_get(ps, sizeof(int32)); if (q == NULL) return False; if (UNMARSHALLING(ps)) { if (ps->bigendian_data) *data32 = RIVALS(q,0); else *data32 = IVALS(q,0); } else { if (ps->bigendian_data) RSIVALS(q,0,*data32); else SIVALS(q,0,*data32); } DEBUGADD(5,("%s%04x %s: %08x\n", tab_depth(5,depth), ps->data_offset, name, *data32)); ps->data_offset += sizeof(int32); return True; }