+#include "util.h"
+#include "matrix_skel.h"
+
+
+#if (MATRIX_COLS > 16)
+# error "MATRIX_COLS must not exceed 16"
+#endif
+#if (MATRIX_ROWS > 255)
+# error "MATRIX_ROWS must not exceed 255"
+#endif
+
+
+// matrix state buffer(1:on, 0:off)
+#if (MATRIX_COLS <= 8)
+static uint8_t *matrix;
+static uint8_t *matrix_prev;
+static uint8_t _matrix0[MATRIX_ROWS];
+static uint8_t _matrix1[MATRIX_ROWS];
+#else
+static uint16_t *matrix;
+static uint16_t *matrix_prev;
+static uint16_t _matrix0[MATRIX_ROWS];
+static uint16_t _matrix1[MATRIX_ROWS];
+#endif
+
+#ifdef MATRIX_HAS_GHOST
+static bool matrix_has_ghost_in_row(uint8_t row);
+#endif
+