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