The Design and Implementation of the FreeBSD Operating System, Second Edition
Now available: The Design and Implementation of the FreeBSD Operating System (Second Edition)


[ source navigation ] [ diff markup ] [ identifier search ] [ freetext search ] [ file search ] [ list types ] [ track identifier ]

FreeBSD/Linux Kernel Cross Reference
sys/fs/ntfs/support.h

Version: -  FREEBSD  -  FREEBSD-13-STABLE  -  FREEBSD-13-0  -  FREEBSD-12-STABLE  -  FREEBSD-12-0  -  FREEBSD-11-STABLE  -  FREEBSD-11-0  -  FREEBSD-10-STABLE  -  FREEBSD-10-0  -  FREEBSD-9-STABLE  -  FREEBSD-9-0  -  FREEBSD-8-STABLE  -  FREEBSD-8-0  -  FREEBSD-7-STABLE  -  FREEBSD-7-0  -  FREEBSD-6-STABLE  -  FREEBSD-6-0  -  FREEBSD-5-STABLE  -  FREEBSD-5-0  -  FREEBSD-4-STABLE  -  FREEBSD-3-STABLE  -  FREEBSD22  -  l41  -  OPENBSD  -  linux-2.6  -  MK84  -  PLAN9  -  xnu-8792 
SearchContext: -  none  -  3  -  10 

    1 /*
    2  * support.h - Header file for specific support.c
    3  *
    4  * Copyright (C) 1997 Régis Duchesne
    5  * Copyright (c) 2001 Anton Altaparmakov (AIA)
    6  */
    7 
    8 /* Debug levels */
    9 #define DEBUG_OTHER     1
   10 #define DEBUG_MALLOC    2
   11 #define DEBUG_BSD       4
   12 #define DEBUG_LINUX     8
   13 #define DEBUG_DIR1     16
   14 #define DEBUG_DIR2     32
   15 #define DEBUG_DIR3     64
   16 #define DEBUG_FILE1   128
   17 #define DEBUG_FILE2   256
   18 #define DEBUG_FILE3   512
   19 #define DEBUG_NAME1  1024
   20 #define DEBUG_NAME2  2048
   21 
   22 #ifdef DEBUG
   23 void ntfs_debug(int mask, const char *fmt, ...);
   24 #else
   25 #define ntfs_debug(mask, fmt...)        do {} while (0)
   26 #endif
   27 
   28 #include <linux/slab.h>
   29 #include <linux/vmalloc.h>
   30 
   31 #define ntfs_malloc(size)  kmalloc(size, GFP_KERNEL)
   32 
   33 #define ntfs_free(ptr)     kfree(ptr)
   34 
   35 /**
   36  * ntfs_vmalloc - allocate memory in multiples of pages
   37  * @size        number of bytes to allocate
   38  *
   39  * Allocates @size bytes of memory, rounded up to multiples of PAGE_SIZE and
   40  * returns a pointer to the allocated memory.
   41  *
   42  * If there was insufficient memory to complete the request, return NULL.
   43  */
   44 static inline void *ntfs_vmalloc(unsigned long size)
   45 {
   46         if (size <= PAGE_SIZE) {
   47                 if (size) {
   48                         /* kmalloc() has per-CPU caches so if faster for now. */
   49                         return kmalloc(PAGE_SIZE, GFP_NOFS);
   50                         /* return (void *)__get_free_page(GFP_NOFS |
   51                                         __GFP_HIGHMEM); */
   52                 }
   53                 BUG();
   54         }
   55         if (size >> PAGE_SHIFT < num_physpages)
   56                 return __vmalloc(size, GFP_NOFS | __GFP_HIGHMEM, PAGE_KERNEL);
   57         return NULL;
   58 }
   59 
   60 static inline void ntfs_vfree(void *addr)
   61 {
   62         if ((unsigned long)addr < VMALLOC_START) {
   63                 return kfree(addr);
   64                 /* return free_page((unsigned long)addr); */
   65         }
   66         vfree(addr);
   67 }
   68 
   69 void ntfs_bzero(void *s, int n);
   70 
   71 void ntfs_memcpy(void *dest, const void *src, ntfs_size_t n);
   72 
   73 void ntfs_memmove(void *dest, const void *src, ntfs_size_t n);
   74 
   75 void ntfs_error(const char *fmt,...);
   76 
   77 int ntfs_read_mft_record(ntfs_volume *vol, int mftno, char *buf);
   78 
   79 int ntfs_getput_clusters(ntfs_volume *pvol, int cluster, ntfs_size_t offs,
   80                          ntfs_io *buf);
   81 
   82 ntfs_time64_t ntfs_now(void);
   83 
   84 int ntfs_dupuni2map(ntfs_volume *vol, ntfs_u16 *in, int in_len, char **out,
   85                     int *out_len);
   86 
   87 int ntfs_dupmap2uni(ntfs_volume *vol, char* in, int in_len, ntfs_u16 **out,
   88                     int *out_len);
   89 

Cache object: e13563c89537fedb256f81bc4c64f75a


[ source navigation ] [ diff markup ] [ identifier search ] [ freetext search ] [ file search ] [ list types ] [ track identifier ]


This page is part of the FreeBSD/Linux Linux Kernel Cross-Reference, and was automatically generated using a modified version of the LXR engine.