xref: /haiku/src/add-ons/kernel/file_systems/iso9660/iso9660.h (revision d3d8b26997fac34a84981e6d2b649521de2cc45a)
1 /*
2  * Copyright 2002, Tyler Dauwalder.
3  * This file may be used under the terms of the MIT License.
4  */
5 
6 #ifndef _ISO9660_H
7 #define _ISO9660_H
8 
9 /*! \brief Contains all the info of interest pertaining to an
10 	iso9660 volume.
11 
12 	Currently supported character set encoding styles (in decreasing
13 	order of precedence):
14 	- Joliet (UCS-12 (16-bit unicode), which is converted to UTF-8)
15 	- iso9660 (some absurdly tiny character set, but we actually allow UTF-8)
16 */
17 struct iso9660_info {
18 	iso9660_info();
19 	~iso9660_info();
20 
21 	bool is_valid();
22 
23 	void set_iso9660_volume_name(const char *name, uint32 length);
24 	void set_joliet_volume_name(const char *name, uint32 length);
25 
26 	const char* get_preferred_volume_name();
27 
28 	char *iso9660_volume_name;
29 	char *joliet_volume_name;
30 
31 	off_t maxBlocks;
32 
33 	void set_string(char **string, const char *new_string, uint32 new_length);
34 };
35 
36 status_t iso9660_fs_identify(int deviceFD, iso9660_info *info);
37 
38 #endif
39 
40