11#ifndef _EXT2_MODULE_HEADER_
12#define _EXT2_MODULE_HEADER_
16#include <linux/types.h>
22#if _WIN32_WINNT <= 0x500
23#define _WIN2K_TARGET_ 1
29# define offsetof(type, member) ((ULONG_PTR)&(((type *)0)->member))
33#define container_of(ptr, type, member) \
34 ((type *)((char *)ptr - (char *)offsetof(type, member)))
42#if (defined(_M_IX86) && (_MSC_FULL_VER > 13009037)) || \
43 ((defined(_M_AMD64) || defined(_M_IA64)) && \
44 (_MSC_FULL_VER > 13009175))
54#pragma intrinsic(_byteswap_ushort)
55#pragma intrinsic(_byteswap_ulong)
56#pragma intrinsic(_byteswap_uint64)
58#define RtlUshortByteSwap(_x) _byteswap_ushort((USHORT)(_x))
59#define RtlUlongByteSwap(_x) _byteswap_ulong((_x))
60#define RtlUlonglongByteSwap(_x) _byteswap_uint64((_x))
85#define __swab16(x) RtlUshortByteSwap(x)
86#define __swab32(x) RtlUlongByteSwap(x)
87#define __swab64(x) RtlUlonglongByteSwap(x)
89#define __constant_swab32 __swab32
90#define __constant_swab64 __swab64
92#define __constant_htonl(x) __constant_swab32((x))
93#define __constant_ntohl(x) __constant_swab32((x))
94#define __constant_htons(x) __constant_swab16((x))
95#define __constant_ntohs(x) __constant_swab16((x))
96#define __constant_cpu_to_le64(x) ((__u64)(x))
97#define __constant_le64_to_cpu(x) ((__u64)(x))
98#define __constant_cpu_to_le32(x) ((__u32)(x))
99#define __constant_le32_to_cpu(x) ((__u32)(x))
100#define __constant_cpu_to_le16(x) ((__u16)(x))
101#define __constant_le16_to_cpu(x) ((__u16)(x))
102#define __constant_cpu_to_be64(x) __constant_swab64((x))
103#define __constant_be64_to_cpu(x) __constant_swab64((x))
104#define __constant_cpu_to_be32(x) __constant_swab32((x))
105#define __constant_be32_to_cpu(x) __constant_swab32((x))
106#define __constant_cpu_to_be16(x) __constant_swab16((x))
107#define __constant_be16_to_cpu(x) __constant_swab16((x))
108#define __cpu_to_le64(x) ((__u64)(x))
109#define __le64_to_cpu(x) ((__u64)(x))
110#define __cpu_to_le32(x) ((__u32)(x))
111#define __le32_to_cpu(x) ((__u32)(x))
112#define __cpu_to_le16(x) ((__u16)(x))
113#define __le16_to_cpu(x) ((__u16)(x))
114#define __cpu_to_be64(x) __swab64((x))
115#define __be64_to_cpu(x) __swab64((x))
116#define __cpu_to_be32(x) __swab32((x))
117#define __be32_to_cpu(x) __swab32((x))
118#define __cpu_to_be16(x) __swab16((x))
119#define __be16_to_cpu(x) __swab16((x))
120#define __cpu_to_le64p(x) (*(__u64*)(x))
121#define __le64_to_cpup(x) (*(__u64*)(x))
122#define __cpu_to_le32p(x) (*(__u32*)(x))
123#define __le32_to_cpup(x) (*(__u32*)(x))
124#define __cpu_to_le16p(x) (*(__u16*)(x))
125#define __le16_to_cpup(x) (*(__u16*)(x))
126#define __cpu_to_be64p(x) __swab64p((x))
127#define __be64_to_cpup(x) __swab64p((x))
128#define __cpu_to_be32p(x) __swab32p((x))
129#define __be32_to_cpup(x) __swab32p((x))
130#define __cpu_to_be16p(x) __swab16p((x))
131#define __be16_to_cpup(x) __swab16p((x))
132#define __cpu_to_le64s(x) ((__s64)(x))
133#define __le64_to_cpus(x) ((__s64)(x))
134#define __cpu_to_le32s(x) ((__s32)(x))
135#define __le32_to_cpus(x) ((__s32)(x))
136#define __cpu_to_le16s(x) ((__s16)(x))
137#define __le16_to_cpus(x) ((__s16)(x))
138#define __cpu_to_be64s(x) __swab64s((x))
139#define __be64_to_cpus(x) __swab64s((x))
140#define __cpu_to_be32s(x) __swab32s((x))
141#define __be32_to_cpus(x) __swab32s((x))
142#define __cpu_to_be16s(x) __swab16s((x))
143#define __be16_to_cpus(x) __swab16s((x))
146#define cpu_to_le64 __cpu_to_le64
147#define le64_to_cpu __le64_to_cpu
148#define cpu_to_le32 __cpu_to_le32
149#define le32_to_cpu __le32_to_cpu
150#define cpu_to_le16 __cpu_to_le16
151#define le16_to_cpu __le16_to_cpu
154#define cpu_to_be64 __cpu_to_be64
155#define be64_to_cpu __be64_to_cpu
156#define cpu_to_be32 __cpu_to_be32
157#define be32_to_cpu __be32_to_cpu
158#define cpu_to_be16 __cpu_to_be16
159#define be16_to_cpu __be16_to_cpu
160#define cpu_to_le64p __cpu_to_le64p
161#define le64_to_cpup __le64_to_cpup
162#define cpu_to_le32p __cpu_to_le32p
163#define le32_to_cpup __le32_to_cpup
164#define cpu_to_le16p __cpu_to_le16p
165#define le16_to_cpup __le16_to_cpup
166#define cpu_to_be64p __cpu_to_be64p
167#define be64_to_cpup __be64_to_cpup
168#define cpu_to_be32p __cpu_to_be32p
169#define be32_to_cpup __be32_to_cpup
170#define cpu_to_be16p __cpu_to_be16p
171#define be16_to_cpup __be16_to_cpup
172#define cpu_to_le64s __cpu_to_le64s
173#define le64_to_cpus __le64_to_cpus
174#define cpu_to_le32s __cpu_to_le32s
175#define le32_to_cpus __le32_to_cpus
176#define cpu_to_le16s __cpu_to_le16s
177#define le16_to_cpus __le16_to_cpus
178#define cpu_to_be64s __cpu_to_be64s
179#define be64_to_cpus __be64_to_cpus
180#define cpu_to_be32s __cpu_to_be32s
181#define be32_to_cpus __be32_to_cpus
182#define cpu_to_be16s __cpu_to_be16s
183#define be16_to_cpus __be16_to_cpus
205#define ntohl(x) ( ( ( ( x ) & 0x000000ff ) << 24 ) | \
206 ( ( ( x ) & 0x0000ff00 ) << 8 ) | \
207 ( ( ( x ) & 0x00ff0000 ) >> 8 ) | \
208 ( ( ( x ) & 0xff000000 ) >> 24 ) )
210#define ntohs(x) ( ( ( ( x ) & 0xff00 ) >> 8 ) | \
211 ( ( ( x ) & 0x00ff ) << 8 ) )
214#define htonl(x) ntohl(x)
215#define htons(x) ntohs(x)
222#define KERN_EMERG "<0>"
223#define KERN_ALERT "<1>"
224#define KERN_CRIT "<2>"
225#define KERN_ERR "<3>"
226#define KERN_WARNING "<4>"
227#define KERN_NOTICE "<5>"
228#define KERN_INFO "<6>"
229#define KERN_DEBUG "<7>"
231#define printk DbgPrint
236#define MAX_ERRNO 4095
237#define IS_ERR_VALUE(x) ((x) >= (unsigned long)-MAX_ERRNO)
255#define BUG_ON(c) assert(!(c))
257#define WARN_ON(c) BUG_ON(c)
269#define THIS_MODULE NULL
270#define MODULE_LICENSE(x)
271#define MODULE_ALIAS_NLS(x)
272#define EXPORT_SYMBOL(x)
275#define try_module_get(x) (TRUE)
278#define module_init(X) int __init module_##X() {return X();}
279#define module_exit(X) void __exit module_##X() {X();}
281#define DECLARE_INIT(X) int __init module_##X(void)
282#define DECLARE_EXIT(X) void __exit module_##X(void)
284#define LOAD_MODULE(X) do { \
288#define UNLOAD_MODULE(X) do { \
292#define LOAD_NLS LOAD_MODULE
293#define UNLOAD_NLS UNLOAD_MODULE
305#define spin_lock_init(sl) KeInitializeSpinLock(&((sl)->lock))
306#define spin_lock(sl) KeAcquireSpinLock(&((sl)->lock), &((sl)->irql))
307#define spin_unlock(sl) KeReleaseSpinLock(&((sl)->lock), (sl)->irql)
308#define spin_lock_irqsave(sl, flags) do {spin_lock(sl); flags=(sl)->irql;} while(0)
309#define spin_unlock_irqrestore(sl, flags) do {ASSERT((KIRQL)(flags)==(sl)->irql); spin_unlock(sl);} while(0)
311#define assert_spin_locked(x) do {} while(0)
321 return spin_is_contended(
lock);
417#define TASK_INTERRUPTIBLE 1
418#define TASK_UNINTERRUPTIBLE 2
449#define yield() do {} while(0)
450#define might_sleep() do {} while(0)
460#define mutex_init(x) ExInitializeFastMutex(&((x)->lock))
461#define mutex_lock(x) ExAcquireFastMutex(&((x)->lock))
462#define mutex_unlock(x) ExReleaseFastMutex(&((x)->lock))
472#define WQ_FLAG_EXCLUSIVE 0x01
473#define WQ_FLAG_AUTO_REMOVAL 0x02
483#define DEFINE_WAIT(name) \
484 wait_queue_t name = (PVOID)wait_queue_create();
504#define is_sync_wait(wait) (TRUE)
505#define set_current_state(state) do {} while(0)
506#define __set_current_state(state) do {} while(0)
536#ifdef CONFIG_TIMER_STATS
574#define page_address(_page) ((char*)_page + sizeof(struct page))
585#define get_page(p) atomic_inc(&(p)->count)
589#define PG_referenced 2
600#define PG_reserved 14
604#ifndef arch_set_page_uptodate
605#define arch_set_page_uptodate(page)
609#define UnlockPage(page) unlock_page(page)
610#define Page_Uptodate(page) test_bit(PG_uptodate, &(page)->flags)
611#define SetPageUptodate(page) \
613 arch_set_page_uptodate(page); \
614 set_bit(PG_uptodate, &(page)->flags); \
616#define ClearPageUptodate(page) clear_bit(PG_uptodate, &(page)->flags)
617#define PageDirty(page) test_bit(PG_dirty, &(page)->flags)
618#define SetPageDirty(page) set_bit(PG_dirty, &(page)->flags)
619#define ClearPageDirty(page) clear_bit(PG_dirty, &(page)->flags)
620#define PageLocked(page) test_bit(PG_locked, &(page)->flags)
621#define LockPage(page) set_bit(PG_locked, &(page)->flags)
622#define TryLockPage(page) test_and_set_bit(PG_locked, &(page)->flags)
623#define PageChecked(page) test_bit(PG_checked, &(page)->flags)
624#define SetPageChecked(page) set_bit(PG_checked, &(page)->flags)
625#define ClearPageChecked(page) clear_bit(PG_checked, &(page)->flags)
626#define PageLaunder(page) test_bit(PG_launder, &(page)->flags)
627#define SetPageLaunder(page) set_bit(PG_launder, &(page)->flags)
628#define ClearPageLaunder(page) clear_bit(PG_launder, &(page)->flags)
629#define ClearPageArch1(page) clear_bit(PG_arch_1, &(page)->flags)
631#define PageError(page) test_bit(PG_error, &(page)->flags)
632#define SetPageError(page) set_bit(PG_error, &(page)->flags)
633#define ClearPageError(page) clear_bit(PG_error, &(page)->flags)
634#define PageReferenced(page) test_bit(PG_referenced, &(page)->flags)
635#define SetPageReferenced(page) set_bit(PG_referenced, &(page)->flags)
636#define ClearPageReferenced(page) clear_bit(PG_referenced, &(page)->flags)
638#define PageActive(page) test_bit(PG_active, &(page)->flags)
639#define SetPageActive(page) set_bit(PG_active, &(page)->flags)
640#define ClearPageActive(page) clear_bit(PG_active, &(page)->flags)
644#define __get_free_page(gfp_mask) \
645 __get_free_pages((gfp_mask),0)
650#define __free_page(page) __free_pages((page), 0)
651#define free_page(addr) free_pages((addr),0)
657#define __GFP_HIGHMEM 0x02
659#define __GFP_WAIT 0x10
660#define __GFP_HIGH 0x20
662#define __GFP_HIGHIO 0x80
663#define __GFP_FS 0x100
665#define GFP_ATOMIC (__GFP_HIGH)
666#define GFP_USER ( __GFP_WAIT | __GFP_IO | __GFP_HIGHIO | __GFP_FS)
667#define GFP_HIGHUSER ( __GFP_WAIT | __GFP_IO | __GFP_HIGHIO | __GFP_FS | __GFP_HIGHMEM)
668#define GFP_KERNEL (__GFP_HIGH | __GFP_WAIT | __GFP_IO | __GFP_HIGHIO | __GFP_FS)
670#define __GFP_NOFAIL 0
705#define PAGE_CACHE_SIZE (PAGE_SIZE)
706#define PAGE_CACHE_SHIFT (12)
707#define MAX_BUF_PER_PAGE (PAGE_CACHE_SIZE / 512)
752#define BUFFER_FNS(bit, name) \
753static inline void set_buffer_##name(struct buffer_head *bh) \
755 set_bit(BH_##bit, &(bh)->b_state); \
757static inline void clear_buffer_##name(struct buffer_head *bh) \
759 clear_bit(BH_##bit, &(bh)->b_state); \
761static inline int buffer_##name(const struct buffer_head *bh) \
763 return test_bit(BH_##bit, &(bh)->b_state); \
769#define TAS_BUFFER_FNS(bit, name) \
770static inline int test_set_buffer_##name(struct buffer_head *bh) \
772 return test_and_set_bit(BH_##bit, &(bh)->b_state); \
774static inline int test_clear_buffer_##name(struct buffer_head *bh) \
776 return test_and_clear_bit(BH_##bit, &(bh)->b_state); \
803#define bh_offset(bh) ((unsigned long)(bh)->b_data & ~PAGE_MASK)
804#define touch_buffer(bh) mark_page_accessed(bh->b_page)
808#define page_buffers(page) \
810 BUG_ON(!PagePrivate(page)), \
811 ((struct buffer_head *)page_private(page)) \
813#define page_has_buffers(page) PagePrivate(page)
869 sector_t bblock,
unsigned blocksize);
889int block_write_full_page(
struct page *
page, get_block_t *get_block,
890 struct writeback_control *wbc);
891int block_read_full_page(
struct page*, get_block_t*);
892int block_write_begin(
struct file *,
struct address_space *,
893 loff_t,
unsigned,
unsigned,
894 struct page **,
void **, get_block_t*);
895int block_write_end(
struct file *,
struct address_space *,
896 loff_t,
unsigned,
unsigned,
897 struct page *,
void *);
898int generic_write_end(
struct file *,
struct address_space *,
899 loff_t,
unsigned,
unsigned,
900 struct page *,
void *);
902int block_prepare_write(
struct page*,
unsigned,
unsigned, get_block_t*);
903int cont_write_begin(
struct file *,
struct address_space *,
loff_t,
904 unsigned,
unsigned,
struct page **,
void **,
906int block_page_mkwrite(
struct vm_area_struct *vma,
struct page *
page,
907 get_block_t get_block);
908sector_t generic_block_bmap(
struct address_space *,
sector_t, get_block_t *);
909int generic_commit_write(
struct file *,
struct page *,
unsigned,
unsigned);
910int block_truncate_page(
struct address_space *,
loff_t, get_block_t *);
911int file_fsync(
struct file *,
struct dentry *,
int);
912int nobh_write_begin(
struct file *,
struct address_space *,
913 loff_t,
unsigned,
unsigned,
914 struct page **,
void **, get_block_t*);
915int nobh_write_end(
struct file *,
struct address_space *,
916 loff_t,
unsigned,
unsigned,
917 struct page *,
void *);
918int nobh_truncate_page(
struct address_space *,
loff_t, get_block_t *);
919int nobh_writepage(
struct page *
page, get_block_t *get_block,
920 struct writeback_control *wbc);
935static inline void attach_page_buffers(
struct page *
page,
938 page_cache_get(
page);
939 SetPagePrivate(
page);
940 set_page_private(
page, (
unsigned long)
head);
1009 set_buffer_mapped(bh);
1031 if (test_set_buffer_locked(bh))
1054#define NLS_MAX_CHARSET_SIZE 6
1085#define jiffies JIFFIES()
1091#ifdef _WIN2K_TARGET_
1109#define ExFreePoolWithTag(_P, _T) ExFreePool(_P)
1125#define kmalloc(size, gfp) Ext2AllocatePool(NonPagedPool, size, 'JBDM')
1126#define kfree(p) Ext2FreePool(p, 'JBDM')
1131#define SLAB_HWCACHE_ALIGN 0x00002000U
1132#define SLAB_KERNEL 0x00000001U
1133#define SLAB_TEMPORARY 0x00000002U
1153 unsigned long flags,
1166#define BDEVNAME_SIZE 32
1179#define READ_SYNC (READ | (1 << BIO_RW_SYNC))
1180#define READ_META (READ | (1 << BIO_RW_META))
1181#define WRITE_SYNC (WRITE | (1 << BIO_RW_SYNC))
1182#define WRITE_BARRIER ((1 << BIO_RW) | (1 << BIO_RW_BARRIER))
1201#define typecheck(x, y) (TRUE)
1203#define time_after(a,b) \
1204 (typecheck(unsigned long, a) && \
1205 typecheck(unsigned long, b) && \
1206 ((long)(b) - (long)(a) < 0))
1207#define time_before(a,b) time_after(b,a)
1209#define time_after_eq(a,b) \
1210 (typecheck(unsigned long, a) && \
1211 typecheck(unsigned long, b) && \
1212 ((long)(a) - (long)(b) >= 0))
1213#define time_before_eq(a,b) time_after_eq(b,a)
1215#define time_in_range(a,b,c) \
1216 (time_after_eq(a,b) && \
1217 time_before_eq(a,c))
1219#define smp_rmb() do {}while(0)
1230#define do_div(n, b) do_div64(&(n), (__u64)b)
std::map< E_MODULE, HMODULE > mod
struct outqueuenode * head
static void atomic_inc(atomic_t volatile *v)
#define RtlUlongByteSwap(_x)
unsigned int(__cdecl typeof(jpeg_read_scanlines))(struct jpeg_decompress_struct *
static DWORD async_read(http_request_t *req, void *buf, DWORD size, DWORD read_pos, DWORD *ret_read)
unsigned __int64 sector_t
unsigned __int64 blkcnt_t
#define ExAllocatePoolWithTag(hernya, size, tag)
GLdouble GLdouble GLdouble GLdouble q
GLboolean GLboolean GLboolean b
GLenum const GLvoid * addr
GLenum GLenum GLenum GLenum mapping
GLuint GLdouble GLdouble GLint GLint order
_Check_return_ unsigned long __cdecl _byteswap_ulong(_In_ unsigned long _Long)
_Check_return_ unsigned short __cdecl _byteswap_ushort(_In_ unsigned short _Short)
_Check_return_ unsigned __int64 __cdecl _byteswap_uint64(_In_ unsigned __int64)
struct buffer_head * __bread(struct block_device *, sector_t block, unsigned size)
VOID Ext2FreePool(IN PVOID P, IN ULONG Tag)
void free_buffer_head(struct buffer_head *bh)
static void bforget(struct buffer_head *bh)
unsigned long __get_free_pages(unsigned int gfp_mask, unsigned int order)
void __free_pages(struct page *page, unsigned int order)
void __bforget(struct buffer_head *)
static void map_bh(struct buffer_head *bh, struct super_block *sb, sector_t block)
struct super_block * freeze_bdev(struct block_device *)
static int spin_needbreak(spinlock_t *lock)
int utf8_wctomb(__u8 *, wchar_t, int)
void create_empty_buffers(struct page *, unsigned long, unsigned long b_state)
kmem_cache_t * kmem_cache_create(const char *name, size_t size, size_t offset, unsigned long flags, kmem_cache_cb_t ctor)
struct buffer_head * extents_bread(struct super_block *sb, sector_t block)
static int test_and_set_bit(int nr, volatile unsigned long *addr)
struct buffer_head * alloc_page_buffers(struct page *page, unsigned long size, int retry)
int register_nls(struct nls_table *)
void prepare_to_wait(wait_queue_head_t *q, wait_queue_t *wait, int state)
void block_invalidatepage(struct page *page, unsigned long offset)
static void put_bh(struct buffer_head *bh)
void unload_nls(struct nls_table *)
void mark_buffer_dirty_inode(struct buffer_head *bh, struct inode *inode)
static struct buffer_head * sb_find_get_block(struct super_block *sb, sector_t block)
static void lock_buffer(struct buffer_head *bh)
static long IS_ERR(const void *ptr)
static int set_bit(int nr, volatile unsigned long *addr)
int try_to_free_buffers(struct page *)
PVOID Ext2AllocatePool(IN POOL_TYPE PoolType, IN SIZE_T NumberOfBytes, IN ULONG Tag)
void set_bh_page(struct buffer_head *bh, struct page *page, unsigned long offset)
int autoremove_wake_function(wait_queue_t *wait, unsigned mode, int sync, void *key)
struct buffer_head * __find_get_block(struct block_device *bdev, sector_t block, unsigned long size)
static void * ERR_PTR(long error)
struct task_struct * current
static long PTR_ERR(const void *ptr)
int inode_has_buffers(struct inode *)
void kmem_cache_free(kmem_cache_t *kc, void *p)
void init_buffer(struct buffer_head *, bh_end_io_t *, void *)
#define TAS_BUFFER_FNS(bit, name)
static __u32 do_div64(__u64 *n, __u64 b)
void __wait_on_buffer(struct buffer_head *)
void invalidate_bdev(struct block_device *)
int block_commit_write(struct page *page, unsigned from, unsigned to)
int utf8_mbstowcs(wchar_t *, const __u8 *, int)
void finish_wait(wait_queue_head_t *q, wait_queue_t *wait)
void unlock_buffer(struct buffer_head *bh)
void free_pages(unsigned long addr, unsigned int order)
int unregister_nls(struct nls_table *)
int submit_bh(int, struct buffer_head *)
void prepare_to_wait_exclusive(wait_queue_head_t *q, wait_queue_t *wait, int state)
int __set_page_dirty_buffers(struct page *page)
struct buffer_head * get_block_bh(struct block_device *bdev, sector_t block, unsigned long size, int zero)
struct __wait_queue * wait_queue_create()
wait_queue_head_t * bh_waitq_head(struct buffer_head *bh)
static void le64_add_cpu(__le64 *var, u64 val)
void extents_brelse(struct buffer_head *bh)
int wake_bit_function(wait_queue_t *wait, unsigned mode, int sync, void *key)
struct buffer_head * __getblk(struct block_device *bdev, sector_t block, unsigned long size)
int bh_uptodate_or_lock(struct buffer_head *bh)
void * kmem_cache_alloc(kmem_cache_t *kc, int flags)
int buffer_heads_over_limit
#define BUFFER_FNS(bit, name)
int fsync_no_super(struct block_device *)
int kmem_cache_destroy(kmem_cache_t *kc)
void write_boundary_block(struct block_device *bdev, sector_t bblock, unsigned blocksize)
void mark_buffer_async_write(struct buffer_head *bh)
int utf8_mbtowc(wchar_t *, const __u8 *, int)
void truncate_inode_pages(struct address_space *, loff_t)
static void get_bh(struct buffer_head *bh)
void * kzalloc(int size, int flags)
static void fini_bh(struct buffer_head **bh)
static void wait_on_buffer(struct buffer_head *bh)
struct nls_table * load_nls(char *)
int sync_mapping_buffers(struct address_space *mapping)
int wake_up(wait_queue_head_t *queue)
int bh_submit_read(struct buffer_head *bh)
static void le16_add_cpu(__le16 *var, u16 val)
void(* kmem_cache_cb_t)(void *, kmem_cache_t *, unsigned long)
static int clear_bit(int nr, volatile unsigned long *addr)
int sync_dirty_buffer(struct buffer_head *bh)
struct _spinlock_t spinlock_t
int fsync_bdev(struct block_device *)
void ll_rw_block(int, int, struct buffer_head *bh[])
static int test_and_clear_bit(int nr, volatile unsigned long *addr)
static struct buffer_head * sb_bread(struct super_block *sb, sector_t block)
void __breadahead(struct block_device *, sector_t block, unsigned int size)
static struct buffer_head * sb_getblk(struct super_block *sb, sector_t block)
void buffer_head_remove(struct block_device *bdev, struct buffer_head *bh)
NTKERNELAPI NTSTATUS ExUuidCreate(OUT UUID *Uuid)
void page_zero_new_buffers(struct page *page, unsigned from, unsigned to)
struct buffer_head * extents_bwrite(struct super_block *sb, sector_t block)
void init_waitqueue_head(wait_queue_head_t *q)
void __lock_buffer(struct buffer_head *bh)
static void brelse(struct buffer_head *bh)
static void le32_add_cpu(__le32 *var, u32 val)
void block_sync_page(struct page *)
int utf8_wcstombs(__u8 *, const wchar_t *, int)
void __brelse(struct buffer_head *)
void unmap_underlying_metadata(struct block_device *bdev, sector_t block)
void invalidate_inode_buffers(struct inode *)
int fsync_super(struct super_block *)
static struct buffer_head * sb_getblk_zero(struct super_block *sb, sector_t block)
static int test_bit(int nr, volatile const unsigned long *addr)
struct nls_table * load_nls_default(void)
int sync_blockdev(struct block_device *bdev)
void wait_queue_destroy(struct __wait_queue *)
struct buffer_head * alloc_buffer_head(gfp_t gfp_flags)
void mark_buffer_dirty(struct buffer_head *bh)
int remove_inode_buffers(struct inode *inode)
void extents_bforget(struct buffer_head *bh)
void invalidate_bh_lrus(void)
void extents_mark_buffer_dirty(struct buffer_head *bh)
void thaw_bdev(struct block_device *, struct super_block *)
void() bh_end_io_t(struct buffer_head *bh, int uptodate)
_In_ UINT _In_ UINT _In_ PNDIS_PACKET Source
ULONG NTAPI KeQueryTimeIncrement(VOID)
#define KeQueryTickCount(CurrentCount)
struct list_head task_list
struct list_head task_list
PARTITION_INFORMATION bd_part
struct rb_root bd_bh_root
kmem_cache_t * bd_bh_cache
struct block_device * b_bdev
kmem_cache_cb_t constructor
unsigned char * charset2upper
unsigned char * charset2lower
int(* char2uni)(const unsigned char *rawstring, int boundlen, wchar_t *uni)
int(* uni2char)(wchar_t uni, unsigned char *out, int boundlen)
void(* function)(unsigned long)
_Must_inspect_result_ _In_ WDFDEVICE _In_ BOOLEAN _In_opt_ PVOID Tag
_Must_inspect_result_ _In_ WDFDEVICE _In_ DEVICE_REGISTRY_PROPERTY _In_ _Strict_type_match_ POOL_TYPE PoolType
_Must_inspect_result_ _In_opt_ PWDF_OBJECT_ATTRIBUTES _Out_ WDFWAITLOCK * Lock
struct LOOKASIDE_ALIGN _NPAGED_LOOKASIDE_LIST NPAGED_LOOKASIDE_LIST
_Must_inspect_result_ typedef _In_ PHYSICAL_ADDRESS _Inout_ PLARGE_INTEGER NumberOfBytes
#define RtlUlonglongByteSwap(_x)
#define RtlUshortByteSwap(_x)
static unsigned int block