mirror of
https://github.com/volatilityfoundation/volatility
synced 2026-06-08 18:04:46 +00:00
136 lines
3.7 KiB
C
136 lines
3.7 KiB
C
/*
|
|
This module does absolutely nothings at all. We just build it with debugging
|
|
symbols and then read the DWARF symbols from it.
|
|
*/
|
|
#include <linux/module.h>
|
|
|
|
#include <linux/fs_struct.h>
|
|
#include <linux/fs.h>
|
|
#include <linux/proc_fs.h>
|
|
#include <linux/utsname.h>
|
|
#include <net/tcp.h>
|
|
#include <net/route.h>
|
|
#include <net/udp.h>
|
|
#include <asm/alternative.h>
|
|
#include <linux/mount.h>
|
|
#include <linux/inetdevice.h>
|
|
#include <linux/fdtable.h>
|
|
#include <net/ip_fib.h>
|
|
#include <net/af_unix.h>
|
|
#include <linux/pid.h>
|
|
#include <linux/pid_namespace.h>
|
|
#include <linux/radix-tree.h>
|
|
#include <linux/netfilter.h>
|
|
#include <linux/netfilter/x_tables.h>
|
|
|
|
struct uts_namespace uts_namespace;
|
|
struct sock sock;
|
|
struct inet_sock inet_sock;
|
|
struct vfsmount vfsmount;
|
|
struct in_device in_device;
|
|
struct fib_table fib_table;
|
|
struct unix_sock unix_sock;
|
|
struct pid pid;
|
|
struct pid_namespace pid_namespace;
|
|
struct radix_tree_root radix_tree_root;
|
|
struct nf_hook_ops nf_hook_ops;
|
|
struct nf_sockopt_ops nf_sockopt_ops;
|
|
struct xt_table xt_table;
|
|
|
|
/********************************************************************
|
|
The following structs are not defined in headers, so we cant import
|
|
them. Hopefully they dont change too much.
|
|
*********************************************************************/
|
|
|
|
#include <net/net_namespace.h>
|
|
#include <net/ip.h>
|
|
#include <net/protocol.h>
|
|
#include <net/sock.h>
|
|
#include <net/ip_fib.h>
|
|
#include <linux/compiler.h>
|
|
|
|
#define EMBEDDED_HASH_SIZE (L1_CACHE_BYTES / sizeof(struct hlist_head))
|
|
|
|
#define __rcu
|
|
|
|
struct fn_zone {
|
|
struct fn_zone *fz_next; /* Next not empty zone */
|
|
struct hlist_head *fz_hash; /* Hash table pointer */
|
|
seqlock_t fz_lock;
|
|
u32 fz_hashmask; /* (fz_divisor - 1) */
|
|
u8 fz_order; /* Zone order (0..32) */
|
|
u8 fz_revorder; /* 32 - fz_order */
|
|
__be32 fz_mask; /* inet_make_mask(order) */
|
|
|
|
struct hlist_head fz_embedded_hash[EMBEDDED_HASH_SIZE];
|
|
|
|
int fz_nent; /* Number of entries */
|
|
int fz_divisor; /* Hash size (mask+1) */
|
|
} fn_zone;
|
|
|
|
struct fn_hash {
|
|
struct fn_zone *fn_zones[33];
|
|
struct fn_zone *fn_zone_list;
|
|
} fn_hash;
|
|
|
|
struct fib_alias
|
|
{
|
|
struct list_head fa_list;
|
|
struct fib_info *fa_info;
|
|
u8 fa_tos;
|
|
u8 fa_type;
|
|
u8 fa_scope;
|
|
u8 fa_state;
|
|
#ifdef CONFIG_IP_FIB_TRIE
|
|
struct rcu_head rcu;
|
|
#endif
|
|
};
|
|
|
|
struct fib_node
|
|
{
|
|
struct hlist_node fn_hash;
|
|
struct list_head fn_alias;
|
|
__be32 fn_key;
|
|
struct fib_alias fn_embedded_alias;
|
|
};
|
|
|
|
|
|
struct fib_node fib_node;
|
|
struct fib_alias fib_alias;
|
|
|
|
struct rt_hash_bucket {
|
|
struct rtable __rcu *chain;
|
|
} rt_hash_bucket;
|
|
|
|
|
|
#define RADIX_TREE_MAP_SHIFT (CONFIG_BASE_SMALL ? 4 : 6)
|
|
#define RADIX_TREE_MAP_SIZE (1UL << RADIX_TREE_MAP_SHIFT)
|
|
#define RADIX_TREE_MAP_MASK (RADIX_TREE_MAP_SIZE-1)
|
|
#define RADIX_TREE_TAG_LONGS ((RADIX_TREE_MAP_SIZE + BITS_PER_LONG - 1) / BITS_PER_LONG)
|
|
|
|
struct radix_tree_node {
|
|
unsigned int height; /* Height from the bottom */
|
|
unsigned int count;
|
|
struct rcu_head rcu_head;
|
|
void *slots[RADIX_TREE_MAP_SIZE];
|
|
unsigned long tags[RADIX_TREE_MAX_TAGS][RADIX_TREE_TAG_LONGS];
|
|
};
|
|
|
|
|
|
struct module_sect_attr
|
|
{
|
|
struct module_attribute mattr;
|
|
char *name;
|
|
unsigned long address;
|
|
};
|
|
|
|
struct module_sect_attrs
|
|
{
|
|
struct attribute_group grp;
|
|
unsigned int nsections;
|
|
struct module_sect_attr attrs[0];
|
|
};
|
|
|
|
struct module_sect_attrs module_sect_attrs;
|
|
|