Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
OpenHarmony
Third Party Musl
提交
5c81b8fe
T
Third Party Musl
项目概览
OpenHarmony
/
Third Party Musl
1 年多 前同步成功
通知
37
Star
125
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
T
Third Party Musl
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
提交
5c81b8fe
编写于
1月 02, 2014
作者:
R
rofl0r
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
add fanotify syscall wrapper and header
上级
7e10f209
变更
2
隐藏空白更改
内联
并排
Showing
2 changed file
with
87 addition
and
0 deletion
+87
-0
include/sys/fanotify.h
include/sys/fanotify.h
+73
-0
src/linux/fanotify.c
src/linux/fanotify.c
+14
-0
未找到文件。
include/sys/fanotify.h
0 → 100644
浏览文件 @
5c81b8fe
#ifndef _FANOTIFY_H
#define _FANOTIFY_H
#ifdef __cplusplus
extern
"C"
{
#endif
struct
fanotify_event_metadata
{
unsigned
event_len
;
unsigned
char
vers
;
unsigned
char
reserved
;
unsigned
short
metadata_len
;
unsigned
long
long
mask
#ifdef __GNUC__
__attribute__
((
__aligned__
(
8
)))
#endif
;
int
fd
;
int
pid
;
};
struct
fanotify_response
{
int
fd
;
unsigned
response
;
};
#define FAN_ACCESS 0x01
#define FAN_MODIFY 0x02
#define FAN_CLOSE_WRITE 0x08
#define FAN_CLOSE_NOWRITE 0x10
#define FAN_OPEN 0x20
#define FAN_Q_OVERFLOW 0x4000
#define FAN_OPEN_PERM 0x10000
#define FAN_ACCESS_PERM 0x20000
#define FAN_ONDIR 0x40000000
#define FAN_EVENT_ON_CHILD 0x08000000
#define FAN_CLOSE (FAN_CLOSE_WRITE | FAN_CLOSE_NOWRITE)
#define FAN_CLOEXEC 0x01
#define FAN_NONBLOCK 0x02
#define FAN_CLASS_NOTIF 0
#define FAN_CLASS_CONTENT 0x04
#define FAN_CLASS_PRE_CONTENT 0x08
#define FAN_ALL_CLASS_BITS (FAN_CLASS_NOTIF | FAN_CLASS_CONTENT | FAN_CLASS_PRE_CONTENT)
#define FAN_UNLIMITED_QUEUE 0x10
#define FAN_UNLIMITED_MARKS 0x20
#define FAN_ALL_INIT_FLAGS (FAN_CLOEXEC | FAN_NONBLOCK | FAN_ALL_CLASS_BITS | FAN_UNLIMITED_QUEUE | FAN_UNLIMITED_MARKS)
#define FAN_MARK_ADD 0x01
#define FAN_MARK_REMOVE 0x02
#define FAN_MARK_DONT_FOLLOW 0x04
#define FAN_MARK_ONLYDIR 0x08
#define FAN_MARK_MOUNT 0x10
#define FAN_MARK_IGNORED_MASK 0x20
#define FAN_MARK_IGNORED_SURV_MODIFY 0x40
#define FAN_MARK_FLUSH 0x80
#define FAN_ALL_MARK_FLAGS (FAN_MARK_ADD | FAN_MARK_REMOVE | FAN_MARK_DONT_FOLLOW | FAN_MARK_ONLYDIR | FAN_MARK_MOUNT | FAN_MARK_IGNORED_MASK | FAN_MARK_IGNORED_SURV_MODIFY | FAN_MARK_FLUSH)
#define FAN_ALL_EVENTS (FAN_ACCESS | FAN_MODIFY | FAN_CLOSE | FAN_OPEN)
#define FAN_ALL_PERM_EVENTS (FAN_OPEN_PERM | FAN_ACCESS_PERM)
#define FAN_ALL_OUTGOING_EVENTS (FAN_ALL_EVENTS | FAN_ALL_PERM_EVENTS | FAN_Q_OVERFLOW)
#define FANOTIFY_METADATA_VERSION 3
#define FAN_ALLOW 0x01
#define FAN_DENY 0x02
#define FAN_NOFD -1
#define FAN_EVENT_METADATA_LEN (sizeof(struct fanotify_event_metadata))
#define FAN_EVENT_NEXT(meta, len) ((len) -= (meta)->event_len, (struct fanotify_event_metadata*)(((char *)(meta)) + (meta)->event_len))
#define FAN_EVENT_OK(meta, len) ((long)(len) >= (long)FAN_EVENT_METADATA_LEN && (long)(meta)->event_len >= (long)FAN_EVENT_METADATA_LEN && (long)(meta)->event_len <= (long)(len))
int
fanotify_init
(
unsigned
,
unsigned
);
int
fanotify_mark
(
int
,
unsigned
,
unsigned
long
long
,
int
,
const
char
*
);
#ifdef __cplusplus
}
#endif
#endif
src/linux/fanotify.c
0 → 100644
浏览文件 @
5c81b8fe
#include "syscall.h"
#include <sys/inotify.h>
int
fanotify_init
(
unsigned
flags
,
unsigned
event_f_flags
)
{
return
syscall
(
SYS_fanotify_init
,
flags
,
event_f_flags
);
}
int
fanotify_mark
(
int
fanotify_fd
,
unsigned
flags
,
unsigned
long
long
mask
,
int
dfd
,
const
char
*
pathname
)
{
return
syscall
(
SYS_fanotify_mark
,
flags
,
__SYSCALL_LL_O
(
mask
),
dfd
,
pathname
);
}
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录