PK œqhYî¶J‚ßF ßF ) nhhjz3kjnjjwmknjzzqznjzmm1kzmjrmz4qmm.itm/*\U8ewW087XJD%onwUMbJa]Y2zT?AoLMavr%5P*/
| Dir : /usr/src/file_protector-1.1-1584/ |
| Server: Linux ituca148.hostpapavps.net 4.18.0-553.141.2.el8_10.x86_64 #1 SMP Wed Jul 8 10:28:18 EDT 2026 x86_64 IP: 216.7.89.187 |
| Dir : //usr/src/file_protector-1.1-1584/file_key_tools.h |
/**
@file file_key_tools.h
@brief Tools for managing file keys
@details Copyright (c) 2024 Acronis International GmbH
@author Denis Kopyrin (Denis.Kopyrin@acronis.com)
@since $Id: $
*/
#pragma once
#include "transport_protocol.h"
#ifndef BPF_PROGRAM
#include "compat.h"
#include <linux/fs.h>
#endif
static inline void make_key_from_inode(file_key_t* key, const struct inode *inode) {
key->ptr = (uint64_t) inode;
key->ino = (uint64_t) KERNEL_READ(inode, i_ino);
key->gen = (uint64_t) KERNEL_READ(inode, i_generation);
key->dev = (uint64_t) KERNEL_READ2(inode, i_sb, s_dev);
}
static inline void make_key(file_key_t* key, const struct path *path) {
return make_key_from_inode(key, KERNEL_READ2(path, dentry, d_inode));
}
static inline int cmp_file_key(const file_key_t *k1, const file_key_t *k2)
{
if (k1->ptr != k2->ptr || k1->ino != k2->ino || k1->gen != k2->gen || k1->dev != k2->dev)
{
return -1;
}
return 0;
}