diff --git a/huckleberry.cabal b/huckleberry.cabal
--- a/huckleberry.cabal
+++ b/huckleberry.cabal
@@ -1,5 +1,5 @@
 name:                huckleberry
-version:             0.9.1.0
+version:             0.9.1.1
 synopsis:            Haskell IOT on Intel Edison and other Linux computers.
 description:         Please see README.md
 homepage:            https://github.com/mitsuji/huckleberry#readme
@@ -10,8 +10,11 @@
 copyright:           2016 Takamasa Mitsuji
 category:            System
 build-type:          Simple
--- extra-source-files:
 cabal-version:       >=1.10
+extra-source-files:
+  include/hs_fcntl.h
+  include/hs_i2c.h
+  include/hs_spi.h
 
 library
   hs-source-dirs:      src
diff --git a/include/hs_fcntl.h b/include/hs_fcntl.h
new file mode 100644
--- /dev/null
+++ b/include/hs_fcntl.h
@@ -0,0 +1,10 @@
+#ifndef HS_FCNTL_H
+#define HS_FCNTL_H
+
+#include <linux/types.h>
+
+int o_rdonly();
+int o_wronly();
+int o_rdwr();
+
+#endif
diff --git a/include/hs_i2c.h b/include/hs_i2c.h
new file mode 100644
--- /dev/null
+++ b/include/hs_i2c.h
@@ -0,0 +1,8 @@
+#ifndef HS_I2C_H
+#define HS_I2C_H
+
+#include <linux/types.h>
+
+int i2c_set_slave(int fd, __u8 slave);
+
+#endif
diff --git a/include/hs_spi.h b/include/hs_spi.h
new file mode 100644
--- /dev/null
+++ b/include/hs_spi.h
@@ -0,0 +1,28 @@
+#ifndef HS_SPI_H
+#define HS_SPI_H
+
+#include <linux/types.h>
+#include <stddef.h>
+#include <stdio.h>
+
+unsigned char spi_mode_0();
+unsigned char spi_mode_1();
+unsigned char spi_mode_2();
+unsigned char spi_mode_3();
+
+int spi_transfer_message_1(int fd, void* buff, __u32 buff_len, __u32 speed, __u8 bits);
+
+int spi_set_rd_mode(int fd, __u8 mode);
+int spi_set_wr_mode(int fd, __u8 mode);
+
+int spi_set_rd_lbs_first(int fd, __u8 lbs);
+int spi_set_wr_lbs_first(int fd, __u8 lbs);
+
+int spi_set_rd_bits_per_word(int fd, __u8 bits);
+int spi_set_wr_bits_per_word(int fd, __u8 bits);
+
+int spi_set_rd_max_speed_hz(int fd, __u32 speed);
+int spi_set_wr_max_speed_hz(int fd, __u32 speed);
+
+
+#endif
