Files
ternfs-XTXMarkets/kmod/super.h
2025-05-29 13:40:21 +00:00

53 lines
1.0 KiB
C

#ifndef _EGGSFS_SUPER_H
#define _EGGSFS_SUPER_H
#include <linux/inet.h>
#include "net.h"
#include "shuckle.h"
extern int eggsfs_shuckle_refresh_time_jiffies;
extern unsigned int eggsfs_readahead_pages;
// We store addresses as atomics so that we can
// easily refresh them.
struct eggsfs_fs_info {
struct eggsfs_shuckle_addr shuckle_addr;
struct eggsfs_metadata_socket sock;
atomic64_t shard_addrs1[256];
atomic64_t shard_addrs2[256];
atomic64_t cdc_addr1;
atomic64_t cdc_addr2;
atomic64_t capacity;
atomic64_t available;
u64 block_services_last_changed_time;
struct delayed_work shuckle_refresh_work;
kuid_t uid;
kgid_t gid;
umode_t fmask;
umode_t dmask;
};
int __init eggsfs_fs_init(void);
void __cold eggsfs_fs_exit(void);
static inline u64 eggsfs_mk_addr(u32 ip, u16 port) {
return ((u64)port << 32) | (u64)ip;
}
static inline __be32 eggsfs_get_addr_ip(u64 v) {
return htonl(v&((1ull<<32)-1));
}
static inline __be16 eggsfs_get_addr_port(u64 v) {
return htons(v >> 32);
}
#endif