summaryrefslogtreecommitdiffstats
path: root/app/ubx.h
diff options
context:
space:
mode:
Diffstat (limited to 'app/ubx.h')
-rw-r--r--app/ubx.h56
1 files changed, 56 insertions, 0 deletions
diff --git a/app/ubx.h b/app/ubx.h
new file mode 100644
index 0000000..44c4782
--- /dev/null
+++ b/app/ubx.h
@@ -0,0 +1,56 @@
+static inline int
+ubx_get_u8 (uint8_t *ptr, uint8_t *v)
+{
+ *v = *ptr;
+ return 1;
+}
+
+static inline int
+ubx_get_u16 (uint8_t *ptr, uint16_t *v)
+{
+ memcpy (v, ptr, sizeof (*v));
+ return sizeof (*v);
+}
+
+static inline int
+ubx_get_u32 (uint8_t *ptr, uint32_t *v)
+{
+ memcpy (v, ptr, sizeof (*v));
+ return sizeof (*v);
+}
+
+static inline int
+ubx_get_i32 (uint8_t *ptr, int32_t *v)
+{
+ memcpy (v, ptr, sizeof (*v));
+ return sizeof (*v);
+}
+
+
+static inline int
+ubx_put_u8 (uint8_t *ptr, uint8_t v)
+{
+ *ptr = v;
+ return sizeof (v);
+}
+
+static inline int
+ubx_put_u16 (uint8_t *ptr, uint16_t v)
+{
+ memcpy (ptr, &v, sizeof (v));
+ return sizeof (v);
+}
+
+static inline int
+ubx_put_u32 (uint8_t *ptr, uint32_t v)
+{
+ memcpy (ptr, &v, sizeof (v));
+ return sizeof (v);
+}
+
+static inline int
+ubx_put_i32 (uint8_t *ptr, int32_t v)
+{
+ memcpy (ptr, &v, sizeof (v));
+ return sizeof (v);
+}