<?xml version="1.0" encoding="utf-16"?>
<ExtensionPackages Version="1.0.0.0" Compression="none">
  <ExtensionPackage>
    <Name>LinuxKernelPackage</Name>
    <Version>$#Engine_version#$</Version>
    <MinDebuggerSupported>10.0.17074.1002</MinDebuggerSupported>
    <Components>
        <ScriptComponent Name="LinuxKernel" Type="Engine" File="winext\LinuxKernel.js">
            <LoadTriggers>
                <TriggerSet>
                    <ModuleTrigger Name="vmlinux"/>
                </TriggerSet>
            </LoadTriggers>
            <ObjectExtensionList>
                <NamedExtension Name="Debugger.Models.Session" />
                <NamedExtension Name="Debugger.Models.Utility.Collections" />
                <NamedExtension Name="Debugger.Models.Process" Namespace="Debugger.Models.Process.Io" Property="Io" />
                <NamedExtension Name="Debugger.Models.Process" Namespace="Debugger.Models.Process.Memory" Property="Memory" />
                <RegisteredTypedExtension Type="task_struct"><Module Name="vmlinux"/></RegisteredTypedExtension>
                <RegisteredTypedExtension Type="sched_entry"><Module Name="vmlinux"/></RegisteredTypedExtension>
                <RegisteredTypedExtension Type="file"><Module Name="vmlinux"/></RegisteredTypedExtension>
                <RegisteredTypedExtension Type="path"><Module Name="vmlinux"/></RegisteredTypedExtension>
                <RegisteredTypedExtension Type="dentry"><Module Name="vmlinux"/></RegisteredTypedExtension>
                <RegisteredTypedExtension Type="super_block"><Module Name="vmlinux"/></RegisteredTypedExtension>
                <RegisteredTypedExtension Type="mount"><Module Name="vmlinux"/></RegisteredTypedExtension>
                <RegisteredTypedExtension Type="mnt_namespace"><Module Name="vmlinux"/></RegisteredTypedExtension>
                <RegisteredTypedExtension Type="qstr"><Module Name="vmlinux"/></RegisteredTypedExtension>
                <RegisteredTypedExtension Type="net"><Module Name="vmlinux"/></RegisteredTypedExtension>
                <RegisteredTypedExtension Type="net_device"><Module Name="vmlinux"/></RegisteredTypedExtension>
                <RegisteredTypedExtension Type="in_ifaddr"><Module Name="vmlinux"/></RegisteredTypedExtension>
                <RegisteredTypedExtension Type="vm_area_struct"><Module Name="vmlinux"/></RegisteredTypedExtension>
                <RegisteredTypedExtension Type="block_device"><Module Name="vmlinux"/></RegisteredTypedExtension>
                <RegisteredTypedExtension Type="char_device_struct"><Module Name="vmlinux"/></RegisteredTypedExtension>
                <RegisteredTypedExtension Type="device_private"><Module Name="vmlinux"/></RegisteredTypedExtension>
                <RegisteredTypedExtension Type="kernfs_node"><Module Name="vmlinux"/></RegisteredTypedExtension>
                <RegisteredTypedExtension Type="subsys_private"><Module Name="vmlinux"/></RegisteredTypedExtension>
                <RegisteredTypedExtension Type="hrtimer_clock_base"><Module Name="vmlinux"/></RegisteredTypedExtension>
                <RegisteredTypedExtension Type="hrtimer"><Module Name="vmlinux"/></RegisteredTypedExtension>
                <RegisteredTypedExtension Type="timer_base"><Module Name="vmlinux"/></RegisteredTypedExtension>
                <RegisteredTypedExtension Type="timer_list"><Module Name="vmlinux"/></RegisteredTypedExtension>
            </ObjectExtensionList>
            <FunctionAliases>
                <FunctionAlias Name="files">
                    <AliasItem>
                        <Syntax>
                            <![CDATA[!files [<argument>]]]>
                        </Syntax>
                        <Description>
                            <![CDATA[Shows the list of files in the current or given process.  The argument may be a PID, the address of a task_struct, a task_struct, a task_struct *, or a process object.]]>
                        </Description>
                    </AliasItem>
                </FunctionAlias>
                <FunctionAlias Name="mount">
                    <AliasItem>
                        <Syntax>
                            <![CDATA[!mount [<argument>]]]>
                        </Syntax>
                        <Description>
                            <![CDATA[Shows the list of mounts in the system (no argument) or in the namespace of a given process.  The argument may be a PID, the address of a task_struct, a task_struct, a task_struct *, or a process object.]]>
                        </Description>
                    </AliasItem>
                </FunctionAlias>
                <FunctionAlias Name="net">
                    <AliasItem>
                        <Syntax>
                            <![CDATA[!net [<argument>]]]>
                        </Syntax>
                        <Description>
                            <![CDATA[Shows the list of network devices in the system (no argument) or in the namespace of a given process.  The argument may be a PID, the address of a task_struct, a task_struct, a task_struct *, or a process object.]]>
                        </Description>
                    </AliasItem>
                </FunctionAlias>
                <FunctionAlias Name="vm">
                    <AliasItem>
                        <Syntax>
                            <![CDATA[!vm [<argument>]]]>
                        </Syntax>
                        <Description>
                            <![CDATA[Describes the virtual memory layout of the current or a given process.  The argument may be a PID, the address of a task_struct, a task_struct, a task_struct *, or a process object.]]>
                        </Description>
                    </AliasItem>
                </FunctionAlias>
                <FunctionAlias Name="log">
                    <AliasItem>
                        <Syntax>
                            <![CDATA[!log]]>
                        </Syntax>
                        <Description>
                            <![CDATA[Outputs the PrintK/DMesg log]]>
                        </Description>
                    </AliasItem>
                </FunctionAlias>
                <FunctionAlias Name="dev">
                    <AliasItem>
                        <Syntax>
                            <![CDATA[!dev]]>
                        </Syntax>
                        <Description>
                            <![CDATA[Shows a list of character and block devices.]]>
                        </Description>
                    </AliasItem>
                </FunctionAlias>
                <FunctionAlias Name="percpu">
                    <AliasItem>
                        <Syntax>
                            <![CDATA[!percpu [<var>] [<cpu>]]]>
                        </Syntax>
                        <Description>
                            <![CDATA[Gives the value of a Linux kernel per CPU veriable.  If the CPU argument is unspecified, the value is shown for the current CPU; otherwise, it is shown for the given CPU.]]>
                        </Description>
                    </AliasItem>
                </FunctionAlias>
                <FunctionAlias Name="allpercpu">
                    <AliasItem>
                        <Syntax>
                            <![CDATA[!allpercpu [<var>]]]>
                        </Syntax>
                        <Description>
                            <![CDATA[Gives the value of a Linux kernel per CPU veriable for every CPU in the system.]]>
                        </Description>
                    </AliasItem>
                </FunctionAlias>
                <FunctionAlias Name="lx_per_cpu">
                    <AliasItem>
                        <Syntax>
                            <![CDATA[!lx_per_cpou [<var>] [<cpu>]]]>
                        </Syntax>
                        <Description>
                            <![CDATA[Identical to the !percpu command, this gives the value of a Linux kernel per CPU variable.  If the CPU argument is unspecified, the value is shown for the current CPU; otherwise, it is shown for the given CPU.]]>
                        </Description>
                    </AliasItem>
                </FunctionAlias>
                <FunctionAlias Name="timer">
                    <AliasItem>
                        <Syntax>
                            <![CDATA[!timer]]>
                        </Syntax>
                        <Description>
                            <![CDATA[Shows the list of timers in the kernel.]]>
                        </Description>
                    </AliasItem>
                </FunctionAlias>
                <FunctionAlias Name="runq">
                    <AliasItem>
                        <Syntax>
                            <![CDATA[!runq]]>
                        </Syntax>
                        <Description>
                            <![CDATA[Shows all of the run queues for the Linux kernel.]]>
                        </Description>
                    </AliasItem>
                </FunctionAlias>
                <FunctionAlias Name="fdt">
                    <AliasItem>
                        <Syntax>
                            <![CDATA[!fdt [<arg>]]>
                        </Syntax>
                        <Description>
                            <![CDATA[Displays the flat device tree given by the argument.]]>
                        </Description>
                    </AliasItem>
                </FunctionAlias>
                <FunctionAlias Name="ps">
                    <AliasItem>
                        <Syntax>
                            <![CDATA[!ps]]>
                        </Syntax>
                        <Description>
                            <![CDATA[Displays the processes status for all processes in the system.]]>
                        </Description>
                    </AliasItem>
                </FunctionAlias>
            </FunctionAliases>
            <Views>
                <View Query="@$cursession.Kernel.PrintKLog.Select(e => new { TimeStamp = e.TimeStamp, TimeStampTime = e.TimeStampTime, Entry = e.ToDisplayString(), Facility = e.Facility, Level = e.Level, Dictionary = __iserror(e.Dictionary) ? __novalue() : e.Dictionary })" Name="PrintK Log" LargeIconData=" " SmallIconData="89504e470d0a1a0a0000000d49484452000000100000001008060000001ff3ff61000000017352474200aece1ce90000000467414d410000b18f0bfc61050000000970485973000016250000162501495224f00000007a49444154384fed935b1280200845a16959eecd716feeab84a052216dfaed7c787d5ec019e02b48438c71e3d5809412dfef208319ac408b6807e2114c55694d5c03821e97c0b2bae832b14a28db95b6a8899b41b953a9c7630933aca24cce5966002104d6fb9ea26727d61f8cd03ff83378d94c2d6e73cd03b003d5251e187bacd1340000000049454e44ae426082" ViewKind="Grid" />
                <View Query="@$ps()" Name="Process List" LargeIconData=" " SmallIconData="89504e470d0a1a0a0000000d49484452000000100000001008060000001ff3ff61000000017352474200aece1ce90000000467414d410000b18f0bfc61050000000970485973000016250000162501495224f00000007649444154384f63a014308288fafafaff601e89a0b1b111ac1f6c00a900662913d804283872e4081c3332420c07b161340c230316280d07b6f755c1f4e1c387c1b48d8d0d0a8d0e505c800d107201860187156f83310c20bb008691018a01c88ad015e20204bd40088cc6021562813a99897cc0c000001e698b93f3bc18d00000000049454e44ae426082" ViewKind="Grid" />
            </Views>
        </ScriptComponent>
    </Components>
  </ExtensionPackage>
</ExtensionPackages>
