aboutsummaryrefslogtreecommitdiffstats
path: root/lib/sisfileheader.h
diff options
context:
space:
mode:
authorFritz Elfert <felfert@to.com>2002-02-28 20:56:59 +0000
committerFritz Elfert <felfert@to.com>2002-02-28 20:56:59 +0000
commiteecba3b5fcb47a01e6e13ee1940def989f6dd22d (patch)
tree970f3113de0d2b9b0544c1420117e0cf9633abcd /lib/sisfileheader.h
parent12241e0ff5ea242891fc3a8c177e8f55e897f2a3 (diff)
downloadplptools-eecba3b5fcb47a01e6e13ee1940def989f6dd22d.tar.gz
plptools-eecba3b5fcb47a01e6e13ee1940def989f6dd22d.tar.bz2
plptools-eecba3b5fcb47a01e6e13ee1940def989f6dd22d.zip
- Added SIS stuff by Daniel Brahneborg
Diffstat (limited to 'lib/sisfileheader.h')
-rw-r--r--lib/sisfileheader.h63
1 files changed, 63 insertions, 0 deletions
diff --git a/lib/sisfileheader.h b/lib/sisfileheader.h
new file mode 100644
index 0000000..1583365
--- /dev/null
+++ b/lib/sisfileheader.h
@@ -0,0 +1,63 @@
+#ifndef _SISFILEHEADER_H
+#define _SISFILEHEADER_H
+
+#include "sistypes.h"
+
+/**
+ * The first part of a SIS file.
+ */
+class SISFileHeader
+{
+public:
+
+ /**
+ * Populate the fields.
+ */
+ void fillFrom(uchar* buf, int* base);
+
+ enum FileOptions {
+ op_isUnicode = 1,
+ op_isDistributable = 2,
+#ifdef EPOC6
+ op_noCompress = 8,
+ op_shutdownApps = 16,
+#endif
+ };
+
+ enum FileType {
+ FT_App = 0,
+#ifdef EPOC6
+ FT_System = 1,
+ FT_Option = 2,
+ FT_Config = 3,
+ FT_Patch = 4,
+ FT_Upgrade = 5,
+#endif
+ };
+
+ uint32 m_uid1;
+ uint32 m_uid2;
+ uint32 m_uid3;
+ uint32 m_uid4;
+ uint16 m_crc;
+ uint16 m_nlangs;
+ uint16 m_nfiles;
+ uint16 m_nreqs;
+ uint16 m_installationLanguage;
+ uint16 m_installationFiles;
+ uint32 m_installationDrive;
+ uint32 m_installerVersion;
+ uint16 m_options;
+ uint16 m_type;
+ uint16 m_major;
+ uint16 m_minor;
+ uint32 m_variant;
+ uint32 m_languagePtr;
+ uint32 m_filesPtr;
+ uint32 m_reqPtr;
+ uint32 m_unknown;
+ uint32 m_componentPtr;
+};
+
+#endif
+