\x20\40\x20\40
/**
@file
@brief File system events messages
@details Copyright (c) 2017-2021 Acronis International GmbH
@author Mikhail Krivtsov (mikhail.krivtsov@acronis.com)
@since $Id: $
*/
#pragma once
#include <linux/fs.h> // struct file
#include <linux/path.h> // struct path
#include <linux/types.h> // [u]int(8|16|32|64)_t, pid_t
#include "transport_protocol.h"
long fs_event_pre_create(const char *pathname, const struct path *path);
void fs_event_create_ex(long ret_val, const char *pathname, const file_key_t*, unsigned int flags, const struct path *path);
long fs_event_pre_open(const char *filename, unsigned int flags, const struct path *path);
long fs_event_pre_open_ex(const char *filename, const file_key_t*, unsigned int flags, struct path *path);
void fs_event_pre_close_ex(const char *filename, unsigned int flags, const struct path *path, const file_key_t* key);
long fs_event_pre_write_ex(const file_key_t*, unsigned int f_flags, loff_t offset, size_t count, const struct path *path);
void fs_event_pre_read_ex(const file_key_t*, unsigned int f_flags, loff_t offset, size_t count);
long fs_event_pre_rename_ex(const char* oldname, const file_key_t* source_key,
const char* newname, const file_key_t* target_key,
unsigned int flags, const struct path *oldpath, struct path *newpath);
void fs_event_rename(long ret_val, const char* oldname,
const char* newname,
unsigned int flags);
void fs_event_rename_ex(long ret_val, const char* oldname, const file_key_t* source_key,
const char* newname, const file_key_t* target_key,
unsigned int flags, struct path *path);
long fs_event_pre_unlink_ex(const char* pathname, const file_key_t*, int flag, struct path *path);
void fs_event_unlink(long ret_val, const char* pathname, int flag);
void fs_event_unlink_ex(long ret_val, const char* pathname, const file_key_t*, int flag);