Drop unnecessary keywords
Allocate using posix_memalign instead of mmap
Prefix type names
Restructure the code
Update licence notice