-/*****************************************************************************
- * definitions and macros
- *****************************************************************************/
-#define sc_add(a, b) sc_calc((a), (b), SC_ADD)
-#define sc_sub(a, b) sc_calc((a), (b), SC_SUB)
-#define sc_neg(a) sc_calc((a), NULL, SC_NEG)
-#define sc_and(a, b) sc_calc((a), (b), SC_AND)
-#define sc_or(a, b) sc_calc((a), (b), SC_OR)
-#define sc_xor(a, b) sc_calc((a), (b), SC_XOR)
-#define sc_not(a) sc_calc((a), NULL, SC_NOT)
-#define sc_mul(a, b) sc_calc((a), (b), SC_MUL)
-#define sc_div(a, b) sc_calc((a), (b), SC_DIV)
-#define sc_mod(a, b) sc_calc((a), (b), SC_MOD)
-#define sc_shl(a, b, c, d) sc_bitcalc((a), (b), (c), (d), SC_SHL)
-#define sc_shr(a, b, c, d) sc_bitcalc((a), (b), (c), (d), SC_SHR)
-#define sc_shrs(a, b, c, d) sc_bitcalc((a), (b), (c), (d), SC_SHRS)
-#define sc_rot(a, b, c, d) sc_bitcalc((a), (b), (c), (d), SC_ROT)
-
-#define sc_print_hex(a) sc_print((a), SC_HEX)
-#define sc_print_dec(a) sc_print((a), SC_DEC)
-#define sc_print_okt(a) sc_print((a), SC_OKT)
-#define sc_print_bin(a) sc_print((a), SC_BIN)
-/*****************************************************************************
+/**
+ * buffer = value1 >>u offset
+ */
+void sc_shrI(const void *val1, long shift_cnt, int bitsize, int sign, void *buffer);
+
+/**
+ * buffer = value1 >>u value2
+ */
+void sc_shr(const void *value1, const void *value2, int bitsize, int sign, void *buffer);
+
+/**
+ * buffer = value1 >>s offset
+ */
+void sc_shrsI(const void *val1, long shift_cnt, int bitsize, int sign, void *buffer);
+
+/**
+ * buffer = value1 >>s value2
+ */
+void sc_shrs(const void *value1, const void *value2, int bitsize, int sign, void *buffer);
+
+/**
+ * buffer = value1 <<left>> value2
+ */
+void sc_rotl(const void *value1, const void *value2, int bitsize, int sign, void *buffer);
+
+/**
+ * buffer = 0
+ */
+void sc_zero(void *buffer);
+
+/*