Hi,
I have a question about DTGP. What is it and do I have to use it? I know that I can enable it in Clover.
I have seen various versions for DSDT hotfixes and some of them use it. For example
@RehabMan Maintains the Null Ethernet Network Driver and in
https://github.com/RehabMan/OS-X-Null-Ethernet/blob/master/SSDT-RMNE.dsl he uses this:
```
DefinitionBlock("", "SSDT", 2, "RehabMan", "_RMNE", 0x00001000)
{
Device (RMNE)
{
Name (_ADR, Zero)
// The NullEthernet kext matches on this HID
Name (_HID, "NULE0000")
// This is the MAC address returned by the kext. Modify if necessary.
Name (MAC, Buffer() { 0x11, 0x22, 0x33, 0x44, 0x55, 0x66 })
Method (_DSM, 4, NotSerialized)
{
If (LEqual (Arg2, Zero)) { Return (Buffer() { 0x03 } ) }
Return (Package()
{
"built-in", Buffer() { 0x00 },
"IOName", "ethernet",
"name", Buffer() { "ethernet" },
"model", Buffer() { "RM-NullEthernet-1001" },
"device_type", Buffer() { "ethernet" },
})
}
}
}
```
However many many patches I have seen in github and other places use this version:
```
DefinitionBlock ("", "SSDT", 2, "hack", "_RMNE", 0x00000000)
{
External (DTGP, MethodObj) // 5 Arguments
Device (RMNE)
{
Name (_ADR, Zero) // _ADR: Address
Name (_HID, "NULE0000") // _HID: Hardware ID
Name (MAC, Buffer (0x06)
{
0x11, 0x22, 0x33, 0x44, 0x55, 0x66 // ."3DUf
})
Method (_DSM, 4, NotSerialized) // _DSM: Device-Specific Method
{
Local0 = Package (0x0A)
{
"built-in",
Buffer (One)
{
0x00 // .
},
"IOName",
"ethernet",
"name",
Buffer (0x09)
{
"ethernet"
},
"model",
Buffer (0x15)
{
"RM-NullEthernet-1001"
},
"device_type",
Buffer (0x09)
{
"ethernet"
}
}
DTGP (Arg0, Arg1, Arg2, Arg3, RefOf (Local0))
Return (Local0)
}
}
}
```
May I ask why is that and what is the right way to do it? And most importantly can someone give me a very brief explanation of what this DTGP does.
Thanks!