1 /*
2  * The Sleuth Kit
3  *
4  * Brian Carrier [carrier <at> sleuthkit [dot] org]
5  * Copyright (c) 2003-2011 Brian Carrier.  All rights reserved
6  *
7  * This software is distributed under the Common Public License 1.0
8  */
9 
10 /**
11  * \file tsk_vs_i.h
12  * Contains the internal library definitions for the volume system functions.  This should
13  * be included by the code in the volume system library.
14  */
15 #ifndef _TSK_VS_I_H
16 #define _TSK_VS_I_H
17 
18 // Include the other internal TSK header files
19 #include "tsk/base/tsk_base_i.h"
20 #include "tsk/img/tsk_img_i.h"
21 
22 // include the external vs header file
23 #include "tsk_vs.h"
24 
25 #include <sys/types.h>
26 
27 extern TSK_VS_INFO *tsk_vs_dos_open(TSK_IMG_INFO *, TSK_DADDR_T, uint8_t);
28 extern TSK_VS_INFO *tsk_vs_mac_open(TSK_IMG_INFO *, TSK_DADDR_T);
29 extern TSK_VS_INFO *tsk_vs_bsd_open(TSK_IMG_INFO *, TSK_DADDR_T);
30 extern TSK_VS_INFO *tsk_vs_sun_open(TSK_IMG_INFO *, TSK_DADDR_T);
31 extern TSK_VS_INFO *tsk_vs_gpt_open(TSK_IMG_INFO *, TSK_DADDR_T);
32 
33 extern uint8_t tsk_vs_part_unused(TSK_VS_INFO *);
34 extern TSK_VS_PART_INFO *tsk_vs_part_add(TSK_VS_INFO *, TSK_DADDR_T,
35     TSK_DADDR_T, TSK_VS_PART_FLAG_ENUM, char *, int8_t, int8_t);
36 extern void tsk_vs_part_free(TSK_VS_INFO *);
37 
38 // Endian macros - actual functions in misc/
39 #define tsk_vs_guessu16(vs, x, mag)   \
40     tsk_guess_end_u16(&(vs->endian), (x), (mag))
41 
42 #define tsk_vs_guessu32(vs, x, mag)   \
43     tsk_guess_end_u32(&(vs->endian), (x), (mag))
44 
45 #define tsk_vs_guessu64(vs, x, mag)   \
46     tsk_guess_end_u64(&(vs->endian), (x), (mag))
47 
48 #endif
49