    // for use with ACPIDebug
    // This file was created by applying "Add DSDT Debug Methods" to an empty SSDT
    //
    // Use "Add SSDT Debug Extern Declarations" to access these methods from other
    // hotpatch SSDTs or even patched OEM ACPI files.
    //
    DefinitionBlock("", "SSDT", 2, "OCLT", "RMDT", 0)
    {
        If (_OSI ("Darwin"))
        {
            Device (RMDT)
            {
                Name (_HID, "RMD0000")  // _HID: Hardware ID
                Name (RING, Package (0x0100){})
                Mutex (RTMX, 0x00)
                Name (HEAD, Zero)
                Name (TAIL, Zero)
                Method (PUSH, 1, NotSerialized)
                {
                    Acquire (RTMX, 0xFFFF)
                    Local0 = (HEAD + One)
                    If ((Local0 >= SizeOf (RING)))
                    {
                        Local0 = Zero
                    }

                    If ((Local0 != TAIL))
                    {
                        RING [HEAD] = Arg0
                        HEAD = Local0
                    }

                    Release (RTMX)
                    Notify (RMDT, 0x80) // Status Change
                }

                Method (FTCH, 0, NotSerialized)
                {
                    Acquire (RTMX, 0xFFFF)
                    Local0 = Zero
                    If ((HEAD != TAIL))
                    {
                        Local0 = DerefOf (RING [TAIL])
                        TAIL++
                        If ((TAIL >= SizeOf (RING)))
                        {
                            TAIL = Zero
                        }
                    }

                    Release (RTMX)
                    Return (Local0)
                }

                Method (COUN, 0, NotSerialized)
                {
                    Acquire (RTMX, 0xFFFF)
                    Local0 = (HEAD - TAIL) /* \RMDT.TAIL */
                    If ((Local0 < Zero))
                    {
                        Local0 += SizeOf (RING)
                    }

                    Release (RTMX)
                    Return (Local0)
                }

                Method (P1, 1, NotSerialized)
                {
                    PUSH (Arg0)
                }

                Method (P2, 2, NotSerialized)
                {
                    Local0 = Package (0x02){}
                    Local0 [Zero] = Arg0
                    Local0 [One] = Arg1
                    PUSH (Local0)
                }

                Method (P3, 3, NotSerialized)
                {
                    Local0 = Package (0x03){}
                    Local0 [Zero] = Arg0
                    Local0 [One] = Arg1
                    Local0 [0x02] = Arg2
                    PUSH (Local0)
                }

                Method (P4, 4, NotSerialized)
                {
                    Local0 = Package (0x04){}
                    Local0 [Zero] = Arg0
                    Local0 [One] = Arg1
                    Local0 [0x02] = Arg2
                    Local0 [0x03] = Arg3
                    PUSH (Local0)
                }

                Method (P5, 5, NotSerialized)
                {
                    Local0 = Package (0x05){}
                    Local0 [Zero] = Arg0
                    Local0 [One] = Arg1
                    Local0 [0x02] = Arg2
                    Local0 [0x03] = Arg3
                    Local0 [0x04] = Arg4
                    PUSH (Local0)
                }

                Method (P6, 6, NotSerialized)
                {
                    Local0 = Package (0x06){}
                    Local0 [Zero] = Arg0
                    Local0 [One] = Arg1
                    Local0 [0x02] = Arg2
                    Local0 [0x03] = Arg3
                    Local0 [0x04] = Arg4
                    Local0 [0x05] = Arg5
                    PUSH (Local0)
                }

                Method (P7, 7, NotSerialized)
                {
                    Local0 = Package (0x07){}
                    Local0 [Zero] = Arg0
                    Local0 [One] = Arg1
                    Local0 [0x02] = Arg2
                    Local0 [0x03] = Arg3
                    Local0 [0x04] = Arg4
                    Local0 [0x05] = Arg5
                    Local0 [0x06] = Arg6
                    PUSH (Local0)
                }
            }
        }
    }
    //EOF

# results matching ""

# No results matching ""