Files
mars-nwe/include/nwnss/internal/NssPageRuntime.h
2026-06-19 09:02:56 +02:00

105 lines
2.9 KiB
C

#ifndef NSS_INTERNAL_PAGE_RUNTIME_H
#define NSS_INTERNAL_PAGE_RUNTIME_H
#if defined(NSS_USERSPACE)
#include <stddef.h>
#include <sys/sysinfo.h>
struct page {
void *data;
};
struct super_block {
void *s_fs_info;
};
struct NssRuntimeTime_s {
long tv_sec;
long tv_nsec;
};
struct inode {
void *i_mapping;
struct super_block *i_sb;
unsigned long i_ino;
void *i_private;
long i_mode;
long i_uid;
struct NssRuntimeTime_s i_atime;
struct NssRuntimeTime_s i_ctime;
struct NssRuntimeTime_s i_mtime;
};
struct dentry {
struct inode *d_inode;
};
typedef struct NssRuntimeKmemCache_s {
size_t objectSize;
} kmem_cache_t;
#ifndef SLAB_KERNEL
#define SLAB_KERNEL 0
#endif
#ifndef GFP_HIGHUSER
#define GFP_HIGHUSER 0
#endif
#ifndef GFP_KERNEL
#define GFP_KERNEL 0
#endif
#ifndef __cacheline_aligned_in_smp
#define __cacheline_aligned_in_smp
#endif
#ifndef KM_USER0
#define KM_USER0 0
#endif
#ifndef KM_USER1
#define KM_USER1 1
#endif
kmem_cache_t *NssRuntimeKmemCacheCreate(const char *name,
size_t objectSize,
size_t align,
unsigned long flags,
void *ctor,
void *dtor);
void *NssRuntimeKmemCacheAlloc(kmem_cache_t *cache, int flags);
void NssRuntimeKmemCacheFree(kmem_cache_t *cache, void *object);
void NssRuntimeKmemCacheDestroy(kmem_cache_t *cache);
struct page *NssRuntimeAllocPage(int flags);
void NssRuntimeFreePage(struct page *page);
void *NssRuntimeKmapAtomic(struct page *page, int kmType);
void NssRuntimeKunmapAtomic(void *addr, int kmType);
struct page *NssRuntimeFindGetPage(void *mapping, unsigned long index);
struct page *NssRuntimeGrabCachePage(void *mapping, unsigned long index);
void NssRuntimeSiMeminfo(struct sysinfo *si);
#define kmem_cache_create(_name, _size, _align, _flags, _ctor, _dtor) \
NssRuntimeKmemCacheCreate((_name), (_size), (_align), (_flags), \
(_ctor), (_dtor))
#define kmem_cache_alloc(_cache, _flags) \
NssRuntimeKmemCacheAlloc((_cache), (_flags))
#define kmem_cache_free(_cache, _object) \
NssRuntimeKmemCacheFree((_cache), (_object))
#define kmem_cache_destroy(_cache) NssRuntimeKmemCacheDestroy((_cache))
#define kmalloc(_size, _flags) zalloc((_size))
#define alloc_page(_flags) NssRuntimeAllocPage((_flags))
#define __free_page(_page) NssRuntimeFreePage((_page))
#define PageHighMem(_page) TRUE
#define kmap_atomic(_page, _kmType) NssRuntimeKmapAtomic((_page), (_kmType))
#define kunmap_atomic(_addr, _kmType) NssRuntimeKunmapAtomic((_addr), (_kmType))
#define find_get_page(_mapping, _index) NssRuntimeFindGetPage((_mapping), (_index))
#define grab_cache_page(_mapping, _index) NssRuntimeGrabCachePage((_mapping), (_index))
#define invalidate_inode_pages(_mapping) ((void)(_mapping))
#define mark_page_accessed(_page) ((void)(_page))
#define page_cache_release(_page) ((void)(_page))
#define unlock_page(_page) ((void)(_page))
#define si_meminfo(_si) NssRuntimeSiMeminfo((_si))
#endif /* NSS_USERSPACE */
#endif /* NSS_INTERNAL_PAGE_RUNTIME_H */