Adding documentation

Adding documentation, component- and sequence diagrams how the driver
library and kernel driver work.

Change-Id: I4e71b5e1f5d926386efe8f103a0f4fbc8636a494
diff --git a/docs/kernel_buffer.puml b/docs/kernel_buffer.puml
new file mode 100644
index 0000000..dc2c744
--- /dev/null
+++ b/docs/kernel_buffer.puml
@@ -0,0 +1,52 @@
+@startuml
+
+skinparam backgroundColor #FEFEFE
+
+box "Application" #0091BD
+participant "main()" as main
+end box
+
+box "Driver library" #00C1DE
+participant "Device" as ddev
+participant "Buffer" as dbuf
+participant "Network" as dnet
+participant "Inference" as dinf
+end box
+
+box "Kernel driver" #7D868C
+participant "Device" as kdev
+participant "Buffer" as kbuf
+participant "Network" as knet
+participant "Inference" as kinf
+end box
+
+activate main
+
+main -> ddev++: Device()
+    note over kdev
+        Open device node
+    end note
+
+    ddev -> kdev++: open(<device node>)
+    return file descriptor
+return
+
+main -> dbuf++: Buffer(device)
+    dbuf -> kdev++: ioctl(BUFFER_CREATE)
+        note over kbuf
+            Create buffer and return file descriptor
+        end note
+
+        kdev -> kbuf++: create()
+        return file descriptor
+    return file descriptor
+
+    note over kbuf
+        Memory map buffer
+    end note
+
+    dbuf -> kbuf++: mmap(file descriptor)
+    return
+return
+
+@enduml