Line 85:
Line 85:
! Version
! Version
! <abbr title="Issues 0xE0 when the error interrupt is set before running another command, in addition to clearing the interrupt">0xE0 on<br>error</abbr>
! <abbr title="Issues 0xE0 when the error interrupt is set before running another command, in addition to clearing the interrupt">0xE0 on<br>error</abbr>
β
! <abbr title="Attempts to write 0xDEADBEEF to kernel memory (0xFFFF0000) on diFatalError, in addition to calling CancelThread and entering an infinite loop. Error message is also '(diFatalError) *** DI FATAL ERROR: %s\nExiting\n' instead of '(diFatalError) Fatal error in DI driver: %s\nExiting\n' to on these versions.">DEADBEEF<br>fatal error</abbr>
+
!class="unsortable"| <abbr title="Attempts to write 0xDEADBEEF to kernel memory (0xFFFF0000) on diFatalError, in addition to calling CancelThread and entering an infinite loop. Error message is also '(diFatalError) *** DI FATAL ERROR: %s\nExiting\n' instead of '(diFatalError) Fatal error in DI driver: %s\nExiting\n' to on these versions.">DEADBEEF<br>fatal error</abbr>
! <abbr title="Out of bounds">OoB</abbr> [[#0x8D DVDLowUnencryptedRead|0x8D]]
! <abbr title="Out of bounds">OoB</abbr> [[#0x8D DVDLowUnencryptedRead|0x8D]]
! [[#0x90 DVDLowGetNoDiscOpenPartitionParams|0x90]]
! [[#0x90 DVDLowGetNoDiscOpenPartitionParams|0x90]]
β
! [[#0x91 DVDLowNoDiscOpenPartition|0x91]]
+
!class="unsortable"| [[#0x91 DVDLowNoDiscOpenPartition|0x91]]
β
! [[#0x92 DVDLowGetNoDiscBufferSizes|0x92]]
+
!class="unsortable"| [[#0x92 DVDLowGetNoDiscBufferSizes|0x92]]
! [[#0x93 DVDLowOpenPartitionWithTmdAndTicket|0x93]]
! [[#0x93 DVDLowOpenPartitionWithTmdAndTicket|0x93]]
β
! [[#0x94 DVDLowOpenPartitionWithTmdAndTicketView|0x94]]
+
!class="unsortable"| [[#0x94 DVDLowOpenPartitionWithTmdAndTicketView|0x94]]
β
! [[#0x95 DVDLowGetStatusRegister|0x95]]
+
!class="unsortable"| [[#0x95 DVDLowGetStatusRegister|0x95]]
! [[#0x96 DVDLowGetControlRegister|0x96]]
! [[#0x96 DVDLowGetControlRegister|0x96]]
! <abbr title="Uses IOSC_CheckDiHashes instead of verifying in DI itself">IOSC</abbr>
! <abbr title="Uses IOSC_CheckDiHashes instead of verifying in DI itself">IOSC</abbr>
! <abbr title="Highest IOS Syscall number">Syscall</abbr>
! <abbr title="Highest IOS Syscall number">Syscall</abbr>
! <abbr title="Highest /dev/es IoctlV number">ES</abbr>
! <abbr title="Highest /dev/es IoctlV number">ES</abbr>
+
! <abbr title="Present in the latest version of at least one IOS version">Live</abbr>
|-
|-
| [[#Group A|A]]
| [[#Group A|A]]
Line 113:
Line 114:
| 0x74
| 0x74
| 0x3c
| 0x3c
+
| {{Yes}}
|-
|-
| [[#Group B|B]]
| [[#Group B|B]]
Line 129:
Line 131:
| 0x76
| 0x76
| 0x3c
| 0x3c
+
| {{No}}
|-
|-
|rowspan="3" | [[#Group C|C]]
|rowspan="3" | [[#Group C|C]]
Line 145:
Line 148:
|rowspan="3" | 0x76
|rowspan="3" | 0x76
|rowspan="3" | 0x3e
|rowspan="3" | 0x3e
+
| {{Yes}}
|-
|-
|data-sort-value="1216063958"| [[#Jul 14 2008 19:32:38|Jul 14 2008 19:32:38]] <!-- Matches Jul 14 -->
|data-sort-value="1216063958"| [[#Jul 14 2008 19:32:38|Jul 14 2008 19:32:38]] <!-- Matches Jul 14 -->
+
| {{Yes}}
|-
|-
|data-sort-value="1216930125"| [[#Jul 24 2008 20:08:45|Jul 24 2008 20:08:45]] <!-- Matches Jul 14 -->
|data-sort-value="1216930125"| [[#Jul 24 2008 20:08:45|Jul 24 2008 20:08:45]] <!-- Matches Jul 14 -->
+
| {{Yes}}
|-
|-
|rowspan="3" | [[#Group D|D]]
|rowspan="3" | [[#Group D|D]]
Line 165:
Line 171:
|rowspan="3" | 0x76
|rowspan="3" | 0x76
|rowspan="3" | 0x40
|rowspan="3" | 0x40
+
| {{Yes}}
|-
|-
|data-sort-value="1216859413"| [[#Jul 24 2008 00:30:13|Jul 24 2008 00:30:13]] <!-- Matches Jul 11 -->
|data-sort-value="1216859413"| [[#Jul 24 2008 00:30:13|Jul 24 2008 00:30:13]] <!-- Matches Jul 11 -->
+
| {{Yes}}
|-
|-
|data-sort-value="1230126666"| [[#Dec 24 2008 13:51:06|Dec 24 2008 13:51:06]] <!-- Matches Jul 11 -->
|data-sort-value="1230126666"| [[#Dec 24 2008 13:51:06|Dec 24 2008 13:51:06]] <!-- Matches Jul 11 -->
+
| {{Yes}}
|-
|-
|rowspan="2" | [[#Group E|E]]
|rowspan="2" | [[#Group E|E]]
Line 185:
Line 194:
| 0x79
| 0x79
| 0x42
| 0x42
+
| {{No}}
|-
|-
|data-sort-value="1244015349"| [[#Jun 3 2009 07:49:09|Jun 3 2009 07:49:09]]
|data-sort-value="1244015349"| [[#Jun 3 2009 07:49:09|Jun 3 2009 07:49:09]]
| 0x79
| 0x79
| 0x45
| 0x45
+
| {{Yes}}
|}
|}
=== Group A ===
=== Group A ===
β
β
Used in monolithic IOS versions (those prior to IOS28, obviously excluding stubbed IOS versions). As these versions have only a single ELF file for all modules, there is no single hash for the DI driver.
In this version, [[#0x8D DVDLowUnencryptedRead|0x8D DVDLowUnencryptedRead]] only accepted the start and end being between 0 and 0x14000, and IOCtls [[#0x95 DVDLowGetStatusRegister|0x95 DVDLowGetStatusRegister]] and [[#0x96 DVDLowGetControlRegister|0x96 DVDLowGetControlRegister]] and all IOCtlVs other than [[#0x8B DVDLowOpenPartition|0x8B DVDLowOpenPartition]] did not exist. [[#0x87|0x87]] and [[#0x7F DVDLowSetSpinupFlag|0x7F DVDLowSetSpinupFlag]] did exist as the current stubs.
In this version, [[#0x8D DVDLowUnencryptedRead|0x8D DVDLowUnencryptedRead]] only accepted the start and end being between 0 and 0x14000, and IOCtls [[#0x95 DVDLowGetStatusRegister|0x95 DVDLowGetStatusRegister]] and [[#0x96 DVDLowGetControlRegister|0x96 DVDLowGetControlRegister]] and all IOCtlVs other than [[#0x8B DVDLowOpenPartition|0x8B DVDLowOpenPartition]] did not exist. [[#0x87|0x87]] and [[#0x7F DVDLowSetSpinupFlag|0x7F DVDLowSetSpinupFlag]] did exist as the current stubs.
Line 202:
Line 211:
==== Oct 5 2006 17:41:21 ====
==== Oct 5 2006 17:41:21 ====
+
+
Used in monolithic IOS versions (those prior to IOS28, obviously excluding stubbed IOS versions). As these versions have only a single ELF file for all modules, there is no single hash for the DI driver.
{| class="wikitable"
{| class="wikitable"