Or perhaps the way to go would to be a versioned ABI. You create version 1 which supports the needs of currently known devices along with needs that near-future devices are likely to have, you expand it (1.1) as additional needs emerge and you add an incompatible version 2 (without dropping version 1) when a generation of devices emerges that are too different to comfortably fit version 1. User space then has a limited number of clearly defined ABIs to support while the kernel developers can concentrate on real usage cases without having to create a needlessly flexible/complex ABI.
Comments and public postings are copyrighted by their creators.
Linux is a registered trademark of Linus Torvalds