haiku/headers/private/kernel/boot/disk_identifier.h
Axel Dörfler b193fcc716 Some work on the boot disk identification: the kernel_args structure has
now fields that carry information about the boot disk and partition.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@9956 a95241bf-73f2-0310-859d-f6bbb57e9c96
2004-11-15 17:59:15 +00:00

73 lines
1.0 KiB
C

/*
* Copyright 2004, Axel Dörfler, axeld@pinc-software.de.
* Distributed under the terms of the MIT License.
*/
#ifndef KERNEL_BOOT_DISK_IDENTIFIER_H
#define KERNEL_BOOT_DISK_IDENTIFIER_H
#include <SupportDefs.h>
enum bus_types {
UNKNOWN_BUS,
LEGACY_BUS,
PCI_BUS,
};
enum device_types {
UNKNOWN_DEVICE,
ATA_DEVICE,
ATAPI_DEVICE,
SCSI_DEVICE,
USB_DEVICE,
FIREWIRE_DEVICE,
FIBRE_DEVICE,
};
typedef struct disk_identifier {
int32 bus_type;
int32 device_type;
union {
struct {
uint16 base_address;
} legacy;
struct {
uint8 bus;
uint8 slot;
uint8 function;
} pci;
} bus;
union {
struct {
bool master;
} ata;
struct {
bool master;
uint8 logical_unit;
} atapi;
struct {
uint8 logical_unit;
} scsi;
struct {
uint8 tbd;
} usb;
struct {
uint64 guid;
} firewire;
struct {
uint64 wwd;
} fibre;
struct {
off_t size;
struct {
off_t offset;
uint32 sum;
} check_sums[5];
} unknown;
} device;
} disk_identifier;
#endif /* KERNEL_BOOT_DISK_IDENTIFIER_H */