Ignore:
Timestamp:
Nov 10, 2018, 2:33:26 PM (6 years ago)
Author:
alain
Message:

Fix various bugs in sys_stat() and sys_mmap() functions.
Improve debug in other functions.

Location:
trunk/kernel/syscalls/shared_include
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • trunk/kernel/syscalls/shared_include/shared_mman.h

    r445 r594  
    4343    MAP_ANON    = 0x00000001,  /*! map an anonymous vseg in local cluster                 */
    4444    MAP_REMOTE  = 0x00000002,  /*! map an anonymous vseg in remote cluster (cxy == fdid)  */
    45     MAP_PRIVATE = 0x00000010,  /*!                                                        */
    46     MAP_SHARED  = 0x00000020,  /*!                                                        */
    47     MAP_FIXED   = 0x00000100,  /*! non supported                                          */
     45    MAP_PRIVATE = 0x00000010,  /*! modifications are private to the calling process       */
     46    MAP_SHARED  = 0x00000020,  /*! modifications are shared                               */
     47    MAP_FIXED   = 0x00000100,  /*! non supported (user defined base address)              */
    4848}
    4949mmap_flags_t;
  • trunk/kernel/syscalls/shared_include/shared_stat.h

    r445 r594  
    3232typedef struct stat
    3333{
    34         unsigned int    dev;        /*! ID of device containing file                             */
    35         unsigned int    inum;       /*! inode number                                             */
    36         unsigned int    mode;       /*! protection                                               */
    37         unsigned int    nlink;      /*! number of hard links                                     */
    38         unsigned int    uid;        /*! user ID of owner                                         */
    39         unsigned int    gid;        /*! group ID of owner                                        */
    40         unsigned int    rdev;       /*! device ID (if special file)                              */
    41         unsigned int    size;       /*! total size, in bytes                                     */
    42         unsigned int    blksize;    /*! blocksize for file system I/O                            */
    43         unsigned int    blocks;     /*! number of 512B blocks allocated                          */
     34        unsigned int    st_dev;     /*! ID of device containing file                         */
     35        unsigned int    st_ino;     /*! inode number                                         */
     36        unsigned int    st_mode;    /*! bit vector defined below                             */
     37        unsigned int    st_nlink;   /*! number of hard links                                 */
     38        unsigned int    st_uid;     /*! user ID of owner                                     */
     39        unsigned int    st_gid;     /*! group ID of owner                                    */
     40        unsigned int    st_rdev;    /*! device ID (if special file)                          */
     41        unsigned int    st_size;    /*! total size, in bytes                                 */
     42        unsigned int    st_blksize; /*! blocksize for file system I/O                        */
     43        unsigned int    st_blocks;  /*! number of allocated blocks                           */
    4444}
    4545stat_t;
    4646
     47/******************************************************************************************
     48 * The st_mode field contains informations on both access rights and file types.
     49 * - access rights (defined by the inode <rights> field) are stored in st_mode[15:0]
     50 * - file types (defined by the inode <type> field) are stored in st_mode[19:16]
     51 * The following macros can be used to extract file type information.
     52 *
     53 * WARNING : these macros must be kept consistent with inode types in <vfs.h> file.
     54 *****************************************************************************************/
     55
     56#define  S_ISREG(x)   ((((x)>>16) & 0xF) == 0)    /*! it is a regular file               */
     57#define  S_ISDIR(x)   ((((x)>>16) & 0xF) == 1)    /*! it is a directory                  */
     58#define  S_ISFIFO(x)  ((((x)>>16) & 0xF) == 2)    /*! it is a named pipe                 */
     59#define  S_ISPIPE(x)  ((((x)>>16) & 0xF) == 3)    /*! it is an anonymous pipe            */
     60#define  S_ISSOCK(x)  ((((x)>>16) & 0xF) == 4)    /*! it is a socket                     */
     61#define  S_ISCHR(x)   ((((x)>>16) & 0xF) == 5)    /*! it is a character device           */
     62#define  S_ISLNK(x)   ((((x)>>16) & 0xF) == 6)    /*! it is a symbolic link              */
     63
    4764#endif /* _STAT_H_ */
Note: See TracChangeset for help on using the changeset viewer.