|
|
|
## Things to fix and add in ZIO
|
|
|
|
|
|
|
|
### To be done soon
|
|
|
|
|
|
|
|
- Fix the README (it shows the old little-endian flag)
|
|
|
|
|
|
|
|
<!-- end list -->
|
|
|
|
|
|
|
|
- Add version support in zio-dump, so it will refuse to decode unknown
|
|
|
|
control structs
|
|
|
|
|
|
|
|
<!-- end list -->
|
|
|
|
|
|
|
|
- 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
|
|
|
|
|
|
|
|
<!-- end list -->
|
|
|
|
|
|
|
|
- Support for the output data flow (write for data and control)
|
|
|
|
|
|
|
|
<!-- end list -->
|
|
|
|
|
|
|
|
- Support for writing the control block even for input channels
|
|
|
|
|
|
|
|
<!-- end list -->
|
|
|
|
|
|
|
|
- Add attributes for trigger and timer
|
|
|
|
|
|
|
|
<!-- end list -->
|
|
|
|
|
|
|
|
- Fix module usage count, completing the half-implemented mechanism
|
|
|
|
|
|
|
|
<!-- end list -->
|
|
|
|
|
|
|
|
- Solve the problem of sizing a buffer instance
|
|
|
|
|
|
|
|
<!-- end list -->
|
|
|
|
|
|
|
|
- Evaluate a DECLARE\_ZIO\_NAME() so you can name your structures
|
|
|
|
|
|
|
|
<!-- end list -->
|
|
|
|
|
|
|
|
- Make a serious study of all race conditions, especially the problem
|
|
|
|
of output configs where the trigger has not yet fired
|
|
|
|
|
|
|
|
<!-- end list -->
|
|
|
|
|
|
|
|
- Imaplement zio\_sys\_operations (set and get) to factorize
|
|
|
|
attribute-handling code
|
|
|
|
|
|
|
|
<!-- end list -->
|
|
|
|
|
|
|
|
- Check all allocations and deallocations
|
|
|
|
|
|
|
|
<!-- end list -->
|
|
|
|
|
|
|
|
- Make a single zio-core.ko module that includes defualt trigger and
|
|
|
|
buffer
|
|
|
|
|
|
|
|
<!-- end list -->
|
|
|
|
|
|
|
|
- Add more working examples, also fo real harware
|
|
|
|
|
|
|
|
#### New features
|
|
|
|
|
|
|
|
- Implement the bus absrtaction, to split drivers and devices
|
|
|
|
|
|
|
|
<!-- end list -->
|
|
|
|
|
|
|
|
- Define how driver-specific buffers and triggers are represented
|
|
|
|
|
|
|
|
<!-- end list -->
|
|
|
|
|
|
|
|
- Implement an enable/disable policy, so enabling channels may disable
|
|
|
|
competing channels in another cset
|
|
|
|
|
|
|
|
<!-- end list -->
|
|
|
|
|
|
|
|
- Write a kmem\_cache for the control structures
|
|
|
|
|
|
|
|
<!-- end list -->
|
|
|
|
|
|
|
|
- Write tha app-request trigger, that should be the deault one
|
|
|
|
|
|
|
|
<!-- end list -->
|
|
|
|
|
|
|
|
- Write a circular buffer, that frees control structures and recreates
|
|
|
|
them as needed
|
|
|
|
|
|
|
|
<!-- end list -->
|
|
|
|
|
|
|
|
- Think about the details of mmap support and DMA to user space
|
|
|
|
|