コード例 #1
0
ファイル: buffer.c プロジェクト: BackupTheBerlios/ogmp-svn
 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;
 }
コード例 #2
0
ファイル: parse_prs.c プロジェクト: 0x24bin/winexe-1
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;
}