|
| 1 | +/* SPDX-License-Identifier: GPL-2.0 */ |
| 2 | +/* |
| 3 | + * |
| 4 | + * Copyright (C) 2019-2021 Paragon Software GmbH, All rights reserved. |
| 5 | + * |
| 6 | + * useful functions for debuging |
| 7 | + */ |
| 8 | + |
| 9 | +// clang-format off |
| 10 | +#ifndef Add2Ptr |
| 11 | +#define Add2Ptr(P, I) ((void *)((u8 *)(P) + (I))) |
| 12 | +#define PtrOffset(B, O) ((size_t)((size_t)(O) - (size_t)(B))) |
| 13 | +#endif |
| 14 | + |
| 15 | +#define QuadAlign(n) (((n) + 7u) & (~7u)) |
| 16 | +#define IsQuadAligned(n) (!((size_t)(n)&7u)) |
| 17 | +#define Quad2Align(n) (((n) + 15u) & (~15u)) |
| 18 | +#define IsQuad2Aligned(n) (!((size_t)(n)&15u)) |
| 19 | +#define Quad4Align(n) (((n) + 31u) & (~31u)) |
| 20 | +#define IsSizeTAligned(n) (!((size_t)(n) & (sizeof(size_t) - 1))) |
| 21 | +#define DwordAlign(n) (((n) + 3u) & (~3u)) |
| 22 | +#define IsDwordAligned(n) (!((size_t)(n)&3u)) |
| 23 | +#define WordAlign(n) (((n) + 1u) & (~1u)) |
| 24 | +#define IsWordAligned(n) (!((size_t)(n)&1u)) |
| 25 | + |
| 26 | +#ifdef CONFIG_PRINTK |
| 27 | +__printf(2, 3) |
| 28 | +void ntfs_printk(const struct super_block *sb, const char *fmt, ...); |
| 29 | +__printf(2, 3) |
| 30 | +void ntfs_inode_printk(struct inode *inode, const char *fmt, ...); |
| 31 | +#else |
| 32 | +static inline __printf(2, 3) |
| 33 | +void ntfs_printk(const struct super_block *sb, const char *fmt, ...) |
| 34 | +{ |
| 35 | +} |
| 36 | + |
| 37 | +static inline __printf(2, 3) |
| 38 | +void ntfs_inode_printk(struct inode *inode, const char *fmt, ...) |
| 39 | +{ |
| 40 | +} |
| 41 | +#endif |
| 42 | + |
| 43 | +/* |
| 44 | + * Logging macros ( thanks Joe Perches <[email protected]> for implementation ) |
| 45 | + */ |
| 46 | + |
| 47 | +#define ntfs_err(sb, fmt, ...) ntfs_printk(sb, KERN_ERR fmt, ##__VA_ARGS__) |
| 48 | +#define ntfs_warn(sb, fmt, ...) ntfs_printk(sb, KERN_WARNING fmt, ##__VA_ARGS__) |
| 49 | +#define ntfs_info(sb, fmt, ...) ntfs_printk(sb, KERN_INFO fmt, ##__VA_ARGS__) |
| 50 | +#define ntfs_notice(sb, fmt, ...) \ |
| 51 | + ntfs_printk(sb, KERN_NOTICE fmt, ##__VA_ARGS__) |
| 52 | + |
| 53 | +#define ntfs_inode_err(inode, fmt, ...) \ |
| 54 | + ntfs_inode_printk(inode, KERN_ERR fmt, ##__VA_ARGS__) |
| 55 | +#define ntfs_inode_warn(inode, fmt, ...) \ |
| 56 | + ntfs_inode_printk(inode, KERN_WARNING fmt, ##__VA_ARGS__) |
| 57 | + |
| 58 | +#define ntfs_malloc(s) kmalloc(s, GFP_NOFS) |
| 59 | +#define ntfs_zalloc(s) kzalloc(s, GFP_NOFS) |
| 60 | +#define ntfs_vmalloc(s) kvmalloc(s, GFP_KERNEL) |
| 61 | +#define ntfs_free(p) kfree(p) |
| 62 | +#define ntfs_vfree(p) kvfree(p) |
| 63 | +#define ntfs_memdup(src, len) kmemdup(src, len, GFP_NOFS) |
| 64 | +// clang-format on |
0 commit comments