On 08/25/11 18:48, Adam Kłobukowski wrote:
Hi
I'd like to propose to modify MiNTLib a little bit.
Currently, we have following file modes defined (from bits/stat.h)
#define __S_IFSOCK<---->0010000>/* Socket. */
#define>__S_IFCHR<----->0020000>/* Character device. */
#define>__S_IFDIR<----->0040000>/* Directory. */
#define __S_IFBLK<----->0060000>/* Block device. */
#define>__S_IFREG<----->0100000>/* Regular file. */
#define __S_IFIFO<----->0120000>/* FIFO. */
#define __S_IFMEM<----->0140000 /* memory region or process */
#define>__S_IFLNK<----->0160000>/* Symbolic link. */
Those values come directly from kernel (Fxattr())
Unfortunately, modern unices (Linux most notably) define they a bit
different:
* File types. */
#define>__S_IFIFO<----->0010000>/* FIFO. */
#define>__S_IFCHR<----->0020000>/* Character device. */
#define>__S_IFDIR<----->0040000>/* Directory. */
#define>__S_IFBLK<----->0060000>/* Block device. */
#define>__S_IFREG<----->0100000>/* Regular file. */
#define>__S_IFLNK<----->0120000>/* Symbolic link. */
#define>__S_IFSOCK<---->0140000>/* Socket. */
I propose to bring our definition on par with Linux definition. This
will ease porting software.
Now, The Plan:
- we can't change kernel definition obiviously, so it stays the same,
nothing breaks
- we benefit from static linking of out libraries. I'll add simple
wrapper function to translate from kernel values to new MiNTLib
values. The overhead should not be noticeable. This should only matter
for stat() and friends, but I'll make a through search to be sure.
Anyone against?
I brought this up a little while ago. Might want to check the archives.
Alan.