** by the MIT License.
*/
#ifndef VIRTUAL_DRIVE_H
#define VIRTUAL_DRIVE_H
#include <Drivers.h>
#define VIRTUAL_DRIVE_DIRECTORY_REL "misc/virtualdrive"
#define VIRTUAL_DRIVE_CONTROL_DEVICE_REL VIRTUAL_DRIVE_DIRECTORY_REL \
"/control"
#define VIRTUAL_DRIVE_DIRECTORY "/dev/" \
VIRTUAL_DRIVE_DIRECTORY_REL
#define VIRTUAL_DRIVE_CONTROL_DEVICE "/dev/" \
VIRTUAL_DRIVE_CONTROL_DEVICE_REL
#define VIRTUAL_DRIVE_IOCTL_BASE (B_DEVICE_OP_CODES_END + 10001)
enum {
VIRTUAL_DRIVE_REGISTER_FILE = VIRTUAL_DRIVE_IOCTL_BASE,
VIRTUAL_DRIVE_UNREGISTER_FILE,
VIRTUAL_DRIVE_GET_INFO,
};
#define VIRTUAL_DRIVE_MAGIC 'VdIn'
typedef struct virtual_drive_info {
uint32 magic;
size_t drive_info_size;
char file_name[B_PATH_NAME_LENGTH];
char device_name[B_PATH_NAME_LENGTH];
device_geometry geometry;
bool use_geometry;
bool halted;
} virtual_drive_info;
#endif