Add qemu 2.4.0
[kvmfornfv.git] / qemu / roms / openbios / fs / iso9660 / iso9660.h
diff --git a/qemu/roms/openbios/fs/iso9660/iso9660.h b/qemu/roms/openbios/fs/iso9660/iso9660.h
new file mode 100644 (file)
index 0000000..ac6dcf0
--- /dev/null
@@ -0,0 +1,58 @@
+/*
+ *
+ * (c) 2005-2009 Laurent Vivier <Laurent@vivier.eu>
+ *
+ * This file has been copied from EMILE, http://emile.sf.net
+ *
+ */
+
+#ifndef __ISO9660_H__
+#define __ISO9660_H__
+
+#include "iso9660_fs.h"
+
+typedef struct iso9660_VOLUME {
+       int ucs_level;
+       struct iso_primary_descriptor *descriptor;
+       int fd;
+} iso9660_VOLUME;
+
+typedef struct iso9660_DIR {
+       iso9660_VOLUME *volume;
+       int extent;
+       int len;
+       int index;
+       unsigned char buffer[ISOFS_BLOCK_SIZE];
+} iso9660_DIR;
+
+typedef struct iso9660_FILE {
+       iso9660_VOLUME *volume;
+       char *path;
+       int base;                       /* first extent of the file */
+       int size;                       /* size of the file */
+       int offset;
+       int current;
+       unsigned char buffer[ISOFS_BLOCK_SIZE];
+} iso9660_FILE;
+
+static inline int isonum_721(char *p)
+{
+        return ((p[0] & 0xff)
+                | ((p[1] & 0xff) << 8));
+}
+
+static inline int isonum_723(char *p)
+{
+        return (isonum_721(p));
+}
+
+static inline int isonum_733(char *p)
+{
+       return ((p[0] & 0xff) | ((p[1] & 0xff) << 8) |
+               ((p[2] & 0xff) << 16) | ((p[3] & 0xff) << 24));
+}
+
+extern struct iso_directory_record *iso9660_get_root_node(iso9660_VOLUME* volume);
+extern struct iso_directory_record* iso9660_get_node(iso9660_VOLUME *volume, struct iso_directory_record *dirnode, const char *path);
+
+#endif /* __ISO9660_H__ */