mirror of
https://github.com/versity/scoutfs.git
synced 2026-01-08 04:55:21 +00:00
Add userspace version of our mode to type
Signed-off-by: Zach Brown <zab@versity.com>
This commit is contained in:
24
utils/src/mode_types.c
Normal file
24
utils/src/mode_types.c
Normal file
@@ -0,0 +1,24 @@
|
||||
#include <unistd.h>
|
||||
#include <sys/stat.h>
|
||||
|
||||
#include "sparse.h"
|
||||
#include "util.h"
|
||||
#include "format.h"
|
||||
#include "mode_types.h"
|
||||
|
||||
unsigned int mode_to_type(mode_t mode)
|
||||
{
|
||||
#define S_SHIFT 12
|
||||
static unsigned char mode_types[S_IFMT >> S_SHIFT] = {
|
||||
[S_IFIFO >> S_SHIFT] = SCOUTFS_DT_FIFO,
|
||||
[S_IFCHR >> S_SHIFT] = SCOUTFS_DT_CHR,
|
||||
[S_IFDIR >> S_SHIFT] = SCOUTFS_DT_DIR,
|
||||
[S_IFBLK >> S_SHIFT] = SCOUTFS_DT_BLK,
|
||||
[S_IFREG >> S_SHIFT] = SCOUTFS_DT_REG,
|
||||
[S_IFLNK >> S_SHIFT] = SCOUTFS_DT_LNK,
|
||||
[S_IFSOCK >> S_SHIFT] = SCOUTFS_DT_SOCK,
|
||||
};
|
||||
|
||||
return mode_types[(mode & S_IFMT) >> S_SHIFT];
|
||||
#undef S_SHIFT
|
||||
}
|
||||
6
utils/src/mode_types.h
Normal file
6
utils/src/mode_types.h
Normal file
@@ -0,0 +1,6 @@
|
||||
#ifndef _MODE_TYPES_H_
|
||||
#define _MODE_TYPES_H_
|
||||
|
||||
unsigned int mode_to_type(mode_t mode);
|
||||
|
||||
#endif
|
||||
Reference in New Issue
Block a user