ia64/xen-unstable
changeset 19305:dee5bc89873e
merge with xen-unstable.hg
author | Isaku Yamahata <yamahata@valinux.co.jp> |
---|---|
date | Tue Mar 10 11:00:34 2009 +0900 (2009-03-10) |
parents | 2a4eaa76d974 d035b66b5b4d |
children | 5e4dd7079c48 |
files |
line diff
1.1 --- a/docs/src/user.tex Fri Mar 06 12:22:22 2009 +0900 1.2 +++ b/docs/src/user.tex Tue Mar 10 11:00:34 2009 +0900 1.3 @@ -4194,6 +4194,9 @@ writing to the VGA console after domain 1.4 \item [ dma\_bits=xxx ] Specify width of DMA addresses in bits. This 1.5 is used in NUMA systems to prevent this special DMA memory from 1.6 being exhausted in one node when remote nodes have available memory. 1.7 +\item [ vcpu\_migration\_delay=$<$minimum\_time$>$] Set minimum time of 1.8 + vcpu migration in microseconds (default 0). This parameter avoids agressive 1.9 + vcpu migration. For example, the linux kernel uses 0.5ms by default. 1.10 \end{description} 1.11 1.12 In addition, the following options may be specified on the Xen command
2.1 --- a/extras/mini-os/arch/x86/mm.c Fri Mar 06 12:22:22 2009 +0900 2.2 +++ b/extras/mini-os/arch/x86/mm.c Tue Mar 10 11:00:34 2009 +0900 2.3 @@ -778,8 +778,7 @@ void arch_init_p2m(unsigned long max_pfn 2.4 2.5 void arch_init_mm(unsigned long* start_pfn_p, unsigned long* max_pfn_p) 2.6 { 2.7 - 2.8 - unsigned long start_pfn, max_pfn, virt_pfns; 2.9 + unsigned long start_pfn, max_pfn; 2.10 2.11 printk(" _text: %p(VA)\n", &_text); 2.12 printk(" _etext: %p(VA)\n", &_etext); 2.13 @@ -794,9 +793,13 @@ void arch_init_mm(unsigned long* start_p 2.14 max_pfn = start_info.nr_pages; 2.15 2.16 /* We need room for demand mapping and heap, clip available memory */ 2.17 - virt_pfns = DEMAND_MAP_PAGES + HEAP_PAGES; 2.18 - if ( max_pfn + virt_pfns + 1 < max_pfn ) 2.19 - max_pfn = -(virt_pfns + 1); 2.20 +#if defined(__i386__) 2.21 + { 2.22 + unsigned long virt_pfns = 1 + DEMAND_MAP_PAGES + 1 + HEAP_PAGES; 2.23 + if (max_pfn + virt_pfns >= 0x100000) 2.24 + max_pfn = 0x100000 - virt_pfns - 1; 2.25 + } 2.26 +#endif 2.27 2.28 printk(" start_pfn: %lx\n", start_pfn); 2.29 printk(" max_pfn: %lx\n", max_pfn);
3.1 --- a/tools/blktap/drivers/block-qcow2.c Fri Mar 06 12:22:22 2009 +0900 3.2 +++ b/tools/blktap/drivers/block-qcow2.c Tue Mar 10 11:00:34 2009 +0900 3.3 @@ -1984,6 +1984,7 @@ int qcow2_create(const char *filename, u 3.4 const char *backing_file, int flags) 3.5 { 3.6 int fd, header_size, backing_filename_len, l1_size, i, shift, l2_bits; 3.7 + int ret = 0; 3.8 QCowHeader header; 3.9 uint64_t tmp, offset; 3.10 QCowCreateState s1, *s = &s1; 3.11 @@ -2042,25 +2043,37 @@ int qcow2_create(const char *filename, u 3.12 create_refcount_update(s, s->refcount_block_offset, s->cluster_size); 3.13 3.14 /* write all the data */ 3.15 - write(fd, &header, sizeof(header)); 3.16 + ret = write(fd, &header, sizeof(header)); 3.17 + if (ret < 0) 3.18 + goto out; 3.19 if (backing_file) { 3.20 - write(fd, backing_file, backing_filename_len); 3.21 + ret = write(fd, backing_file, backing_filename_len); 3.22 + if (ret < 0) 3.23 + goto out; 3.24 } 3.25 lseek(fd, s->l1_table_offset, SEEK_SET); 3.26 tmp = 0; 3.27 for(i = 0;i < l1_size; i++) { 3.28 - write(fd, &tmp, sizeof(tmp)); 3.29 + ret = write(fd, &tmp, sizeof(tmp)); 3.30 + if (ret < 0) 3.31 + goto out; 3.32 } 3.33 lseek(fd, s->refcount_table_offset, SEEK_SET); 3.34 - write(fd, s->refcount_table, s->cluster_size); 3.35 + ret = write(fd, s->refcount_table, s->cluster_size); 3.36 + if (ret < 0) 3.37 + goto out; 3.38 3.39 lseek(fd, s->refcount_block_offset, SEEK_SET); 3.40 - write(fd, s->refcount_block, s->cluster_size); 3.41 + ret = write(fd, s->refcount_block, s->cluster_size); 3.42 + if (ret < 0) 3.43 + goto out; 3.44 + ret = 0; 3.45 3.46 + out: 3.47 qemu_free(s->refcount_table); 3.48 qemu_free(s->refcount_block); 3.49 close(fd); 3.50 - return 0; 3.51 + return ret; 3.52 } 3.53 3.54
4.1 --- a/tools/examples/xmexample.hvm Fri Mar 06 12:22:22 2009 +0900 4.2 +++ b/tools/examples/xmexample.hvm Tue Mar 10 11:00:34 2009 +0900 4.3 @@ -308,6 +308,8 @@ serial='pty' 4.4 # available options are: 4.5 # - msitranslate=0|1 4.6 # per-device overriden of pci_msitranslate, see below 4.7 +# - power_mgmt=0|1 4.8 +# per-device overriden of pci_power_mgmt, see below 4.9 # 4.10 #pci=[ '07:00.0', '07:00.1' ] 4.11 4.12 @@ -322,6 +324,13 @@ serial='pty' 4.13 # 4.14 #pci_msitranslate=1 4.15 4.16 +# PCI Power Management: 4.17 +# 4.18 +# If it's set, the guest OS will be able to program D0-D3hot states of the 4.19 +# PCI device for the purpose of low power consumption. 4.20 +# 4.21 +#pci_power_mgmt=0 4.22 + 4.23 #----------------------------------------------------------------------------- 4.24 # Configure PVSCSI devices: 4.25 #
5.1 --- a/tools/examples/xmexample.hvm-dm Fri Mar 06 12:22:22 2009 +0900 5.2 +++ b/tools/examples/xmexample.hvm-dm Tue Mar 10 11:00:34 2009 +0900 5.3 @@ -11,4 +11,4 @@ vif = [ '', 'type=ioemu, bridge=xenbr0' 5.4 disk = [ 'file:/var/images/min-el3-i386.img,hda,w', ',hdc:cdrom,r' ] 5.5 5.6 # Actual output via PVFB 5.7 -vfb = [ 'type=sdl' ] 5.8 +vfb = [ 'sdl=1' ]
6.1 --- a/tools/examples/xmexample.pv-grub Fri Mar 06 12:22:22 2009 +0900 6.2 +++ b/tools/examples/xmexample.pv-grub Tue Mar 10 11:00:34 2009 +0900 6.3 @@ -77,29 +77,29 @@ disk = [ 'phy:hda1,hda1,w' ] 6.4 # 6.5 # To create one using the SDL backend and sensible defaults: 6.6 # 6.7 -# vfb = [ 'type=sdl' ] 6.8 +# vfb = [ 'sdl=1' ] 6.9 # 6.10 # This uses environment variables XAUTHORITY and DISPLAY. You 6.11 # can override that: 6.12 # 6.13 -# vfb = [ 'type=sdl,xauthority=/home/bozo/.Xauthority,display=:1' ] 6.14 +# vfb = [ 'sdl=1,xauthority=/home/bozo/.Xauthority,display=:1' ] 6.15 # 6.16 # To create one using the VNC backend and sensible defaults: 6.17 # 6.18 -# vfb = [ 'type=vnc' ] 6.19 +# vfb = [ 'vnc=1' ] 6.20 # 6.21 # The backend listens on 127.0.0.1 port 5900+N by default, where N is 6.22 # the domain ID. You can override both address and N: 6.23 # 6.24 -# vfb = [ 'type=vnc,vnclisten=127.0.0.1,vncdisplay=1' ] 6.25 +# vfb = [ 'vnc=1,vnclisten=127.0.0.1,vncdisplay=1' ] 6.26 # 6.27 # Or you can bind the first unused port above 5900: 6.28 # 6.29 -# vfb = [ 'type=vnc,vnclisten=0.0.0.0,vncunused=1' ] 6.30 +# vfb = [ 'vnc=1,vnclisten=0.0.0.0,vncunused=1' ] 6.31 # 6.32 # You can override the password: 6.33 # 6.34 -# vfb = [ 'type=vnc,vncpasswd=MYPASSWD' ] 6.35 +# vfb = [ 'vnc=1,vncpasswd=MYPASSWD' ] 6.36 # 6.37 # Empty password disables authentication. Defaults to the vncpasswd 6.38 # configured in xend-config.sxp.
7.1 --- a/tools/examples/xmexample.vti Fri Mar 06 12:22:22 2009 +0900 7.2 +++ b/tools/examples/xmexample.vti Tue Mar 10 11:00:34 2009 +0900 7.3 @@ -9,8 +9,6 @@ 7.4 import os, re 7.5 arch_libdir = 'lib' 7.6 arch = os.uname()[4] 7.7 -if os.uname()[0] == 'Linux' and re.search('64', arch): 7.8 - arch_libdir = 'lib64' 7.9 7.10 #---------------------------------------------------------------------------- 7.11 # Kernel image file.
8.1 --- a/tools/examples/xmexample1 Fri Mar 06 12:22:22 2009 +0900 8.2 +++ b/tools/examples/xmexample1 Tue Mar 10 11:00:34 2009 +0900 8.3 @@ -73,29 +73,29 @@ disk = [ 'phy:hda1,hda1,w' ] 8.4 # 8.5 # To create one using the SDL backend and sensible defaults: 8.6 # 8.7 -# vfb = [ 'type=sdl' ] 8.8 +# vfb = [ 'sdl=1' ] 8.9 # 8.10 # This uses environment variables XAUTHORITY and DISPLAY. You 8.11 # can override that: 8.12 # 8.13 -# vfb = [ 'type=sdl,xauthority=/home/bozo/.Xauthority,display=:1' ] 8.14 +# vfb = [ 'sdl=1,xauthority=/home/bozo/.Xauthority,display=:1' ] 8.15 # 8.16 # To create one using the VNC backend and sensible defaults: 8.17 # 8.18 -# vfb = [ 'type=vnc' ] 8.19 +# vfb = [ 'vnc=1' ] 8.20 # 8.21 # The backend listens on 127.0.0.1 port 5900+N by default, where N is 8.22 # the domain ID. You can override both address and N: 8.23 # 8.24 -# vfb = [ 'type=vnc,vnclisten=127.0.0.1,vncdisplay=1' ] 8.25 +# vfb = [ 'vnc=1,vnclisten=127.0.0.1,vncdisplay=1' ] 8.26 # 8.27 # Or you can bind the first unused port above 5900: 8.28 # 8.29 -# vfb = [ 'type=vnc,vnclisten=0.0.0.0,vncunused=1' ] 8.30 +# vfb = [ 'vnc=1,vnclisten=0.0.0.0,vncunused=1' ] 8.31 # 8.32 # You can override the password: 8.33 # 8.34 -# vfb = [ 'type=vnc,vncpasswd=MYPASSWD' ] 8.35 +# vfb = [ 'vnc=1,vncpasswd=MYPASSWD' ] 8.36 # 8.37 # Empty password disables authentication. Defaults to the vncpasswd 8.38 # configured in xend-config.sxp.
9.1 --- a/tools/examples/xmexample2 Fri Mar 06 12:22:22 2009 +0900 9.2 +++ b/tools/examples/xmexample2 Tue Mar 10 11:00:34 2009 +0900 9.3 @@ -109,29 +109,29 @@ disk = [ 'phy:sda%d,sda1,w' % (7+vmid), 9.4 # 9.5 # To create one using the SDL backend and sensible defaults: 9.6 # 9.7 -# vfb = [ 'type=sdl' ] 9.8 +# vfb = [ 'sdl=1' ] 9.9 # 9.10 # This uses environment variables XAUTHORITY and DISPLAY. You 9.11 # can override that: 9.12 # 9.13 -# vfb = [ 'type=sdl,xauthority=/home/bozo/.Xauthority,display=:1' ] 9.14 +# vfb = [ 'sdl=1,xauthority=/home/bozo/.Xauthority,display=:1' ] 9.15 # 9.16 # To create one using the VNC backend and sensible defaults: 9.17 # 9.18 -# vfb = [ 'type=vnc' ] 9.19 +# vfb = [ 'vnc=1' ] 9.20 # 9.21 # The backend listens on 127.0.0.1 port 5900+N by default, where N is 9.22 # the domain ID. You can override both address and N: 9.23 # 9.24 -# vfb = [ 'type=vnc,vnclisten=127.0.0.1,vncdisplay=%d' % vmid ] 9.25 +# vfb = [ 'vnc=1,vnclisten=127.0.0.1,vncdisplay=%d' % vmid ] 9.26 # 9.27 # Or you can bind the first unused port above 5900: 9.28 # 9.29 -# vfb = [ 'type=vnc,vnclisten=0.0.0.0,vncunused=1' ] 9.30 +# vfb = [ 'vnc=1,vnclisten=0.0.0.0,vncunused=1' ] 9.31 # 9.32 # You can override the password: 9.33 # 9.34 -# vfb = [ 'type=vnc,vncpasswd=MYPASSWD' ] 9.35 +# vfb = [ 'vnc=1,vncpasswd=MYPASSWD' ] 9.36 # 9.37 # Empty password disables authentication. Defaults to the vncpasswd 9.38 # configured in xend-config.sxp.
10.1 --- a/tools/examples/xmexample3 Fri Mar 06 12:22:22 2009 +0900 10.2 +++ b/tools/examples/xmexample3 Tue Mar 10 11:00:34 2009 +0900 10.3 @@ -94,29 +94,29 @@ disk = [ 'phy:hda%d,hda1,w' % (vmid)] 10.4 # 10.5 # To create one using the SDL backend and sensible defaults: 10.6 # 10.7 -# vfb = [ 'type=sdl' ] 10.8 +# vfb = [ 'sdl=1' ] 10.9 # 10.10 # This uses environment variables XAUTHORITY and DISPLAY. You 10.11 # can override that: 10.12 # 10.13 -# vfb = [ 'type=sdl,xauthority=/home/bozo/.Xauthority,display=:1' ] 10.14 +# vfb = [ 'sdl=1,xauthority=/home/bozo/.Xauthority,display=:1' ] 10.15 # 10.16 # To create one using the VNC backend and sensible defaults: 10.17 # 10.18 -# vfb = [ 'type=vnc' ] 10.19 +# vfb = [ 'vnc=1' ] 10.20 # 10.21 # The backend listens on 127.0.0.1 port 5900+N by default, where N is 10.22 # the domain ID. You can override both address and N: 10.23 # 10.24 -# vfb = [ 'type=vnc,vnclisten=127.0.0.1,vncdisplay=%d' % vmid ] 10.25 +# vfb = [ 'vnc=1,vnclisten=127.0.0.1,vncdisplay=%d' % vmid ] 10.26 # 10.27 # Or you can bind the first unused port above 5900: 10.28 # 10.29 -# vfb = [ 'type=vnc,vnclisten=0.0.0.0,vncunused=1' ] 10.30 +# vfb = [ 'vnc=1,vnclisten=0.0.0.0,vncunused=1' ] 10.31 # 10.32 # You can override the password: 10.33 # 10.34 -# vfb = [ 'type=vnc,vncpasswd=MYPASSWD' ] 10.35 +# vfb = [ 'vnc=1,vncpasswd=MYPASSWD' ] 10.36 # 10.37 # Empty password disables authentication. Defaults to the vncpasswd 10.38 # configured in xend-config.sxp.
11.1 --- a/tools/firmware/hvmloader/acpi/dsdt.asl Fri Mar 06 12:22:22 2009 +0900 11.2 +++ b/tools/firmware/hvmloader/acpi/dsdt.asl Tue Mar 10 11:00:34 2009 +0900 11.3 @@ -470,6 +470,102 @@ DefinitionBlock ("DSDT.aml", "DSDT", 2, 11.4 Package(){0x000fffff, 1, \_SB.PCI0.LNKA, 0}, 11.5 Package(){0x000fffff, 2, \_SB.PCI0.LNKB, 0}, 11.6 Package(){0x000fffff, 3, \_SB.PCI0.LNKC, 0}, 11.7 + 11.8 + /* Device 16, INTA - INTD */ 11.9 + Package(){0x0010ffff, 0, \_SB.PCI0.LNKA, 0}, 11.10 + Package(){0x0010ffff, 1, \_SB.PCI0.LNKB, 0}, 11.11 + Package(){0x0010ffff, 2, \_SB.PCI0.LNKC, 0}, 11.12 + Package(){0x0010ffff, 3, \_SB.PCI0.LNKD, 0}, 11.13 + 11.14 + /* Device 17, INTA - INTD */ 11.15 + Package(){0x0011ffff, 0, \_SB.PCI0.LNKB, 0}, 11.16 + Package(){0x0011ffff, 1, \_SB.PCI0.LNKC, 0}, 11.17 + Package(){0x0011ffff, 2, \_SB.PCI0.LNKD, 0}, 11.18 + Package(){0x0011ffff, 3, \_SB.PCI0.LNKA, 0}, 11.19 + 11.20 + /* Device 18, INTA - INTD */ 11.21 + Package(){0x0012ffff, 0, \_SB.PCI0.LNKC, 0}, 11.22 + Package(){0x0012ffff, 1, \_SB.PCI0.LNKD, 0}, 11.23 + Package(){0x0012ffff, 2, \_SB.PCI0.LNKA, 0}, 11.24 + Package(){0x0012ffff, 3, \_SB.PCI0.LNKB, 0}, 11.25 + 11.26 + /* Device 19, INTA - INTD */ 11.27 + Package(){0x0013ffff, 0, \_SB.PCI0.LNKD, 0}, 11.28 + Package(){0x0013ffff, 1, \_SB.PCI0.LNKA, 0}, 11.29 + Package(){0x0013ffff, 2, \_SB.PCI0.LNKB, 0}, 11.30 + Package(){0x0013ffff, 3, \_SB.PCI0.LNKC, 0}, 11.31 + 11.32 + /* Device 20, INTA - INTD */ 11.33 + Package(){0x0014ffff, 0, \_SB.PCI0.LNKA, 0}, 11.34 + Package(){0x0014ffff, 1, \_SB.PCI0.LNKB, 0}, 11.35 + Package(){0x0014ffff, 2, \_SB.PCI0.LNKC, 0}, 11.36 + Package(){0x0014ffff, 3, \_SB.PCI0.LNKD, 0}, 11.37 + 11.38 + /* Device 21, INTA - INTD */ 11.39 + Package(){0x0015ffff, 0, \_SB.PCI0.LNKB, 0}, 11.40 + Package(){0x0015ffff, 1, \_SB.PCI0.LNKC, 0}, 11.41 + Package(){0x0015ffff, 2, \_SB.PCI0.LNKD, 0}, 11.42 + Package(){0x0015ffff, 3, \_SB.PCI0.LNKA, 0}, 11.43 + 11.44 + /* Device 22, INTA - INTD */ 11.45 + Package(){0x0016ffff, 0, \_SB.PCI0.LNKC, 0}, 11.46 + Package(){0x0016ffff, 1, \_SB.PCI0.LNKD, 0}, 11.47 + Package(){0x0016ffff, 2, \_SB.PCI0.LNKA, 0}, 11.48 + Package(){0x0016ffff, 3, \_SB.PCI0.LNKB, 0}, 11.49 + 11.50 + /* Device 23, INTA - INTD */ 11.51 + Package(){0x0017ffff, 0, \_SB.PCI0.LNKD, 0}, 11.52 + Package(){0x0017ffff, 1, \_SB.PCI0.LNKA, 0}, 11.53 + Package(){0x0017ffff, 2, \_SB.PCI0.LNKB, 0}, 11.54 + Package(){0x0017ffff, 3, \_SB.PCI0.LNKC, 0}, 11.55 + 11.56 + /* Device 24, INTA - INTD */ 11.57 + Package(){0x0018ffff, 0, \_SB.PCI0.LNKA, 0}, 11.58 + Package(){0x0018ffff, 1, \_SB.PCI0.LNKB, 0}, 11.59 + Package(){0x0018ffff, 2, \_SB.PCI0.LNKC, 0}, 11.60 + Package(){0x0018ffff, 3, \_SB.PCI0.LNKD, 0}, 11.61 + 11.62 + /* Device 25, INTA - INTD */ 11.63 + Package(){0x0019ffff, 0, \_SB.PCI0.LNKB, 0}, 11.64 + Package(){0x0019ffff, 1, \_SB.PCI0.LNKC, 0}, 11.65 + Package(){0x0019ffff, 2, \_SB.PCI0.LNKD, 0}, 11.66 + Package(){0x0019ffff, 3, \_SB.PCI0.LNKA, 0}, 11.67 + 11.68 + /* Device 26, INTA - INTD */ 11.69 + Package(){0x001affff, 0, \_SB.PCI0.LNKC, 0}, 11.70 + Package(){0x001affff, 1, \_SB.PCI0.LNKD, 0}, 11.71 + Package(){0x001affff, 2, \_SB.PCI0.LNKA, 0}, 11.72 + Package(){0x001affff, 3, \_SB.PCI0.LNKB, 0}, 11.73 + 11.74 + /* Device 27, INTA - INTD */ 11.75 + Package(){0x001bffff, 0, \_SB.PCI0.LNKD, 0}, 11.76 + Package(){0x001bffff, 1, \_SB.PCI0.LNKA, 0}, 11.77 + Package(){0x001bffff, 2, \_SB.PCI0.LNKB, 0}, 11.78 + Package(){0x001bffff, 3, \_SB.PCI0.LNKC, 0}, 11.79 + 11.80 + /* Device 28, INTA - INTD */ 11.81 + Package(){0x001cffff, 0, \_SB.PCI0.LNKA, 0}, 11.82 + Package(){0x001cffff, 1, \_SB.PCI0.LNKB, 0}, 11.83 + Package(){0x001cffff, 2, \_SB.PCI0.LNKC, 0}, 11.84 + Package(){0x001cffff, 3, \_SB.PCI0.LNKD, 0}, 11.85 + 11.86 + /* Device 29, INTA - INTD */ 11.87 + Package(){0x001dffff, 0, \_SB.PCI0.LNKB, 0}, 11.88 + Package(){0x001dffff, 1, \_SB.PCI0.LNKC, 0}, 11.89 + Package(){0x001dffff, 2, \_SB.PCI0.LNKD, 0}, 11.90 + Package(){0x001dffff, 3, \_SB.PCI0.LNKA, 0}, 11.91 + 11.92 + /* Device 30, INTA - INTD */ 11.93 + Package(){0x001effff, 0, \_SB.PCI0.LNKC, 0}, 11.94 + Package(){0x001effff, 1, \_SB.PCI0.LNKD, 0}, 11.95 + Package(){0x001effff, 2, \_SB.PCI0.LNKA, 0}, 11.96 + Package(){0x001effff, 3, \_SB.PCI0.LNKB, 0}, 11.97 + 11.98 + /* Device 31, INTA - INTD */ 11.99 + Package(){0x001fffff, 0, \_SB.PCI0.LNKD, 0}, 11.100 + Package(){0x001fffff, 1, \_SB.PCI0.LNKA, 0}, 11.101 + Package(){0x001fffff, 2, \_SB.PCI0.LNKB, 0}, 11.102 + Package(){0x001fffff, 3, \_SB.PCI0.LNKC, 0}, 11.103 }) 11.104 11.105 Name(PRTA, Package() { 11.106 @@ -562,6 +658,102 @@ DefinitionBlock ("DSDT.aml", "DSDT", 2, 11.107 Package(){0x000fffff, 1, 0, 46}, 11.108 Package(){0x000fffff, 2, 0, 47}, 11.109 Package(){0x000fffff, 3, 0, 16}, 11.110 + 11.111 + /* Device 16, INTA - INTD */ 11.112 + Package(){0x0010ffff, 0, 0, 18}, 11.113 + Package(){0x0010ffff, 1, 0, 19}, 11.114 + Package(){0x0010ffff, 2, 0, 20}, 11.115 + Package(){0x0010ffff, 3, 0, 21}, 11.116 + 11.117 + /* Device 17, INTA - INTD */ 11.118 + Package(){0x0011ffff, 0, 0, 22}, 11.119 + Package(){0x0011ffff, 1, 0, 23}, 11.120 + Package(){0x0011ffff, 2, 0, 24}, 11.121 + Package(){0x0011ffff, 3, 0, 25}, 11.122 + 11.123 + /* Device 18, INTA - INTD */ 11.124 + Package(){0x0012ffff, 0, 0, 26}, 11.125 + Package(){0x0012ffff, 1, 0, 27}, 11.126 + Package(){0x0012ffff, 2, 0, 28}, 11.127 + Package(){0x0012ffff, 3, 0, 29}, 11.128 + 11.129 + /* Device 19, INTA - INTD */ 11.130 + Package(){0x0013ffff, 0, 0, 30}, 11.131 + Package(){0x0013ffff, 1, 0, 31}, 11.132 + Package(){0x0013ffff, 2, 0, 32}, 11.133 + Package(){0x0013ffff, 3, 0, 33}, 11.134 + 11.135 + /* Device 20, INTA - INTD */ 11.136 + Package(){0x0014ffff, 0, 0, 34}, 11.137 + Package(){0x0014ffff, 1, 0, 35}, 11.138 + Package(){0x0014ffff, 2, 0, 36}, 11.139 + Package(){0x0014ffff, 3, 0, 37}, 11.140 + 11.141 + /* Device 21, INTA - INTD */ 11.142 + Package(){0x0015ffff, 0, 0, 38}, 11.143 + Package(){0x0015ffff, 1, 0, 39}, 11.144 + Package(){0x0015ffff, 2, 0, 40}, 11.145 + Package(){0x0015ffff, 3, 0, 41}, 11.146 + 11.147 + /* Device 22, INTA - INTD */ 11.148 + Package(){0x0016ffff, 0, 0, 42}, 11.149 + Package(){0x0016ffff, 1, 0, 43}, 11.150 + Package(){0x0016ffff, 2, 0, 44}, 11.151 + Package(){0x0016ffff, 3, 0, 45}, 11.152 + 11.153 + /* Device 23, INTA - INTD */ 11.154 + Package(){0x0017ffff, 0, 0, 46}, 11.155 + Package(){0x0017ffff, 1, 0, 47}, 11.156 + Package(){0x0017ffff, 2, 0, 16}, 11.157 + Package(){0x0017ffff, 3, 0, 17}, 11.158 + 11.159 + /* Device 24, INTA - INTD */ 11.160 + Package(){0x0018ffff, 0, 0, 19}, 11.161 + Package(){0x0018ffff, 1, 0, 20}, 11.162 + Package(){0x0018ffff, 2, 0, 21}, 11.163 + Package(){0x0018ffff, 3, 0, 22}, 11.164 + 11.165 + /* Device 25, INTA - INTD */ 11.166 + Package(){0x0019ffff, 0, 0, 23}, 11.167 + Package(){0x0019ffff, 1, 0, 24}, 11.168 + Package(){0x0019ffff, 2, 0, 25}, 11.169 + Package(){0x0019ffff, 3, 0, 26}, 11.170 + 11.171 + /* Device 26, INTA - INTD */ 11.172 + Package(){0x001affff, 0, 0, 27}, 11.173 + Package(){0x001affff, 1, 0, 28}, 11.174 + Package(){0x001affff, 2, 0, 29}, 11.175 + Package(){0x001affff, 3, 0, 30}, 11.176 + 11.177 + /* Device 27, INTA - INTD */ 11.178 + Package(){0x001bffff, 0, 0, 31}, 11.179 + Package(){0x001bffff, 1, 0, 32}, 11.180 + Package(){0x001bffff, 2, 0, 33}, 11.181 + Package(){0x001bffff, 3, 0, 34}, 11.182 + 11.183 + /* Device 28, INTA - INTD */ 11.184 + Package(){0x001cffff, 0, 0, 35}, 11.185 + Package(){0x001cffff, 1, 0, 36}, 11.186 + Package(){0x001cffff, 2, 0, 37}, 11.187 + Package(){0x001cffff, 3, 0, 38}, 11.188 + 11.189 + /* Device 29, INTA - INTD */ 11.190 + Package(){0x001dffff, 0, 0, 39}, 11.191 + Package(){0x001dffff, 1, 0, 40}, 11.192 + Package(){0x001dffff, 2, 0, 41}, 11.193 + Package(){0x001dffff, 3, 0, 42}, 11.194 + 11.195 + /* Device 30, INTA - INTD */ 11.196 + Package(){0x001effff, 0, 0, 43}, 11.197 + Package(){0x001effff, 1, 0, 44}, 11.198 + Package(){0x001effff, 2, 0, 45}, 11.199 + Package(){0x001effff, 3, 0, 46}, 11.200 + 11.201 + /* Device 31, INTA - INTD */ 11.202 + Package(){0x001fffff, 0, 0, 47}, 11.203 + Package(){0x001fffff, 1, 0, 16}, 11.204 + Package(){0x001fffff, 2, 0, 17}, 11.205 + Package(){0x001fffff, 3, 0, 18}, 11.206 }) 11.207 11.208 Device (ISA)
12.1 --- a/tools/firmware/hvmloader/acpi/dsdt.c Fri Mar 06 12:22:22 2009 +0900 12.2 +++ b/tools/firmware/hvmloader/acpi/dsdt.c Tue Mar 10 11:00:34 2009 +0900 12.3 @@ -1,22 +1,22 @@ 12.4 /* 12.5 * 12.6 * Intel ACPI Component Architecture 12.7 - * ASL Optimizing Compiler version 20081204 [Jan 23 2009] 12.8 - * Copyright (C) 2000 - 2008 Intel Corporation 12.9 + * ASL Optimizing Compiler version 20090220 [Mar 9 2009] 12.10 + * Copyright (C) 2000 - 2009 Intel Corporation 12.11 * Supports ACPI Specification Revision 3.0a 12.12 * 12.13 - * Compilation of "dsdt.asl" - Fri Jan 23 14:30:29 2009 12.14 + * Compilation of "dsdt.asl" - Mon Mar 9 09:11:00 2009 12.15 * 12.16 * C source code output 12.17 * 12.18 */ 12.19 unsigned char AmlCode[] = 12.20 { 12.21 - 0x44,0x53,0x44,0x54,0x5E,0x11,0x00,0x00, /* 00000000 "DSDT^..." */ 12.22 - 0x02,0xEB,0x58,0x65,0x6E,0x00,0x00,0x00, /* 00000008 "..Xen..." */ 12.23 + 0x44,0x53,0x44,0x54,0x20,0x18,0x00,0x00, /* 00000000 "DSDT ..." */ 12.24 + 0x02,0x5B,0x58,0x65,0x6E,0x00,0x00,0x00, /* 00000008 ".[Xen..." */ 12.25 0x48,0x56,0x4D,0x00,0x00,0x00,0x00,0x00, /* 00000010 "HVM....." */ 12.26 0x00,0x00,0x00,0x00,0x49,0x4E,0x54,0x4C, /* 00000018 "....INTL" */ 12.27 - 0x04,0x12,0x08,0x20,0x08,0x50,0x4D,0x42, /* 00000020 "... .PMB" */ 12.28 + 0x20,0x02,0x09,0x20,0x08,0x50,0x4D,0x42, /* 00000020 " .. .PMB" */ 12.29 0x53,0x0B,0x00,0x0C,0x08,0x50,0x4D,0x4C, /* 00000028 "S....PML" */ 12.30 0x4E,0x0A,0x08,0x08,0x49,0x4F,0x42,0x31, /* 00000030 "N...IOB1" */ 12.31 0x00,0x08,0x49,0x4F,0x4C,0x31,0x00,0x08, /* 00000038 "..IOL1.." */ 12.32 @@ -56,517 +56,734 @@ unsigned char AmlCode[] = 12.33 0x07,0x0A,0x07,0x00,0x00,0x08,0x50,0x49, /* 00000148 "......PI" */ 12.34 0x43,0x44,0x00,0x14,0x0C,0x5F,0x50,0x49, /* 00000150 "CD..._PI" */ 12.35 0x43,0x01,0x70,0x68,0x50,0x49,0x43,0x44, /* 00000158 "C.phPICD" */ 12.36 - 0x10,0x4E,0xF3,0x5F,0x53,0x42,0x5F,0x5B, /* 00000160 ".N._SB_[" */ 12.37 - 0x80,0x42,0x49,0x4F,0x53,0x00,0x0C,0x00, /* 00000168 ".BIOS..." */ 12.38 - 0xA0,0x0E,0x00,0x0A,0x10,0x5B,0x81,0x21, /* 00000170 ".....[.!" */ 12.39 - 0x42,0x49,0x4F,0x53,0x01,0x55,0x41,0x52, /* 00000178 "BIOS.UAR" */ 12.40 - 0x31,0x01,0x55,0x41,0x52,0x32,0x01,0x48, /* 00000180 "1.UAR2.H" */ 12.41 - 0x50,0x45,0x54,0x01,0x00,0x1D,0x50,0x4D, /* 00000188 "PET...PM" */ 12.42 - 0x49,0x4E,0x20,0x50,0x4C,0x45,0x4E,0x20, /* 00000190 "IN PLEN " */ 12.43 - 0x5B,0x82,0x49,0x04,0x4D,0x45,0x4D,0x30, /* 00000198 "[.I.MEM0" */ 12.44 - 0x08,0x5F,0x48,0x49,0x44,0x0C,0x41,0xD0, /* 000001A0 "._HID.A." */ 12.45 - 0x0C,0x02,0x08,0x5F,0x43,0x52,0x53,0x11, /* 000001A8 "..._CRS." */ 12.46 - 0x33,0x0A,0x30,0x8A,0x2B,0x00,0x00,0x0D, /* 000001B0 "3.0.+..." */ 12.47 - 0x03,0x00,0x00,0x00,0x00,0x00,0x00,0x00, /* 000001B8 "........" */ 12.48 + 0x10,0x80,0x60,0x01,0x5F,0x53,0x42,0x5F, /* 00000160 "..`._SB_" */ 12.49 + 0x5B,0x80,0x42,0x49,0x4F,0x53,0x00,0x0C, /* 00000168 "[.BIOS.." */ 12.50 + 0x00,0xA0,0x0E,0x00,0x0A,0x10,0x5B,0x81, /* 00000170 "......[." */ 12.51 + 0x21,0x42,0x49,0x4F,0x53,0x01,0x55,0x41, /* 00000178 "!BIOS.UA" */ 12.52 + 0x52,0x31,0x01,0x55,0x41,0x52,0x32,0x01, /* 00000180 "R1.UAR2." */ 12.53 + 0x48,0x50,0x45,0x54,0x01,0x00,0x1D,0x50, /* 00000188 "HPET...P" */ 12.54 + 0x4D,0x49,0x4E,0x20,0x50,0x4C,0x45,0x4E, /* 00000190 "MIN PLEN" */ 12.55 + 0x20,0x5B,0x82,0x49,0x04,0x4D,0x45,0x4D, /* 00000198 " [.I.MEM" */ 12.56 + 0x30,0x08,0x5F,0x48,0x49,0x44,0x0C,0x41, /* 000001A0 "0._HID.A" */ 12.57 + 0xD0,0x0C,0x02,0x08,0x5F,0x43,0x52,0x53, /* 000001A8 "...._CRS" */ 12.58 + 0x11,0x33,0x0A,0x30,0x8A,0x2B,0x00,0x00, /* 000001B0 ".3.0.+.." */ 12.59 + 0x0D,0x03,0x00,0x00,0x00,0x00,0x00,0x00, /* 000001B8 "........" */ 12.60 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, /* 000001C0 "........" */ 12.61 - 0x00,0xFF,0xFF,0x09,0x00,0x00,0x00,0x00, /* 000001C8 "........" */ 12.62 + 0x00,0x00,0xFF,0xFF,0x09,0x00,0x00,0x00, /* 000001C8 "........" */ 12.63 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, /* 000001D0 "........" */ 12.64 - 0x00,0x00,0x00,0x0A,0x00,0x00,0x00,0x00, /* 000001D8 "........" */ 12.65 - 0x00,0x79,0x00,0x5B,0x82,0x4A,0xEB,0x50, /* 000001E0 ".y.[.J.P" */ 12.66 - 0x43,0x49,0x30,0x08,0x5F,0x48,0x49,0x44, /* 000001E8 "CI0._HID" */ 12.67 - 0x0C,0x41,0xD0,0x0A,0x03,0x08,0x5F,0x55, /* 000001F0 ".A...._U" */ 12.68 - 0x49,0x44,0x00,0x08,0x5F,0x41,0x44,0x52, /* 000001F8 "ID.._ADR" */ 12.69 - 0x00,0x08,0x5F,0x42,0x42,0x4E,0x00,0x5B, /* 00000200 ".._BBN.[" */ 12.70 - 0x82,0x2A,0x48,0x50,0x30,0x5F,0x08,0x5F, /* 00000208 ".*HP0_._" */ 12.71 - 0x48,0x49,0x44,0x0C,0x41,0xD0,0x0C,0x02, /* 00000210 "HID.A..." */ 12.72 - 0x08,0x5F,0x43,0x52,0x53,0x11,0x15,0x0A, /* 00000218 "._CRS..." */ 12.73 - 0x12,0x47,0x01,0xC0,0x10,0xC0,0x10,0x00, /* 00000220 ".G......" */ 12.74 - 0x03,0x47,0x01,0x44,0xB0,0x44,0xB0,0x00, /* 00000228 ".G.D.D.." */ 12.75 - 0x04,0x79,0x00,0x14,0x4E,0x0C,0x5F,0x43, /* 00000230 ".y..N._C" */ 12.76 - 0x52,0x53,0x00,0x08,0x50,0x52,0x54,0x30, /* 00000238 "RS..PRT0" */ 12.77 - 0x11,0x42,0x07,0x0A,0x6E,0x88,0x0D,0x00, /* 00000240 ".B..n..." */ 12.78 - 0x02,0x0E,0x00,0x00,0x00,0x00,0x00,0xFF, /* 00000248 "........" */ 12.79 - 0x00,0x00,0x00,0x00,0x01,0x47,0x01,0xF8, /* 00000250 ".....G.." */ 12.80 - 0x0C,0xF8,0x0C,0x01,0x08,0x88,0x0D,0x00, /* 00000258 "........" */ 12.81 - 0x01,0x0C,0x03,0x00,0x00,0x00,0x00,0xF7, /* 00000260 "........" */ 12.82 - 0x0C,0x00,0x00,0xF8,0x0C,0x88,0x0D,0x00, /* 00000268 "........" */ 12.83 - 0x01,0x0C,0x03,0x00,0x00,0x00,0x0D,0xFF, /* 00000270 "........" */ 12.84 - 0xFF,0x00,0x00,0x00,0xF3,0x87,0x17,0x00, /* 00000278 "........" */ 12.85 - 0x00,0x0C,0x03,0x00,0x00,0x00,0x00,0x00, /* 00000280 "........" */ 12.86 - 0x00,0x0A,0x00,0xFF,0xFF,0x0B,0x00,0x00, /* 00000288 "........" */ 12.87 - 0x00,0x00,0x00,0x00,0x00,0x02,0x00,0x87, /* 00000290 "........" */ 12.88 - 0x17,0x00,0x00,0x0C,0x03,0x00,0x00,0x00, /* 00000298 "........" */ 12.89 - 0x00,0x00,0x00,0x00,0xF0,0xFF,0xFF,0xFF, /* 000002A0 "........" */ 12.90 - 0xF4,0x00,0x00,0x00,0x00,0x00,0x00,0x00, /* 000002A8 "........" */ 12.91 - 0x05,0x79,0x00,0x8A,0x50,0x52,0x54,0x30, /* 000002B0 ".y..PRT0" */ 12.92 - 0x0A,0x5C,0x4D,0x4D,0x49,0x4E,0x8A,0x50, /* 000002B8 ".\MMIN.P" */ 12.93 - 0x52,0x54,0x30,0x0A,0x60,0x4D,0x4D,0x41, /* 000002C0 "RT0.`MMA" */ 12.94 - 0x58,0x8A,0x50,0x52,0x54,0x30,0x0A,0x68, /* 000002C8 "X.PRT0.h" */ 12.95 - 0x4D,0x4C,0x45,0x4E,0x70,0x50,0x4D,0x49, /* 000002D0 "MLENpPMI" */ 12.96 - 0x4E,0x4D,0x4D,0x49,0x4E,0x70,0x50,0x4C, /* 000002D8 "NMMINpPL" */ 12.97 - 0x45,0x4E,0x4D,0x4C,0x45,0x4E,0x72,0x4D, /* 000002E0 "ENMLENrM" */ 12.98 - 0x4D,0x49,0x4E,0x4D,0x4C,0x45,0x4E,0x4D, /* 000002E8 "MINMLENM" */ 12.99 - 0x4D,0x41,0x58,0x74,0x4D,0x4D,0x41,0x58, /* 000002F0 "MAXtMMAX" */ 12.100 - 0x01,0x4D,0x4D,0x41,0x58,0xA4,0x50,0x52, /* 000002F8 ".MMAX.PR" */ 12.101 - 0x54,0x30,0x08,0x42,0x55,0x46,0x41,0x11, /* 00000300 "T0.BUFA." */ 12.102 - 0x09,0x0A,0x06,0x23,0x20,0x0C,0x18,0x79, /* 00000308 "...# ..y" */ 12.103 - 0x00,0x08,0x42,0x55,0x46,0x42,0x11,0x09, /* 00000310 "..BUFB.." */ 12.104 - 0x0A,0x06,0x23,0x00,0x00,0x18,0x79,0x00, /* 00000318 "..#...y." */ 12.105 - 0x8B,0x42,0x55,0x46,0x42,0x01,0x49,0x52, /* 00000320 ".BUFB.IR" */ 12.106 - 0x51,0x56,0x5B,0x82,0x48,0x08,0x4C,0x4E, /* 00000328 "QV[.H.LN" */ 12.107 - 0x4B,0x41,0x08,0x5F,0x48,0x49,0x44,0x0C, /* 00000330 "KA._HID." */ 12.108 - 0x41,0xD0,0x0C,0x0F,0x08,0x5F,0x55,0x49, /* 00000338 "A...._UI" */ 12.109 - 0x44,0x01,0x14,0x1C,0x5F,0x53,0x54,0x41, /* 00000340 "D..._STA" */ 12.110 - 0x00,0x7B,0x50,0x49,0x52,0x41,0x0A,0x80, /* 00000348 ".{PIRA.." */ 12.111 - 0x60,0xA0,0x08,0x93,0x60,0x0A,0x80,0xA4, /* 00000350 "`...`..." */ 12.112 - 0x0A,0x09,0xA1,0x04,0xA4,0x0A,0x0B,0x14, /* 00000358 "........" */ 12.113 - 0x0B,0x5F,0x50,0x52,0x53,0x00,0xA4,0x42, /* 00000360 "._PRS..B" */ 12.114 - 0x55,0x46,0x41,0x14,0x11,0x5F,0x44,0x49, /* 00000368 "UFA.._DI" */ 12.115 - 0x53,0x00,0x7D,0x50,0x49,0x52,0x41,0x0A, /* 00000370 "S.}PIRA." */ 12.116 - 0x80,0x50,0x49,0x52,0x41,0x14,0x1A,0x5F, /* 00000378 ".PIRA.._" */ 12.117 - 0x43,0x52,0x53,0x00,0x7B,0x50,0x49,0x52, /* 00000380 "CRS.{PIR" */ 12.118 - 0x41,0x0A,0x0F,0x60,0x79,0x01,0x60,0x49, /* 00000388 "A..`y.`I" */ 12.119 - 0x52,0x51,0x56,0xA4,0x42,0x55,0x46,0x42, /* 00000390 "RQV.BUFB" */ 12.120 - 0x14,0x1B,0x5F,0x53,0x52,0x53,0x01,0x8B, /* 00000398 ".._SRS.." */ 12.121 - 0x68,0x01,0x49,0x52,0x51,0x31,0x82,0x49, /* 000003A0 "h.IRQ1.I" */ 12.122 - 0x52,0x51,0x31,0x60,0x76,0x60,0x70,0x60, /* 000003A8 "RQ1`v`p`" */ 12.123 - 0x50,0x49,0x52,0x41,0x5B,0x82,0x49,0x08, /* 000003B0 "PIRA[.I." */ 12.124 - 0x4C,0x4E,0x4B,0x42,0x08,0x5F,0x48,0x49, /* 000003B8 "LNKB._HI" */ 12.125 - 0x44,0x0C,0x41,0xD0,0x0C,0x0F,0x08,0x5F, /* 000003C0 "D.A...._" */ 12.126 - 0x55,0x49,0x44,0x0A,0x02,0x14,0x1C,0x5F, /* 000003C8 "UID...._" */ 12.127 - 0x53,0x54,0x41,0x00,0x7B,0x50,0x49,0x52, /* 000003D0 "STA.{PIR" */ 12.128 - 0x42,0x0A,0x80,0x60,0xA0,0x08,0x93,0x60, /* 000003D8 "B..`...`" */ 12.129 - 0x0A,0x80,0xA4,0x0A,0x09,0xA1,0x04,0xA4, /* 000003E0 "........" */ 12.130 - 0x0A,0x0B,0x14,0x0B,0x5F,0x50,0x52,0x53, /* 000003E8 "...._PRS" */ 12.131 - 0x00,0xA4,0x42,0x55,0x46,0x41,0x14,0x11, /* 000003F0 "..BUFA.." */ 12.132 - 0x5F,0x44,0x49,0x53,0x00,0x7D,0x50,0x49, /* 000003F8 "_DIS.}PI" */ 12.133 - 0x52,0x42,0x0A,0x80,0x50,0x49,0x52,0x42, /* 00000400 "RB..PIRB" */ 12.134 - 0x14,0x1A,0x5F,0x43,0x52,0x53,0x00,0x7B, /* 00000408 ".._CRS.{" */ 12.135 - 0x50,0x49,0x52,0x42,0x0A,0x0F,0x60,0x79, /* 00000410 "PIRB..`y" */ 12.136 - 0x01,0x60,0x49,0x52,0x51,0x56,0xA4,0x42, /* 00000418 ".`IRQV.B" */ 12.137 - 0x55,0x46,0x42,0x14,0x1B,0x5F,0x53,0x52, /* 00000420 "UFB.._SR" */ 12.138 - 0x53,0x01,0x8B,0x68,0x01,0x49,0x52,0x51, /* 00000428 "S..h.IRQ" */ 12.139 - 0x31,0x82,0x49,0x52,0x51,0x31,0x60,0x76, /* 00000430 "1.IRQ1`v" */ 12.140 - 0x60,0x70,0x60,0x50,0x49,0x52,0x42,0x5B, /* 00000438 "`p`PIRB[" */ 12.141 - 0x82,0x49,0x08,0x4C,0x4E,0x4B,0x43,0x08, /* 00000440 ".I.LNKC." */ 12.142 - 0x5F,0x48,0x49,0x44,0x0C,0x41,0xD0,0x0C, /* 00000448 "_HID.A.." */ 12.143 - 0x0F,0x08,0x5F,0x55,0x49,0x44,0x0A,0x03, /* 00000450 ".._UID.." */ 12.144 - 0x14,0x1C,0x5F,0x53,0x54,0x41,0x00,0x7B, /* 00000458 ".._STA.{" */ 12.145 - 0x50,0x49,0x52,0x43,0x0A,0x80,0x60,0xA0, /* 00000460 "PIRC..`." */ 12.146 - 0x08,0x93,0x60,0x0A,0x80,0xA4,0x0A,0x09, /* 00000468 "..`....." */ 12.147 - 0xA1,0x04,0xA4,0x0A,0x0B,0x14,0x0B,0x5F, /* 00000470 "......._" */ 12.148 - 0x50,0x52,0x53,0x00,0xA4,0x42,0x55,0x46, /* 00000478 "PRS..BUF" */ 12.149 - 0x41,0x14,0x11,0x5F,0x44,0x49,0x53,0x00, /* 00000480 "A.._DIS." */ 12.150 - 0x7D,0x50,0x49,0x52,0x43,0x0A,0x80,0x50, /* 00000488 "}PIRC..P" */ 12.151 - 0x49,0x52,0x43,0x14,0x1A,0x5F,0x43,0x52, /* 00000490 "IRC.._CR" */ 12.152 - 0x53,0x00,0x7B,0x50,0x49,0x52,0x43,0x0A, /* 00000498 "S.{PIRC." */ 12.153 - 0x0F,0x60,0x79,0x01,0x60,0x49,0x52,0x51, /* 000004A0 ".`y.`IRQ" */ 12.154 - 0x56,0xA4,0x42,0x55,0x46,0x42,0x14,0x1B, /* 000004A8 "V.BUFB.." */ 12.155 - 0x5F,0x53,0x52,0x53,0x01,0x8B,0x68,0x01, /* 000004B0 "_SRS..h." */ 12.156 - 0x49,0x52,0x51,0x31,0x82,0x49,0x52,0x51, /* 000004B8 "IRQ1.IRQ" */ 12.157 - 0x31,0x60,0x76,0x60,0x70,0x60,0x50,0x49, /* 000004C0 "1`v`p`PI" */ 12.158 - 0x52,0x43,0x5B,0x82,0x49,0x08,0x4C,0x4E, /* 000004C8 "RC[.I.LN" */ 12.159 - 0x4B,0x44,0x08,0x5F,0x48,0x49,0x44,0x0C, /* 000004D0 "KD._HID." */ 12.160 - 0x41,0xD0,0x0C,0x0F,0x08,0x5F,0x55,0x49, /* 000004D8 "A...._UI" */ 12.161 - 0x44,0x0A,0x04,0x14,0x1C,0x5F,0x53,0x54, /* 000004E0 "D...._ST" */ 12.162 - 0x41,0x00,0x7B,0x50,0x49,0x52,0x44,0x0A, /* 000004E8 "A.{PIRD." */ 12.163 - 0x80,0x60,0xA0,0x08,0x93,0x60,0x0A,0x80, /* 000004F0 ".`...`.." */ 12.164 - 0xA4,0x0A,0x09,0xA1,0x04,0xA4,0x0A,0x0B, /* 000004F8 "........" */ 12.165 - 0x14,0x0B,0x5F,0x50,0x52,0x53,0x00,0xA4, /* 00000500 ".._PRS.." */ 12.166 - 0x42,0x55,0x46,0x41,0x14,0x11,0x5F,0x44, /* 00000508 "BUFA.._D" */ 12.167 - 0x49,0x53,0x00,0x7D,0x50,0x49,0x52,0x44, /* 00000510 "IS.}PIRD" */ 12.168 - 0x0A,0x80,0x50,0x49,0x52,0x44,0x14,0x1A, /* 00000518 "..PIRD.." */ 12.169 - 0x5F,0x43,0x52,0x53,0x00,0x7B,0x50,0x49, /* 00000520 "_CRS.{PI" */ 12.170 - 0x52,0x44,0x0A,0x0F,0x60,0x79,0x01,0x60, /* 00000528 "RD..`y.`" */ 12.171 - 0x49,0x52,0x51,0x56,0xA4,0x42,0x55,0x46, /* 00000530 "IRQV.BUF" */ 12.172 - 0x42,0x14,0x1B,0x5F,0x53,0x52,0x53,0x01, /* 00000538 "B.._SRS." */ 12.173 - 0x8B,0x68,0x01,0x49,0x52,0x51,0x31,0x82, /* 00000540 ".h.IRQ1." */ 12.174 - 0x49,0x52,0x51,0x31,0x60,0x76,0x60,0x70, /* 00000548 "IRQ1`v`p" */ 12.175 - 0x60,0x50,0x49,0x52,0x44,0x5B,0x82,0x44, /* 00000550 "`PIRD[.D" */ 12.176 - 0x05,0x48,0x50,0x45,0x54,0x08,0x5F,0x48, /* 00000558 ".HPET._H" */ 12.177 - 0x49,0x44,0x0C,0x41,0xD0,0x01,0x03,0x08, /* 00000560 "ID.A...." */ 12.178 - 0x5F,0x55,0x49,0x44,0x00,0x14,0x18,0x5F, /* 00000568 "_UID..._" */ 12.179 - 0x53,0x54,0x41,0x00,0xA0,0x0C,0x93,0x5E, /* 00000570 "STA....^" */ 12.180 - 0x5E,0x5E,0x48,0x50,0x45,0x54,0x00,0xA4, /* 00000578 "^^HPET.." */ 12.181 - 0x00,0xA1,0x04,0xA4,0x0A,0x0F,0x08,0x5F, /* 00000580 "......._" */ 12.182 - 0x43,0x52,0x53,0x11,0x1F,0x0A,0x1C,0x87, /* 00000588 "CRS....." */ 12.183 - 0x17,0x00,0x00,0x0D,0x01,0x00,0x00,0x00, /* 00000590 "........" */ 12.184 - 0x00,0x00,0x00,0xD0,0xFE,0xFF,0x03,0xD0, /* 00000598 "........" */ 12.185 - 0xFE,0x00,0x00,0x00,0x00,0x00,0x04,0x00, /* 000005A0 "........" */ 12.186 - 0x00,0x79,0x00,0x14,0x16,0x5F,0x50,0x52, /* 000005A8 ".y..._PR" */ 12.187 - 0x54,0x00,0xA0,0x0A,0x50,0x49,0x43,0x44, /* 000005B0 "T...PICD" */ 12.188 - 0xA4,0x50,0x52,0x54,0x41,0xA4,0x50,0x52, /* 000005B8 ".PRTA.PR" */ 12.189 - 0x54,0x50,0x08,0x50,0x52,0x54,0x50,0x12, /* 000005C0 "TP.PRTP." */ 12.190 - 0x49,0x36,0x3C,0x12,0x0D,0x04,0x0C,0xFF, /* 000005C8 "I6<....." */ 12.191 - 0xFF,0x01,0x00,0x00,0x4C,0x4E,0x4B,0x42, /* 000005D0 "....LNKB" */ 12.192 - 0x00,0x12,0x0D,0x04,0x0C,0xFF,0xFF,0x01, /* 000005D8 "........" */ 12.193 - 0x00,0x01,0x4C,0x4E,0x4B,0x43,0x00,0x12, /* 000005E0 "..LNKC.." */ 12.194 - 0x0E,0x04,0x0C,0xFF,0xFF,0x01,0x00,0x0A, /* 000005E8 "........" */ 12.195 - 0x02,0x4C,0x4E,0x4B,0x44,0x00,0x12,0x0E, /* 000005F0 ".LNKD..." */ 12.196 - 0x04,0x0C,0xFF,0xFF,0x01,0x00,0x0A,0x03, /* 000005F8 "........" */ 12.197 - 0x4C,0x4E,0x4B,0x41,0x00,0x12,0x0D,0x04, /* 00000600 "LNKA...." */ 12.198 - 0x0C,0xFF,0xFF,0x02,0x00,0x00,0x4C,0x4E, /* 00000608 "......LN" */ 12.199 - 0x4B,0x43,0x00,0x12,0x0D,0x04,0x0C,0xFF, /* 00000610 "KC......" */ 12.200 - 0xFF,0x02,0x00,0x01,0x4C,0x4E,0x4B,0x44, /* 00000618 "....LNKD" */ 12.201 - 0x00,0x12,0x0E,0x04,0x0C,0xFF,0xFF,0x02, /* 00000620 "........" */ 12.202 - 0x00,0x0A,0x02,0x4C,0x4E,0x4B,0x41,0x00, /* 00000628 "...LNKA." */ 12.203 - 0x12,0x0E,0x04,0x0C,0xFF,0xFF,0x02,0x00, /* 00000630 "........" */ 12.204 - 0x0A,0x03,0x4C,0x4E,0x4B,0x42,0x00,0x12, /* 00000638 "..LNKB.." */ 12.205 - 0x0D,0x04,0x0C,0xFF,0xFF,0x03,0x00,0x00, /* 00000640 "........" */ 12.206 - 0x4C,0x4E,0x4B,0x44,0x00,0x12,0x0D,0x04, /* 00000648 "LNKD...." */ 12.207 - 0x0C,0xFF,0xFF,0x03,0x00,0x01,0x4C,0x4E, /* 00000650 "......LN" */ 12.208 - 0x4B,0x41,0x00,0x12,0x0E,0x04,0x0C,0xFF, /* 00000658 "KA......" */ 12.209 - 0xFF,0x03,0x00,0x0A,0x02,0x4C,0x4E,0x4B, /* 00000660 ".....LNK" */ 12.210 - 0x42,0x00,0x12,0x0E,0x04,0x0C,0xFF,0xFF, /* 00000668 "B......." */ 12.211 - 0x03,0x00,0x0A,0x03,0x4C,0x4E,0x4B,0x43, /* 00000670 "....LNKC" */ 12.212 - 0x00,0x12,0x0D,0x04,0x0C,0xFF,0xFF,0x04, /* 00000678 "........" */ 12.213 - 0x00,0x00,0x4C,0x4E,0x4B,0x41,0x00,0x12, /* 00000680 "..LNKA.." */ 12.214 - 0x0D,0x04,0x0C,0xFF,0xFF,0x04,0x00,0x01, /* 00000688 "........" */ 12.215 - 0x4C,0x4E,0x4B,0x42,0x00,0x12,0x0E,0x04, /* 00000690 "LNKB...." */ 12.216 - 0x0C,0xFF,0xFF,0x04,0x00,0x0A,0x02,0x4C, /* 00000698 ".......L" */ 12.217 - 0x4E,0x4B,0x43,0x00,0x12,0x0E,0x04,0x0C, /* 000006A0 "NKC....." */ 12.218 - 0xFF,0xFF,0x04,0x00,0x0A,0x03,0x4C,0x4E, /* 000006A8 "......LN" */ 12.219 - 0x4B,0x44,0x00,0x12,0x0D,0x04,0x0C,0xFF, /* 000006B0 "KD......" */ 12.220 - 0xFF,0x05,0x00,0x00,0x4C,0x4E,0x4B,0x42, /* 000006B8 "....LNKB" */ 12.221 - 0x00,0x12,0x0D,0x04,0x0C,0xFF,0xFF,0x05, /* 000006C0 "........" */ 12.222 - 0x00,0x01,0x4C,0x4E,0x4B,0x43,0x00,0x12, /* 000006C8 "..LNKC.." */ 12.223 - 0x0E,0x04,0x0C,0xFF,0xFF,0x05,0x00,0x0A, /* 000006D0 "........" */ 12.224 - 0x02,0x4C,0x4E,0x4B,0x44,0x00,0x12,0x0E, /* 000006D8 ".LNKD..." */ 12.225 - 0x04,0x0C,0xFF,0xFF,0x05,0x00,0x0A,0x03, /* 000006E0 "........" */ 12.226 - 0x4C,0x4E,0x4B,0x41,0x00,0x12,0x0D,0x04, /* 000006E8 "LNKA...." */ 12.227 - 0x0C,0xFF,0xFF,0x06,0x00,0x00,0x4C,0x4E, /* 000006F0 "......LN" */ 12.228 - 0x4B,0x43,0x00,0x12,0x0D,0x04,0x0C,0xFF, /* 000006F8 "KC......" */ 12.229 - 0xFF,0x06,0x00,0x01,0x4C,0x4E,0x4B,0x44, /* 00000700 "....LNKD" */ 12.230 - 0x00,0x12,0x0E,0x04,0x0C,0xFF,0xFF,0x06, /* 00000708 "........" */ 12.231 - 0x00,0x0A,0x02,0x4C,0x4E,0x4B,0x41,0x00, /* 00000710 "...LNKA." */ 12.232 - 0x12,0x0E,0x04,0x0C,0xFF,0xFF,0x06,0x00, /* 00000718 "........" */ 12.233 - 0x0A,0x03,0x4C,0x4E,0x4B,0x42,0x00,0x12, /* 00000720 "..LNKB.." */ 12.234 - 0x0D,0x04,0x0C,0xFF,0xFF,0x07,0x00,0x00, /* 00000728 "........" */ 12.235 - 0x4C,0x4E,0x4B,0x44,0x00,0x12,0x0D,0x04, /* 00000730 "LNKD...." */ 12.236 - 0x0C,0xFF,0xFF,0x07,0x00,0x01,0x4C,0x4E, /* 00000738 "......LN" */ 12.237 - 0x4B,0x41,0x00,0x12,0x0E,0x04,0x0C,0xFF, /* 00000740 "KA......" */ 12.238 - 0xFF,0x07,0x00,0x0A,0x02,0x4C,0x4E,0x4B, /* 00000748 ".....LNK" */ 12.239 - 0x42,0x00,0x12,0x0E,0x04,0x0C,0xFF,0xFF, /* 00000750 "B......." */ 12.240 - 0x07,0x00,0x0A,0x03,0x4C,0x4E,0x4B,0x43, /* 00000758 "....LNKC" */ 12.241 - 0x00,0x12,0x0D,0x04,0x0C,0xFF,0xFF,0x08, /* 00000760 "........" */ 12.242 - 0x00,0x00,0x4C,0x4E,0x4B,0x41,0x00,0x12, /* 00000768 "..LNKA.." */ 12.243 - 0x0D,0x04,0x0C,0xFF,0xFF,0x08,0x00,0x01, /* 00000770 "........" */ 12.244 - 0x4C,0x4E,0x4B,0x42,0x00,0x12,0x0E,0x04, /* 00000778 "LNKB...." */ 12.245 - 0x0C,0xFF,0xFF,0x08,0x00,0x0A,0x02,0x4C, /* 00000780 ".......L" */ 12.246 - 0x4E,0x4B,0x43,0x00,0x12,0x0E,0x04,0x0C, /* 00000788 "NKC....." */ 12.247 - 0xFF,0xFF,0x08,0x00,0x0A,0x03,0x4C,0x4E, /* 00000790 "......LN" */ 12.248 - 0x4B,0x44,0x00,0x12,0x0D,0x04,0x0C,0xFF, /* 00000798 "KD......" */ 12.249 - 0xFF,0x09,0x00,0x00,0x4C,0x4E,0x4B,0x42, /* 000007A0 "....LNKB" */ 12.250 - 0x00,0x12,0x0D,0x04,0x0C,0xFF,0xFF,0x09, /* 000007A8 "........" */ 12.251 - 0x00,0x01,0x4C,0x4E,0x4B,0x43,0x00,0x12, /* 000007B0 "..LNKC.." */ 12.252 - 0x0E,0x04,0x0C,0xFF,0xFF,0x09,0x00,0x0A, /* 000007B8 "........" */ 12.253 - 0x02,0x4C,0x4E,0x4B,0x44,0x00,0x12,0x0E, /* 000007C0 ".LNKD..." */ 12.254 - 0x04,0x0C,0xFF,0xFF,0x09,0x00,0x0A,0x03, /* 000007C8 "........" */ 12.255 - 0x4C,0x4E,0x4B,0x41,0x00,0x12,0x0D,0x04, /* 000007D0 "LNKA...." */ 12.256 - 0x0C,0xFF,0xFF,0x0A,0x00,0x00,0x4C,0x4E, /* 000007D8 "......LN" */ 12.257 - 0x4B,0x43,0x00,0x12,0x0D,0x04,0x0C,0xFF, /* 000007E0 "KC......" */ 12.258 - 0xFF,0x0A,0x00,0x01,0x4C,0x4E,0x4B,0x44, /* 000007E8 "....LNKD" */ 12.259 - 0x00,0x12,0x0E,0x04,0x0C,0xFF,0xFF,0x0A, /* 000007F0 "........" */ 12.260 - 0x00,0x0A,0x02,0x4C,0x4E,0x4B,0x41,0x00, /* 000007F8 "...LNKA." */ 12.261 - 0x12,0x0E,0x04,0x0C,0xFF,0xFF,0x0A,0x00, /* 00000800 "........" */ 12.262 - 0x0A,0x03,0x4C,0x4E,0x4B,0x42,0x00,0x12, /* 00000808 "..LNKB.." */ 12.263 - 0x0D,0x04,0x0C,0xFF,0xFF,0x0B,0x00,0x00, /* 00000810 "........" */ 12.264 - 0x4C,0x4E,0x4B,0x44,0x00,0x12,0x0D,0x04, /* 00000818 "LNKD...." */ 12.265 - 0x0C,0xFF,0xFF,0x0B,0x00,0x01,0x4C,0x4E, /* 00000820 "......LN" */ 12.266 - 0x4B,0x41,0x00,0x12,0x0E,0x04,0x0C,0xFF, /* 00000828 "KA......" */ 12.267 - 0xFF,0x0B,0x00,0x0A,0x02,0x4C,0x4E,0x4B, /* 00000830 ".....LNK" */ 12.268 - 0x42,0x00,0x12,0x0E,0x04,0x0C,0xFF,0xFF, /* 00000838 "B......." */ 12.269 - 0x0B,0x00,0x0A,0x03,0x4C,0x4E,0x4B,0x43, /* 00000840 "....LNKC" */ 12.270 - 0x00,0x12,0x0D,0x04,0x0C,0xFF,0xFF,0x0C, /* 00000848 "........" */ 12.271 - 0x00,0x00,0x4C,0x4E,0x4B,0x41,0x00,0x12, /* 00000850 "..LNKA.." */ 12.272 - 0x0D,0x04,0x0C,0xFF,0xFF,0x0C,0x00,0x01, /* 00000858 "........" */ 12.273 - 0x4C,0x4E,0x4B,0x42,0x00,0x12,0x0E,0x04, /* 00000860 "LNKB...." */ 12.274 - 0x0C,0xFF,0xFF,0x0C,0x00,0x0A,0x02,0x4C, /* 00000868 ".......L" */ 12.275 - 0x4E,0x4B,0x43,0x00,0x12,0x0E,0x04,0x0C, /* 00000870 "NKC....." */ 12.276 - 0xFF,0xFF,0x0C,0x00,0x0A,0x03,0x4C,0x4E, /* 00000878 "......LN" */ 12.277 - 0x4B,0x44,0x00,0x12,0x0D,0x04,0x0C,0xFF, /* 00000880 "KD......" */ 12.278 - 0xFF,0x0D,0x00,0x00,0x4C,0x4E,0x4B,0x42, /* 00000888 "....LNKB" */ 12.279 - 0x00,0x12,0x0D,0x04,0x0C,0xFF,0xFF,0x0D, /* 00000890 "........" */ 12.280 - 0x00,0x01,0x4C,0x4E,0x4B,0x43,0x00,0x12, /* 00000898 "..LNKC.." */ 12.281 - 0x0E,0x04,0x0C,0xFF,0xFF,0x0D,0x00,0x0A, /* 000008A0 "........" */ 12.282 - 0x02,0x4C,0x4E,0x4B,0x44,0x00,0x12,0x0E, /* 000008A8 ".LNKD..." */ 12.283 - 0x04,0x0C,0xFF,0xFF,0x0D,0x00,0x0A,0x03, /* 000008B0 "........" */ 12.284 - 0x4C,0x4E,0x4B,0x41,0x00,0x12,0x0D,0x04, /* 000008B8 "LNKA...." */ 12.285 - 0x0C,0xFF,0xFF,0x0E,0x00,0x00,0x4C,0x4E, /* 000008C0 "......LN" */ 12.286 - 0x4B,0x43,0x00,0x12,0x0D,0x04,0x0C,0xFF, /* 000008C8 "KC......" */ 12.287 - 0xFF,0x0E,0x00,0x01,0x4C,0x4E,0x4B,0x44, /* 000008D0 "....LNKD" */ 12.288 - 0x00,0x12,0x0E,0x04,0x0C,0xFF,0xFF,0x0E, /* 000008D8 "........" */ 12.289 - 0x00,0x0A,0x02,0x4C,0x4E,0x4B,0x41,0x00, /* 000008E0 "...LNKA." */ 12.290 - 0x12,0x0E,0x04,0x0C,0xFF,0xFF,0x0E,0x00, /* 000008E8 "........" */ 12.291 - 0x0A,0x03,0x4C,0x4E,0x4B,0x42,0x00,0x12, /* 000008F0 "..LNKB.." */ 12.292 - 0x0D,0x04,0x0C,0xFF,0xFF,0x0F,0x00,0x00, /* 000008F8 "........" */ 12.293 - 0x4C,0x4E,0x4B,0x44,0x00,0x12,0x0D,0x04, /* 00000900 "LNKD...." */ 12.294 - 0x0C,0xFF,0xFF,0x0F,0x00,0x01,0x4C,0x4E, /* 00000908 "......LN" */ 12.295 - 0x4B,0x41,0x00,0x12,0x0E,0x04,0x0C,0xFF, /* 00000910 "KA......" */ 12.296 - 0xFF,0x0F,0x00,0x0A,0x02,0x4C,0x4E,0x4B, /* 00000918 ".....LNK" */ 12.297 - 0x42,0x00,0x12,0x0E,0x04,0x0C,0xFF,0xFF, /* 00000920 "B......." */ 12.298 - 0x0F,0x00,0x0A,0x03,0x4C,0x4E,0x4B,0x43, /* 00000928 "....LNKC" */ 12.299 - 0x00,0x08,0x50,0x52,0x54,0x41,0x12,0x41, /* 00000930 "..PRTA.A" */ 12.300 - 0x2F,0x3C,0x12,0x0B,0x04,0x0C,0xFF,0xFF, /* 00000938 "/<......" */ 12.301 - 0x01,0x00,0x00,0x00,0x0A,0x14,0x12,0x0B, /* 00000940 "........" */ 12.302 - 0x04,0x0C,0xFF,0xFF,0x01,0x00,0x01,0x00, /* 00000948 "........" */ 12.303 - 0x0A,0x15,0x12,0x0C,0x04,0x0C,0xFF,0xFF, /* 00000950 "........" */ 12.304 - 0x01,0x00,0x0A,0x02,0x00,0x0A,0x16,0x12, /* 00000958 "........" */ 12.305 - 0x0C,0x04,0x0C,0xFF,0xFF,0x01,0x00,0x0A, /* 00000960 "........" */ 12.306 - 0x03,0x00,0x0A,0x17,0x12,0x0B,0x04,0x0C, /* 00000968 "........" */ 12.307 - 0xFF,0xFF,0x02,0x00,0x00,0x00,0x0A,0x18, /* 00000970 "........" */ 12.308 - 0x12,0x0B,0x04,0x0C,0xFF,0xFF,0x02,0x00, /* 00000978 "........" */ 12.309 - 0x01,0x00,0x0A,0x19,0x12,0x0C,0x04,0x0C, /* 00000980 "........" */ 12.310 - 0xFF,0xFF,0x02,0x00,0x0A,0x02,0x00,0x0A, /* 00000988 "........" */ 12.311 - 0x1A,0x12,0x0C,0x04,0x0C,0xFF,0xFF,0x02, /* 00000990 "........" */ 12.312 - 0x00,0x0A,0x03,0x00,0x0A,0x1B,0x12,0x0B, /* 00000998 "........" */ 12.313 - 0x04,0x0C,0xFF,0xFF,0x03,0x00,0x00,0x00, /* 000009A0 "........" */ 12.314 - 0x0A,0x1C,0x12,0x0B,0x04,0x0C,0xFF,0xFF, /* 000009A8 "........" */ 12.315 - 0x03,0x00,0x01,0x00,0x0A,0x1D,0x12,0x0C, /* 000009B0 "........" */ 12.316 - 0x04,0x0C,0xFF,0xFF,0x03,0x00,0x0A,0x02, /* 000009B8 "........" */ 12.317 - 0x00,0x0A,0x1E,0x12,0x0C,0x04,0x0C,0xFF, /* 000009C0 "........" */ 12.318 - 0xFF,0x03,0x00,0x0A,0x03,0x00,0x0A,0x1F, /* 000009C8 "........" */ 12.319 - 0x12,0x0B,0x04,0x0C,0xFF,0xFF,0x04,0x00, /* 000009D0 "........" */ 12.320 - 0x00,0x00,0x0A,0x20,0x12,0x0B,0x04,0x0C, /* 000009D8 "... ...." */ 12.321 - 0xFF,0xFF,0x04,0x00,0x01,0x00,0x0A,0x21, /* 000009E0 ".......!" */ 12.322 - 0x12,0x0C,0x04,0x0C,0xFF,0xFF,0x04,0x00, /* 000009E8 "........" */ 12.323 - 0x0A,0x02,0x00,0x0A,0x22,0x12,0x0C,0x04, /* 000009F0 "...."..." */ 12.324 - 0x0C,0xFF,0xFF,0x04,0x00,0x0A,0x03,0x00, /* 000009F8 "........" */ 12.325 - 0x0A,0x23,0x12,0x0B,0x04,0x0C,0xFF,0xFF, /* 00000A00 ".#......" */ 12.326 - 0x05,0x00,0x00,0x00,0x0A,0x24,0x12,0x0B, /* 00000A08 ".....$.." */ 12.327 - 0x04,0x0C,0xFF,0xFF,0x05,0x00,0x01,0x00, /* 00000A10 "........" */ 12.328 - 0x0A,0x25,0x12,0x0C,0x04,0x0C,0xFF,0xFF, /* 00000A18 ".%......" */ 12.329 - 0x05,0x00,0x0A,0x02,0x00,0x0A,0x26,0x12, /* 00000A20 "......&." */ 12.330 - 0x0C,0x04,0x0C,0xFF,0xFF,0x05,0x00,0x0A, /* 00000A28 "........" */ 12.331 - 0x03,0x00,0x0A,0x27,0x12,0x0B,0x04,0x0C, /* 00000A30 "...'...." */ 12.332 - 0xFF,0xFF,0x06,0x00,0x00,0x00,0x0A,0x28, /* 00000A38 ".......(" */ 12.333 - 0x12,0x0B,0x04,0x0C,0xFF,0xFF,0x06,0x00, /* 00000A40 "........" */ 12.334 - 0x01,0x00,0x0A,0x29,0x12,0x0C,0x04,0x0C, /* 00000A48 "...)...." */ 12.335 - 0xFF,0xFF,0x06,0x00,0x0A,0x02,0x00,0x0A, /* 00000A50 "........" */ 12.336 - 0x2A,0x12,0x0C,0x04,0x0C,0xFF,0xFF,0x06, /* 00000A58 "*......." */ 12.337 - 0x00,0x0A,0x03,0x00,0x0A,0x2B,0x12,0x0B, /* 00000A60 ".....+.." */ 12.338 - 0x04,0x0C,0xFF,0xFF,0x07,0x00,0x00,0x00, /* 00000A68 "........" */ 12.339 - 0x0A,0x2C,0x12,0x0B,0x04,0x0C,0xFF,0xFF, /* 00000A70 ".,......" */ 12.340 - 0x07,0x00,0x01,0x00,0x0A,0x2D,0x12,0x0C, /* 00000A78 ".....-.." */ 12.341 - 0x04,0x0C,0xFF,0xFF,0x07,0x00,0x0A,0x02, /* 00000A80 "........" */ 12.342 - 0x00,0x0A,0x2E,0x12,0x0C,0x04,0x0C,0xFF, /* 00000A88 "........" */ 12.343 - 0xFF,0x07,0x00,0x0A,0x03,0x00,0x0A,0x2F, /* 00000A90 "......./" */ 12.344 - 0x12,0x0B,0x04,0x0C,0xFF,0xFF,0x08,0x00, /* 00000A98 "........" */ 12.345 - 0x00,0x00,0x0A,0x11,0x12,0x0B,0x04,0x0C, /* 00000AA0 "........" */ 12.346 - 0xFF,0xFF,0x08,0x00,0x01,0x00,0x0A,0x12, /* 00000AA8 "........" */ 12.347 - 0x12,0x0C,0x04,0x0C,0xFF,0xFF,0x08,0x00, /* 00000AB0 "........" */ 12.348 - 0x0A,0x02,0x00,0x0A,0x13,0x12,0x0C,0x04, /* 00000AB8 "........" */ 12.349 - 0x0C,0xFF,0xFF,0x08,0x00,0x0A,0x03,0x00, /* 00000AC0 "........" */ 12.350 - 0x0A,0x14,0x12,0x0B,0x04,0x0C,0xFF,0xFF, /* 00000AC8 "........" */ 12.351 - 0x09,0x00,0x00,0x00,0x0A,0x15,0x12,0x0B, /* 00000AD0 "........" */ 12.352 - 0x04,0x0C,0xFF,0xFF,0x09,0x00,0x01,0x00, /* 00000AD8 "........" */ 12.353 - 0x0A,0x16,0x12,0x0C,0x04,0x0C,0xFF,0xFF, /* 00000AE0 "........" */ 12.354 - 0x09,0x00,0x0A,0x02,0x00,0x0A,0x17,0x12, /* 00000AE8 "........" */ 12.355 - 0x0C,0x04,0x0C,0xFF,0xFF,0x09,0x00,0x0A, /* 00000AF0 "........" */ 12.356 - 0x03,0x00,0x0A,0x18,0x12,0x0B,0x04,0x0C, /* 00000AF8 "........" */ 12.357 - 0xFF,0xFF,0x0A,0x00,0x00,0x00,0x0A,0x19, /* 00000B00 "........" */ 12.358 - 0x12,0x0B,0x04,0x0C,0xFF,0xFF,0x0A,0x00, /* 00000B08 "........" */ 12.359 - 0x01,0x00,0x0A,0x1A,0x12,0x0C,0x04,0x0C, /* 00000B10 "........" */ 12.360 - 0xFF,0xFF,0x0A,0x00,0x0A,0x02,0x00,0x0A, /* 00000B18 "........" */ 12.361 - 0x1B,0x12,0x0C,0x04,0x0C,0xFF,0xFF,0x0A, /* 00000B20 "........" */ 12.362 - 0x00,0x0A,0x03,0x00,0x0A,0x1C,0x12,0x0B, /* 00000B28 "........" */ 12.363 - 0x04,0x0C,0xFF,0xFF,0x0B,0x00,0x00,0x00, /* 00000B30 "........" */ 12.364 - 0x0A,0x1D,0x12,0x0B,0x04,0x0C,0xFF,0xFF, /* 00000B38 "........" */ 12.365 - 0x0B,0x00,0x01,0x00,0x0A,0x1E,0x12,0x0C, /* 00000B40 "........" */ 12.366 - 0x04,0x0C,0xFF,0xFF,0x0B,0x00,0x0A,0x02, /* 00000B48 "........" */ 12.367 - 0x00,0x0A,0x1F,0x12,0x0C,0x04,0x0C,0xFF, /* 00000B50 "........" */ 12.368 - 0xFF,0x0B,0x00,0x0A,0x03,0x00,0x0A,0x20, /* 00000B58 "....... " */ 12.369 - 0x12,0x0B,0x04,0x0C,0xFF,0xFF,0x0C,0x00, /* 00000B60 "........" */ 12.370 - 0x00,0x00,0x0A,0x21,0x12,0x0B,0x04,0x0C, /* 00000B68 "...!...." */ 12.371 - 0xFF,0xFF,0x0C,0x00,0x01,0x00,0x0A,0x22, /* 00000B70 "......."" */ 12.372 - 0x12,0x0C,0x04,0x0C,0xFF,0xFF,0x0C,0x00, /* 00000B78 "........" */ 12.373 - 0x0A,0x02,0x00,0x0A,0x23,0x12,0x0C,0x04, /* 00000B80 "....#..." */ 12.374 - 0x0C,0xFF,0xFF,0x0C,0x00,0x0A,0x03,0x00, /* 00000B88 "........" */ 12.375 - 0x0A,0x24,0x12,0x0B,0x04,0x0C,0xFF,0xFF, /* 00000B90 ".$......" */ 12.376 - 0x0D,0x00,0x00,0x00,0x0A,0x25,0x12,0x0B, /* 00000B98 ".....%.." */ 12.377 - 0x04,0x0C,0xFF,0xFF,0x0D,0x00,0x01,0x00, /* 00000BA0 "........" */ 12.378 - 0x0A,0x26,0x12,0x0C,0x04,0x0C,0xFF,0xFF, /* 00000BA8 ".&......" */ 12.379 - 0x0D,0x00,0x0A,0x02,0x00,0x0A,0x27,0x12, /* 00000BB0 "......'." */ 12.380 - 0x0C,0x04,0x0C,0xFF,0xFF,0x0D,0x00,0x0A, /* 00000BB8 "........" */ 12.381 - 0x03,0x00,0x0A,0x28,0x12,0x0B,0x04,0x0C, /* 00000BC0 "...(...." */ 12.382 - 0xFF,0xFF,0x0E,0x00,0x00,0x00,0x0A,0x29, /* 00000BC8 ".......)" */ 12.383 - 0x12,0x0B,0x04,0x0C,0xFF,0xFF,0x0E,0x00, /* 00000BD0 "........" */ 12.384 - 0x01,0x00,0x0A,0x2A,0x12,0x0C,0x04,0x0C, /* 00000BD8 "...*...." */ 12.385 - 0xFF,0xFF,0x0E,0x00,0x0A,0x02,0x00,0x0A, /* 00000BE0 "........" */ 12.386 - 0x2B,0x12,0x0C,0x04,0x0C,0xFF,0xFF,0x0E, /* 00000BE8 "+......." */ 12.387 - 0x00,0x0A,0x03,0x00,0x0A,0x2C,0x12,0x0B, /* 00000BF0 ".....,.." */ 12.388 - 0x04,0x0C,0xFF,0xFF,0x0F,0x00,0x00,0x00, /* 00000BF8 "........" */ 12.389 - 0x0A,0x2D,0x12,0x0B,0x04,0x0C,0xFF,0xFF, /* 00000C00 ".-......" */ 12.390 - 0x0F,0x00,0x01,0x00,0x0A,0x2E,0x12,0x0C, /* 00000C08 "........" */ 12.391 - 0x04,0x0C,0xFF,0xFF,0x0F,0x00,0x0A,0x02, /* 00000C10 "........" */ 12.392 - 0x00,0x0A,0x2F,0x12,0x0C,0x04,0x0C,0xFF, /* 00000C18 "../....." */ 12.393 - 0xFF,0x0F,0x00,0x0A,0x03,0x00,0x0A,0x10, /* 00000C20 "........" */ 12.394 - 0x5B,0x82,0x46,0x37,0x49,0x53,0x41,0x5F, /* 00000C28 "[.F7ISA_" */ 12.395 - 0x08,0x5F,0x41,0x44,0x52,0x0C,0x00,0x00, /* 00000C30 "._ADR..." */ 12.396 - 0x01,0x00,0x5B,0x80,0x50,0x49,0x52,0x51, /* 00000C38 "..[.PIRQ" */ 12.397 - 0x02,0x0A,0x60,0x0A,0x04,0x10,0x2E,0x5C, /* 00000C40 "..`....\" */ 12.398 - 0x00,0x5B,0x81,0x29,0x5C,0x2F,0x04,0x5F, /* 00000C48 ".[.)\/._" */ 12.399 - 0x53,0x42,0x5F,0x50,0x43,0x49,0x30,0x49, /* 00000C50 "SB_PCI0I" */ 12.400 - 0x53,0x41,0x5F,0x50,0x49,0x52,0x51,0x01, /* 00000C58 "SA_PIRQ." */ 12.401 - 0x50,0x49,0x52,0x41,0x08,0x50,0x49,0x52, /* 00000C60 "PIRA.PIR" */ 12.402 - 0x42,0x08,0x50,0x49,0x52,0x43,0x08,0x50, /* 00000C68 "B.PIRC.P" */ 12.403 - 0x49,0x52,0x44,0x08,0x5B,0x82,0x46,0x0B, /* 00000C70 "IRD.[.F." */ 12.404 - 0x53,0x59,0x53,0x52,0x08,0x5F,0x48,0x49, /* 00000C78 "SYSR._HI" */ 12.405 - 0x44,0x0C,0x41,0xD0,0x0C,0x02,0x08,0x5F, /* 00000C80 "D.A...._" */ 12.406 - 0x55,0x49,0x44,0x01,0x08,0x43,0x52,0x53, /* 00000C88 "UID..CRS" */ 12.407 - 0x5F,0x11,0x4E,0x08,0x0A,0x8A,0x47,0x01, /* 00000C90 "_.N...G." */ 12.408 - 0x10,0x00,0x10,0x00,0x00,0x10,0x47,0x01, /* 00000C98 "......G." */ 12.409 - 0x22,0x00,0x22,0x00,0x00,0x0C,0x47,0x01, /* 00000CA0 ""."...G." */ 12.410 - 0x30,0x00,0x30,0x00,0x00,0x10,0x47,0x01, /* 00000CA8 "0.0...G." */ 12.411 - 0x44,0x00,0x44,0x00,0x00,0x1C,0x47,0x01, /* 00000CB0 "D.D...G." */ 12.412 - 0x62,0x00,0x62,0x00,0x00,0x02,0x47,0x01, /* 00000CB8 "b.b...G." */ 12.413 - 0x65,0x00,0x65,0x00,0x00,0x0B,0x47,0x01, /* 00000CC0 "e.e...G." */ 12.414 - 0x72,0x00,0x72,0x00,0x00,0x0E,0x47,0x01, /* 00000CC8 "r.r...G." */ 12.415 - 0x80,0x00,0x80,0x00,0x00,0x01,0x47,0x01, /* 00000CD0 "......G." */ 12.416 - 0x84,0x00,0x84,0x00,0x00,0x03,0x47,0x01, /* 00000CD8 "......G." */ 12.417 - 0x88,0x00,0x88,0x00,0x00,0x01,0x47,0x01, /* 00000CE0 "......G." */ 12.418 - 0x8C,0x00,0x8C,0x00,0x00,0x03,0x47,0x01, /* 00000CE8 "......G." */ 12.419 - 0x90,0x00,0x90,0x00,0x00,0x10,0x47,0x01, /* 00000CF0 "......G." */ 12.420 - 0xA2,0x00,0xA2,0x00,0x00,0x1C,0x47,0x01, /* 00000CF8 "......G." */ 12.421 - 0xE0,0x00,0xE0,0x00,0x00,0x10,0x47,0x01, /* 00000D00 "......G." */ 12.422 - 0xA0,0x08,0xA0,0x08,0x00,0x04,0x47,0x01, /* 00000D08 "......G." */ 12.423 - 0xC0,0x0C,0xC0,0x0C,0x00,0x10,0x47,0x01, /* 00000D10 "......G." */ 12.424 - 0xD0,0x04,0xD0,0x04,0x00,0x02,0x79,0x00, /* 00000D18 "......y." */ 12.425 - 0x14,0x0B,0x5F,0x43,0x52,0x53,0x00,0xA4, /* 00000D20 ".._CRS.." */ 12.426 - 0x43,0x52,0x53,0x5F,0x5B,0x82,0x2B,0x50, /* 00000D28 "CRS_[.+P" */ 12.427 - 0x49,0x43,0x5F,0x08,0x5F,0x48,0x49,0x44, /* 00000D30 "IC_._HID" */ 12.428 - 0x0B,0x41,0xD0,0x08,0x5F,0x43,0x52,0x53, /* 00000D38 ".A.._CRS" */ 12.429 - 0x11,0x18,0x0A,0x15,0x47,0x01,0x20,0x00, /* 00000D40 "....G. ." */ 12.430 - 0x20,0x00,0x01,0x02,0x47,0x01,0xA0,0x00, /* 00000D48 " ...G..." */ 12.431 - 0xA0,0x00,0x01,0x02,0x22,0x04,0x00,0x79, /* 00000D50 "...."..y" */ 12.432 - 0x00,0x5B,0x82,0x47,0x05,0x44,0x4D,0x41, /* 00000D58 ".[.G.DMA" */ 12.433 - 0x30,0x08,0x5F,0x48,0x49,0x44,0x0C,0x41, /* 00000D60 "0._HID.A" */ 12.434 - 0xD0,0x02,0x00,0x08,0x5F,0x43,0x52,0x53, /* 00000D68 "...._CRS" */ 12.435 - 0x11,0x41,0x04,0x0A,0x3D,0x2A,0x10,0x04, /* 00000D70 ".A..=*.." */ 12.436 - 0x47,0x01,0x00,0x00,0x00,0x00,0x00,0x10, /* 00000D78 "G......." */ 12.437 - 0x47,0x01,0x81,0x00,0x81,0x00,0x00,0x03, /* 00000D80 "G......." */ 12.438 - 0x47,0x01,0x87,0x00,0x87,0x00,0x00,0x01, /* 00000D88 "G......." */ 12.439 - 0x47,0x01,0x89,0x00,0x89,0x00,0x00,0x03, /* 00000D90 "G......." */ 12.440 - 0x47,0x01,0x8F,0x00,0x8F,0x00,0x00,0x01, /* 00000D98 "G......." */ 12.441 - 0x47,0x01,0xC0,0x00,0xC0,0x00,0x00,0x20, /* 00000DA0 "G...... " */ 12.442 - 0x47,0x01,0x80,0x04,0x80,0x04,0x00,0x10, /* 00000DA8 "G......." */ 12.443 - 0x79,0x00,0x5B,0x82,0x25,0x54,0x4D,0x52, /* 00000DB0 "y.[.%TMR" */ 12.444 - 0x5F,0x08,0x5F,0x48,0x49,0x44,0x0C,0x41, /* 00000DB8 "_._HID.A" */ 12.445 - 0xD0,0x01,0x00,0x08,0x5F,0x43,0x52,0x53, /* 00000DC0 "...._CRS" */ 12.446 - 0x11,0x10,0x0A,0x0D,0x47,0x01,0x40,0x00, /* 00000DC8 "....G.@." */ 12.447 - 0x40,0x00,0x00,0x04,0x22,0x01,0x00,0x79, /* 00000DD0 "@..."..y" */ 12.448 - 0x00,0x5B,0x82,0x25,0x52,0x54,0x43,0x5F, /* 00000DD8 ".[.%RTC_" */ 12.449 - 0x08,0x5F,0x48,0x49,0x44,0x0C,0x41,0xD0, /* 00000DE0 "._HID.A." */ 12.450 - 0x0B,0x00,0x08,0x5F,0x43,0x52,0x53,0x11, /* 00000DE8 "..._CRS." */ 12.451 - 0x10,0x0A,0x0D,0x47,0x01,0x70,0x00,0x70, /* 00000DF0 "...G.p.p" */ 12.452 - 0x00,0x00,0x02,0x22,0x00,0x01,0x79,0x00, /* 00000DF8 "..."..y." */ 12.453 - 0x5B,0x82,0x22,0x53,0x50,0x4B,0x52,0x08, /* 00000E00 "[."SPKR." */ 12.454 - 0x5F,0x48,0x49,0x44,0x0C,0x41,0xD0,0x08, /* 00000E08 "_HID.A.." */ 12.455 - 0x00,0x08,0x5F,0x43,0x52,0x53,0x11,0x0D, /* 00000E10 ".._CRS.." */ 12.456 - 0x0A,0x0A,0x47,0x01,0x61,0x00,0x61,0x00, /* 00000E18 "..G.a.a." */ 12.457 - 0x00,0x01,0x79,0x00,0x5B,0x82,0x31,0x50, /* 00000E20 "..y.[.1P" */ 12.458 - 0x53,0x32,0x4D,0x08,0x5F,0x48,0x49,0x44, /* 00000E28 "S2M._HID" */ 12.459 - 0x0C,0x41,0xD0,0x0F,0x13,0x08,0x5F,0x43, /* 00000E30 ".A...._C" */ 12.460 - 0x49,0x44,0x0C,0x41,0xD0,0x0F,0x13,0x14, /* 00000E38 "ID.A...." */ 12.461 - 0x09,0x5F,0x53,0x54,0x41,0x00,0xA4,0x0A, /* 00000E40 "._STA..." */ 12.462 - 0x0F,0x08,0x5F,0x43,0x52,0x53,0x11,0x08, /* 00000E48 ".._CRS.." */ 12.463 - 0x0A,0x05,0x22,0x00,0x10,0x79,0x00,0x5B, /* 00000E50 ".."..y.[" */ 12.464 - 0x82,0x42,0x04,0x50,0x53,0x32,0x4B,0x08, /* 00000E58 ".B.PS2K." */ 12.465 - 0x5F,0x48,0x49,0x44,0x0C,0x41,0xD0,0x03, /* 00000E60 "_HID.A.." */ 12.466 - 0x03,0x08,0x5F,0x43,0x49,0x44,0x0C,0x41, /* 00000E68 ".._CID.A" */ 12.467 - 0xD0,0x03,0x0B,0x14,0x09,0x5F,0x53,0x54, /* 00000E70 "....._ST" */ 12.468 - 0x41,0x00,0xA4,0x0A,0x0F,0x08,0x5F,0x43, /* 00000E78 "A....._C" */ 12.469 - 0x52,0x53,0x11,0x18,0x0A,0x15,0x47,0x01, /* 00000E80 "RS....G." */ 12.470 - 0x60,0x00,0x60,0x00,0x00,0x01,0x47,0x01, /* 00000E88 "`.`...G." */ 12.471 - 0x64,0x00,0x64,0x00,0x00,0x01,0x22,0x02, /* 00000E90 "d.d..."." */ 12.472 - 0x00,0x79,0x00,0x5B,0x82,0x3A,0x46,0x44, /* 00000E98 ".y.[.:FD" */ 12.473 - 0x43,0x30,0x08,0x5F,0x48,0x49,0x44,0x0C, /* 00000EA0 "C0._HID." */ 12.474 - 0x41,0xD0,0x07,0x00,0x14,0x09,0x5F,0x53, /* 00000EA8 "A....._S" */ 12.475 - 0x54,0x41,0x00,0xA4,0x0A,0x0F,0x08,0x5F, /* 00000EB0 "TA....._" */ 12.476 - 0x43,0x52,0x53,0x11,0x1B,0x0A,0x18,0x47, /* 00000EB8 "CRS....G" */ 12.477 - 0x01,0xF0,0x03,0xF0,0x03,0x01,0x06,0x47, /* 00000EC0 ".......G" */ 12.478 - 0x01,0xF7,0x03,0xF7,0x03,0x01,0x01,0x22, /* 00000EC8 "......."" */ 12.479 - 0x40,0x00,0x2A,0x04,0x00,0x79,0x00,0x5B, /* 00000ED0 "@.*..y.[" */ 12.480 - 0x82,0x46,0x04,0x55,0x41,0x52,0x31,0x08, /* 00000ED8 ".F.UAR1." */ 12.481 - 0x5F,0x48,0x49,0x44,0x0C,0x41,0xD0,0x05, /* 00000EE0 "_HID.A.." */ 12.482 - 0x01,0x08,0x5F,0x55,0x49,0x44,0x01,0x14, /* 00000EE8 ".._UID.." */ 12.483 - 0x19,0x5F,0x53,0x54,0x41,0x00,0xA0,0x0D, /* 00000EF0 "._STA..." */ 12.484 - 0x93,0x5E,0x5E,0x5E,0x5E,0x55,0x41,0x52, /* 00000EF8 ".^^^^UAR" */ 12.485 - 0x31,0x00,0xA4,0x00,0xA1,0x04,0xA4,0x0A, /* 00000F00 "1......." */ 12.486 - 0x0F,0x08,0x5F,0x43,0x52,0x53,0x11,0x10, /* 00000F08 ".._CRS.." */ 12.487 - 0x0A,0x0D,0x47,0x01,0xF8,0x03,0xF8,0x03, /* 00000F10 "..G....." */ 12.488 - 0x08,0x08,0x22,0x10,0x00,0x79,0x00,0x5B, /* 00000F18 ".."..y.[" */ 12.489 - 0x82,0x47,0x04,0x55,0x41,0x52,0x32,0x08, /* 00000F20 ".G.UAR2." */ 12.490 - 0x5F,0x48,0x49,0x44,0x0C,0x41,0xD0,0x05, /* 00000F28 "_HID.A.." */ 12.491 - 0x01,0x08,0x5F,0x55,0x49,0x44,0x0A,0x02, /* 00000F30 ".._UID.." */ 12.492 - 0x14,0x19,0x5F,0x53,0x54,0x41,0x00,0xA0, /* 00000F38 ".._STA.." */ 12.493 - 0x0D,0x93,0x5E,0x5E,0x5E,0x5E,0x55,0x41, /* 00000F40 "..^^^^UA" */ 12.494 - 0x52,0x32,0x00,0xA4,0x00,0xA1,0x04,0xA4, /* 00000F48 "R2......" */ 12.495 - 0x0A,0x0F,0x08,0x5F,0x43,0x52,0x53,0x11, /* 00000F50 "..._CRS." */ 12.496 - 0x10,0x0A,0x0D,0x47,0x01,0xF8,0x02,0xF8, /* 00000F58 "...G...." */ 12.497 - 0x02,0x08,0x08,0x22,0x08,0x00,0x79,0x00, /* 00000F60 "..."..y." */ 12.498 - 0x5B,0x82,0x36,0x4C,0x54,0x50,0x31,0x08, /* 00000F68 "[.6LTP1." */ 12.499 - 0x5F,0x48,0x49,0x44,0x0C,0x41,0xD0,0x04, /* 00000F70 "_HID.A.." */ 12.500 - 0x00,0x08,0x5F,0x55,0x49,0x44,0x0A,0x02, /* 00000F78 ".._UID.." */ 12.501 - 0x14,0x09,0x5F,0x53,0x54,0x41,0x00,0xA4, /* 00000F80 ".._STA.." */ 12.502 - 0x0A,0x0F,0x08,0x5F,0x43,0x52,0x53,0x11, /* 00000F88 "..._CRS." */ 12.503 - 0x10,0x0A,0x0D,0x47,0x01,0x78,0x03,0x78, /* 00000F90 "...G.x.x" */ 12.504 - 0x03,0x08,0x08,0x22,0x80,0x00,0x79,0x00, /* 00000F98 "..."..y." */ 12.505 - 0x5B,0x82,0x4D,0x07,0x53,0x31,0x46,0x30, /* 00000FA0 "[.M.S1F0" */ 12.506 - 0x08,0x5F,0x41,0x44,0x52,0x0C,0x00,0x00, /* 00000FA8 "._ADR..." */ 12.507 - 0x06,0x00,0x08,0x5F,0x53,0x55,0x4E,0x01, /* 00000FB0 "..._SUN." */ 12.508 - 0x14,0x13,0x5F,0x50,0x53,0x30,0x00,0x70, /* 00000FB8 ".._PS0.p" */ 12.509 - 0x0A,0x80,0x5C,0x2E,0x5F,0x47,0x50,0x45, /* 00000FC0 "..\._GPE" */ 12.510 - 0x44,0x50,0x54,0x32,0x14,0x13,0x5F,0x50, /* 00000FC8 "DPT2.._P" */ 12.511 - 0x53,0x33,0x00,0x70,0x0A,0x83,0x5C,0x2E, /* 00000FD0 "S3.p..\." */ 12.512 - 0x5F,0x47,0x50,0x45,0x44,0x50,0x54,0x32, /* 00000FD8 "_GPEDPT2" */ 12.513 - 0x14,0x1F,0x5F,0x45,0x4A,0x30,0x01,0x70, /* 00000FE0 ".._EJ0.p" */ 12.514 - 0x0A,0x88,0x5C,0x2E,0x5F,0x47,0x50,0x45, /* 00000FE8 "..\._GPE" */ 12.515 - 0x44,0x50,0x54,0x32,0x70,0x01,0x5C,0x2E, /* 00000FF0 "DPT2p.\." */ 12.516 - 0x5F,0x47,0x50,0x45,0x50,0x48,0x50,0x31, /* 00000FF8 "_GPEPHP1" */ 12.517 - 0x14,0x1E,0x5F,0x53,0x54,0x41,0x00,0x70, /* 00001000 ".._STA.p" */ 12.518 - 0x0A,0x89,0x5C,0x2E,0x5F,0x47,0x50,0x45, /* 00001008 "..\._GPE" */ 12.519 - 0x44,0x50,0x54,0x32,0xA4,0x5C,0x2E,0x5F, /* 00001010 "DPT2.\._" */ 12.520 - 0x47,0x50,0x45,0x50,0x48,0x50,0x31,0x5B, /* 00001018 "GPEPHP1[" */ 12.521 - 0x82,0x4E,0x07,0x53,0x32,0x46,0x30,0x08, /* 00001020 ".N.S2F0." */ 12.522 - 0x5F,0x41,0x44,0x52,0x0C,0x00,0x00,0x07, /* 00001028 "_ADR...." */ 12.523 - 0x00,0x08,0x5F,0x53,0x55,0x4E,0x0A,0x02, /* 00001030 ".._SUN.." */ 12.524 - 0x14,0x13,0x5F,0x50,0x53,0x30,0x00,0x70, /* 00001038 ".._PS0.p" */ 12.525 - 0x0A,0x90,0x5C,0x2E,0x5F,0x47,0x50,0x45, /* 00001040 "..\._GPE" */ 12.526 - 0x44,0x50,0x54,0x32,0x14,0x13,0x5F,0x50, /* 00001048 "DPT2.._P" */ 12.527 - 0x53,0x33,0x00,0x70,0x0A,0x93,0x5C,0x2E, /* 00001050 "S3.p..\." */ 12.528 - 0x5F,0x47,0x50,0x45,0x44,0x50,0x54,0x32, /* 00001058 "_GPEDPT2" */ 12.529 - 0x14,0x1F,0x5F,0x45,0x4A,0x30,0x01,0x70, /* 00001060 ".._EJ0.p" */ 12.530 - 0x0A,0x98,0x5C,0x2E,0x5F,0x47,0x50,0x45, /* 00001068 "..\._GPE" */ 12.531 - 0x44,0x50,0x54,0x32,0x70,0x01,0x5C,0x2E, /* 00001070 "DPT2p.\." */ 12.532 - 0x5F,0x47,0x50,0x45,0x50,0x48,0x50,0x32, /* 00001078 "_GPEPHP2" */ 12.533 - 0x14,0x1E,0x5F,0x53,0x54,0x41,0x00,0x70, /* 00001080 ".._STA.p" */ 12.534 - 0x0A,0x99,0x5C,0x2E,0x5F,0x47,0x50,0x45, /* 00001088 "..\._GPE" */ 12.535 - 0x44,0x50,0x54,0x32,0xA4,0x5C,0x2E,0x5F, /* 00001090 "DPT2.\._" */ 12.536 - 0x47,0x50,0x45,0x50,0x48,0x50,0x32,0x10, /* 00001098 "GPEPHP2." */ 12.537 - 0x4E,0x0B,0x5F,0x47,0x50,0x45,0x5B,0x80, /* 000010A0 "N._GPE[." */ 12.538 - 0x50,0x48,0x50,0x5F,0x01,0x0B,0xC0,0x10, /* 000010A8 "PHP_...." */ 12.539 - 0x0A,0x03,0x5B,0x81,0x15,0x50,0x48,0x50, /* 000010B0 "..[..PHP" */ 12.540 - 0x5F,0x01,0x50,0x53,0x54,0x41,0x08,0x50, /* 000010B8 "_.PSTA.P" */ 12.541 - 0x48,0x50,0x31,0x08,0x50,0x48,0x50,0x32, /* 000010C0 "HP1.PHP2" */ 12.542 - 0x08,0x5B,0x80,0x44,0x47,0x31,0x5F,0x01, /* 000010C8 ".[.DG1_." */ 12.543 - 0x0B,0x44,0xB0,0x0A,0x04,0x5B,0x81,0x10, /* 000010D0 ".D...[.." */ 12.544 - 0x44,0x47,0x31,0x5F,0x01,0x44,0x50,0x54, /* 000010D8 "DG1_.DPT" */ 12.545 - 0x31,0x08,0x44,0x50,0x54,0x32,0x08,0x14, /* 000010E0 "1.DPT2.." */ 12.546 - 0x46,0x07,0x5F,0x4C,0x30,0x33,0x00,0x08, /* 000010E8 "F._L03.." */ 12.547 - 0x53,0x4C,0x54,0x5F,0x00,0x08,0x45,0x56, /* 000010F0 "SLT_..EV" */ 12.548 - 0x54,0x5F,0x00,0x70,0x50,0x53,0x54,0x41, /* 000010F8 "T_.pPSTA" */ 12.549 - 0x61,0x7A,0x61,0x0A,0x04,0x53,0x4C,0x54, /* 00001100 "aza..SLT" */ 12.550 - 0x5F,0x7B,0x61,0x0A,0x0F,0x45,0x56,0x54, /* 00001108 "_{a..EVT" */ 12.551 - 0x5F,0x70,0x53,0x4C,0x54,0x5F,0x44,0x50, /* 00001110 "_pSLT_DP" */ 12.552 - 0x54,0x31,0x70,0x45,0x56,0x54,0x5F,0x44, /* 00001118 "T1pEVT_D" */ 12.553 - 0x50,0x54,0x32,0xA0,0x1B,0x93,0x53,0x4C, /* 00001120 "PT2...SL" */ 12.554 - 0x54,0x5F,0x01,0x86,0x5C,0x2F,0x03,0x5F, /* 00001128 "T_..\/._" */ 12.555 - 0x53,0x42,0x5F,0x50,0x43,0x49,0x30,0x53, /* 00001130 "SB_PCI0S" */ 12.556 - 0x31,0x46,0x30,0x45,0x56,0x54,0x5F,0xA1, /* 00001138 "1F0EVT_." */ 12.557 - 0x1E,0xA0,0x1C,0x93,0x53,0x4C,0x54,0x5F, /* 00001140 "....SLT_" */ 12.558 - 0x0A,0x02,0x86,0x5C,0x2F,0x03,0x5F,0x53, /* 00001148 "...\/._S" */ 12.559 - 0x42,0x5F,0x50,0x43,0x49,0x30,0x53,0x32, /* 00001150 "B_PCI0S2" */ 12.560 - 0x46,0x30,0x45,0x56,0x54,0x5F, 12.561 + 0x00,0x00,0x00,0x00,0x0A,0x00,0x00,0x00, /* 000001D8 "........" */ 12.562 + 0x00,0x00,0x79,0x00,0x5B,0x82,0x8B,0x57, /* 000001E0 "..y.[..W" */ 12.563 + 0x01,0x50,0x43,0x49,0x30,0x08,0x5F,0x48, /* 000001E8 ".PCI0._H" */ 12.564 + 0x49,0x44,0x0C,0x41,0xD0,0x0A,0x03,0x08, /* 000001F0 "ID.A...." */ 12.565 + 0x5F,0x55,0x49,0x44,0x00,0x08,0x5F,0x41, /* 000001F8 "_UID.._A" */ 12.566 + 0x44,0x52,0x00,0x08,0x5F,0x42,0x42,0x4E, /* 00000200 "DR.._BBN" */ 12.567 + 0x00,0x5B,0x82,0x2A,0x48,0x50,0x30,0x5F, /* 00000208 ".[.*HP0_" */ 12.568 + 0x08,0x5F,0x48,0x49,0x44,0x0C,0x41,0xD0, /* 00000210 "._HID.A." */ 12.569 + 0x0C,0x02,0x08,0x5F,0x43,0x52,0x53,0x11, /* 00000218 "..._CRS." */ 12.570 + 0x15,0x0A,0x12,0x47,0x01,0xC0,0x10,0xC0, /* 00000220 "...G...." */ 12.571 + 0x10,0x00,0x03,0x47,0x01,0x44,0xB0,0x44, /* 00000228 "...G.D.D" */ 12.572 + 0xB0,0x00,0x04,0x79,0x00,0x14,0x4E,0x0C, /* 00000230 "...y..N." */ 12.573 + 0x5F,0x43,0x52,0x53,0x00,0x08,0x50,0x52, /* 00000238 "_CRS..PR" */ 12.574 + 0x54,0x30,0x11,0x42,0x07,0x0A,0x6E,0x88, /* 00000240 "T0.B..n." */ 12.575 + 0x0D,0x00,0x02,0x0E,0x00,0x00,0x00,0x00, /* 00000248 "........" */ 12.576 + 0x00,0xFF,0x00,0x00,0x00,0x00,0x01,0x47, /* 00000250 ".......G" */ 12.577 + 0x01,0xF8,0x0C,0xF8,0x0C,0x01,0x08,0x88, /* 00000258 "........" */ 12.578 + 0x0D,0x00,0x01,0x0C,0x03,0x00,0x00,0x00, /* 00000260 "........" */ 12.579 + 0x00,0xF7,0x0C,0x00,0x00,0xF8,0x0C,0x88, /* 00000268 "........" */ 12.580 + 0x0D,0x00,0x01,0x0C,0x03,0x00,0x00,0x00, /* 00000270 "........" */ 12.581 + 0x0D,0xFF,0xFF,0x00,0x00,0x00,0xF3,0x87, /* 00000278 "........" */ 12.582 + 0x17,0x00,0x00,0x0C,0x03,0x00,0x00,0x00, /* 00000280 "........" */ 12.583 + 0x00,0x00,0x00,0x0A,0x00,0xFF,0xFF,0x0B, /* 00000288 "........" */ 12.584 + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x02, /* 00000290 "........" */ 12.585 + 0x00,0x87,0x17,0x00,0x00,0x0C,0x03,0x00, /* 00000298 "........" */ 12.586 + 0x00,0x00,0x00,0x00,0x00,0x00,0xF0,0xFF, /* 000002A0 "........" */ 12.587 + 0xFF,0xFF,0xF4,0x00,0x00,0x00,0x00,0x00, /* 000002A8 "........" */ 12.588 + 0x00,0x00,0x05,0x79,0x00,0x8A,0x50,0x52, /* 000002B0 "...y..PR" */ 12.589 + 0x54,0x30,0x0A,0x5C,0x4D,0x4D,0x49,0x4E, /* 000002B8 "T0.\MMIN" */ 12.590 + 0x8A,0x50,0x52,0x54,0x30,0x0A,0x60,0x4D, /* 000002C0 ".PRT0.`M" */ 12.591 + 0x4D,0x41,0x58,0x8A,0x50,0x52,0x54,0x30, /* 000002C8 "MAX.PRT0" */ 12.592 + 0x0A,0x68,0x4D,0x4C,0x45,0x4E,0x70,0x50, /* 000002D0 ".hMLENpP" */ 12.593 + 0x4D,0x49,0x4E,0x4D,0x4D,0x49,0x4E,0x70, /* 000002D8 "MINMMINp" */ 12.594 + 0x50,0x4C,0x45,0x4E,0x4D,0x4C,0x45,0x4E, /* 000002E0 "PLENMLEN" */ 12.595 + 0x72,0x4D,0x4D,0x49,0x4E,0x4D,0x4C,0x45, /* 000002E8 "rMMINMLE" */ 12.596 + 0x4E,0x4D,0x4D,0x41,0x58,0x74,0x4D,0x4D, /* 000002F0 "NMMAXtMM" */ 12.597 + 0x41,0x58,0x01,0x4D,0x4D,0x41,0x58,0xA4, /* 000002F8 "AX.MMAX." */ 12.598 + 0x50,0x52,0x54,0x30,0x08,0x42,0x55,0x46, /* 00000300 "PRT0.BUF" */ 12.599 + 0x41,0x11,0x09,0x0A,0x06,0x23,0x20,0x0C, /* 00000308 "A....# ." */ 12.600 + 0x18,0x79,0x00,0x08,0x42,0x55,0x46,0x42, /* 00000310 ".y..BUFB" */ 12.601 + 0x11,0x09,0x0A,0x06,0x23,0x00,0x00,0x18, /* 00000318 "....#..." */ 12.602 + 0x79,0x00,0x8B,0x42,0x55,0x46,0x42,0x01, /* 00000320 "y..BUFB." */ 12.603 + 0x49,0x52,0x51,0x56,0x5B,0x82,0x48,0x08, /* 00000328 "IRQV[.H." */ 12.604 + 0x4C,0x4E,0x4B,0x41,0x08,0x5F,0x48,0x49, /* 00000330 "LNKA._HI" */ 12.605 + 0x44,0x0C,0x41,0xD0,0x0C,0x0F,0x08,0x5F, /* 00000338 "D.A...._" */ 12.606 + 0x55,0x49,0x44,0x01,0x14,0x1C,0x5F,0x53, /* 00000340 "UID..._S" */ 12.607 + 0x54,0x41,0x00,0x7B,0x50,0x49,0x52,0x41, /* 00000348 "TA.{PIRA" */ 12.608 + 0x0A,0x80,0x60,0xA0,0x08,0x93,0x60,0x0A, /* 00000350 "..`...`." */ 12.609 + 0x80,0xA4,0x0A,0x09,0xA1,0x04,0xA4,0x0A, /* 00000358 "........" */ 12.610 + 0x0B,0x14,0x0B,0x5F,0x50,0x52,0x53,0x00, /* 00000360 "..._PRS." */ 12.611 + 0xA4,0x42,0x55,0x46,0x41,0x14,0x11,0x5F, /* 00000368 ".BUFA.._" */ 12.612 + 0x44,0x49,0x53,0x00,0x7D,0x50,0x49,0x52, /* 00000370 "DIS.}PIR" */ 12.613 + 0x41,0x0A,0x80,0x50,0x49,0x52,0x41,0x14, /* 00000378 "A..PIRA." */ 12.614 + 0x1A,0x5F,0x43,0x52,0x53,0x00,0x7B,0x50, /* 00000380 "._CRS.{P" */ 12.615 + 0x49,0x52,0x41,0x0A,0x0F,0x60,0x79,0x01, /* 00000388 "IRA..`y." */ 12.616 + 0x60,0x49,0x52,0x51,0x56,0xA4,0x42,0x55, /* 00000390 "`IRQV.BU" */ 12.617 + 0x46,0x42,0x14,0x1B,0x5F,0x53,0x52,0x53, /* 00000398 "FB.._SRS" */ 12.618 + 0x01,0x8B,0x68,0x01,0x49,0x52,0x51,0x31, /* 000003A0 "..h.IRQ1" */ 12.619 + 0x82,0x49,0x52,0x51,0x31,0x60,0x76,0x60, /* 000003A8 ".IRQ1`v`" */ 12.620 + 0x70,0x60,0x50,0x49,0x52,0x41,0x5B,0x82, /* 000003B0 "p`PIRA[." */ 12.621 + 0x49,0x08,0x4C,0x4E,0x4B,0x42,0x08,0x5F, /* 000003B8 "I.LNKB._" */ 12.622 + 0x48,0x49,0x44,0x0C,0x41,0xD0,0x0C,0x0F, /* 000003C0 "HID.A..." */ 12.623 + 0x08,0x5F,0x55,0x49,0x44,0x0A,0x02,0x14, /* 000003C8 "._UID..." */ 12.624 + 0x1C,0x5F,0x53,0x54,0x41,0x00,0x7B,0x50, /* 000003D0 "._STA.{P" */ 12.625 + 0x49,0x52,0x42,0x0A,0x80,0x60,0xA0,0x08, /* 000003D8 "IRB..`.." */ 12.626 + 0x93,0x60,0x0A,0x80,0xA4,0x0A,0x09,0xA1, /* 000003E0 ".`......" */ 12.627 + 0x04,0xA4,0x0A,0x0B,0x14,0x0B,0x5F,0x50, /* 000003E8 "......_P" */ 12.628 + 0x52,0x53,0x00,0xA4,0x42,0x55,0x46,0x41, /* 000003F0 "RS..BUFA" */ 12.629 + 0x14,0x11,0x5F,0x44,0x49,0x53,0x00,0x7D, /* 000003F8 ".._DIS.}" */ 12.630 + 0x50,0x49,0x52,0x42,0x0A,0x80,0x50,0x49, /* 00000400 "PIRB..PI" */ 12.631 + 0x52,0x42,0x14,0x1A,0x5F,0x43,0x52,0x53, /* 00000408 "RB.._CRS" */ 12.632 + 0x00,0x7B,0x50,0x49,0x52,0x42,0x0A,0x0F, /* 00000410 ".{PIRB.." */ 12.633 + 0x60,0x79,0x01,0x60,0x49,0x52,0x51,0x56, /* 00000418 "`y.`IRQV" */ 12.634 + 0xA4,0x42,0x55,0x46,0x42,0x14,0x1B,0x5F, /* 00000420 ".BUFB.._" */ 12.635 + 0x53,0x52,0x53,0x01,0x8B,0x68,0x01,0x49, /* 00000428 "SRS..h.I" */ 12.636 + 0x52,0x51,0x31,0x82,0x49,0x52,0x51,0x31, /* 00000430 "RQ1.IRQ1" */ 12.637 + 0x60,0x76,0x60,0x70,0x60,0x50,0x49,0x52, /* 00000438 "`v`p`PIR" */ 12.638 + 0x42,0x5B,0x82,0x49,0x08,0x4C,0x4E,0x4B, /* 00000440 "B[.I.LNK" */ 12.639 + 0x43,0x08,0x5F,0x48,0x49,0x44,0x0C,0x41, /* 00000448 "C._HID.A" */ 12.640 + 0xD0,0x0C,0x0F,0x08,0x5F,0x55,0x49,0x44, /* 00000450 "...._UID" */ 12.641 + 0x0A,0x03,0x14,0x1C,0x5F,0x53,0x54,0x41, /* 00000458 "...._STA" */ 12.642 + 0x00,0x7B,0x50,0x49,0x52,0x43,0x0A,0x80, /* 00000460 ".{PIRC.." */ 12.643 + 0x60,0xA0,0x08,0x93,0x60,0x0A,0x80,0xA4, /* 00000468 "`...`..." */ 12.644 + 0x0A,0x09,0xA1,0x04,0xA4,0x0A,0x0B,0x14, /* 00000470 "........" */ 12.645 + 0x0B,0x5F,0x50,0x52,0x53,0x00,0xA4,0x42, /* 00000478 "._PRS..B" */ 12.646 + 0x55,0x46,0x41,0x14,0x11,0x5F,0x44,0x49, /* 00000480 "UFA.._DI" */ 12.647 + 0x53,0x00,0x7D,0x50,0x49,0x52,0x43,0x0A, /* 00000488 "S.}PIRC." */ 12.648 + 0x80,0x50,0x49,0x52,0x43,0x14,0x1A,0x5F, /* 00000490 ".PIRC.._" */ 12.649 + 0x43,0x52,0x53,0x00,0x7B,0x50,0x49,0x52, /* 00000498 "CRS.{PIR" */ 12.650 + 0x43,0x0A,0x0F,0x60,0x79,0x01,0x60,0x49, /* 000004A0 "C..`y.`I" */ 12.651 + 0x52,0x51,0x56,0xA4,0x42,0x55,0x46,0x42, /* 000004A8 "RQV.BUFB" */ 12.652 + 0x14,0x1B,0x5F,0x53,0x52,0x53,0x01,0x8B, /* 000004B0 ".._SRS.." */ 12.653 + 0x68,0x01,0x49,0x52,0x51,0x31,0x82,0x49, /* 000004B8 "h.IRQ1.I" */ 12.654 + 0x52,0x51,0x31,0x60,0x76,0x60,0x70,0x60, /* 000004C0 "RQ1`v`p`" */ 12.655 + 0x50,0x49,0x52,0x43,0x5B,0x82,0x49,0x08, /* 000004C8 "PIRC[.I." */ 12.656 + 0x4C,0x4E,0x4B,0x44,0x08,0x5F,0x48,0x49, /* 000004D0 "LNKD._HI" */ 12.657 + 0x44,0x0C,0x41,0xD0,0x0C,0x0F,0x08,0x5F, /* 000004D8 "D.A...._" */ 12.658 + 0x55,0x49,0x44,0x0A,0x04,0x14,0x1C,0x5F, /* 000004E0 "UID...._" */ 12.659 + 0x53,0x54,0x41,0x00,0x7B,0x50,0x49,0x52, /* 000004E8 "STA.{PIR" */ 12.660 + 0x44,0x0A,0x80,0x60,0xA0,0x08,0x93,0x60, /* 000004F0 "D..`...`" */ 12.661 + 0x0A,0x80,0xA4,0x0A,0x09,0xA1,0x04,0xA4, /* 000004F8 "........" */ 12.662 + 0x0A,0x0B,0x14,0x0B,0x5F,0x50,0x52,0x53, /* 00000500 "...._PRS" */ 12.663 + 0x00,0xA4,0x42,0x55,0x46,0x41,0x14,0x11, /* 00000508 "..BUFA.." */ 12.664 + 0x5F,0x44,0x49,0x53,0x00,0x7D,0x50,0x49, /* 00000510 "_DIS.}PI" */ 12.665 + 0x52,0x44,0x0A,0x80,0x50,0x49,0x52,0x44, /* 00000518 "RD..PIRD" */ 12.666 + 0x14,0x1A,0x5F,0x43,0x52,0x53,0x00,0x7B, /* 00000520 ".._CRS.{" */ 12.667 + 0x50,0x49,0x52,0x44,0x0A,0x0F,0x60,0x79, /* 00000528 "PIRD..`y" */ 12.668 + 0x01,0x60,0x49,0x52,0x51,0x56,0xA4,0x42, /* 00000530 ".`IRQV.B" */ 12.669 + 0x55,0x46,0x42,0x14,0x1B,0x5F,0x53,0x52, /* 00000538 "UFB.._SR" */ 12.670 + 0x53,0x01,0x8B,0x68,0x01,0x49,0x52,0x51, /* 00000540 "S..h.IRQ" */ 12.671 + 0x31,0x82,0x49,0x52,0x51,0x31,0x60,0x76, /* 00000548 "1.IRQ1`v" */ 12.672 + 0x60,0x70,0x60,0x50,0x49,0x52,0x44,0x5B, /* 00000550 "`p`PIRD[" */ 12.673 + 0x82,0x44,0x05,0x48,0x50,0x45,0x54,0x08, /* 00000558 ".D.HPET." */ 12.674 + 0x5F,0x48,0x49,0x44,0x0C,0x41,0xD0,0x01, /* 00000560 "_HID.A.." */ 12.675 + 0x03,0x08,0x5F,0x55,0x49,0x44,0x00,0x14, /* 00000568 ".._UID.." */ 12.676 + 0x18,0x5F,0x53,0x54,0x41,0x00,0xA0,0x0C, /* 00000570 "._STA..." */ 12.677 + 0x93,0x5E,0x5E,0x5E,0x48,0x50,0x45,0x54, /* 00000578 ".^^^HPET" */ 12.678 + 0x00,0xA4,0x00,0xA1,0x04,0xA4,0x0A,0x0F, /* 00000580 "........" */ 12.679 + 0x08,0x5F,0x43,0x52,0x53,0x11,0x1F,0x0A, /* 00000588 "._CRS..." */ 12.680 + 0x1C,0x87,0x17,0x00,0x00,0x0D,0x01,0x00, /* 00000590 "........" */ 12.681 + 0x00,0x00,0x00,0x00,0x00,0xD0,0xFE,0xFF, /* 00000598 "........" */ 12.682 + 0x03,0xD0,0xFE,0x00,0x00,0x00,0x00,0x00, /* 000005A0 "........" */ 12.683 + 0x04,0x00,0x00,0x79,0x00,0x14,0x16,0x5F, /* 000005A8 "...y..._" */ 12.684 + 0x50,0x52,0x54,0x00,0xA0,0x0A,0x50,0x49, /* 000005B0 "PRT...PI" */ 12.685 + 0x43,0x44,0xA4,0x50,0x52,0x54,0x41,0xA4, /* 000005B8 "CD.PRTA." */ 12.686 + 0x50,0x52,0x54,0x50,0x08,0x50,0x52,0x54, /* 000005C0 "PRTP.PRT" */ 12.687 + 0x50,0x12,0x49,0x70,0x7C,0x12,0x0D,0x04, /* 000005C8 "P.Ip|..." */ 12.688 + 0x0C,0xFF,0xFF,0x01,0x00,0x00,0x4C,0x4E, /* 000005D0 "......LN" */ 12.689 + 0x4B,0x42,0x00,0x12,0x0D,0x04,0x0C,0xFF, /* 000005D8 "KB......" */ 12.690 + 0xFF,0x01,0x00,0x01,0x4C,0x4E,0x4B,0x43, /* 000005E0 "....LNKC" */ 12.691 + 0x00,0x12,0x0E,0x04,0x0C,0xFF,0xFF,0x01, /* 000005E8 "........" */ 12.692 + 0x00,0x0A,0x02,0x4C,0x4E,0x4B,0x44,0x00, /* 000005F0 "...LNKD." */ 12.693 + 0x12,0x0E,0x04,0x0C,0xFF,0xFF,0x01,0x00, /* 000005F8 "........" */ 12.694 + 0x0A,0x03,0x4C,0x4E,0x4B,0x41,0x00,0x12, /* 00000600 "..LNKA.." */ 12.695 + 0x0D,0x04,0x0C,0xFF,0xFF,0x02,0x00,0x00, /* 00000608 "........" */ 12.696 + 0x4C,0x4E,0x4B,0x43,0x00,0x12,0x0D,0x04, /* 00000610 "LNKC...." */ 12.697 + 0x0C,0xFF,0xFF,0x02,0x00,0x01,0x4C,0x4E, /* 00000618 "......LN" */ 12.698 + 0x4B,0x44,0x00,0x12,0x0E,0x04,0x0C,0xFF, /* 00000620 "KD......" */ 12.699 + 0xFF,0x02,0x00,0x0A,0x02,0x4C,0x4E,0x4B, /* 00000628 ".....LNK" */ 12.700 + 0x41,0x00,0x12,0x0E,0x04,0x0C,0xFF,0xFF, /* 00000630 "A......." */ 12.701 + 0x02,0x00,0x0A,0x03,0x4C,0x4E,0x4B,0x42, /* 00000638 "....LNKB" */ 12.702 + 0x00,0x12,0x0D,0x04,0x0C,0xFF,0xFF,0x03, /* 00000640 "........" */ 12.703 + 0x00,0x00,0x4C,0x4E,0x4B,0x44,0x00,0x12, /* 00000648 "..LNKD.." */ 12.704 + 0x0D,0x04,0x0C,0xFF,0xFF,0x03,0x00,0x01, /* 00000650 "........" */ 12.705 + 0x4C,0x4E,0x4B,0x41,0x00,0x12,0x0E,0x04, /* 00000658 "LNKA...." */ 12.706 + 0x0C,0xFF,0xFF,0x03,0x00,0x0A,0x02,0x4C, /* 00000660 ".......L" */ 12.707 + 0x4E,0x4B,0x42,0x00,0x12,0x0E,0x04,0x0C, /* 00000668 "NKB....." */ 12.708 + 0xFF,0xFF,0x03,0x00,0x0A,0x03,0x4C,0x4E, /* 00000670 "......LN" */ 12.709 + 0x4B,0x43,0x00,0x12,0x0D,0x04,0x0C,0xFF, /* 00000678 "KC......" */ 12.710 + 0xFF,0x04,0x00,0x00,0x4C,0x4E,0x4B,0x41, /* 00000680 "....LNKA" */ 12.711 + 0x00,0x12,0x0D,0x04,0x0C,0xFF,0xFF,0x04, /* 00000688 "........" */ 12.712 + 0x00,0x01,0x4C,0x4E,0x4B,0x42,0x00,0x12, /* 00000690 "..LNKB.." */ 12.713 + 0x0E,0x04,0x0C,0xFF,0xFF,0x04,0x00,0x0A, /* 00000698 "........" */ 12.714 + 0x02,0x4C,0x4E,0x4B,0x43,0x00,0x12,0x0E, /* 000006A0 ".LNKC..." */ 12.715 + 0x04,0x0C,0xFF,0xFF,0x04,0x00,0x0A,0x03, /* 000006A8 "........" */ 12.716 + 0x4C,0x4E,0x4B,0x44,0x00,0x12,0x0D,0x04, /* 000006B0 "LNKD...." */ 12.717 + 0x0C,0xFF,0xFF,0x05,0x00,0x00,0x4C,0x4E, /* 000006B8 "......LN" */ 12.718 + 0x4B,0x42,0x00,0x12,0x0D,0x04,0x0C,0xFF, /* 000006C0 "KB......" */ 12.719 + 0xFF,0x05,0x00,0x01,0x4C,0x4E,0x4B,0x43, /* 000006C8 "....LNKC" */ 12.720 + 0x00,0x12,0x0E,0x04,0x0C,0xFF,0xFF,0x05, /* 000006D0 "........" */ 12.721 + 0x00,0x0A,0x02,0x4C,0x4E,0x4B,0x44,0x00, /* 000006D8 "...LNKD." */ 12.722 + 0x12,0x0E,0x04,0x0C,0xFF,0xFF,0x05,0x00, /* 000006E0 "........" */ 12.723 + 0x0A,0x03,0x4C,0x4E,0x4B,0x41,0x00,0x12, /* 000006E8 "..LNKA.." */ 12.724 + 0x0D,0x04,0x0C,0xFF,0xFF,0x06,0x00,0x00, /* 000006F0 "........" */ 12.725 + 0x4C,0x4E,0x4B,0x43,0x00,0x12,0x0D,0x04, /* 000006F8 "LNKC...." */ 12.726 + 0x0C,0xFF,0xFF,0x06,0x00,0x01,0x4C,0x4E, /* 00000700 "......LN" */ 12.727 + 0x4B,0x44,0x00,0x12,0x0E,0x04,0x0C,0xFF, /* 00000708 "KD......" */ 12.728 + 0xFF,0x06,0x00,0x0A,0x02,0x4C,0x4E,0x4B, /* 00000710 ".....LNK" */ 12.729 + 0x41,0x00,0x12,0x0E,0x04,0x0C,0xFF,0xFF, /* 00000718 "A......." */ 12.730 + 0x06,0x00,0x0A,0x03,0x4C,0x4E,0x4B,0x42, /* 00000720 "....LNKB" */ 12.731 + 0x00,0x12,0x0D,0x04,0x0C,0xFF,0xFF,0x07, /* 00000728 "........" */ 12.732 + 0x00,0x00,0x4C,0x4E,0x4B,0x44,0x00,0x12, /* 00000730 "..LNKD.." */ 12.733 + 0x0D,0x04,0x0C,0xFF,0xFF,0x07,0x00,0x01, /* 00000738 "........" */ 12.734 + 0x4C,0x4E,0x4B,0x41,0x00,0x12,0x0E,0x04, /* 00000740 "LNKA...." */ 12.735 + 0x0C,0xFF,0xFF,0x07,0x00,0x0A,0x02,0x4C, /* 00000748 ".......L" */ 12.736 + 0x4E,0x4B,0x42,0x00,0x12,0x0E,0x04,0x0C, /* 00000750 "NKB....." */ 12.737 + 0xFF,0xFF,0x07,0x00,0x0A,0x03,0x4C,0x4E, /* 00000758 "......LN" */ 12.738 + 0x4B,0x43,0x00,0x12,0x0D,0x04,0x0C,0xFF, /* 00000760 "KC......" */ 12.739 + 0xFF,0x08,0x00,0x00,0x4C,0x4E,0x4B,0x41, /* 00000768 "....LNKA" */ 12.740 + 0x00,0x12,0x0D,0x04,0x0C,0xFF,0xFF,0x08, /* 00000770 "........" */ 12.741 + 0x00,0x01,0x4C,0x4E,0x4B,0x42,0x00,0x12, /* 00000778 "..LNKB.." */ 12.742 + 0x0E,0x04,0x0C,0xFF,0xFF,0x08,0x00,0x0A, /* 00000780 "........" */ 12.743 + 0x02,0x4C,0x4E,0x4B,0x43,0x00,0x12,0x0E, /* 00000788 ".LNKC..." */ 12.744 + 0x04,0x0C,0xFF,0xFF,0x08,0x00,0x0A,0x03, /* 00000790 "........" */ 12.745 + 0x4C,0x4E,0x4B,0x44,0x00,0x12,0x0D,0x04, /* 00000798 "LNKD...." */ 12.746 + 0x0C,0xFF,0xFF,0x09,0x00,0x00,0x4C,0x4E, /* 000007A0 "......LN" */ 12.747 + 0x4B,0x42,0x00,0x12,0x0D,0x04,0x0C,0xFF, /* 000007A8 "KB......" */ 12.748 + 0xFF,0x09,0x00,0x01,0x4C,0x4E,0x4B,0x43, /* 000007B0 "....LNKC" */ 12.749 + 0x00,0x12,0x0E,0x04,0x0C,0xFF,0xFF,0x09, /* 000007B8 "........" */ 12.750 + 0x00,0x0A,0x02,0x4C,0x4E,0x4B,0x44,0x00, /* 000007C0 "...LNKD." */ 12.751 + 0x12,0x0E,0x04,0x0C,0xFF,0xFF,0x09,0x00, /* 000007C8 "........" */ 12.752 + 0x0A,0x03,0x4C,0x4E,0x4B,0x41,0x00,0x12, /* 000007D0 "..LNKA.." */ 12.753 + 0x0D,0x04,0x0C,0xFF,0xFF,0x0A,0x00,0x00, /* 000007D8 "........" */ 12.754 + 0x4C,0x4E,0x4B,0x43,0x00,0x12,0x0D,0x04, /* 000007E0 "LNKC...." */ 12.755 + 0x0C,0xFF,0xFF,0x0A,0x00,0x01,0x4C,0x4E, /* 000007E8 "......LN" */ 12.756 + 0x4B,0x44,0x00,0x12,0x0E,0x04,0x0C,0xFF, /* 000007F0 "KD......" */ 12.757 + 0xFF,0x0A,0x00,0x0A,0x02,0x4C,0x4E,0x4B, /* 000007F8 ".....LNK" */ 12.758 + 0x41,0x00,0x12,0x0E,0x04,0x0C,0xFF,0xFF, /* 00000800 "A......." */ 12.759 + 0x0A,0x00,0x0A,0x03,0x4C,0x4E,0x4B,0x42, /* 00000808 "....LNKB" */ 12.760 + 0x00,0x12,0x0D,0x04,0x0C,0xFF,0xFF,0x0B, /* 00000810 "........" */ 12.761 + 0x00,0x00,0x4C,0x4E,0x4B,0x44,0x00,0x12, /* 00000818 "..LNKD.." */ 12.762 + 0x0D,0x04,0x0C,0xFF,0xFF,0x0B,0x00,0x01, /* 00000820 "........" */ 12.763 + 0x4C,0x4E,0x4B,0x41,0x00,0x12,0x0E,0x04, /* 00000828 "LNKA...." */ 12.764 + 0x0C,0xFF,0xFF,0x0B,0x00,0x0A,0x02,0x4C, /* 00000830 ".......L" */ 12.765 + 0x4E,0x4B,0x42,0x00,0x12,0x0E,0x04,0x0C, /* 00000838 "NKB....." */ 12.766 + 0xFF,0xFF,0x0B,0x00,0x0A,0x03,0x4C,0x4E, /* 00000840 "......LN" */ 12.767 + 0x4B,0x43,0x00,0x12,0x0D,0x04,0x0C,0xFF, /* 00000848 "KC......" */ 12.768 + 0xFF,0x0C,0x00,0x00,0x4C,0x4E,0x4B,0x41, /* 00000850 "....LNKA" */ 12.769 + 0x00,0x12,0x0D,0x04,0x0C,0xFF,0xFF,0x0C, /* 00000858 "........" */ 12.770 + 0x00,0x01,0x4C,0x4E,0x4B,0x42,0x00,0x12, /* 00000860 "..LNKB.." */ 12.771 + 0x0E,0x04,0x0C,0xFF,0xFF,0x0C,0x00,0x0A, /* 00000868 "........" */ 12.772 + 0x02,0x4C,0x4E,0x4B,0x43,0x00,0x12,0x0E, /* 00000870 ".LNKC..." */ 12.773 + 0x04,0x0C,0xFF,0xFF,0x0C,0x00,0x0A,0x03, /* 00000878 "........" */ 12.774 + 0x4C,0x4E,0x4B,0x44,0x00,0x12,0x0D,0x04, /* 00000880 "LNKD...." */ 12.775 + 0x0C,0xFF,0xFF,0x0D,0x00,0x00,0x4C,0x4E, /* 00000888 "......LN" */ 12.776 + 0x4B,0x42,0x00,0x12,0x0D,0x04,0x0C,0xFF, /* 00000890 "KB......" */ 12.777 + 0xFF,0x0D,0x00,0x01,0x4C,0x4E,0x4B,0x43, /* 00000898 "....LNKC" */ 12.778 + 0x00,0x12,0x0E,0x04,0x0C,0xFF,0xFF,0x0D, /* 000008A0 "........" */ 12.779 + 0x00,0x0A,0x02,0x4C,0x4E,0x4B,0x44,0x00, /* 000008A8 "...LNKD." */ 12.780 + 0x12,0x0E,0x04,0x0C,0xFF,0xFF,0x0D,0x00, /* 000008B0 "........" */ 12.781 + 0x0A,0x03,0x4C,0x4E,0x4B,0x41,0x00,0x12, /* 000008B8 "..LNKA.." */ 12.782 + 0x0D,0x04,0x0C,0xFF,0xFF,0x0E,0x00,0x00, /* 000008C0 "........" */ 12.783 + 0x4C,0x4E,0x4B,0x43,0x00,0x12,0x0D,0x04, /* 000008C8 "LNKC...." */ 12.784 + 0x0C,0xFF,0xFF,0x0E,0x00,0x01,0x4C,0x4E, /* 000008D0 "......LN" */ 12.785 + 0x4B,0x44,0x00,0x12,0x0E,0x04,0x0C,0xFF, /* 000008D8 "KD......" */ 12.786 + 0xFF,0x0E,0x00,0x0A,0x02,0x4C,0x4E,0x4B, /* 000008E0 ".....LNK" */ 12.787 + 0x41,0x00,0x12,0x0E,0x04,0x0C,0xFF,0xFF, /* 000008E8 "A......." */ 12.788 + 0x0E,0x00,0x0A,0x03,0x4C,0x4E,0x4B,0x42, /* 000008F0 "....LNKB" */ 12.789 + 0x00,0x12,0x0D,0x04,0x0C,0xFF,0xFF,0x0F, /* 000008F8 "........" */ 12.790 + 0x00,0x00,0x4C,0x4E,0x4B,0x44,0x00,0x12, /* 00000900 "..LNKD.." */ 12.791 + 0x0D,0x04,0x0C,0xFF,0xFF,0x0F,0x00,0x01, /* 00000908 "........" */ 12.792 + 0x4C,0x4E,0x4B,0x41,0x00,0x12,0x0E,0x04, /* 00000910 "LNKA...." */ 12.793 + 0x0C,0xFF,0xFF,0x0F,0x00,0x0A,0x02,0x4C, /* 00000918 ".......L" */ 12.794 + 0x4E,0x4B,0x42,0x00,0x12,0x0E,0x04,0x0C, /* 00000920 "NKB....." */ 12.795 + 0xFF,0xFF,0x0F,0x00,0x0A,0x03,0x4C,0x4E, /* 00000928 "......LN" */ 12.796 + 0x4B,0x43,0x00,0x12,0x0D,0x04,0x0C,0xFF, /* 00000930 "KC......" */ 12.797 + 0xFF,0x10,0x00,0x00,0x4C,0x4E,0x4B,0x41, /* 00000938 "....LNKA" */ 12.798 + 0x00,0x12,0x0D,0x04,0x0C,0xFF,0xFF,0x10, /* 00000940 "........" */ 12.799 + 0x00,0x01,0x4C,0x4E,0x4B,0x42,0x00,0x12, /* 00000948 "..LNKB.." */ 12.800 + 0x0E,0x04,0x0C,0xFF,0xFF,0x10,0x00,0x0A, /* 00000950 "........" */ 12.801 + 0x02,0x4C,0x4E,0x4B,0x43,0x00,0x12,0x0E, /* 00000958 ".LNKC..." */ 12.802 + 0x04,0x0C,0xFF,0xFF,0x10,0x00,0x0A,0x03, /* 00000960 "........" */ 12.803 + 0x4C,0x4E,0x4B,0x44,0x00,0x12,0x0D,0x04, /* 00000968 "LNKD...." */ 12.804 + 0x0C,0xFF,0xFF,0x11,0x00,0x00,0x4C,0x4E, /* 00000970 "......LN" */ 12.805 + 0x4B,0x42,0x00,0x12,0x0D,0x04,0x0C,0xFF, /* 00000978 "KB......" */ 12.806 + 0xFF,0x11,0x00,0x01,0x4C,0x4E,0x4B,0x43, /* 00000980 "....LNKC" */ 12.807 + 0x00,0x12,0x0E,0x04,0x0C,0xFF,0xFF,0x11, /* 00000988 "........" */ 12.808 + 0x00,0x0A,0x02,0x4C,0x4E,0x4B,0x44,0x00, /* 00000990 "...LNKD." */ 12.809 + 0x12,0x0E,0x04,0x0C,0xFF,0xFF,0x11,0x00, /* 00000998 "........" */ 12.810 + 0x0A,0x03,0x4C,0x4E,0x4B,0x41,0x00,0x12, /* 000009A0 "..LNKA.." */ 12.811 + 0x0D,0x04,0x0C,0xFF,0xFF,0x12,0x00,0x00, /* 000009A8 "........" */ 12.812 + 0x4C,0x4E,0x4B,0x43,0x00,0x12,0x0D,0x04, /* 000009B0 "LNKC...." */ 12.813 + 0x0C,0xFF,0xFF,0x12,0x00,0x01,0x4C,0x4E, /* 000009B8 "......LN" */ 12.814 + 0x4B,0x44,0x00,0x12,0x0E,0x04,0x0C,0xFF, /* 000009C0 "KD......" */ 12.815 + 0xFF,0x12,0x00,0x0A,0x02,0x4C,0x4E,0x4B, /* 000009C8 ".....LNK" */ 12.816 + 0x41,0x00,0x12,0x0E,0x04,0x0C,0xFF,0xFF, /* 000009D0 "A......." */ 12.817 + 0x12,0x00,0x0A,0x03,0x4C,0x4E,0x4B,0x42, /* 000009D8 "....LNKB" */ 12.818 + 0x00,0x12,0x0D,0x04,0x0C,0xFF,0xFF,0x13, /* 000009E0 "........" */ 12.819 + 0x00,0x00,0x4C,0x4E,0x4B,0x44,0x00,0x12, /* 000009E8 "..LNKD.." */ 12.820 + 0x0D,0x04,0x0C,0xFF,0xFF,0x13,0x00,0x01, /* 000009F0 "........" */ 12.821 + 0x4C,0x4E,0x4B,0x41,0x00,0x12,0x0E,0x04, /* 000009F8 "LNKA...." */ 12.822 + 0x0C,0xFF,0xFF,0x13,0x00,0x0A,0x02,0x4C, /* 00000A00 ".......L" */ 12.823 + 0x4E,0x4B,0x42,0x00,0x12,0x0E,0x04,0x0C, /* 00000A08 "NKB....." */ 12.824 + 0xFF,0xFF,0x13,0x00,0x0A,0x03,0x4C,0x4E, /* 00000A10 "......LN" */ 12.825 + 0x4B,0x43,0x00,0x12,0x0D,0x04,0x0C,0xFF, /* 00000A18 "KC......" */ 12.826 + 0xFF,0x14,0x00,0x00,0x4C,0x4E,0x4B,0x41, /* 00000A20 "....LNKA" */ 12.827 + 0x00,0x12,0x0D,0x04,0x0C,0xFF,0xFF,0x14, /* 00000A28 "........" */ 12.828 + 0x00,0x01,0x4C,0x4E,0x4B,0x42,0x00,0x12, /* 00000A30 "..LNKB.." */ 12.829 + 0x0E,0x04,0x0C,0xFF,0xFF,0x14,0x00,0x0A, /* 00000A38 "........" */ 12.830 + 0x02,0x4C,0x4E,0x4B,0x43,0x00,0x12,0x0E, /* 00000A40 ".LNKC..." */ 12.831 + 0x04,0x0C,0xFF,0xFF,0x14,0x00,0x0A,0x03, /* 00000A48 "........" */ 12.832 + 0x4C,0x4E,0x4B,0x44,0x00,0x12,0x0D,0x04, /* 00000A50 "LNKD...." */ 12.833 + 0x0C,0xFF,0xFF,0x15,0x00,0x00,0x4C,0x4E, /* 00000A58 "......LN" */ 12.834 + 0x4B,0x42,0x00,0x12,0x0D,0x04,0x0C,0xFF, /* 00000A60 "KB......" */ 12.835 + 0xFF,0x15,0x00,0x01,0x4C,0x4E,0x4B,0x43, /* 00000A68 "....LNKC" */ 12.836 + 0x00,0x12,0x0E,0x04,0x0C,0xFF,0xFF,0x15, /* 00000A70 "........" */ 12.837 + 0x00,0x0A,0x02,0x4C,0x4E,0x4B,0x44,0x00, /* 00000A78 "...LNKD." */ 12.838 + 0x12,0x0E,0x04,0x0C,0xFF,0xFF,0x15,0x00, /* 00000A80 "........" */ 12.839 + 0x0A,0x03,0x4C,0x4E,0x4B,0x41,0x00,0x12, /* 00000A88 "..LNKA.." */ 12.840 + 0x0D,0x04,0x0C,0xFF,0xFF,0x16,0x00,0x00, /* 00000A90 "........" */ 12.841 + 0x4C,0x4E,0x4B,0x43,0x00,0x12,0x0D,0x04, /* 00000A98 "LNKC...." */ 12.842 + 0x0C,0xFF,0xFF,0x16,0x00,0x01,0x4C,0x4E, /* 00000AA0 "......LN" */ 12.843 + 0x4B,0x44,0x00,0x12,0x0E,0x04,0x0C,0xFF, /* 00000AA8 "KD......" */ 12.844 + 0xFF,0x16,0x00,0x0A,0x02,0x4C,0x4E,0x4B, /* 00000AB0 ".....LNK" */ 12.845 + 0x41,0x00,0x12,0x0E,0x04,0x0C,0xFF,0xFF, /* 00000AB8 "A......." */ 12.846 + 0x16,0x00,0x0A,0x03,0x4C,0x4E,0x4B,0x42, /* 00000AC0 "....LNKB" */ 12.847 + 0x00,0x12,0x0D,0x04,0x0C,0xFF,0xFF,0x17, /* 00000AC8 "........" */ 12.848 + 0x00,0x00,0x4C,0x4E,0x4B,0x44,0x00,0x12, /* 00000AD0 "..LNKD.." */ 12.849 + 0x0D,0x04,0x0C,0xFF,0xFF,0x17,0x00,0x01, /* 00000AD8 "........" */ 12.850 + 0x4C,0x4E,0x4B,0x41,0x00,0x12,0x0E,0x04, /* 00000AE0 "LNKA...." */ 12.851 + 0x0C,0xFF,0xFF,0x17,0x00,0x0A,0x02,0x4C, /* 00000AE8 ".......L" */ 12.852 + 0x4E,0x4B,0x42,0x00,0x12,0x0E,0x04,0x0C, /* 00000AF0 "NKB....." */ 12.853 + 0xFF,0xFF,0x17,0x00,0x0A,0x03,0x4C,0x4E, /* 00000AF8 "......LN" */ 12.854 + 0x4B,0x43,0x00,0x12,0x0D,0x04,0x0C,0xFF, /* 00000B00 "KC......" */ 12.855 + 0xFF,0x18,0x00,0x00,0x4C,0x4E,0x4B,0x41, /* 00000B08 "....LNKA" */ 12.856 + 0x00,0x12,0x0D,0x04,0x0C,0xFF,0xFF,0x18, /* 00000B10 "........" */ 12.857 + 0x00,0x01,0x4C,0x4E,0x4B,0x42,0x00,0x12, /* 00000B18 "..LNKB.." */ 12.858 + 0x0E,0x04,0x0C,0xFF,0xFF,0x18,0x00,0x0A, /* 00000B20 "........" */ 12.859 + 0x02,0x4C,0x4E,0x4B,0x43,0x00,0x12,0x0E, /* 00000B28 ".LNKC..." */ 12.860 + 0x04,0x0C,0xFF,0xFF,0x18,0x00,0x0A,0x03, /* 00000B30 "........" */ 12.861 + 0x4C,0x4E,0x4B,0x44,0x00,0x12,0x0D,0x04, /* 00000B38 "LNKD...." */ 12.862 + 0x0C,0xFF,0xFF,0x19,0x00,0x00,0x4C,0x4E, /* 00000B40 "......LN" */ 12.863 + 0x4B,0x42,0x00,0x12,0x0D,0x04,0x0C,0xFF, /* 00000B48 "KB......" */ 12.864 + 0xFF,0x19,0x00,0x01,0x4C,0x4E,0x4B,0x43, /* 00000B50 "....LNKC" */ 12.865 + 0x00,0x12,0x0E,0x04,0x0C,0xFF,0xFF,0x19, /* 00000B58 "........" */ 12.866 + 0x00,0x0A,0x02,0x4C,0x4E,0x4B,0x44,0x00, /* 00000B60 "...LNKD." */ 12.867 + 0x12,0x0E,0x04,0x0C,0xFF,0xFF,0x19,0x00, /* 00000B68 "........" */ 12.868 + 0x0A,0x03,0x4C,0x4E,0x4B,0x41,0x00,0x12, /* 00000B70 "..LNKA.." */ 12.869 + 0x0D,0x04,0x0C,0xFF,0xFF,0x1A,0x00,0x00, /* 00000B78 "........" */ 12.870 + 0x4C,0x4E,0x4B,0x43,0x00,0x12,0x0D,0x04, /* 00000B80 "LNKC...." */ 12.871 + 0x0C,0xFF,0xFF,0x1A,0x00,0x01,0x4C,0x4E, /* 00000B88 "......LN" */ 12.872 + 0x4B,0x44,0x00,0x12,0x0E,0x04,0x0C,0xFF, /* 00000B90 "KD......" */ 12.873 + 0xFF,0x1A,0x00,0x0A,0x02,0x4C,0x4E,0x4B, /* 00000B98 ".....LNK" */ 12.874 + 0x41,0x00,0x12,0x0E,0x04,0x0C,0xFF,0xFF, /* 00000BA0 "A......." */ 12.875 + 0x1A,0x00,0x0A,0x03,0x4C,0x4E,0x4B,0x42, /* 00000BA8 "....LNKB" */ 12.876 + 0x00,0x12,0x0D,0x04,0x0C,0xFF,0xFF,0x1B, /* 00000BB0 "........" */ 12.877 + 0x00,0x00,0x4C,0x4E,0x4B,0x44,0x00,0x12, /* 00000BB8 "..LNKD.." */ 12.878 + 0x0D,0x04,0x0C,0xFF,0xFF,0x1B,0x00,0x01, /* 00000BC0 "........" */ 12.879 + 0x4C,0x4E,0x4B,0x41,0x00,0x12,0x0E,0x04, /* 00000BC8 "LNKA...." */ 12.880 + 0x0C,0xFF,0xFF,0x1B,0x00,0x0A,0x02,0x4C, /* 00000BD0 ".......L" */ 12.881 + 0x4E,0x4B,0x42,0x00,0x12,0x0E,0x04,0x0C, /* 00000BD8 "NKB....." */ 12.882 + 0xFF,0xFF,0x1B,0x00,0x0A,0x03,0x4C,0x4E, /* 00000BE0 "......LN" */ 12.883 + 0x4B,0x43,0x00,0x12,0x0D,0x04,0x0C,0xFF, /* 00000BE8 "KC......" */ 12.884 + 0xFF,0x1C,0x00,0x00,0x4C,0x4E,0x4B,0x41, /* 00000BF0 "....LNKA" */ 12.885 + 0x00,0x12,0x0D,0x04,0x0C,0xFF,0xFF,0x1C, /* 00000BF8 "........" */ 12.886 + 0x00,0x01,0x4C,0x4E,0x4B,0x42,0x00,0x12, /* 00000C00 "..LNKB.." */ 12.887 + 0x0E,0x04,0x0C,0xFF,0xFF,0x1C,0x00,0x0A, /* 00000C08 "........" */ 12.888 + 0x02,0x4C,0x4E,0x4B,0x43,0x00,0x12,0x0E, /* 00000C10 ".LNKC..." */ 12.889 + 0x04,0x0C,0xFF,0xFF,0x1C,0x00,0x0A,0x03, /* 00000C18 "........" */ 12.890 + 0x4C,0x4E,0x4B,0x44,0x00,0x12,0x0D,0x04, /* 00000C20 "LNKD...." */ 12.891 + 0x0C,0xFF,0xFF,0x1D,0x00,0x00,0x4C,0x4E, /* 00000C28 "......LN" */ 12.892 + 0x4B,0x42,0x00,0x12,0x0D,0x04,0x0C,0xFF, /* 00000C30 "KB......" */ 12.893 + 0xFF,0x1D,0x00,0x01,0x4C,0x4E,0x4B,0x43, /* 00000C38 "....LNKC" */ 12.894 + 0x00,0x12,0x0E,0x04,0x0C,0xFF,0xFF,0x1D, /* 00000C40 "........" */ 12.895 + 0x00,0x0A,0x02,0x4C,0x4E,0x4B,0x44,0x00, /* 00000C48 "...LNKD." */ 12.896 + 0x12,0x0E,0x04,0x0C,0xFF,0xFF,0x1D,0x00, /* 00000C50 "........" */ 12.897 + 0x0A,0x03,0x4C,0x4E,0x4B,0x41,0x00,0x12, /* 00000C58 "..LNKA.." */ 12.898 + 0x0D,0x04,0x0C,0xFF,0xFF,0x1E,0x00,0x00, /* 00000C60 "........" */ 12.899 + 0x4C,0x4E,0x4B,0x43,0x00,0x12,0x0D,0x04, /* 00000C68 "LNKC...." */ 12.900 + 0x0C,0xFF,0xFF,0x1E,0x00,0x01,0x4C,0x4E, /* 00000C70 "......LN" */ 12.901 + 0x4B,0x44,0x00,0x12,0x0E,0x04,0x0C,0xFF, /* 00000C78 "KD......" */ 12.902 + 0xFF,0x1E,0x00,0x0A,0x02,0x4C,0x4E,0x4B, /* 00000C80 ".....LNK" */ 12.903 + 0x41,0x00,0x12,0x0E,0x04,0x0C,0xFF,0xFF, /* 00000C88 "A......." */ 12.904 + 0x1E,0x00,0x0A,0x03,0x4C,0x4E,0x4B,0x42, /* 00000C90 "....LNKB" */ 12.905 + 0x00,0x12,0x0D,0x04,0x0C,0xFF,0xFF,0x1F, /* 00000C98 "........" */ 12.906 + 0x00,0x00,0x4C,0x4E,0x4B,0x44,0x00,0x12, /* 00000CA0 "..LNKD.." */ 12.907 + 0x0D,0x04,0x0C,0xFF,0xFF,0x1F,0x00,0x01, /* 00000CA8 "........" */ 12.908 + 0x4C,0x4E,0x4B,0x41,0x00,0x12,0x0E,0x04, /* 00000CB0 "LNKA...." */ 12.909 + 0x0C,0xFF,0xFF,0x1F,0x00,0x0A,0x02,0x4C, /* 00000CB8 ".......L" */ 12.910 + 0x4E,0x4B,0x42,0x00,0x12,0x0E,0x04,0x0C, /* 00000CC0 "NKB....." */ 12.911 + 0xFF,0xFF,0x1F,0x00,0x0A,0x03,0x4C,0x4E, /* 00000CC8 "......LN" */ 12.912 + 0x4B,0x43,0x00,0x08,0x50,0x52,0x54,0x41, /* 00000CD0 "KC..PRTA" */ 12.913 + 0x12,0x41,0x61,0x7C,0x12,0x0B,0x04,0x0C, /* 00000CD8 ".Aa|...." */ 12.914 + 0xFF,0xFF,0x01,0x00,0x00,0x00,0x0A,0x14, /* 00000CE0 "........" */ 12.915 + 0x12,0x0B,0x04,0x0C,0xFF,0xFF,0x01,0x00, /* 00000CE8 "........" */ 12.916 + 0x01,0x00,0x0A,0x15,0x12,0x0C,0x04,0x0C, /* 00000CF0 "........" */ 12.917 + 0xFF,0xFF,0x01,0x00,0x0A,0x02,0x00,0x0A, /* 00000CF8 "........" */ 12.918 + 0x16,0x12,0x0C,0x04,0x0C,0xFF,0xFF,0x01, /* 00000D00 "........" */ 12.919 + 0x00,0x0A,0x03,0x00,0x0A,0x17,0x12,0x0B, /* 00000D08 "........" */ 12.920 + 0x04,0x0C,0xFF,0xFF,0x02,0x00,0x00,0x00, /* 00000D10 "........" */ 12.921 + 0x0A,0x18,0x12,0x0B,0x04,0x0C,0xFF,0xFF, /* 00000D18 "........" */ 12.922 + 0x02,0x00,0x01,0x00,0x0A,0x19,0x12,0x0C, /* 00000D20 "........" */ 12.923 + 0x04,0x0C,0xFF,0xFF,0x02,0x00,0x0A,0x02, /* 00000D28 "........" */ 12.924 + 0x00,0x0A,0x1A,0x12,0x0C,0x04,0x0C,0xFF, /* 00000D30 "........" */ 12.925 + 0xFF,0x02,0x00,0x0A,0x03,0x00,0x0A,0x1B, /* 00000D38 "........" */ 12.926 + 0x12,0x0B,0x04,0x0C,0xFF,0xFF,0x03,0x00, /* 00000D40 "........" */ 12.927 + 0x00,0x00,0x0A,0x1C,0x12,0x0B,0x04,0x0C, /* 00000D48 "........" */ 12.928 + 0xFF,0xFF,0x03,0x00,0x01,0x00,0x0A,0x1D, /* 00000D50 "........" */ 12.929 + 0x12,0x0C,0x04,0x0C,0xFF,0xFF,0x03,0x00, /* 00000D58 "........" */ 12.930 + 0x0A,0x02,0x00,0x0A,0x1E,0x12,0x0C,0x04, /* 00000D60 "........" */ 12.931 + 0x0C,0xFF,0xFF,0x03,0x00,0x0A,0x03,0x00, /* 00000D68 "........" */ 12.932 + 0x0A,0x1F,0x12,0x0B,0x04,0x0C,0xFF,0xFF, /* 00000D70 "........" */ 12.933 + 0x04,0x00,0x00,0x00,0x0A,0x20,0x12,0x0B, /* 00000D78 "..... .." */ 12.934 + 0x04,0x0C,0xFF,0xFF,0x04,0x00,0x01,0x00, /* 00000D80 "........" */ 12.935 + 0x0A,0x21,0x12,0x0C,0x04,0x0C,0xFF,0xFF, /* 00000D88 ".!......" */ 12.936 + 0x04,0x00,0x0A,0x02,0x00,0x0A,0x22,0x12, /* 00000D90 "......"." */ 12.937 + 0x0C,0x04,0x0C,0xFF,0xFF,0x04,0x00,0x0A, /* 00000D98 "........" */ 12.938 + 0x03,0x00,0x0A,0x23,0x12,0x0B,0x04,0x0C, /* 00000DA0 "...#...." */ 12.939 + 0xFF,0xFF,0x05,0x00,0x00,0x00,0x0A,0x24, /* 00000DA8 ".......$" */ 12.940 + 0x12,0x0B,0x04,0x0C,0xFF,0xFF,0x05,0x00, /* 00000DB0 "........" */ 12.941 + 0x01,0x00,0x0A,0x25,0x12,0x0C,0x04,0x0C, /* 00000DB8 "...%...." */ 12.942 + 0xFF,0xFF,0x05,0x00,0x0A,0x02,0x00,0x0A, /* 00000DC0 "........" */ 12.943 + 0x26,0x12,0x0C,0x04,0x0C,0xFF,0xFF,0x05, /* 00000DC8 "&......." */ 12.944 + 0x00,0x0A,0x03,0x00,0x0A,0x27,0x12,0x0B, /* 00000DD0 ".....'.." */ 12.945 + 0x04,0x0C,0xFF,0xFF,0x06,0x00,0x00,0x00, /* 00000DD8 "........" */ 12.946 + 0x0A,0x28,0x12,0x0B,0x04,0x0C,0xFF,0xFF, /* 00000DE0 ".(......" */ 12.947 + 0x06,0x00,0x01,0x00,0x0A,0x29,0x12,0x0C, /* 00000DE8 ".....).." */ 12.948 + 0x04,0x0C,0xFF,0xFF,0x06,0x00,0x0A,0x02, /* 00000DF0 "........" */ 12.949 + 0x00,0x0A,0x2A,0x12,0x0C,0x04,0x0C,0xFF, /* 00000DF8 "..*....." */ 12.950 + 0xFF,0x06,0x00,0x0A,0x03,0x00,0x0A,0x2B, /* 00000E00 ".......+" */ 12.951 + 0x12,0x0B,0x04,0x0C,0xFF,0xFF,0x07,0x00, /* 00000E08 "........" */ 12.952 + 0x00,0x00,0x0A,0x2C,0x12,0x0B,0x04,0x0C, /* 00000E10 "...,...." */ 12.953 + 0xFF,0xFF,0x07,0x00,0x01,0x00,0x0A,0x2D, /* 00000E18 ".......-" */ 12.954 + 0x12,0x0C,0x04,0x0C,0xFF,0xFF,0x07,0x00, /* 00000E20 "........" */ 12.955 + 0x0A,0x02,0x00,0x0A,0x2E,0x12,0x0C,0x04, /* 00000E28 "........" */ 12.956 + 0x0C,0xFF,0xFF,0x07,0x00,0x0A,0x03,0x00, /* 00000E30 "........" */ 12.957 + 0x0A,0x2F,0x12,0x0B,0x04,0x0C,0xFF,0xFF, /* 00000E38 "./......" */ 12.958 + 0x08,0x00,0x00,0x00,0x0A,0x11,0x12,0x0B, /* 00000E40 "........" */ 12.959 + 0x04,0x0C,0xFF,0xFF,0x08,0x00,0x01,0x00, /* 00000E48 "........" */ 12.960 + 0x0A,0x12,0x12,0x0C,0x04,0x0C,0xFF,0xFF, /* 00000E50 "........" */ 12.961 + 0x08,0x00,0x0A,0x02,0x00,0x0A,0x13,0x12, /* 00000E58 "........" */ 12.962 + 0x0C,0x04,0x0C,0xFF,0xFF,0x08,0x00,0x0A, /* 00000E60 "........" */ 12.963 + 0x03,0x00,0x0A,0x14,0x12,0x0B,0x04,0x0C, /* 00000E68 "........" */ 12.964 + 0xFF,0xFF,0x09,0x00,0x00,0x00,0x0A,0x15, /* 00000E70 "........" */ 12.965 + 0x12,0x0B,0x04,0x0C,0xFF,0xFF,0x09,0x00, /* 00000E78 "........" */ 12.966 + 0x01,0x00,0x0A,0x16,0x12,0x0C,0x04,0x0C, /* 00000E80 "........" */ 12.967 + 0xFF,0xFF,0x09,0x00,0x0A,0x02,0x00,0x0A, /* 00000E88 "........" */ 12.968 + 0x17,0x12,0x0C,0x04,0x0C,0xFF,0xFF,0x09, /* 00000E90 "........" */ 12.969 + 0x00,0x0A,0x03,0x00,0x0A,0x18,0x12,0x0B, /* 00000E98 "........" */ 12.970 + 0x04,0x0C,0xFF,0xFF,0x0A,0x00,0x00,0x00, /* 00000EA0 "........" */ 12.971 + 0x0A,0x19,0x12,0x0B,0x04,0x0C,0xFF,0xFF, /* 00000EA8 "........" */ 12.972 + 0x0A,0x00,0x01,0x00,0x0A,0x1A,0x12,0x0C, /* 00000EB0 "........" */ 12.973 + 0x04,0x0C,0xFF,0xFF,0x0A,0x00,0x0A,0x02, /* 00000EB8 "........" */ 12.974 + 0x00,0x0A,0x1B,0x12,0x0C,0x04,0x0C,0xFF, /* 00000EC0 "........" */ 12.975 + 0xFF,0x0A,0x00,0x0A,0x03,0x00,0x0A,0x1C, /* 00000EC8 "........" */ 12.976 + 0x12,0x0B,0x04,0x0C,0xFF,0xFF,0x0B,0x00, /* 00000ED0 "........" */ 12.977 + 0x00,0x00,0x0A,0x1D,0x12,0x0B,0x04,0x0C, /* 00000ED8 "........" */ 12.978 + 0xFF,0xFF,0x0B,0x00,0x01,0x00,0x0A,0x1E, /* 00000EE0 "........" */ 12.979 + 0x12,0x0C,0x04,0x0C,0xFF,0xFF,0x0B,0x00, /* 00000EE8 "........" */ 12.980 + 0x0A,0x02,0x00,0x0A,0x1F,0x12,0x0C,0x04, /* 00000EF0 "........" */ 12.981 + 0x0C,0xFF,0xFF,0x0B,0x00,0x0A,0x03,0x00, /* 00000EF8 "........" */ 12.982 + 0x0A,0x20,0x12,0x0B,0x04,0x0C,0xFF,0xFF, /* 00000F00 ". ......" */ 12.983 + 0x0C,0x00,0x00,0x00,0x0A,0x21,0x12,0x0B, /* 00000F08 ".....!.." */ 12.984 + 0x04,0x0C,0xFF,0xFF,0x0C,0x00,0x01,0x00, /* 00000F10 "........" */ 12.985 + 0x0A,0x22,0x12,0x0C,0x04,0x0C,0xFF,0xFF, /* 00000F18 "."......" */ 12.986 + 0x0C,0x00,0x0A,0x02,0x00,0x0A,0x23,0x12, /* 00000F20 "......#." */ 12.987 + 0x0C,0x04,0x0C,0xFF,0xFF,0x0C,0x00,0x0A, /* 00000F28 "........" */ 12.988 + 0x03,0x00,0x0A,0x24,0x12,0x0B,0x04,0x0C, /* 00000F30 "...$...." */ 12.989 + 0xFF,0xFF,0x0D,0x00,0x00,0x00,0x0A,0x25, /* 00000F38 ".......%" */ 12.990 + 0x12,0x0B,0x04,0x0C,0xFF,0xFF,0x0D,0x00, /* 00000F40 "........" */ 12.991 + 0x01,0x00,0x0A,0x26,0x12,0x0C,0x04,0x0C, /* 00000F48 "...&...." */ 12.992 + 0xFF,0xFF,0x0D,0x00,0x0A,0x02,0x00,0x0A, /* 00000F50 "........" */ 12.993 + 0x27,0x12,0x0C,0x04,0x0C,0xFF,0xFF,0x0D, /* 00000F58 "'......." */ 12.994 + 0x00,0x0A,0x03,0x00,0x0A,0x28,0x12,0x0B, /* 00000F60 ".....(.." */ 12.995 + 0x04,0x0C,0xFF,0xFF,0x0E,0x00,0x00,0x00, /* 00000F68 "........" */ 12.996 + 0x0A,0x29,0x12,0x0B,0x04,0x0C,0xFF,0xFF, /* 00000F70 ".)......" */ 12.997 + 0x0E,0x00,0x01,0x00,0x0A,0x2A,0x12,0x0C, /* 00000F78 ".....*.." */ 12.998 + 0x04,0x0C,0xFF,0xFF,0x0E,0x00,0x0A,0x02, /* 00000F80 "........" */ 12.999 + 0x00,0x0A,0x2B,0x12,0x0C,0x04,0x0C,0xFF, /* 00000F88 "..+....." */ 12.1000 + 0xFF,0x0E,0x00,0x0A,0x03,0x00,0x0A,0x2C, /* 00000F90 ".......," */ 12.1001 + 0x12,0x0B,0x04,0x0C,0xFF,0xFF,0x0F,0x00, /* 00000F98 "........" */ 12.1002 + 0x00,0x00,0x0A,0x2D,0x12,0x0B,0x04,0x0C, /* 00000FA0 "...-...." */ 12.1003 + 0xFF,0xFF,0x0F,0x00,0x01,0x00,0x0A,0x2E, /* 00000FA8 "........" */ 12.1004 + 0x12,0x0C,0x04,0x0C,0xFF,0xFF,0x0F,0x00, /* 00000FB0 "........" */ 12.1005 + 0x0A,0x02,0x00,0x0A,0x2F,0x12,0x0C,0x04, /* 00000FB8 "..../..." */ 12.1006 + 0x0C,0xFF,0xFF,0x0F,0x00,0x0A,0x03,0x00, /* 00000FC0 "........" */ 12.1007 + 0x0A,0x10,0x12,0x0B,0x04,0x0C,0xFF,0xFF, /* 00000FC8 "........" */ 12.1008 + 0x10,0x00,0x00,0x00,0x0A,0x12,0x12,0x0B, /* 00000FD0 "........" */ 12.1009 + 0x04,0x0C,0xFF,0xFF,0x10,0x00,0x01,0x00, /* 00000FD8 "........" */ 12.1010 + 0x0A,0x13,0x12,0x0C,0x04,0x0C,0xFF,0xFF, /* 00000FE0 "........" */ 12.1011 + 0x10,0x00,0x0A,0x02,0x00,0x0A,0x14,0x12, /* 00000FE8 "........" */ 12.1012 + 0x0C,0x04,0x0C,0xFF,0xFF,0x10,0x00,0x0A, /* 00000FF0 "........" */ 12.1013 + 0x03,0x00,0x0A,0x15,0x12,0x0B,0x04,0x0C, /* 00000FF8 "........" */ 12.1014 + 0xFF,0xFF,0x11,0x00,0x00,0x00,0x0A,0x16, /* 00001000 "........" */ 12.1015 + 0x12,0x0B,0x04,0x0C,0xFF,0xFF,0x11,0x00, /* 00001008 "........" */ 12.1016 + 0x01,0x00,0x0A,0x17,0x12,0x0C,0x04,0x0C, /* 00001010 "........" */ 12.1017 + 0xFF,0xFF,0x11,0x00,0x0A,0x02,0x00,0x0A, /* 00001018 "........" */ 12.1018 + 0x18,0x12,0x0C,0x04,0x0C,0xFF,0xFF,0x11, /* 00001020 "........" */ 12.1019 + 0x00,0x0A,0x03,0x00,0x0A,0x19,0x12,0x0B, /* 00001028 "........" */ 12.1020 + 0x04,0x0C,0xFF,0xFF,0x12,0x00,0x00,0x00, /* 00001030 "........" */ 12.1021 + 0x0A,0x1A,0x12,0x0B,0x04,0x0C,0xFF,0xFF, /* 00001038 "........" */ 12.1022 + 0x12,0x00,0x01,0x00,0x0A,0x1B,0x12,0x0C, /* 00001040 "........" */ 12.1023 + 0x04,0x0C,0xFF,0xFF,0x12,0x00,0x0A,0x02, /* 00001048 "........" */ 12.1024 + 0x00,0x0A,0x1C,0x12,0x0C,0x04,0x0C,0xFF, /* 00001050 "........" */ 12.1025 + 0xFF,0x12,0x00,0x0A,0x03,0x00,0x0A,0x1D, /* 00001058 "........" */ 12.1026 + 0x12,0x0B,0x04,0x0C,0xFF,0xFF,0x13,0x00, /* 00001060 "........" */ 12.1027 + 0x00,0x00,0x0A,0x1E,0x12,0x0B,0x04,0x0C, /* 00001068 "........" */ 12.1028 + 0xFF,0xFF,0x13,0x00,0x01,0x00,0x0A,0x1F, /* 00001070 "........" */ 12.1029 + 0x12,0x0C,0x04,0x0C,0xFF,0xFF,0x13,0x00, /* 00001078 "........" */ 12.1030 + 0x0A,0x02,0x00,0x0A,0x20,0x12,0x0C,0x04, /* 00001080 ".... ..." */ 12.1031 + 0x0C,0xFF,0xFF,0x13,0x00,0x0A,0x03,0x00, /* 00001088 "........" */ 12.1032 + 0x0A,0x21,0x12,0x0B,0x04,0x0C,0xFF,0xFF, /* 00001090 ".!......" */ 12.1033 + 0x14,0x00,0x00,0x00,0x0A,0x22,0x12,0x0B, /* 00001098 ".....".." */ 12.1034 + 0x04,0x0C,0xFF,0xFF,0x14,0x00,0x01,0x00, /* 000010A0 "........" */ 12.1035 + 0x0A,0x23,0x12,0x0C,0x04,0x0C,0xFF,0xFF, /* 000010A8 ".#......" */ 12.1036 + 0x14,0x00,0x0A,0x02,0x00,0x0A,0x24,0x12, /* 000010B0 "......$." */ 12.1037 + 0x0C,0x04,0x0C,0xFF,0xFF,0x14,0x00,0x0A, /* 000010B8 "........" */ 12.1038 + 0x03,0x00,0x0A,0x25,0x12,0x0B,0x04,0x0C, /* 000010C0 "...%...." */ 12.1039 + 0xFF,0xFF,0x15,0x00,0x00,0x00,0x0A,0x26, /* 000010C8 ".......&" */ 12.1040 + 0x12,0x0B,0x04,0x0C,0xFF,0xFF,0x15,0x00, /* 000010D0 "........" */ 12.1041 + 0x01,0x00,0x0A,0x27,0x12,0x0C,0x04,0x0C, /* 000010D8 "...'...." */ 12.1042 + 0xFF,0xFF,0x15,0x00,0x0A,0x02,0x00,0x0A, /* 000010E0 "........" */ 12.1043 + 0x28,0x12,0x0C,0x04,0x0C,0xFF,0xFF,0x15, /* 000010E8 "(......." */ 12.1044 + 0x00,0x0A,0x03,0x00,0x0A,0x29,0x12,0x0B, /* 000010F0 ".....).." */ 12.1045 + 0x04,0x0C,0xFF,0xFF,0x16,0x00,0x00,0x00, /* 000010F8 "........" */ 12.1046 + 0x0A,0x2A,0x12,0x0B,0x04,0x0C,0xFF,0xFF, /* 00001100 ".*......" */ 12.1047 + 0x16,0x00,0x01,0x00,0x0A,0x2B,0x12,0x0C, /* 00001108 ".....+.." */ 12.1048 + 0x04,0x0C,0xFF,0xFF,0x16,0x00,0x0A,0x02, /* 00001110 "........" */ 12.1049 + 0x00,0x0A,0x2C,0x12,0x0C,0x04,0x0C,0xFF, /* 00001118 "..,....." */ 12.1050 + 0xFF,0x16,0x00,0x0A,0x03,0x00,0x0A,0x2D, /* 00001120 ".......-" */ 12.1051 + 0x12,0x0B,0x04,0x0C,0xFF,0xFF,0x17,0x00, /* 00001128 "........" */ 12.1052 + 0x00,0x00,0x0A,0x2E,0x12,0x0B,0x04,0x0C, /* 00001130 "........" */ 12.1053 + 0xFF,0xFF,0x17,0x00,0x01,0x00,0x0A,0x2F, /* 00001138 "......./" */ 12.1054 + 0x12,0x0C,0x04,0x0C,0xFF,0xFF,0x17,0x00, /* 00001140 "........" */ 12.1055 + 0x0A,0x02,0x00,0x0A,0x10,0x12,0x0C,0x04, /* 00001148 "........" */ 12.1056 + 0x0C,0xFF,0xFF,0x17,0x00,0x0A,0x03,0x00, /* 00001150 "........" */ 12.1057 + 0x0A,0x11,0x12,0x0B,0x04,0x0C,0xFF,0xFF, /* 00001158 "........" */ 12.1058 + 0x18,0x00,0x00,0x00,0x0A,0x13,0x12,0x0B, /* 00001160 "........" */ 12.1059 + 0x04,0x0C,0xFF,0xFF,0x18,0x00,0x01,0x00, /* 00001168 "........" */ 12.1060 + 0x0A,0x14,0x12,0x0C,0x04,0x0C,0xFF,0xFF, /* 00001170 "........" */ 12.1061 + 0x18,0x00,0x0A,0x02,0x00,0x0A,0x15,0x12, /* 00001178 "........" */ 12.1062 + 0x0C,0x04,0x0C,0xFF,0xFF,0x18,0x00,0x0A, /* 00001180 "........" */ 12.1063 + 0x03,0x00,0x0A,0x16,0x12,0x0B,0x04,0x0C, /* 00001188 "........" */ 12.1064 + 0xFF,0xFF,0x19,0x00,0x00,0x00,0x0A,0x17, /* 00001190 "........" */ 12.1065 + 0x12,0x0B,0x04,0x0C,0xFF,0xFF,0x19,0x00, /* 00001198 "........" */ 12.1066 + 0x01,0x00,0x0A,0x18,0x12,0x0C,0x04,0x0C, /* 000011A0 "........" */ 12.1067 + 0xFF,0xFF,0x19,0x00,0x0A,0x02,0x00,0x0A, /* 000011A8 "........" */ 12.1068 + 0x19,0x12,0x0C,0x04,0x0C,0xFF,0xFF,0x19, /* 000011B0 "........" */ 12.1069 + 0x00,0x0A,0x03,0x00,0x0A,0x1A,0x12,0x0B, /* 000011B8 "........" */ 12.1070 + 0x04,0x0C,0xFF,0xFF,0x1A,0x00,0x00,0x00, /* 000011C0 "........" */ 12.1071 + 0x0A,0x1B,0x12,0x0B,0x04,0x0C,0xFF,0xFF, /* 000011C8 "........" */ 12.1072 + 0x1A,0x00,0x01,0x00,0x0A,0x1C,0x12,0x0C, /* 000011D0 "........" */ 12.1073 + 0x04,0x0C,0xFF,0xFF,0x1A,0x00,0x0A,0x02, /* 000011D8 "........" */ 12.1074 + 0x00,0x0A,0x1D,0x12,0x0C,0x04,0x0C,0xFF, /* 000011E0 "........" */ 12.1075 + 0xFF,0x1A,0x00,0x0A,0x03,0x00,0x0A,0x1E, /* 000011E8 "........" */ 12.1076 + 0x12,0x0B,0x04,0x0C,0xFF,0xFF,0x1B,0x00, /* 000011F0 "........" */ 12.1077 + 0x00,0x00,0x0A,0x1F,0x12,0x0B,0x04,0x0C, /* 000011F8 "........" */ 12.1078 + 0xFF,0xFF,0x1B,0x00,0x01,0x00,0x0A,0x20, /* 00001200 "....... " */ 12.1079 + 0x12,0x0C,0x04,0x0C,0xFF,0xFF,0x1B,0x00, /* 00001208 "........" */ 12.1080 + 0x0A,0x02,0x00,0x0A,0x21,0x12,0x0C,0x04, /* 00001210 "....!..." */ 12.1081 + 0x0C,0xFF,0xFF,0x1B,0x00,0x0A,0x03,0x00, /* 00001218 "........" */ 12.1082 + 0x0A,0x22,0x12,0x0B,0x04,0x0C,0xFF,0xFF, /* 00001220 "."......" */ 12.1083 + 0x1C,0x00,0x00,0x00,0x0A,0x23,0x12,0x0B, /* 00001228 ".....#.." */ 12.1084 + 0x04,0x0C,0xFF,0xFF,0x1C,0x00,0x01,0x00, /* 00001230 "........" */ 12.1085 + 0x0A,0x24,0x12,0x0C,0x04,0x0C,0xFF,0xFF, /* 00001238 ".$......" */ 12.1086 + 0x1C,0x00,0x0A,0x02,0x00,0x0A,0x25,0x12, /* 00001240 "......%." */ 12.1087 + 0x0C,0x04,0x0C,0xFF,0xFF,0x1C,0x00,0x0A, /* 00001248 "........" */ 12.1088 + 0x03,0x00,0x0A,0x26,0x12,0x0B,0x04,0x0C, /* 00001250 "...&...." */ 12.1089 + 0xFF,0xFF,0x1D,0x00,0x00,0x00,0x0A,0x27, /* 00001258 ".......'" */ 12.1090 + 0x12,0x0B,0x04,0x0C,0xFF,0xFF,0x1D,0x00, /* 00001260 "........" */ 12.1091 + 0x01,0x00,0x0A,0x28,0x12,0x0C,0x04,0x0C, /* 00001268 "...(...." */ 12.1092 + 0xFF,0xFF,0x1D,0x00,0x0A,0x02,0x00,0x0A, /* 00001270 "........" */ 12.1093 + 0x29,0x12,0x0C,0x04,0x0C,0xFF,0xFF,0x1D, /* 00001278 ")......." */ 12.1094 + 0x00,0x0A,0x03,0x00,0x0A,0x2A,0x12,0x0B, /* 00001280 ".....*.." */ 12.1095 + 0x04,0x0C,0xFF,0xFF,0x1E,0x00,0x00,0x00, /* 00001288 "........" */ 12.1096 + 0x0A,0x2B,0x12,0x0B,0x04,0x0C,0xFF,0xFF, /* 00001290 ".+......" */ 12.1097 + 0x1E,0x00,0x01,0x00,0x0A,0x2C,0x12,0x0C, /* 00001298 ".....,.." */ 12.1098 + 0x04,0x0C,0xFF,0xFF,0x1E,0x00,0x0A,0x02, /* 000012A0 "........" */ 12.1099 + 0x00,0x0A,0x2D,0x12,0x0C,0x04,0x0C,0xFF, /* 000012A8 "..-....." */ 12.1100 + 0xFF,0x1E,0x00,0x0A,0x03,0x00,0x0A,0x2E, /* 000012B0 "........" */ 12.1101 + 0x12,0x0B,0x04,0x0C,0xFF,0xFF,0x1F,0x00, /* 000012B8 "........" */ 12.1102 + 0x00,0x00,0x0A,0x2F,0x12,0x0B,0x04,0x0C, /* 000012C0 ".../...." */ 12.1103 + 0xFF,0xFF,0x1F,0x00,0x01,0x00,0x0A,0x10, /* 000012C8 "........" */ 12.1104 + 0x12,0x0C,0x04,0x0C,0xFF,0xFF,0x1F,0x00, /* 000012D0 "........" */ 12.1105 + 0x0A,0x02,0x00,0x0A,0x11,0x12,0x0C,0x04, /* 000012D8 "........" */ 12.1106 + 0x0C,0xFF,0xFF,0x1F,0x00,0x0A,0x03,0x00, /* 000012E0 "........" */ 12.1107 + 0x0A,0x12,0x5B,0x82,0x46,0x37,0x49,0x53, /* 000012E8 "..[.F7IS" */ 12.1108 + 0x41,0x5F,0x08,0x5F,0x41,0x44,0x52,0x0C, /* 000012F0 "A_._ADR." */ 12.1109 + 0x00,0x00,0x01,0x00,0x5B,0x80,0x50,0x49, /* 000012F8 "....[.PI" */ 12.1110 + 0x52,0x51,0x02,0x0A,0x60,0x0A,0x04,0x10, /* 00001300 "RQ..`..." */ 12.1111 + 0x2E,0x5C,0x00,0x5B,0x81,0x29,0x5C,0x2F, /* 00001308 ".\.[.)\/" */ 12.1112 + 0x04,0x5F,0x53,0x42,0x5F,0x50,0x43,0x49, /* 00001310 "._SB_PCI" */ 12.1113 + 0x30,0x49,0x53,0x41,0x5F,0x50,0x49,0x52, /* 00001318 "0ISA_PIR" */ 12.1114 + 0x51,0x01,0x50,0x49,0x52,0x41,0x08,0x50, /* 00001320 "Q.PIRA.P" */ 12.1115 + 0x49,0x52,0x42,0x08,0x50,0x49,0x52,0x43, /* 00001328 "IRB.PIRC" */ 12.1116 + 0x08,0x50,0x49,0x52,0x44,0x08,0x5B,0x82, /* 00001330 ".PIRD.[." */ 12.1117 + 0x46,0x0B,0x53,0x59,0x53,0x52,0x08,0x5F, /* 00001338 "F.SYSR._" */ 12.1118 + 0x48,0x49,0x44,0x0C,0x41,0xD0,0x0C,0x02, /* 00001340 "HID.A..." */ 12.1119 + 0x08,0x5F,0x55,0x49,0x44,0x01,0x08,0x43, /* 00001348 "._UID..C" */ 12.1120 + 0x52,0x53,0x5F,0x11,0x4E,0x08,0x0A,0x8A, /* 00001350 "RS_.N..." */ 12.1121 + 0x47,0x01,0x10,0x00,0x10,0x00,0x00,0x10, /* 00001358 "G......." */ 12.1122 + 0x47,0x01,0x22,0x00,0x22,0x00,0x00,0x0C, /* 00001360 "G."."..." */ 12.1123 + 0x47,0x01,0x30,0x00,0x30,0x00,0x00,0x10, /* 00001368 "G.0.0..." */ 12.1124 + 0x47,0x01,0x44,0x00,0x44,0x00,0x00,0x1C, /* 00001370 "G.D.D..." */ 12.1125 + 0x47,0x01,0x62,0x00,0x62,0x00,0x00,0x02, /* 00001378 "G.b.b..." */ 12.1126 + 0x47,0x01,0x65,0x00,0x65,0x00,0x00,0x0B, /* 00001380 "G.e.e..." */ 12.1127 + 0x47,0x01,0x72,0x00,0x72,0x00,0x00,0x0E, /* 00001388 "G.r.r..." */ 12.1128 + 0x47,0x01,0x80,0x00,0x80,0x00,0x00,0x01, /* 00001390 "G......." */ 12.1129 + 0x47,0x01,0x84,0x00,0x84,0x00,0x00,0x03, /* 00001398 "G......." */ 12.1130 + 0x47,0x01,0x88,0x00,0x88,0x00,0x00,0x01, /* 000013A0 "G......." */ 12.1131 + 0x47,0x01,0x8C,0x00,0x8C,0x00,0x00,0x03, /* 000013A8 "G......." */ 12.1132 + 0x47,0x01,0x90,0x00,0x90,0x00,0x00,0x10, /* 000013B0 "G......." */ 12.1133 + 0x47,0x01,0xA2,0x00,0xA2,0x00,0x00,0x1C, /* 000013B8 "G......." */ 12.1134 + 0x47,0x01,0xE0,0x00,0xE0,0x00,0x00,0x10, /* 000013C0 "G......." */ 12.1135 + 0x47,0x01,0xA0,0x08,0xA0,0x08,0x00,0x04, /* 000013C8 "G......." */ 12.1136 + 0x47,0x01,0xC0,0x0C,0xC0,0x0C,0x00,0x10, /* 000013D0 "G......." */ 12.1137 + 0x47,0x01,0xD0,0x04,0xD0,0x04,0x00,0x02, /* 000013D8 "G......." */ 12.1138 + 0x79,0x00,0x14,0x0B,0x5F,0x43,0x52,0x53, /* 000013E0 "y..._CRS" */ 12.1139 + 0x00,0xA4,0x43,0x52,0x53,0x5F,0x5B,0x82, /* 000013E8 "..CRS_[." */ 12.1140 + 0x2B,0x50,0x49,0x43,0x5F,0x08,0x5F,0x48, /* 000013F0 "+PIC_._H" */ 12.1141 + 0x49,0x44,0x0B,0x41,0xD0,0x08,0x5F,0x43, /* 000013F8 "ID.A.._C" */ 12.1142 + 0x52,0x53,0x11,0x18,0x0A,0x15,0x47,0x01, /* 00001400 "RS....G." */ 12.1143 + 0x20,0x00,0x20,0x00,0x01,0x02,0x47,0x01, /* 00001408 " . ...G." */ 12.1144 + 0xA0,0x00,0xA0,0x00,0x01,0x02,0x22,0x04, /* 00001410 "......"." */ 12.1145 + 0x00,0x79,0x00,0x5B,0x82,0x47,0x05,0x44, /* 00001418 ".y.[.G.D" */ 12.1146 + 0x4D,0x41,0x30,0x08,0x5F,0x48,0x49,0x44, /* 00001420 "MA0._HID" */ 12.1147 + 0x0C,0x41,0xD0,0x02,0x00,0x08,0x5F,0x43, /* 00001428 ".A...._C" */ 12.1148 + 0x52,0x53,0x11,0x41,0x04,0x0A,0x3D,0x2A, /* 00001430 "RS.A..=*" */ 12.1149 + 0x10,0x04,0x47,0x01,0x00,0x00,0x00,0x00, /* 00001438 "..G....." */ 12.1150 + 0x00,0x10,0x47,0x01,0x81,0x00,0x81,0x00, /* 00001440 "..G....." */ 12.1151 + 0x00,0x03,0x47,0x01,0x87,0x00,0x87,0x00, /* 00001448 "..G....." */ 12.1152 + 0x00,0x01,0x47,0x01,0x89,0x00,0x89,0x00, /* 00001450 "..G....." */ 12.1153 + 0x00,0x03,0x47,0x01,0x8F,0x00,0x8F,0x00, /* 00001458 "..G....." */ 12.1154 + 0x00,0x01,0x47,0x01,0xC0,0x00,0xC0,0x00, /* 00001460 "..G....." */ 12.1155 + 0x00,0x20,0x47,0x01,0x80,0x04,0x80,0x04, /* 00001468 ". G....." */ 12.1156 + 0x00,0x10,0x79,0x00,0x5B,0x82,0x25,0x54, /* 00001470 "..y.[.%T" */ 12.1157 + 0x4D,0x52,0x5F,0x08,0x5F,0x48,0x49,0x44, /* 00001478 "MR_._HID" */ 12.1158 + 0x0C,0x41,0xD0,0x01,0x00,0x08,0x5F,0x43, /* 00001480 ".A...._C" */ 12.1159 + 0x52,0x53,0x11,0x10,0x0A,0x0D,0x47,0x01, /* 00001488 "RS....G." */ 12.1160 + 0x40,0x00,0x40,0x00,0x00,0x04,0x22,0x01, /* 00001490 "@.@..."." */ 12.1161 + 0x00,0x79,0x00,0x5B,0x82,0x25,0x52,0x54, /* 00001498 ".y.[.%RT" */ 12.1162 + 0x43,0x5F,0x08,0x5F,0x48,0x49,0x44,0x0C, /* 000014A0 "C_._HID." */ 12.1163 + 0x41,0xD0,0x0B,0x00,0x08,0x5F,0x43,0x52, /* 000014A8 "A...._CR" */ 12.1164 + 0x53,0x11,0x10,0x0A,0x0D,0x47,0x01,0x70, /* 000014B0 "S....G.p" */ 12.1165 + 0x00,0x70,0x00,0x00,0x02,0x22,0x00,0x01, /* 000014B8 ".p...".." */ 12.1166 + 0x79,0x00,0x5B,0x82,0x22,0x53,0x50,0x4B, /* 000014C0 "y.[."SPK" */ 12.1167 + 0x52,0x08,0x5F,0x48,0x49,0x44,0x0C,0x41, /* 000014C8 "R._HID.A" */ 12.1168 + 0xD0,0x08,0x00,0x08,0x5F,0x43,0x52,0x53, /* 000014D0 "...._CRS" */ 12.1169 + 0x11,0x0D,0x0A,0x0A,0x47,0x01,0x61,0x00, /* 000014D8 "....G.a." */ 12.1170 + 0x61,0x00,0x00,0x01,0x79,0x00,0x5B,0x82, /* 000014E0 "a...y.[." */ 12.1171 + 0x31,0x50,0x53,0x32,0x4D,0x08,0x5F,0x48, /* 000014E8 "1PS2M._H" */ 12.1172 + 0x49,0x44,0x0C,0x41,0xD0,0x0F,0x13,0x08, /* 000014F0 "ID.A...." */ 12.1173 + 0x5F,0x43,0x49,0x44,0x0C,0x41,0xD0,0x0F, /* 000014F8 "_CID.A.." */ 12.1174 + 0x13,0x14,0x09,0x5F,0x53,0x54,0x41,0x00, /* 00001500 "..._STA." */ 12.1175 + 0xA4,0x0A,0x0F,0x08,0x5F,0x43,0x52,0x53, /* 00001508 "...._CRS" */ 12.1176 + 0x11,0x08,0x0A,0x05,0x22,0x00,0x10,0x79, /* 00001510 "...."..y" */ 12.1177 + 0x00,0x5B,0x82,0x42,0x04,0x50,0x53,0x32, /* 00001518 ".[.B.PS2" */ 12.1178 + 0x4B,0x08,0x5F,0x48,0x49,0x44,0x0C,0x41, /* 00001520 "K._HID.A" */ 12.1179 + 0xD0,0x03,0x03,0x08,0x5F,0x43,0x49,0x44, /* 00001528 "...._CID" */ 12.1180 + 0x0C,0x41,0xD0,0x03,0x0B,0x14,0x09,0x5F, /* 00001530 ".A....._" */ 12.1181 + 0x53,0x54,0x41,0x00,0xA4,0x0A,0x0F,0x08, /* 00001538 "STA....." */ 12.1182 + 0x5F,0x43,0x52,0x53,0x11,0x18,0x0A,0x15, /* 00001540 "_CRS...." */ 12.1183 + 0x47,0x01,0x60,0x00,0x60,0x00,0x00,0x01, /* 00001548 "G.`.`..." */ 12.1184 + 0x47,0x01,0x64,0x00,0x64,0x00,0x00,0x01, /* 00001550 "G.d.d..." */ 12.1185 + 0x22,0x02,0x00,0x79,0x00,0x5B,0x82,0x3A, /* 00001558 ""..y.[.:" */ 12.1186 + 0x46,0x44,0x43,0x30,0x08,0x5F,0x48,0x49, /* 00001560 "FDC0._HI" */ 12.1187 + 0x44,0x0C,0x41,0xD0,0x07,0x00,0x14,0x09, /* 00001568 "D.A....." */ 12.1188 + 0x5F,0x53,0x54,0x41,0x00,0xA4,0x0A,0x0F, /* 00001570 "_STA...." */ 12.1189 + 0x08,0x5F,0x43,0x52,0x53,0x11,0x1B,0x0A, /* 00001578 "._CRS..." */ 12.1190 + 0x18,0x47,0x01,0xF0,0x03,0xF0,0x03,0x01, /* 00001580 ".G......" */ 12.1191 + 0x06,0x47,0x01,0xF7,0x03,0xF7,0x03,0x01, /* 00001588 ".G......" */ 12.1192 + 0x01,0x22,0x40,0x00,0x2A,0x04,0x00,0x79, /* 00001590 "."@.*..y" */ 12.1193 + 0x00,0x5B,0x82,0x46,0x04,0x55,0x41,0x52, /* 00001598 ".[.F.UAR" */ 12.1194 + 0x31,0x08,0x5F,0x48,0x49,0x44,0x0C,0x41, /* 000015A0 "1._HID.A" */ 12.1195 + 0xD0,0x05,0x01,0x08,0x5F,0x55,0x49,0x44, /* 000015A8 "...._UID" */ 12.1196 + 0x01,0x14,0x19,0x5F,0x53,0x54,0x41,0x00, /* 000015B0 "..._STA." */ 12.1197 + 0xA0,0x0D,0x93,0x5E,0x5E,0x5E,0x5E,0x55, /* 000015B8 "...^^^^U" */ 12.1198 + 0x41,0x52,0x31,0x00,0xA4,0x00,0xA1,0x04, /* 000015C0 "AR1....." */ 12.1199 + 0xA4,0x0A,0x0F,0x08,0x5F,0x43,0x52,0x53, /* 000015C8 "...._CRS" */ 12.1200 + 0x11,0x10,0x0A,0x0D,0x47,0x01,0xF8,0x03, /* 000015D0 "....G..." */ 12.1201 + 0xF8,0x03,0x08,0x08,0x22,0x10,0x00,0x79, /* 000015D8 "...."..y" */ 12.1202 + 0x00,0x5B,0x82,0x47,0x04,0x55,0x41,0x52, /* 000015E0 ".[.G.UAR" */ 12.1203 + 0x32,0x08,0x5F,0x48,0x49,0x44,0x0C,0x41, /* 000015E8 "2._HID.A" */ 12.1204 + 0xD0,0x05,0x01,0x08,0x5F,0x55,0x49,0x44, /* 000015F0 "...._UID" */ 12.1205 + 0x0A,0x02,0x14,0x19,0x5F,0x53,0x54,0x41, /* 000015F8 "...._STA" */ 12.1206 + 0x00,0xA0,0x0D,0x93,0x5E,0x5E,0x5E,0x5E, /* 00001600 "....^^^^" */ 12.1207 + 0x55,0x41,0x52,0x32,0x00,0xA4,0x00,0xA1, /* 00001608 "UAR2...." */ 12.1208 + 0x04,0xA4,0x0A,0x0F,0x08,0x5F,0x43,0x52, /* 00001610 "....._CR" */ 12.1209 + 0x53,0x11,0x10,0x0A,0x0D,0x47,0x01,0xF8, /* 00001618 "S....G.." */ 12.1210 + 0x02,0xF8,0x02,0x08,0x08,0x22,0x08,0x00, /* 00001620 ".....".." */ 12.1211 + 0x79,0x00,0x5B,0x82,0x36,0x4C,0x54,0x50, /* 00001628 "y.[.6LTP" */ 12.1212 + 0x31,0x08,0x5F,0x48,0x49,0x44,0x0C,0x41, /* 00001630 "1._HID.A" */ 12.1213 + 0xD0,0x04,0x00,0x08,0x5F,0x55,0x49,0x44, /* 00001638 "...._UID" */ 12.1214 + 0x0A,0x02,0x14,0x09,0x5F,0x53,0x54,0x41, /* 00001640 "...._STA" */ 12.1215 + 0x00,0xA4,0x0A,0x0F,0x08,0x5F,0x43,0x52, /* 00001648 "....._CR" */ 12.1216 + 0x53,0x11,0x10,0x0A,0x0D,0x47,0x01,0x78, /* 00001650 "S....G.x" */ 12.1217 + 0x03,0x78,0x03,0x08,0x08,0x22,0x80,0x00, /* 00001658 ".x...".." */ 12.1218 + 0x79,0x00,0x5B,0x82,0x4D,0x07,0x53,0x31, /* 00001660 "y.[.M.S1" */ 12.1219 + 0x46,0x30,0x08,0x5F,0x41,0x44,0x52,0x0C, /* 00001668 "F0._ADR." */ 12.1220 + 0x00,0x00,0x06,0x00,0x08,0x5F,0x53,0x55, /* 00001670 "....._SU" */ 12.1221 + 0x4E,0x01,0x14,0x13,0x5F,0x50,0x53,0x30, /* 00001678 "N..._PS0" */ 12.1222 + 0x00,0x70,0x0A,0x80,0x5C,0x2E,0x5F,0x47, /* 00001680 ".p..\._G" */ 12.1223 + 0x50,0x45,0x44,0x50,0x54,0x32,0x14,0x13, /* 00001688 "PEDPT2.." */ 12.1224 + 0x5F,0x50,0x53,0x33,0x00,0x70,0x0A,0x83, /* 00001690 "_PS3.p.." */ 12.1225 + 0x5C,0x2E,0x5F,0x47,0x50,0x45,0x44,0x50, /* 00001698 "\._GPEDP" */ 12.1226 + 0x54,0x32,0x14,0x1F,0x5F,0x45,0x4A,0x30, /* 000016A0 "T2.._EJ0" */ 12.1227 + 0x01,0x70,0x0A,0x88,0x5C,0x2E,0x5F,0x47, /* 000016A8 ".p..\._G" */ 12.1228 + 0x50,0x45,0x44,0x50,0x54,0x32,0x70,0x01, /* 000016B0 "PEDPT2p." */ 12.1229 + 0x5C,0x2E,0x5F,0x47,0x50,0x45,0x50,0x48, /* 000016B8 "\._GPEPH" */ 12.1230 + 0x50,0x31,0x14,0x1E,0x5F,0x53,0x54,0x41, /* 000016C0 "P1.._STA" */ 12.1231 + 0x00,0x70,0x0A,0x89,0x5C,0x2E,0x5F,0x47, /* 000016C8 ".p..\._G" */ 12.1232 + 0x50,0x45,0x44,0x50,0x54,0x32,0xA4,0x5C, /* 000016D0 "PEDPT2.\" */ 12.1233 + 0x2E,0x5F,0x47,0x50,0x45,0x50,0x48,0x50, /* 000016D8 "._GPEPHP" */ 12.1234 + 0x31,0x5B,0x82,0x4E,0x07,0x53,0x32,0x46, /* 000016E0 "1[.N.S2F" */ 12.1235 + 0x30,0x08,0x5F,0x41,0x44,0x52,0x0C,0x00, /* 000016E8 "0._ADR.." */ 12.1236 + 0x00,0x07,0x00,0x08,0x5F,0x53,0x55,0x4E, /* 000016F0 "...._SUN" */ 12.1237 + 0x0A,0x02,0x14,0x13,0x5F,0x50,0x53,0x30, /* 000016F8 "...._PS0" */ 12.1238 + 0x00,0x70,0x0A,0x90,0x5C,0x2E,0x5F,0x47, /* 00001700 ".p..\._G" */ 12.1239 + 0x50,0x45,0x44,0x50,0x54,0x32,0x14,0x13, /* 00001708 "PEDPT2.." */ 12.1240 + 0x5F,0x50,0x53,0x33,0x00,0x70,0x0A,0x93, /* 00001710 "_PS3.p.." */ 12.1241 + 0x5C,0x2E,0x5F,0x47,0x50,0x45,0x44,0x50, /* 00001718 "\._GPEDP" */ 12.1242 + 0x54,0x32,0x14,0x1F,0x5F,0x45,0x4A,0x30, /* 00001720 "T2.._EJ0" */ 12.1243 + 0x01,0x70,0x0A,0x98,0x5C,0x2E,0x5F,0x47, /* 00001728 ".p..\._G" */ 12.1244 + 0x50,0x45,0x44,0x50,0x54,0x32,0x70,0x01, /* 00001730 "PEDPT2p." */ 12.1245 + 0x5C,0x2E,0x5F,0x47,0x50,0x45,0x50,0x48, /* 00001738 "\._GPEPH" */ 12.1246 + 0x50,0x32,0x14,0x1E,0x5F,0x53,0x54,0x41, /* 00001740 "P2.._STA" */ 12.1247 + 0x00,0x70,0x0A,0x99,0x5C,0x2E,0x5F,0x47, /* 00001748 ".p..\._G" */ 12.1248 + 0x50,0x45,0x44,0x50,0x54,0x32,0xA4,0x5C, /* 00001750 "PEDPT2.\" */ 12.1249 + 0x2E,0x5F,0x47,0x50,0x45,0x50,0x48,0x50, /* 00001758 "._GPEPHP" */ 12.1250 + 0x32,0x10,0x4E,0x0B,0x5F,0x47,0x50,0x45, /* 00001760 "2.N._GPE" */ 12.1251 + 0x5B,0x80,0x50,0x48,0x50,0x5F,0x01,0x0B, /* 00001768 "[.PHP_.." */ 12.1252 + 0xC0,0x10,0x0A,0x03,0x5B,0x81,0x15,0x50, /* 00001770 "....[..P" */ 12.1253 + 0x48,0x50,0x5F,0x01,0x50,0x53,0x54,0x41, /* 00001778 "HP_.PSTA" */ 12.1254 + 0x08,0x50,0x48,0x50,0x31,0x08,0x50,0x48, /* 00001780 ".PHP1.PH" */ 12.1255 + 0x50,0x32,0x08,0x5B,0x80,0x44,0x47,0x31, /* 00001788 "P2.[.DG1" */ 12.1256 + 0x5F,0x01,0x0B,0x44,0xB0,0x0A,0x04,0x5B, /* 00001790 "_..D...[" */ 12.1257 + 0x81,0x10,0x44,0x47,0x31,0x5F,0x01,0x44, /* 00001798 "..DG1_.D" */ 12.1258 + 0x50,0x54,0x31,0x08,0x44,0x50,0x54,0x32, /* 000017A0 "PT1.DPT2" */ 12.1259 + 0x08,0x14,0x46,0x07,0x5F,0x4C,0x30,0x33, /* 000017A8 "..F._L03" */ 12.1260 + 0x00,0x08,0x53,0x4C,0x54,0x5F,0x00,0x08, /* 000017B0 "..SLT_.." */ 12.1261 + 0x45,0x56,0x54,0x5F,0x00,0x70,0x50,0x53, /* 000017B8 "EVT_.pPS" */ 12.1262 + 0x54,0x41,0x61,0x7A,0x61,0x0A,0x04,0x53, /* 000017C0 "TAaza..S" */ 12.1263 + 0x4C,0x54,0x5F,0x7B,0x61,0x0A,0x0F,0x45, /* 000017C8 "LT_{a..E" */ 12.1264 + 0x56,0x54,0x5F,0x70,0x53,0x4C,0x54,0x5F, /* 000017D0 "VT_pSLT_" */ 12.1265 + 0x44,0x50,0x54,0x31,0x70,0x45,0x56,0x54, /* 000017D8 "DPT1pEVT" */ 12.1266 + 0x5F,0x44,0x50,0x54,0x32,0xA0,0x1B,0x93, /* 000017E0 "_DPT2..." */ 12.1267 + 0x53,0x4C,0x54,0x5F,0x01,0x86,0x5C,0x2F, /* 000017E8 "SLT_..\/" */ 12.1268 + 0x03,0x5F,0x53,0x42,0x5F,0x50,0x43,0x49, /* 000017F0 "._SB_PCI" */ 12.1269 + 0x30,0x53,0x31,0x46,0x30,0x45,0x56,0x54, /* 000017F8 "0S1F0EVT" */ 12.1270 + 0x5F,0xA1,0x1E,0xA0,0x1C,0x93,0x53,0x4C, /* 00001800 "_.....SL" */ 12.1271 + 0x54,0x5F,0x0A,0x02,0x86,0x5C,0x2F,0x03, /* 00001808 "T_...\/." */ 12.1272 + 0x5F,0x53,0x42,0x5F,0x50,0x43,0x49,0x30, /* 00001810 "_SB_PCI0" */ 12.1273 + 0x53,0x32,0x46,0x30,0x45,0x56,0x54,0x5F, /* 00001818 "S2F0EVT_" */ 12.1274 + 12.1275 }; 12.1276 int DsdtLen=sizeof(AmlCode);
13.1 --- a/tools/libxc/xc_cpufeature.h Fri Mar 06 12:22:22 2009 +0900 13.2 +++ b/tools/libxc/xc_cpufeature.h Tue Mar 10 11:00:34 2009 +0900 13.3 @@ -83,6 +83,7 @@ 13.4 #define X86_FEATURE_SSE4_1 (4*32+19) /* Streaming SIMD Extensions 4.1 */ 13.5 #define X86_FEATURE_SSE4_2 (4*32+20) /* Streaming SIMD Extensions 4.2 */ 13.6 #define X86_FEATURE_POPCNT (4*32+23) /* POPCNT instruction */ 13.7 +#define X86_FEATURE_XSAVE (4*32+26) /* XSAVE/XRSTOR/XSETBV/XGETBV */ 13.8 #define X86_FEATURE_HYPERVISOR (4*32+31) /* Running under some hypervisor */ 13.9 13.10 /* VIA/Cyrix/Centaur-defined CPU features, CPUID level 0xC0000001, word 5 */
14.1 --- a/tools/libxc/xc_cpuid_x86.c Fri Mar 06 12:22:22 2009 +0900 14.2 +++ b/tools/libxc/xc_cpuid_x86.c Tue Mar 10 11:00:34 2009 +0900 14.3 @@ -311,6 +311,7 @@ static void xc_cpuid_pv_policy( 14.4 clear_bit(X86_FEATURE_XTPR, regs[2]); 14.5 clear_bit(X86_FEATURE_PDCM, regs[2]); 14.6 clear_bit(X86_FEATURE_DCA, regs[2]); 14.7 + clear_bit(X86_FEATURE_XSAVE, regs[2]); 14.8 set_bit(X86_FEATURE_HYPERVISOR, regs[2]); 14.9 break; 14.10 case 0x80000001:
15.1 --- a/tools/pygrub/src/pygrub Fri Mar 06 12:22:22 2009 +0900 15.2 +++ b/tools/pygrub/src/pygrub Tue Mar 10 11:00:34 2009 +0900 15.3 @@ -605,7 +605,7 @@ if __name__ == "__main__": 15.4 isconfig = False 15.5 15.6 # what was passed in 15.7 - incfg = { "kernel": None, "ramdisk": None, "args": None } 15.8 + incfg = { "kernel": None, "ramdisk": None, "args": "" } 15.9 # what grub or sniffing chose 15.10 chosencfg = { "kernel": None, "ramdisk": None, "args": None } 15.11 # what to boot 15.12 @@ -641,7 +641,7 @@ if __name__ == "__main__": 15.13 15.14 # debug 15.15 if isconfig: 15.16 - chosencfg = run_grub(file, entry) 15.17 + chosencfg = run_grub(file, entry, fs, incfg["args"]) 15.18 print " kernel: %s" % chosencfg["kernel"] 15.19 if img.initrd: 15.20 print " initrd: %s" % chosencfg["ramdisk"]
16.1 --- a/tools/python/xen/xend/XendConfig.py Fri Mar 06 12:22:22 2009 +0900 16.2 +++ b/tools/python/xen/xend/XendConfig.py Tue Mar 10 11:00:34 2009 +0900 16.3 @@ -169,11 +169,12 @@ XENAPI_PLATFORM_CFG_TYPES = { 16.4 'hap': int, 16.5 'xen_extended_power_mgmt': int, 16.6 'pci_msitranslate': int, 16.7 + 'pci_power_mgmt': int, 16.8 } 16.9 16.10 # Xen API console 'other_config' keys. 16.11 XENAPI_CONSOLE_OTHER_CFG = ['vncunused', 'vncdisplay', 'vnclisten', 16.12 - 'vncpasswd', 'type', 'display', 'xauthority', 16.13 + 'vncpasswd', 'sdl', 'vnc', 'display', 'xauthority', 16.14 'keymap', 'opengl'] 16.15 16.16 # List of XendConfig configuration keys that have no direct equivalent 16.17 @@ -864,7 +865,7 @@ class XendConfig(dict): 16.18 # add vfb device if it isn't there already 16.19 if not self.has_rfb(): 16.20 dev_config = ['vfb'] 16.21 - dev_config.append(['type', 'vnc']) 16.22 + dev_config.append(['vnc', '1']) 16.23 # copy VNC related params from platform config to vfb dev conf 16.24 for key in ['vncpasswd', 'vncunused', 'vncdisplay', 16.25 'vnclisten']: 16.26 @@ -1469,7 +1470,8 @@ class XendConfig(dict): 16.27 # collapse other config into devinfo for things 16.28 # such as vncpasswd, vncunused, etc. 16.29 dev_info.update(console_other_config) 16.30 - dev_info['type'] = console_other_config.get('type', 'vnc') 16.31 + dev_info['vnc'] = console_other_config.get('vnc', '0') 16.32 + dev_info['sdl'] = console_other_config.get('sdl', '0') 16.33 target['devices'][dev_uuid] = ('vfb', dev_info) 16.34 target['console_refs'].append(dev_uuid) 16.35
17.1 --- a/tools/python/xen/xend/XendDomainInfo.py Fri Mar 06 12:22:22 2009 +0900 17.2 +++ b/tools/python/xen/xend/XendDomainInfo.py Tue Mar 10 11:00:34 2009 +0900 17.3 @@ -855,27 +855,73 @@ class XendDomainInfo: 17.4 """Configure an existing vscsi device. 17.5 quoted pci funciton 17.6 """ 17.7 + def _is_vscsi_defined(dev_info, p_devs = None, v_devs = None): 17.8 + if not dev_info: 17.9 + return False 17.10 + for dev in sxp.children(dev_info, 'dev'): 17.11 + if p_devs is not None: 17.12 + if sxp.child_value(dev, 'p-dev') in p_devs: 17.13 + return True 17.14 + if v_devs is not None: 17.15 + if sxp.child_value(dev, 'v-dev') in v_devs: 17.16 + return True 17.17 + return False 17.18 + 17.19 + def _vscsi_be(be): 17.20 + be_xdi = xen.xend.XendDomain.instance().domain_lookup_nr(be) 17.21 + if be_xdi is not None: 17.22 + be_domid = be_xdi.getDomid() 17.23 + if be_domid is not None: 17.24 + return str(be_domid) 17.25 + return str(be) 17.26 + 17.27 dev_class = sxp.name(dev_sxp) 17.28 if dev_class != 'vscsi': 17.29 return False 17.30 17.31 dev_config = self.info.vscsi_convert_sxp_to_dict(dev_sxp) 17.32 - dev = dev_config['devs'][0] 17.33 - req_devid = int(dev['devid']) 17.34 - existing_dev_info = self._getDeviceInfo_vscsi(req_devid, dev['v-dev']) 17.35 - state = dev['state'] 17.36 + devs = dev_config['devs'] 17.37 + v_devs = [d['v-dev'] for d in devs] 17.38 + state = devs[0]['state'] 17.39 + req_devid = int(devs[0]['devid']) 17.40 + cur_dev_sxp = self._getDeviceInfo_vscsi(req_devid) 17.41 17.42 if state == xenbusState['Initialising']: 17.43 # new create 17.44 # If request devid does not exist, create and exit. 17.45 - if existing_dev_info is None: 17.46 + p_devs = [d['p-dev'] for d in devs] 17.47 + for dev_type, dev_info in self.info.all_devices_sxpr(): 17.48 + if dev_type != 'vscsi': 17.49 + continue 17.50 + if _is_vscsi_defined(dev_info, p_devs = p_devs): 17.51 + raise XendError('The physical device "%s" is already defined' % \ 17.52 + p_devs[0]) 17.53 + if cur_dev_sxp is None: 17.54 self.device_create(dev_sxp) 17.55 return True 17.56 - elif existing_dev_info == "exists": 17.57 - raise XendError("The virtual device %s is already defined" % dev['v-dev']) 17.58 + 17.59 + if _is_vscsi_defined(cur_dev_sxp, v_devs = v_devs): 17.60 + raise XendError('The virtual device "%s" is already defined' % \ 17.61 + v_devs[0]) 17.62 + 17.63 + if int(dev_config['feature-host']) != \ 17.64 + int(sxp.child_value(cur_dev_sxp, 'feature-host')): 17.65 + raise XendError('The physical device "%s" cannot define ' 17.66 + 'because mode is different' % devs[0]['p-dev']) 17.67 + 17.68 + new_be = dev_config.get('backend', None) 17.69 + if new_be is not None: 17.70 + cur_be = sxp.child_value(cur_dev_sxp, 'backend', None) 17.71 + if cur_be is None: 17.72 + cur_be = xen.xend.XendDomain.DOM0_ID 17.73 + new_be_dom = _vscsi_be(new_be) 17.74 + cur_be_dom = _vscsi_be(cur_be) 17.75 + if new_be_dom != cur_be_dom: 17.76 + raise XendError('The physical device "%s" cannot define ' 17.77 + 'because backend is different' % devs[0]['p-dev']) 17.78 17.79 elif state == xenbusState['Closing']: 17.80 - if existing_dev_info is None: 17.81 + if not _is_vscsi_defined(cur_dev_sxp, v_devs = v_devs): 17.82 raise XendError("Cannot detach vscsi device does not exist") 17.83 17.84 if self.domid is not None: 17.85 @@ -896,7 +942,6 @@ class XendDomainInfo: 17.86 del self.info['devices'][dev_uuid] 17.87 17.88 else: 17.89 - cur_dev_sxp = self._getDeviceInfo_vscsi(req_devid, None) 17.90 new_dev_sxp = ['vscsi'] 17.91 cur_mode = sxp.children(cur_dev_sxp, 'feature-host')[0] 17.92 new_dev_sxp.append(cur_mode) 17.93 @@ -910,8 +955,7 @@ class XendDomainInfo: 17.94 if state == xenbusState['Closing']: 17.95 if int(cur_mode[1]) == 1: 17.96 continue 17.97 - cur_dev_vdev = sxp.child_value(cur_dev, 'v-dev') 17.98 - if cur_dev_vdev == dev['v-dev']: 17.99 + if sxp.child_value(cur_dev, 'v-dev') in v_devs: 17.100 continue 17.101 new_dev_sxp.append(cur_dev) 17.102 17.103 @@ -1172,23 +1216,14 @@ class XendDomainInfo: 17.104 return dev_info 17.105 return None 17.106 17.107 - def _getDeviceInfo_vscsi(self, devid, vdev): 17.108 + def _getDeviceInfo_vscsi(self, devid): 17.109 devid = int(devid) 17.110 for dev_type, dev_info in self.info.all_devices_sxpr(): 17.111 if dev_type != 'vscsi': 17.112 continue 17.113 - existing_dev_uuid = sxp.child_value(dev_info, 'uuid') 17.114 - existing_conf = self.info['devices'][existing_dev_uuid][1] 17.115 - existing_dev = existing_conf['devs'][0] 17.116 - existing_devid = int(existing_dev['devid']) 17.117 - existing_vdev = existing_dev['v-dev'] 17.118 - 17.119 - if vdev == existing_vdev: 17.120 - return "exists" 17.121 - 17.122 - if devid == existing_devid: 17.123 + devs = sxp.children(dev_info, 'dev') 17.124 + if devid == int(sxp.child_value(devs[0], 'devid')): 17.125 return dev_info 17.126 - 17.127 return None 17.128 17.129 def setMemoryTarget(self, target): 17.130 @@ -3639,7 +3674,7 @@ class XendDomainInfo: 17.131 17.132 if self._stateGet() != XEN_API_VM_POWER_STATE_RUNNING: 17.133 17.134 - cur_vscsi_sxp = self._getDeviceInfo_vscsi(devid, None) 17.135 + cur_vscsi_sxp = self._getDeviceInfo_vscsi(devid) 17.136 17.137 if cur_vscsi_sxp is None: 17.138 dev_uuid = self.info.device_add('vscsi', cfg_sxp = target_vscsi_sxp) 17.139 @@ -3737,7 +3772,7 @@ class XendDomainInfo: 17.140 dscsi = XendAPIStore.get(dev_uuid, 'DSCSI') 17.141 devid = dscsi.get_virtual_host() 17.142 vHCTL = dscsi.get_virtual_HCTL() 17.143 - cur_vscsi_sxp = self._getDeviceInfo_vscsi(devid, None) 17.144 + cur_vscsi_sxp = self._getDeviceInfo_vscsi(devid) 17.145 dev_uuid = sxp.child_value(cur_vscsi_sxp, 'uuid') 17.146 17.147 target_dev = None
18.1 --- a/tools/python/xen/xend/image.py Fri Mar 06 12:22:22 2009 +0900 18.2 +++ b/tools/python/xen/xend/image.py Tue Mar 10 11:00:34 2009 +0900 18.3 @@ -279,15 +279,16 @@ class ImageHandler: 18.4 if dev_type == 'vfb': 18.5 if 'keymap' in dev_info: 18.6 keymap = dev_info.get('keymap',{}) 18.7 - vfb_type = dev_info.get('type', {}) 18.8 - if vfb_type == 'sdl': 18.9 + if int(dev_info.get('vnc', 0)) != 0 : 18.10 + has_vnc = True 18.11 + if int(dev_info.get('sdl', 0)) != 0 : 18.12 + has_sdl = True 18.13 + if has_sdl: 18.14 self.display = dev_info.get('display', {}) 18.15 self.xauthority = dev_info.get('xauthority', {}) 18.16 opengl = int(dev_info.get('opengl', opengl)) 18.17 - has_sdl = True 18.18 - else: 18.19 + if has_vnc: 18.20 vnc_config = dev_info.get('other_config', {}) 18.21 - has_vnc = True 18.22 break 18.23 18.24 if keymap: 18.25 @@ -335,11 +336,12 @@ class ImageHandler: 18.26 if int(vnc_config.get('vncunused', 1)) != 0: 18.27 ret.append('-vncunused') 18.28 18.29 - elif has_sdl: 18.30 - # SDL is default in QEMU. 18.31 + if has_sdl: 18.32 + ret.append('-sdl') 18.33 if int(vmConfig['platform'].get('opengl', opengl)) != 1 : 18.34 ret.append('-disable-opengl') 18.35 - else: 18.36 + 18.37 + if not has_sdl and not has_vnc : 18.38 ret.append('-nographic') 18.39 18.40 if int(vmConfig['platform'].get('monitor', 0)) != 0: 18.41 @@ -714,6 +716,8 @@ class HVMImageHandler(ImageHandler): 18.42 18.43 rtc_timeoffset = vmConfig['platform'].get('rtc_timeoffset') 18.44 18.45 + if not self.display : 18.46 + self.display = '' 18.47 self.vm.storeVm(("image/dmargs", " ".join(self.dmargs)), 18.48 ("image/device-model", self.device_model), 18.49 ("image/display", self.display))
19.1 --- a/tools/python/xen/xend/server/pciif.py Fri Mar 06 12:22:22 2009 +0900 19.2 +++ b/tools/python/xen/xend/server/pciif.py Tue Mar 10 11:00:34 2009 +0900 19.3 @@ -97,6 +97,8 @@ class PciController(DevController): 19.4 back['uuid'] = config.get('uuid','') 19.5 if 'pci_msitranslate' in self.vm.info['platform']: 19.6 back['msitranslate']=str(self.vm.info['platform']['pci_msitranslate']) 19.7 + if 'pci_power_mgmt' in self.vm.info['platform']: 19.8 + back['power_mgmt']=str(self.vm.info['platform']['pci_power_mgmt']) 19.9 19.10 return (0, back, {}) 19.11
20.1 --- a/tools/python/xen/xm/create.py Fri Mar 06 12:22:22 2009 +0900 20.2 +++ b/tools/python/xen/xm/create.py Tue Mar 10 11:00:34 2009 +0900 20.3 @@ -322,14 +322,16 @@ gopts.var('disk', val='phy:DEV,VDEV,MODE 20.4 backend driver domain to use for the disk. 20.5 The option may be repeated to add more than one disk.""") 20.6 20.7 -gopts.var('pci', val='BUS:DEV.FUNC[,msitranslate=0|1]', 20.8 +gopts.var('pci', val='BUS:DEV.FUNC[,msitranslate=0|1][,power_mgmt=0|1]', 20.9 fn=append_value, default=[], 20.10 use="""Add a PCI device to a domain, using given params (in hex). 20.11 For example 'pci=c0:02.1'. 20.12 If msitranslate is set, MSI-INTx translation is enabled if possible. 20.13 Guest that doesn't support MSI will get IO-APIC type IRQs 20.14 translated from physical MSI, HVM only. Default is 1. 20.15 - The option may be repeated to add more than one pci device.""") 20.16 + The option may be repeated to add more than one pci device. 20.17 + If power_mgmt is set, the guest OS will be able to program the power 20.18 + states D0-D3hot of the device, HVM only. Default=0.""") 20.19 20.20 gopts.var('vscsi', val='PDEV,VDEV[,DOM]', 20.21 fn=append_value, default=[], 20.22 @@ -348,16 +350,16 @@ gopts.var('irq', val='IRQ', 20.23 For example 'irq=7'. 20.24 This option may be repeated to add more than one IRQ.""") 20.25 20.26 -gopts.var('vfb', val="type={vnc,sdl},vncunused=1,vncdisplay=N,vnclisten=ADDR,display=DISPLAY,xauthority=XAUTHORITY,vncpasswd=PASSWORD,opengl=1,keymap=FILE", 20.27 +gopts.var('vfb', val="vnc=1,sdl=1,vncunused=1,vncdisplay=N,vnclisten=ADDR,display=DISPLAY,xauthority=XAUTHORITY,vncpasswd=PASSWORD,opengl=1,keymap=FILE", 20.28 fn=append_value, default=[], 20.29 use="""Make the domain a framebuffer backend. 20.30 - The backend type should be either sdl or vnc. 20.31 - For type=vnc, connect an external vncviewer. The server will listen 20.32 + Both sdl=1 and vnc=1 can be enabled at the same time. 20.33 + For vnc=1, connect an external vncviewer. The server will listen 20.34 on ADDR (default 127.0.0.1) on port N+5900. N defaults to the 20.35 domain id. If vncunused=1, the server will try to find an arbitrary 20.36 unused port above 5900. vncpasswd overrides the XenD configured 20.37 default password. 20.38 - For type=sdl, a viewer will be started automatically using the 20.39 + For sdl=1, a viewer will be started automatically using the 20.40 given DISPLAY and XAUTHORITY, which default to the current user's 20.41 ones. OpenGL will be used by default unless opengl is set to 0. 20.42 keymap overrides the XendD configured default layout file.""") 20.43 @@ -605,6 +607,10 @@ gopts.var('pci_msitranslate', val='TRANS 20.44 use="""Global PCI MSI-INTx translation flag (0=disable; 20.45 1=enable.""") 20.46 20.47 +gopts.var('pci_power_mgmt', val='POWERMGMT', 20.48 + fn=set_int, default=0, 20.49 + use="""Global PCI Power Management flag (0=disable;1=enable).""") 20.50 + 20.51 def err(msg): 20.52 """Print an error to stderr and exit. 20.53 """ 20.54 @@ -691,7 +697,7 @@ def configure_pci(config_devs, vals): 20.55 d = comma_sep_kv_to_dict(opts) 20.56 20.57 def f(k): 20.58 - if k not in ['msitranslate']: 20.59 + if k not in ['msitranslate', 'power_mgmt']: 20.60 err('Invalid pci option: ' + k) 20.61 20.62 config_pci_opts.append([k, d[k]]) 20.63 @@ -798,11 +804,13 @@ def configure_vfbs(config_devs, vals): 20.64 for f in vals.vfb: 20.65 d = comma_sep_kv_to_dict(f) 20.66 config = ['vfb'] 20.67 - if not d.has_key("type"): 20.68 - d['type'] = 'sdl' 20.69 + #handle the legacy case 20.70 + if d.has_key("type"): 20.71 + d[d['type']] = '1' 20.72 + del d['type'] 20.73 for (k,v) in d.iteritems(): 20.74 if not k in [ 'vnclisten', 'vncunused', 'vncdisplay', 'display', 20.75 - 'videoram', 'xauthority', 'type', 'vncpasswd', 20.76 + 'videoram', 'xauthority', 'sdl', 'vnc', 'vncpasswd', 20.77 'opengl', 'keymap' ]: 20.78 err("configuration option %s unknown to vfbs" % k) 20.79 config.append([k,v]) 20.80 @@ -913,7 +921,7 @@ def configure_hvm(config_image, vals): 20.81 'acpi', 'apic', 'usb', 'usbdevice', 'keymap', 'pci', 'hpet', 20.82 'guest_os_type', 'hap', 'opengl', 'cpuid', 'cpuid_check', 20.83 'viridian', 'xen_extended_power_mgmt', 'pci_msitranslate', 20.84 - 'vpt_align' ] 20.85 + 'vpt_align', 'pci_power_mgmt' ] 20.86 20.87 for a in args: 20.88 if a in vals.__dict__ and vals.__dict__[a] is not None:
21.1 --- a/tools/python/xen/xm/xenapi_create.py Fri Mar 06 12:22:22 2009 +0900 21.2 +++ b/tools/python/xen/xm/xenapi_create.py Tue Mar 10 11:00:34 2009 +0900 21.3 @@ -1047,6 +1047,7 @@ class sxp2xml: 21.4 'guest_os_type', 21.5 'hap', 21.6 'pci_msitranslate', 21.7 + 'pci_power_mgmt', 21.8 ] 21.9 21.10 platform_configs = []
22.1 --- a/tools/xm-test/lib/XmTestLib/NetConfig.py Fri Mar 06 12:22:22 2009 +0900 22.2 +++ b/tools/xm-test/lib/XmTestLib/NetConfig.py Tue Mar 10 11:00:34 2009 +0900 22.3 @@ -57,11 +57,13 @@ def getXendNetConfig(): 22.4 while val[0] != 'network-script': 22.5 val = pin.get_val() 22.6 22.7 - if val[1] == "network-bridge": 22.8 + # split network command into script name and its parameters 22.9 + sub_val = val[1].split() 22.10 + if sub_val[0] == "network-bridge": 22.11 netenv = "bridge" 22.12 - elif val[1] == "network-route": 22.13 + elif sub_val[0] == "network-route": 22.14 netenv = "route" 22.15 - elif val[1] == "network-nat": 22.16 + elif sub_val[0] == "network-nat": 22.17 netenv = "nat" 22.18 else: 22.19 raise NetworkError("Failed to get network env from xend config")
23.1 --- a/xen/Makefile Fri Mar 06 12:22:22 2009 +0900 23.2 +++ b/xen/Makefile Tue Mar 10 11:00:34 2009 +0900 23.3 @@ -44,6 +44,7 @@ build install debug clean distclean csco 23.4 $(MAKE) -f $(BASEDIR)/Rules.mk -C common clean 23.5 $(MAKE) -f $(BASEDIR)/Rules.mk -C drivers clean 23.6 $(MAKE) -f $(BASEDIR)/Rules.mk -C xsm clean 23.7 + $(MAKE) -f $(BASEDIR)/Rules.mk -C crypto clean 23.8 $(MAKE) -f $(BASEDIR)/Rules.mk -C arch/$(TARGET_ARCH) clean 23.9 rm -f include/asm *.o $(TARGET)* *~ core 23.10 rm -f include/asm-*/asm-offsets.h
24.1 --- a/xen/arch/ia64/xen/xensetup.c Fri Mar 06 12:22:22 2009 +0900 24.2 +++ b/xen/arch/ia64/xen/xensetup.c Tue Mar 10 11:00:34 2009 +0900 24.3 @@ -337,6 +337,8 @@ is_platform_hp_ski(void) 24.4 static int __initdata dom0_vhpt_size_log2; 24.5 integer_param("dom0_vhpt_size_log2", dom0_vhpt_size_log2); 24.6 #endif 24.7 +unsigned long xen_fixed_mfn_start __read_mostly; 24.8 +unsigned long xen_fixed_mfn_end __read_mostly; 24.9 24.10 void __init start_kernel(void) 24.11 { 24.12 @@ -556,6 +558,10 @@ skip_move: 24.13 (xenheap_phys_end-__pa(xen_heap_start)) >> 20, 24.14 (xenheap_phys_end-__pa(xen_heap_start)) >> 10); 24.15 24.16 + /* for is_xen_fixed_mfn() */ 24.17 + xen_fixed_mfn_start = virt_to_mfn(&_start); 24.18 + xen_fixed_mfn_end = virt_to_mfn(xen_heap_start); 24.19 + 24.20 end_boot_allocator(); 24.21 24.22 softirq_init();
25.1 --- a/xen/arch/x86/bzimage.c Fri Mar 06 12:22:22 2009 +0900 25.2 +++ b/xen/arch/x86/bzimage.c Tue Mar 10 11:00:34 2009 +0900 25.3 @@ -58,8 +58,7 @@ static void flush_window(void); 25.4 25.5 static __init void error(char *x) 25.6 { 25.7 - printk("%s\n", x); 25.8 - BUG(); 25.9 + panic("%s\n", x); 25.10 } 25.11 25.12 static __init int fill_inbuf(void)
26.1 --- a/xen/arch/x86/hvm/vpt.c Fri Mar 06 12:22:22 2009 +0900 26.2 +++ b/xen/arch/x86/hvm/vpt.c Tue Mar 10 11:00:34 2009 +0900 26.3 @@ -209,7 +209,8 @@ static void pt_timer_fn(void *data) 26.4 set_timer(&pt->timer, pt->scheduled); 26.5 } 26.6 26.7 - vcpu_kick(pt->vcpu); 26.8 + if ( !pt_irq_masked(pt) ) 26.9 + vcpu_kick(pt->vcpu); 26.10 26.11 pt_unlock(pt); 26.12 }
27.1 --- a/xen/arch/x86/mm/hap/hap.c Fri Mar 06 12:22:22 2009 +0900 27.2 +++ b/xen/arch/x86/mm/hap/hap.c Tue Mar 10 11:00:34 2009 +0900 27.3 @@ -152,7 +152,7 @@ static struct page_info *hap_alloc_p2m_p 27.4 d->arch.paging.hap.total_pages--; 27.5 d->arch.paging.hap.p2m_pages++; 27.6 page_set_owner(pg, d); 27.7 - pg->count_info = 1; 27.8 + pg->count_info |= 1; 27.9 } 27.10 27.11 hap_unlock(d); 27.12 @@ -167,7 +167,7 @@ void hap_free_p2m_page(struct domain *d, 27.13 if ( (pg->count_info & PGC_count_mask) != 1 ) 27.14 HAP_ERROR("Odd p2m page count c=%#lx t=%"PRtype_info"\n", 27.15 pg->count_info, pg->u.inuse.type_info); 27.16 - pg->count_info = 0; 27.17 + pg->count_info &= ~PGC_count_mask; 27.18 /* Free should not decrement domain's total allocation, since 27.19 * these pages were allocated without an owner. */ 27.20 page_set_owner(pg, NULL); 27.21 @@ -218,7 +218,6 @@ hap_set_allocation(struct domain *d, uns 27.22 ASSERT(pg); 27.23 d->arch.paging.hap.free_pages--; 27.24 d->arch.paging.hap.total_pages--; 27.25 - pg->count_info = 0; 27.26 free_domheap_page(pg); 27.27 } 27.28
28.1 --- a/xen/arch/x86/mm/p2m.c Fri Mar 06 12:22:22 2009 +0900 28.2 +++ b/xen/arch/x86/mm/p2m.c Tue Mar 10 11:00:34 2009 +0900 28.3 @@ -177,7 +177,7 @@ p2m_next_level(struct domain *d, mfn_t * 28.4 return 0; 28.5 page_list_add_tail(pg, &d->arch.p2m->pages); 28.6 pg->u.inuse.type_info = type | 1 | PGT_validated; 28.7 - pg->count_info = 1; 28.8 + pg->count_info |= 1; 28.9 28.10 new_entry = l1e_from_pfn(mfn_x(page_to_mfn(pg)), 28.11 __PAGE_HYPERVISOR|_PAGE_USER); 28.12 @@ -216,7 +216,7 @@ p2m_next_level(struct domain *d, mfn_t * 28.13 return 0; 28.14 page_list_add_tail(pg, &d->arch.p2m->pages); 28.15 pg->u.inuse.type_info = PGT_l1_page_table | 1 | PGT_validated; 28.16 - pg->count_info = 1; 28.17 + pg->count_info |= 1; 28.18 28.19 /* New splintered mappings inherit the flags of the old superpage, 28.20 * with a little reorganisation for the _PAGE_PSE_PAT bit. */
29.1 --- a/xen/arch/x86/mm/shadow/common.c Fri Mar 06 12:22:22 2009 +0900 29.2 +++ b/xen/arch/x86/mm/shadow/common.c Tue Mar 10 11:00:34 2009 +0900 29.3 @@ -1677,7 +1677,7 @@ sh_alloc_p2m_pages(struct domain *d) 29.4 * believed to be a concern. 29.5 */ 29.6 page_set_owner(&pg[i], d); 29.7 - pg[i].count_info = 1; 29.8 + pg[i].count_info |= 1; 29.9 page_list_add_tail(&pg[i], &d->arch.paging.shadow.p2m_freelist); 29.10 } 29.11 return 1; 29.12 @@ -1721,7 +1721,7 @@ shadow_free_p2m_page(struct domain *d, s 29.13 SHADOW_ERROR("Odd p2m page count c=%#lx t=%"PRtype_info"\n", 29.14 pg->count_info, pg->u.inuse.type_info); 29.15 } 29.16 - pg->count_info = 0; 29.17 + pg->count_info &= ~PGC_count_mask; 29.18 /* Free should not decrement domain's total allocation, since 29.19 * these pages were allocated without an owner. */ 29.20 page_set_owner(pg, NULL); 29.21 @@ -1895,7 +1895,7 @@ static void sh_hash_audit_bucket(struct 29.22 while ( sp ) 29.23 { 29.24 /* Not a shadow? */ 29.25 - BUG_ON( sp->count_info != 0 ); 29.26 + BUG_ON( (sp->count_info & PGC_count_mask )!= 0 ) ; 29.27 /* Bogus type? */ 29.28 BUG_ON( sp->u.sh.type == 0 ); 29.29 BUG_ON( sp->u.sh.type > SH_type_max_shadow );
30.1 --- a/xen/arch/x86/mm/shadow/multi.c Fri Mar 06 12:22:22 2009 +0900 30.2 +++ b/xen/arch/x86/mm/shadow/multi.c Tue Mar 10 11:00:34 2009 +0900 30.3 @@ -4281,7 +4281,7 @@ int sh_rm_write_access_from_sl1p(struct 30.4 30.5 sp = mfn_to_page(smfn); 30.6 30.7 - if ( sp->count_info != 0 30.8 + if ( ((sp->count_info & PGC_count_mask) != 0) 30.9 || (sp->u.sh.type != SH_type_l1_shadow 30.10 && sp->u.sh.type != SH_type_fl1_shadow) ) 30.11 goto fail;
31.1 --- a/xen/arch/x86/mm/shadow/private.h Fri Mar 06 12:22:22 2009 +0900 31.2 +++ b/xen/arch/x86/mm/shadow/private.h Tue Mar 10 11:00:34 2009 +0900 31.3 @@ -647,7 +647,7 @@ static inline void sh_put_ref(struct vcp 31.4 struct page_info *sp = mfn_to_page(smfn); 31.5 31.6 ASSERT(mfn_valid(smfn)); 31.7 - ASSERT(sp->count_info == 0); 31.8 + ASSERT(!(sp->count_info & PGC_count_mask)); 31.9 31.10 /* If this is the entry in the up-pointer, remove it */ 31.11 if ( entry_pa != 0
32.1 --- a/xen/arch/x86/setup.c Fri Mar 06 12:22:22 2009 +0900 32.2 +++ b/xen/arch/x86/setup.c Tue Mar 10 11:00:34 2009 +0900 32.3 @@ -1111,15 +1111,43 @@ void arch_get_xen_caps(xen_capabilities_ 32.4 32.5 int xen_in_range(paddr_t start, paddr_t end) 32.6 { 32.7 -#if defined(CONFIG_X86_32) 32.8 - paddr_t xs = 0; 32.9 - paddr_t xe = xenheap_phys_end; 32.10 -#else 32.11 - paddr_t xs = __pa(&_stext); 32.12 - paddr_t xe = __pa(&_etext); 32.13 -#endif 32.14 + int i; 32.15 + static struct { 32.16 + paddr_t s, e; 32.17 + } xen_regions[5]; 32.18 + 32.19 + /* initialize first time */ 32.20 + if ( !xen_regions[0].s ) 32.21 + { 32.22 + extern char __init_begin[], __per_cpu_start[], __per_cpu_end[], 32.23 + __bss_start[]; 32.24 + extern unsigned long allocator_bitmap_end; 32.25 32.26 - return (start < xe) && (end > xs); 32.27 + /* S3 resume code (and other real mode trampoline code) */ 32.28 + xen_regions[0].s = bootsym_phys(trampoline_start); 32.29 + xen_regions[0].e = bootsym_phys(trampoline_end); 32.30 + /* hypervisor code + data */ 32.31 + xen_regions[1].s =__pa(&_stext); 32.32 + xen_regions[1].e = __pa(&__init_begin); 32.33 + /* per-cpu data */ 32.34 + xen_regions[2].s = __pa(&__per_cpu_start); 32.35 + xen_regions[2].e = __pa(&__per_cpu_end); 32.36 + /* bss + boot allocator bitmap */ 32.37 + xen_regions[3].s = __pa(&__bss_start); 32.38 + xen_regions[3].e = allocator_bitmap_end; 32.39 + /* frametable */ 32.40 + xen_regions[4].s = (unsigned long)frame_table; 32.41 + xen_regions[4].e = (unsigned long)frame_table + 32.42 + PFN_UP(max_page * sizeof(*frame_table)); 32.43 + } 32.44 + 32.45 + for ( i = 0; i < ARRAY_SIZE(xen_regions); i++ ) 32.46 + { 32.47 + if ( (start < xen_regions[i].e) && (end > xen_regions[i].s) ) 32.48 + return 1; 32.49 + } 32.50 + 32.51 + return 0; 32.52 } 32.53 32.54 /*
33.1 --- a/xen/arch/x86/tboot.c Fri Mar 06 12:22:22 2009 +0900 33.2 +++ b/xen/arch/x86/tboot.c Tue Mar 10 11:00:34 2009 +0900 33.3 @@ -450,7 +450,7 @@ int tboot_s3_resume(void) 33.4 33.5 tboot_gen_domain_integrity(g_tboot_shared->s3_key, &mac); 33.6 if ( mac != domain_mac ) 33.7 - return 0; /* -3 */ 33.8 + return -3; 33.9 33.10 return 0; 33.11 }
34.1 --- a/xen/arch/x86/traps.c Fri Mar 06 12:22:22 2009 +0900 34.2 +++ b/xen/arch/x86/traps.c Tue Mar 10 11:00:34 2009 +0900 34.3 @@ -757,6 +757,7 @@ static void pv_cpuid(struct cpu_user_reg 34.4 __clear_bit(X86_FEATURE_XTPR % 32, &c); 34.5 __clear_bit(X86_FEATURE_PDCM % 32, &c); 34.6 __clear_bit(X86_FEATURE_DCA % 32, &c); 34.7 + __clear_bit(X86_FEATURE_XSAVE % 32, &c); 34.8 if ( !cpu_has_apic ) 34.9 __clear_bit(X86_FEATURE_X2APIC % 32, &c); 34.10 __set_bit(X86_FEATURE_HYPERVISOR % 32, &c);
35.1 --- a/xen/common/domctl.c Fri Mar 06 12:22:22 2009 +0900 35.2 +++ b/xen/common/domctl.c Tue Mar 10 11:00:34 2009 +0900 35.3 @@ -433,7 +433,7 @@ long do_domctl(XEN_GUEST_HANDLE(xen_domc 35.4 35.5 cpu = (i == 0) ? 35.6 default_vcpu0_location() : 35.7 - (d->vcpu[i-1]->processor + 1) % num_online_cpus(); 35.8 + cycle_cpu(d->vcpu[i-1]->processor, cpu_online_map); 35.9 35.10 if ( alloc_vcpu(d, i, cpu) == NULL ) 35.11 goto maxvcpu_out;
36.1 --- a/xen/common/page_alloc.c Fri Mar 06 12:22:22 2009 +0900 36.2 +++ b/xen/common/page_alloc.c Tue Mar 10 11:00:34 2009 +0900 36.3 @@ -35,6 +35,7 @@ 36.4 #include <xen/perfc.h> 36.5 #include <xen/numa.h> 36.6 #include <xen/nodemask.h> 36.7 +#include <public/sysctl.h> 36.8 #include <asm/page.h> 36.9 #include <asm/numa.h> 36.10 #include <asm/flushtlb.h> 36.11 @@ -74,6 +75,11 @@ static DEFINE_SPINLOCK(page_scrub_lock); 36.12 PAGE_LIST_HEAD(page_scrub_list); 36.13 static unsigned long scrub_pages; 36.14 36.15 +/* Offlined page list, protected by heap_lock */ 36.16 +PAGE_LIST_HEAD(page_offlined_list); 36.17 + 36.18 +/* Broken page list, protected by heap_lock */ 36.19 +PAGE_LIST_HEAD(page_broken_list); 36.20 /********************* 36.21 * ALLOCATION BITMAP 36.22 * One bit per page of memory. Bit set => page is allocated. 36.23 @@ -421,12 +427,92 @@ static struct page_info *alloc_heap_page 36.24 return pg; 36.25 } 36.26 36.27 +/* 36.28 + * Remove any offlined page in the buddy poined by head 36.29 + */ 36.30 +static int reserve_offlined_page(struct page_info *head) 36.31 +{ 36.32 + unsigned int node = phys_to_nid(page_to_maddr(head)); 36.33 + int zone = page_to_zone(head), i, head_order = PFN_ORDER(head), count = 0; 36.34 + struct page_info *cur_head; 36.35 + int cur_order; 36.36 + 36.37 + ASSERT(spin_is_locked(&heap_lock)); 36.38 + 36.39 + cur_head = head; 36.40 + 36.41 + page_list_del(head, &heap(node, zone, head_order)); 36.42 + 36.43 + while ( cur_head < (head + (1 << head_order)) ) 36.44 + { 36.45 + struct page_info *pg; 36.46 + int next_order; 36.47 + 36.48 + if (test_bit(_PGC_offlined, &cur_head->count_info)) 36.49 + { 36.50 + cur_head++; 36.51 + continue; 36.52 + } 36.53 + 36.54 + next_order = cur_order = 0; 36.55 + 36.56 + while (cur_order < head_order) 36.57 + { 36.58 + next_order = cur_order + 1; 36.59 + 36.60 + if ( (cur_head + (1 << next_order)) >= (head + ( 1 << head_order))) 36.61 + goto merge; 36.62 + 36.63 + for (i = (1 << cur_order), pg = cur_head + (1 << cur_order); 36.64 + i < (1 << next_order); 36.65 + i++, pg ++) 36.66 + if (test_bit(_PGC_offlined, &pg->count_info)) 36.67 + break; 36.68 + if (i == ( 1 << next_order)) 36.69 + { 36.70 + cur_order = next_order; 36.71 + continue; 36.72 + } 36.73 + else 36.74 + { 36.75 + /* 36.76 + * We don't need considering merge outside the head_order 36.77 + */ 36.78 +merge: 36.79 + page_list_add_tail(cur_head, &heap(node, zone, cur_order)); 36.80 + PFN_ORDER(cur_head) = cur_order; 36.81 + cur_head += (1 << cur_order); 36.82 + break; 36.83 + } 36.84 + } 36.85 + } 36.86 + 36.87 + for (cur_head = head; cur_head < head + ( 1UL << head_order); cur_head++) 36.88 + { 36.89 + if (!test_bit(_PGC_offlined, &cur_head->count_info)) 36.90 + continue; 36.91 + 36.92 + avail[node][zone] --; 36.93 + 36.94 + map_alloc(page_to_mfn(cur_head), 1); 36.95 + 36.96 + if (test_bit(_PGC_broken, &cur_head->count_info)) 36.97 + page_list_add_tail(cur_head, &page_broken_list); 36.98 + else 36.99 + page_list_add_tail(cur_head, &page_offlined_list); 36.100 + 36.101 + count ++; 36.102 + } 36.103 + 36.104 + return count; 36.105 +} 36.106 + 36.107 /* Free 2^@order set of pages. */ 36.108 static void free_heap_pages( 36.109 struct page_info *pg, unsigned int order) 36.110 { 36.111 unsigned long mask; 36.112 - unsigned int i, node = phys_to_nid(page_to_maddr(pg)); 36.113 + unsigned int i, node = phys_to_nid(page_to_maddr(pg)), tainted = 0; 36.114 unsigned int zone = page_to_zone(pg); 36.115 36.116 ASSERT(order <= MAX_ORDER); 36.117 @@ -446,7 +532,14 @@ static void free_heap_pages( 36.118 * in its pseudophysical address space). 36.119 * In all the above cases there can be no guest mappings of this page. 36.120 */ 36.121 - pg[i].count_info = 0; 36.122 + ASSERT(!(pg[i].count_info & PGC_offlined)); 36.123 + pg[i].count_info &= PGC_offlining | PGC_broken; 36.124 + if (pg[i].count_info & PGC_offlining) 36.125 + { 36.126 + pg[i].count_info &= ~PGC_offlining; 36.127 + pg[i].count_info |= PGC_offlined; 36.128 + tainted = 1; 36.129 + } 36.130 36.131 /* If a page has no owner it will need no safety TLB flush. */ 36.132 pg[i].u.free.need_tlbflush = (page_get_owner(&pg[i]) != NULL); 36.133 @@ -481,7 +574,7 @@ static void free_heap_pages( 36.134 break; 36.135 page_list_del(pg + mask, &heap(node, zone, order)); 36.136 } 36.137 - 36.138 + 36.139 order++; 36.140 36.141 /* After merging, pg should remain in the same node. */ 36.142 @@ -491,9 +584,251 @@ static void free_heap_pages( 36.143 PFN_ORDER(pg) = order; 36.144 page_list_add_tail(pg, &heap(node, zone, order)); 36.145 36.146 + if (tainted) 36.147 + reserve_offlined_page(pg); 36.148 + 36.149 spin_unlock(&heap_lock); 36.150 } 36.151 36.152 + 36.153 +/* 36.154 + * Following possible status for a page: 36.155 + * free and Online; free and offlined; free and offlined and broken; 36.156 + * assigned and online; assigned and offlining; assigned and offling and broken 36.157 + * 36.158 + * Following rules applied for page offline: 36.159 + * Once a page is broken, it can't be assigned anymore 36.160 + * A page will be offlined only if it is free 36.161 + * return original count_info 36.162 + * 36.163 + */ 36.164 +static unsigned long mark_page_offline(struct page_info *pg, int broken) 36.165 +{ 36.166 + unsigned long nx, x, y = pg->count_info; 36.167 + 36.168 + ASSERT(page_is_ram_type(page_to_mfn(pg), RAM_TYPE_CONVENTIONAL)); 36.169 + /* 36.170 + * Caller gurantee the page will not be reassigned during this process 36.171 + */ 36.172 + ASSERT(spin_is_locked(&heap_lock)); 36.173 + 36.174 + do { 36.175 + nx = x = y; 36.176 + 36.177 + if ( ((x & PGC_offlined_broken) == PGC_offlined_broken) ) 36.178 + return y; 36.179 + /* PGC_offlined means it is free pages */ 36.180 + if (x & PGC_offlined) 36.181 + { 36.182 + if (broken && !(nx & PGC_broken)) 36.183 + nx |= PGC_broken; 36.184 + else 36.185 + return y; 36.186 + } 36.187 + /* It is not offlined, not reserved page */ 36.188 + else if ( allocated_in_map(page_to_mfn(pg)) ) 36.189 + nx |= PGC_offlining; 36.190 + else 36.191 + nx |= PGC_offlined; 36.192 + 36.193 + if (broken) 36.194 + nx |= PGC_broken; 36.195 + } while ( (y = cmpxchg(&pg->count_info, x, nx)) != x ); 36.196 + 36.197 + return y; 36.198 +} 36.199 + 36.200 +static int reserve_heap_page(struct page_info *pg) 36.201 +{ 36.202 + struct page_info *head = NULL; 36.203 + unsigned int i, node = phys_to_nid(page_to_maddr(pg)); 36.204 + unsigned int zone = page_to_zone(pg); 36.205 + 36.206 + /* get the header */ 36.207 + for ( i = 0; i <= MAX_ORDER; i++ ) 36.208 + { 36.209 + struct page_info *tmp; 36.210 + 36.211 + if ( page_list_empty(&heap(node, zone, i)) ) 36.212 + continue; 36.213 + 36.214 + page_list_for_each_safe(head, tmp, &heap(node, zone, i)) 36.215 + { 36.216 + if ( (head <= pg) && 36.217 + (head + (1UL << i) > pg) ) 36.218 + return reserve_offlined_page(head); 36.219 + } 36.220 + } 36.221 + 36.222 + return -EINVAL; 36.223 + 36.224 +} 36.225 + 36.226 +/* 36.227 + * offline one page 36.228 + */ 36.229 +int offline_page(unsigned long mfn, int broken, uint32_t *status) 36.230 +{ 36.231 + unsigned long old_info = 0; 36.232 + struct domain *owner; 36.233 + int ret = 0; 36.234 + struct page_info *pg; 36.235 + 36.236 + if (mfn > max_page) 36.237 + { 36.238 + dprintk(XENLOG_WARNING, 36.239 + "try to offline page out of range %lx\n", mfn); 36.240 + return -EINVAL; 36.241 + } 36.242 + 36.243 + *status = 0; 36.244 + pg = mfn_to_page(mfn); 36.245 + 36.246 + 36.247 +#if defined(__x86_64__) 36.248 + /* Xen's txt mfn in x86_64 is reserved in e820 */ 36.249 + if ( is_xen_fixed_mfn(mfn) ) 36.250 +#elif defined(__i386__) 36.251 + if ( is_xen_heap_mfn(mfn) ) 36.252 +#endif 36.253 + { 36.254 + *status = PG_OFFLINE_XENPAGE | PG_OFFLINE_FAILED | 36.255 + (DOMID_XEN << PG_OFFLINE_OWNER_SHIFT); 36.256 + return -EPERM; 36.257 + } 36.258 + 36.259 + /* 36.260 + * N.B. xen's txt in x86_64 is marked reserved and handled already 36.261 + * Also kexec range is reserved 36.262 + */ 36.263 + if (!page_is_ram_type(mfn, RAM_TYPE_CONVENTIONAL)) 36.264 + { 36.265 + *status = PG_OFFLINE_FAILED | PG_OFFLINE_NOT_CONV_RAM; 36.266 + return -EINVAL; 36.267 + } 36.268 + 36.269 + spin_lock(&heap_lock); 36.270 + 36.271 + old_info = mark_page_offline(pg, broken); 36.272 + 36.273 + if ( !allocated_in_map(mfn) ) 36.274 + { 36.275 + /* Free pages are reserve directly */ 36.276 + reserve_heap_page(pg); 36.277 + *status = PG_OFFLINE_OFFLINED; 36.278 + } 36.279 + else if (test_bit(_PGC_offlined, &pg->count_info)) 36.280 + { 36.281 + *status = PG_OFFLINE_OFFLINED; 36.282 + } 36.283 + else if ((owner = page_get_owner_and_reference(pg))) 36.284 + { 36.285 + *status = PG_OFFLINE_OWNED | PG_OFFLINE_PENDING | 36.286 + (owner->domain_id << PG_OFFLINE_OWNER_SHIFT); 36.287 + /* Release the reference since it will not be allocated anymore */ 36.288 + put_page(pg); 36.289 + } 36.290 + else if ( old_info & PGC_xen_heap) 36.291 + { 36.292 + *status = PG_OFFLINE_XENPAGE | PG_OFFLINE_PENDING | 36.293 + (DOMID_XEN << PG_OFFLINE_OWNER_SHIFT); 36.294 + } 36.295 + else 36.296 + { 36.297 + /* 36.298 + * assign_pages does not hold heap_lock, so small window that the owner 36.299 + * may be set later, but please notice owner will only change from 36.300 + * NULL to be set, not verse, since page is offlining now. 36.301 + * No windows If called from #MC handler, since all CPU are in softirq 36.302 + * If called from user space like CE handling, tools can wait some time 36.303 + * before call again. 36.304 + */ 36.305 + *status = PG_OFFLINE_ANONYMOUS | PG_OFFLINE_FAILED | 36.306 + (DOMID_INVALID << PG_OFFLINE_OWNER_SHIFT ); 36.307 + } 36.308 + 36.309 + if (broken) 36.310 + *status |= PG_OFFLINE_BROKEN; 36.311 + 36.312 + spin_unlock(&heap_lock); 36.313 + 36.314 + return ret; 36.315 +} 36.316 + 36.317 +/* 36.318 + * Online the memory. 36.319 + * The caller should make sure end_pfn <= max_page, 36.320 + * if not, expand_pages() should be called prior to online_page(). 36.321 + */ 36.322 +unsigned int online_page(unsigned long mfn, uint32_t *status) 36.323 +{ 36.324 + struct page_info *pg; 36.325 + int ret = 0, free = 0; 36.326 + 36.327 + if ( mfn > max_page ) 36.328 + { 36.329 + dprintk(XENLOG_WARNING, "call expand_pages() first\n"); 36.330 + return -EINVAL; 36.331 + } 36.332 + 36.333 + pg = mfn_to_page(mfn); 36.334 + 36.335 + *status = 0; 36.336 + 36.337 + spin_lock(&heap_lock); 36.338 + 36.339 + if ( unlikely(is_page_broken(pg)) ) 36.340 + { 36.341 + ret = -EINVAL; 36.342 + *status = PG_ONLINE_FAILED |PG_ONLINE_BROKEN; 36.343 + } 36.344 + else if (pg->count_info & PGC_offlined) 36.345 + { 36.346 + clear_bit(_PGC_offlined, &pg->count_info); 36.347 + page_list_del(pg, &page_offlined_list); 36.348 + *status = PG_ONLINE_ONLINED; 36.349 + free = 1; 36.350 + } 36.351 + else if (pg->count_info & PGC_offlining) 36.352 + { 36.353 + clear_bit(_PGC_offlining, &pg->count_info); 36.354 + *status = PG_ONLINE_ONLINED; 36.355 + } 36.356 + spin_unlock(&heap_lock); 36.357 + 36.358 + if (free) 36.359 + free_heap_pages(pg, 0); 36.360 + 36.361 + return ret; 36.362 +} 36.363 + 36.364 +int query_page_offline(unsigned long mfn, uint32_t *status) 36.365 +{ 36.366 + struct page_info *pg; 36.367 + 36.368 + if ( (mfn > max_page) || !page_is_ram_type(mfn, RAM_TYPE_CONVENTIONAL) ) 36.369 + { 36.370 + dprintk(XENLOG_WARNING, "call expand_pages() first\n"); 36.371 + return -EINVAL; 36.372 + } 36.373 + 36.374 + *status = 0; 36.375 + spin_lock(&heap_lock); 36.376 + 36.377 + pg = mfn_to_page(mfn); 36.378 + 36.379 + if (pg->count_info & PGC_offlining) 36.380 + *status |= PG_OFFLINE_STATUS_OFFLINE_PENDING; 36.381 + if (pg->count_info & PGC_broken) 36.382 + *status |= PG_OFFLINE_STATUS_BROKEN; 36.383 + if (pg->count_info & PGC_offlined) 36.384 + *status |= PG_OFFLINE_STATUS_OFFLINED; 36.385 + 36.386 + spin_unlock(&heap_lock); 36.387 + 36.388 + return 0; 36.389 +} 36.390 + 36.391 /* 36.392 * Hand the specified arbitrary page range to the specified heap zone 36.393 * checking the node_id of the previous page. If they differ and the
37.1 --- a/xen/common/sched_credit.c Fri Mar 06 12:22:22 2009 +0900 37.2 +++ b/xen/common/sched_credit.c Tue Mar 10 11:00:34 2009 +0900 37.3 @@ -25,12 +25,14 @@ 37.4 /* 37.5 * CSCHED_STATS 37.6 * 37.7 - * Manage very basic counters and stats. 37.8 + * Manage very basic per-vCPU counters and stats. 37.9 * 37.10 * Useful for debugging live systems. The stats are displayed 37.11 * with runq dumps ('r' on the Xen console). 37.12 */ 37.13 +#ifdef PERF_COUNTERS 37.14 #define CSCHED_STATS 37.15 +#endif 37.16 37.17 37.18 /* 37.19 @@ -77,85 +79,9 @@ 37.20 /* 37.21 * Stats 37.22 */ 37.23 -#ifdef CSCHED_STATS 37.24 - 37.25 -#define CSCHED_STAT(_X) (csched_priv.stats._X) 37.26 -#define CSCHED_STAT_DEFINE(_X) uint32_t _X; 37.27 -#define CSCHED_STAT_PRINTK(_X) \ 37.28 - do \ 37.29 - { \ 37.30 - printk("\t%-30s = %u\n", #_X, CSCHED_STAT(_X)); \ 37.31 - } while ( 0 ); 37.32 +#define CSCHED_STAT_CRANK(_X) (perfc_incr(_X)) 37.33 37.34 -/* 37.35 - * Try and keep often cranked stats on top so they'll fit on one 37.36 - * cache line. 37.37 - */ 37.38 -#define CSCHED_STATS_EXPAND_SCHED(_MACRO) \ 37.39 - _MACRO(schedule) \ 37.40 - _MACRO(acct_run) \ 37.41 - _MACRO(acct_no_work) \ 37.42 - _MACRO(acct_balance) \ 37.43 - _MACRO(acct_reorder) \ 37.44 - _MACRO(acct_min_credit) \ 37.45 - _MACRO(acct_vcpu_active) \ 37.46 - _MACRO(acct_vcpu_idle) \ 37.47 - _MACRO(vcpu_sleep) \ 37.48 - _MACRO(vcpu_wake_running) \ 37.49 - _MACRO(vcpu_wake_onrunq) \ 37.50 - _MACRO(vcpu_wake_runnable) \ 37.51 - _MACRO(vcpu_wake_not_runnable) \ 37.52 - _MACRO(vcpu_park) \ 37.53 - _MACRO(vcpu_unpark) \ 37.54 - _MACRO(tickle_local_idler) \ 37.55 - _MACRO(tickle_local_over) \ 37.56 - _MACRO(tickle_local_under) \ 37.57 - _MACRO(tickle_local_other) \ 37.58 - _MACRO(tickle_idlers_none) \ 37.59 - _MACRO(tickle_idlers_some) \ 37.60 - _MACRO(load_balance_idle) \ 37.61 - _MACRO(load_balance_over) \ 37.62 - _MACRO(load_balance_other) \ 37.63 - _MACRO(steal_trylock_failed) \ 37.64 - _MACRO(steal_peer_idle) \ 37.65 - _MACRO(migrate_queued) \ 37.66 - _MACRO(migrate_running) \ 37.67 - _MACRO(dom_init) \ 37.68 - _MACRO(dom_destroy) \ 37.69 - _MACRO(vcpu_init) \ 37.70 - _MACRO(vcpu_destroy) 37.71 - 37.72 -#ifndef NDEBUG 37.73 -#define CSCHED_STATS_EXPAND_CHECKS(_MACRO) \ 37.74 - _MACRO(vcpu_check) 37.75 -#else 37.76 -#define CSCHED_STATS_EXPAND_CHECKS(_MACRO) 37.77 -#endif 37.78 - 37.79 -#define CSCHED_STATS_EXPAND(_MACRO) \ 37.80 - CSCHED_STATS_EXPAND_CHECKS(_MACRO) \ 37.81 - CSCHED_STATS_EXPAND_SCHED(_MACRO) 37.82 - 37.83 -#define CSCHED_STATS_RESET() \ 37.84 - do \ 37.85 - { \ 37.86 - memset(&csched_priv.stats, 0, sizeof(csched_priv.stats)); \ 37.87 - } while ( 0 ) 37.88 - 37.89 -#define CSCHED_STATS_DEFINE() \ 37.90 - struct \ 37.91 - { \ 37.92 - CSCHED_STATS_EXPAND(CSCHED_STAT_DEFINE) \ 37.93 - } stats; 37.94 - 37.95 -#define CSCHED_STATS_PRINTK() \ 37.96 - do \ 37.97 - { \ 37.98 - printk("stats:\n"); \ 37.99 - CSCHED_STATS_EXPAND(CSCHED_STAT_PRINTK) \ 37.100 - } while ( 0 ) 37.101 - 37.102 -#define CSCHED_STAT_CRANK(_X) (CSCHED_STAT(_X)++) 37.103 +#ifdef CSCHED_STATS 37.104 37.105 #define CSCHED_VCPU_STATS_RESET(_V) \ 37.106 do \ 37.107 @@ -169,10 +95,6 @@ 37.108 37.109 #else /* CSCHED_STATS */ 37.110 37.111 -#define CSCHED_STATS_RESET() do {} while ( 0 ) 37.112 -#define CSCHED_STATS_DEFINE() 37.113 -#define CSCHED_STATS_PRINTK() do {} while ( 0 ) 37.114 -#define CSCHED_STAT_CRANK(_X) do {} while ( 0 ) 37.115 #define CSCHED_VCPU_STATS_RESET(_V) do {} while ( 0 ) 37.116 #define CSCHED_VCPU_STAT_CRANK(_V, _X) do {} while ( 0 ) 37.117 #define CSCHED_VCPU_STAT_SET(_V, _X, _Y) do {} while ( 0 ) 37.118 @@ -238,7 +160,6 @@ struct csched_private { 37.119 uint32_t credit; 37.120 int credit_balance; 37.121 uint32_t runq_sort; 37.122 - CSCHED_STATS_DEFINE() 37.123 }; 37.124 37.125 37.126 @@ -250,15 +171,6 @@ static struct csched_private csched_priv 37.127 static void csched_tick(void *_cpu); 37.128 37.129 static inline int 37.130 -__cycle_cpu(int cpu, const cpumask_t *mask) 37.131 -{ 37.132 - int nxt = next_cpu(cpu, *mask); 37.133 - if (nxt == NR_CPUS) 37.134 - nxt = first_cpu(*mask); 37.135 - return nxt; 37.136 -} 37.137 - 37.138 -static inline int 37.139 __vcpu_on_runq(struct csched_vcpu *svc) 37.140 { 37.141 return !list_empty(&svc->runq_elem); 37.142 @@ -404,14 +316,37 @@ static inline void 37.143 #define CSCHED_VCPU_CHECK(_vc) 37.144 #endif 37.145 37.146 +/* 37.147 + * Delay, in microseconds, between migrations of a VCPU between PCPUs. 37.148 + * This prevents rapid fluttering of a VCPU between CPUs, and reduces the 37.149 + * implicit overheads such as cache-warming. 1ms (1000) has been measured 37.150 + * as a good value. 37.151 + */ 37.152 +static unsigned int vcpu_migration_delay; 37.153 +integer_param("vcpu_migration_delay", vcpu_migration_delay); 37.154 + 37.155 +static inline int 37.156 +__csched_vcpu_is_cache_hot(struct vcpu *v) 37.157 +{ 37.158 + int hot = ((NOW() - v->runstate.state_entry_time) < 37.159 + ((uint64_t)vcpu_migration_delay * 1000u)); 37.160 + 37.161 + if ( hot ) 37.162 + CSCHED_STAT_CRANK(vcpu_hot); 37.163 + 37.164 + return hot; 37.165 +} 37.166 + 37.167 static inline int 37.168 __csched_vcpu_is_migrateable(struct vcpu *vc, int dest_cpu) 37.169 { 37.170 /* 37.171 - * Don't pick up work that's in the peer's scheduling tail. Also only pick 37.172 - * up work that's allowed to run on our CPU. 37.173 + * Don't pick up work that's in the peer's scheduling tail or hot on 37.174 + * peer PCPU. Only pick up work that's allowed to run on our CPU. 37.175 */ 37.176 - return !vc->is_running && cpu_isset(dest_cpu, vc->cpu_affinity); 37.177 + return !vc->is_running && 37.178 + !__csched_vcpu_is_cache_hot(vc) && 37.179 + cpu_isset(dest_cpu, vc->cpu_affinity); 37.180 } 37.181 37.182 static int 37.183 @@ -428,7 +363,7 @@ csched_cpu_pick(struct vcpu *vc) 37.184 cpus_and(cpus, cpu_online_map, vc->cpu_affinity); 37.185 cpu = cpu_isset(vc->processor, cpus) 37.186 ? vc->processor 37.187 - : __cycle_cpu(vc->processor, &cpus); 37.188 + : cycle_cpu(vc->processor, cpus); 37.189 ASSERT( !cpus_empty(cpus) && cpu_isset(cpu, cpus) ); 37.190 37.191 /* 37.192 @@ -454,7 +389,7 @@ csched_cpu_pick(struct vcpu *vc) 37.193 cpumask_t nxt_idlers; 37.194 int nxt; 37.195 37.196 - nxt = __cycle_cpu(cpu, &cpus); 37.197 + nxt = cycle_cpu(cpu, cpus); 37.198 37.199 if ( cpu_isset(cpu, cpu_core_map[nxt]) ) 37.200 { 37.201 @@ -1128,7 +1063,7 @@ csched_load_balance(int cpu, struct csch 37.202 37.203 while ( !cpus_empty(workers) ) 37.204 { 37.205 - peer_cpu = __cycle_cpu(peer_cpu, &workers); 37.206 + peer_cpu = cycle_cpu(peer_cpu, workers); 37.207 cpu_clear(peer_cpu, workers); 37.208 37.209 /* 37.210 @@ -1306,7 +1241,8 @@ csched_dump(void) 37.211 "\tmsecs per tick = %dms\n" 37.212 "\tcredits per tick = %d\n" 37.213 "\tticks per tslice = %d\n" 37.214 - "\tticks per acct = %d\n", 37.215 + "\tticks per acct = %d\n" 37.216 + "\tmigration delay = %uus\n", 37.217 csched_priv.ncpus, 37.218 csched_priv.master, 37.219 csched_priv.credit, 37.220 @@ -1317,13 +1253,12 @@ csched_dump(void) 37.221 CSCHED_MSECS_PER_TICK, 37.222 CSCHED_CREDITS_PER_TICK, 37.223 CSCHED_TICKS_PER_TSLICE, 37.224 - CSCHED_TICKS_PER_ACCT); 37.225 + CSCHED_TICKS_PER_ACCT, 37.226 + vcpu_migration_delay); 37.227 37.228 cpumask_scnprintf(idlers_buf, sizeof(idlers_buf), csched_priv.idlers); 37.229 printk("idlers: %s\n", idlers_buf); 37.230 37.231 - CSCHED_STATS_PRINTK(); 37.232 - 37.233 printk("active vcpus:\n"); 37.234 loop = 0; 37.235 list_for_each( iter_sdom, &csched_priv.active_sdom ) 37.236 @@ -1354,7 +1289,6 @@ csched_init(void) 37.237 csched_priv.credit = 0U; 37.238 csched_priv.credit_balance = 0; 37.239 csched_priv.runq_sort = 0U; 37.240 - CSCHED_STATS_RESET(); 37.241 } 37.242 37.243 /* Tickers cannot be kicked until SMP subsystem is alive. */
38.1 --- a/xen/common/schedule.c Fri Mar 06 12:22:22 2009 +0900 38.2 +++ b/xen/common/schedule.c Tue Mar 10 11:00:34 2009 +0900 38.3 @@ -81,6 +81,20 @@ static inline void trace_runstate_change 38.4 __trace_var(event, 1/*tsc*/, sizeof(d), (unsigned char *)&d); 38.5 } 38.6 38.7 +static inline void trace_continue_running(struct vcpu *v) 38.8 +{ 38.9 + struct { uint32_t vcpu:16, domain:16; } d; 38.10 + 38.11 + if ( likely(!tb_init_done) ) 38.12 + return; 38.13 + 38.14 + d.vcpu = v->vcpu_id; 38.15 + d.domain = v->domain->domain_id; 38.16 + 38.17 + __trace_var(TRC_SCHED_CONTINUE_RUNNING, 1/*tsc*/, sizeof(d), 38.18 + (unsigned char *)&d); 38.19 +} 38.20 + 38.21 static inline void vcpu_runstate_change( 38.22 struct vcpu *v, int new_state, s_time_t new_entry_time) 38.23 { 38.24 @@ -803,6 +817,7 @@ static void schedule(void) 38.25 if ( unlikely(prev == next) ) 38.26 { 38.27 spin_unlock_irq(&sd->schedule_lock); 38.28 + trace_continue_running(next); 38.29 return continue_running(prev); 38.30 } 38.31
39.1 --- a/xen/common/sysctl.c Fri Mar 06 12:22:22 2009 +0900 39.2 +++ b/xen/common/sysctl.c Tue Mar 10 11:00:34 2009 +0900 39.3 @@ -233,6 +233,61 @@ long do_sysctl(XEN_GUEST_HANDLE(xen_sysc 39.4 } 39.5 break; 39.6 39.7 + case XEN_SYSCTL_page_offline_op: 39.8 + { 39.9 + uint32_t *status, *ptr; 39.10 + unsigned long pfn; 39.11 + 39.12 + ptr = status = xmalloc_bytes( sizeof(uint32_t) * 39.13 + (op->u.page_offline.end - 39.14 + op->u.page_offline.start + 1)); 39.15 + if (!status) 39.16 + { 39.17 + dprintk(XENLOG_WARNING, "Out of memory for page offline op\n"); 39.18 + ret = -ENOMEM; 39.19 + break; 39.20 + } 39.21 + 39.22 + memset(status, PG_OFFLINE_INVALID, sizeof(uint32_t) * 39.23 + (op->u.page_offline.end - op->u.page_offline.start + 1)); 39.24 + 39.25 + for ( pfn = op->u.page_offline.start; 39.26 + pfn <= op->u.page_offline.end; 39.27 + pfn ++ ) 39.28 + { 39.29 + switch (op->u.page_offline.cmd) 39.30 + { 39.31 + /* Shall revert her if failed, or leave caller do it? */ 39.32 + case sysctl_page_offline: 39.33 + ret = offline_page(pfn, 0, ptr++); 39.34 + break; 39.35 + case sysctl_page_online: 39.36 + ret = online_page(pfn, ptr++); 39.37 + break; 39.38 + case sysctl_query_page_offline: 39.39 + ret = query_page_offline(pfn, ptr++); 39.40 + break; 39.41 + default: 39.42 + gdprintk(XENLOG_WARNING, "invalid page offline op %x\n", 39.43 + op->u.page_offline.cmd); 39.44 + ret = -EINVAL; 39.45 + break; 39.46 + } 39.47 + 39.48 + if (ret) 39.49 + break; 39.50 + } 39.51 + 39.52 + if (copy_to_guest(op->u.page_offline.status, status, 39.53 + op->u.page_offline.end - op->u.page_offline.start + 1)) 39.54 + { 39.55 + ret = -EFAULT; 39.56 + break; 39.57 + } 39.58 + xfree(status); 39.59 + } 39.60 + break; 39.61 + 39.62 default: 39.63 ret = arch_do_sysctl(op, u_sysctl); 39.64 break;
40.1 --- a/xen/drivers/char/console.c Fri Mar 06 12:22:22 2009 +0900 40.2 +++ b/xen/drivers/char/console.c Tue Mar 10 11:00:34 2009 +0900 40.3 @@ -315,6 +315,12 @@ static void serial_rx(char c, struct cpu 40.4 __serial_rx(c, regs); 40.5 } 40.6 40.7 +static void notify_dom0_con_ring(unsigned long unused) 40.8 +{ 40.9 + send_guest_global_virq(dom0, VIRQ_CON_RING); 40.10 +} 40.11 +static DECLARE_TASKLET(notify_dom0_con_ring_tasklet, notify_dom0_con_ring, 0); 40.12 + 40.13 static long guest_console_write(XEN_GUEST_HANDLE(char) buffer, int count) 40.14 { 40.15 char kbuf[128], *kptr; 40.16 @@ -348,7 +354,7 @@ static long guest_console_write(XEN_GUES 40.17 { 40.18 for ( kptr = kbuf; *kptr != '\0'; kptr++ ) 40.19 putchar_console_ring(*kptr); 40.20 - send_guest_global_virq(dom0, VIRQ_CON_RING); 40.21 + tasklet_schedule(¬ify_dom0_con_ring_tasklet); 40.22 } 40.23 40.24 spin_unlock_irq(&console_lock); 40.25 @@ -414,6 +420,8 @@ long do_console_io(int cmd, int count, X 40.26 * ***************************************************** 40.27 */ 40.28 40.29 +static bool_t console_locks_busted; 40.30 + 40.31 static void __putstr(const char *str) 40.32 { 40.33 int c; 40.34 @@ -423,10 +431,12 @@ static void __putstr(const char *str) 40.35 sercon_puts(str); 40.36 vga_puts(str); 40.37 40.38 - while ( (c = *str++) != '\0' ) 40.39 - putchar_console_ring(c); 40.40 - 40.41 - send_guest_global_virq(dom0, VIRQ_CON_RING); 40.42 + if ( !console_locks_busted ) 40.43 + { 40.44 + while ( (c = *str++) != '\0' ) 40.45 + putchar_console_ring(c); 40.46 + tasklet_schedule(¬ify_dom0_con_ring_tasklet); 40.47 + } 40.48 } 40.49 40.50 static int printk_prefix_check(char *p, char **pp) 40.51 @@ -659,6 +669,7 @@ void console_force_unlock(void) 40.52 { 40.53 spin_lock_init(&console_lock); 40.54 serial_force_unlock(sercon_handle); 40.55 + console_locks_busted = 1; 40.56 console_start_sync(); 40.57 } 40.58
41.1 --- a/xen/drivers/passthrough/vtd/x86/vtd.c Fri Mar 06 12:22:22 2009 +0900 41.2 +++ b/xen/drivers/passthrough/vtd/x86/vtd.c Tue Mar 10 11:00:34 2009 +0900 41.3 @@ -153,12 +153,13 @@ void hvm_dpci_isairq_eoi(struct domain * 41.4 41.5 void iommu_set_dom0_mapping(struct domain *d) 41.6 { 41.7 - u64 i, j, tmp; 41.8 - unsigned long max_pfn = max(max_page, 0x100000000ul >> PAGE_SHIFT); 41.9 + u64 i, j, tmp, max_pfn; 41.10 extern int xen_in_range(paddr_t start, paddr_t end); 41.11 41.12 BUG_ON(d->domain_id != 0); 41.13 41.14 + max_pfn = max_t(u64, max_page, 0x100000000ull >> PAGE_SHIFT); 41.15 + 41.16 for ( i = 0; i < max_pfn; i++ ) 41.17 { 41.18 /*
42.1 --- a/xen/include/asm-ia64/mm.h Fri Mar 06 12:22:22 2009 +0900 42.2 +++ b/xen/include/asm-ia64/mm.h Tue Mar 10 11:00:34 2009 +0900 42.3 @@ -149,13 +149,34 @@ page_list_splice_init(struct page_list_h 42.4 # define PGC_xen_heap PG_mask(1, 2) 42.5 /* bit PG_shift(3) reserved. See asm-x86/mm.h */ 42.6 /* PG_mask(7, 6) reserved. See asm-x86/mm.h*/ 42.7 + 42.8 + /* Page is broken? */ 42.9 +#define _PGC_broken PG_shift(7) 42.10 +#define PGC_broken PG_mask(1, 7) 42.11 + /* Page is offline pending ? */ 42.12 +#define _PGC_offlining PG_shift(8) 42.13 +#define PGC_offlining PG_mask(1, 8) 42.14 + /* Page is offlined */ 42.15 +#define _PGC_offlined PG_shift(9) 42.16 +#define PGC_offlined PG_mask(1, 9) 42.17 +#define PGC_offlined_broken (PGC_offlined | PGC_broken) 42.18 + 42.19 +#define is_page_offlining(page) ((page)->count_info & PGC_offlining) 42.20 +#define is_page_offlined(page) ((page)->count_info & PGC_offlined) 42.21 +#define is_page_broken(page) ((page)->count_info & PGC_broken) 42.22 +#define is_page_online(page) (!is_page_offlined(page)) 42.23 + 42.24 /* Count of references to this frame. */ 42.25 -#define PGC_count_width PG_shift(6) 42.26 +#define PGC_count_width PG_shift(9) 42.27 #define PGC_count_mask ((1UL<<PGC_count_width)-1) 42.28 42.29 +extern unsigned long xen_fixed_mfn_start; 42.30 +extern unsigned long xen_fixed_mfn_end; 42.31 #define is_xen_heap_page(page) ((page)->count_info & PGC_xen_heap) 42.32 #define is_xen_heap_mfn(mfn) (mfn_valid(mfn) && \ 42.33 is_xen_heap_page(mfn_to_page(mfn))) 42.34 +#define is_xen_fixed_mfn(mfn) \ 42.35 + (xen_fixed_mfn_start <= (mfn) && (mfn) <= xen_fixed_mfn_end) 42.36 42.37 #ifdef CONFIG_IA64_PICKLE_DOMAIN 42.38 #define page_get_owner(_p) \
43.1 --- a/xen/include/asm-x86/cpufeature.h Fri Mar 06 12:22:22 2009 +0900 43.2 +++ b/xen/include/asm-x86/cpufeature.h Tue Mar 10 11:00:34 2009 +0900 43.3 @@ -95,6 +95,7 @@ 43.4 #define X86_FEATURE_SSE4_2 (4*32+20) /* Streaming SIMD Extensions 4.2 */ 43.5 #define X86_FEATURE_X2APIC (4*32+21) /* Extended xAPIC */ 43.6 #define X86_FEATURE_POPCNT (4*32+23) /* POPCNT instruction */ 43.7 +#define X86_FEATURE_XSAVE (4*32+26) /* XSAVE/XRSTOR/XSETBV/XGETBV */ 43.8 #define X86_FEATURE_HYPERVISOR (4*32+31) /* Running under some hypervisor */ 43.9 43.10 /* VIA/Cyrix/Centaur-defined CPU features, CPUID level 0xC0000001, word 5 */
44.1 --- a/xen/include/asm-x86/mm.h Fri Mar 06 12:22:22 2009 +0900 44.2 +++ b/xen/include/asm-x86/mm.h Tue Mar 10 11:00:34 2009 +0900 44.3 @@ -198,8 +198,25 @@ struct page_info 44.4 /* 3-bit PAT/PCD/PWT cache-attribute hint. */ 44.5 #define PGC_cacheattr_base PG_shift(6) 44.6 #define PGC_cacheattr_mask PG_mask(7, 6) 44.7 + 44.8 + /* Page is broken? */ 44.9 + #define _PGC_broken PG_shift(7) 44.10 + #define PGC_broken PG_mask(1, 7) 44.11 + /* Page is offline pending ? */ 44.12 + #define _PGC_offlining PG_shift(8) 44.13 + #define PGC_offlining PG_mask(1, 8) 44.14 + /* Page is offlined */ 44.15 + #define _PGC_offlined PG_shift(9) 44.16 + #define PGC_offlined PG_mask(1, 9) 44.17 + #define PGC_offlined_broken (PGC_offlined | PGC_broken) 44.18 + 44.19 + #define is_page_offlining(page) ((page)->count_info & PGC_offlining) 44.20 + #define is_page_offlined(page) ((page)->count_info & PGC_offlined) 44.21 + #define is_page_broken(page) ((page)->count_info & PGC_broken) 44.22 + #define is_page_online(page) (!is_page_offlined(page)) 44.23 + 44.24 /* Count of references to this frame. */ 44.25 -#define PGC_count_width PG_shift(6) 44.26 +#define PGC_count_width PG_shift(9) 44.27 #define PGC_count_mask ((1UL<<PGC_count_width)-1) 44.28 44.29 #if defined(__i386__) 44.30 @@ -209,9 +226,13 @@ struct page_info 44.31 (_mfn < paddr_to_pfn(xenheap_phys_end)); \ 44.32 }) 44.33 #else 44.34 +extern unsigned long allocator_bitmap_end; 44.35 #define is_xen_heap_page(page) ((page)->count_info & PGC_xen_heap) 44.36 #define is_xen_heap_mfn(mfn) \ 44.37 (__mfn_valid(mfn) && is_xen_heap_page(__mfn_to_page(mfn))) 44.38 +#define is_xen_fixed_mfn(mfn) \ 44.39 + ( (mfn << PAGE_SHIFT) >= __pa(&_start) && \ 44.40 + (mfn << PAGE_SHIFT) <= allocator_bitmap_end ) 44.41 #endif 44.42 44.43 #if defined(__i386__)
45.1 --- a/xen/include/public/sysctl.h Fri Mar 06 12:22:22 2009 +0900 45.2 +++ b/xen/include/public/sysctl.h Tue Mar 10 11:00:34 2009 +0900 45.3 @@ -359,6 +359,54 @@ struct xen_sysctl_pm_op { 45.4 }; 45.5 }; 45.6 45.7 +#define XEN_SYSCTL_page_offline_op 14 45.8 +struct xen_sysctl_page_offline_op { 45.9 + /* IN: range of page to be offlined */ 45.10 +#define sysctl_page_offline 1 45.11 +#define sysctl_page_online 2 45.12 +#define sysctl_query_page_offline 3 45.13 + uint32_t cmd; 45.14 + uint32_t start; 45.15 + uint32_t end; 45.16 + /* OUT: result of page offline request */ 45.17 + /* 45.18 + * bit 0~15: result flags 45.19 + * bit 16~31: owner 45.20 + */ 45.21 + XEN_GUEST_HANDLE(uint32) status; 45.22 +}; 45.23 + 45.24 +#define PG_OFFLINE_STATUS_MASK (0xFFUL) 45.25 + 45.26 +/* The result is invalid, i.e. HV does not handle it */ 45.27 +#define PG_OFFLINE_INVALID (0x1UL << 0) 45.28 + 45.29 +#define PG_OFFLINE_OFFLINED (0x1UL << 1) 45.30 +#define PG_OFFLINE_PENDING (0x1UL << 2) 45.31 +#define PG_OFFLINE_FAILED (0x1UL << 3) 45.32 + 45.33 +#define PG_ONLINE_FAILED PG_OFFLINE_FAILED 45.34 +#define PG_ONLINE_ONLINED PG_OFFLINE_OFFLINED 45.35 + 45.36 +#define PG_OFFLINE_STATUS_OFFLINED (0x1UL << 1) 45.37 +#define PG_OFFLINE_STATUS_ONLINE (0x1UL << 2) 45.38 +#define PG_OFFLINE_STATUS_OFFLINE_PENDING (0x1UL << 3) 45.39 +#define PG_OFFLINE_STATUS_BROKEN (0x1UL << 4) 45.40 + 45.41 +#define PG_OFFLINE_MISC_MASK (0xFFUL << 4) 45.42 + 45.43 +/* only valid when PG_OFFLINE_FAILED */ 45.44 +#define PG_OFFLINE_XENPAGE (0x1UL << 8) 45.45 +#define PG_OFFLINE_DOM0PAGE (0x1UL << 9) 45.46 +#define PG_OFFLINE_ANONYMOUS (0x1UL << 10) 45.47 +#define PG_OFFLINE_NOT_CONV_RAM (0x1UL << 11) 45.48 +#define PG_OFFLINE_OWNED (0x1UL << 12) 45.49 + 45.50 +#define PG_OFFLINE_BROKEN (0x1UL << 13) 45.51 +#define PG_ONLINE_BROKEN PG_OFFLINE_BROKEN 45.52 + 45.53 +#define PG_OFFLINE_OWNER_SHIFT 16 45.54 + 45.55 struct xen_sysctl { 45.56 uint32_t cmd; 45.57 uint32_t interface_version; /* XEN_SYSCTL_INTERFACE_VERSION */ 45.58 @@ -375,6 +423,7 @@ struct xen_sysctl { 45.59 struct xen_sysctl_get_pmstat get_pmstat; 45.60 struct xen_sysctl_cpu_hotplug cpu_hotplug; 45.61 struct xen_sysctl_pm_op pm_op; 45.62 + struct xen_sysctl_page_offline_op page_offline; 45.63 uint8_t pad[128]; 45.64 } u; 45.65 };
46.1 --- a/xen/include/public/trace.h Fri Mar 06 12:22:22 2009 +0900 46.2 +++ b/xen/include/public/trace.h Tue Mar 10 11:00:34 2009 +0900 46.3 @@ -60,7 +60,8 @@ 46.4 #define TRC_TRACE_WRAP_BUFFER (TRC_GEN + 2) 46.5 #define TRC_TRACE_CPU_CHANGE (TRC_GEN + 3) 46.6 46.7 -#define TRC_SCHED_RUNSTATE_CHANGE (TRC_SCHED_MIN + 1) 46.8 +#define TRC_SCHED_RUNSTATE_CHANGE (TRC_SCHED_MIN + 1) 46.9 +#define TRC_SCHED_CONTINUE_RUNNING (TRC_SCHED_MIN + 2) 46.10 #define TRC_SCHED_DOM_ADD (TRC_SCHED_VERBOSE + 1) 46.11 #define TRC_SCHED_DOM_REM (TRC_SCHED_VERBOSE + 2) 46.12 #define TRC_SCHED_SLEEP (TRC_SCHED_VERBOSE + 3)
47.1 --- a/xen/include/public/xen.h Fri Mar 06 12:22:22 2009 +0900 47.2 +++ b/xen/include/public/xen.h Tue Mar 10 11:00:34 2009 +0900 47.3 @@ -354,6 +354,9 @@ typedef uint16_t domid_t; 47.4 */ 47.5 #define DOMID_XEN (0x7FF2U) 47.6 47.7 +/* DOMID_INVALID is used to identity invalid domid */ 47.8 +#define DOMID_INVALID (0x7FFFU) 47.9 + 47.10 /* 47.11 * Send an array of these to HYPERVISOR_mmu_update(). 47.12 * NB. The fields are natural pointer/address size for this architecture.
48.1 --- a/xen/include/xen/cpumask.h Fri Mar 06 12:22:22 2009 +0900 48.2 +++ b/xen/include/xen/cpumask.h Tue Mar 10 11:00:34 2009 +0900 48.3 @@ -38,6 +38,8 @@ 48.4 * 48.5 * int first_cpu(mask) Number lowest set bit, or NR_CPUS 48.6 * int next_cpu(cpu, mask) Next cpu past 'cpu', or NR_CPUS 48.7 + * int last_cpu(mask) Number highest set bit, or NR_CPUS 48.8 + * int cycle_cpu(cpu, mask) Next cpu cycling from 'cpu', or NR_CPUS 48.9 * 48.10 * cpumask_t cpumask_of_cpu(cpu) Return cpumask with bit 'cpu' set 48.11 * CPU_MASK_ALL Initializer - all bits set 48.12 @@ -225,12 +227,23 @@ static inline int __next_cpu(int n, cons 48.13 #define last_cpu(src) __last_cpu(&(src), NR_CPUS) 48.14 static inline int __last_cpu(const cpumask_t *srcp, int nbits) 48.15 { 48.16 - int cpu, pcpu = NR_CPUS; 48.17 - for (cpu = first_cpu(*srcp); cpu < NR_CPUS; cpu = next_cpu(cpu, *srcp)) 48.18 + int cpu, pcpu = nbits; 48.19 + for (cpu = __first_cpu(srcp, nbits); 48.20 + cpu < nbits; 48.21 + cpu = __next_cpu(cpu, srcp, nbits)) 48.22 pcpu = cpu; 48.23 return pcpu; 48.24 } 48.25 48.26 +#define cycle_cpu(n, src) __cycle_cpu((n), &(src), NR_CPUS) 48.27 +static inline int __cycle_cpu(int n, const cpumask_t *srcp, int nbits) 48.28 +{ 48.29 + int nxt = __next_cpu(n, srcp, nbits); 48.30 + if (nxt == nbits) 48.31 + nxt = __first_cpu(srcp, nbits); 48.32 + return nxt; 48.33 +} 48.34 + 48.35 #define cpumask_of_cpu(cpu) \ 48.36 ({ \ 48.37 typeof(_unused_cpumask_arg_) m; \
49.1 --- a/xen/include/xen/mm.h Fri Mar 06 12:22:22 2009 +0900 49.2 +++ b/xen/include/xen/mm.h Tue Mar 10 11:00:34 2009 +0900 49.3 @@ -60,6 +60,9 @@ unsigned long avail_domheap_pages_region 49.4 unsigned long avail_domheap_pages(void); 49.5 #define alloc_domheap_page(d,f) (alloc_domheap_pages(d,0,f)) 49.6 #define free_domheap_page(p) (free_domheap_pages(p,0)) 49.7 +unsigned int online_page(unsigned long mfn, uint32_t *status); 49.8 +int offline_page(unsigned long mfn, int broken, uint32_t *status); 49.9 +int query_page_offline(unsigned long mfn, uint32_t *status); 49.10 49.11 void scrub_heap_pages(void); 49.12
50.1 --- a/xen/include/xen/perfc_defn.h Fri Mar 06 12:22:22 2009 +0900 50.2 +++ b/xen/include/xen/perfc_defn.h Tue Mar 10 11:00:34 2009 +0900 50.3 @@ -16,6 +16,41 @@ PERFCOUNTER(sched_irq, "sch 50.4 PERFCOUNTER(sched_run, "sched: runs through scheduler") 50.5 PERFCOUNTER(sched_ctx, "sched: context switches") 50.6 50.7 +PERFCOUNTER(vcpu_check, "csched: vcpu_check") 50.8 +PERFCOUNTER(schedule, "csched: schedule") 50.9 +PERFCOUNTER(acct_run, "csched: acct_run") 50.10 +PERFCOUNTER(acct_no_work, "csched: acct_no_work") 50.11 +PERFCOUNTER(acct_balance, "csched: acct_balance") 50.12 +PERFCOUNTER(acct_reorder, "csched: acct_reorder") 50.13 +PERFCOUNTER(acct_min_credit, "csched: acct_min_credit") 50.14 +PERFCOUNTER(acct_vcpu_active, "csched: acct_vcpu_active") 50.15 +PERFCOUNTER(acct_vcpu_idle, "csched: acct_vcpu_idle") 50.16 +PERFCOUNTER(vcpu_sleep, "csched: vcpu_sleep") 50.17 +PERFCOUNTER(vcpu_wake_running, "csched: vcpu_wake_running") 50.18 +PERFCOUNTER(vcpu_wake_onrunq, "csched: vcpu_wake_onrunq") 50.19 +PERFCOUNTER(vcpu_wake_runnable, "csched: vcpu_wake_runnable") 50.20 +PERFCOUNTER(vcpu_wake_not_runnable, "csched: vcpu_wake_not_runnable") 50.21 +PERFCOUNTER(vcpu_park, "csched: vcpu_park") 50.22 +PERFCOUNTER(vcpu_unpark, "csched: vcpu_unpark") 50.23 +PERFCOUNTER(tickle_local_idler, "csched: tickle_local_idler") 50.24 +PERFCOUNTER(tickle_local_over, "csched: tickle_local_over") 50.25 +PERFCOUNTER(tickle_local_under, "csched: tickle_local_under") 50.26 +PERFCOUNTER(tickle_local_other, "csched: tickle_local_other") 50.27 +PERFCOUNTER(tickle_idlers_none, "csched: tickle_idlers_none") 50.28 +PERFCOUNTER(tickle_idlers_some, "csched: tickle_idlers_some") 50.29 +PERFCOUNTER(load_balance_idle, "csched: load_balance_idle") 50.30 +PERFCOUNTER(load_balance_over, "csched: load_balance_over") 50.31 +PERFCOUNTER(load_balance_other, "csched: load_balance_other") 50.32 +PERFCOUNTER(steal_trylock_failed, "csched: steal_trylock_failed") 50.33 +PERFCOUNTER(steal_peer_idle, "csched: steal_peer_idle") 50.34 +PERFCOUNTER(migrate_queued, "csched: migrate_queued") 50.35 +PERFCOUNTER(migrate_running, "csched: migrate_running") 50.36 +PERFCOUNTER(dom_init, "csched: dom_init") 50.37 +PERFCOUNTER(dom_destroy, "csched: dom_destroy") 50.38 +PERFCOUNTER(vcpu_init, "csched: vcpu_init") 50.39 +PERFCOUNTER(vcpu_destroy, "csched: vcpu_destroy") 50.40 +PERFCOUNTER(vcpu_hot, "csched: vcpu_hot") 50.41 + 50.42 PERFCOUNTER(need_flush_tlb_flush, "PG_need_flush tlb flushes") 50.43 50.44 /*#endif*/ /* __XEN_PERFC_DEFN_H__ */