1 /*
2  * util.h - Header file for util.c
3  *
4  * Copyright (C) 1997 R�gis Duchesne
5  * Copyright (C) 2001 Anton Altaparmakov (AIA)
6  */
7 
8 /* The first 16 inodes correspond to NTFS special files. */
9 typedef enum {
10 	FILE_Mft	= 0,
11 	FILE_MftMirr	= 1,
12 	FILE_LogFile	= 2,
13 	FILE_Volume	= 3,
14 	FILE_AttrDef	= 4,
15 	FILE_root	= 5,
16 	FILE_BitMap	= 6,
17 	FILE_Boot	= 7,
18 	FILE_BadClus	= 8,
19 	FILE_Secure	= 9,
20 	FILE_UpCase	= 10,
21 	FILE_Extend	= 11,
22 	FILE_Reserved12	= 12,
23 	FILE_Reserved13	= 13,
24 	FILE_Reserved14	= 14,
25 	FILE_Reserved15	= 15,
26 } NTFS_SYSTEM_FILES;
27 
28 /* Memory management */
29 void *ntfs_calloc(int size);
30 
31 /* String operations */
32 /*  Copy Unicode <-> ASCII */
33 void ntfs_ascii2uni(short int *to, char *from, int len);
34 
35 /*  Comparison */
36 int ntfs_uni_strncmp(short int* a, short int *b, int n);
37 int ntfs_ua_strncmp(short int* a, char* b, int n);
38 
39 /* Same address space copies */
40 void ntfs_put(ntfs_io *dest, void *src, ntfs_size_t n);
41 void ntfs_get(void* dest, ntfs_io *src, ntfs_size_t n);
42 
43 /* Charset conversion */
44 int ntfs_encodeuni(ntfs_volume *vol, ntfs_u16 *in, int in_len, char **out,
45 		   int *out_len);
46 int ntfs_decodeuni(ntfs_volume *vol, char *in, int in_len, ntfs_u16 **out,
47 		   int *out_len);
48 
49 /* Time conversion */
50 /*  NT <-> Unix */
51 ntfs_time_t ntfs_ntutc2unixutc(ntfs_time64_t ntutc);
52 ntfs_time64_t ntfs_unixutc2ntutc(ntfs_time_t t);
53 
54 /* Attribute names */
55 void ntfs_indexname(char *buf, int type);
56 
57