File: //usr/src/file_protector-1.1-1599/network/raw_socket_manager.h
/**
@file raw_socket_manager.h
@brief Manager for RAW and netlink sockets
@details Copyright (c) 2025 Acronis International GmbH
@author Denis Kopyrin (denis.kopyrin@acronis.com)
@since $Id: $
*/
#pragma once
#include <linux/dcache.h>
#include <linux/fs.h>
#ifdef KERNEL_MOCK
#include "mock/mock_net.h"
#endif
#include <linux/net.h>
#include <linux/socket.h>
#include "task_info_map.h"
void raw_socket_manager_init(void);
void raw_socket_manager_activate(void);
void raw_socket_manager_deactivate(void);
// This hook is used to ensure that inode for sb is free'd
void raw_socket_manager_inode_free_security(const struct inode *inode);
// sockets passed here must refer to SOCK_RAW protocol (and probably be not loopback'd)
void raw_socket_manager_will_sniff_recvmsg(task_info_t* task_info, struct socket *sock);
void raw_socket_manager_recvmsg(task_info_t* task_info, struct socket *sock);