Open justincormack opened 10 years ago
I think one possibility is to split out legacy from modern interfaces, so that largely you are pushed in the direction of a smaller subset.
eg you get clock_nanosleep not nanosleep, epoll/kqueue not select etc, no signals.
ioctl modularity is still unclear though. Maybe you get all the ioctl types if you use ioctl, but can remove completely.
Aside from what is needed for system calls (and maybe splitting these?), the rest of the stuff, which is basically types for ioctl and similar interfaces plus constants needs to be modular, as there are 1000s of headers full of stuff (at least in Linux, NetBSD is smaller).
We also want to be able to generate subsets for particular use cases.