Common Trace Format - initial commit
[babeltrace.git] / include / ctf / ctf-types-bitfield.h
CommitLineData
6dc2ca62
MD
1#ifndef _CTF_TYPES_BITFIELD_H
2#define _CTF_TYPES_BITFIELD_H
3
4/*
5 * Common Trace Format
6 *
7 * Bitfields read/write functions.
8 *
9 * Copyright 2010 - Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
10 *
11 * Dual LGPL v2.1/GPL v2 license.
12 */
13
14#include <ctf/bitfield.h>
15#include <endian.h>
16
17/*
18 * ctf_bitfield_unsigned_read and ctf_bitfield_signed_read are defined by
19 * bitfield.h.
20 *
21 * The write primitives below are provided as wrappers over
22 * ctf_bitfield_write_le and ctf_bitfield_write_be to specify per-byte write of
23 * signed/unsigned integers through a standard API.
24 */
25
26static inline
27size_t ctf_bitfield_unsigned_write(uint8_t *ptr,
28 unsigned long start, unsigned long len,
29 int byte_order, uint64_t v)
30{
31 if (!ptr)
32 goto end;
33 if (byte_order == LITTLE_ENDIAN)
34 ctf_bitfield_write_le(ptr, start, len, v);
35 else
36 ctf_bitfield_write_be(ptr, start, len, v);
37end:
38 return len;
39}
40
41static inline
42size_t ctf_bitfield_signed_write(uint8_t *ptr,
43 unsigned long start, unsigned long len,
44 int byte_order, int64_t v)
45{
46 if (!ptr)
47 goto end;
48 if (byte_order == LITTLE_ENDIAN)
49 ctf_bitfield_write_le(ptr, start, len, v);
50 else
51 ctf_bitfield_write_be(ptr, start, len, v);
52end:
53 return len;
54}
55
56#endif /* _CTF_TYPES_BITFIELD_H */
This page took 0.024088 seconds and 4 git commands to generate.