105 lines
2.9 KiB
C
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 */
|