1/*
2 * Copyright 2003-2009, Haiku Inc.
3 * Distributed under the terms of the MIT License.
4 *
5 * Authors:
6 *		Ingo Weinhold, bonefish@users.sf.net
7 */
8#ifndef _SYSTEM_DDM_USERLAND_INTERFACE_DEFS_H
9#define _SYSTEM_DDM_USERLAND_INTERFACE_DEFS_H
10
11
12#include <OS.h>
13
14#include <DiskDeviceDefs.h>
15
16
17// userland partition representation
18typedef struct user_partition_data user_partition_data;
19struct user_partition_data {
20	partition_id			id;
21	off_t					offset;
22	off_t					size;
23	off_t					content_size;
24	uint32					block_size;
25	uint32					physical_block_size;
26	uint32					status;
27	uint32					flags;
28	dev_t					volume;
29	int32					index;
30	int32					change_counter;	// TODO: needed?
31	disk_system_id			disk_system;
32	char*					name;
33	char*					content_name;
34	char*					type;
35	char*					content_type;
36	char*					parameters;
37	char*					content_parameters;
38	void*					user_data;
39	int32					child_count;
40	user_partition_data*	children[1];
41};
42
43// userland disk device representation
44typedef struct user_disk_device_data {
45	uint32					device_flags;
46	char*					path;
47	user_partition_data		device_partition_data;
48} user_disk_device_data;
49
50// userland disk system representation
51typedef struct user_disk_system_info {
52	disk_system_id	id;
53	char			name[B_FILE_NAME_LENGTH];
54		// TODO: better B_PATH_NAME_LENGTH?
55	char			short_name[B_OS_NAME_LENGTH];
56	char			pretty_name[B_OS_NAME_LENGTH];
57	uint32			flags;
58} user_disk_system_info;
59
60// userland disk device job representation
61typedef struct user_disk_device_job_info {
62	disk_job_id		id;
63	uint32			type;
64	partition_id	partition;
65	char			description[256];
66} user_disk_device_job_info;
67
68
69#endif	// _SYSTEM_DDM_USERLAND_INTERFACE_DEFS_H
70