[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[MiNT] stat() file mode



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?

AdamK