diff miscutil/bitmanip.c @ 101:d86f866489e9

gsm-amr2efr utility written
author Mychaela Falconia <falcon@freecalypso.org>
date Sun, 27 Nov 2022 05:15:39 +0000
parents frtest/tidsp.c@7960744ba19c
children 41f1ae68d253
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/miscutil/bitmanip.c	Sun Nov 27 05:15:39 2022 +0000
@@ -0,0 +1,24 @@
+/*
+ * This module provides two utility functions that serve as building blocks
+ * for frame bit reordering operations.
+ */
+
+#include <stdint.h>
+
+msb_get_bit(buf, bn)
+	uint8_t *buf;
+{
+	int pos_byte = bn >> 3;
+	int pos_bit  = 7 - (bn & 7);
+
+	return (buf[pos_byte] >> pos_bit) & 1;
+}
+
+msb_set_bit(buf, bn, bit)
+	uint8_t *buf;
+{
+	int pos_byte = bn >> 3;
+	int pos_bit  = 7 - (bn & 7);
+
+	buf[pos_byte] |= (bit << pos_bit);
+}