File: unpack.c

package info (click to toggle)
libuuid-perl 0.37-1
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid, trixie
  • size: 1,092 kB
  • sloc: ansic: 2,374; perl: 580; makefile: 5
file content (41 lines) | stat: -rw-r--r-- 778 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
#ifdef __cplusplus
extern "C" {
#endif

#include "ulib/unpack.h"

#ifdef __cplusplus
}
#endif

void uu_unpack(const uu_t in, struct_uu_t *out) {
  const U8  *ptr = in;
  U32       tmp;

  tmp = *ptr++;
  tmp = (tmp << 8) | *ptr++;
  tmp = (tmp << 8) | *ptr++;
  tmp = (tmp << 8) | *ptr++;
  out->v1.time_low = tmp;

  tmp = *ptr++;
  tmp = (tmp << 8) | *ptr++;
  out->v1.time_mid = (U16)tmp;

  tmp = *ptr++;
  tmp = (tmp << 8) | *ptr++;
  out->v1.time_high_and_version = (U16)tmp;

  tmp = *ptr++;
  tmp = (tmp << 8) | *ptr++;
  out->v1.clock_seq_and_variant = (U16)tmp;

  out->v1.node[0] = *ptr++;
  out->v1.node[1] = *ptr++;
  out->v1.node[2] = *ptr++;
  out->v1.node[3] = *ptr++;
  out->v1.node[4] = *ptr++;
  out->v1.node[5] = *ptr;
}

/* ex:set ts=2 sw=2 itab=spaces: */