Things to fix and add in ZIO
To be done soon
- Fix the README (it shows the old little-endian flag)
- Add version support in zio-dump, so it will refuse to decode unknown control structs
- Change the timestamp structures for something better and bump minor version
Fixes and audit For the next "release", which will be beta3, submittable to the kernel
- Define where the control structure is being filled
- Support for the output data flow (write for data and control)
- Support for writing the control block even for input channels
- Add attributes for trigger and timer
- Fix module usage count, completing the half-implemented mechanism
- Solve the problem of sizing a buffer instance
- Evaluate a DECLARE_ZIO_NAME() so you can name your structures
- Make a serious study of all race conditions, especially the problem of output configs where the trigger has not yet fired
- Imaplement zio_sys_operations (set and get) to factorize attribute-handling code
- Check all allocations and deallocations
- Make a single zio-core.ko module that includes defualt trigger and buffer
- Add more working examples, also fo real harware
New features
- Implement the bus absrtaction, to split drivers and devices
- Define how driver-specific buffers and triggers are represented
- Implement an enable/disable policy, so enabling channels may disable competing channels in another cset
- Write a kmem_cache for the control structures
- Write tha app-request trigger, that should be the deault one
- Write a circular buffer, that frees control structures and recreates them as needed
- Think about the details of mmap support and DMA to user space