aboutsummaryrefslogtreecommitdiff
path: root/common/8b10b.h
diff options
context:
space:
mode:
authorjaseg <git@jaseg.net>2018-12-23 12:57:40 +0900
committerjaseg <git@jaseg.net>2018-12-23 12:57:40 +0900
commit62389e00fed49b7b89f465c9cd6bb586502331be (patch)
treee38348acaef07b595459057422ee6d92f8cea9c8 /common/8b10b.h
parent468fe59d9747078830dd489668b8c8ee8520b4a5 (diff)
download8seg-62389e00fed49b7b89f465c9cd6bb586502331be.tar.gz
8seg-62389e00fed49b7b89f465c9cd6bb586502331be.tar.bz2
8seg-62389e00fed49b7b89f465c9cd6bb586502331be.zip
ADC working
Diffstat (limited to 'common/8b10b.h')
-rw-r--r--common/8b10b.h42
1 files changed, 42 insertions, 0 deletions
diff --git a/common/8b10b.h b/common/8b10b.h
new file mode 100644
index 0000000..1028210
--- /dev/null
+++ b/common/8b10b.h
@@ -0,0 +1,42 @@
+#ifndef __8B10B_H__
+#define __8B10B_H__
+
+#include <stdint.h>
+#include <stdbool.h>
+#include <errno.h>
+
+enum k_code {
+ K28_0=1, K28_1, K28_2, K28_3,
+ K28_4, K28_5, K28_6, K28_7,
+ K23_7, K27_7, K29_7, K30_7,
+ K_CODES_LAST
+};
+
+enum decoder_return_codes {
+ _K_CODES_LAST = K_CODES_LAST,
+ DECODING_ERROR,
+ DECODING_IN_PROGRESS,
+ DECODER_RETURN_CODE_LAST
+};
+
+struct entry {
+ uint8_t rd_neg, rd_pos, disp;
+};
+
+struct state_8b10b_dec {
+ uint32_t rx;
+ int bit_ctr;
+};
+
+struct state_8b10b_enc {
+ int rd;
+};
+
+void xfr_8b10b_reset(struct state_8b10b_dec *st);
+int xfr_8b10b_feed_bit(struct state_8b10b_dec *st, int bit);
+bool xfr_8b10b_has_sync(struct state_8b10b_dec *st);
+
+void xfr_8b10b_encode_reset(struct state_8b10b_enc *st);
+int xfr_8b10b_encode(struct state_8b10b_enc *st, int data);
+
+#endif