"Andrew Bachmann" <shatty@xxxxxxxxxxxxx> wrote: > While going through the posix headers I was fairly distressed to see > the > extent to which OS.h has been inherited, primarily because of its > inclusion > in sys/socketvar.h. It can not be removed from sys/socketvar.h > because > sys/socketvar.h uses semaphores. Yes, as Philippe already pointed out, that file doesn't belong in a public place - problem solved. > I would like to float a proposal to move some subparts of OS.h into > separate files that can be included directly. (and would also be > included > by OS.h, of course) For example, perhaps these could be together in > a > header, (KernelTypes.h?) preferably defined in terms of <sys/types.h> > > instead of SupportDefs.h: > > typedef int32 area_id; > typedef int32 port_id; > typedef int32 sem_id; > typedef int32 team_id; > typedef int32 thread_id; Dunno how useful that is - if you are going to have sems and ports in your structures, you may want to use the corresponding functions as well. Do we have to do this now? At least, I never had many issues with it when porting software, only "bool" was problematic once (but that could be solved as well). Anyway, there is at least one possible problem I am not so happy about with your latest changes: # ifndef _STDDEF_H /* This is what GCC defines */ # include_next <stddef.h> # endif /* _STDDEF_H */ That's what BeOS stddef.h header looks like. stddef.h is part of the GCC distribution, and I think we should use that one as well. I haven't tried building the tree on other platforms since you made your changes, but I am pretty sure at least glibc doesn't like them (and that one alone is worth keeping the BeOS way). Adios... Axel.