Added support for INT 13,15; NTLDR calls it (though it may not
[people/xl0/gpxe.git] / src / arch / i386 / include / int13.h
index 0d93880..0525229 100644 (file)
@@ -27,6 +27,10 @@ struct block_device;
 #define INT13_WRITE_SECTORS            0x03
 /** Get drive parameters */
 #define INT13_GET_PARAMETERS           0x08
+/** Get disk type */
+#define INT13_GET_DISK_TYPE            0x15
+/** Extensions installation check */
+#define INT13_EXTENSION_CHECK          0x41
 /** Extended read */
 #define INT13_EXTENDED_READ            0x42
 /** Extended write */
@@ -129,6 +133,22 @@ struct int13_disk_parameters {
        
 };
 
+/**
+ * @defgroup int13types INT 13 disk types
+ * @{
+ */
+
+/** No such drive */
+#define INT13_DISK_TYPE_NONE   0x00
+/** Floppy without change-line support */
+#define INT13_DISK_TYPE_FDD    0x01
+/** Floppy with change-line support */
+#define INT13_DISK_TYPE_FDD_CL 0x02
+/** Hard disk */
+#define INT13_DISK_TYPE_HDD    0x03
+
+/** @} */
+
 /**
  * @defgroup int13flags INT 13 disk parameter flags
  * @{
@@ -151,7 +171,38 @@ struct int13_disk_parameters {
 
 /** @} */
 
+/**
+ * @defgroup int13exts INT 13 extension flags
+ * @{
+ */
+
+/** Extended disk access functions supported */
+#define INT13_EXTENSION_LINEAR         0x01
+/** Removable drive functions supported */
+#define INT13_EXTENSION_REMOVABLE      0x02
+/** EDD functions supported */
+#define INT13_EXTENSION_EDD            0x04
+
+/** @} */
+
+/**
+ * @defgroup int13vers INT 13 extension versions
+ * @{
+ */
+
+/** INT13 extensions version 1.x */
+#define INT13_EXTENSION_VER_1_X                0x01
+/** INT13 extensions version 2.0 (EDD-1.0) */
+#define INT13_EXTENSION_VER_2_0                0x20
+/** INT13 extensions version 2.1 (EDD-1.1) */
+#define INT13_EXTENSION_VER_2_1                0x21
+/** INT13 extensions version 3.0 (EDD-3.0) */
+#define INT13_EXTENSION_VER_3_0                0x30
+
+/** @} */ 
+
 extern void register_int13_drive ( struct int13_drive *drive );
 extern void unregister_int13_drive ( struct int13_drive *drive );
+extern int int13_boot ( unsigned int drive );
 
 #endif /* INT13_H */