diff options
95 files changed, 17446 insertions, 4471 deletions
diff --git a/Documentation/scsi/ChangeLog.megaraid b/Documentation/scsi/ChangeLog.megaraid index 5331d91432c7..09f6300eda4b 100644 --- a/Documentation/scsi/ChangeLog.megaraid +++ b/Documentation/scsi/ChangeLog.megaraid | |||
@@ -1,3 +1,38 @@ | |||
1 | Release Date : Fri Nov 11 12:27:22 EST 2005 - Seokmann Ju <sju@lsil.com> | ||
2 | Current Version : 2.20.4.7 (scsi module), 2.20.2.6 (cmm module) | ||
3 | Older Version : 2.20.4.6 (scsi module), 2.20.2.6 (cmm module) | ||
4 | |||
5 | 1. Sorted out PCI IDs to remove megaraid support overlaps. | ||
6 | Based on the patch from Daniel, sorted out PCI IDs along with | ||
7 | charactor node name change from 'megadev' to 'megadev_legacy' to avoid | ||
8 | conflict. | ||
9 | --- | ||
10 | Hopefully we'll be getting the build restriction zapped much sooner, | ||
11 | but we should also be thinking about totally removing the hardware | ||
12 | support overlap in the megaraid drivers. | ||
13 | |||
14 | This patch pencils in a date of Feb 06 for this, and performs some | ||
15 | printk abuse in hope that existing legacy users might pick up on what's | ||
16 | going on. | ||
17 | |||
18 | Signed-off-by: Daniel Drake <dsd@gentoo.org> | ||
19 | --- | ||
20 | |||
21 | 2. Fixed a issue: megaraid always fails to reset handler. | ||
22 | --- | ||
23 | I found that the megaraid driver always fails to reset the | ||
24 | adapter with the following message: | ||
25 | megaraid: resetting the host... | ||
26 | megaraid mbox: reset sequence completed successfully | ||
27 | megaraid: fast sync command timed out | ||
28 | megaraid: reservation reset failed | ||
29 | when the "Cluster mode" of the adapter BIOS is enabled. | ||
30 | So, whenever the reset occurs, the adapter goes to | ||
31 | offline and just become unavailable. | ||
32 | |||
33 | Jun'ichi Nomura [mailto:jnomura@mtc.biglobe.ne.jp] | ||
34 | --- | ||
35 | |||
1 | Release Date : Mon Mar 07 12:27:22 EST 2005 - Seokmann Ju <sju@lsil.com> | 36 | Release Date : Mon Mar 07 12:27:22 EST 2005 - Seokmann Ju <sju@lsil.com> |
2 | Current Version : 2.20.4.6 (scsi module), 2.20.2.6 (cmm module) | 37 | Current Version : 2.20.4.6 (scsi module), 2.20.2.6 (cmm module) |
3 | Older Version : 2.20.4.5 (scsi module), 2.20.2.5 (cmm module) | 38 | Older Version : 2.20.4.5 (scsi module), 2.20.2.5 (cmm module) |
diff --git a/Documentation/scsi/scsi_mid_low_api.txt b/Documentation/scsi/scsi_mid_low_api.txt index 66565d42288f..c4af92bc705d 100644 --- a/Documentation/scsi/scsi_mid_low_api.txt +++ b/Documentation/scsi/scsi_mid_low_api.txt | |||
@@ -150,7 +150,8 @@ scsi devices of which only the first 2 respond: | |||
150 | LLD mid level LLD | 150 | LLD mid level LLD |
151 | ===-------------------=========--------------------===------ | 151 | ===-------------------=========--------------------===------ |
152 | scsi_host_alloc() --> | 152 | scsi_host_alloc() --> |
153 | scsi_add_host() --------+ | 153 | scsi_add_host() ----> |
154 | scsi_scan_host() -------+ | ||
154 | | | 155 | | |
155 | slave_alloc() | 156 | slave_alloc() |
156 | slave_configure() --> scsi_adjust_queue_depth() | 157 | slave_configure() --> scsi_adjust_queue_depth() |
@@ -196,7 +197,7 @@ of the issues involved. See the section on reference counting below. | |||
196 | 197 | ||
197 | 198 | ||
198 | The hotplug concept may be extended to SCSI devices. Currently, when an | 199 | The hotplug concept may be extended to SCSI devices. Currently, when an |
199 | HBA is added, the scsi_add_host() function causes a scan for SCSI devices | 200 | HBA is added, the scsi_scan_host() function causes a scan for SCSI devices |
200 | attached to the HBA's SCSI transport. On newer SCSI transports the HBA | 201 | attached to the HBA's SCSI transport. On newer SCSI transports the HBA |
201 | may become aware of a new SCSI device _after_ the scan has completed. | 202 | may become aware of a new SCSI device _after_ the scan has completed. |
202 | An LLD can use this sequence to make the mid level aware of a SCSI device: | 203 | An LLD can use this sequence to make the mid level aware of a SCSI device: |
@@ -372,7 +373,7 @@ names all start with "scsi_". | |||
372 | Summary: | 373 | Summary: |
373 | scsi_activate_tcq - turn on tag command queueing | 374 | scsi_activate_tcq - turn on tag command queueing |
374 | scsi_add_device - creates new scsi device (lu) instance | 375 | scsi_add_device - creates new scsi device (lu) instance |
375 | scsi_add_host - perform sysfs registration and SCSI bus scan. | 376 | scsi_add_host - perform sysfs registration and set up transport class |
376 | scsi_adjust_queue_depth - change the queue depth on a SCSI device | 377 | scsi_adjust_queue_depth - change the queue depth on a SCSI device |
377 | scsi_assign_lock - replace default host_lock with given lock | 378 | scsi_assign_lock - replace default host_lock with given lock |
378 | scsi_bios_ptable - return copy of block device's partition table | 379 | scsi_bios_ptable - return copy of block device's partition table |
@@ -386,6 +387,7 @@ Summary: | |||
386 | scsi_remove_device - detach and remove a SCSI device | 387 | scsi_remove_device - detach and remove a SCSI device |
387 | scsi_remove_host - detach and remove all SCSI devices owned by host | 388 | scsi_remove_host - detach and remove all SCSI devices owned by host |
388 | scsi_report_bus_reset - report scsi _bus_ reset observed | 389 | scsi_report_bus_reset - report scsi _bus_ reset observed |
390 | scsi_scan_host - scan SCSI bus | ||
389 | scsi_track_queue_full - track successive QUEUE_FULL events | 391 | scsi_track_queue_full - track successive QUEUE_FULL events |
390 | scsi_unblock_requests - allow further commands to be queued to given host | 392 | scsi_unblock_requests - allow further commands to be queued to given host |
391 | scsi_unregister - [calls scsi_host_put()] | 393 | scsi_unregister - [calls scsi_host_put()] |
@@ -425,10 +427,10 @@ void scsi_activate_tcq(struct scsi_device *sdev, int depth) | |||
425 | * Might block: yes | 427 | * Might block: yes |
426 | * | 428 | * |
427 | * Notes: This call is usually performed internally during a scsi | 429 | * Notes: This call is usually performed internally during a scsi |
428 | * bus scan when an HBA is added (i.e. scsi_add_host()). So it | 430 | * bus scan when an HBA is added (i.e. scsi_scan_host()). So it |
429 | * should only be called if the HBA becomes aware of a new scsi | 431 | * should only be called if the HBA becomes aware of a new scsi |
430 | * device (lu) after scsi_add_host() has completed. If successful | 432 | * device (lu) after scsi_scan_host() has completed. If successful |
431 | * this call we lead to slave_alloc() and slave_configure() callbacks | 433 | * this call can lead to slave_alloc() and slave_configure() callbacks |
432 | * into the LLD. | 434 | * into the LLD. |
433 | * | 435 | * |
434 | * Defined in: drivers/scsi/scsi_scan.c | 436 | * Defined in: drivers/scsi/scsi_scan.c |
@@ -439,7 +441,7 @@ struct scsi_device * scsi_add_device(struct Scsi_Host *shost, | |||
439 | 441 | ||
440 | 442 | ||
441 | /** | 443 | /** |
442 | * scsi_add_host - perform sysfs registration and SCSI bus scan. | 444 | * scsi_add_host - perform sysfs registration and set up transport class |
443 | * @shost: pointer to scsi host instance | 445 | * @shost: pointer to scsi host instance |
444 | * @dev: pointer to struct device of type scsi class | 446 | * @dev: pointer to struct device of type scsi class |
445 | * | 447 | * |
@@ -448,7 +450,11 @@ struct scsi_device * scsi_add_device(struct Scsi_Host *shost, | |||
448 | * Might block: no | 450 | * Might block: no |
449 | * | 451 | * |
450 | * Notes: Only required in "hotplug initialization model" after a | 452 | * Notes: Only required in "hotplug initialization model" after a |
451 | * successful call to scsi_host_alloc(). | 453 | * successful call to scsi_host_alloc(). This function does not |
454 | * scan the bus; this can be done by calling scsi_scan_host() or | ||
455 | * in some other transport-specific way. The LLD must set up | ||
456 | * the transport template before calling this function and may only | ||
457 | * access the transport class data after this function has been called. | ||
452 | * | 458 | * |
453 | * Defined in: drivers/scsi/hosts.c | 459 | * Defined in: drivers/scsi/hosts.c |
454 | **/ | 460 | **/ |
@@ -559,7 +565,7 @@ void scsi_deactivate_tcq(struct scsi_device *sdev, int depth) | |||
559 | * area for the LLD's exclusive use. | 565 | * area for the LLD's exclusive use. |
560 | * Both associated refcounting objects have their refcount set to 1. | 566 | * Both associated refcounting objects have their refcount set to 1. |
561 | * Full registration (in sysfs) and a bus scan are performed later when | 567 | * Full registration (in sysfs) and a bus scan are performed later when |
562 | * scsi_add_host() is called. | 568 | * scsi_add_host() and scsi_scan_host() are called. |
563 | * | 569 | * |
564 | * Defined in: drivers/scsi/hosts.c . | 570 | * Defined in: drivers/scsi/hosts.c . |
565 | **/ | 571 | **/ |
@@ -699,6 +705,19 @@ void scsi_report_bus_reset(struct Scsi_Host * shost, int channel) | |||
699 | 705 | ||
700 | 706 | ||
701 | /** | 707 | /** |
708 | * scsi_scan_host - scan SCSI bus | ||
709 | * @shost: a pointer to a scsi host instance | ||
710 | * | ||
711 | * Might block: yes | ||
712 | * | ||
713 | * Notes: Should be called after scsi_add_host() | ||
714 | * | ||
715 | * Defined in: drivers/scsi/scsi_scan.c | ||
716 | **/ | ||
717 | void scsi_scan_host(struct Scsi_Host *shost) | ||
718 | |||
719 | |||
720 | /** | ||
702 | * scsi_track_queue_full - track successive QUEUE_FULL events on given | 721 | * scsi_track_queue_full - track successive QUEUE_FULL events on given |
703 | * device to determine if and when there is a need | 722 | * device to determine if and when there is a need |
704 | * to adjust the queue depth on the device. | 723 | * to adjust the queue depth on the device. |
diff --git a/block/ll_rw_blk.c b/block/ll_rw_blk.c index 99c9ca6d5992..d4beb9a89ee0 100644 --- a/block/ll_rw_blk.c +++ b/block/ll_rw_blk.c | |||
@@ -239,7 +239,7 @@ void blk_queue_make_request(request_queue_t * q, make_request_fn * mfn) | |||
239 | q->backing_dev_info.ra_pages = (VM_MAX_READAHEAD * 1024) / PAGE_CACHE_SIZE; | 239 | q->backing_dev_info.ra_pages = (VM_MAX_READAHEAD * 1024) / PAGE_CACHE_SIZE; |
240 | q->backing_dev_info.state = 0; | 240 | q->backing_dev_info.state = 0; |
241 | q->backing_dev_info.capabilities = BDI_CAP_MAP_COPY; | 241 | q->backing_dev_info.capabilities = BDI_CAP_MAP_COPY; |
242 | blk_queue_max_sectors(q, MAX_SECTORS); | 242 | blk_queue_max_sectors(q, SAFE_MAX_SECTORS); |
243 | blk_queue_hardsect_size(q, 512); | 243 | blk_queue_hardsect_size(q, 512); |
244 | blk_queue_dma_alignment(q, 511); | 244 | blk_queue_dma_alignment(q, 511); |
245 | blk_queue_congestion_threshold(q); | 245 | blk_queue_congestion_threshold(q); |
@@ -555,7 +555,12 @@ void blk_queue_max_sectors(request_queue_t *q, unsigned short max_sectors) | |||
555 | printk("%s: set to minimum %d\n", __FUNCTION__, max_sectors); | 555 | printk("%s: set to minimum %d\n", __FUNCTION__, max_sectors); |
556 | } | 556 | } |
557 | 557 | ||
558 | q->max_sectors = q->max_hw_sectors = max_sectors; | 558 | if (BLK_DEF_MAX_SECTORS > max_sectors) |
559 | q->max_hw_sectors = q->max_sectors = max_sectors; | ||
560 | else { | ||
561 | q->max_sectors = BLK_DEF_MAX_SECTORS; | ||
562 | q->max_hw_sectors = max_sectors; | ||
563 | } | ||
559 | } | 564 | } |
560 | 565 | ||
561 | EXPORT_SYMBOL(blk_queue_max_sectors); | 566 | EXPORT_SYMBOL(blk_queue_max_sectors); |
@@ -657,8 +662,8 @@ EXPORT_SYMBOL(blk_queue_hardsect_size); | |||
657 | void blk_queue_stack_limits(request_queue_t *t, request_queue_t *b) | 662 | void blk_queue_stack_limits(request_queue_t *t, request_queue_t *b) |
658 | { | 663 | { |
659 | /* zero is "infinity" */ | 664 | /* zero is "infinity" */ |
660 | t->max_sectors = t->max_hw_sectors = | 665 | t->max_sectors = min_not_zero(t->max_sectors,b->max_sectors); |
661 | min_not_zero(t->max_sectors,b->max_sectors); | 666 | t->max_hw_sectors = min_not_zero(t->max_hw_sectors,b->max_hw_sectors); |
662 | 667 | ||
663 | t->max_phys_segments = min(t->max_phys_segments,b->max_phys_segments); | 668 | t->max_phys_segments = min(t->max_phys_segments,b->max_phys_segments); |
664 | t->max_hw_segments = min(t->max_hw_segments,b->max_hw_segments); | 669 | t->max_hw_segments = min(t->max_hw_segments,b->max_hw_segments); |
@@ -1293,9 +1298,15 @@ static inline int ll_new_hw_segment(request_queue_t *q, | |||
1293 | static int ll_back_merge_fn(request_queue_t *q, struct request *req, | 1298 | static int ll_back_merge_fn(request_queue_t *q, struct request *req, |
1294 | struct bio *bio) | 1299 | struct bio *bio) |
1295 | { | 1300 | { |
1301 | unsigned short max_sectors; | ||
1296 | int len; | 1302 | int len; |
1297 | 1303 | ||
1298 | if (req->nr_sectors + bio_sectors(bio) > q->max_sectors) { | 1304 | if (unlikely(blk_pc_request(req))) |
1305 | max_sectors = q->max_hw_sectors; | ||
1306 | else | ||
1307 | max_sectors = q->max_sectors; | ||
1308 | |||
1309 | if (req->nr_sectors + bio_sectors(bio) > max_sectors) { | ||
1299 | req->flags |= REQ_NOMERGE; | 1310 | req->flags |= REQ_NOMERGE; |
1300 | if (req == q->last_merge) | 1311 | if (req == q->last_merge) |
1301 | q->last_merge = NULL; | 1312 | q->last_merge = NULL; |
@@ -1325,9 +1336,16 @@ static int ll_back_merge_fn(request_queue_t *q, struct request *req, | |||
1325 | static int ll_front_merge_fn(request_queue_t *q, struct request *req, | 1336 | static int ll_front_merge_fn(request_queue_t *q, struct request *req, |
1326 | struct bio *bio) | 1337 | struct bio *bio) |
1327 | { | 1338 | { |
1339 | unsigned short max_sectors; | ||
1328 | int len; | 1340 | int len; |
1329 | 1341 | ||
1330 | if (req->nr_sectors + bio_sectors(bio) > q->max_sectors) { | 1342 | if (unlikely(blk_pc_request(req))) |
1343 | max_sectors = q->max_hw_sectors; | ||
1344 | else | ||
1345 | max_sectors = q->max_sectors; | ||
1346 | |||
1347 | |||
1348 | if (req->nr_sectors + bio_sectors(bio) > max_sectors) { | ||
1331 | req->flags |= REQ_NOMERGE; | 1349 | req->flags |= REQ_NOMERGE; |
1332 | if (req == q->last_merge) | 1350 | if (req == q->last_merge) |
1333 | q->last_merge = NULL; | 1351 | q->last_merge = NULL; |
@@ -2144,7 +2162,7 @@ int blk_rq_map_user(request_queue_t *q, struct request *rq, void __user *ubuf, | |||
2144 | struct bio *bio; | 2162 | struct bio *bio; |
2145 | int reading; | 2163 | int reading; |
2146 | 2164 | ||
2147 | if (len > (q->max_sectors << 9)) | 2165 | if (len > (q->max_hw_sectors << 9)) |
2148 | return -EINVAL; | 2166 | return -EINVAL; |
2149 | if (!len || !ubuf) | 2167 | if (!len || !ubuf) |
2150 | return -EINVAL; | 2168 | return -EINVAL; |
@@ -2259,7 +2277,7 @@ int blk_rq_map_kern(request_queue_t *q, struct request *rq, void *kbuf, | |||
2259 | { | 2277 | { |
2260 | struct bio *bio; | 2278 | struct bio *bio; |
2261 | 2279 | ||
2262 | if (len > (q->max_sectors << 9)) | 2280 | if (len > (q->max_hw_sectors << 9)) |
2263 | return -EINVAL; | 2281 | return -EINVAL; |
2264 | if (!len || !kbuf) | 2282 | if (!len || !kbuf) |
2265 | return -EINVAL; | 2283 | return -EINVAL; |
@@ -2306,6 +2324,8 @@ void blk_execute_rq_nowait(request_queue_t *q, struct gendisk *bd_disk, | |||
2306 | generic_unplug_device(q); | 2324 | generic_unplug_device(q); |
2307 | } | 2325 | } |
2308 | 2326 | ||
2327 | EXPORT_SYMBOL_GPL(blk_execute_rq_nowait); | ||
2328 | |||
2309 | /** | 2329 | /** |
2310 | * blk_execute_rq - insert a request into queue for execution | 2330 | * blk_execute_rq - insert a request into queue for execution |
2311 | * @q: queue to insert the request in | 2331 | * @q: queue to insert the request in |
@@ -2444,7 +2464,7 @@ void disk_round_stats(struct gendisk *disk) | |||
2444 | /* | 2464 | /* |
2445 | * queue lock must be held | 2465 | * queue lock must be held |
2446 | */ | 2466 | */ |
2447 | static void __blk_put_request(request_queue_t *q, struct request *req) | 2467 | void __blk_put_request(request_queue_t *q, struct request *req) |
2448 | { | 2468 | { |
2449 | struct request_list *rl = req->rl; | 2469 | struct request_list *rl = req->rl; |
2450 | 2470 | ||
@@ -2473,6 +2493,8 @@ static void __blk_put_request(request_queue_t *q, struct request *req) | |||
2473 | } | 2493 | } |
2474 | } | 2494 | } |
2475 | 2495 | ||
2496 | EXPORT_SYMBOL_GPL(__blk_put_request); | ||
2497 | |||
2476 | void blk_put_request(struct request *req) | 2498 | void blk_put_request(struct request *req) |
2477 | { | 2499 | { |
2478 | unsigned long flags; | 2500 | unsigned long flags; |
diff --git a/block/scsi_ioctl.c b/block/scsi_ioctl.c index 6e7db2e79f42..1d8852f7bbff 100644 --- a/block/scsi_ioctl.c +++ b/block/scsi_ioctl.c | |||
@@ -233,7 +233,7 @@ static int sg_io(struct file *file, request_queue_t *q, | |||
233 | if (verify_command(file, cmd)) | 233 | if (verify_command(file, cmd)) |
234 | return -EPERM; | 234 | return -EPERM; |
235 | 235 | ||
236 | if (hdr->dxfer_len > (q->max_sectors << 9)) | 236 | if (hdr->dxfer_len > (q->max_hw_sectors << 9)) |
237 | return -EIO; | 237 | return -EIO; |
238 | 238 | ||
239 | if (hdr->dxfer_len) | 239 | if (hdr->dxfer_len) |
diff --git a/drivers/md/dm-table.c b/drivers/md/dm-table.c index a6d3baa46f61..a6f2dc66c3db 100644 --- a/drivers/md/dm-table.c +++ b/drivers/md/dm-table.c | |||
@@ -638,7 +638,7 @@ int dm_split_args(int *argc, char ***argvp, char *input) | |||
638 | static void check_for_valid_limits(struct io_restrictions *rs) | 638 | static void check_for_valid_limits(struct io_restrictions *rs) |
639 | { | 639 | { |
640 | if (!rs->max_sectors) | 640 | if (!rs->max_sectors) |
641 | rs->max_sectors = MAX_SECTORS; | 641 | rs->max_sectors = SAFE_MAX_SECTORS; |
642 | if (!rs->max_phys_segments) | 642 | if (!rs->max_phys_segments) |
643 | rs->max_phys_segments = MAX_PHYS_SEGMENTS; | 643 | rs->max_phys_segments = MAX_PHYS_SEGMENTS; |
644 | if (!rs->max_hw_segments) | 644 | if (!rs->max_hw_segments) |
diff --git a/drivers/message/fusion/mptbase.c b/drivers/message/fusion/mptbase.c index 4262a22adc22..537836068c49 100644 --- a/drivers/message/fusion/mptbase.c +++ b/drivers/message/fusion/mptbase.c | |||
@@ -313,13 +313,13 @@ mpt_reply(MPT_ADAPTER *ioc, u32 pa) | |||
313 | u32 log_info = le32_to_cpu(mr->u.reply.IOCLogInfo); | 313 | u32 log_info = le32_to_cpu(mr->u.reply.IOCLogInfo); |
314 | if (ioc->bus_type == FC) | 314 | if (ioc->bus_type == FC) |
315 | mpt_fc_log_info(ioc, log_info); | 315 | mpt_fc_log_info(ioc, log_info); |
316 | else if (ioc->bus_type == SCSI) | 316 | else if (ioc->bus_type == SPI) |
317 | mpt_sp_log_info(ioc, log_info); | 317 | mpt_sp_log_info(ioc, log_info); |
318 | else if (ioc->bus_type == SAS) | 318 | else if (ioc->bus_type == SAS) |
319 | mpt_sas_log_info(ioc, log_info); | 319 | mpt_sas_log_info(ioc, log_info); |
320 | } | 320 | } |
321 | if (ioc_stat & MPI_IOCSTATUS_MASK) { | 321 | if (ioc_stat & MPI_IOCSTATUS_MASK) { |
322 | if (ioc->bus_type == SCSI && | 322 | if (ioc->bus_type == SPI && |
323 | cb_idx != mpt_stm_index && | 323 | cb_idx != mpt_stm_index && |
324 | cb_idx != mpt_lan_index) | 324 | cb_idx != mpt_lan_index) |
325 | mpt_sp_ioc_info(ioc, (u32)ioc_stat, mf); | 325 | mpt_sp_ioc_info(ioc, (u32)ioc_stat, mf); |
@@ -1376,7 +1376,7 @@ mpt_attach(struct pci_dev *pdev, const struct pci_device_id *id) | |||
1376 | } | 1376 | } |
1377 | else if (pdev->device == MPI_MANUFACTPAGE_DEVID_53C1030) { | 1377 | else if (pdev->device == MPI_MANUFACTPAGE_DEVID_53C1030) { |
1378 | ioc->prod_name = "LSI53C1030"; | 1378 | ioc->prod_name = "LSI53C1030"; |
1379 | ioc->bus_type = SCSI; | 1379 | ioc->bus_type = SPI; |
1380 | /* 1030 Chip Fix. Disable Split transactions | 1380 | /* 1030 Chip Fix. Disable Split transactions |
1381 | * for PCIX. Set MOST bits to zero if Rev < C0( = 8). | 1381 | * for PCIX. Set MOST bits to zero if Rev < C0( = 8). |
1382 | */ | 1382 | */ |
@@ -1389,7 +1389,7 @@ mpt_attach(struct pci_dev *pdev, const struct pci_device_id *id) | |||
1389 | } | 1389 | } |
1390 | else if (pdev->device == MPI_MANUFACTPAGE_DEVID_1030_53C1035) { | 1390 | else if (pdev->device == MPI_MANUFACTPAGE_DEVID_1030_53C1035) { |
1391 | ioc->prod_name = "LSI53C1035"; | 1391 | ioc->prod_name = "LSI53C1035"; |
1392 | ioc->bus_type = SCSI; | 1392 | ioc->bus_type = SPI; |
1393 | } | 1393 | } |
1394 | else if (pdev->device == MPI_MANUFACTPAGE_DEVID_SAS1064) { | 1394 | else if (pdev->device == MPI_MANUFACTPAGE_DEVID_SAS1064) { |
1395 | ioc->prod_name = "LSISAS1064"; | 1395 | ioc->prod_name = "LSISAS1064"; |
@@ -3042,7 +3042,7 @@ mpt_downloadboot(MPT_ADAPTER *ioc, MpiFwHeader_t *pFwHeader, int sleepFlag) | |||
3042 | /* Clear the internal flash bad bit - autoincrementing register, | 3042 | /* Clear the internal flash bad bit - autoincrementing register, |
3043 | * so must do two writes. | 3043 | * so must do two writes. |
3044 | */ | 3044 | */ |
3045 | if (ioc->bus_type == SCSI) { | 3045 | if (ioc->bus_type == SPI) { |
3046 | /* | 3046 | /* |
3047 | * 1030 and 1035 H/W errata, workaround to access | 3047 | * 1030 and 1035 H/W errata, workaround to access |
3048 | * the ClearFlashBadSignatureBit | 3048 | * the ClearFlashBadSignatureBit |
@@ -3152,7 +3152,7 @@ KickStart(MPT_ADAPTER *ioc, int force, int sleepFlag) | |||
3152 | int cnt,cntdn; | 3152 | int cnt,cntdn; |
3153 | 3153 | ||
3154 | dinitprintk((KERN_WARNING MYNAM ": KickStarting %s!\n", ioc->name)); | 3154 | dinitprintk((KERN_WARNING MYNAM ": KickStarting %s!\n", ioc->name)); |
3155 | if (ioc->bus_type == SCSI) { | 3155 | if (ioc->bus_type == SPI) { |
3156 | /* Always issue a Msg Unit Reset first. This will clear some | 3156 | /* Always issue a Msg Unit Reset first. This will clear some |
3157 | * SCSI bus hang conditions. | 3157 | * SCSI bus hang conditions. |
3158 | */ | 3158 | */ |
@@ -3580,7 +3580,7 @@ initChainBuffers(MPT_ADAPTER *ioc) | |||
3580 | dinitprintk((KERN_INFO MYNAM ": %s Now numSGE=%d num_sge=%d num_chain=%d\n", | 3580 | dinitprintk((KERN_INFO MYNAM ": %s Now numSGE=%d num_sge=%d num_chain=%d\n", |
3581 | ioc->name, numSGE, num_sge, num_chain)); | 3581 | ioc->name, numSGE, num_sge, num_chain)); |
3582 | 3582 | ||
3583 | if (ioc->bus_type == SCSI) | 3583 | if (ioc->bus_type == SPI) |
3584 | num_chain *= MPT_SCSI_CAN_QUEUE; | 3584 | num_chain *= MPT_SCSI_CAN_QUEUE; |
3585 | else | 3585 | else |
3586 | num_chain *= MPT_FC_CAN_QUEUE; | 3586 | num_chain *= MPT_FC_CAN_QUEUE; |
diff --git a/drivers/message/fusion/mptbase.h b/drivers/message/fusion/mptbase.h index bac8eb4186d2..6c48d1f54ac9 100644 --- a/drivers/message/fusion/mptbase.h +++ b/drivers/message/fusion/mptbase.h | |||
@@ -76,8 +76,8 @@ | |||
76 | #define COPYRIGHT "Copyright (c) 1999-2005 " MODULEAUTHOR | 76 | #define COPYRIGHT "Copyright (c) 1999-2005 " MODULEAUTHOR |
77 | #endif | 77 | #endif |
78 | 78 | ||
79 | #define MPT_LINUX_VERSION_COMMON "3.03.04" | 79 | #define MPT_LINUX_VERSION_COMMON "3.03.05" |
80 | #define MPT_LINUX_PACKAGE_NAME "@(#)mptlinux-3.03.04" | 80 | #define MPT_LINUX_PACKAGE_NAME "@(#)mptlinux-3.03.05" |
81 | #define WHAT_MAGIC_STRING "@" "(" "#" ")" | 81 | #define WHAT_MAGIC_STRING "@" "(" "#" ")" |
82 | 82 | ||
83 | #define show_mptmod_ver(s,ver) \ | 83 | #define show_mptmod_ver(s,ver) \ |
@@ -321,7 +321,7 @@ typedef struct _SYSIF_REGS | |||
321 | * Dynamic Multi-Pathing specific stuff... | 321 | * Dynamic Multi-Pathing specific stuff... |
322 | */ | 322 | */ |
323 | 323 | ||
324 | /* VirtDevice negoFlags field */ | 324 | /* VirtTarget negoFlags field */ |
325 | #define MPT_TARGET_NO_NEGO_WIDE 0x01 | 325 | #define MPT_TARGET_NO_NEGO_WIDE 0x01 |
326 | #define MPT_TARGET_NO_NEGO_SYNC 0x02 | 326 | #define MPT_TARGET_NO_NEGO_SYNC 0x02 |
327 | #define MPT_TARGET_NO_NEGO_QAS 0x04 | 327 | #define MPT_TARGET_NO_NEGO_QAS 0x04 |
@@ -330,8 +330,7 @@ typedef struct _SYSIF_REGS | |||
330 | /* | 330 | /* |
331 | * VirtDevice - FC LUN device or SCSI target device | 331 | * VirtDevice - FC LUN device or SCSI target device |
332 | */ | 332 | */ |
333 | typedef struct _VirtDevice { | 333 | typedef struct _VirtTarget { |
334 | struct scsi_device *device; | ||
335 | u8 tflags; | 334 | u8 tflags; |
336 | u8 ioc_id; | 335 | u8 ioc_id; |
337 | u8 target_id; | 336 | u8 target_id; |
@@ -342,21 +341,18 @@ typedef struct _VirtDevice { | |||
342 | u8 negoFlags; /* bit field, see above */ | 341 | u8 negoFlags; /* bit field, see above */ |
343 | u8 raidVolume; /* set, if RAID Volume */ | 342 | u8 raidVolume; /* set, if RAID Volume */ |
344 | u8 type; /* byte 0 of Inquiry data */ | 343 | u8 type; /* byte 0 of Inquiry data */ |
345 | u8 cflags; /* controller flags */ | ||
346 | u8 rsvd1raid; | ||
347 | u16 fc_phys_lun; | ||
348 | u16 fc_xlat_lun; | ||
349 | u32 num_luns; | 344 | u32 num_luns; |
350 | u32 luns[8]; /* Max LUNs is 256 */ | 345 | u32 luns[8]; /* Max LUNs is 256 */ |
351 | u8 pad[4]; | ||
352 | u8 inq_data[8]; | 346 | u8 inq_data[8]; |
353 | /* IEEE Registered Extended Identifier | 347 | } VirtTarget; |
354 | obtained via INQUIRY VPD page 0x83 */ | 348 | |
355 | /* NOTE: Do not separate uniq_prepad and uniq_data | 349 | typedef struct _VirtDevice { |
356 | as they are treateed as a single entity in the code */ | 350 | VirtTarget *vtarget; |
357 | u8 uniq_prepad[8]; | 351 | u8 ioc_id; |
358 | u8 uniq_data[20]; | 352 | u8 bus_id; |
359 | u8 pad2[4]; | 353 | u8 target_id; |
354 | u8 configured_lun; | ||
355 | u32 lun; | ||
360 | } VirtDevice; | 356 | } VirtDevice; |
361 | 357 | ||
362 | /* | 358 | /* |
@@ -903,7 +899,7 @@ typedef struct _MPT_LOCAL_REPLY { | |||
903 | 899 | ||
904 | typedef enum { | 900 | typedef enum { |
905 | FC, | 901 | FC, |
906 | SCSI, | 902 | SPI, |
907 | SAS | 903 | SAS |
908 | } BUS_TYPE; | 904 | } BUS_TYPE; |
909 | 905 | ||
@@ -912,7 +908,7 @@ typedef struct _MPT_SCSI_HOST { | |||
912 | int port; | 908 | int port; |
913 | u32 pad0; | 909 | u32 pad0; |
914 | struct scsi_cmnd **ScsiLookup; | 910 | struct scsi_cmnd **ScsiLookup; |
915 | VirtDevice **Targets; | 911 | VirtTarget **Targets; |
916 | MPT_LOCAL_REPLY *pLocal; /* used for internal commands */ | 912 | MPT_LOCAL_REPLY *pLocal; /* used for internal commands */ |
917 | struct timer_list timer; | 913 | struct timer_list timer; |
918 | /* Pool of memory for holding SCpnts before doing | 914 | /* Pool of memory for holding SCpnts before doing |
diff --git a/drivers/message/fusion/mptctl.c b/drivers/message/fusion/mptctl.c index 602138f8544d..959d2c5951b8 100644 --- a/drivers/message/fusion/mptctl.c +++ b/drivers/message/fusion/mptctl.c | |||
@@ -1245,7 +1245,7 @@ mptctl_gettargetinfo (unsigned long arg) | |||
1245 | MPT_ADAPTER *ioc; | 1245 | MPT_ADAPTER *ioc; |
1246 | struct Scsi_Host *sh; | 1246 | struct Scsi_Host *sh; |
1247 | MPT_SCSI_HOST *hd; | 1247 | MPT_SCSI_HOST *hd; |
1248 | VirtDevice *vdev; | 1248 | VirtTarget *vdev; |
1249 | char *pmem; | 1249 | char *pmem; |
1250 | int *pdata; | 1250 | int *pdata; |
1251 | IOCPage2_t *pIoc2; | 1251 | IOCPage2_t *pIoc2; |
@@ -1822,7 +1822,7 @@ mptctl_do_mpt_command (struct mpt_ioctl_command karg, void __user *mfPtr) | |||
1822 | case MPI_FUNCTION_SCSI_IO_REQUEST: | 1822 | case MPI_FUNCTION_SCSI_IO_REQUEST: |
1823 | if (ioc->sh) { | 1823 | if (ioc->sh) { |
1824 | SCSIIORequest_t *pScsiReq = (SCSIIORequest_t *) mf; | 1824 | SCSIIORequest_t *pScsiReq = (SCSIIORequest_t *) mf; |
1825 | VirtDevice *pTarget = NULL; | 1825 | VirtTarget *pTarget = NULL; |
1826 | MPT_SCSI_HOST *hd = NULL; | 1826 | MPT_SCSI_HOST *hd = NULL; |
1827 | int qtag = MPI_SCSIIO_CONTROL_UNTAGGED; | 1827 | int qtag = MPI_SCSIIO_CONTROL_UNTAGGED; |
1828 | int scsidir = 0; | 1828 | int scsidir = 0; |
diff --git a/drivers/message/fusion/mptfc.c b/drivers/message/fusion/mptfc.c index a628be9bbbad..ba61e1828858 100644 --- a/drivers/message/fusion/mptfc.c +++ b/drivers/message/fusion/mptfc.c | |||
@@ -84,13 +84,16 @@ static int mptfcTaskCtx = -1; | |||
84 | static int mptfcInternalCtx = -1; /* Used only for internal commands */ | 84 | static int mptfcInternalCtx = -1; /* Used only for internal commands */ |
85 | 85 | ||
86 | static struct scsi_host_template mptfc_driver_template = { | 86 | static struct scsi_host_template mptfc_driver_template = { |
87 | .module = THIS_MODULE, | ||
87 | .proc_name = "mptfc", | 88 | .proc_name = "mptfc", |
88 | .proc_info = mptscsih_proc_info, | 89 | .proc_info = mptscsih_proc_info, |
89 | .name = "MPT FC Host", | 90 | .name = "MPT FC Host", |
90 | .info = mptscsih_info, | 91 | .info = mptscsih_info, |
91 | .queuecommand = mptscsih_qcmd, | 92 | .queuecommand = mptscsih_qcmd, |
93 | .target_alloc = mptscsih_target_alloc, | ||
92 | .slave_alloc = mptscsih_slave_alloc, | 94 | .slave_alloc = mptscsih_slave_alloc, |
93 | .slave_configure = mptscsih_slave_configure, | 95 | .slave_configure = mptscsih_slave_configure, |
96 | .target_destroy = mptscsih_target_destroy, | ||
94 | .slave_destroy = mptscsih_slave_destroy, | 97 | .slave_destroy = mptscsih_slave_destroy, |
95 | .change_queue_depth = mptscsih_change_queue_depth, | 98 | .change_queue_depth = mptscsih_change_queue_depth, |
96 | .eh_abort_handler = mptscsih_abort, | 99 | .eh_abort_handler = mptscsih_abort, |
@@ -167,13 +170,15 @@ mptfc_probe(struct pci_dev *pdev, const struct pci_device_id *id) | |||
167 | printk(MYIOC_s_WARN_FMT | 170 | printk(MYIOC_s_WARN_FMT |
168 | "Skipping because it's not operational!\n", | 171 | "Skipping because it's not operational!\n", |
169 | ioc->name); | 172 | ioc->name); |
170 | return -ENODEV; | 173 | error = -ENODEV; |
174 | goto out_mptfc_probe; | ||
171 | } | 175 | } |
172 | 176 | ||
173 | if (!ioc->active) { | 177 | if (!ioc->active) { |
174 | printk(MYIOC_s_WARN_FMT "Skipping because it's disabled!\n", | 178 | printk(MYIOC_s_WARN_FMT "Skipping because it's disabled!\n", |
175 | ioc->name); | 179 | ioc->name); |
176 | return -ENODEV; | 180 | error = -ENODEV; |
181 | goto out_mptfc_probe; | ||
177 | } | 182 | } |
178 | 183 | ||
179 | /* Sanity check - ensure at least 1 port is INITIATOR capable | 184 | /* Sanity check - ensure at least 1 port is INITIATOR capable |
@@ -198,7 +203,8 @@ mptfc_probe(struct pci_dev *pdev, const struct pci_device_id *id) | |||
198 | printk(MYIOC_s_WARN_FMT | 203 | printk(MYIOC_s_WARN_FMT |
199 | "Unable to register controller with SCSI subsystem\n", | 204 | "Unable to register controller with SCSI subsystem\n", |
200 | ioc->name); | 205 | ioc->name); |
201 | return -1; | 206 | error = -1; |
207 | goto out_mptfc_probe; | ||
202 | } | 208 | } |
203 | 209 | ||
204 | spin_lock_irqsave(&ioc->FreeQlock, flags); | 210 | spin_lock_irqsave(&ioc->FreeQlock, flags); |
@@ -266,7 +272,7 @@ mptfc_probe(struct pci_dev *pdev, const struct pci_device_id *id) | |||
266 | mem = kmalloc(sz, GFP_ATOMIC); | 272 | mem = kmalloc(sz, GFP_ATOMIC); |
267 | if (mem == NULL) { | 273 | if (mem == NULL) { |
268 | error = -ENOMEM; | 274 | error = -ENOMEM; |
269 | goto mptfc_probe_failed; | 275 | goto out_mptfc_probe; |
270 | } | 276 | } |
271 | 277 | ||
272 | memset(mem, 0, sz); | 278 | memset(mem, 0, sz); |
@@ -284,14 +290,14 @@ mptfc_probe(struct pci_dev *pdev, const struct pci_device_id *id) | |||
284 | mem = kmalloc(sz, GFP_ATOMIC); | 290 | mem = kmalloc(sz, GFP_ATOMIC); |
285 | if (mem == NULL) { | 291 | if (mem == NULL) { |
286 | error = -ENOMEM; | 292 | error = -ENOMEM; |
287 | goto mptfc_probe_failed; | 293 | goto out_mptfc_probe; |
288 | } | 294 | } |
289 | 295 | ||
290 | memset(mem, 0, sz); | 296 | memset(mem, 0, sz); |
291 | hd->Targets = (VirtDevice **) mem; | 297 | hd->Targets = (VirtTarget **) mem; |
292 | 298 | ||
293 | dprintk((KERN_INFO | 299 | dprintk((KERN_INFO |
294 | " Targets @ %p, sz=%d\n", hd->Targets, sz)); | 300 | " vdev @ %p, sz=%d\n", hd->Targets, sz)); |
295 | 301 | ||
296 | /* Clear the TM flags | 302 | /* Clear the TM flags |
297 | */ | 303 | */ |
@@ -330,13 +336,13 @@ mptfc_probe(struct pci_dev *pdev, const struct pci_device_id *id) | |||
330 | if(error) { | 336 | if(error) { |
331 | dprintk((KERN_ERR MYNAM | 337 | dprintk((KERN_ERR MYNAM |
332 | "scsi_add_host failed\n")); | 338 | "scsi_add_host failed\n")); |
333 | goto mptfc_probe_failed; | 339 | goto out_mptfc_probe; |
334 | } | 340 | } |
335 | 341 | ||
336 | scsi_scan_host(sh); | 342 | scsi_scan_host(sh); |
337 | return 0; | 343 | return 0; |
338 | 344 | ||
339 | mptfc_probe_failed: | 345 | out_mptfc_probe: |
340 | 346 | ||
341 | mptscsih_remove(pdev); | 347 | mptscsih_remove(pdev); |
342 | return error; | 348 | return error; |
diff --git a/drivers/message/fusion/mptsas.c b/drivers/message/fusion/mptsas.c index e0a8bb8ba7d8..17e9757e728b 100644 --- a/drivers/message/fusion/mptsas.c +++ b/drivers/message/fusion/mptsas.c | |||
@@ -228,31 +228,35 @@ static void mptsas_print_expander_pg1(SasExpanderPage1_t *pg1) | |||
228 | * implement ->target_alloc. | 228 | * implement ->target_alloc. |
229 | */ | 229 | */ |
230 | static int | 230 | static int |
231 | mptsas_slave_alloc(struct scsi_device *device) | 231 | mptsas_slave_alloc(struct scsi_device *sdev) |
232 | { | 232 | { |
233 | struct Scsi_Host *host = device->host; | 233 | struct Scsi_Host *host = sdev->host; |
234 | MPT_SCSI_HOST *hd = (MPT_SCSI_HOST *)host->hostdata; | 234 | MPT_SCSI_HOST *hd = (MPT_SCSI_HOST *)host->hostdata; |
235 | struct sas_rphy *rphy; | 235 | struct sas_rphy *rphy; |
236 | struct mptsas_portinfo *p; | 236 | struct mptsas_portinfo *p; |
237 | VirtTarget *vtarget; | ||
237 | VirtDevice *vdev; | 238 | VirtDevice *vdev; |
238 | uint target = device->id; | 239 | struct scsi_target *starget; |
239 | int i; | 240 | int i; |
240 | 241 | ||
241 | if ((vdev = hd->Targets[target]) != NULL) | ||
242 | goto out; | ||
243 | |||
244 | vdev = kmalloc(sizeof(VirtDevice), GFP_KERNEL); | 242 | vdev = kmalloc(sizeof(VirtDevice), GFP_KERNEL); |
245 | if (!vdev) { | 243 | if (!vdev) { |
246 | printk(MYIOC_s_ERR_FMT "slave_alloc kmalloc(%zd) FAILED!\n", | 244 | printk(MYIOC_s_ERR_FMT "slave_alloc kmalloc(%zd) FAILED!\n", |
247 | hd->ioc->name, sizeof(VirtDevice)); | 245 | hd->ioc->name, sizeof(VirtDevice)); |
248 | return -ENOMEM; | 246 | return -ENOMEM; |
249 | } | 247 | } |
250 | |||
251 | memset(vdev, 0, sizeof(VirtDevice)); | 248 | memset(vdev, 0, sizeof(VirtDevice)); |
252 | vdev->tflags = MPT_TARGET_FLAGS_Q_YES|MPT_TARGET_FLAGS_VALID_INQUIRY; | ||
253 | vdev->ioc_id = hd->ioc->id; | 249 | vdev->ioc_id = hd->ioc->id; |
250 | sdev->hostdata = vdev; | ||
251 | starget = scsi_target(sdev); | ||
252 | vtarget = starget->hostdata; | ||
253 | vdev->vtarget = vtarget; | ||
254 | if (vtarget->num_luns == 0) { | ||
255 | vtarget->tflags = MPT_TARGET_FLAGS_Q_YES|MPT_TARGET_FLAGS_VALID_INQUIRY; | ||
256 | hd->Targets[sdev->id] = vtarget; | ||
257 | } | ||
254 | 258 | ||
255 | rphy = dev_to_rphy(device->sdev_target->dev.parent); | 259 | rphy = dev_to_rphy(sdev->sdev_target->dev.parent); |
256 | list_for_each_entry(p, &hd->ioc->sas_topology, list) { | 260 | list_for_each_entry(p, &hd->ioc->sas_topology, list) { |
257 | for (i = 0; i < p->num_phys; i++) { | 261 | for (i = 0; i < p->num_phys; i++) { |
258 | if (p->phy_info[i].attached.sas_address == | 262 | if (p->phy_info[i].attached.sas_address == |
@@ -260,7 +264,7 @@ mptsas_slave_alloc(struct scsi_device *device) | |||
260 | vdev->target_id = | 264 | vdev->target_id = |
261 | p->phy_info[i].attached.target; | 265 | p->phy_info[i].attached.target; |
262 | vdev->bus_id = p->phy_info[i].attached.bus; | 266 | vdev->bus_id = p->phy_info[i].attached.bus; |
263 | hd->Targets[device->id] = vdev; | 267 | vdev->lun = sdev->lun; |
264 | goto out; | 268 | goto out; |
265 | } | 269 | } |
266 | } | 270 | } |
@@ -271,19 +275,24 @@ mptsas_slave_alloc(struct scsi_device *device) | |||
271 | return -ENODEV; | 275 | return -ENODEV; |
272 | 276 | ||
273 | out: | 277 | out: |
274 | vdev->num_luns++; | 278 | vtarget->ioc_id = vdev->ioc_id; |
275 | device->hostdata = vdev; | 279 | vtarget->target_id = vdev->target_id; |
280 | vtarget->bus_id = vdev->bus_id; | ||
281 | vtarget->num_luns++; | ||
276 | return 0; | 282 | return 0; |
277 | } | 283 | } |
278 | 284 | ||
279 | static struct scsi_host_template mptsas_driver_template = { | 285 | static struct scsi_host_template mptsas_driver_template = { |
286 | .module = THIS_MODULE, | ||
280 | .proc_name = "mptsas", | 287 | .proc_name = "mptsas", |
281 | .proc_info = mptscsih_proc_info, | 288 | .proc_info = mptscsih_proc_info, |
282 | .name = "MPT SPI Host", | 289 | .name = "MPT SPI Host", |
283 | .info = mptscsih_info, | 290 | .info = mptscsih_info, |
284 | .queuecommand = mptscsih_qcmd, | 291 | .queuecommand = mptscsih_qcmd, |
292 | .target_alloc = mptscsih_target_alloc, | ||
285 | .slave_alloc = mptsas_slave_alloc, | 293 | .slave_alloc = mptsas_slave_alloc, |
286 | .slave_configure = mptscsih_slave_configure, | 294 | .slave_configure = mptscsih_slave_configure, |
295 | .target_destroy = mptscsih_target_destroy, | ||
287 | .slave_destroy = mptscsih_slave_destroy, | 296 | .slave_destroy = mptscsih_slave_destroy, |
288 | .change_queue_depth = mptscsih_change_queue_depth, | 297 | .change_queue_depth = mptscsih_change_queue_depth, |
289 | .eh_abort_handler = mptscsih_abort, | 298 | .eh_abort_handler = mptscsih_abort, |
@@ -986,7 +995,6 @@ mptsas_probe_hba_phys(MPT_ADAPTER *ioc, int *index) | |||
986 | goto out_free_port_info; | 995 | goto out_free_port_info; |
987 | 996 | ||
988 | list_add_tail(&port_info->list, &ioc->sas_topology); | 997 | list_add_tail(&port_info->list, &ioc->sas_topology); |
989 | |||
990 | for (i = 0; i < port_info->num_phys; i++) { | 998 | for (i = 0; i < port_info->num_phys; i++) { |
991 | mptsas_sas_phy_pg0(ioc, &port_info->phy_info[i], | 999 | mptsas_sas_phy_pg0(ioc, &port_info->phy_info[i], |
992 | (MPI_SAS_PHY_PGAD_FORM_PHY_NUMBER << | 1000 | (MPI_SAS_PHY_PGAD_FORM_PHY_NUMBER << |
@@ -1133,13 +1141,15 @@ mptsas_probe(struct pci_dev *pdev, const struct pci_device_id *id) | |||
1133 | printk(MYIOC_s_WARN_FMT | 1141 | printk(MYIOC_s_WARN_FMT |
1134 | "Skipping because it's not operational!\n", | 1142 | "Skipping because it's not operational!\n", |
1135 | ioc->name); | 1143 | ioc->name); |
1136 | return -ENODEV; | 1144 | error = -ENODEV; |
1145 | goto out_mptsas_probe; | ||
1137 | } | 1146 | } |
1138 | 1147 | ||
1139 | if (!ioc->active) { | 1148 | if (!ioc->active) { |
1140 | printk(MYIOC_s_WARN_FMT "Skipping because it's disabled!\n", | 1149 | printk(MYIOC_s_WARN_FMT "Skipping because it's disabled!\n", |
1141 | ioc->name); | 1150 | ioc->name); |
1142 | return -ENODEV; | 1151 | error = -ENODEV; |
1152 | goto out_mptsas_probe; | ||
1143 | } | 1153 | } |
1144 | 1154 | ||
1145 | /* Sanity check - ensure at least 1 port is INITIATOR capable | 1155 | /* Sanity check - ensure at least 1 port is INITIATOR capable |
@@ -1163,7 +1173,8 @@ mptsas_probe(struct pci_dev *pdev, const struct pci_device_id *id) | |||
1163 | printk(MYIOC_s_WARN_FMT | 1173 | printk(MYIOC_s_WARN_FMT |
1164 | "Unable to register controller with SCSI subsystem\n", | 1174 | "Unable to register controller with SCSI subsystem\n", |
1165 | ioc->name); | 1175 | ioc->name); |
1166 | return -1; | 1176 | error = -1; |
1177 | goto out_mptsas_probe; | ||
1167 | } | 1178 | } |
1168 | 1179 | ||
1169 | spin_lock_irqsave(&ioc->FreeQlock, flags); | 1180 | spin_lock_irqsave(&ioc->FreeQlock, flags); |
@@ -1237,7 +1248,7 @@ mptsas_probe(struct pci_dev *pdev, const struct pci_device_id *id) | |||
1237 | mem = kmalloc(sz, GFP_ATOMIC); | 1248 | mem = kmalloc(sz, GFP_ATOMIC); |
1238 | if (mem == NULL) { | 1249 | if (mem == NULL) { |
1239 | error = -ENOMEM; | 1250 | error = -ENOMEM; |
1240 | goto mptsas_probe_failed; | 1251 | goto out_mptsas_probe; |
1241 | } | 1252 | } |
1242 | 1253 | ||
1243 | memset(mem, 0, sz); | 1254 | memset(mem, 0, sz); |
@@ -1255,14 +1266,14 @@ mptsas_probe(struct pci_dev *pdev, const struct pci_device_id *id) | |||
1255 | mem = kmalloc(sz, GFP_ATOMIC); | 1266 | mem = kmalloc(sz, GFP_ATOMIC); |
1256 | if (mem == NULL) { | 1267 | if (mem == NULL) { |
1257 | error = -ENOMEM; | 1268 | error = -ENOMEM; |
1258 | goto mptsas_probe_failed; | 1269 | goto out_mptsas_probe; |
1259 | } | 1270 | } |
1260 | 1271 | ||
1261 | memset(mem, 0, sz); | 1272 | memset(mem, 0, sz); |
1262 | hd->Targets = (VirtDevice **) mem; | 1273 | hd->Targets = (VirtTarget **) mem; |
1263 | 1274 | ||
1264 | dprintk((KERN_INFO | 1275 | dprintk((KERN_INFO |
1265 | " Targets @ %p, sz=%d\n", hd->Targets, sz)); | 1276 | " vtarget @ %p, sz=%d\n", hd->Targets, sz)); |
1266 | 1277 | ||
1267 | /* Clear the TM flags | 1278 | /* Clear the TM flags |
1268 | */ | 1279 | */ |
@@ -1308,14 +1319,14 @@ mptsas_probe(struct pci_dev *pdev, const struct pci_device_id *id) | |||
1308 | if (error) { | 1319 | if (error) { |
1309 | dprintk((KERN_ERR MYNAM | 1320 | dprintk((KERN_ERR MYNAM |
1310 | "scsi_add_host failed\n")); | 1321 | "scsi_add_host failed\n")); |
1311 | goto mptsas_probe_failed; | 1322 | goto out_mptsas_probe; |
1312 | } | 1323 | } |
1313 | 1324 | ||
1314 | mptsas_scan_sas_topology(ioc); | 1325 | mptsas_scan_sas_topology(ioc); |
1315 | 1326 | ||
1316 | return 0; | 1327 | return 0; |
1317 | 1328 | ||
1318 | mptsas_probe_failed: | 1329 | out_mptsas_probe: |
1319 | 1330 | ||
1320 | mptscsih_remove(pdev); | 1331 | mptscsih_remove(pdev); |
1321 | return error; | 1332 | return error; |
diff --git a/drivers/message/fusion/mptscsih.c b/drivers/message/fusion/mptscsih.c index b7b9846ff3fd..93a16fa3c4ba 100644 --- a/drivers/message/fusion/mptscsih.c +++ b/drivers/message/fusion/mptscsih.c | |||
@@ -150,28 +150,29 @@ static int mptscsih_IssueTaskMgmt(MPT_SCSI_HOST *hd, u8 type, u8 channel, u8 tar | |||
150 | int mptscsih_ioc_reset(MPT_ADAPTER *ioc, int post_reset); | 150 | int mptscsih_ioc_reset(MPT_ADAPTER *ioc, int post_reset); |
151 | int mptscsih_event_process(MPT_ADAPTER *ioc, EventNotificationReply_t *pEvReply); | 151 | int mptscsih_event_process(MPT_ADAPTER *ioc, EventNotificationReply_t *pEvReply); |
152 | 152 | ||
153 | static void mptscsih_initTarget(MPT_SCSI_HOST *hd, int bus_id, int target_id, u8 lun, char *data, int dlen); | 153 | static void mptscsih_initTarget(MPT_SCSI_HOST *hd, VirtTarget *vtarget, u8 lun, char *data, int dlen); |
154 | static void mptscsih_setTargetNegoParms(MPT_SCSI_HOST *hd, VirtDevice *target, char byte56); | 154 | static void mptscsih_setTargetNegoParms(MPT_SCSI_HOST *hd, VirtTarget *vtarget, char byte56); |
155 | static void mptscsih_set_dvflags(MPT_SCSI_HOST *hd, SCSIIORequest_t *pReq); | ||
156 | static void mptscsih_setDevicePage1Flags (u8 width, u8 factor, u8 offset, int *requestedPtr, int *configurationPtr, u8 flags); | 155 | static void mptscsih_setDevicePage1Flags (u8 width, u8 factor, u8 offset, int *requestedPtr, int *configurationPtr, u8 flags); |
157 | static void mptscsih_no_negotiate(MPT_SCSI_HOST *hd, int target_id); | 156 | static void mptscsih_no_negotiate(MPT_SCSI_HOST *hd, struct scsi_cmnd *sc); |
158 | static int mptscsih_writeSDP1(MPT_SCSI_HOST *hd, int portnum, int target, int flags); | 157 | static int mptscsih_writeSDP1(MPT_SCSI_HOST *hd, int portnum, int target, int flags); |
159 | static int mptscsih_writeIOCPage4(MPT_SCSI_HOST *hd, int target_id, int bus); | 158 | static int mptscsih_writeIOCPage4(MPT_SCSI_HOST *hd, int target_id, int bus); |
160 | int mptscsih_scandv_complete(MPT_ADAPTER *ioc, MPT_FRAME_HDR *mf, MPT_FRAME_HDR *r); | 159 | int mptscsih_scandv_complete(MPT_ADAPTER *ioc, MPT_FRAME_HDR *mf, MPT_FRAME_HDR *r); |
161 | static int mptscsih_do_cmd(MPT_SCSI_HOST *hd, INTERNAL_CMD *iocmd); | 160 | static int mptscsih_do_cmd(MPT_SCSI_HOST *hd, INTERNAL_CMD *iocmd); |
162 | static int mptscsih_synchronize_cache(MPT_SCSI_HOST *hd, int portnum); | 161 | static void mptscsih_synchronize_cache(MPT_SCSI_HOST *hd, VirtDevice *vdevice); |
162 | static void mptscsih_negotiate_to_asyn_narrow(MPT_SCSI_HOST *hd, VirtTarget *vtarget); | ||
163 | static int mptscsih_is_phys_disk(MPT_ADAPTER *ioc, int id); | ||
163 | 164 | ||
164 | static struct work_struct mptscsih_persistTask; | 165 | static struct work_struct mptscsih_persistTask; |
165 | 166 | ||
166 | #ifdef MPTSCSIH_ENABLE_DOMAIN_VALIDATION | 167 | #ifdef MPTSCSIH_ENABLE_DOMAIN_VALIDATION |
167 | static int mptscsih_do_raid(MPT_SCSI_HOST *hd, u8 action, INTERNAL_CMD *io); | 168 | static int mptscsih_do_raid(MPT_SCSI_HOST *hd, u8 action, INTERNAL_CMD *io); |
168 | static void mptscsih_domainValidation(void *hd); | 169 | static void mptscsih_domainValidation(void *hd); |
169 | static int mptscsih_is_phys_disk(MPT_ADAPTER *ioc, int id); | ||
170 | static void mptscsih_qas_check(MPT_SCSI_HOST *hd, int id); | 170 | static void mptscsih_qas_check(MPT_SCSI_HOST *hd, int id); |
171 | static int mptscsih_doDv(MPT_SCSI_HOST *hd, int channel, int target); | 171 | static int mptscsih_doDv(MPT_SCSI_HOST *hd, int channel, int target); |
172 | static void mptscsih_dv_parms(MPT_SCSI_HOST *hd, DVPARAMETERS *dv,void *pPage); | 172 | static void mptscsih_dv_parms(MPT_SCSI_HOST *hd, DVPARAMETERS *dv,void *pPage); |
173 | static void mptscsih_fillbuf(char *buffer, int size, int index, int width); | 173 | static void mptscsih_fillbuf(char *buffer, int size, int index, int width); |
174 | static void mptscsih_set_dvflags_raid(MPT_SCSI_HOST *hd, int id); | 174 | static void mptscsih_set_dvflags_raid(MPT_SCSI_HOST *hd, int id); |
175 | static void mptscsih_set_dvflags(MPT_SCSI_HOST *hd, struct scsi_cmnd *sc); | ||
175 | #endif | 176 | #endif |
176 | 177 | ||
177 | void mptscsih_remove(struct pci_dev *); | 178 | void mptscsih_remove(struct pci_dev *); |
@@ -627,7 +628,7 @@ mptscsih_io_done(MPT_ADAPTER *ioc, MPT_FRAME_HDR *mf, MPT_FRAME_HDR *mr) | |||
627 | dreplyprintk((KERN_NOTICE "Reply ha=%d id=%d lun=%d:\n" | 628 | dreplyprintk((KERN_NOTICE "Reply ha=%d id=%d lun=%d:\n" |
628 | "IOCStatus=%04xh SCSIState=%02xh SCSIStatus=%02xh\n" | 629 | "IOCStatus=%04xh SCSIState=%02xh SCSIStatus=%02xh\n" |
629 | "resid=%d bufflen=%d xfer_cnt=%d\n", | 630 | "resid=%d bufflen=%d xfer_cnt=%d\n", |
630 | ioc->id, pScsiReq->TargetID, pScsiReq->LUN[1], | 631 | ioc->id, sc->device->id, sc->device->lun, |
631 | status, scsi_state, scsi_status, sc->resid, | 632 | status, scsi_state, scsi_status, sc->resid, |
632 | sc->request_bufflen, xfer_cnt)); | 633 | sc->request_bufflen, xfer_cnt)); |
633 | 634 | ||
@@ -641,7 +642,7 @@ mptscsih_io_done(MPT_ADAPTER *ioc, MPT_FRAME_HDR *mf, MPT_FRAME_HDR *mr) | |||
641 | pScsiReply->ResponseInfo) { | 642 | pScsiReply->ResponseInfo) { |
642 | printk(KERN_NOTICE "ha=%d id=%d lun=%d: " | 643 | printk(KERN_NOTICE "ha=%d id=%d lun=%d: " |
643 | "FCP_ResponseInfo=%08xh\n", | 644 | "FCP_ResponseInfo=%08xh\n", |
644 | ioc->id, pScsiReq->TargetID, pScsiReq->LUN[1], | 645 | ioc->id, sc->device->id, sc->device->lun, |
645 | le32_to_cpu(pScsiReply->ResponseInfo)); | 646 | le32_to_cpu(pScsiReply->ResponseInfo)); |
646 | } | 647 | } |
647 | 648 | ||
@@ -677,8 +678,8 @@ mptscsih_io_done(MPT_ADAPTER *ioc, MPT_FRAME_HDR *mf, MPT_FRAME_HDR *mr) | |||
677 | sc->result = DID_RESET << 16; | 678 | sc->result = DID_RESET << 16; |
678 | 679 | ||
679 | /* GEM Workaround. */ | 680 | /* GEM Workaround. */ |
680 | if (ioc->bus_type == SCSI) | 681 | if (ioc->bus_type == SPI) |
681 | mptscsih_no_negotiate(hd, sc->device->id); | 682 | mptscsih_no_negotiate(hd, sc); |
682 | break; | 683 | break; |
683 | 684 | ||
684 | case MPI_IOCSTATUS_SCSI_RESIDUAL_MISMATCH: /* 0x0049 */ | 685 | case MPI_IOCSTATUS_SCSI_RESIDUAL_MISMATCH: /* 0x0049 */ |
@@ -892,16 +893,15 @@ mptscsih_flush_running_cmds(MPT_SCSI_HOST *hd) | |||
892 | * when a lun is disable by mid-layer. | 893 | * when a lun is disable by mid-layer. |
893 | * Do NOT access the referenced scsi_cmnd structure or | 894 | * Do NOT access the referenced scsi_cmnd structure or |
894 | * members. Will cause either a paging or NULL ptr error. | 895 | * members. Will cause either a paging or NULL ptr error. |
895 | * @hd: Pointer to a SCSI HOST structure | 896 | * @hd: Pointer to a SCSI HOST structure |
896 | * @target: target id | 897 | * @vdevice: per device private data |
897 | * @lun: lun | ||
898 | * | 898 | * |
899 | * Returns: None. | 899 | * Returns: None. |
900 | * | 900 | * |
901 | * Called from slave_destroy. | 901 | * Called from slave_destroy. |
902 | */ | 902 | */ |
903 | static void | 903 | static void |
904 | mptscsih_search_running_cmds(MPT_SCSI_HOST *hd, uint target, uint lun) | 904 | mptscsih_search_running_cmds(MPT_SCSI_HOST *hd, VirtDevice *vdevice) |
905 | { | 905 | { |
906 | SCSIIORequest_t *mf = NULL; | 906 | SCSIIORequest_t *mf = NULL; |
907 | int ii; | 907 | int ii; |
@@ -909,7 +909,7 @@ mptscsih_search_running_cmds(MPT_SCSI_HOST *hd, uint target, uint lun) | |||
909 | struct scsi_cmnd *sc; | 909 | struct scsi_cmnd *sc; |
910 | 910 | ||
911 | dsprintk((KERN_INFO MYNAM ": search_running target %d lun %d max %d\n", | 911 | dsprintk((KERN_INFO MYNAM ": search_running target %d lun %d max %d\n", |
912 | target, lun, max)); | 912 | vdevice->target_id, vdevice->lun, max)); |
913 | 913 | ||
914 | for (ii=0; ii < max; ii++) { | 914 | for (ii=0; ii < max; ii++) { |
915 | if ((sc = hd->ScsiLookup[ii]) != NULL) { | 915 | if ((sc = hd->ScsiLookup[ii]) != NULL) { |
@@ -919,7 +919,7 @@ mptscsih_search_running_cmds(MPT_SCSI_HOST *hd, uint target, uint lun) | |||
919 | dsprintk(( "search_running: found (sc=%p, mf = %p) target %d, lun %d \n", | 919 | dsprintk(( "search_running: found (sc=%p, mf = %p) target %d, lun %d \n", |
920 | hd->ScsiLookup[ii], mf, mf->TargetID, mf->LUN[1])); | 920 | hd->ScsiLookup[ii], mf, mf->TargetID, mf->LUN[1])); |
921 | 921 | ||
922 | if ((mf->TargetID != ((u8)target)) || (mf->LUN[1] != ((u8) lun))) | 922 | if ((mf->TargetID != ((u8)vdevice->target_id)) || (mf->LUN[1] != ((u8) vdevice->lun))) |
923 | continue; | 923 | continue; |
924 | 924 | ||
925 | /* Cleanup | 925 | /* Cleanup |
@@ -993,8 +993,10 @@ mptscsih_remove(struct pci_dev *pdev) | |||
993 | MPT_ADAPTER *ioc = pci_get_drvdata(pdev); | 993 | MPT_ADAPTER *ioc = pci_get_drvdata(pdev); |
994 | struct Scsi_Host *host = ioc->sh; | 994 | struct Scsi_Host *host = ioc->sh; |
995 | MPT_SCSI_HOST *hd; | 995 | MPT_SCSI_HOST *hd; |
996 | #ifdef MPTSCSIH_ENABLE_DOMAIN_VALIDATION | ||
996 | int count; | 997 | int count; |
997 | unsigned long flags; | 998 | unsigned long flags; |
999 | #endif | ||
998 | int sz1; | 1000 | int sz1; |
999 | 1001 | ||
1000 | if(!host) { | 1002 | if(!host) { |
@@ -1075,11 +1077,6 @@ mptscsih_shutdown(struct pci_dev *pdev) | |||
1075 | 1077 | ||
1076 | hd = (MPT_SCSI_HOST *)host->hostdata; | 1078 | hd = (MPT_SCSI_HOST *)host->hostdata; |
1077 | 1079 | ||
1078 | /* Flush the cache of this adapter | ||
1079 | */ | ||
1080 | if(hd != NULL) | ||
1081 | mptscsih_synchronize_cache(hd, 0); | ||
1082 | |||
1083 | } | 1080 | } |
1084 | 1081 | ||
1085 | #ifdef CONFIG_PM | 1082 | #ifdef CONFIG_PM |
@@ -1286,7 +1283,7 @@ mptscsih_qcmd(struct scsi_cmnd *SCpnt, void (*done)(struct scsi_cmnd *)) | |||
1286 | MPT_SCSI_HOST *hd; | 1283 | MPT_SCSI_HOST *hd; |
1287 | MPT_FRAME_HDR *mf; | 1284 | MPT_FRAME_HDR *mf; |
1288 | SCSIIORequest_t *pScsiReq; | 1285 | SCSIIORequest_t *pScsiReq; |
1289 | VirtDevice *pTarget = SCpnt->device->hostdata; | 1286 | VirtDevice *vdev = SCpnt->device->hostdata; |
1290 | int lun; | 1287 | int lun; |
1291 | u32 datalen; | 1288 | u32 datalen; |
1292 | u32 scsictl; | 1289 | u32 scsictl; |
@@ -1341,8 +1338,8 @@ mptscsih_qcmd(struct scsi_cmnd *SCpnt, void (*done)(struct scsi_cmnd *)) | |||
1341 | /* Default to untagged. Once a target structure has been allocated, | 1338 | /* Default to untagged. Once a target structure has been allocated, |
1342 | * use the Inquiry data to determine if device supports tagged. | 1339 | * use the Inquiry data to determine if device supports tagged. |
1343 | */ | 1340 | */ |
1344 | if (pTarget | 1341 | if (vdev |
1345 | && (pTarget->tflags & MPT_TARGET_FLAGS_Q_YES) | 1342 | && (vdev->vtarget->tflags & MPT_TARGET_FLAGS_Q_YES) |
1346 | && (SCpnt->device->tagged_supported)) { | 1343 | && (SCpnt->device->tagged_supported)) { |
1347 | scsictl = scsidir | MPI_SCSIIO_CONTROL_SIMPLEQ; | 1344 | scsictl = scsidir | MPI_SCSIIO_CONTROL_SIMPLEQ; |
1348 | } else { | 1345 | } else { |
@@ -1351,8 +1348,8 @@ mptscsih_qcmd(struct scsi_cmnd *SCpnt, void (*done)(struct scsi_cmnd *)) | |||
1351 | 1348 | ||
1352 | /* Use the above information to set up the message frame | 1349 | /* Use the above information to set up the message frame |
1353 | */ | 1350 | */ |
1354 | pScsiReq->TargetID = (u8) pTarget->target_id; | 1351 | pScsiReq->TargetID = (u8) vdev->target_id; |
1355 | pScsiReq->Bus = pTarget->bus_id; | 1352 | pScsiReq->Bus = vdev->bus_id; |
1356 | pScsiReq->ChainOffset = 0; | 1353 | pScsiReq->ChainOffset = 0; |
1357 | pScsiReq->Function = MPI_FUNCTION_SCSI_IO_REQUEST; | 1354 | pScsiReq->Function = MPI_FUNCTION_SCSI_IO_REQUEST; |
1358 | pScsiReq->CDBLength = SCpnt->cmd_len; | 1355 | pScsiReq->CDBLength = SCpnt->cmd_len; |
@@ -1403,8 +1400,8 @@ mptscsih_qcmd(struct scsi_cmnd *SCpnt, void (*done)(struct scsi_cmnd *)) | |||
1403 | SCpnt->host_scribble = NULL; | 1400 | SCpnt->host_scribble = NULL; |
1404 | 1401 | ||
1405 | #ifdef MPTSCSIH_ENABLE_DOMAIN_VALIDATION | 1402 | #ifdef MPTSCSIH_ENABLE_DOMAIN_VALIDATION |
1406 | if (hd->ioc->bus_type == SCSI) { | 1403 | if (hd->ioc->bus_type == SPI) { |
1407 | int dvStatus = hd->ioc->spi_data.dvStatus[pTarget->target_id]; | 1404 | int dvStatus = hd->ioc->spi_data.dvStatus[vdev->target_id]; |
1408 | int issueCmd = 1; | 1405 | int issueCmd = 1; |
1409 | 1406 | ||
1410 | if (dvStatus || hd->ioc->spi_data.forceDv) { | 1407 | if (dvStatus || hd->ioc->spi_data.forceDv) { |
@@ -1437,7 +1434,7 @@ mptscsih_qcmd(struct scsi_cmnd *SCpnt, void (*done)(struct scsi_cmnd *)) | |||
1437 | /* Set the DV flags. | 1434 | /* Set the DV flags. |
1438 | */ | 1435 | */ |
1439 | if (dvStatus & MPT_SCSICFG_DV_NOT_DONE) | 1436 | if (dvStatus & MPT_SCSICFG_DV_NOT_DONE) |
1440 | mptscsih_set_dvflags(hd, pScsiReq); | 1437 | mptscsih_set_dvflags(hd, SCpnt); |
1441 | 1438 | ||
1442 | if (!issueCmd) | 1439 | if (!issueCmd) |
1443 | goto fail; | 1440 | goto fail; |
@@ -1741,6 +1738,7 @@ mptscsih_abort(struct scsi_cmnd * SCpnt) | |||
1741 | u32 ctx2abort; | 1738 | u32 ctx2abort; |
1742 | int scpnt_idx; | 1739 | int scpnt_idx; |
1743 | int retval; | 1740 | int retval; |
1741 | VirtDevice *vdev; | ||
1744 | 1742 | ||
1745 | /* If we can't locate our host adapter structure, return FAILED status. | 1743 | /* If we can't locate our host adapter structure, return FAILED status. |
1746 | */ | 1744 | */ |
@@ -1790,8 +1788,9 @@ mptscsih_abort(struct scsi_cmnd * SCpnt) | |||
1790 | 1788 | ||
1791 | hd->abortSCpnt = SCpnt; | 1789 | hd->abortSCpnt = SCpnt; |
1792 | 1790 | ||
1791 | vdev = SCpnt->device->hostdata; | ||
1793 | retval = mptscsih_TMHandler(hd, MPI_SCSITASKMGMT_TASKTYPE_ABORT_TASK, | 1792 | retval = mptscsih_TMHandler(hd, MPI_SCSITASKMGMT_TASKTYPE_ABORT_TASK, |
1794 | SCpnt->device->channel, SCpnt->device->id, SCpnt->device->lun, | 1793 | vdev->bus_id, vdev->target_id, vdev->lun, |
1795 | ctx2abort, 2 /* 2 second timeout */); | 1794 | ctx2abort, 2 /* 2 second timeout */); |
1796 | 1795 | ||
1797 | printk (KERN_WARNING MYNAM ": %s: task abort: %s (sc=%p)\n", | 1796 | printk (KERN_WARNING MYNAM ": %s: task abort: %s (sc=%p)\n", |
@@ -1822,6 +1821,7 @@ mptscsih_dev_reset(struct scsi_cmnd * SCpnt) | |||
1822 | { | 1821 | { |
1823 | MPT_SCSI_HOST *hd; | 1822 | MPT_SCSI_HOST *hd; |
1824 | int retval; | 1823 | int retval; |
1824 | VirtDevice *vdev; | ||
1825 | 1825 | ||
1826 | /* If we can't locate our host adapter structure, return FAILED status. | 1826 | /* If we can't locate our host adapter structure, return FAILED status. |
1827 | */ | 1827 | */ |
@@ -1839,8 +1839,9 @@ mptscsih_dev_reset(struct scsi_cmnd * SCpnt) | |||
1839 | hd->ioc->name, SCpnt); | 1839 | hd->ioc->name, SCpnt); |
1840 | scsi_print_command(SCpnt); | 1840 | scsi_print_command(SCpnt); |
1841 | 1841 | ||
1842 | vdev = SCpnt->device->hostdata; | ||
1842 | retval = mptscsih_TMHandler(hd, MPI_SCSITASKMGMT_TASKTYPE_TARGET_RESET, | 1843 | retval = mptscsih_TMHandler(hd, MPI_SCSITASKMGMT_TASKTYPE_TARGET_RESET, |
1843 | SCpnt->device->channel, SCpnt->device->id, | 1844 | vdev->bus_id, vdev->target_id, |
1844 | 0, 0, 5 /* 5 second timeout */); | 1845 | 0, 0, 5 /* 5 second timeout */); |
1845 | 1846 | ||
1846 | printk (KERN_WARNING MYNAM ": %s: target reset: %s (sc=%p)\n", | 1847 | printk (KERN_WARNING MYNAM ": %s: target reset: %s (sc=%p)\n", |
@@ -1871,6 +1872,7 @@ mptscsih_bus_reset(struct scsi_cmnd * SCpnt) | |||
1871 | { | 1872 | { |
1872 | MPT_SCSI_HOST *hd; | 1873 | MPT_SCSI_HOST *hd; |
1873 | int retval; | 1874 | int retval; |
1875 | VirtDevice *vdev; | ||
1874 | 1876 | ||
1875 | /* If we can't locate our host adapter structure, return FAILED status. | 1877 | /* If we can't locate our host adapter structure, return FAILED status. |
1876 | */ | 1878 | */ |
@@ -1888,8 +1890,9 @@ mptscsih_bus_reset(struct scsi_cmnd * SCpnt) | |||
1888 | if (hd->timeouts < -1) | 1890 | if (hd->timeouts < -1) |
1889 | hd->timeouts++; | 1891 | hd->timeouts++; |
1890 | 1892 | ||
1893 | vdev = SCpnt->device->hostdata; | ||
1891 | retval = mptscsih_TMHandler(hd, MPI_SCSITASKMGMT_TASKTYPE_RESET_BUS, | 1894 | retval = mptscsih_TMHandler(hd, MPI_SCSITASKMGMT_TASKTYPE_RESET_BUS, |
1892 | SCpnt->device->channel, 0, 0, 0, 5 /* 5 second timeout */); | 1895 | vdev->bus_id, 0, 0, 0, 5 /* 5 second timeout */); |
1893 | 1896 | ||
1894 | printk (KERN_WARNING MYNAM ": %s: bus reset: %s (sc=%p)\n", | 1897 | printk (KERN_WARNING MYNAM ": %s: bus reset: %s (sc=%p)\n", |
1895 | hd->ioc->name, | 1898 | hd->ioc->name, |
@@ -2151,23 +2154,36 @@ mptscsih_bios_param(struct scsi_device * sdev, struct block_device *bdev, | |||
2151 | /*=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=*/ | 2154 | /*=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=*/ |
2152 | /* | 2155 | /* |
2153 | * OS entry point to allow host driver to alloc memory | 2156 | * OS entry point to allow host driver to alloc memory |
2157 | * for each scsi target. Called once per device the bus scan. | ||
2158 | * Return non-zero if allocation fails. | ||
2159 | */ | ||
2160 | int | ||
2161 | mptscsih_target_alloc(struct scsi_target *starget) | ||
2162 | { | ||
2163 | VirtTarget *vtarget; | ||
2164 | |||
2165 | vtarget = kmalloc(sizeof(VirtTarget), GFP_KERNEL); | ||
2166 | if (!vtarget) | ||
2167 | return -ENOMEM; | ||
2168 | memset(vtarget, 0, sizeof(VirtTarget)); | ||
2169 | starget->hostdata = vtarget; | ||
2170 | return 0; | ||
2171 | } | ||
2172 | |||
2173 | /*=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=*/ | ||
2174 | /* | ||
2175 | * OS entry point to allow host driver to alloc memory | ||
2154 | * for each scsi device. Called once per device the bus scan. | 2176 | * for each scsi device. Called once per device the bus scan. |
2155 | * Return non-zero if allocation fails. | 2177 | * Return non-zero if allocation fails. |
2156 | * Init memory once per id (not LUN). | ||
2157 | */ | 2178 | */ |
2158 | int | 2179 | int |
2159 | mptscsih_slave_alloc(struct scsi_device *device) | 2180 | mptscsih_slave_alloc(struct scsi_device *sdev) |
2160 | { | 2181 | { |
2161 | struct Scsi_Host *host = device->host; | 2182 | struct Scsi_Host *host = sdev->host; |
2162 | MPT_SCSI_HOST *hd = (MPT_SCSI_HOST *)host->hostdata; | 2183 | MPT_SCSI_HOST *hd = (MPT_SCSI_HOST *)host->hostdata; |
2184 | VirtTarget *vtarget; | ||
2163 | VirtDevice *vdev; | 2185 | VirtDevice *vdev; |
2164 | uint target = device->id; | 2186 | struct scsi_target *starget; |
2165 | |||
2166 | if (hd == NULL) | ||
2167 | return -ENODEV; | ||
2168 | |||
2169 | if ((vdev = hd->Targets[target]) != NULL) | ||
2170 | goto out; | ||
2171 | 2187 | ||
2172 | vdev = kmalloc(sizeof(VirtDevice), GFP_KERNEL); | 2188 | vdev = kmalloc(sizeof(VirtDevice), GFP_KERNEL); |
2173 | if (!vdev) { | 2189 | if (!vdev) { |
@@ -2177,25 +2193,33 @@ mptscsih_slave_alloc(struct scsi_device *device) | |||
2177 | } | 2193 | } |
2178 | 2194 | ||
2179 | memset(vdev, 0, sizeof(VirtDevice)); | 2195 | memset(vdev, 0, sizeof(VirtDevice)); |
2180 | vdev->tflags = MPT_TARGET_FLAGS_Q_YES; | ||
2181 | vdev->ioc_id = hd->ioc->id; | 2196 | vdev->ioc_id = hd->ioc->id; |
2182 | vdev->target_id = device->id; | 2197 | vdev->target_id = sdev->id; |
2183 | vdev->bus_id = device->channel; | 2198 | vdev->bus_id = sdev->channel; |
2184 | vdev->raidVolume = 0; | 2199 | vdev->lun = sdev->lun; |
2185 | hd->Targets[device->id] = vdev; | 2200 | sdev->hostdata = vdev; |
2186 | if (hd->ioc->bus_type == SCSI) { | 2201 | |
2187 | if (hd->ioc->raid_data.isRaid & (1 << device->id)) { | 2202 | starget = scsi_target(sdev); |
2188 | vdev->raidVolume = 1; | 2203 | vtarget = starget->hostdata; |
2189 | ddvtprintk((KERN_INFO | 2204 | vdev->vtarget = vtarget; |
2190 | "RAID Volume @ id %d\n", device->id)); | 2205 | |
2206 | if (vtarget->num_luns == 0) { | ||
2207 | hd->Targets[sdev->id] = vtarget; | ||
2208 | vtarget->ioc_id = hd->ioc->id; | ||
2209 | vtarget->tflags = MPT_TARGET_FLAGS_Q_YES; | ||
2210 | vtarget->target_id = sdev->id; | ||
2211 | vtarget->bus_id = sdev->channel; | ||
2212 | if (hd->ioc->bus_type == SPI) { | ||
2213 | if (hd->ioc->raid_data.isRaid & (1 << sdev->id)) { | ||
2214 | vtarget->raidVolume = 1; | ||
2215 | ddvtprintk((KERN_INFO | ||
2216 | "RAID Volume @ id %d\n", sdev->id)); | ||
2217 | } | ||
2218 | } else { | ||
2219 | vtarget->tflags |= MPT_TARGET_FLAGS_VALID_INQUIRY; | ||
2191 | } | 2220 | } |
2192 | } else { | ||
2193 | vdev->tflags |= MPT_TARGET_FLAGS_VALID_INQUIRY; | ||
2194 | } | 2221 | } |
2195 | 2222 | vtarget->num_luns++; | |
2196 | out: | ||
2197 | vdev->num_luns++; | ||
2198 | device->hostdata = vdev; | ||
2199 | return 0; | 2223 | return 0; |
2200 | } | 2224 | } |
2201 | 2225 | ||
@@ -2204,40 +2228,52 @@ mptscsih_slave_alloc(struct scsi_device *device) | |||
2204 | * Called if no device present or device being unloaded | 2228 | * Called if no device present or device being unloaded |
2205 | */ | 2229 | */ |
2206 | void | 2230 | void |
2207 | mptscsih_slave_destroy(struct scsi_device *device) | 2231 | mptscsih_target_destroy(struct scsi_target *starget) |
2208 | { | 2232 | { |
2209 | struct Scsi_Host *host = device->host; | 2233 | if (starget->hostdata) |
2210 | MPT_SCSI_HOST *hd = (MPT_SCSI_HOST *)host->hostdata; | 2234 | kfree(starget->hostdata); |
2211 | VirtDevice *vdev; | 2235 | starget->hostdata = NULL; |
2212 | uint target = device->id; | 2236 | } |
2213 | uint lun = device->lun; | ||
2214 | |||
2215 | if (hd == NULL) | ||
2216 | return; | ||
2217 | |||
2218 | mptscsih_search_running_cmds(hd, target, lun); | ||
2219 | |||
2220 | vdev = hd->Targets[target]; | ||
2221 | vdev->luns[0] &= ~(1 << lun); | ||
2222 | if (--vdev->num_luns) | ||
2223 | return; | ||
2224 | |||
2225 | kfree(hd->Targets[target]); | ||
2226 | hd->Targets[target] = NULL; | ||
2227 | |||
2228 | if (hd->ioc->bus_type == SCSI) { | ||
2229 | if (mptscsih_is_phys_disk(hd->ioc, target)) { | ||
2230 | hd->ioc->spi_data.forceDv |= MPT_SCSICFG_RELOAD_IOC_PG3; | ||
2231 | } else { | ||
2232 | hd->ioc->spi_data.dvStatus[target] = | ||
2233 | MPT_SCSICFG_NEGOTIATE; | ||
2234 | 2237 | ||
2235 | if (!hd->negoNvram) { | 2238 | /* |
2236 | hd->ioc->spi_data.dvStatus[target] |= | 2239 | * OS entry point to allow for host driver to free allocated memory |
2237 | MPT_SCSICFG_DV_NOT_DONE; | 2240 | * Called if no device present or device being unloaded |
2241 | */ | ||
2242 | void | ||
2243 | mptscsih_slave_destroy(struct scsi_device *sdev) | ||
2244 | { | ||
2245 | struct Scsi_Host *host = sdev->host; | ||
2246 | MPT_SCSI_HOST *hd = (MPT_SCSI_HOST *)host->hostdata; | ||
2247 | VirtTarget *vtarget; | ||
2248 | VirtDevice *vdevice; | ||
2249 | struct scsi_target *starget; | ||
2250 | |||
2251 | starget = scsi_target(sdev); | ||
2252 | vtarget = starget->hostdata; | ||
2253 | vdevice = sdev->hostdata; | ||
2254 | |||
2255 | mptscsih_search_running_cmds(hd, vdevice); | ||
2256 | vtarget->luns[0] &= ~(1 << vdevice->lun); | ||
2257 | vtarget->num_luns--; | ||
2258 | if (vtarget->num_luns == 0) { | ||
2259 | mptscsih_negotiate_to_asyn_narrow(hd, vtarget); | ||
2260 | if (hd->ioc->bus_type == SPI) { | ||
2261 | if (mptscsih_is_phys_disk(hd->ioc, vtarget->target_id)) { | ||
2262 | hd->ioc->spi_data.forceDv |= MPT_SCSICFG_RELOAD_IOC_PG3; | ||
2263 | } else { | ||
2264 | hd->ioc->spi_data.dvStatus[vtarget->target_id] = | ||
2265 | MPT_SCSICFG_NEGOTIATE; | ||
2266 | if (!hd->negoNvram) { | ||
2267 | hd->ioc->spi_data.dvStatus[vtarget->target_id] |= | ||
2268 | MPT_SCSICFG_DV_NOT_DONE; | ||
2269 | } | ||
2238 | } | 2270 | } |
2239 | } | 2271 | } |
2272 | hd->Targets[sdev->id] = NULL; | ||
2240 | } | 2273 | } |
2274 | mptscsih_synchronize_cache(hd, vdevice); | ||
2275 | kfree(vdevice); | ||
2276 | sdev->hostdata = NULL; | ||
2241 | } | 2277 | } |
2242 | 2278 | ||
2243 | /*=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=*/ | 2279 | /*=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=*/ |
@@ -2251,22 +2287,21 @@ mptscsih_slave_destroy(struct scsi_device *device) | |||
2251 | int | 2287 | int |
2252 | mptscsih_change_queue_depth(struct scsi_device *sdev, int qdepth) | 2288 | mptscsih_change_queue_depth(struct scsi_device *sdev, int qdepth) |
2253 | { | 2289 | { |
2254 | MPT_SCSI_HOST *hd = (MPT_SCSI_HOST *)sdev->host->hostdata; | 2290 | MPT_SCSI_HOST *hd = (MPT_SCSI_HOST *)sdev->host->hostdata; |
2255 | VirtDevice *pTarget; | 2291 | VirtTarget *vtarget; |
2256 | int max_depth; | 2292 | struct scsi_target *starget; |
2257 | int tagged; | 2293 | int max_depth; |
2258 | 2294 | int tagged; | |
2259 | if (hd == NULL) | 2295 | |
2260 | return 0; | 2296 | starget = scsi_target(sdev); |
2261 | if (!(pTarget = hd->Targets[sdev->id])) | 2297 | vtarget = starget->hostdata; |
2262 | return 0; | 2298 | |
2263 | 2299 | if (hd->ioc->bus_type == SPI) { | |
2264 | if (hd->ioc->bus_type == SCSI) { | 2300 | if (vtarget->tflags & MPT_TARGET_FLAGS_VALID_INQUIRY) { |
2265 | if (pTarget->tflags & MPT_TARGET_FLAGS_VALID_INQUIRY) { | 2301 | if (!(vtarget->tflags & MPT_TARGET_FLAGS_Q_YES)) |
2266 | if (!(pTarget->tflags & MPT_TARGET_FLAGS_Q_YES)) | ||
2267 | max_depth = 1; | 2302 | max_depth = 1; |
2268 | else if (((pTarget->inq_data[0] & 0x1f) == 0x00) && | 2303 | else if (((vtarget->inq_data[0] & 0x1f) == 0x00) && |
2269 | (pTarget->minSyncFactor <= MPT_ULTRA160 )) | 2304 | (vtarget->minSyncFactor <= MPT_ULTRA160 )) |
2270 | max_depth = MPT_SCSI_CMD_PER_DEV_HIGH; | 2305 | max_depth = MPT_SCSI_CMD_PER_DEV_HIGH; |
2271 | else | 2306 | else |
2272 | max_depth = MPT_SCSI_CMD_PER_DEV_LOW; | 2307 | max_depth = MPT_SCSI_CMD_PER_DEV_LOW; |
@@ -2295,64 +2330,58 @@ mptscsih_change_queue_depth(struct scsi_device *sdev, int qdepth) | |||
2295 | * Return non-zero if fails. | 2330 | * Return non-zero if fails. |
2296 | */ | 2331 | */ |
2297 | int | 2332 | int |
2298 | mptscsih_slave_configure(struct scsi_device *device) | 2333 | mptscsih_slave_configure(struct scsi_device *sdev) |
2299 | { | 2334 | { |
2300 | struct Scsi_Host *sh = device->host; | 2335 | struct Scsi_Host *sh = sdev->host; |
2301 | VirtDevice *pTarget; | 2336 | VirtTarget *vtarget; |
2337 | VirtDevice *vdevice; | ||
2338 | struct scsi_target *starget; | ||
2302 | MPT_SCSI_HOST *hd = (MPT_SCSI_HOST *)sh->hostdata; | 2339 | MPT_SCSI_HOST *hd = (MPT_SCSI_HOST *)sh->hostdata; |
2340 | int indexed_lun, lun_index; | ||
2303 | 2341 | ||
2304 | if ((hd == NULL) || (hd->Targets == NULL)) { | 2342 | starget = scsi_target(sdev); |
2305 | return 0; | 2343 | vtarget = starget->hostdata; |
2306 | } | 2344 | vdevice = sdev->hostdata; |
2307 | 2345 | ||
2308 | dsprintk((MYIOC_s_INFO_FMT | 2346 | dsprintk((MYIOC_s_INFO_FMT |
2309 | "device @ %p, id=%d, LUN=%d, channel=%d\n", | 2347 | "device @ %p, id=%d, LUN=%d, channel=%d\n", |
2310 | hd->ioc->name, device, device->id, device->lun, device->channel)); | 2348 | hd->ioc->name, sdev, sdev->id, sdev->lun, sdev->channel)); |
2311 | dsprintk((MYIOC_s_INFO_FMT | 2349 | if (hd->ioc->bus_type == SPI) |
2312 | "sdtr %d wdtr %d ppr %d inq length=%d\n", | 2350 | dsprintk((MYIOC_s_INFO_FMT |
2313 | hd->ioc->name, device->sdtr, device->wdtr, | 2351 | "sdtr %d wdtr %d ppr %d inq length=%d\n", |
2314 | device->ppr, device->inquiry_len)); | 2352 | hd->ioc->name, sdev->sdtr, sdev->wdtr, |
2315 | 2353 | sdev->ppr, sdev->inquiry_len)); | |
2316 | if (device->id > sh->max_id) { | 2354 | |
2355 | if (sdev->id > sh->max_id) { | ||
2317 | /* error case, should never happen */ | 2356 | /* error case, should never happen */ |
2318 | scsi_adjust_queue_depth(device, 0, 1); | 2357 | scsi_adjust_queue_depth(sdev, 0, 1); |
2319 | goto slave_configure_exit; | ||
2320 | } | ||
2321 | |||
2322 | pTarget = hd->Targets[device->id]; | ||
2323 | |||
2324 | if (pTarget == NULL) { | ||
2325 | /* Driver doesn't know about this device. | ||
2326 | * Kernel may generate a "Dummy Lun 0" which | ||
2327 | * may become a real Lun if a | ||
2328 | * "scsi add-single-device" command is executed | ||
2329 | * while the driver is active (hot-plug a | ||
2330 | * device). LSI Raid controllers need | ||
2331 | * queue_depth set to DEV_HIGH for this reason. | ||
2332 | */ | ||
2333 | scsi_adjust_queue_depth(device, MSG_SIMPLE_TAG, | ||
2334 | MPT_SCSI_CMD_PER_DEV_HIGH); | ||
2335 | goto slave_configure_exit; | 2358 | goto slave_configure_exit; |
2336 | } | 2359 | } |
2337 | 2360 | ||
2338 | mptscsih_initTarget(hd, device->channel, device->id, device->lun, | 2361 | vdevice->configured_lun=1; |
2339 | device->inquiry, device->inquiry_len ); | 2362 | lun_index = (vdevice->lun >> 5); /* 32 luns per lun_index */ |
2340 | mptscsih_change_queue_depth(device, MPT_SCSI_CMD_PER_DEV_HIGH); | 2363 | indexed_lun = (vdevice->lun % 32); |
2364 | vtarget->luns[lun_index] |= (1 << indexed_lun); | ||
2365 | mptscsih_initTarget(hd, vtarget, sdev->lun, sdev->inquiry, | ||
2366 | sdev->inquiry_len ); | ||
2367 | mptscsih_change_queue_depth(sdev, MPT_SCSI_CMD_PER_DEV_HIGH); | ||
2341 | 2368 | ||
2342 | dsprintk((MYIOC_s_INFO_FMT | 2369 | dsprintk((MYIOC_s_INFO_FMT |
2343 | "Queue depth=%d, tflags=%x\n", | 2370 | "Queue depth=%d, tflags=%x\n", |
2344 | hd->ioc->name, device->queue_depth, pTarget->tflags)); | 2371 | hd->ioc->name, sdev->queue_depth, vtarget->tflags)); |
2345 | 2372 | ||
2346 | dsprintk((MYIOC_s_INFO_FMT | 2373 | if (hd->ioc->bus_type == SPI) |
2347 | "negoFlags=%x, maxOffset=%x, SyncFactor=%x\n", | 2374 | dsprintk((MYIOC_s_INFO_FMT |
2348 | hd->ioc->name, pTarget->negoFlags, pTarget->maxOffset, pTarget->minSyncFactor)); | 2375 | "negoFlags=%x, maxOffset=%x, SyncFactor=%x\n", |
2376 | hd->ioc->name, vtarget->negoFlags, vtarget->maxOffset, | ||
2377 | vtarget->minSyncFactor)); | ||
2349 | 2378 | ||
2350 | slave_configure_exit: | 2379 | slave_configure_exit: |
2351 | 2380 | ||
2352 | dsprintk((MYIOC_s_INFO_FMT | 2381 | dsprintk((MYIOC_s_INFO_FMT |
2353 | "tagged %d, simple %d, ordered %d\n", | 2382 | "tagged %d, simple %d, ordered %d\n", |
2354 | hd->ioc->name,device->tagged_supported, device->simple_tags, | 2383 | hd->ioc->name,sdev->tagged_supported, sdev->simple_tags, |
2355 | device->ordered_tags)); | 2384 | sdev->ordered_tags)); |
2356 | 2385 | ||
2357 | return 0; | 2386 | return 0; |
2358 | } | 2387 | } |
@@ -2370,16 +2399,14 @@ slave_configure_exit: | |||
2370 | static void | 2399 | static void |
2371 | mptscsih_copy_sense_data(struct scsi_cmnd *sc, MPT_SCSI_HOST *hd, MPT_FRAME_HDR *mf, SCSIIOReply_t *pScsiReply) | 2400 | mptscsih_copy_sense_data(struct scsi_cmnd *sc, MPT_SCSI_HOST *hd, MPT_FRAME_HDR *mf, SCSIIOReply_t *pScsiReply) |
2372 | { | 2401 | { |
2373 | VirtDevice *target; | 2402 | VirtDevice *vdev; |
2374 | SCSIIORequest_t *pReq; | 2403 | SCSIIORequest_t *pReq; |
2375 | u32 sense_count = le32_to_cpu(pScsiReply->SenseCount); | 2404 | u32 sense_count = le32_to_cpu(pScsiReply->SenseCount); |
2376 | int index; | ||
2377 | 2405 | ||
2378 | /* Get target structure | 2406 | /* Get target structure |
2379 | */ | 2407 | */ |
2380 | pReq = (SCSIIORequest_t *) mf; | 2408 | pReq = (SCSIIORequest_t *) mf; |
2381 | index = (int) pReq->TargetID; | 2409 | vdev = sc->device->hostdata; |
2382 | target = hd->Targets[index]; | ||
2383 | 2410 | ||
2384 | if (sense_count) { | 2411 | if (sense_count) { |
2385 | u8 *sense_data; | 2412 | u8 *sense_data; |
@@ -2393,7 +2420,7 @@ mptscsih_copy_sense_data(struct scsi_cmnd *sc, MPT_SCSI_HOST *hd, MPT_FRAME_HDR | |||
2393 | /* Log SMART data (asc = 0x5D, non-IM case only) if required. | 2420 | /* Log SMART data (asc = 0x5D, non-IM case only) if required. |
2394 | */ | 2421 | */ |
2395 | if ((hd->ioc->events) && (hd->ioc->eventTypes & (1 << MPI_EVENT_SCSI_DEVICE_STATUS_CHANGE))) { | 2422 | if ((hd->ioc->events) && (hd->ioc->eventTypes & (1 << MPI_EVENT_SCSI_DEVICE_STATUS_CHANGE))) { |
2396 | if ((sense_data[12] == 0x5D) && (target->raidVolume == 0)) { | 2423 | if ((sense_data[12] == 0x5D) && (vdev->vtarget->raidVolume == 0)) { |
2397 | int idx; | 2424 | int idx; |
2398 | MPT_ADAPTER *ioc = hd->ioc; | 2425 | MPT_ADAPTER *ioc = hd->ioc; |
2399 | 2426 | ||
@@ -2403,7 +2430,7 @@ mptscsih_copy_sense_data(struct scsi_cmnd *sc, MPT_SCSI_HOST *hd, MPT_FRAME_HDR | |||
2403 | 2430 | ||
2404 | ioc->events[idx].data[0] = (pReq->LUN[1] << 24) || | 2431 | ioc->events[idx].data[0] = (pReq->LUN[1] << 24) || |
2405 | (MPI_EVENT_SCSI_DEV_STAT_RC_SMART_DATA << 16) || | 2432 | (MPI_EVENT_SCSI_DEV_STAT_RC_SMART_DATA << 16) || |
2406 | (pReq->Bus << 8) || pReq->TargetID; | 2433 | (sc->device->channel << 8) || sc->device->id; |
2407 | 2434 | ||
2408 | ioc->events[idx].data[1] = (sense_data[13] << 8) || sense_data[12]; | 2435 | ioc->events[idx].data[1] = (sense_data[13] << 8) || sense_data[12]; |
2409 | 2436 | ||
@@ -2503,9 +2530,9 @@ mptscsih_ioc_reset(MPT_ADAPTER *ioc, int reset_phase) | |||
2503 | /* 2. Chain Buffer initialization | 2530 | /* 2. Chain Buffer initialization |
2504 | */ | 2531 | */ |
2505 | 2532 | ||
2506 | /* 4. Renegotiate to all devices, if SCSI | 2533 | /* 4. Renegotiate to all devices, if SPI |
2507 | */ | 2534 | */ |
2508 | if (ioc->bus_type == SCSI) { | 2535 | if (ioc->bus_type == SPI) { |
2509 | dnegoprintk(("writeSDP1: ALL_IDS USE_NVRAM\n")); | 2536 | dnegoprintk(("writeSDP1: ALL_IDS USE_NVRAM\n")); |
2510 | mptscsih_writeSDP1(hd, 0, 0, MPT_SCSICFG_ALL_IDS | MPT_SCSICFG_USE_NVRAM); | 2537 | mptscsih_writeSDP1(hd, 0, 0, MPT_SCSICFG_ALL_IDS | MPT_SCSICFG_USE_NVRAM); |
2511 | } | 2538 | } |
@@ -2534,7 +2561,7 @@ mptscsih_ioc_reset(MPT_ADAPTER *ioc, int reset_phase) | |||
2534 | 2561 | ||
2535 | /* 7. Set flag to force DV and re-read IOC Page 3 | 2562 | /* 7. Set flag to force DV and re-read IOC Page 3 |
2536 | */ | 2563 | */ |
2537 | if (ioc->bus_type == SCSI) { | 2564 | if (ioc->bus_type == SPI) { |
2538 | ioc->spi_data.forceDv = MPT_SCSICFG_NEED_DV | MPT_SCSICFG_RELOAD_IOC_PG3; | 2565 | ioc->spi_data.forceDv = MPT_SCSICFG_NEED_DV | MPT_SCSICFG_RELOAD_IOC_PG3; |
2539 | ddvtprintk(("Set reload IOC Pg3 Flag\n")); | 2566 | ddvtprintk(("Set reload IOC Pg3 Flag\n")); |
2540 | } | 2567 | } |
@@ -2576,7 +2603,7 @@ mptscsih_event_process(MPT_ADAPTER *ioc, EventNotificationReply_t *pEvReply) | |||
2576 | break; | 2603 | break; |
2577 | case MPI_EVENT_IOC_BUS_RESET: /* 04 */ | 2604 | case MPI_EVENT_IOC_BUS_RESET: /* 04 */ |
2578 | case MPI_EVENT_EXT_BUS_RESET: /* 05 */ | 2605 | case MPI_EVENT_EXT_BUS_RESET: /* 05 */ |
2579 | if (hd && (ioc->bus_type == SCSI) && (hd->soft_resets < -1)) | 2606 | if (hd && (ioc->bus_type == SPI) && (hd->soft_resets < -1)) |
2580 | hd->soft_resets++; | 2607 | hd->soft_resets++; |
2581 | break; | 2608 | break; |
2582 | case MPI_EVENT_LOGOUT: /* 09 */ | 2609 | case MPI_EVENT_LOGOUT: /* 09 */ |
@@ -2597,11 +2624,11 @@ mptscsih_event_process(MPT_ADAPTER *ioc, EventNotificationReply_t *pEvReply) | |||
2597 | 2624 | ||
2598 | case MPI_EVENT_INTEGRATED_RAID: /* 0B */ | 2625 | case MPI_EVENT_INTEGRATED_RAID: /* 0B */ |
2599 | { | 2626 | { |
2627 | #ifdef MPTSCSIH_ENABLE_DOMAIN_VALIDATION | ||
2600 | pMpiEventDataRaid_t pRaidEventData = | 2628 | pMpiEventDataRaid_t pRaidEventData = |
2601 | (pMpiEventDataRaid_t) pEvReply->Data; | 2629 | (pMpiEventDataRaid_t) pEvReply->Data; |
2602 | #ifdef MPTSCSIH_ENABLE_DOMAIN_VALIDATION | ||
2603 | /* Domain Validation Needed */ | 2630 | /* Domain Validation Needed */ |
2604 | if (ioc->bus_type == SCSI && | 2631 | if (ioc->bus_type == SPI && |
2605 | pRaidEventData->ReasonCode == | 2632 | pRaidEventData->ReasonCode == |
2606 | MPI_EVENT_RAID_RC_DOMAIN_VAL_NEEDED) | 2633 | MPI_EVENT_RAID_RC_DOMAIN_VAL_NEEDED) |
2607 | mptscsih_set_dvflags_raid(hd, pRaidEventData->PhysDiskNum); | 2634 | mptscsih_set_dvflags_raid(hd, pRaidEventData->PhysDiskNum); |
@@ -2632,8 +2659,7 @@ mptscsih_event_process(MPT_ADAPTER *ioc, EventNotificationReply_t *pEvReply) | |||
2632 | /* | 2659 | /* |
2633 | * mptscsih_initTarget - Target, LUN alloc/free functionality. | 2660 | * mptscsih_initTarget - Target, LUN alloc/free functionality. |
2634 | * @hd: Pointer to MPT_SCSI_HOST structure | 2661 | * @hd: Pointer to MPT_SCSI_HOST structure |
2635 | * @bus_id: Bus number (?) | 2662 | * @vtarget: per target private data |
2636 | * @target_id: SCSI target id | ||
2637 | * @lun: SCSI LUN id | 2663 | * @lun: SCSI LUN id |
2638 | * @data: Pointer to data | 2664 | * @data: Pointer to data |
2639 | * @dlen: Number of INQUIRY bytes | 2665 | * @dlen: Number of INQUIRY bytes |
@@ -2646,15 +2672,14 @@ mptscsih_event_process(MPT_ADAPTER *ioc, EventNotificationReply_t *pEvReply) | |||
2646 | * | 2672 | * |
2647 | */ | 2673 | */ |
2648 | static void | 2674 | static void |
2649 | mptscsih_initTarget(MPT_SCSI_HOST *hd, int bus_id, int target_id, u8 lun, char *data, int dlen) | 2675 | mptscsih_initTarget(MPT_SCSI_HOST *hd, VirtTarget *vtarget, u8 lun, char *data, int dlen) |
2650 | { | 2676 | { |
2651 | int indexed_lun, lun_index; | ||
2652 | VirtDevice *vdev; | ||
2653 | SpiCfgData *pSpi; | 2677 | SpiCfgData *pSpi; |
2654 | char data_56; | 2678 | char data_56; |
2679 | int inq_len; | ||
2655 | 2680 | ||
2656 | dinitprintk((MYIOC_s_INFO_FMT "initTarget bus=%d id=%d lun=%d hd=%p\n", | 2681 | dinitprintk((MYIOC_s_INFO_FMT "initTarget bus=%d id=%d lun=%d hd=%p\n", |
2657 | hd->ioc->name, bus_id, target_id, lun, hd)); | 2682 | hd->ioc->name, vtarget->bus_id, vtarget->target_id, lun, hd)); |
2658 | 2683 | ||
2659 | /* | 2684 | /* |
2660 | * If the peripheral qualifier filter is enabled then if the target reports a 0x1 | 2685 | * If the peripheral qualifier filter is enabled then if the target reports a 0x1 |
@@ -2674,75 +2699,68 @@ mptscsih_initTarget(MPT_SCSI_HOST *hd, int bus_id, int target_id, u8 lun, char * | |||
2674 | if (data[0] & 0xe0) | 2699 | if (data[0] & 0xe0) |
2675 | return; | 2700 | return; |
2676 | 2701 | ||
2677 | if ((vdev = hd->Targets[target_id]) == NULL) { | 2702 | if (vtarget == NULL) |
2678 | return; | 2703 | return; |
2679 | } | ||
2680 | 2704 | ||
2681 | lun_index = (lun >> 5); /* 32 luns per lun_index */ | 2705 | if (data) |
2682 | indexed_lun = (lun % 32); | 2706 | vtarget->type = data[0]; |
2683 | vdev->luns[lun_index] |= (1 << indexed_lun); | 2707 | |
2684 | 2708 | if (hd->ioc->bus_type != SPI) | |
2685 | if (hd->ioc->bus_type == SCSI) { | 2709 | return; |
2686 | if ((data[0] == TYPE_PROCESSOR) && (hd->ioc->spi_data.Saf_Te)) { | 2710 | |
2687 | /* Treat all Processors as SAF-TE if | 2711 | if ((data[0] == TYPE_PROCESSOR) && (hd->ioc->spi_data.Saf_Te)) { |
2688 | * command line option is set */ | 2712 | /* Treat all Processors as SAF-TE if |
2689 | vdev->tflags |= MPT_TARGET_FLAGS_SAF_TE_ISSUED; | 2713 | * command line option is set */ |
2690 | mptscsih_writeIOCPage4(hd, target_id, bus_id); | 2714 | vtarget->tflags |= MPT_TARGET_FLAGS_SAF_TE_ISSUED; |
2691 | }else if ((data[0] == TYPE_PROCESSOR) && | 2715 | mptscsih_writeIOCPage4(hd, vtarget->target_id, vtarget->bus_id); |
2692 | !(vdev->tflags & MPT_TARGET_FLAGS_SAF_TE_ISSUED )) { | 2716 | }else if ((data[0] == TYPE_PROCESSOR) && |
2693 | if ( dlen > 49 ) { | 2717 | !(vtarget->tflags & MPT_TARGET_FLAGS_SAF_TE_ISSUED )) { |
2694 | vdev->tflags |= MPT_TARGET_FLAGS_VALID_INQUIRY; | 2718 | if ( dlen > 49 ) { |
2695 | if ( data[44] == 'S' && | 2719 | vtarget->tflags |= MPT_TARGET_FLAGS_VALID_INQUIRY; |
2696 | data[45] == 'A' && | 2720 | if ( data[44] == 'S' && |
2697 | data[46] == 'F' && | 2721 | data[45] == 'A' && |
2698 | data[47] == '-' && | 2722 | data[46] == 'F' && |
2699 | data[48] == 'T' && | 2723 | data[47] == '-' && |
2700 | data[49] == 'E' ) { | 2724 | data[48] == 'T' && |
2701 | vdev->tflags |= MPT_TARGET_FLAGS_SAF_TE_ISSUED; | 2725 | data[49] == 'E' ) { |
2702 | mptscsih_writeIOCPage4(hd, target_id, bus_id); | 2726 | vtarget->tflags |= MPT_TARGET_FLAGS_SAF_TE_ISSUED; |
2703 | } | 2727 | mptscsih_writeIOCPage4(hd, vtarget->target_id, vtarget->bus_id); |
2704 | } | 2728 | } |
2705 | } | 2729 | } |
2706 | if (!(vdev->tflags & MPT_TARGET_FLAGS_VALID_INQUIRY)) { | 2730 | } |
2707 | if ( dlen > 8 ) { | 2731 | if (!(vtarget->tflags & MPT_TARGET_FLAGS_VALID_INQUIRY)) { |
2708 | memcpy (vdev->inq_data, data, 8); | 2732 | inq_len = dlen < 8 ? dlen : 8; |
2709 | } else { | 2733 | memcpy (vtarget->inq_data, data, inq_len); |
2710 | memcpy (vdev->inq_data, data, dlen); | 2734 | /* If have not done DV, set the DV flag. |
2711 | } | 2735 | */ |
2736 | pSpi = &hd->ioc->spi_data; | ||
2737 | if ((data[0] == TYPE_TAPE) || (data[0] == TYPE_PROCESSOR)) { | ||
2738 | if (pSpi->dvStatus[vtarget->target_id] & MPT_SCSICFG_DV_NOT_DONE) | ||
2739 | pSpi->dvStatus[vtarget->target_id] |= MPT_SCSICFG_NEED_DV; | ||
2740 | } | ||
2741 | vtarget->tflags |= MPT_TARGET_FLAGS_VALID_INQUIRY; | ||
2712 | 2742 | ||
2713 | /* If have not done DV, set the DV flag. | 2743 | data_56 = 0x0F; /* Default to full capabilities if Inq data length is < 57 */ |
2744 | if (dlen > 56) { | ||
2745 | if ( (!(vtarget->tflags & MPT_TARGET_FLAGS_VALID_56))) { | ||
2746 | /* Update the target capabilities | ||
2714 | */ | 2747 | */ |
2715 | pSpi = &hd->ioc->spi_data; | 2748 | data_56 = data[56]; |
2716 | if ((data[0] == TYPE_TAPE) || (data[0] == TYPE_PROCESSOR)) { | 2749 | vtarget->tflags |= MPT_TARGET_FLAGS_VALID_56; |
2717 | if (pSpi->dvStatus[target_id] & MPT_SCSICFG_DV_NOT_DONE) | ||
2718 | pSpi->dvStatus[target_id] |= MPT_SCSICFG_NEED_DV; | ||
2719 | } | ||
2720 | |||
2721 | vdev->tflags |= MPT_TARGET_FLAGS_VALID_INQUIRY; | ||
2722 | |||
2723 | |||
2724 | data_56 = 0x0F; /* Default to full capabilities if Inq data length is < 57 */ | ||
2725 | if (dlen > 56) { | ||
2726 | if ( (!(vdev->tflags & MPT_TARGET_FLAGS_VALID_56))) { | ||
2727 | /* Update the target capabilities | ||
2728 | */ | ||
2729 | data_56 = data[56]; | ||
2730 | vdev->tflags |= MPT_TARGET_FLAGS_VALID_56; | ||
2731 | } | ||
2732 | } | 2750 | } |
2733 | mptscsih_setTargetNegoParms(hd, vdev, data_56); | 2751 | } |
2734 | } else { | 2752 | mptscsih_setTargetNegoParms(hd, vtarget, data_56); |
2735 | /* Initial Inquiry may not request enough data bytes to | 2753 | } else { |
2736 | * obtain byte 57. DV will; if target doesn't return | 2754 | /* Initial Inquiry may not request enough data bytes to |
2737 | * at least 57 bytes, data[56] will be zero. */ | 2755 | * obtain byte 57. DV will; if target doesn't return |
2738 | if (dlen > 56) { | 2756 | * at least 57 bytes, data[56] will be zero. */ |
2739 | if ( (!(vdev->tflags & MPT_TARGET_FLAGS_VALID_56))) { | 2757 | if (dlen > 56) { |
2740 | /* Update the target capabilities | 2758 | if ( (!(vtarget->tflags & MPT_TARGET_FLAGS_VALID_56))) { |
2741 | */ | 2759 | /* Update the target capabilities |
2742 | data_56 = data[56]; | 2760 | */ |
2743 | vdev->tflags |= MPT_TARGET_FLAGS_VALID_56; | 2761 | data_56 = data[56]; |
2744 | mptscsih_setTargetNegoParms(hd, vdev, data_56); | 2762 | vtarget->tflags |= MPT_TARGET_FLAGS_VALID_56; |
2745 | } | 2763 | mptscsih_setTargetNegoParms(hd, vtarget, data_56); |
2746 | } | 2764 | } |
2747 | } | 2765 | } |
2748 | } | 2766 | } |
@@ -2755,12 +2773,12 @@ mptscsih_initTarget(MPT_SCSI_HOST *hd, int bus_id, int target_id, u8 lun, char * | |||
2755 | * | 2773 | * |
2756 | */ | 2774 | */ |
2757 | static void | 2775 | static void |
2758 | mptscsih_setTargetNegoParms(MPT_SCSI_HOST *hd, VirtDevice *target, char byte56) | 2776 | mptscsih_setTargetNegoParms(MPT_SCSI_HOST *hd, VirtTarget *target, char byte56) |
2759 | { | 2777 | { |
2760 | SpiCfgData *pspi_data = &hd->ioc->spi_data; | 2778 | SpiCfgData *pspi_data = &hd->ioc->spi_data; |
2761 | int id = (int) target->target_id; | 2779 | int id = (int) target->target_id; |
2762 | int nvram; | 2780 | int nvram; |
2763 | VirtDevice *vdev; | 2781 | VirtTarget *vtarget; |
2764 | int ii; | 2782 | int ii; |
2765 | u8 width = MPT_NARROW; | 2783 | u8 width = MPT_NARROW; |
2766 | u8 factor = MPT_ASYNC; | 2784 | u8 factor = MPT_ASYNC; |
@@ -2905,9 +2923,9 @@ mptscsih_setTargetNegoParms(MPT_SCSI_HOST *hd, VirtDevice *target, char byte56) | |||
2905 | 2923 | ||
2906 | ddvtprintk((KERN_INFO "Disabling QAS due to noQas=%02x on id=%d!\n", noQas, id)); | 2924 | ddvtprintk((KERN_INFO "Disabling QAS due to noQas=%02x on id=%d!\n", noQas, id)); |
2907 | for (ii = 0; ii < id; ii++) { | 2925 | for (ii = 0; ii < id; ii++) { |
2908 | if ( (vdev = hd->Targets[ii]) ) { | 2926 | if ( (vtarget = hd->Targets[ii]) ) { |
2909 | vdev->negoFlags |= MPT_TARGET_NO_NEGO_QAS; | 2927 | vtarget->negoFlags |= MPT_TARGET_NO_NEGO_QAS; |
2910 | mptscsih_writeSDP1(hd, 0, ii, vdev->negoFlags); | 2928 | mptscsih_writeSDP1(hd, 0, ii, vtarget->negoFlags); |
2911 | } | 2929 | } |
2912 | } | 2930 | } |
2913 | } | 2931 | } |
@@ -2926,105 +2944,17 @@ mptscsih_setTargetNegoParms(MPT_SCSI_HOST *hd, VirtDevice *target, char byte56) | |||
2926 | } | 2944 | } |
2927 | 2945 | ||
2928 | /*=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=*/ | 2946 | /*=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=*/ |
2929 | /* If DV disabled (negoNvram set to USE_NVARM) or if not LUN 0, return. | ||
2930 | * Else set the NEED_DV flag after Read Capacity Issued (disks) | ||
2931 | * or Mode Sense (cdroms). | ||
2932 | * | ||
2933 | * Tapes, initTarget will set this flag on completion of Inquiry command. | ||
2934 | * Called only if DV_NOT_DONE flag is set | ||
2935 | */ | ||
2936 | static void | ||
2937 | mptscsih_set_dvflags(MPT_SCSI_HOST *hd, SCSIIORequest_t *pReq) | ||
2938 | { | ||
2939 | MPT_ADAPTER *ioc = hd->ioc; | ||
2940 | u8 cmd; | ||
2941 | SpiCfgData *pSpi; | ||
2942 | |||
2943 | ddvtprintk((MYIOC_s_NOTE_FMT | ||
2944 | " set_dvflags: id=%d lun=%d negoNvram=%x cmd=%x\n", | ||
2945 | hd->ioc->name, pReq->TargetID, pReq->LUN[1], hd->negoNvram, pReq->CDB[0])); | ||
2946 | |||
2947 | if ((pReq->LUN[1] != 0) || (hd->negoNvram != 0)) | ||
2948 | return; | ||
2949 | |||
2950 | cmd = pReq->CDB[0]; | ||
2951 | |||
2952 | if ((cmd == READ_CAPACITY) || (cmd == MODE_SENSE)) { | ||
2953 | pSpi = &ioc->spi_data; | ||
2954 | if ((ioc->raid_data.isRaid & (1 << pReq->TargetID)) && ioc->raid_data.pIocPg3) { | ||
2955 | /* Set NEED_DV for all hidden disks | ||
2956 | */ | ||
2957 | Ioc3PhysDisk_t *pPDisk = ioc->raid_data.pIocPg3->PhysDisk; | ||
2958 | int numPDisk = ioc->raid_data.pIocPg3->NumPhysDisks; | ||
2959 | |||
2960 | while (numPDisk) { | ||
2961 | pSpi->dvStatus[pPDisk->PhysDiskID] |= MPT_SCSICFG_NEED_DV; | ||
2962 | ddvtprintk(("NEED_DV set for phys disk id %d\n", pPDisk->PhysDiskID)); | ||
2963 | pPDisk++; | ||
2964 | numPDisk--; | ||
2965 | } | ||
2966 | } | ||
2967 | pSpi->dvStatus[pReq->TargetID] |= MPT_SCSICFG_NEED_DV; | ||
2968 | ddvtprintk(("NEED_DV set for visible disk id %d\n", pReq->TargetID)); | ||
2969 | } | ||
2970 | } | ||
2971 | |||
2972 | /* mptscsih_raid_set_dv_flags() | ||
2973 | * | ||
2974 | * New or replaced disk. Set DV flag and schedule DV. | ||
2975 | */ | ||
2976 | static void | ||
2977 | mptscsih_set_dvflags_raid(MPT_SCSI_HOST *hd, int id) | ||
2978 | { | ||
2979 | MPT_ADAPTER *ioc = hd->ioc; | ||
2980 | SpiCfgData *pSpi = &ioc->spi_data; | ||
2981 | Ioc3PhysDisk_t *pPDisk; | ||
2982 | int numPDisk; | ||
2983 | |||
2984 | if (hd->negoNvram != 0) | ||
2985 | return; | ||
2986 | |||
2987 | ddvtprintk(("DV requested for phys disk id %d\n", id)); | ||
2988 | if (ioc->raid_data.pIocPg3) { | ||
2989 | pPDisk = ioc->raid_data.pIocPg3->PhysDisk; | ||
2990 | numPDisk = ioc->raid_data.pIocPg3->NumPhysDisks; | ||
2991 | while (numPDisk) { | ||
2992 | if (id == pPDisk->PhysDiskNum) { | ||
2993 | pSpi->dvStatus[pPDisk->PhysDiskID] = | ||
2994 | (MPT_SCSICFG_NEED_DV | MPT_SCSICFG_DV_NOT_DONE); | ||
2995 | pSpi->forceDv = MPT_SCSICFG_NEED_DV; | ||
2996 | ddvtprintk(("NEED_DV set for phys disk id %d\n", | ||
2997 | pPDisk->PhysDiskID)); | ||
2998 | break; | ||
2999 | } | ||
3000 | pPDisk++; | ||
3001 | numPDisk--; | ||
3002 | } | ||
3003 | |||
3004 | if (numPDisk == 0) { | ||
3005 | /* The physical disk that needs DV was not found | ||
3006 | * in the stored IOC Page 3. The driver must reload | ||
3007 | * this page. DV routine will set the NEED_DV flag for | ||
3008 | * all phys disks that have DV_NOT_DONE set. | ||
3009 | */ | ||
3010 | pSpi->forceDv = MPT_SCSICFG_NEED_DV | MPT_SCSICFG_RELOAD_IOC_PG3; | ||
3011 | ddvtprintk(("phys disk %d not found. Setting reload IOC Pg3 Flag\n",id)); | ||
3012 | } | ||
3013 | } | ||
3014 | } | ||
3015 | |||
3016 | /*=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=*/ | ||
3017 | /* | 2947 | /* |
3018 | * If no Target, bus reset on 1st I/O. Set the flag to | 2948 | * If no Target, bus reset on 1st I/O. Set the flag to |
3019 | * prevent any future negotiations to this device. | 2949 | * prevent any future negotiations to this device. |
3020 | */ | 2950 | */ |
3021 | static void | 2951 | static void |
3022 | mptscsih_no_negotiate(MPT_SCSI_HOST *hd, int target_id) | 2952 | mptscsih_no_negotiate(MPT_SCSI_HOST *hd, struct scsi_cmnd *sc) |
3023 | { | 2953 | { |
2954 | VirtDevice *vdev; | ||
3024 | 2955 | ||
3025 | if ((hd->Targets) && (hd->Targets[target_id] == NULL)) | 2956 | if ((vdev = sc->device->hostdata) != NULL) |
3026 | hd->ioc->spi_data.dvStatus[target_id] |= MPT_SCSICFG_BLK_NEGO; | 2957 | hd->ioc->spi_data.dvStatus[vdev->target_id] |= MPT_SCSICFG_BLK_NEGO; |
3027 | |||
3028 | return; | 2958 | return; |
3029 | } | 2959 | } |
3030 | 2960 | ||
@@ -3100,7 +3030,7 @@ mptscsih_writeSDP1(MPT_SCSI_HOST *hd, int portnum, int target_id, int flags) | |||
3100 | MPT_ADAPTER *ioc = hd->ioc; | 3030 | MPT_ADAPTER *ioc = hd->ioc; |
3101 | Config_t *pReq; | 3031 | Config_t *pReq; |
3102 | SCSIDevicePage1_t *pData; | 3032 | SCSIDevicePage1_t *pData; |
3103 | VirtDevice *pTarget=NULL; | 3033 | VirtTarget *vtarget=NULL; |
3104 | MPT_FRAME_HDR *mf; | 3034 | MPT_FRAME_HDR *mf; |
3105 | dma_addr_t dataDma; | 3035 | dma_addr_t dataDma; |
3106 | u16 req_idx; | 3036 | u16 req_idx; |
@@ -3180,11 +3110,11 @@ mptscsih_writeSDP1(MPT_SCSI_HOST *hd, int portnum, int target_id, int flags) | |||
3180 | /* If id is not a raid volume, get the updated | 3110 | /* If id is not a raid volume, get the updated |
3181 | * transmission settings from the target structure. | 3111 | * transmission settings from the target structure. |
3182 | */ | 3112 | */ |
3183 | if (hd->Targets && (pTarget = hd->Targets[id]) && !pTarget->raidVolume) { | 3113 | if (hd->Targets && (vtarget = hd->Targets[id]) && !vtarget->raidVolume) { |
3184 | width = pTarget->maxWidth; | 3114 | width = vtarget->maxWidth; |
3185 | factor = pTarget->minSyncFactor; | 3115 | factor = vtarget->minSyncFactor; |
3186 | offset = pTarget->maxOffset; | 3116 | offset = vtarget->maxOffset; |
3187 | negoFlags = pTarget->negoFlags; | 3117 | negoFlags = vtarget->negoFlags; |
3188 | } | 3118 | } |
3189 | 3119 | ||
3190 | #ifdef MPTSCSIH_ENABLE_DOMAIN_VALIDATION | 3120 | #ifdef MPTSCSIH_ENABLE_DOMAIN_VALIDATION |
@@ -3904,149 +3834,139 @@ mptscsih_do_cmd(MPT_SCSI_HOST *hd, INTERNAL_CMD *io) | |||
3904 | 3834 | ||
3905 | /*=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=*/ | 3835 | /*=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=*/ |
3906 | /** | 3836 | /** |
3907 | * mptscsih_synchronize_cache - Send SYNCHRONIZE_CACHE to all disks. | 3837 | * mptscsih_negotiate_to_asyn_narrow - Restore devices to default state |
3908 | * @hd: Pointer to MPT_SCSI_HOST structure | 3838 | * @hd: Pointer to a SCSI HOST structure |
3909 | * @portnum: IOC port number | 3839 | * @vtarget: per device private data |
3910 | * | 3840 | * |
3911 | * Uses the ISR, but with special processing. | 3841 | * Uses the ISR, but with special processing. |
3912 | * MUST be single-threaded. | 3842 | * MUST be single-threaded. |
3913 | * | 3843 | * |
3914 | * Return: 0 on completion | ||
3915 | */ | 3844 | */ |
3916 | static int | 3845 | static void |
3917 | mptscsih_synchronize_cache(MPT_SCSI_HOST *hd, int portnum) | 3846 | mptscsih_negotiate_to_asyn_narrow(MPT_SCSI_HOST *hd, VirtTarget *vtarget) |
3918 | { | 3847 | { |
3919 | MPT_ADAPTER *ioc= hd->ioc; | 3848 | MPT_ADAPTER *ioc= hd->ioc; |
3920 | VirtDevice *pTarget; | 3849 | SCSIDevicePage1_t *pcfg1Data; |
3921 | SCSIDevicePage1_t *pcfg1Data = NULL; | ||
3922 | INTERNAL_CMD iocmd; | ||
3923 | CONFIGPARMS cfg; | 3850 | CONFIGPARMS cfg; |
3924 | dma_addr_t cfg1_dma_addr = -1; | 3851 | dma_addr_t cfg1_dma_addr; |
3925 | ConfigPageHeader_t header1; | 3852 | ConfigPageHeader_t header; |
3926 | int bus = 0; | 3853 | int id; |
3927 | int id = 0; | 3854 | int requested, configuration, data,i; |
3928 | int lun; | ||
3929 | int indexed_lun, lun_index; | ||
3930 | int hostId = ioc->pfacts[portnum].PortSCSIID; | ||
3931 | int max_id; | ||
3932 | int requested, configuration, data; | ||
3933 | int doConfig = 0; | ||
3934 | u8 flags, factor; | 3855 | u8 flags, factor; |
3935 | 3856 | ||
3936 | max_id = ioc->sh->max_id - 1; | 3857 | if (ioc->bus_type != SPI) |
3937 | 3858 | return; | |
3938 | /* Following parameters will not change | ||
3939 | * in this routine. | ||
3940 | */ | ||
3941 | iocmd.cmd = SYNCHRONIZE_CACHE; | ||
3942 | iocmd.flags = 0; | ||
3943 | iocmd.physDiskNum = -1; | ||
3944 | iocmd.data = NULL; | ||
3945 | iocmd.data_dma = -1; | ||
3946 | iocmd.size = 0; | ||
3947 | iocmd.rsvd = iocmd.rsvd2 = 0; | ||
3948 | |||
3949 | /* No SCSI hosts | ||
3950 | */ | ||
3951 | if (hd->Targets == NULL) | ||
3952 | return 0; | ||
3953 | |||
3954 | /* Skip the host | ||
3955 | */ | ||
3956 | if (id == hostId) | ||
3957 | id++; | ||
3958 | |||
3959 | /* Write SDP1 for all SCSI devices | ||
3960 | * Alloc memory and set up config buffer | ||
3961 | */ | ||
3962 | if (ioc->bus_type == SCSI) { | ||
3963 | if (ioc->spi_data.sdp1length > 0) { | ||
3964 | pcfg1Data = (SCSIDevicePage1_t *)pci_alloc_consistent(ioc->pcidev, | ||
3965 | ioc->spi_data.sdp1length * 4, &cfg1_dma_addr); | ||
3966 | |||
3967 | if (pcfg1Data != NULL) { | ||
3968 | doConfig = 1; | ||
3969 | header1.PageVersion = ioc->spi_data.sdp1version; | ||
3970 | header1.PageLength = ioc->spi_data.sdp1length; | ||
3971 | header1.PageNumber = 1; | ||
3972 | header1.PageType = MPI_CONFIG_PAGETYPE_SCSI_DEVICE; | ||
3973 | cfg.cfghdr.hdr = &header1; | ||
3974 | cfg.physAddr = cfg1_dma_addr; | ||
3975 | cfg.action = MPI_CONFIG_ACTION_PAGE_WRITE_CURRENT; | ||
3976 | cfg.dir = 1; | ||
3977 | cfg.timeout = 0; | ||
3978 | } | ||
3979 | } | ||
3980 | } | ||
3981 | 3859 | ||
3982 | /* loop through all devices on this port | 3860 | if (!ioc->spi_data.sdp1length) |
3983 | */ | 3861 | return; |
3984 | while (bus < MPT_MAX_BUS) { | ||
3985 | iocmd.bus = bus; | ||
3986 | iocmd.id = id; | ||
3987 | pTarget = hd->Targets[(int)id]; | ||
3988 | 3862 | ||
3989 | if (doConfig) { | 3863 | pcfg1Data = (SCSIDevicePage1_t *)pci_alloc_consistent(ioc->pcidev, |
3864 | ioc->spi_data.sdp1length * 4, &cfg1_dma_addr); | ||
3990 | 3865 | ||
3991 | /* Set the negotiation flags */ | 3866 | if (pcfg1Data == NULL) |
3992 | if (pTarget && (pTarget = hd->Targets[id]) && !pTarget->raidVolume) { | 3867 | return; |
3993 | flags = pTarget->negoFlags; | ||
3994 | } else { | ||
3995 | flags = hd->ioc->spi_data.noQas; | ||
3996 | if (hd->ioc->spi_data.nvram && (hd->ioc->spi_data.nvram[id] != MPT_HOST_NVRAM_INVALID)) { | ||
3997 | data = hd->ioc->spi_data.nvram[id]; | ||
3998 | 3868 | ||
3999 | if (data & MPT_NVRAM_WIDE_DISABLE) | 3869 | header.PageVersion = ioc->spi_data.sdp1version; |
4000 | flags |= MPT_TARGET_NO_NEGO_WIDE; | 3870 | header.PageLength = ioc->spi_data.sdp1length; |
3871 | header.PageNumber = 1; | ||
3872 | header.PageType = MPI_CONFIG_PAGETYPE_SCSI_DEVICE; | ||
3873 | cfg.cfghdr.hdr = &header; | ||
3874 | cfg.physAddr = cfg1_dma_addr; | ||
3875 | cfg.action = MPI_CONFIG_ACTION_PAGE_WRITE_CURRENT; | ||
3876 | cfg.dir = 1; | ||
3877 | cfg.timeout = 0; | ||
4001 | 3878 | ||
4002 | factor = (data & MPT_NVRAM_SYNC_MASK) >> MPT_NVRAM_SYNC_SHIFT; | 3879 | if (vtarget->raidVolume && ioc->raid_data.pIocPg3) { |
4003 | if ((factor == 0) || (factor == MPT_ASYNC)) | 3880 | for (i = 0; i < ioc->raid_data.pIocPg3->NumPhysDisks; i++) { |
4004 | flags |= MPT_TARGET_NO_NEGO_SYNC; | 3881 | id = ioc->raid_data.pIocPg3->PhysDisk[i].PhysDiskID; |
4005 | } | 3882 | flags = hd->ioc->spi_data.noQas; |
3883 | if (hd->ioc->spi_data.nvram && (hd->ioc->spi_data.nvram[id] != MPT_HOST_NVRAM_INVALID)) { | ||
3884 | data = hd->ioc->spi_data.nvram[id]; | ||
3885 | if (data & MPT_NVRAM_WIDE_DISABLE) | ||
3886 | flags |= MPT_TARGET_NO_NEGO_WIDE; | ||
3887 | factor = (data & MPT_NVRAM_SYNC_MASK) >> MPT_NVRAM_SYNC_SHIFT; | ||
3888 | if ((factor == 0) || (factor == MPT_ASYNC)) | ||
3889 | flags |= MPT_TARGET_NO_NEGO_SYNC; | ||
4006 | } | 3890 | } |
4007 | |||
4008 | /* Force to async, narrow */ | ||
4009 | mptscsih_setDevicePage1Flags(0, MPT_ASYNC, 0, &requested, | 3891 | mptscsih_setDevicePage1Flags(0, MPT_ASYNC, 0, &requested, |
4010 | &configuration, flags); | 3892 | &configuration, flags); |
4011 | dnegoprintk(("syncronize cache: id=%d width=0 factor=MPT_ASYNC " | 3893 | dnegoprintk(("syncronize cache: id=%d width=0 factor=MPT_ASYNC " |
4012 | "offset=0 negoFlags=%x request=%x config=%x\n", | 3894 | "offset=0 negoFlags=%x request=%x config=%x\n", |
4013 | id, flags, requested, configuration)); | 3895 | id, flags, requested, configuration)); |
4014 | pcfg1Data->RequestedParameters = cpu_to_le32(requested); | 3896 | pcfg1Data->RequestedParameters = cpu_to_le32(requested); |
4015 | pcfg1Data->Reserved = 0; | 3897 | pcfg1Data->Reserved = 0; |
4016 | pcfg1Data->Configuration = cpu_to_le32(configuration); | 3898 | pcfg1Data->Configuration = cpu_to_le32(configuration); |
4017 | cfg.pageAddr = (bus<<8) | id; | 3899 | cfg.pageAddr = (vtarget->bus_id<<8) | id; |
4018 | mpt_config(hd->ioc, &cfg); | 3900 | mpt_config(hd->ioc, &cfg); |
4019 | } | 3901 | } |
3902 | } else { | ||
3903 | flags = vtarget->negoFlags; | ||
3904 | mptscsih_setDevicePage1Flags(0, MPT_ASYNC, 0, &requested, | ||
3905 | &configuration, flags); | ||
3906 | dnegoprintk(("syncronize cache: id=%d width=0 factor=MPT_ASYNC " | ||
3907 | "offset=0 negoFlags=%x request=%x config=%x\n", | ||
3908 | vtarget->target_id, flags, requested, configuration)); | ||
3909 | pcfg1Data->RequestedParameters = cpu_to_le32(requested); | ||
3910 | pcfg1Data->Reserved = 0; | ||
3911 | pcfg1Data->Configuration = cpu_to_le32(configuration); | ||
3912 | cfg.pageAddr = (vtarget->bus_id<<8) | vtarget->target_id; | ||
3913 | mpt_config(hd->ioc, &cfg); | ||
3914 | } | ||
4020 | 3915 | ||
4021 | /* If target Ptr NULL or if this target is NOT a disk, skip. | 3916 | if (pcfg1Data) |
4022 | */ | 3917 | pci_free_consistent(ioc->pcidev, header.PageLength * 4, pcfg1Data, cfg1_dma_addr); |
4023 | if ((pTarget) && (pTarget->inq_data[0] == TYPE_DISK)){ | 3918 | } |
4024 | for (lun=0; lun <= MPT_LAST_LUN; lun++) { | ||
4025 | /* If LUN present, issue the command | ||
4026 | */ | ||
4027 | lun_index = (lun >> 5); /* 32 luns per lun_index */ | ||
4028 | indexed_lun = (lun % 32); | ||
4029 | if (pTarget->luns[lun_index] & (1<<indexed_lun)) { | ||
4030 | iocmd.lun = lun; | ||
4031 | (void) mptscsih_do_cmd(hd, &iocmd); | ||
4032 | } | ||
4033 | } | ||
4034 | } | ||
4035 | 3919 | ||
4036 | /* get next relevant device */ | 3920 | /*=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=*/ |
4037 | id++; | 3921 | /** |
3922 | * mptscsih_synchronize_cache - Send SYNCHRONIZE_CACHE to all disks. | ||
3923 | * @hd: Pointer to a SCSI HOST structure | ||
3924 | * @vtarget: per device private data | ||
3925 | * @lun: lun | ||
3926 | * | ||
3927 | * Uses the ISR, but with special processing. | ||
3928 | * MUST be single-threaded. | ||
3929 | * | ||
3930 | */ | ||
3931 | static void | ||
3932 | mptscsih_synchronize_cache(MPT_SCSI_HOST *hd, VirtDevice *vdevice) | ||
3933 | { | ||
3934 | INTERNAL_CMD iocmd; | ||
4038 | 3935 | ||
4039 | if (id == hostId) | 3936 | /* Following parameters will not change |
4040 | id++; | 3937 | * in this routine. |
3938 | */ | ||
3939 | iocmd.cmd = SYNCHRONIZE_CACHE; | ||
3940 | iocmd.flags = 0; | ||
3941 | iocmd.physDiskNum = -1; | ||
3942 | iocmd.data = NULL; | ||
3943 | iocmd.data_dma = -1; | ||
3944 | iocmd.size = 0; | ||
3945 | iocmd.rsvd = iocmd.rsvd2 = 0; | ||
3946 | iocmd.bus = vdevice->bus_id; | ||
3947 | iocmd.id = vdevice->target_id; | ||
3948 | iocmd.lun = (u8)vdevice->lun; | ||
4041 | 3949 | ||
4042 | if (id > max_id) { | 3950 | if ((vdevice->vtarget->type & TYPE_DISK) && |
4043 | id = 0; | 3951 | (vdevice->configured_lun)) |
4044 | bus++; | 3952 | mptscsih_do_cmd(hd, &iocmd); |
4045 | } | 3953 | } |
4046 | } | ||
4047 | 3954 | ||
4048 | if (pcfg1Data) { | 3955 | /* Search IOC page 3 to determine if this is hidden physical disk |
4049 | pci_free_consistent(ioc->pcidev, header1.PageLength * 4, pcfg1Data, cfg1_dma_addr); | 3956 | */ |
3957 | /* Search IOC page 3 to determine if this is hidden physical disk | ||
3958 | */ | ||
3959 | static int | ||
3960 | mptscsih_is_phys_disk(MPT_ADAPTER *ioc, int id) | ||
3961 | { | ||
3962 | int i; | ||
3963 | |||
3964 | if (!ioc->raid_data.isRaid || !ioc->raid_data.pIocPg3) | ||
3965 | return 0; | ||
3966 | |||
3967 | for (i = 0; i < ioc->raid_data.pIocPg3->NumPhysDisks; i++) { | ||
3968 | if (id == ioc->raid_data.pIocPg3->PhysDisk[i].PhysDiskID) | ||
3969 | return 1; | ||
4050 | } | 3970 | } |
4051 | 3971 | ||
4052 | return 0; | 3972 | return 0; |
@@ -4101,8 +4021,8 @@ mptscsih_domainValidation(void *arg) | |||
4101 | 4021 | ||
4102 | msleep(250); | 4022 | msleep(250); |
4103 | 4023 | ||
4104 | /* DV only to SCSI adapters */ | 4024 | /* DV only to SPI adapters */ |
4105 | if (ioc->bus_type != SCSI) | 4025 | if (ioc->bus_type != SPI) |
4106 | continue; | 4026 | continue; |
4107 | 4027 | ||
4108 | /* Make sure everything looks ok */ | 4028 | /* Make sure everything looks ok */ |
@@ -4205,32 +4125,12 @@ mptscsih_domainValidation(void *arg) | |||
4205 | return; | 4125 | return; |
4206 | } | 4126 | } |
4207 | 4127 | ||
4208 | /* Search IOC page 3 to determine if this is hidden physical disk | ||
4209 | */ | ||
4210 | /* Search IOC page 3 to determine if this is hidden physical disk | ||
4211 | */ | ||
4212 | static int | ||
4213 | mptscsih_is_phys_disk(MPT_ADAPTER *ioc, int id) | ||
4214 | { | ||
4215 | int i; | ||
4216 | |||
4217 | if (!ioc->raid_data.isRaid || !ioc->raid_data.pIocPg3) | ||
4218 | return 0; | ||
4219 | |||
4220 | for (i = 0; i < ioc->raid_data.pIocPg3->NumPhysDisks; i++) { | ||
4221 | if (id == ioc->raid_data.pIocPg3->PhysDisk[i].PhysDiskID) | ||
4222 | return 1; | ||
4223 | } | ||
4224 | |||
4225 | return 0; | ||
4226 | } | ||
4227 | |||
4228 | /* Write SDP1 if no QAS has been enabled | 4128 | /* Write SDP1 if no QAS has been enabled |
4229 | */ | 4129 | */ |
4230 | static void | 4130 | static void |
4231 | mptscsih_qas_check(MPT_SCSI_HOST *hd, int id) | 4131 | mptscsih_qas_check(MPT_SCSI_HOST *hd, int id) |
4232 | { | 4132 | { |
4233 | VirtDevice *pTarget; | 4133 | VirtTarget *vtarget; |
4234 | int ii; | 4134 | int ii; |
4235 | 4135 | ||
4236 | if (hd->Targets == NULL) | 4136 | if (hd->Targets == NULL) |
@@ -4243,11 +4143,11 @@ mptscsih_qas_check(MPT_SCSI_HOST *hd, int id) | |||
4243 | if ((hd->ioc->spi_data.dvStatus[ii] & MPT_SCSICFG_DV_NOT_DONE) != 0) | 4143 | if ((hd->ioc->spi_data.dvStatus[ii] & MPT_SCSICFG_DV_NOT_DONE) != 0) |
4244 | continue; | 4144 | continue; |
4245 | 4145 | ||
4246 | pTarget = hd->Targets[ii]; | 4146 | vtarget = hd->Targets[ii]; |
4247 | 4147 | ||
4248 | if ((pTarget != NULL) && (!pTarget->raidVolume)) { | 4148 | if ((vtarget != NULL) && (!vtarget->raidVolume)) { |
4249 | if ((pTarget->negoFlags & hd->ioc->spi_data.noQas) == 0) { | 4149 | if ((vtarget->negoFlags & hd->ioc->spi_data.noQas) == 0) { |
4250 | pTarget->negoFlags |= hd->ioc->spi_data.noQas; | 4150 | vtarget->negoFlags |= hd->ioc->spi_data.noQas; |
4251 | dnegoprintk(("writeSDP1: id=%d flags=0\n", id)); | 4151 | dnegoprintk(("writeSDP1: id=%d flags=0\n", id)); |
4252 | mptscsih_writeSDP1(hd, 0, ii, 0); | 4152 | mptscsih_writeSDP1(hd, 0, ii, 0); |
4253 | } | 4153 | } |
@@ -4287,7 +4187,7 @@ static int | |||
4287 | mptscsih_doDv(MPT_SCSI_HOST *hd, int bus_number, int id) | 4187 | mptscsih_doDv(MPT_SCSI_HOST *hd, int bus_number, int id) |
4288 | { | 4188 | { |
4289 | MPT_ADAPTER *ioc = hd->ioc; | 4189 | MPT_ADAPTER *ioc = hd->ioc; |
4290 | VirtDevice *pTarget; | 4190 | VirtTarget *vtarget; |
4291 | SCSIDevicePage1_t *pcfg1Data; | 4191 | SCSIDevicePage1_t *pcfg1Data; |
4292 | SCSIDevicePage0_t *pcfg0Data; | 4192 | SCSIDevicePage0_t *pcfg0Data; |
4293 | u8 *pbuf1; | 4193 | u8 *pbuf1; |
@@ -4358,12 +4258,12 @@ mptscsih_doDv(MPT_SCSI_HOST *hd, int bus_number, int id) | |||
4358 | iocmd.physDiskNum = -1; | 4258 | iocmd.physDiskNum = -1; |
4359 | iocmd.rsvd = iocmd.rsvd2 = 0; | 4259 | iocmd.rsvd = iocmd.rsvd2 = 0; |
4360 | 4260 | ||
4361 | pTarget = hd->Targets[id]; | 4261 | vtarget = hd->Targets[id]; |
4362 | 4262 | ||
4363 | /* Use tagged commands if possible. | 4263 | /* Use tagged commands if possible. |
4364 | */ | 4264 | */ |
4365 | if (pTarget) { | 4265 | if (vtarget) { |
4366 | if (pTarget->tflags & MPT_TARGET_FLAGS_Q_YES) | 4266 | if (vtarget->tflags & MPT_TARGET_FLAGS_Q_YES) |
4367 | iocmd.flags |= MPT_ICFLAG_TAGGED_CMD; | 4267 | iocmd.flags |= MPT_ICFLAG_TAGGED_CMD; |
4368 | else { | 4268 | else { |
4369 | if (hd->ioc->facts.FWVersion.Word < 0x01000600) | 4269 | if (hd->ioc->facts.FWVersion.Word < 0x01000600) |
@@ -4579,7 +4479,7 @@ mptscsih_doDv(MPT_SCSI_HOST *hd, int bus_number, int id) | |||
4579 | /* Reset the size for disks | 4479 | /* Reset the size for disks |
4580 | */ | 4480 | */ |
4581 | inq0 = (*pbuf1) & 0x1F; | 4481 | inq0 = (*pbuf1) & 0x1F; |
4582 | if ((inq0 == 0) && pTarget && !pTarget->raidVolume) { | 4482 | if ((inq0 == 0) && vtarget && !vtarget->raidVolume) { |
4583 | sz = 0x40; | 4483 | sz = 0x40; |
4584 | iocmd.size = sz; | 4484 | iocmd.size = sz; |
4585 | } | 4485 | } |
@@ -4589,8 +4489,7 @@ mptscsih_doDv(MPT_SCSI_HOST *hd, int bus_number, int id) | |||
4589 | */ | 4489 | */ |
4590 | if (inq0 == TYPE_PROCESSOR) { | 4490 | if (inq0 == TYPE_PROCESSOR) { |
4591 | mptscsih_initTarget(hd, | 4491 | mptscsih_initTarget(hd, |
4592 | bus, | 4492 | vtarget, |
4593 | id, | ||
4594 | lun, | 4493 | lun, |
4595 | pbuf1, | 4494 | pbuf1, |
4596 | sz); | 4495 | sz); |
@@ -4604,22 +4503,22 @@ mptscsih_doDv(MPT_SCSI_HOST *hd, int bus_number, int id) | |||
4604 | goto target_done; | 4503 | goto target_done; |
4605 | 4504 | ||
4606 | if (sz == 0x40) { | 4505 | if (sz == 0x40) { |
4607 | if ((pTarget->maxWidth == 1) && (pTarget->maxOffset) && (nfactor < 0x0A) | 4506 | if ((vtarget->maxWidth == 1) && (vtarget->maxOffset) && (nfactor < 0x0A) |
4608 | && (pTarget->minSyncFactor > 0x09)) { | 4507 | && (vtarget->minSyncFactor > 0x09)) { |
4609 | if ((pbuf1[56] & 0x04) == 0) | 4508 | if ((pbuf1[56] & 0x04) == 0) |
4610 | ; | 4509 | ; |
4611 | else if ((pbuf1[56] & 0x01) == 1) { | 4510 | else if ((pbuf1[56] & 0x01) == 1) { |
4612 | pTarget->minSyncFactor = | 4511 | vtarget->minSyncFactor = |
4613 | nfactor > MPT_ULTRA320 ? nfactor : MPT_ULTRA320; | 4512 | nfactor > MPT_ULTRA320 ? nfactor : MPT_ULTRA320; |
4614 | } else { | 4513 | } else { |
4615 | pTarget->minSyncFactor = | 4514 | vtarget->minSyncFactor = |
4616 | nfactor > MPT_ULTRA160 ? nfactor : MPT_ULTRA160; | 4515 | nfactor > MPT_ULTRA160 ? nfactor : MPT_ULTRA160; |
4617 | } | 4516 | } |
4618 | 4517 | ||
4619 | dv.max.factor = pTarget->minSyncFactor; | 4518 | dv.max.factor = vtarget->minSyncFactor; |
4620 | 4519 | ||
4621 | if ((pbuf1[56] & 0x02) == 0) { | 4520 | if ((pbuf1[56] & 0x02) == 0) { |
4622 | pTarget->negoFlags |= MPT_TARGET_NO_NEGO_QAS; | 4521 | vtarget->negoFlags |= MPT_TARGET_NO_NEGO_QAS; |
4623 | hd->ioc->spi_data.noQas = MPT_TARGET_NO_NEGO_QAS; | 4522 | hd->ioc->spi_data.noQas = MPT_TARGET_NO_NEGO_QAS; |
4624 | ddvprintk((MYIOC_s_NOTE_FMT | 4523 | ddvprintk((MYIOC_s_NOTE_FMT |
4625 | "DV: Start Basic noQas on id=%d due to pbuf1[56]=%x\n", | 4524 | "DV: Start Basic noQas on id=%d due to pbuf1[56]=%x\n", |
@@ -4702,8 +4601,7 @@ mptscsih_doDv(MPT_SCSI_HOST *hd, int bus_number, int id) | |||
4702 | "DV:Inquiry compared id=%d, calling initTarget\n", ioc->name, id)); | 4601 | "DV:Inquiry compared id=%d, calling initTarget\n", ioc->name, id)); |
4703 | hd->ioc->spi_data.dvStatus[id] &= ~MPT_SCSICFG_DV_NOT_DONE; | 4602 | hd->ioc->spi_data.dvStatus[id] &= ~MPT_SCSICFG_DV_NOT_DONE; |
4704 | mptscsih_initTarget(hd, | 4603 | mptscsih_initTarget(hd, |
4705 | bus, | 4604 | vtarget, |
4706 | id, | ||
4707 | lun, | 4605 | lun, |
4708 | pbuf1, | 4606 | pbuf1, |
4709 | sz); | 4607 | sz); |
@@ -5204,7 +5102,7 @@ target_done: | |||
5204 | static void | 5102 | static void |
5205 | mptscsih_dv_parms(MPT_SCSI_HOST *hd, DVPARAMETERS *dv,void *pPage) | 5103 | mptscsih_dv_parms(MPT_SCSI_HOST *hd, DVPARAMETERS *dv,void *pPage) |
5206 | { | 5104 | { |
5207 | VirtDevice *pTarget; | 5105 | VirtTarget *vtarget; |
5208 | SCSIDevicePage0_t *pPage0; | 5106 | SCSIDevicePage0_t *pPage0; |
5209 | SCSIDevicePage1_t *pPage1; | 5107 | SCSIDevicePage1_t *pPage1; |
5210 | int val = 0, data, configuration; | 5108 | int val = 0, data, configuration; |
@@ -5224,11 +5122,11 @@ mptscsih_dv_parms(MPT_SCSI_HOST *hd, DVPARAMETERS *dv,void *pPage) | |||
5224 | * already throttled back. | 5122 | * already throttled back. |
5225 | */ | 5123 | */ |
5226 | negoFlags = hd->ioc->spi_data.noQas; | 5124 | negoFlags = hd->ioc->spi_data.noQas; |
5227 | if ((hd->Targets)&&((pTarget = hd->Targets[(int)id]) != NULL) && !pTarget->raidVolume) { | 5125 | if ((hd->Targets)&&((vtarget = hd->Targets[(int)id]) != NULL) && !vtarget->raidVolume) { |
5228 | width = pTarget->maxWidth; | 5126 | width = vtarget->maxWidth; |
5229 | offset = pTarget->maxOffset; | 5127 | offset = vtarget->maxOffset; |
5230 | factor = pTarget->minSyncFactor; | 5128 | factor = vtarget->minSyncFactor; |
5231 | negoFlags |= pTarget->negoFlags; | 5129 | negoFlags |= vtarget->negoFlags; |
5232 | } else { | 5130 | } else { |
5233 | if (hd->ioc->spi_data.nvram && (hd->ioc->spi_data.nvram[id] != MPT_HOST_NVRAM_INVALID)) { | 5131 | if (hd->ioc->spi_data.nvram && (hd->ioc->spi_data.nvram[id] != MPT_HOST_NVRAM_INVALID)) { |
5234 | data = hd->ioc->spi_data.nvram[id]; | 5132 | data = hd->ioc->spi_data.nvram[id]; |
@@ -5430,11 +5328,11 @@ mptscsih_dv_parms(MPT_SCSI_HOST *hd, DVPARAMETERS *dv,void *pPage) | |||
5430 | * or overwrite nvram (phys disks only). | 5328 | * or overwrite nvram (phys disks only). |
5431 | */ | 5329 | */ |
5432 | 5330 | ||
5433 | if ((hd->Targets)&&((pTarget = hd->Targets[(int)id]) != NULL) && !pTarget->raidVolume ) { | 5331 | if ((hd->Targets)&&((vtarget = hd->Targets[(int)id]) != NULL) && !vtarget->raidVolume ) { |
5434 | pTarget->maxWidth = dv->now.width; | 5332 | vtarget->maxWidth = dv->now.width; |
5435 | pTarget->maxOffset = dv->now.offset; | 5333 | vtarget->maxOffset = dv->now.offset; |
5436 | pTarget->minSyncFactor = dv->now.factor; | 5334 | vtarget->minSyncFactor = dv->now.factor; |
5437 | pTarget->negoFlags = dv->now.flags; | 5335 | vtarget->negoFlags = dv->now.flags; |
5438 | } else { | 5336 | } else { |
5439 | /* Preserv all flags, use | 5337 | /* Preserv all flags, use |
5440 | * read-modify-write algorithm | 5338 | * read-modify-write algorithm |
@@ -5588,6 +5486,94 @@ mptscsih_fillbuf(char *buffer, int size, int index, int width) | |||
5588 | break; | 5486 | break; |
5589 | } | 5487 | } |
5590 | } | 5488 | } |
5489 | |||
5490 | /*=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=*/ | ||
5491 | /* If DV disabled (negoNvram set to USE_NVARM) or if not LUN 0, return. | ||
5492 | * Else set the NEED_DV flag after Read Capacity Issued (disks) | ||
5493 | * or Mode Sense (cdroms). | ||
5494 | * | ||
5495 | * Tapes, initTarget will set this flag on completion of Inquiry command. | ||
5496 | * Called only if DV_NOT_DONE flag is set | ||
5497 | */ | ||
5498 | static void | ||
5499 | mptscsih_set_dvflags(MPT_SCSI_HOST *hd, struct scsi_cmnd *sc) | ||
5500 | { | ||
5501 | MPT_ADAPTER *ioc = hd->ioc; | ||
5502 | u8 cmd; | ||
5503 | SpiCfgData *pSpi; | ||
5504 | |||
5505 | ddvtprintk((MYIOC_s_NOTE_FMT | ||
5506 | " set_dvflags: id=%d lun=%d negoNvram=%x cmd=%x\n", | ||
5507 | hd->ioc->name, sc->device->id, sc->device->lun , hd->negoNvram, sc->cmnd[0])); | ||
5508 | |||
5509 | if ((sc->device->lun != 0) || (hd->negoNvram != 0)) | ||
5510 | return; | ||
5511 | |||
5512 | cmd = sc->cmnd[0]; | ||
5513 | |||
5514 | if ((cmd == READ_CAPACITY) || (cmd == MODE_SENSE)) { | ||
5515 | pSpi = &ioc->spi_data; | ||
5516 | if ((ioc->raid_data.isRaid & (1 << sc->device->id)) && ioc->raid_data.pIocPg3) { | ||
5517 | /* Set NEED_DV for all hidden disks | ||
5518 | */ | ||
5519 | Ioc3PhysDisk_t *pPDisk = ioc->raid_data.pIocPg3->PhysDisk; | ||
5520 | int numPDisk = ioc->raid_data.pIocPg3->NumPhysDisks; | ||
5521 | |||
5522 | while (numPDisk) { | ||
5523 | pSpi->dvStatus[pPDisk->PhysDiskID] |= MPT_SCSICFG_NEED_DV; | ||
5524 | ddvtprintk(("NEED_DV set for phys disk id %d\n", pPDisk->PhysDiskID)); | ||
5525 | pPDisk++; | ||
5526 | numPDisk--; | ||
5527 | } | ||
5528 | } | ||
5529 | pSpi->dvStatus[sc->device->id] |= MPT_SCSICFG_NEED_DV; | ||
5530 | ddvtprintk(("NEED_DV set for visible disk id %d\n", sc->device->id)); | ||
5531 | } | ||
5532 | } | ||
5533 | |||
5534 | /* mptscsih_raid_set_dv_flags() | ||
5535 | * | ||
5536 | * New or replaced disk. Set DV flag and schedule DV. | ||
5537 | */ | ||
5538 | static void | ||
5539 | mptscsih_set_dvflags_raid(MPT_SCSI_HOST *hd, int id) | ||
5540 | { | ||
5541 | MPT_ADAPTER *ioc = hd->ioc; | ||
5542 | SpiCfgData *pSpi = &ioc->spi_data; | ||
5543 | Ioc3PhysDisk_t *pPDisk; | ||
5544 | int numPDisk; | ||
5545 | |||
5546 | if (hd->negoNvram != 0) | ||
5547 | return; | ||
5548 | |||
5549 | ddvtprintk(("DV requested for phys disk id %d\n", id)); | ||
5550 | if (ioc->raid_data.pIocPg3) { | ||
5551 | pPDisk = ioc->raid_data.pIocPg3->PhysDisk; | ||
5552 | numPDisk = ioc->raid_data.pIocPg3->NumPhysDisks; | ||
5553 | while (numPDisk) { | ||
5554 | if (id == pPDisk->PhysDiskNum) { | ||
5555 | pSpi->dvStatus[pPDisk->PhysDiskID] = | ||
5556 | (MPT_SCSICFG_NEED_DV | MPT_SCSICFG_DV_NOT_DONE); | ||
5557 | pSpi->forceDv = MPT_SCSICFG_NEED_DV; | ||
5558 | ddvtprintk(("NEED_DV set for phys disk id %d\n", | ||
5559 | pPDisk->PhysDiskID)); | ||
5560 | break; | ||
5561 | } | ||
5562 | pPDisk++; | ||
5563 | numPDisk--; | ||
5564 | } | ||
5565 | |||
5566 | if (numPDisk == 0) { | ||
5567 | /* The physical disk that needs DV was not found | ||
5568 | * in the stored IOC Page 3. The driver must reload | ||
5569 | * this page. DV routine will set the NEED_DV flag for | ||
5570 | * all phys disks that have DV_NOT_DONE set. | ||
5571 | */ | ||
5572 | pSpi->forceDv = MPT_SCSICFG_NEED_DV | MPT_SCSICFG_RELOAD_IOC_PG3; | ||
5573 | ddvtprintk(("phys disk %d not found. Setting reload IOC Pg3 Flag\n",id)); | ||
5574 | } | ||
5575 | } | ||
5576 | } | ||
5591 | #endif /* ~MPTSCSIH_ENABLE_DOMAIN_VALIDATION */ | 5577 | #endif /* ~MPTSCSIH_ENABLE_DOMAIN_VALIDATION */ |
5592 | 5578 | ||
5593 | EXPORT_SYMBOL(mptscsih_remove); | 5579 | EXPORT_SYMBOL(mptscsih_remove); |
@@ -5599,7 +5585,9 @@ EXPORT_SYMBOL(mptscsih_resume); | |||
5599 | EXPORT_SYMBOL(mptscsih_proc_info); | 5585 | EXPORT_SYMBOL(mptscsih_proc_info); |
5600 | EXPORT_SYMBOL(mptscsih_info); | 5586 | EXPORT_SYMBOL(mptscsih_info); |
5601 | EXPORT_SYMBOL(mptscsih_qcmd); | 5587 | EXPORT_SYMBOL(mptscsih_qcmd); |
5588 | EXPORT_SYMBOL(mptscsih_target_alloc); | ||
5602 | EXPORT_SYMBOL(mptscsih_slave_alloc); | 5589 | EXPORT_SYMBOL(mptscsih_slave_alloc); |
5590 | EXPORT_SYMBOL(mptscsih_target_destroy); | ||
5603 | EXPORT_SYMBOL(mptscsih_slave_destroy); | 5591 | EXPORT_SYMBOL(mptscsih_slave_destroy); |
5604 | EXPORT_SYMBOL(mptscsih_slave_configure); | 5592 | EXPORT_SYMBOL(mptscsih_slave_configure); |
5605 | EXPORT_SYMBOL(mptscsih_abort); | 5593 | EXPORT_SYMBOL(mptscsih_abort); |
diff --git a/drivers/message/fusion/mptscsih.h b/drivers/message/fusion/mptscsih.h index 971fda4b8b57..d3cba12f4bd9 100644 --- a/drivers/message/fusion/mptscsih.h +++ b/drivers/message/fusion/mptscsih.h | |||
@@ -91,7 +91,9 @@ extern int mptscsih_resume(struct pci_dev *pdev); | |||
91 | extern int mptscsih_proc_info(struct Scsi_Host *host, char *buffer, char **start, off_t offset, int length, int func); | 91 | extern int mptscsih_proc_info(struct Scsi_Host *host, char *buffer, char **start, off_t offset, int length, int func); |
92 | extern const char * mptscsih_info(struct Scsi_Host *SChost); | 92 | extern const char * mptscsih_info(struct Scsi_Host *SChost); |
93 | extern int mptscsih_qcmd(struct scsi_cmnd *SCpnt, void (*done)(struct scsi_cmnd *)); | 93 | extern int mptscsih_qcmd(struct scsi_cmnd *SCpnt, void (*done)(struct scsi_cmnd *)); |
94 | extern int mptscsih_target_alloc(struct scsi_target *starget); | ||
94 | extern int mptscsih_slave_alloc(struct scsi_device *device); | 95 | extern int mptscsih_slave_alloc(struct scsi_device *device); |
96 | extern void mptscsih_target_destroy(struct scsi_target *starget); | ||
95 | extern void mptscsih_slave_destroy(struct scsi_device *device); | 97 | extern void mptscsih_slave_destroy(struct scsi_device *device); |
96 | extern int mptscsih_slave_configure(struct scsi_device *device); | 98 | extern int mptscsih_slave_configure(struct scsi_device *device); |
97 | extern int mptscsih_abort(struct scsi_cmnd * SCpnt); | 99 | extern int mptscsih_abort(struct scsi_cmnd * SCpnt); |
diff --git a/drivers/message/fusion/mptspi.c b/drivers/message/fusion/mptspi.c index 5c0e307d1d5d..ce332a6085e5 100644 --- a/drivers/message/fusion/mptspi.c +++ b/drivers/message/fusion/mptspi.c | |||
@@ -103,13 +103,16 @@ static int mptspiTaskCtx = -1; | |||
103 | static int mptspiInternalCtx = -1; /* Used only for internal commands */ | 103 | static int mptspiInternalCtx = -1; /* Used only for internal commands */ |
104 | 104 | ||
105 | static struct scsi_host_template mptspi_driver_template = { | 105 | static struct scsi_host_template mptspi_driver_template = { |
106 | .module = THIS_MODULE, | ||
106 | .proc_name = "mptspi", | 107 | .proc_name = "mptspi", |
107 | .proc_info = mptscsih_proc_info, | 108 | .proc_info = mptscsih_proc_info, |
108 | .name = "MPT SPI Host", | 109 | .name = "MPT SPI Host", |
109 | .info = mptscsih_info, | 110 | .info = mptscsih_info, |
110 | .queuecommand = mptscsih_qcmd, | 111 | .queuecommand = mptscsih_qcmd, |
112 | .target_alloc = mptscsih_target_alloc, | ||
111 | .slave_alloc = mptscsih_slave_alloc, | 113 | .slave_alloc = mptscsih_slave_alloc, |
112 | .slave_configure = mptscsih_slave_configure, | 114 | .slave_configure = mptscsih_slave_configure, |
115 | .target_destroy = mptscsih_target_destroy, | ||
113 | .slave_destroy = mptscsih_slave_destroy, | 116 | .slave_destroy = mptscsih_slave_destroy, |
114 | .change_queue_depth = mptscsih_change_queue_depth, | 117 | .change_queue_depth = mptscsih_change_queue_depth, |
115 | .eh_abort_handler = mptscsih_abort, | 118 | .eh_abort_handler = mptscsih_abort, |
@@ -177,13 +180,15 @@ mptspi_probe(struct pci_dev *pdev, const struct pci_device_id *id) | |||
177 | printk(MYIOC_s_WARN_FMT | 180 | printk(MYIOC_s_WARN_FMT |
178 | "Skipping because it's not operational!\n", | 181 | "Skipping because it's not operational!\n", |
179 | ioc->name); | 182 | ioc->name); |
180 | return -ENODEV; | 183 | error = -ENODEV; |
184 | goto out_mptspi_probe; | ||
181 | } | 185 | } |
182 | 186 | ||
183 | if (!ioc->active) { | 187 | if (!ioc->active) { |
184 | printk(MYIOC_s_WARN_FMT "Skipping because it's disabled!\n", | 188 | printk(MYIOC_s_WARN_FMT "Skipping because it's disabled!\n", |
185 | ioc->name); | 189 | ioc->name); |
186 | return -ENODEV; | 190 | error = -ENODEV; |
191 | goto out_mptspi_probe; | ||
187 | } | 192 | } |
188 | 193 | ||
189 | /* Sanity check - ensure at least 1 port is INITIATOR capable | 194 | /* Sanity check - ensure at least 1 port is INITIATOR capable |
@@ -208,7 +213,8 @@ mptspi_probe(struct pci_dev *pdev, const struct pci_device_id *id) | |||
208 | printk(MYIOC_s_WARN_FMT | 213 | printk(MYIOC_s_WARN_FMT |
209 | "Unable to register controller with SCSI subsystem\n", | 214 | "Unable to register controller with SCSI subsystem\n", |
210 | ioc->name); | 215 | ioc->name); |
211 | return -1; | 216 | error = -1; |
217 | goto out_mptspi_probe; | ||
212 | } | 218 | } |
213 | 219 | ||
214 | spin_lock_irqsave(&ioc->FreeQlock, flags); | 220 | spin_lock_irqsave(&ioc->FreeQlock, flags); |
@@ -286,7 +292,7 @@ mptspi_probe(struct pci_dev *pdev, const struct pci_device_id *id) | |||
286 | mem = kmalloc(sz, GFP_ATOMIC); | 292 | mem = kmalloc(sz, GFP_ATOMIC); |
287 | if (mem == NULL) { | 293 | if (mem == NULL) { |
288 | error = -ENOMEM; | 294 | error = -ENOMEM; |
289 | goto mptspi_probe_failed; | 295 | goto out_mptspi_probe; |
290 | } | 296 | } |
291 | 297 | ||
292 | memset(mem, 0, sz); | 298 | memset(mem, 0, sz); |
@@ -304,14 +310,14 @@ mptspi_probe(struct pci_dev *pdev, const struct pci_device_id *id) | |||
304 | mem = kmalloc(sz, GFP_ATOMIC); | 310 | mem = kmalloc(sz, GFP_ATOMIC); |
305 | if (mem == NULL) { | 311 | if (mem == NULL) { |
306 | error = -ENOMEM; | 312 | error = -ENOMEM; |
307 | goto mptspi_probe_failed; | 313 | goto out_mptspi_probe; |
308 | } | 314 | } |
309 | 315 | ||
310 | memset(mem, 0, sz); | 316 | memset(mem, 0, sz); |
311 | hd->Targets = (VirtDevice **) mem; | 317 | hd->Targets = (VirtTarget **) mem; |
312 | 318 | ||
313 | dprintk((KERN_INFO | 319 | dprintk((KERN_INFO |
314 | " Targets @ %p, sz=%d\n", hd->Targets, sz)); | 320 | " vdev @ %p, sz=%d\n", hd->Targets, sz)); |
315 | 321 | ||
316 | /* Clear the TM flags | 322 | /* Clear the TM flags |
317 | */ | 323 | */ |
@@ -385,13 +391,13 @@ mptspi_probe(struct pci_dev *pdev, const struct pci_device_id *id) | |||
385 | if(error) { | 391 | if(error) { |
386 | dprintk((KERN_ERR MYNAM | 392 | dprintk((KERN_ERR MYNAM |
387 | "scsi_add_host failed\n")); | 393 | "scsi_add_host failed\n")); |
388 | goto mptspi_probe_failed; | 394 | goto out_mptspi_probe; |
389 | } | 395 | } |
390 | 396 | ||
391 | scsi_scan_host(sh); | 397 | scsi_scan_host(sh); |
392 | return 0; | 398 | return 0; |
393 | 399 | ||
394 | mptspi_probe_failed: | 400 | out_mptspi_probe: |
395 | 401 | ||
396 | mptscsih_remove(pdev); | 402 | mptscsih_remove(pdev); |
397 | return error; | 403 | return error; |
diff --git a/drivers/scsi/53c700.c b/drivers/scsi/53c700.c index e7ad269041a4..4ce7438608ec 100644 --- a/drivers/scsi/53c700.c +++ b/drivers/scsi/53c700.c | |||
@@ -857,7 +857,7 @@ process_extended_message(struct Scsi_Host *host, | |||
857 | printk(KERN_INFO "scsi%d (%d:%d): Unexpected message %s: ", | 857 | printk(KERN_INFO "scsi%d (%d:%d): Unexpected message %s: ", |
858 | host->host_no, pun, lun, | 858 | host->host_no, pun, lun, |
859 | NCR_700_phase[(dsps & 0xf00) >> 8]); | 859 | NCR_700_phase[(dsps & 0xf00) >> 8]); |
860 | scsi_print_msg(hostdata->msgin); | 860 | spi_print_msg(hostdata->msgin); |
861 | printk("\n"); | 861 | printk("\n"); |
862 | /* just reject it */ | 862 | /* just reject it */ |
863 | hostdata->msgout[0] = A_REJECT_MSG; | 863 | hostdata->msgout[0] = A_REJECT_MSG; |
@@ -887,7 +887,7 @@ process_message(struct Scsi_Host *host, struct NCR_700_Host_Parameters *hostdata | |||
887 | #ifdef NCR_700_DEBUG | 887 | #ifdef NCR_700_DEBUG |
888 | printk("scsi%d (%d:%d): message %s: ", host->host_no, pun, lun, | 888 | printk("scsi%d (%d:%d): message %s: ", host->host_no, pun, lun, |
889 | NCR_700_phase[(dsps & 0xf00) >> 8]); | 889 | NCR_700_phase[(dsps & 0xf00) >> 8]); |
890 | scsi_print_msg(hostdata->msgin); | 890 | spi_print_msg(hostdata->msgin); |
891 | printk("\n"); | 891 | printk("\n"); |
892 | #endif | 892 | #endif |
893 | 893 | ||
@@ -939,7 +939,7 @@ process_message(struct Scsi_Host *host, struct NCR_700_Host_Parameters *hostdata | |||
939 | host->host_no, pun, lun, | 939 | host->host_no, pun, lun, |
940 | NCR_700_phase[(dsps & 0xf00) >> 8]); | 940 | NCR_700_phase[(dsps & 0xf00) >> 8]); |
941 | 941 | ||
942 | scsi_print_msg(hostdata->msgin); | 942 | spi_print_msg(hostdata->msgin); |
943 | printk("\n"); | 943 | printk("\n"); |
944 | /* just reject it */ | 944 | /* just reject it */ |
945 | hostdata->msgout[0] = A_REJECT_MSG; | 945 | hostdata->msgout[0] = A_REJECT_MSG; |
diff --git a/drivers/scsi/53c700.h b/drivers/scsi/53c700.h index 362d78483d09..a8c83bb03630 100644 --- a/drivers/scsi/53c700.h +++ b/drivers/scsi/53c700.h | |||
@@ -238,21 +238,23 @@ struct NCR_700_Host_Parameters { | |||
238 | #ifdef CONFIG_53C700_LE_ON_BE | 238 | #ifdef CONFIG_53C700_LE_ON_BE |
239 | #define bE (hostdata->force_le_on_be ? 0 : 3) | 239 | #define bE (hostdata->force_le_on_be ? 0 : 3) |
240 | #define bSWAP (hostdata->force_le_on_be) | 240 | #define bSWAP (hostdata->force_le_on_be) |
241 | /* This is terrible, but there's no raw version of ioread32. That means | 241 | #define bEBus (!hostdata->force_le_on_be) |
242 | * that on a be board we swap twice (once in ioread32 and once again to | ||
243 | * get the value correct) */ | ||
244 | #define bS_to_io(x) ((hostdata->force_le_on_be) ? (x) : cpu_to_le32(x)) | ||
245 | #elif defined(__BIG_ENDIAN) | 242 | #elif defined(__BIG_ENDIAN) |
246 | #define bE 3 | 243 | #define bE 3 |
247 | #define bSWAP 0 | 244 | #define bSWAP 0 |
248 | #define bS_to_io(x) (x) | ||
249 | #elif defined(__LITTLE_ENDIAN) | 245 | #elif defined(__LITTLE_ENDIAN) |
250 | #define bE 0 | 246 | #define bE 0 |
251 | #define bSWAP 0 | 247 | #define bSWAP 0 |
252 | #define bS_to_io(x) (x) | ||
253 | #else | 248 | #else |
254 | #error "__BIG_ENDIAN or __LITTLE_ENDIAN must be defined, did you include byteorder.h?" | 249 | #error "__BIG_ENDIAN or __LITTLE_ENDIAN must be defined, did you include byteorder.h?" |
255 | #endif | 250 | #endif |
251 | #ifndef bEBus | ||
252 | #ifdef CONFIG_53C700_BE_BUS | ||
253 | #define bEBus 1 | ||
254 | #else | ||
255 | #define bEBus 0 | ||
256 | #endif | ||
257 | #endif | ||
256 | #define bS_to_cpu(x) (bSWAP ? le32_to_cpu(x) : (x)) | 258 | #define bS_to_cpu(x) (bSWAP ? le32_to_cpu(x) : (x)) |
257 | #define bS_to_host(x) (bSWAP ? cpu_to_le32(x) : (x)) | 259 | #define bS_to_host(x) (bSWAP ? cpu_to_le32(x) : (x)) |
258 | 260 | ||
@@ -466,14 +468,15 @@ NCR_700_readl(struct Scsi_Host *host, __u32 reg) | |||
466 | { | 468 | { |
467 | const struct NCR_700_Host_Parameters *hostdata | 469 | const struct NCR_700_Host_Parameters *hostdata |
468 | = (struct NCR_700_Host_Parameters *)host->hostdata[0]; | 470 | = (struct NCR_700_Host_Parameters *)host->hostdata[0]; |
469 | __u32 value = ioread32(hostdata->base + reg); | 471 | __u32 value = bEBus ? ioread32be(hostdata->base + reg) : |
472 | ioread32(hostdata->base + reg); | ||
470 | #if 1 | 473 | #if 1 |
471 | /* sanity check the register */ | 474 | /* sanity check the register */ |
472 | if((reg & 0x3) != 0) | 475 | if((reg & 0x3) != 0) |
473 | BUG(); | 476 | BUG(); |
474 | #endif | 477 | #endif |
475 | 478 | ||
476 | return bS_to_io(value); | 479 | return value; |
477 | } | 480 | } |
478 | 481 | ||
479 | static inline void | 482 | static inline void |
@@ -497,7 +500,8 @@ NCR_700_writel(__u32 value, struct Scsi_Host *host, __u32 reg) | |||
497 | BUG(); | 500 | BUG(); |
498 | #endif | 501 | #endif |
499 | 502 | ||
500 | iowrite32(bS_to_io(value), hostdata->base + reg); | 503 | bEBus ? iowrite32be(value, hostdata->base + reg): |
504 | iowrite32(value, hostdata->base + reg); | ||
501 | } | 505 | } |
502 | 506 | ||
503 | #endif | 507 | #endif |
diff --git a/drivers/scsi/53c7xx.c b/drivers/scsi/53c7xx.c index 9cb5dd48383f..7894b8ea84bd 100644 --- a/drivers/scsi/53c7xx.c +++ b/drivers/scsi/53c7xx.c | |||
@@ -282,6 +282,7 @@ | |||
282 | #include "scsi.h" | 282 | #include "scsi.h" |
283 | #include <scsi/scsi_dbg.h> | 283 | #include <scsi/scsi_dbg.h> |
284 | #include <scsi/scsi_host.h> | 284 | #include <scsi/scsi_host.h> |
285 | #include <scsi/scsi_transport_spi.h> | ||
285 | #include "53c7xx.h" | 286 | #include "53c7xx.h" |
286 | #include <linux/stat.h> | 287 | #include <linux/stat.h> |
287 | #include <linux/stddef.h> | 288 | #include <linux/stddef.h> |
@@ -1724,7 +1725,7 @@ NCR53c7xx_run_tests (struct Scsi_Host *host) { | |||
1724 | printk ("scsi%d : status ", host->host_no); | 1725 | printk ("scsi%d : status ", host->host_no); |
1725 | scsi_print_status (status); | 1726 | scsi_print_status (status); |
1726 | printk ("\nscsi%d : message ", host->host_no); | 1727 | printk ("\nscsi%d : message ", host->host_no); |
1727 | scsi_print_msg (&msg); | 1728 | spi_print_msg(&msg); |
1728 | printk ("\n"); | 1729 | printk ("\n"); |
1729 | } else if (hostdata->test_completed == 3) { | 1730 | } else if (hostdata->test_completed == 3) { |
1730 | printk("scsi%d : test 2 no connection with target %d\n", | 1731 | printk("scsi%d : test 2 no connection with target %d\n", |
@@ -2313,7 +2314,7 @@ NCR53c7x0_dstat_sir_intr (struct Scsi_Host *host, struct | |||
2313 | printk ("scsi%d : received message", host->host_no); | 2314 | printk ("scsi%d : received message", host->host_no); |
2314 | if (c) | 2315 | if (c) |
2315 | printk (" from target %d lun %d ", c->device->id, c->device->lun); | 2316 | printk (" from target %d lun %d ", c->device->id, c->device->lun); |
2316 | scsi_print_msg ((unsigned char *) hostdata->msg_buf); | 2317 | spi_print_msg((unsigned char *) hostdata->msg_buf); |
2317 | printk("\n"); | 2318 | printk("\n"); |
2318 | } | 2319 | } |
2319 | 2320 | ||
@@ -5540,7 +5541,7 @@ print_dsa (struct Scsi_Host *host, u32 *dsa, const char *prefix) { | |||
5540 | i > 0 && !check_address ((unsigned long) ptr, 1); | 5541 | i > 0 && !check_address ((unsigned long) ptr, 1); |
5541 | ptr += len, i -= len) { | 5542 | ptr += len, i -= len) { |
5542 | printk(" "); | 5543 | printk(" "); |
5543 | len = scsi_print_msg (ptr); | 5544 | len = spi_print_msg(ptr); |
5544 | printk("\n"); | 5545 | printk("\n"); |
5545 | if (!len) | 5546 | if (!len) |
5546 | break; | 5547 | break; |
diff --git a/drivers/scsi/Kconfig b/drivers/scsi/Kconfig index 20dd85a77813..4c42065dea88 100644 --- a/drivers/scsi/Kconfig +++ b/drivers/scsi/Kconfig | |||
@@ -336,6 +336,7 @@ config SCSI_ACARD | |||
336 | config SCSI_AHA152X | 336 | config SCSI_AHA152X |
337 | tristate "Adaptec AHA152X/2825 support" | 337 | tristate "Adaptec AHA152X/2825 support" |
338 | depends on ISA && SCSI && !64BIT | 338 | depends on ISA && SCSI && !64BIT |
339 | select SCSI_SPI_ATTRS | ||
339 | ---help--- | 340 | ---help--- |
340 | This is a driver for the AHA-1510, AHA-1520, AHA-1522, and AHA-2825 | 341 | This is a driver for the AHA-1510, AHA-1520, AHA-1522, and AHA-2825 |
341 | SCSI host adapters. It also works for the AVA-1505, but the IRQ etc. | 342 | SCSI host adapters. It also works for the AVA-1505, but the IRQ etc. |
@@ -623,6 +624,7 @@ config SCSI_OMIT_FLASHPOINT | |||
623 | config SCSI_DMX3191D | 624 | config SCSI_DMX3191D |
624 | tristate "DMX3191D SCSI support" | 625 | tristate "DMX3191D SCSI support" |
625 | depends on PCI && SCSI | 626 | depends on PCI && SCSI |
627 | select SCSI_SPI_ATTRS | ||
626 | help | 628 | help |
627 | This is support for Domex DMX3191D SCSI Host Adapters. | 629 | This is support for Domex DMX3191D SCSI Host Adapters. |
628 | 630 | ||
@@ -632,6 +634,7 @@ config SCSI_DMX3191D | |||
632 | config SCSI_DTC3280 | 634 | config SCSI_DTC3280 |
633 | tristate "DTC3180/3280 SCSI support" | 635 | tristate "DTC3180/3280 SCSI support" |
634 | depends on ISA && SCSI | 636 | depends on ISA && SCSI |
637 | select SCSI_SPI_ATTRS | ||
635 | help | 638 | help |
636 | This is support for DTC 3180/3280 SCSI Host Adapters. Please read | 639 | This is support for DTC 3180/3280 SCSI Host Adapters. Please read |
637 | the SCSI-HOWTO, available from | 640 | the SCSI-HOWTO, available from |
@@ -752,6 +755,7 @@ config SCSI_GDTH | |||
752 | config SCSI_GENERIC_NCR5380 | 755 | config SCSI_GENERIC_NCR5380 |
753 | tristate "Generic NCR5380/53c400 SCSI PIO support" | 756 | tristate "Generic NCR5380/53c400 SCSI PIO support" |
754 | depends on ISA && SCSI | 757 | depends on ISA && SCSI |
758 | select SCSI_SPI_ATTRS | ||
755 | ---help--- | 759 | ---help--- |
756 | This is a driver for the old NCR 53c80 series of SCSI controllers | 760 | This is a driver for the old NCR 53c80 series of SCSI controllers |
757 | on boards using PIO. Most boards such as the Trantor T130 fit this | 761 | on boards using PIO. Most boards such as the Trantor T130 fit this |
@@ -771,6 +775,7 @@ config SCSI_GENERIC_NCR5380 | |||
771 | config SCSI_GENERIC_NCR5380_MMIO | 775 | config SCSI_GENERIC_NCR5380_MMIO |
772 | tristate "Generic NCR5380/53c400 SCSI MMIO support" | 776 | tristate "Generic NCR5380/53c400 SCSI MMIO support" |
773 | depends on ISA && SCSI | 777 | depends on ISA && SCSI |
778 | select SCSI_SPI_ATTRS | ||
774 | ---help--- | 779 | ---help--- |
775 | This is a driver for the old NCR 53c80 series of SCSI controllers | 780 | This is a driver for the old NCR 53c80 series of SCSI controllers |
776 | on boards using memory mapped I/O. | 781 | on boards using memory mapped I/O. |
@@ -1254,6 +1259,7 @@ config SCSI_MCA_53C9X | |||
1254 | config SCSI_PAS16 | 1259 | config SCSI_PAS16 |
1255 | tristate "PAS16 SCSI support" | 1260 | tristate "PAS16 SCSI support" |
1256 | depends on ISA && SCSI | 1261 | depends on ISA && SCSI |
1262 | select SCSI_SPI_ATTRS | ||
1257 | ---help--- | 1263 | ---help--- |
1258 | This is support for a SCSI host adapter. It is explained in section | 1264 | This is support for a SCSI host adapter. It is explained in section |
1259 | 3.10 of the SCSI-HOWTO, available from | 1265 | 3.10 of the SCSI-HOWTO, available from |
@@ -1423,6 +1429,7 @@ config SCSI_DC390T | |||
1423 | config SCSI_T128 | 1429 | config SCSI_T128 |
1424 | tristate "Trantor T128/T128F/T228 SCSI support" | 1430 | tristate "Trantor T128/T128F/T228 SCSI support" |
1425 | depends on ISA && SCSI | 1431 | depends on ISA && SCSI |
1432 | select SCSI_SPI_ATTRS | ||
1426 | ---help--- | 1433 | ---help--- |
1427 | This is support for a SCSI host adapter. It is explained in section | 1434 | This is support for a SCSI host adapter. It is explained in section |
1428 | 3.11 of the SCSI-HOWTO, available from | 1435 | 3.11 of the SCSI-HOWTO, available from |
@@ -1681,6 +1688,7 @@ config OKTAGON_SCSI | |||
1681 | config ATARI_SCSI | 1688 | config ATARI_SCSI |
1682 | tristate "Atari native SCSI support" | 1689 | tristate "Atari native SCSI support" |
1683 | depends on ATARI && SCSI && BROKEN | 1690 | depends on ATARI && SCSI && BROKEN |
1691 | select SCSI_SPI_ATTRS | ||
1684 | ---help--- | 1692 | ---help--- |
1685 | If you have an Atari with built-in NCR5380 SCSI controller (TT, | 1693 | If you have an Atari with built-in NCR5380 SCSI controller (TT, |
1686 | Falcon, ...) say Y to get it supported. Of course also, if you have | 1694 | Falcon, ...) say Y to get it supported. Of course also, if you have |
@@ -1722,6 +1730,7 @@ config TT_DMA_EMUL | |||
1722 | config MAC_SCSI | 1730 | config MAC_SCSI |
1723 | bool "Macintosh NCR5380 SCSI" | 1731 | bool "Macintosh NCR5380 SCSI" |
1724 | depends on MAC && SCSI=y | 1732 | depends on MAC && SCSI=y |
1733 | select SCSI_SPI_ATTRS | ||
1725 | help | 1734 | help |
1726 | This is the NCR 5380 SCSI controller included on most of the 68030 | 1735 | This is the NCR 5380 SCSI controller included on most of the 68030 |
1727 | based Macintoshes. If you have one of these say Y and read the | 1736 | based Macintoshes. If you have one of these say Y and read the |
@@ -1743,6 +1752,7 @@ config SCSI_MAC_ESP | |||
1743 | config MVME147_SCSI | 1752 | config MVME147_SCSI |
1744 | bool "WD33C93 SCSI driver for MVME147" | 1753 | bool "WD33C93 SCSI driver for MVME147" |
1745 | depends on MVME147 && SCSI=y | 1754 | depends on MVME147 && SCSI=y |
1755 | select SCSI_SPI_ATTRS | ||
1746 | help | 1756 | help |
1747 | Support for the on-board SCSI controller on the Motorola MVME147 | 1757 | Support for the on-board SCSI controller on the Motorola MVME147 |
1748 | single-board computer. | 1758 | single-board computer. |
@@ -1750,6 +1760,7 @@ config MVME147_SCSI | |||
1750 | config MVME16x_SCSI | 1760 | config MVME16x_SCSI |
1751 | bool "NCR53C710 SCSI driver for MVME16x" | 1761 | bool "NCR53C710 SCSI driver for MVME16x" |
1752 | depends on MVME16x && SCSI && BROKEN | 1762 | depends on MVME16x && SCSI && BROKEN |
1763 | select SCSI_SPI_ATTRS | ||
1753 | help | 1764 | help |
1754 | The Motorola MVME162, 166, 167, 172 and 177 boards use the NCR53C710 | 1765 | The Motorola MVME162, 166, 167, 172 and 177 boards use the NCR53C710 |
1755 | SCSI controller chip. Almost everyone using one of these boards | 1766 | SCSI controller chip. Almost everyone using one of these boards |
@@ -1758,6 +1769,7 @@ config MVME16x_SCSI | |||
1758 | config BVME6000_SCSI | 1769 | config BVME6000_SCSI |
1759 | bool "NCR53C710 SCSI driver for BVME6000" | 1770 | bool "NCR53C710 SCSI driver for BVME6000" |
1760 | depends on BVME6000 && SCSI && BROKEN | 1771 | depends on BVME6000 && SCSI && BROKEN |
1772 | select SCSI_SPI_ATTRS | ||
1761 | help | 1773 | help |
1762 | The BVME4000 and BVME6000 boards from BVM Ltd use the NCR53C710 | 1774 | The BVME4000 and BVME6000 boards from BVM Ltd use the NCR53C710 |
1763 | SCSI controller chip. Almost everyone using one of these boards | 1775 | SCSI controller chip. Almost everyone using one of these boards |
@@ -1774,6 +1786,7 @@ config SCSI_NCR53C7xx_FAST | |||
1774 | config SUN3_SCSI | 1786 | config SUN3_SCSI |
1775 | tristate "Sun3 NCR5380 SCSI" | 1787 | tristate "Sun3 NCR5380 SCSI" |
1776 | depends on SUN3 && SCSI && BROKEN | 1788 | depends on SUN3 && SCSI && BROKEN |
1789 | select SCSI_SPI_ATTRS | ||
1777 | help | 1790 | help |
1778 | This option will enable support for the OBIO (onboard io) NCR5380 | 1791 | This option will enable support for the OBIO (onboard io) NCR5380 |
1779 | SCSI controller found in the Sun 3/50 and 3/60, as well as for | 1792 | SCSI controller found in the Sun 3/50 and 3/60, as well as for |
diff --git a/drivers/scsi/NCR5380.c b/drivers/scsi/NCR5380.c index cba9655d0f14..9f0ddbe6dc76 100644 --- a/drivers/scsi/NCR5380.c +++ b/drivers/scsi/NCR5380.c | |||
@@ -87,6 +87,7 @@ | |||
87 | * the high level code. | 87 | * the high level code. |
88 | */ | 88 | */ |
89 | #include <scsi/scsi_dbg.h> | 89 | #include <scsi/scsi_dbg.h> |
90 | #include <scsi/scsi_transport_spi.h> | ||
90 | 91 | ||
91 | #ifndef NDEBUG | 92 | #ifndef NDEBUG |
92 | #define NDEBUG 0 | 93 | #define NDEBUG 0 |
@@ -2377,7 +2378,7 @@ static void NCR5380_information_transfer(struct Scsi_Host *instance) { | |||
2377 | * 3..length+1 arguments | 2378 | * 3..length+1 arguments |
2378 | * | 2379 | * |
2379 | * Start the extended message buffer with the EXTENDED_MESSAGE | 2380 | * Start the extended message buffer with the EXTENDED_MESSAGE |
2380 | * byte, since scsi_print_msg() wants the whole thing. | 2381 | * byte, since spi_print_msg() wants the whole thing. |
2381 | */ | 2382 | */ |
2382 | extended_msg[0] = EXTENDED_MESSAGE; | 2383 | extended_msg[0] = EXTENDED_MESSAGE; |
2383 | /* Accept first byte by clearing ACK */ | 2384 | /* Accept first byte by clearing ACK */ |
@@ -2424,7 +2425,7 @@ static void NCR5380_information_transfer(struct Scsi_Host *instance) { | |||
2424 | default: | 2425 | default: |
2425 | if (!tmp) { | 2426 | if (!tmp) { |
2426 | printk("scsi%d: rejecting message ", instance->host_no); | 2427 | printk("scsi%d: rejecting message ", instance->host_no); |
2427 | scsi_print_msg(extended_msg); | 2428 | spi_print_msg(extended_msg); |
2428 | printk("\n"); | 2429 | printk("\n"); |
2429 | } else if (tmp != EXTENDED_MESSAGE) | 2430 | } else if (tmp != EXTENDED_MESSAGE) |
2430 | scmd_printk(KERN_INFO, cmd, | 2431 | scmd_printk(KERN_INFO, cmd, |
@@ -2560,7 +2561,7 @@ static void NCR5380_reselect(struct Scsi_Host *instance) { | |||
2560 | 2561 | ||
2561 | if (!(msg[0] & 0x80)) { | 2562 | if (!(msg[0] & 0x80)) { |
2562 | printk(KERN_ERR "scsi%d : expecting IDENTIFY message, got ", instance->host_no); | 2563 | printk(KERN_ERR "scsi%d : expecting IDENTIFY message, got ", instance->host_no); |
2563 | scsi_print_msg(msg); | 2564 | spi_print_msg(msg); |
2564 | abort = 1; | 2565 | abort = 1; |
2565 | } else { | 2566 | } else { |
2566 | /* Accept message by clearing ACK */ | 2567 | /* Accept message by clearing ACK */ |
diff --git a/drivers/scsi/aha152x.c b/drivers/scsi/aha152x.c index 9df23b654cec..cb2ee25f213f 100644 --- a/drivers/scsi/aha152x.c +++ b/drivers/scsi/aha152x.c | |||
@@ -259,6 +259,7 @@ | |||
259 | #include "scsi.h" | 259 | #include "scsi.h" |
260 | #include <scsi/scsi_dbg.h> | 260 | #include <scsi/scsi_dbg.h> |
261 | #include <scsi/scsi_host.h> | 261 | #include <scsi/scsi_host.h> |
262 | #include <scsi/scsi_transport_spi.h> | ||
262 | #include "aha152x.h" | 263 | #include "aha152x.h" |
263 | 264 | ||
264 | 265 | ||
@@ -1845,7 +1846,7 @@ static void msgi_run(struct Scsi_Host *shpnt) | |||
1845 | #if defined(AHA152X_DEBUG) | 1846 | #if defined(AHA152X_DEBUG) |
1846 | if (HOSTDATA(shpnt)->debug & debug_msgi) { | 1847 | if (HOSTDATA(shpnt)->debug & debug_msgi) { |
1847 | printk(INFO_LEAD "inbound message %02x ", CMDINFO(CURRENT_SC), MSGI(0)); | 1848 | printk(INFO_LEAD "inbound message %02x ", CMDINFO(CURRENT_SC), MSGI(0)); |
1848 | scsi_print_msg(&MSGI(0)); | 1849 | spi_print_msg(&MSGI(0)); |
1849 | printk("\n"); | 1850 | printk("\n"); |
1850 | } | 1851 | } |
1851 | #endif | 1852 | #endif |
@@ -1933,7 +1934,7 @@ static void msgi_run(struct Scsi_Host *shpnt) | |||
1933 | break; | 1934 | break; |
1934 | 1935 | ||
1935 | printk(INFO_LEAD, CMDINFO(CURRENT_SC)); | 1936 | printk(INFO_LEAD, CMDINFO(CURRENT_SC)); |
1936 | scsi_print_msg(&MSGI(0)); | 1937 | spi_print_msg(&MSGI(0)); |
1937 | printk("\n"); | 1938 | printk("\n"); |
1938 | 1939 | ||
1939 | ticks = (MSGI(3) * 4 + 49) / 50; | 1940 | ticks = (MSGI(3) * 4 + 49) / 50; |
@@ -2031,7 +2032,7 @@ static void msgo_init(struct Scsi_Host *shpnt) | |||
2031 | int i; | 2032 | int i; |
2032 | 2033 | ||
2033 | printk(DEBUG_LEAD "messages( ", CMDINFO(CURRENT_SC)); | 2034 | printk(DEBUG_LEAD "messages( ", CMDINFO(CURRENT_SC)); |
2034 | for (i=0; i<MSGOLEN; i+=scsi_print_msg(&MSGO(i)), printk(" ")) | 2035 | for (i=0; i<MSGOLEN; i+=spi_print_msg(&MSGO(i)), printk(" ")) |
2035 | ; | 2036 | ; |
2036 | printk(")\n"); | 2037 | printk(")\n"); |
2037 | } | 2038 | } |
diff --git a/drivers/scsi/aic7xxx/aic79xx_osm.c b/drivers/scsi/aic7xxx/aic79xx_osm.c index 6aab9dacdeea..1c8f872e2dd4 100644 --- a/drivers/scsi/aic7xxx/aic79xx_osm.c +++ b/drivers/scsi/aic7xxx/aic79xx_osm.c | |||
@@ -1064,6 +1064,7 @@ ahd_linux_register_host(struct ahd_softc *ahd, struct scsi_host_template *templa | |||
1064 | struct Scsi_Host *host; | 1064 | struct Scsi_Host *host; |
1065 | char *new_name; | 1065 | char *new_name; |
1066 | u_long s; | 1066 | u_long s; |
1067 | int retval; | ||
1067 | 1068 | ||
1068 | template->name = ahd->description; | 1069 | template->name = ahd->description; |
1069 | host = scsi_host_alloc(template, sizeof(struct ahd_softc *)); | 1070 | host = scsi_host_alloc(template, sizeof(struct ahd_softc *)); |
@@ -1096,9 +1097,15 @@ ahd_linux_register_host(struct ahd_softc *ahd, struct scsi_host_template *templa | |||
1096 | 1097 | ||
1097 | host->transportt = ahd_linux_transport_template; | 1098 | host->transportt = ahd_linux_transport_template; |
1098 | 1099 | ||
1099 | scsi_add_host(host, &ahd->dev_softc->dev); /* XXX handle failure */ | 1100 | retval = scsi_add_host(host, &ahd->dev_softc->dev); |
1101 | if (retval) { | ||
1102 | printk(KERN_WARNING "aic79xx: scsi_add_host failed\n"); | ||
1103 | scsi_host_put(host); | ||
1104 | return retval; | ||
1105 | } | ||
1106 | |||
1100 | scsi_scan_host(host); | 1107 | scsi_scan_host(host); |
1101 | return (0); | 1108 | return 0; |
1102 | } | 1109 | } |
1103 | 1110 | ||
1104 | uint64_t | 1111 | uint64_t |
diff --git a/drivers/scsi/aic7xxx/aic7xxx_osm.c b/drivers/scsi/aic7xxx/aic7xxx_osm.c index d866213f42b8..fd389e9f9460 100644 --- a/drivers/scsi/aic7xxx/aic7xxx_osm.c +++ b/drivers/scsi/aic7xxx/aic7xxx_osm.c | |||
@@ -1061,10 +1061,11 @@ uint32_t aic7xxx_verbose; | |||
1061 | int | 1061 | int |
1062 | ahc_linux_register_host(struct ahc_softc *ahc, struct scsi_host_template *template) | 1062 | ahc_linux_register_host(struct ahc_softc *ahc, struct scsi_host_template *template) |
1063 | { | 1063 | { |
1064 | char buf[80]; | 1064 | char buf[80]; |
1065 | struct Scsi_Host *host; | 1065 | struct Scsi_Host *host; |
1066 | char *new_name; | 1066 | char *new_name; |
1067 | u_long s; | 1067 | u_long s; |
1068 | int retval; | ||
1068 | 1069 | ||
1069 | template->name = ahc->description; | 1070 | template->name = ahc->description; |
1070 | host = scsi_host_alloc(template, sizeof(struct ahc_softc *)); | 1071 | host = scsi_host_alloc(template, sizeof(struct ahc_softc *)); |
@@ -1097,9 +1098,16 @@ ahc_linux_register_host(struct ahc_softc *ahc, struct scsi_host_template *templa | |||
1097 | 1098 | ||
1098 | host->transportt = ahc_linux_transport_template; | 1099 | host->transportt = ahc_linux_transport_template; |
1099 | 1100 | ||
1100 | scsi_add_host(host, (ahc->dev_softc ? &ahc->dev_softc->dev : NULL)); /* XXX handle failure */ | 1101 | retval = scsi_add_host(host, |
1102 | (ahc->dev_softc ? &ahc->dev_softc->dev : NULL)); | ||
1103 | if (retval) { | ||
1104 | printk(KERN_WARNING "aic7xxx: scsi_add_host failed\n"); | ||
1105 | scsi_host_put(host); | ||
1106 | return retval; | ||
1107 | } | ||
1108 | |||
1101 | scsi_scan_host(host); | 1109 | scsi_scan_host(host); |
1102 | return (0); | 1110 | return 0; |
1103 | } | 1111 | } |
1104 | 1112 | ||
1105 | /* | 1113 | /* |
diff --git a/drivers/scsi/arm/Kconfig b/drivers/scsi/arm/Kconfig index 13f23043c8a3..06d7601cdf56 100644 --- a/drivers/scsi/arm/Kconfig +++ b/drivers/scsi/arm/Kconfig | |||
@@ -4,6 +4,7 @@ | |||
4 | config SCSI_ACORNSCSI_3 | 4 | config SCSI_ACORNSCSI_3 |
5 | tristate "Acorn SCSI card (aka30) support" | 5 | tristate "Acorn SCSI card (aka30) support" |
6 | depends on ARCH_ACORN && SCSI && BROKEN | 6 | depends on ARCH_ACORN && SCSI && BROKEN |
7 | select SCSI_SPI_ATTRS | ||
7 | help | 8 | help |
8 | This enables support for the Acorn SCSI card (aka30). If you have an | 9 | This enables support for the Acorn SCSI card (aka30). If you have an |
9 | Acorn system with one of these, say Y. If unsure, say N. | 10 | Acorn system with one of these, say Y. If unsure, say N. |
diff --git a/drivers/scsi/arm/acornscsi.c b/drivers/scsi/arm/acornscsi.c index b7b20c689c24..09ed05727bcb 100644 --- a/drivers/scsi/arm/acornscsi.c +++ b/drivers/scsi/arm/acornscsi.c | |||
@@ -152,6 +152,7 @@ | |||
152 | #include "../scsi.h" | 152 | #include "../scsi.h" |
153 | #include <scsi/scsi_dbg.h> | 153 | #include <scsi/scsi_dbg.h> |
154 | #include <scsi/scsi_host.h> | 154 | #include <scsi/scsi_host.h> |
155 | #include <scsi/scsi_transport_spi.h> | ||
155 | #include "acornscsi.h" | 156 | #include "acornscsi.h" |
156 | #include "msgqueue.h" | 157 | #include "msgqueue.h" |
157 | #include "scsi.h" | 158 | #include "scsi.h" |
@@ -1370,7 +1371,7 @@ void acornscsi_sendmessage(AS_Host *host) | |||
1370 | 1371 | ||
1371 | host->scsi.last_message = msg->msg[0]; | 1372 | host->scsi.last_message = msg->msg[0]; |
1372 | #if (DEBUG & DEBUG_MESSAGES) | 1373 | #if (DEBUG & DEBUG_MESSAGES) |
1373 | scsi_print_msg(msg->msg); | 1374 | spi_print_msg(msg->msg); |
1374 | #endif | 1375 | #endif |
1375 | break; | 1376 | break; |
1376 | 1377 | ||
@@ -1392,7 +1393,7 @@ void acornscsi_sendmessage(AS_Host *host) | |||
1392 | while ((msg = msgqueue_getmsg(&host->scsi.msgs, msgnr++)) != NULL) { | 1393 | while ((msg = msgqueue_getmsg(&host->scsi.msgs, msgnr++)) != NULL) { |
1393 | unsigned int i; | 1394 | unsigned int i; |
1394 | #if (DEBUG & DEBUG_MESSAGES) | 1395 | #if (DEBUG & DEBUG_MESSAGES) |
1395 | scsi_print_msg(msg); | 1396 | spi_print_msg(msg); |
1396 | #endif | 1397 | #endif |
1397 | i = 0; | 1398 | i = 0; |
1398 | if (acornscsi_write_pio(host, msg->msg, &i, msg->length, 1000000)) | 1399 | if (acornscsi_write_pio(host, msg->msg, &i, msg->length, 1000000)) |
@@ -1488,7 +1489,7 @@ void acornscsi_message(AS_Host *host) | |||
1488 | #if (DEBUG & DEBUG_MESSAGES) | 1489 | #if (DEBUG & DEBUG_MESSAGES) |
1489 | printk("scsi%d.%c: message in: ", | 1490 | printk("scsi%d.%c: message in: ", |
1490 | host->host->host_no, acornscsi_target(host)); | 1491 | host->host->host_no, acornscsi_target(host)); |
1491 | scsi_print_msg(message); | 1492 | spi_print_msg(message); |
1492 | printk("\n"); | 1493 | printk("\n"); |
1493 | #endif | 1494 | #endif |
1494 | 1495 | ||
diff --git a/drivers/scsi/atari_NCR5380.c b/drivers/scsi/atari_NCR5380.c index 2ae31ceb32a8..57295bcea3e7 100644 --- a/drivers/scsi/atari_NCR5380.c +++ b/drivers/scsi/atari_NCR5380.c | |||
@@ -74,6 +74,7 @@ | |||
74 | * the high level code. | 74 | * the high level code. |
75 | */ | 75 | */ |
76 | #include <scsi/scsi_dbg.h> | 76 | #include <scsi/scsi_dbg.h> |
77 | #include <scsi/scsi_transport_spi.h> | ||
77 | 78 | ||
78 | #if (NDEBUG & NDEBUG_LISTS) | 79 | #if (NDEBUG & NDEBUG_LISTS) |
79 | #define LIST(x,y) \ | 80 | #define LIST(x,y) \ |
@@ -2355,7 +2356,7 @@ static void NCR5380_information_transfer (struct Scsi_Host *instance) | |||
2355 | * 3..length+1 arguments | 2356 | * 3..length+1 arguments |
2356 | * | 2357 | * |
2357 | * Start the extended message buffer with the EXTENDED_MESSAGE | 2358 | * Start the extended message buffer with the EXTENDED_MESSAGE |
2358 | * byte, since scsi_print_msg() wants the whole thing. | 2359 | * byte, since spi_print_msg() wants the whole thing. |
2359 | */ | 2360 | */ |
2360 | extended_msg[0] = EXTENDED_MESSAGE; | 2361 | extended_msg[0] = EXTENDED_MESSAGE; |
2361 | /* Accept first byte by clearing ACK */ | 2362 | /* Accept first byte by clearing ACK */ |
@@ -2408,7 +2409,7 @@ static void NCR5380_information_transfer (struct Scsi_Host *instance) | |||
2408 | default: | 2409 | default: |
2409 | if (!tmp) { | 2410 | if (!tmp) { |
2410 | printk(KERN_DEBUG "scsi%d: rejecting message ", HOSTNO); | 2411 | printk(KERN_DEBUG "scsi%d: rejecting message ", HOSTNO); |
2411 | scsi_print_msg (extended_msg); | 2412 | spi_print_msg(extended_msg); |
2412 | printk("\n"); | 2413 | printk("\n"); |
2413 | } else if (tmp != EXTENDED_MESSAGE) | 2414 | } else if (tmp != EXTENDED_MESSAGE) |
2414 | printk(KERN_DEBUG "scsi%d: rejecting unknown " | 2415 | printk(KERN_DEBUG "scsi%d: rejecting unknown " |
@@ -2541,7 +2542,7 @@ static void NCR5380_reselect (struct Scsi_Host *instance) | |||
2541 | 2542 | ||
2542 | if (!(msg[0] & 0x80)) { | 2543 | if (!(msg[0] & 0x80)) { |
2543 | printk(KERN_DEBUG "scsi%d: expecting IDENTIFY message, got ", HOSTNO); | 2544 | printk(KERN_DEBUG "scsi%d: expecting IDENTIFY message, got ", HOSTNO); |
2544 | scsi_print_msg(msg); | 2545 | spi_print_msg(msg); |
2545 | do_abort(instance); | 2546 | do_abort(instance); |
2546 | return; | 2547 | return; |
2547 | } | 2548 | } |
diff --git a/drivers/scsi/ch.c b/drivers/scsi/ch.c index ccbbae2bf478..0920220f3313 100644 --- a/drivers/scsi/ch.c +++ b/drivers/scsi/ch.c | |||
@@ -75,7 +75,7 @@ static int vendor_counts[CH_TYPES-4]; | |||
75 | module_param_array(vendor_firsts, int, NULL, 0444); | 75 | module_param_array(vendor_firsts, int, NULL, 0444); |
76 | module_param_array(vendor_counts, int, NULL, 0444); | 76 | module_param_array(vendor_counts, int, NULL, 0444); |
77 | 77 | ||
78 | static char *vendor_labels[CH_TYPES-4] = { | 78 | static const char * vendor_labels[CH_TYPES-4] = { |
79 | "v0", "v1", "v2", "v3" | 79 | "v0", "v1", "v2", "v3" |
80 | }; | 80 | }; |
81 | // module_param_string_array(vendor_labels, NULL, 0444); | 81 | // module_param_string_array(vendor_labels, NULL, 0444); |
@@ -140,7 +140,7 @@ static struct file_operations changer_fops = | |||
140 | #endif | 140 | #endif |
141 | }; | 141 | }; |
142 | 142 | ||
143 | static struct { | 143 | static const struct { |
144 | unsigned char sense; | 144 | unsigned char sense; |
145 | unsigned char asc; | 145 | unsigned char asc; |
146 | unsigned char ascq; | 146 | unsigned char ascq; |
diff --git a/drivers/scsi/constants.c b/drivers/scsi/constants.c index 09bc81557b6e..30a335349cee 100644 --- a/drivers/scsi/constants.c +++ b/drivers/scsi/constants.c | |||
@@ -1065,7 +1065,7 @@ struct error_info2 { | |||
1065 | const char * fmt; | 1065 | const char * fmt; |
1066 | }; | 1066 | }; |
1067 | 1067 | ||
1068 | static struct error_info2 additional2[] = | 1068 | static const struct error_info2 additional2[] = |
1069 | { | 1069 | { |
1070 | {0x40,0x00,0x7f,"Ram failure (%x)"}, | 1070 | {0x40,0x00,0x7f,"Ram failure (%x)"}, |
1071 | {0x40,0x80,0xff,"Diagnostic failure on component (%x)"}, | 1071 | {0x40,0x80,0xff,"Diagnostic failure on component (%x)"}, |
@@ -1077,7 +1077,7 @@ static struct error_info2 additional2[] = | |||
1077 | }; | 1077 | }; |
1078 | 1078 | ||
1079 | /* description of the sense key values */ | 1079 | /* description of the sense key values */ |
1080 | static const char *snstext[] = { | 1080 | static const char * const snstext[] = { |
1081 | "No Sense", /* 0: There is no sense information */ | 1081 | "No Sense", /* 0: There is no sense information */ |
1082 | "Recovered Error", /* 1: The last command completed successfully | 1082 | "Recovered Error", /* 1: The last command completed successfully |
1083 | but used error correction */ | 1083 | but used error correction */ |
@@ -1278,114 +1278,6 @@ void scsi_print_req_sense(const char *devclass, struct scsi_request *sreq) | |||
1278 | } | 1278 | } |
1279 | EXPORT_SYMBOL(scsi_print_req_sense); | 1279 | EXPORT_SYMBOL(scsi_print_req_sense); |
1280 | 1280 | ||
1281 | #ifdef CONFIG_SCSI_CONSTANTS | ||
1282 | static const char *one_byte_msgs[] = { | ||
1283 | /* 0x00 */ "Command Complete", NULL, "Save Pointers", | ||
1284 | /* 0x03 */ "Restore Pointers", "Disconnect", "Initiator Error", | ||
1285 | /* 0x06 */ "Abort", "Message Reject", "Nop", "Message Parity Error", | ||
1286 | /* 0x0a */ "Linked Command Complete", "Linked Command Complete w/flag", | ||
1287 | /* 0x0c */ "Bus device reset", "Abort Tag", "Clear Queue", | ||
1288 | /* 0x0f */ "Initiate Recovery", "Release Recovery" | ||
1289 | }; | ||
1290 | #define NO_ONE_BYTE_MSGS (sizeof(one_byte_msgs) / sizeof (const char *)) | ||
1291 | |||
1292 | static const char *two_byte_msgs[] = { | ||
1293 | /* 0x20 */ "Simple Queue Tag", "Head of Queue Tag", "Ordered Queue Tag" | ||
1294 | /* 0x23 */ "Ignore Wide Residue" | ||
1295 | }; | ||
1296 | #define NO_TWO_BYTE_MSGS (sizeof(two_byte_msgs) / sizeof (const char *)) | ||
1297 | |||
1298 | static const char *extended_msgs[] = { | ||
1299 | /* 0x00 */ "Modify Data Pointer", "Synchronous Data Transfer Request", | ||
1300 | /* 0x02 */ "SCSI-I Extended Identify", "Wide Data Transfer Request" | ||
1301 | }; | ||
1302 | #define NO_EXTENDED_MSGS (sizeof(two_byte_msgs) / sizeof (const char *)) | ||
1303 | |||
1304 | |||
1305 | int scsi_print_msg (const unsigned char *msg) | ||
1306 | { | ||
1307 | int len = 0, i; | ||
1308 | if (msg[0] == EXTENDED_MESSAGE) { | ||
1309 | len = 3 + msg[1]; | ||
1310 | if (msg[2] < NO_EXTENDED_MSGS) | ||
1311 | printk ("%s ", extended_msgs[msg[2]]); | ||
1312 | else | ||
1313 | printk ("Extended Message, reserved code (0x%02x) ", | ||
1314 | (int) msg[2]); | ||
1315 | switch (msg[2]) { | ||
1316 | case EXTENDED_MODIFY_DATA_POINTER: | ||
1317 | printk("pointer = %d", (int) (msg[3] << 24) | | ||
1318 | (msg[4] << 16) | (msg[5] << 8) | msg[6]); | ||
1319 | break; | ||
1320 | case EXTENDED_SDTR: | ||
1321 | printk("period = %d ns, offset = %d", | ||
1322 | (int) msg[3] * 4, (int) msg[4]); | ||
1323 | break; | ||
1324 | case EXTENDED_WDTR: | ||
1325 | printk("width = 2^%d bytes", msg[3]); | ||
1326 | break; | ||
1327 | default: | ||
1328 | for (i = 2; i < len; ++i) | ||
1329 | printk("%02x ", msg[i]); | ||
1330 | } | ||
1331 | /* Identify */ | ||
1332 | } else if (msg[0] & 0x80) { | ||
1333 | printk("Identify disconnect %sallowed %s %d ", | ||
1334 | (msg[0] & 0x40) ? "" : "not ", | ||
1335 | (msg[0] & 0x20) ? "target routine" : "lun", | ||
1336 | msg[0] & 0x7); | ||
1337 | len = 1; | ||
1338 | /* Normal One byte */ | ||
1339 | } else if (msg[0] < 0x1f) { | ||
1340 | if (msg[0] < NO_ONE_BYTE_MSGS) | ||
1341 | printk(one_byte_msgs[msg[0]]); | ||
1342 | else | ||
1343 | printk("reserved (%02x) ", msg[0]); | ||
1344 | len = 1; | ||
1345 | /* Two byte */ | ||
1346 | } else if (msg[0] <= 0x2f) { | ||
1347 | if ((msg[0] - 0x20) < NO_TWO_BYTE_MSGS) | ||
1348 | printk("%s %02x ", two_byte_msgs[msg[0] - 0x20], | ||
1349 | msg[1]); | ||
1350 | else | ||
1351 | printk("reserved two byte (%02x %02x) ", | ||
1352 | msg[0], msg[1]); | ||
1353 | len = 2; | ||
1354 | } else | ||
1355 | printk("reserved"); | ||
1356 | return len; | ||
1357 | } | ||
1358 | EXPORT_SYMBOL(scsi_print_msg); | ||
1359 | |||
1360 | #else /* ifndef CONFIG_SCSI_CONSTANTS */ | ||
1361 | |||
1362 | int scsi_print_msg (const unsigned char *msg) | ||
1363 | { | ||
1364 | int len = 0, i; | ||
1365 | |||
1366 | if (msg[0] == EXTENDED_MESSAGE) { | ||
1367 | len = 3 + msg[1]; | ||
1368 | for (i = 0; i < len; ++i) | ||
1369 | printk("%02x ", msg[i]); | ||
1370 | /* Identify */ | ||
1371 | } else if (msg[0] & 0x80) { | ||
1372 | printk("%02x ", msg[0]); | ||
1373 | len = 1; | ||
1374 | /* Normal One byte */ | ||
1375 | } else if (msg[0] < 0x1f) { | ||
1376 | printk("%02x ", msg[0]); | ||
1377 | len = 1; | ||
1378 | /* Two byte */ | ||
1379 | } else if (msg[0] <= 0x2f) { | ||
1380 | printk("%02x %02x", msg[0], msg[1]); | ||
1381 | len = 2; | ||
1382 | } else | ||
1383 | printk("%02x ", msg[0]); | ||
1384 | return len; | ||
1385 | } | ||
1386 | EXPORT_SYMBOL(scsi_print_msg); | ||
1387 | #endif /* ! CONFIG_SCSI_CONSTANTS */ | ||
1388 | |||
1389 | void scsi_print_command(struct scsi_cmnd *cmd) | 1281 | void scsi_print_command(struct scsi_cmnd *cmd) |
1390 | { | 1282 | { |
1391 | /* Assume appended output (i.e. not at start of line) */ | 1283 | /* Assume appended output (i.e. not at start of line) */ |
@@ -1397,7 +1289,7 @@ EXPORT_SYMBOL(scsi_print_command); | |||
1397 | 1289 | ||
1398 | #ifdef CONFIG_SCSI_CONSTANTS | 1290 | #ifdef CONFIG_SCSI_CONSTANTS |
1399 | 1291 | ||
1400 | static const char * hostbyte_table[]={ | 1292 | static const char * const hostbyte_table[]={ |
1401 | "DID_OK", "DID_NO_CONNECT", "DID_BUS_BUSY", "DID_TIME_OUT", "DID_BAD_TARGET", | 1293 | "DID_OK", "DID_NO_CONNECT", "DID_BUS_BUSY", "DID_TIME_OUT", "DID_BAD_TARGET", |
1402 | "DID_ABORT", "DID_PARITY", "DID_ERROR", "DID_RESET", "DID_BAD_INTR", | 1294 | "DID_ABORT", "DID_PARITY", "DID_ERROR", "DID_RESET", "DID_BAD_INTR", |
1403 | "DID_PASSTHROUGH", "DID_SOFT_ERROR", "DID_IMM_RETRY"}; | 1295 | "DID_PASSTHROUGH", "DID_SOFT_ERROR", "DID_IMM_RETRY"}; |
@@ -1422,12 +1314,12 @@ void scsi_print_hostbyte(int scsiresult) | |||
1422 | 1314 | ||
1423 | #ifdef CONFIG_SCSI_CONSTANTS | 1315 | #ifdef CONFIG_SCSI_CONSTANTS |
1424 | 1316 | ||
1425 | static const char * driverbyte_table[]={ | 1317 | static const char * const driverbyte_table[]={ |
1426 | "DRIVER_OK", "DRIVER_BUSY", "DRIVER_SOFT", "DRIVER_MEDIA", "DRIVER_ERROR", | 1318 | "DRIVER_OK", "DRIVER_BUSY", "DRIVER_SOFT", "DRIVER_MEDIA", "DRIVER_ERROR", |
1427 | "DRIVER_INVALID", "DRIVER_TIMEOUT", "DRIVER_HARD", "DRIVER_SENSE"}; | 1319 | "DRIVER_INVALID", "DRIVER_TIMEOUT", "DRIVER_HARD", "DRIVER_SENSE"}; |
1428 | #define NUM_DRIVERBYTE_STRS (sizeof(driverbyte_table) / sizeof(const char *)) | 1320 | #define NUM_DRIVERBYTE_STRS (sizeof(driverbyte_table) / sizeof(const char *)) |
1429 | 1321 | ||
1430 | static const char * driversuggest_table[]={"SUGGEST_OK", | 1322 | static const char * const driversuggest_table[]={"SUGGEST_OK", |
1431 | "SUGGEST_RETRY", "SUGGEST_ABORT", "SUGGEST_REMAP", "SUGGEST_DIE", | 1323 | "SUGGEST_RETRY", "SUGGEST_ABORT", "SUGGEST_REMAP", "SUGGEST_DIE", |
1432 | "SUGGEST_5", "SUGGEST_6", "SUGGEST_7", "SUGGEST_SENSE"}; | 1324 | "SUGGEST_5", "SUGGEST_6", "SUGGEST_7", "SUGGEST_SENSE"}; |
1433 | #define NUM_SUGGEST_STRS (sizeof(driversuggest_table) / sizeof(const char *)) | 1325 | #define NUM_SUGGEST_STRS (sizeof(driversuggest_table) / sizeof(const char *)) |
diff --git a/drivers/scsi/ipr.c b/drivers/scsi/ipr.c index fa2cb3582cfa..b6714da4d6e2 100644 --- a/drivers/scsi/ipr.c +++ b/drivers/scsi/ipr.c | |||
@@ -5887,7 +5887,12 @@ static int __devinit ipr_probe_ioa_part2(struct ipr_ioa_cfg *ioa_cfg) | |||
5887 | ENTER; | 5887 | ENTER; |
5888 | spin_lock_irqsave(ioa_cfg->host->host_lock, host_lock_flags); | 5888 | spin_lock_irqsave(ioa_cfg->host->host_lock, host_lock_flags); |
5889 | dev_dbg(&ioa_cfg->pdev->dev, "ioa_cfg adx: 0x%p\n", ioa_cfg); | 5889 | dev_dbg(&ioa_cfg->pdev->dev, "ioa_cfg adx: 0x%p\n", ioa_cfg); |
5890 | _ipr_initiate_ioa_reset(ioa_cfg, ipr_reset_enable_ioa, IPR_SHUTDOWN_NONE); | 5890 | if (ioa_cfg->needs_hard_reset) { |
5891 | ioa_cfg->needs_hard_reset = 0; | ||
5892 | ipr_initiate_ioa_reset(ioa_cfg, IPR_SHUTDOWN_NONE); | ||
5893 | } else | ||
5894 | _ipr_initiate_ioa_reset(ioa_cfg, ipr_reset_enable_ioa, | ||
5895 | IPR_SHUTDOWN_NONE); | ||
5891 | 5896 | ||
5892 | spin_unlock_irqrestore(ioa_cfg->host->host_lock, host_lock_flags); | 5897 | spin_unlock_irqrestore(ioa_cfg->host->host_lock, host_lock_flags); |
5893 | wait_event(ioa_cfg->reset_wait_q, !ioa_cfg->in_reset_reload); | 5898 | wait_event(ioa_cfg->reset_wait_q, !ioa_cfg->in_reset_reload); |
@@ -6264,6 +6269,7 @@ static int __devinit ipr_probe_ioa(struct pci_dev *pdev, | |||
6264 | unsigned long ipr_regs_pci; | 6269 | unsigned long ipr_regs_pci; |
6265 | void __iomem *ipr_regs; | 6270 | void __iomem *ipr_regs; |
6266 | u32 rc = PCIBIOS_SUCCESSFUL; | 6271 | u32 rc = PCIBIOS_SUCCESSFUL; |
6272 | volatile u32 mask, uproc; | ||
6267 | 6273 | ||
6268 | ENTER; | 6274 | ENTER; |
6269 | 6275 | ||
@@ -6356,6 +6362,15 @@ static int __devinit ipr_probe_ioa(struct pci_dev *pdev, | |||
6356 | goto cleanup_nomem; | 6362 | goto cleanup_nomem; |
6357 | } | 6363 | } |
6358 | 6364 | ||
6365 | /* | ||
6366 | * If HRRQ updated interrupt is not masked, or reset alert is set, | ||
6367 | * the card is in an unknown state and needs a hard reset | ||
6368 | */ | ||
6369 | mask = readl(ioa_cfg->regs.sense_interrupt_mask_reg); | ||
6370 | uproc = readl(ioa_cfg->regs.sense_uproc_interrupt_reg); | ||
6371 | if ((mask & IPR_PCII_HRRQ_UPDATED) == 0 || (uproc & IPR_UPROCI_RESET_ALERT)) | ||
6372 | ioa_cfg->needs_hard_reset = 1; | ||
6373 | |||
6359 | ipr_mask_and_clear_interrupts(ioa_cfg, ~IPR_PCII_IOA_TRANS_TO_OPER); | 6374 | ipr_mask_and_clear_interrupts(ioa_cfg, ~IPR_PCII_IOA_TRANS_TO_OPER); |
6360 | rc = request_irq(pdev->irq, ipr_isr, SA_SHIRQ, IPR_NAME, ioa_cfg); | 6375 | rc = request_irq(pdev->irq, ipr_isr, SA_SHIRQ, IPR_NAME, ioa_cfg); |
6361 | 6376 | ||
diff --git a/drivers/scsi/ipr.h b/drivers/scsi/ipr.h index 6bec673c925c..b639332131f1 100644 --- a/drivers/scsi/ipr.h +++ b/drivers/scsi/ipr.h | |||
@@ -36,8 +36,8 @@ | |||
36 | /* | 36 | /* |
37 | * Literals | 37 | * Literals |
38 | */ | 38 | */ |
39 | #define IPR_DRIVER_VERSION "2.1.0" | 39 | #define IPR_DRIVER_VERSION "2.1.1" |
40 | #define IPR_DRIVER_DATE "(October 31, 2005)" | 40 | #define IPR_DRIVER_DATE "(November 15, 2005)" |
41 | 41 | ||
42 | /* | 42 | /* |
43 | * IPR_MAX_CMD_PER_LUN: This defines the maximum number of outstanding | 43 | * IPR_MAX_CMD_PER_LUN: This defines the maximum number of outstanding |
@@ -922,6 +922,7 @@ struct ipr_ioa_cfg { | |||
922 | u8 dump_taken:1; | 922 | u8 dump_taken:1; |
923 | u8 allow_cmds:1; | 923 | u8 allow_cmds:1; |
924 | u8 allow_ml_add_del:1; | 924 | u8 allow_ml_add_del:1; |
925 | u8 needs_hard_reset:1; | ||
925 | 926 | ||
926 | enum ipr_cache_state cache_state; | 927 | enum ipr_cache_state cache_state; |
927 | u16 type; /* CCIN of the card */ | 928 | u16 type; /* CCIN of the card */ |
diff --git a/drivers/scsi/iscsi_tcp.c b/drivers/scsi/iscsi_tcp.c index 3d8009f55342..10bcf42cb65c 100644 --- a/drivers/scsi/iscsi_tcp.c +++ b/drivers/scsi/iscsi_tcp.c | |||
@@ -49,7 +49,7 @@ MODULE_AUTHOR("Dmitry Yusupov <dmitry_yus@yahoo.com>, " | |||
49 | "Alex Aizman <itn780@yahoo.com>"); | 49 | "Alex Aizman <itn780@yahoo.com>"); |
50 | MODULE_DESCRIPTION("iSCSI/TCP data-path"); | 50 | MODULE_DESCRIPTION("iSCSI/TCP data-path"); |
51 | MODULE_LICENSE("GPL"); | 51 | MODULE_LICENSE("GPL"); |
52 | MODULE_VERSION("0:4.409"); | 52 | MODULE_VERSION("0:4.445"); |
53 | /* #define DEBUG_TCP */ | 53 | /* #define DEBUG_TCP */ |
54 | /* #define DEBUG_SCSI */ | 54 | /* #define DEBUG_SCSI */ |
55 | #define DEBUG_ASSERT | 55 | #define DEBUG_ASSERT |
@@ -581,10 +581,16 @@ iscsi_hdr_recv(struct iscsi_conn *conn) | |||
581 | crypto_digest_digest(conn->rx_tfm, &sg, 1, (u8 *)&cdgst); | 581 | crypto_digest_digest(conn->rx_tfm, &sg, 1, (u8 *)&cdgst); |
582 | rdgst = *(uint32_t*)((char*)hdr + sizeof(struct iscsi_hdr) + | 582 | rdgst = *(uint32_t*)((char*)hdr + sizeof(struct iscsi_hdr) + |
583 | conn->in.ahslen); | 583 | conn->in.ahslen); |
584 | if (cdgst != rdgst) { | ||
585 | printk(KERN_ERR "iscsi_tcp: itt %x: hdrdgst error " | ||
586 | "recv 0x%x calc 0x%x\n", conn->in.itt, rdgst, | ||
587 | cdgst); | ||
588 | return ISCSI_ERR_HDR_DGST; | ||
589 | } | ||
584 | } | 590 | } |
585 | 591 | ||
586 | /* save opcode for later */ | 592 | /* save opcode for later */ |
587 | conn->in.opcode = hdr->opcode; | 593 | conn->in.opcode = hdr->opcode & ISCSI_OPCODE_MASK; |
588 | 594 | ||
589 | /* verify itt (itt encoding: age+cid+itt) */ | 595 | /* verify itt (itt encoding: age+cid+itt) */ |
590 | if (hdr->itt != cpu_to_be32(ISCSI_RESERVED_TAG)) { | 596 | if (hdr->itt != cpu_to_be32(ISCSI_RESERVED_TAG)) { |
@@ -610,13 +616,6 @@ iscsi_hdr_recv(struct iscsi_conn *conn) | |||
610 | conn->in.ahslen, conn->in.datalen); | 616 | conn->in.ahslen, conn->in.datalen); |
611 | 617 | ||
612 | if (conn->in.itt < session->cmds_max) { | 618 | if (conn->in.itt < session->cmds_max) { |
613 | if (conn->hdrdgst_en && cdgst != rdgst) { | ||
614 | printk(KERN_ERR "iscsi_tcp: itt %x: hdrdgst error " | ||
615 | "recv 0x%x calc 0x%x\n", conn->in.itt, rdgst, | ||
616 | cdgst); | ||
617 | return ISCSI_ERR_HDR_DGST; | ||
618 | } | ||
619 | |||
620 | ctask = (struct iscsi_cmd_task *)session->cmds[conn->in.itt]; | 619 | ctask = (struct iscsi_cmd_task *)session->cmds[conn->in.itt]; |
621 | 620 | ||
622 | if (!ctask->sc) { | 621 | if (!ctask->sc) { |
@@ -642,9 +641,7 @@ iscsi_hdr_recv(struct iscsi_conn *conn) | |||
642 | switch(conn->in.opcode) { | 641 | switch(conn->in.opcode) { |
643 | case ISCSI_OP_SCSI_CMD_RSP: | 642 | case ISCSI_OP_SCSI_CMD_RSP: |
644 | BUG_ON((void*)ctask != ctask->sc->SCp.ptr); | 643 | BUG_ON((void*)ctask != ctask->sc->SCp.ptr); |
645 | if (ctask->hdr.flags & ISCSI_FLAG_CMD_WRITE) | 644 | if (!conn->in.datalen) |
646 | rc = iscsi_cmd_rsp(conn, ctask); | ||
647 | else if (!conn->in.datalen) | ||
648 | rc = iscsi_cmd_rsp(conn, ctask); | 645 | rc = iscsi_cmd_rsp(conn, ctask); |
649 | else | 646 | else |
650 | /* | 647 | /* |
@@ -666,8 +663,7 @@ iscsi_hdr_recv(struct iscsi_conn *conn) | |||
666 | break; | 663 | break; |
667 | case ISCSI_OP_R2T: | 664 | case ISCSI_OP_R2T: |
668 | BUG_ON((void*)ctask != ctask->sc->SCp.ptr); | 665 | BUG_ON((void*)ctask != ctask->sc->SCp.ptr); |
669 | if (ctask->hdr.flags & ISCSI_FLAG_CMD_WRITE && | 666 | if (ctask->sc->sc_data_direction == DMA_TO_DEVICE) |
670 | ctask->sc->sc_data_direction == DMA_TO_DEVICE) | ||
671 | rc = iscsi_r2t_rsp(conn, ctask); | 667 | rc = iscsi_r2t_rsp(conn, ctask); |
672 | else | 668 | else |
673 | rc = ISCSI_ERR_PROTO; | 669 | rc = ISCSI_ERR_PROTO; |
@@ -906,11 +902,20 @@ partial_sg_digest_update(struct iscsi_conn *conn, struct scatterlist *sg, | |||
906 | crypto_digest_update(conn->data_rx_tfm, &temp, 1); | 902 | crypto_digest_update(conn->data_rx_tfm, &temp, 1); |
907 | } | 903 | } |
908 | 904 | ||
905 | static void | ||
906 | iscsi_recv_digest_update(struct iscsi_conn *conn, char* buf, int len) | ||
907 | { | ||
908 | struct scatterlist tmp; | ||
909 | |||
910 | sg_init_one(&tmp, buf, len); | ||
911 | crypto_digest_update(conn->data_rx_tfm, &tmp, 1); | ||
912 | } | ||
913 | |||
909 | static int iscsi_scsi_data_in(struct iscsi_conn *conn) | 914 | static int iscsi_scsi_data_in(struct iscsi_conn *conn) |
910 | { | 915 | { |
911 | struct iscsi_cmd_task *ctask = conn->in.ctask; | 916 | struct iscsi_cmd_task *ctask = conn->in.ctask; |
912 | struct scsi_cmnd *sc = ctask->sc; | 917 | struct scsi_cmnd *sc = ctask->sc; |
913 | struct scatterlist tmp, *sg; | 918 | struct scatterlist *sg; |
914 | int i, offset, rc = 0; | 919 | int i, offset, rc = 0; |
915 | 920 | ||
916 | BUG_ON((void*)ctask != sc->SCp.ptr); | 921 | BUG_ON((void*)ctask != sc->SCp.ptr); |
@@ -924,10 +929,8 @@ static int iscsi_scsi_data_in(struct iscsi_conn *conn) | |||
924 | sc->request_bufflen, ctask->data_offset); | 929 | sc->request_bufflen, ctask->data_offset); |
925 | if (rc == -EAGAIN) | 930 | if (rc == -EAGAIN) |
926 | return rc; | 931 | return rc; |
927 | if (conn->datadgst_en) { | 932 | if (conn->datadgst_en) |
928 | sg_init_one(&tmp, sc->request_buffer, i); | 933 | iscsi_recv_digest_update(conn, sc->request_buffer, i); |
929 | crypto_digest_update(conn->data_rx_tfm, &tmp, 1); | ||
930 | } | ||
931 | rc = 0; | 934 | rc = 0; |
932 | goto done; | 935 | goto done; |
933 | } | 936 | } |
@@ -1021,6 +1024,9 @@ iscsi_data_recv(struct iscsi_conn *conn) | |||
1021 | conn->in.hdr = &conn->hdr; | 1024 | conn->in.hdr = &conn->hdr; |
1022 | conn->senselen = (conn->data[0] << 8) | conn->data[1]; | 1025 | conn->senselen = (conn->data[0] << 8) | conn->data[1]; |
1023 | rc = iscsi_cmd_rsp(conn, conn->in.ctask); | 1026 | rc = iscsi_cmd_rsp(conn, conn->in.ctask); |
1027 | if (!rc && conn->datadgst_en) | ||
1028 | iscsi_recv_digest_update(conn, conn->data, | ||
1029 | conn->in.datalen); | ||
1024 | } | 1030 | } |
1025 | break; | 1031 | break; |
1026 | case ISCSI_OP_TEXT_RSP: | 1032 | case ISCSI_OP_TEXT_RSP: |
@@ -1045,6 +1051,11 @@ iscsi_data_recv(struct iscsi_conn *conn) | |||
1045 | rc = iscsi_recv_pdu(iscsi_handle(conn), conn->in.hdr, | 1051 | rc = iscsi_recv_pdu(iscsi_handle(conn), conn->in.hdr, |
1046 | conn->data, conn->in.datalen); | 1052 | conn->data, conn->in.datalen); |
1047 | 1053 | ||
1054 | if (!rc && conn->datadgst_en && | ||
1055 | conn->in.opcode != ISCSI_OP_LOGIN_RSP) | ||
1056 | iscsi_recv_digest_update(conn, conn->data, | ||
1057 | conn->in.datalen); | ||
1058 | |||
1048 | if (mtask && conn->login_mtask != mtask) { | 1059 | if (mtask && conn->login_mtask != mtask) { |
1049 | spin_lock(&session->lock); | 1060 | spin_lock(&session->lock); |
1050 | __kfifo_put(session->mgmtpool.queue, (void*)&mtask, | 1061 | __kfifo_put(session->mgmtpool.queue, (void*)&mtask, |
@@ -1053,6 +1064,8 @@ iscsi_data_recv(struct iscsi_conn *conn) | |||
1053 | } | 1064 | } |
1054 | } | 1065 | } |
1055 | break; | 1066 | break; |
1067 | case ISCSI_OP_ASYNC_EVENT: | ||
1068 | case ISCSI_OP_REJECT: | ||
1056 | default: | 1069 | default: |
1057 | BUG_ON(1); | 1070 | BUG_ON(1); |
1058 | } | 1071 | } |
@@ -1114,8 +1127,7 @@ more: | |||
1114 | */ | 1127 | */ |
1115 | rc = iscsi_hdr_recv(conn); | 1128 | rc = iscsi_hdr_recv(conn); |
1116 | if (!rc && conn->in.datalen) { | 1129 | if (!rc && conn->in.datalen) { |
1117 | if (conn->datadgst_en && | 1130 | if (conn->datadgst_en) { |
1118 | conn->in.opcode == ISCSI_OP_SCSI_DATA_IN) { | ||
1119 | BUG_ON(!conn->data_rx_tfm); | 1131 | BUG_ON(!conn->data_rx_tfm); |
1120 | crypto_digest_init(conn->data_rx_tfm); | 1132 | crypto_digest_init(conn->data_rx_tfm); |
1121 | } | 1133 | } |
@@ -1127,26 +1139,24 @@ more: | |||
1127 | } | 1139 | } |
1128 | 1140 | ||
1129 | if (conn->in_progress == IN_PROGRESS_DDIGEST_RECV) { | 1141 | if (conn->in_progress == IN_PROGRESS_DDIGEST_RECV) { |
1142 | uint32_t recv_digest; | ||
1130 | debug_tcp("extra data_recv offset %d copy %d\n", | 1143 | debug_tcp("extra data_recv offset %d copy %d\n", |
1131 | conn->in.offset, conn->in.copy); | 1144 | conn->in.offset, conn->in.copy); |
1132 | if (conn->in.opcode == ISCSI_OP_SCSI_DATA_IN) { | 1145 | skb_copy_bits(conn->in.skb, conn->in.offset, |
1133 | uint32_t recv_digest; | 1146 | &recv_digest, 4); |
1134 | skb_copy_bits(conn->in.skb, conn->in.offset, | 1147 | conn->in.offset += 4; |
1135 | &recv_digest, 4); | 1148 | conn->in.copy -= 4; |
1136 | conn->in.offset += 4; | 1149 | if (recv_digest != conn->in.datadgst) { |
1137 | conn->in.copy -= 4; | 1150 | debug_tcp("iscsi_tcp: data digest error!" |
1138 | if (recv_digest != conn->in.datadgst) { | 1151 | "0x%x != 0x%x\n", recv_digest, |
1139 | debug_tcp("iscsi_tcp: data digest error!" | 1152 | conn->in.datadgst); |
1140 | "0x%x != 0x%x\n", recv_digest, | 1153 | iscsi_conn_failure(conn, ISCSI_ERR_DATA_DGST); |
1141 | conn->in.datadgst); | 1154 | return 0; |
1142 | iscsi_conn_failure(conn, ISCSI_ERR_DATA_DGST); | 1155 | } else { |
1143 | return 0; | 1156 | debug_tcp("iscsi_tcp: data digest match!" |
1144 | } else { | 1157 | "0x%x == 0x%x\n", recv_digest, |
1145 | debug_tcp("iscsi_tcp: data digest match!" | 1158 | conn->in.datadgst); |
1146 | "0x%x == 0x%x\n", recv_digest, | 1159 | conn->in_progress = IN_PROGRESS_WAIT_HEADER; |
1147 | conn->in.datadgst); | ||
1148 | conn->in_progress = IN_PROGRESS_WAIT_HEADER; | ||
1149 | } | ||
1150 | } | 1160 | } |
1151 | } | 1161 | } |
1152 | 1162 | ||
@@ -1167,8 +1177,7 @@ more: | |||
1167 | } | 1177 | } |
1168 | conn->in.copy -= conn->in.padding; | 1178 | conn->in.copy -= conn->in.padding; |
1169 | conn->in.offset += conn->in.padding; | 1179 | conn->in.offset += conn->in.padding; |
1170 | if (conn->datadgst_en && | 1180 | if (conn->datadgst_en) { |
1171 | conn->in.opcode == ISCSI_OP_SCSI_DATA_IN) { | ||
1172 | if (conn->in.padding) { | 1181 | if (conn->in.padding) { |
1173 | debug_tcp("padding -> %d\n", conn->in.padding); | 1182 | debug_tcp("padding -> %d\n", conn->in.padding); |
1174 | memset(pad, 0, conn->in.padding); | 1183 | memset(pad, 0, conn->in.padding); |
@@ -1237,8 +1246,9 @@ iscsi_tcp_state_change(struct sock *sk) | |||
1237 | conn = (struct iscsi_conn*)sk->sk_user_data; | 1246 | conn = (struct iscsi_conn*)sk->sk_user_data; |
1238 | session = conn->session; | 1247 | session = conn->session; |
1239 | 1248 | ||
1240 | if (sk->sk_state == TCP_CLOSE_WAIT || | 1249 | if ((sk->sk_state == TCP_CLOSE_WAIT || |
1241 | sk->sk_state == TCP_CLOSE) { | 1250 | sk->sk_state == TCP_CLOSE) && |
1251 | !atomic_read(&sk->sk_rmem_alloc)) { | ||
1242 | debug_tcp("iscsi_tcp_state_change: TCP_CLOSE|TCP_CLOSE_WAIT\n"); | 1252 | debug_tcp("iscsi_tcp_state_change: TCP_CLOSE|TCP_CLOSE_WAIT\n"); |
1243 | iscsi_conn_failure(conn, ISCSI_ERR_CONN_FAILED); | 1253 | iscsi_conn_failure(conn, ISCSI_ERR_CONN_FAILED); |
1244 | } | 1254 | } |
@@ -2389,6 +2399,15 @@ fault: | |||
2389 | } | 2399 | } |
2390 | 2400 | ||
2391 | static int | 2401 | static int |
2402 | iscsi_change_queue_depth(struct scsi_device *sdev, int depth) | ||
2403 | { | ||
2404 | if (depth > ISCSI_MAX_CMD_PER_LUN) | ||
2405 | depth = ISCSI_MAX_CMD_PER_LUN; | ||
2406 | scsi_adjust_queue_depth(sdev, scsi_get_tag_type(sdev), depth); | ||
2407 | return sdev->queue_depth; | ||
2408 | } | ||
2409 | |||
2410 | static int | ||
2392 | iscsi_pool_init(struct iscsi_queue *q, int max, void ***items, int item_size) | 2411 | iscsi_pool_init(struct iscsi_queue *q, int max, void ***items, int item_size) |
2393 | { | 2412 | { |
2394 | int i; | 2413 | int i; |
@@ -2853,8 +2872,11 @@ iscsi_conn_stop(iscsi_connh_t connh, int flag) | |||
2853 | * in hdr_extract() and will be re-negotiated at | 2872 | * in hdr_extract() and will be re-negotiated at |
2854 | * set_param() time. | 2873 | * set_param() time. |
2855 | */ | 2874 | */ |
2856 | if (flag == STOP_CONN_RECOVER) | 2875 | if (flag == STOP_CONN_RECOVER) { |
2857 | conn->hdr_size = sizeof(struct iscsi_hdr); | 2876 | conn->hdr_size = sizeof(struct iscsi_hdr); |
2877 | conn->hdrdgst_en = 0; | ||
2878 | conn->datadgst_en = 0; | ||
2879 | } | ||
2858 | } | 2880 | } |
2859 | up(&conn->xmitsema); | 2881 | up(&conn->xmitsema); |
2860 | } | 2882 | } |
@@ -3247,13 +3269,14 @@ iscsi_r2tpool_free(struct iscsi_session *session) | |||
3247 | static struct scsi_host_template iscsi_sht = { | 3269 | static struct scsi_host_template iscsi_sht = { |
3248 | .name = "iSCSI Initiator over TCP/IP, v." | 3270 | .name = "iSCSI Initiator over TCP/IP, v." |
3249 | ISCSI_VERSION_STR, | 3271 | ISCSI_VERSION_STR, |
3250 | .queuecommand = iscsi_queuecommand, | 3272 | .queuecommand = iscsi_queuecommand, |
3273 | .change_queue_depth = iscsi_change_queue_depth, | ||
3251 | .can_queue = ISCSI_XMIT_CMDS_MAX - 1, | 3274 | .can_queue = ISCSI_XMIT_CMDS_MAX - 1, |
3252 | .sg_tablesize = ISCSI_SG_TABLESIZE, | 3275 | .sg_tablesize = ISCSI_SG_TABLESIZE, |
3253 | .cmd_per_lun = ISCSI_CMD_PER_LUN, | 3276 | .cmd_per_lun = ISCSI_DEF_CMD_PER_LUN, |
3254 | .eh_abort_handler = iscsi_eh_abort, | 3277 | .eh_abort_handler = iscsi_eh_abort, |
3255 | .eh_host_reset_handler = iscsi_eh_host_reset, | 3278 | .eh_host_reset_handler = iscsi_eh_host_reset, |
3256 | .use_clustering = DISABLE_CLUSTERING, | 3279 | .use_clustering = DISABLE_CLUSTERING, |
3257 | .proc_name = "iscsi_tcp", | 3280 | .proc_name = "iscsi_tcp", |
3258 | .this_id = -1, | 3281 | .this_id = -1, |
3259 | }; | 3282 | }; |
diff --git a/drivers/scsi/iscsi_tcp.h b/drivers/scsi/iscsi_tcp.h index d23ae68fae0d..855f2dfd18af 100644 --- a/drivers/scsi/iscsi_tcp.h +++ b/drivers/scsi/iscsi_tcp.h | |||
@@ -71,7 +71,8 @@ | |||
71 | #define ISCSI_MGMT_CMDS_MAX 32 /* must be power of 2 */ | 71 | #define ISCSI_MGMT_CMDS_MAX 32 /* must be power of 2 */ |
72 | #define ISCSI_MGMT_ITT_OFFSET 0xa00 | 72 | #define ISCSI_MGMT_ITT_OFFSET 0xa00 |
73 | #define ISCSI_SG_TABLESIZE SG_ALL | 73 | #define ISCSI_SG_TABLESIZE SG_ALL |
74 | #define ISCSI_CMD_PER_LUN 128 | 74 | #define ISCSI_DEF_CMD_PER_LUN 32 |
75 | #define ISCSI_MAX_CMD_PER_LUN 128 | ||
75 | #define ISCSI_TCP_MAX_CMD_LEN 16 | 76 | #define ISCSI_TCP_MAX_CMD_LEN 16 |
76 | 77 | ||
77 | #define ITT_MASK (0xfff) | 78 | #define ITT_MASK (0xfff) |
diff --git a/drivers/scsi/lpfc/lpfc.h b/drivers/scsi/lpfc/lpfc.h index 3062b39fbdb9..38ffa8d6e629 100644 --- a/drivers/scsi/lpfc/lpfc.h +++ b/drivers/scsi/lpfc/lpfc.h | |||
@@ -29,9 +29,10 @@ struct lpfc_sli2_slim; | |||
29 | #define LPFC_LC_HBA_Q_DEPTH 1024 /* max cmds per low cost hba */ | 29 | #define LPFC_LC_HBA_Q_DEPTH 1024 /* max cmds per low cost hba */ |
30 | #define LPFC_LP101_HBA_Q_DEPTH 128 /* max cmds per low cost hba */ | 30 | #define LPFC_LP101_HBA_Q_DEPTH 128 /* max cmds per low cost hba */ |
31 | 31 | ||
32 | #define LPFC_CMD_PER_LUN 30 /* max outstanding cmds per lun */ | 32 | #define LPFC_CMD_PER_LUN 3 /* max outstanding cmds per lun */ |
33 | #define LPFC_SG_SEG_CNT 64 /* sg element count per scsi cmnd */ | 33 | #define LPFC_SG_SEG_CNT 64 /* sg element count per scsi cmnd */ |
34 | #define LPFC_IOCB_LIST_CNT 2250 /* list of IOCBs for fast-path usage. */ | 34 | #define LPFC_IOCB_LIST_CNT 2250 /* list of IOCBs for fast-path usage. */ |
35 | #define LPFC_Q_RAMP_UP_INTERVAL 120 /* lun q_depth ramp up interval */ | ||
35 | 36 | ||
36 | /* Define macros for 64 bit support */ | 37 | /* Define macros for 64 bit support */ |
37 | #define putPaddrLow(addr) ((uint32_t) (0xffffffff & (u64)(addr))) | 38 | #define putPaddrLow(addr) ((uint32_t) (0xffffffff & (u64)(addr))) |
@@ -45,6 +46,11 @@ struct lpfc_sli2_slim; | |||
45 | 46 | ||
46 | #define MAX_HBAEVT 32 | 47 | #define MAX_HBAEVT 32 |
47 | 48 | ||
49 | enum lpfc_polling_flags { | ||
50 | ENABLE_FCP_RING_POLLING = 0x1, | ||
51 | DISABLE_FCP_RING_INT = 0x2 | ||
52 | }; | ||
53 | |||
48 | /* Provide DMA memory definitions the driver uses per port instance. */ | 54 | /* Provide DMA memory definitions the driver uses per port instance. */ |
49 | struct lpfc_dmabuf { | 55 | struct lpfc_dmabuf { |
50 | struct list_head list; | 56 | struct list_head list; |
@@ -167,6 +173,7 @@ struct lpfc_hba { | |||
167 | dma_addr_t slim2p_mapping; | 173 | dma_addr_t slim2p_mapping; |
168 | uint16_t pci_cfg_value; | 174 | uint16_t pci_cfg_value; |
169 | 175 | ||
176 | struct semaphore hba_can_block; | ||
170 | uint32_t hba_state; | 177 | uint32_t hba_state; |
171 | 178 | ||
172 | #define LPFC_INIT_START 1 /* Initial state after board reset */ | 179 | #define LPFC_INIT_START 1 /* Initial state after board reset */ |
@@ -286,6 +293,8 @@ struct lpfc_hba { | |||
286 | uint32_t cfg_fcp_bind_method; | 293 | uint32_t cfg_fcp_bind_method; |
287 | uint32_t cfg_discovery_threads; | 294 | uint32_t cfg_discovery_threads; |
288 | uint32_t cfg_max_luns; | 295 | uint32_t cfg_max_luns; |
296 | uint32_t cfg_poll; | ||
297 | uint32_t cfg_poll_tmo; | ||
289 | uint32_t cfg_sg_seg_cnt; | 298 | uint32_t cfg_sg_seg_cnt; |
290 | uint32_t cfg_sg_dma_buf_size; | 299 | uint32_t cfg_sg_dma_buf_size; |
291 | 300 | ||
@@ -337,7 +346,9 @@ struct lpfc_hba { | |||
337 | #define VPD_PORT 0x8 /* valid vpd port data */ | 346 | #define VPD_PORT 0x8 /* valid vpd port data */ |
338 | #define VPD_MASK 0xf /* mask for any vpd data */ | 347 | #define VPD_MASK 0xf /* mask for any vpd data */ |
339 | 348 | ||
349 | struct timer_list fcp_poll_timer; | ||
340 | struct timer_list els_tmofunc; | 350 | struct timer_list els_tmofunc; |
351 | |||
341 | /* | 352 | /* |
342 | * stat counters | 353 | * stat counters |
343 | */ | 354 | */ |
@@ -348,6 +359,7 @@ struct lpfc_hba { | |||
348 | struct lpfc_sysfs_mbox sysfs_mbox; | 359 | struct lpfc_sysfs_mbox sysfs_mbox; |
349 | 360 | ||
350 | /* fastpath list. */ | 361 | /* fastpath list. */ |
362 | spinlock_t scsi_buf_list_lock; | ||
351 | struct list_head lpfc_scsi_buf_list; | 363 | struct list_head lpfc_scsi_buf_list; |
352 | uint32_t total_scsi_bufs; | 364 | uint32_t total_scsi_bufs; |
353 | struct list_head lpfc_iocb_list; | 365 | struct list_head lpfc_iocb_list; |
diff --git a/drivers/scsi/lpfc/lpfc_attr.c b/drivers/scsi/lpfc/lpfc_attr.c index 89e8222bc7cc..5625a8c2a8fd 100644 --- a/drivers/scsi/lpfc/lpfc_attr.c +++ b/drivers/scsi/lpfc/lpfc_attr.c | |||
@@ -278,6 +278,71 @@ lpfc_board_online_store(struct class_device *cdev, const char *buf, | |||
278 | return -EIO; | 278 | return -EIO; |
279 | } | 279 | } |
280 | 280 | ||
281 | static ssize_t | ||
282 | lpfc_poll_show(struct class_device *cdev, char *buf) | ||
283 | { | ||
284 | struct Scsi_Host *host = class_to_shost(cdev); | ||
285 | struct lpfc_hba *phba = (struct lpfc_hba*)host->hostdata[0]; | ||
286 | |||
287 | return snprintf(buf, PAGE_SIZE, "%#x\n", phba->cfg_poll); | ||
288 | } | ||
289 | |||
290 | static ssize_t | ||
291 | lpfc_poll_store(struct class_device *cdev, const char *buf, | ||
292 | size_t count) | ||
293 | { | ||
294 | struct Scsi_Host *host = class_to_shost(cdev); | ||
295 | struct lpfc_hba *phba = (struct lpfc_hba*)host->hostdata[0]; | ||
296 | uint32_t creg_val; | ||
297 | uint32_t old_val; | ||
298 | int val=0; | ||
299 | |||
300 | if (!isdigit(buf[0])) | ||
301 | return -EINVAL; | ||
302 | |||
303 | if (sscanf(buf, "%i", &val) != 1) | ||
304 | return -EINVAL; | ||
305 | |||
306 | if ((val & 0x3) != val) | ||
307 | return -EINVAL; | ||
308 | |||
309 | spin_lock_irq(phba->host->host_lock); | ||
310 | |||
311 | old_val = phba->cfg_poll; | ||
312 | |||
313 | if (val & ENABLE_FCP_RING_POLLING) { | ||
314 | if ((val & DISABLE_FCP_RING_INT) && | ||
315 | !(old_val & DISABLE_FCP_RING_INT)) { | ||
316 | creg_val = readl(phba->HCregaddr); | ||
317 | creg_val &= ~(HC_R0INT_ENA << LPFC_FCP_RING); | ||
318 | writel(creg_val, phba->HCregaddr); | ||
319 | readl(phba->HCregaddr); /* flush */ | ||
320 | |||
321 | lpfc_poll_start_timer(phba); | ||
322 | } | ||
323 | } else if (val != 0x0) { | ||
324 | spin_unlock_irq(phba->host->host_lock); | ||
325 | return -EINVAL; | ||
326 | } | ||
327 | |||
328 | if (!(val & DISABLE_FCP_RING_INT) && | ||
329 | (old_val & DISABLE_FCP_RING_INT)) | ||
330 | { | ||
331 | spin_unlock_irq(phba->host->host_lock); | ||
332 | del_timer(&phba->fcp_poll_timer); | ||
333 | spin_lock_irq(phba->host->host_lock); | ||
334 | creg_val = readl(phba->HCregaddr); | ||
335 | creg_val |= (HC_R0INT_ENA << LPFC_FCP_RING); | ||
336 | writel(creg_val, phba->HCregaddr); | ||
337 | readl(phba->HCregaddr); /* flush */ | ||
338 | } | ||
339 | |||
340 | phba->cfg_poll = val; | ||
341 | |||
342 | spin_unlock_irq(phba->host->host_lock); | ||
343 | |||
344 | return strlen(buf); | ||
345 | } | ||
281 | 346 | ||
282 | #define lpfc_param_show(attr) \ | 347 | #define lpfc_param_show(attr) \ |
283 | static ssize_t \ | 348 | static ssize_t \ |
@@ -416,6 +481,15 @@ static CLASS_DEVICE_ATTR(management_version, S_IRUGO, management_version_show, | |||
416 | static CLASS_DEVICE_ATTR(board_online, S_IRUGO | S_IWUSR, | 481 | static CLASS_DEVICE_ATTR(board_online, S_IRUGO | S_IWUSR, |
417 | lpfc_board_online_show, lpfc_board_online_store); | 482 | lpfc_board_online_show, lpfc_board_online_store); |
418 | 483 | ||
484 | static int lpfc_poll = 0; | ||
485 | module_param(lpfc_poll, int, 0); | ||
486 | MODULE_PARM_DESC(lpfc_poll, "FCP ring polling mode control:" | ||
487 | " 0 - none," | ||
488 | " 1 - poll with interrupts enabled" | ||
489 | " 3 - poll and disable FCP ring interrupts"); | ||
490 | |||
491 | static CLASS_DEVICE_ATTR(lpfc_poll, S_IRUGO | S_IWUSR, | ||
492 | lpfc_poll_show, lpfc_poll_store); | ||
419 | 493 | ||
420 | /* | 494 | /* |
421 | # lpfc_log_verbose: Only turn this flag on if you are willing to risk being | 495 | # lpfc_log_verbose: Only turn this flag on if you are willing to risk being |
@@ -523,10 +597,10 @@ LPFC_ATTR_R(ack0, 0, 0, 1, "Enable ACK0 support"); | |||
523 | # is 0. Default value of cr_count is 1. The cr_count feature is disabled if | 597 | # is 0. Default value of cr_count is 1. The cr_count feature is disabled if |
524 | # cr_delay is set to 0. | 598 | # cr_delay is set to 0. |
525 | */ | 599 | */ |
526 | LPFC_ATTR(cr_delay, 0, 0, 63, "A count of milliseconds after which an" | 600 | LPFC_ATTR_RW(cr_delay, 0, 0, 63, "A count of milliseconds after which an" |
527 | "interrupt response is generated"); | 601 | "interrupt response is generated"); |
528 | 602 | ||
529 | LPFC_ATTR(cr_count, 1, 1, 255, "A count of I/O completions after which an" | 603 | LPFC_ATTR_RW(cr_count, 1, 1, 255, "A count of I/O completions after which an" |
530 | "interrupt response is generated"); | 604 | "interrupt response is generated"); |
531 | 605 | ||
532 | /* | 606 | /* |
@@ -553,6 +627,13 @@ LPFC_ATTR(discovery_threads, 32, 1, 64, "Maximum number of ELS commands" | |||
553 | LPFC_ATTR_R(max_luns, 256, 1, 32768, | 627 | LPFC_ATTR_R(max_luns, 256, 1, 32768, |
554 | "Maximum number of LUNs per target driver will support"); | 628 | "Maximum number of LUNs per target driver will support"); |
555 | 629 | ||
630 | /* | ||
631 | # lpfc_poll_tmo: .Milliseconds driver will wait between polling FCP ring. | ||
632 | # Value range is [1,255], default value is 10. | ||
633 | */ | ||
634 | LPFC_ATTR_RW(poll_tmo, 10, 1, 255, | ||
635 | "Milliseconds driver will wait between polling FCP ring"); | ||
636 | |||
556 | struct class_device_attribute *lpfc_host_attrs[] = { | 637 | struct class_device_attribute *lpfc_host_attrs[] = { |
557 | &class_device_attr_info, | 638 | &class_device_attr_info, |
558 | &class_device_attr_serialnum, | 639 | &class_device_attr_serialnum, |
@@ -575,11 +656,15 @@ struct class_device_attribute *lpfc_host_attrs[] = { | |||
575 | &class_device_attr_lpfc_topology, | 656 | &class_device_attr_lpfc_topology, |
576 | &class_device_attr_lpfc_scan_down, | 657 | &class_device_attr_lpfc_scan_down, |
577 | &class_device_attr_lpfc_link_speed, | 658 | &class_device_attr_lpfc_link_speed, |
659 | &class_device_attr_lpfc_cr_delay, | ||
660 | &class_device_attr_lpfc_cr_count, | ||
578 | &class_device_attr_lpfc_fdmi_on, | 661 | &class_device_attr_lpfc_fdmi_on, |
579 | &class_device_attr_lpfc_max_luns, | 662 | &class_device_attr_lpfc_max_luns, |
580 | &class_device_attr_nport_evt_cnt, | 663 | &class_device_attr_nport_evt_cnt, |
581 | &class_device_attr_management_version, | 664 | &class_device_attr_management_version, |
582 | &class_device_attr_board_online, | 665 | &class_device_attr_board_online, |
666 | &class_device_attr_lpfc_poll, | ||
667 | &class_device_attr_lpfc_poll_tmo, | ||
583 | NULL, | 668 | NULL, |
584 | }; | 669 | }; |
585 | 670 | ||
@@ -1292,6 +1377,9 @@ lpfc_get_cfgparam(struct lpfc_hba *phba) | |||
1292 | lpfc_fdmi_on_init(phba, lpfc_fdmi_on); | 1377 | lpfc_fdmi_on_init(phba, lpfc_fdmi_on); |
1293 | lpfc_discovery_threads_init(phba, lpfc_discovery_threads); | 1378 | lpfc_discovery_threads_init(phba, lpfc_discovery_threads); |
1294 | lpfc_max_luns_init(phba, lpfc_max_luns); | 1379 | lpfc_max_luns_init(phba, lpfc_max_luns); |
1380 | lpfc_poll_tmo_init(phba, lpfc_poll_tmo); | ||
1381 | |||
1382 | phba->cfg_poll = lpfc_poll; | ||
1295 | 1383 | ||
1296 | /* | 1384 | /* |
1297 | * The total number of segments is the configuration value plus 2 | 1385 | * The total number of segments is the configuration value plus 2 |
diff --git a/drivers/scsi/lpfc/lpfc_crtn.h b/drivers/scsi/lpfc/lpfc_crtn.h index d527d05a607f..f1e708946e66 100644 --- a/drivers/scsi/lpfc/lpfc_crtn.h +++ b/drivers/scsi/lpfc/lpfc_crtn.h | |||
@@ -143,6 +143,9 @@ LPFC_MBOXQ_t *lpfc_mbox_get(struct lpfc_hba *); | |||
143 | int lpfc_mem_alloc(struct lpfc_hba *); | 143 | int lpfc_mem_alloc(struct lpfc_hba *); |
144 | void lpfc_mem_free(struct lpfc_hba *); | 144 | void lpfc_mem_free(struct lpfc_hba *); |
145 | 145 | ||
146 | void lpfc_poll_timeout(unsigned long ptr); | ||
147 | void lpfc_poll_start_timer(struct lpfc_hba * phba); | ||
148 | void lpfc_sli_poll_fcp_ring(struct lpfc_hba * hba); | ||
146 | struct lpfc_iocbq * lpfc_sli_get_iocbq(struct lpfc_hba *); | 149 | struct lpfc_iocbq * lpfc_sli_get_iocbq(struct lpfc_hba *); |
147 | void lpfc_sli_release_iocbq(struct lpfc_hba * phba, struct lpfc_iocbq * iocb); | 150 | void lpfc_sli_release_iocbq(struct lpfc_hba * phba, struct lpfc_iocbq * iocb); |
148 | uint16_t lpfc_sli_next_iotag(struct lpfc_hba * phba, struct lpfc_iocbq * iocb); | 151 | uint16_t lpfc_sli_next_iotag(struct lpfc_hba * phba, struct lpfc_iocbq * iocb); |
diff --git a/drivers/scsi/lpfc/lpfc_disc.h b/drivers/scsi/lpfc/lpfc_disc.h index 084e7628ce17..ed6c81660e03 100644 --- a/drivers/scsi/lpfc/lpfc_disc.h +++ b/drivers/scsi/lpfc/lpfc_disc.h | |||
@@ -73,6 +73,8 @@ struct lpfc_nodelist { | |||
73 | struct lpfc_hba *nlp_phba; | 73 | struct lpfc_hba *nlp_phba; |
74 | struct lpfc_work_evt nodev_timeout_evt; | 74 | struct lpfc_work_evt nodev_timeout_evt; |
75 | struct lpfc_work_evt els_retry_evt; | 75 | struct lpfc_work_evt els_retry_evt; |
76 | unsigned long last_ramp_up_time; /* jiffy of last ramp up */ | ||
77 | unsigned long last_q_full_time; /* jiffy of last queue full */ | ||
76 | }; | 78 | }; |
77 | 79 | ||
78 | /* Defines for nlp_flag (uint32) */ | 80 | /* Defines for nlp_flag (uint32) */ |
diff --git a/drivers/scsi/lpfc/lpfc_els.c b/drivers/scsi/lpfc/lpfc_els.c index bcc29ec126dc..20f1a0713db2 100644 --- a/drivers/scsi/lpfc/lpfc_els.c +++ b/drivers/scsi/lpfc/lpfc_els.c | |||
@@ -720,6 +720,7 @@ lpfc_cmpl_els_plogi(struct lpfc_hba * phba, struct lpfc_iocbq * cmdiocb, | |||
720 | /* Do not call DSM for lpfc_els_abort'ed ELS cmds */ | 720 | /* Do not call DSM for lpfc_els_abort'ed ELS cmds */ |
721 | if ((irsp->ulpStatus == IOSTAT_LOCAL_REJECT) && | 721 | if ((irsp->ulpStatus == IOSTAT_LOCAL_REJECT) && |
722 | ((irsp->un.ulpWord[4] == IOERR_SLI_ABORTED) || | 722 | ((irsp->un.ulpWord[4] == IOERR_SLI_ABORTED) || |
723 | (irsp->un.ulpWord[4] == IOERR_LINK_DOWN) || | ||
723 | (irsp->un.ulpWord[4] == IOERR_SLI_DOWN))) { | 724 | (irsp->un.ulpWord[4] == IOERR_SLI_DOWN))) { |
724 | disc = (ndlp->nlp_flag & NLP_NPR_2B_DISC); | 725 | disc = (ndlp->nlp_flag & NLP_NPR_2B_DISC); |
725 | } | 726 | } |
@@ -869,6 +870,7 @@ lpfc_cmpl_els_prli(struct lpfc_hba * phba, struct lpfc_iocbq * cmdiocb, | |||
869 | /* Do not call DSM for lpfc_els_abort'ed ELS cmds */ | 870 | /* Do not call DSM for lpfc_els_abort'ed ELS cmds */ |
870 | if ((irsp->ulpStatus == IOSTAT_LOCAL_REJECT) && | 871 | if ((irsp->ulpStatus == IOSTAT_LOCAL_REJECT) && |
871 | ((irsp->un.ulpWord[4] == IOERR_SLI_ABORTED) || | 872 | ((irsp->un.ulpWord[4] == IOERR_SLI_ABORTED) || |
873 | (irsp->un.ulpWord[4] == IOERR_LINK_DOWN) || | ||
872 | (irsp->un.ulpWord[4] == IOERR_SLI_DOWN))) { | 874 | (irsp->un.ulpWord[4] == IOERR_SLI_DOWN))) { |
873 | goto out; | 875 | goto out; |
874 | } | 876 | } |
@@ -1054,6 +1056,7 @@ lpfc_cmpl_els_adisc(struct lpfc_hba * phba, struct lpfc_iocbq * cmdiocb, | |||
1054 | /* Do not call DSM for lpfc_els_abort'ed ELS cmds */ | 1056 | /* Do not call DSM for lpfc_els_abort'ed ELS cmds */ |
1055 | if ((irsp->ulpStatus == IOSTAT_LOCAL_REJECT) && | 1057 | if ((irsp->ulpStatus == IOSTAT_LOCAL_REJECT) && |
1056 | ((irsp->un.ulpWord[4] == IOERR_SLI_ABORTED) || | 1058 | ((irsp->un.ulpWord[4] == IOERR_SLI_ABORTED) || |
1059 | (irsp->un.ulpWord[4] == IOERR_LINK_DOWN) || | ||
1057 | (irsp->un.ulpWord[4] == IOERR_SLI_DOWN))) { | 1060 | (irsp->un.ulpWord[4] == IOERR_SLI_DOWN))) { |
1058 | disc = (ndlp->nlp_flag & NLP_NPR_2B_DISC); | 1061 | disc = (ndlp->nlp_flag & NLP_NPR_2B_DISC); |
1059 | } | 1062 | } |
@@ -1205,6 +1208,7 @@ lpfc_cmpl_els_logo(struct lpfc_hba * phba, struct lpfc_iocbq * cmdiocb, | |||
1205 | /* Do not call DSM for lpfc_els_abort'ed ELS cmds */ | 1208 | /* Do not call DSM for lpfc_els_abort'ed ELS cmds */ |
1206 | if ((irsp->ulpStatus == IOSTAT_LOCAL_REJECT) && | 1209 | if ((irsp->ulpStatus == IOSTAT_LOCAL_REJECT) && |
1207 | ((irsp->un.ulpWord[4] == IOERR_SLI_ABORTED) || | 1210 | ((irsp->un.ulpWord[4] == IOERR_SLI_ABORTED) || |
1211 | (irsp->un.ulpWord[4] == IOERR_LINK_DOWN) || | ||
1208 | (irsp->un.ulpWord[4] == IOERR_SLI_DOWN))) { | 1212 | (irsp->un.ulpWord[4] == IOERR_SLI_DOWN))) { |
1209 | goto out; | 1213 | goto out; |
1210 | } | 1214 | } |
diff --git a/drivers/scsi/lpfc/lpfc_hbadisc.c b/drivers/scsi/lpfc/lpfc_hbadisc.c index 259eeb161b82..a1f751e79405 100644 --- a/drivers/scsi/lpfc/lpfc_hbadisc.c +++ b/drivers/scsi/lpfc/lpfc_hbadisc.c | |||
@@ -1017,12 +1017,7 @@ lpfc_register_remote_port(struct lpfc_hba * phba, | |||
1017 | rport_ids.port_name = wwn_to_u64(ndlp->nlp_portname.u.wwn); | 1017 | rport_ids.port_name = wwn_to_u64(ndlp->nlp_portname.u.wwn); |
1018 | rport_ids.port_id = ndlp->nlp_DID; | 1018 | rport_ids.port_id = ndlp->nlp_DID; |
1019 | rport_ids.roles = FC_RPORT_ROLE_UNKNOWN; | 1019 | rport_ids.roles = FC_RPORT_ROLE_UNKNOWN; |
1020 | if (ndlp->nlp_type & NLP_FCP_TARGET) | ||
1021 | rport_ids.roles |= FC_RPORT_ROLE_FCP_TARGET; | ||
1022 | if (ndlp->nlp_type & NLP_FCP_INITIATOR) | ||
1023 | rport_ids.roles |= FC_RPORT_ROLE_FCP_INITIATOR; | ||
1024 | 1020 | ||
1025 | scsi_block_requests(phba->host); | ||
1026 | ndlp->rport = rport = fc_remote_port_add(phba->host, 0, &rport_ids); | 1021 | ndlp->rport = rport = fc_remote_port_add(phba->host, 0, &rport_ids); |
1027 | if (!rport) { | 1022 | if (!rport) { |
1028 | dev_printk(KERN_WARNING, &phba->pcidev->dev, | 1023 | dev_printk(KERN_WARNING, &phba->pcidev->dev, |
@@ -1039,7 +1034,16 @@ lpfc_register_remote_port(struct lpfc_hba * phba, | |||
1039 | } | 1034 | } |
1040 | rdata = rport->dd_data; | 1035 | rdata = rport->dd_data; |
1041 | rdata->pnode = ndlp; | 1036 | rdata->pnode = ndlp; |
1042 | scsi_unblock_requests(phba->host); | 1037 | |
1038 | if (ndlp->nlp_type & NLP_FCP_TARGET) | ||
1039 | rport_ids.roles |= FC_RPORT_ROLE_FCP_TARGET; | ||
1040 | if (ndlp->nlp_type & NLP_FCP_INITIATOR) | ||
1041 | rport_ids.roles |= FC_RPORT_ROLE_FCP_INITIATOR; | ||
1042 | |||
1043 | |||
1044 | if (rport_ids.roles != FC_RPORT_ROLE_UNKNOWN) | ||
1045 | fc_remote_port_rolechg(rport, rport_ids.roles); | ||
1046 | |||
1043 | 1047 | ||
1044 | return; | 1048 | return; |
1045 | } | 1049 | } |
@@ -1053,9 +1057,7 @@ lpfc_unregister_remote_port(struct lpfc_hba * phba, | |||
1053 | 1057 | ||
1054 | ndlp->rport = NULL; | 1058 | ndlp->rport = NULL; |
1055 | rdata->pnode = NULL; | 1059 | rdata->pnode = NULL; |
1056 | scsi_block_requests(phba->host); | ||
1057 | fc_remote_port_delete(rport); | 1060 | fc_remote_port_delete(rport); |
1058 | scsi_unblock_requests(phba->host); | ||
1059 | 1061 | ||
1060 | return; | 1062 | return; |
1061 | } | 1063 | } |
diff --git a/drivers/scsi/lpfc/lpfc_hw.h b/drivers/scsi/lpfc/lpfc_hw.h index 86c41981188b..1ea565e0561f 100644 --- a/drivers/scsi/lpfc/lpfc_hw.h +++ b/drivers/scsi/lpfc/lpfc_hw.h | |||
@@ -266,9 +266,11 @@ struct lpfc_name { | |||
266 | struct { | 266 | struct { |
267 | #ifdef __BIG_ENDIAN_BITFIELD | 267 | #ifdef __BIG_ENDIAN_BITFIELD |
268 | uint8_t nameType:4; /* FC Word 0, bit 28:31 */ | 268 | uint8_t nameType:4; /* FC Word 0, bit 28:31 */ |
269 | uint8_t IEEEextMsn:4; /* FC Word 0, bit 24:27, bit 8:11 of IEEE ext */ | 269 | uint8_t IEEEextMsn:4; /* FC Word 0, bit 24:27, bit |
270 | 8:11 of IEEE ext */ | ||
270 | #else /* __LITTLE_ENDIAN_BITFIELD */ | 271 | #else /* __LITTLE_ENDIAN_BITFIELD */ |
271 | uint8_t IEEEextMsn:4; /* FC Word 0, bit 24:27, bit 8:11 of IEEE ext */ | 272 | uint8_t IEEEextMsn:4; /* FC Word 0, bit 24:27, bit |
273 | 8:11 of IEEE ext */ | ||
272 | uint8_t nameType:4; /* FC Word 0, bit 28:31 */ | 274 | uint8_t nameType:4; /* FC Word 0, bit 28:31 */ |
273 | #endif | 275 | #endif |
274 | 276 | ||
@@ -278,7 +280,8 @@ struct lpfc_name { | |||
278 | #define NAME_IP_TYPE 0x4 /* IP address */ | 280 | #define NAME_IP_TYPE 0x4 /* IP address */ |
279 | #define NAME_CCITT_TYPE 0xC | 281 | #define NAME_CCITT_TYPE 0xC |
280 | #define NAME_CCITT_GR_TYPE 0xE | 282 | #define NAME_CCITT_GR_TYPE 0xE |
281 | uint8_t IEEEextLsb; /* FC Word 0, bit 16:23, IEEE extended Lsb */ | 283 | uint8_t IEEEextLsb; /* FC Word 0, bit 16:23, IEEE |
284 | extended Lsb */ | ||
282 | uint8_t IEEE[6]; /* FC IEEE address */ | 285 | uint8_t IEEE[6]; /* FC IEEE address */ |
283 | } s; | 286 | } s; |
284 | uint8_t wwn[8]; | 287 | uint8_t wwn[8]; |
@@ -1024,23 +1027,38 @@ typedef struct { | |||
1024 | /* Start FireFly Register definitions */ | 1027 | /* Start FireFly Register definitions */ |
1025 | #define PCI_VENDOR_ID_EMULEX 0x10df | 1028 | #define PCI_VENDOR_ID_EMULEX 0x10df |
1026 | #define PCI_DEVICE_ID_FIREFLY 0x1ae5 | 1029 | #define PCI_DEVICE_ID_FIREFLY 0x1ae5 |
1027 | #define PCI_DEVICE_ID_SUPERFLY 0xf700 | ||
1028 | #define PCI_DEVICE_ID_DRAGONFLY 0xf800 | ||
1029 | #define PCI_DEVICE_ID_RFLY 0xf095 | 1030 | #define PCI_DEVICE_ID_RFLY 0xf095 |
1030 | #define PCI_DEVICE_ID_PFLY 0xf098 | 1031 | #define PCI_DEVICE_ID_PFLY 0xf098 |
1032 | #define PCI_DEVICE_ID_LP101 0xf0a1 | ||
1031 | #define PCI_DEVICE_ID_TFLY 0xf0a5 | 1033 | #define PCI_DEVICE_ID_TFLY 0xf0a5 |
1034 | #define PCI_DEVICE_ID_BSMB 0xf0d1 | ||
1035 | #define PCI_DEVICE_ID_BMID 0xf0d5 | ||
1036 | #define PCI_DEVICE_ID_ZSMB 0xf0e1 | ||
1037 | #define PCI_DEVICE_ID_ZMID 0xf0e5 | ||
1038 | #define PCI_DEVICE_ID_NEPTUNE 0xf0f5 | ||
1039 | #define PCI_DEVICE_ID_NEPTUNE_SCSP 0xf0f6 | ||
1040 | #define PCI_DEVICE_ID_NEPTUNE_DCSP 0xf0f7 | ||
1041 | #define PCI_DEVICE_ID_SUPERFLY 0xf700 | ||
1042 | #define PCI_DEVICE_ID_DRAGONFLY 0xf800 | ||
1032 | #define PCI_DEVICE_ID_CENTAUR 0xf900 | 1043 | #define PCI_DEVICE_ID_CENTAUR 0xf900 |
1033 | #define PCI_DEVICE_ID_PEGASUS 0xf980 | 1044 | #define PCI_DEVICE_ID_PEGASUS 0xf980 |
1034 | #define PCI_DEVICE_ID_THOR 0xfa00 | 1045 | #define PCI_DEVICE_ID_THOR 0xfa00 |
1035 | #define PCI_DEVICE_ID_VIPER 0xfb00 | 1046 | #define PCI_DEVICE_ID_VIPER 0xfb00 |
1047 | #define PCI_DEVICE_ID_LP10000S 0xfc00 | ||
1048 | #define PCI_DEVICE_ID_LP11000S 0xfc10 | ||
1049 | #define PCI_DEVICE_ID_LPE11000S 0xfc20 | ||
1036 | #define PCI_DEVICE_ID_HELIOS 0xfd00 | 1050 | #define PCI_DEVICE_ID_HELIOS 0xfd00 |
1037 | #define PCI_DEVICE_ID_BMID 0xf0d5 | 1051 | #define PCI_DEVICE_ID_HELIOS_SCSP 0xfd11 |
1038 | #define PCI_DEVICE_ID_BSMB 0xf0d1 | 1052 | #define PCI_DEVICE_ID_HELIOS_DCSP 0xfd12 |
1039 | #define PCI_DEVICE_ID_ZEPHYR 0xfe00 | 1053 | #define PCI_DEVICE_ID_ZEPHYR 0xfe00 |
1040 | #define PCI_DEVICE_ID_ZMID 0xf0e5 | 1054 | #define PCI_DEVICE_ID_ZEPHYR_SCSP 0xfe11 |
1041 | #define PCI_DEVICE_ID_ZSMB 0xf0e1 | 1055 | #define PCI_DEVICE_ID_ZEPHYR_DCSP 0xfe12 |
1042 | #define PCI_DEVICE_ID_LP101 0xf0a1 | 1056 | |
1043 | #define PCI_DEVICE_ID_LP10000S 0xfc00 | 1057 | #define PCI_SUBSYSTEM_ID_LP11000S 0xfc11 |
1058 | #define PCI_SUBSYSTEM_ID_LP11002S 0xfc12 | ||
1059 | #define PCI_SUBSYSTEM_ID_LPE11000S 0xfc21 | ||
1060 | #define PCI_SUBSYSTEM_ID_LPE11002S 0xfc22 | ||
1061 | #define PCI_SUBSYSTEM_ID_LPE11010S 0xfc2A | ||
1044 | 1062 | ||
1045 | #define JEDEC_ID_ADDRESS 0x0080001c | 1063 | #define JEDEC_ID_ADDRESS 0x0080001c |
1046 | #define FIREFLY_JEDEC_ID 0x1ACC | 1064 | #define FIREFLY_JEDEC_ID 0x1ACC |
diff --git a/drivers/scsi/lpfc/lpfc_init.c b/drivers/scsi/lpfc/lpfc_init.c index 07498118359d..b7a603a45328 100644 --- a/drivers/scsi/lpfc/lpfc_init.c +++ b/drivers/scsi/lpfc/lpfc_init.c | |||
@@ -126,34 +126,26 @@ lpfc_config_port_prep(struct lpfc_hba * phba) | |||
126 | return -ERESTART; | 126 | return -ERESTART; |
127 | } | 127 | } |
128 | 128 | ||
129 | /* The HBA's current state is provided by the ProgType and rr fields. | 129 | /* |
130 | * Read and check the value of these fields before continuing to config | 130 | * The value of rr must be 1 since the driver set the cv field to 1. |
131 | * this port. | 131 | * This setting requires the FW to set all revision fields. |
132 | */ | 132 | */ |
133 | if (mb->un.varRdRev.rr == 0 || mb->un.varRdRev.un.b.ProgType != 2) { | 133 | if (mb->un.varRdRev.rr == 0) { |
134 | /* Old firmware */ | ||
135 | vp->rev.rBit = 0; | 134 | vp->rev.rBit = 0; |
136 | lpfc_printf_log(phba, | 135 | lpfc_printf_log(phba, KERN_ERR, LOG_INIT, |
137 | KERN_ERR, | 136 | "%d:0440 Adapter failed to init, READ_REV has " |
138 | LOG_INIT, | 137 | "missing revision information.\n", |
139 | "%d:0440 Adapter failed to init, mbxCmd x%x " | 138 | phba->brd_no); |
140 | "READ_REV detected outdated firmware" | ||
141 | "Data: x%x\n", | ||
142 | phba->brd_no, | ||
143 | mb->mbxCommand, 0); | ||
144 | mempool_free(pmb, phba->mbox_mem_pool); | 139 | mempool_free(pmb, phba->mbox_mem_pool); |
145 | return -ERESTART; | 140 | return -ERESTART; |
146 | } else { | ||
147 | vp->rev.rBit = 1; | ||
148 | vp->rev.sli1FwRev = mb->un.varRdRev.sli1FwRev; | ||
149 | memcpy(vp->rev.sli1FwName, | ||
150 | (char*)mb->un.varRdRev.sli1FwName, 16); | ||
151 | vp->rev.sli2FwRev = mb->un.varRdRev.sli2FwRev; | ||
152 | memcpy(vp->rev.sli2FwName, | ||
153 | (char *)mb->un.varRdRev.sli2FwName, 16); | ||
154 | } | 141 | } |
155 | 142 | ||
156 | /* Save information as VPD data */ | 143 | /* Save information as VPD data */ |
144 | vp->rev.rBit = 1; | ||
145 | vp->rev.sli1FwRev = mb->un.varRdRev.sli1FwRev; | ||
146 | memcpy(vp->rev.sli1FwName, (char*) mb->un.varRdRev.sli1FwName, 16); | ||
147 | vp->rev.sli2FwRev = mb->un.varRdRev.sli2FwRev; | ||
148 | memcpy(vp->rev.sli2FwName, (char *) mb->un.varRdRev.sli2FwName, 16); | ||
157 | vp->rev.biuRev = mb->un.varRdRev.biuRev; | 149 | vp->rev.biuRev = mb->un.varRdRev.biuRev; |
158 | vp->rev.smRev = mb->un.varRdRev.smRev; | 150 | vp->rev.smRev = mb->un.varRdRev.smRev; |
159 | vp->rev.smFwRev = mb->un.varRdRev.un.smFwRev; | 151 | vp->rev.smFwRev = mb->un.varRdRev.un.smFwRev; |
@@ -378,6 +370,10 @@ lpfc_config_port_post(struct lpfc_hba * phba) | |||
378 | if (psli->num_rings > 3) | 370 | if (psli->num_rings > 3) |
379 | status |= HC_R3INT_ENA; | 371 | status |= HC_R3INT_ENA; |
380 | 372 | ||
373 | if ((phba->cfg_poll & ENABLE_FCP_RING_POLLING) && | ||
374 | (phba->cfg_poll & DISABLE_FCP_RING_INT)) | ||
375 | status &= ~(HC_R0INT_ENA << LPFC_FCP_RING); | ||
376 | |||
381 | writel(status, phba->HCregaddr); | 377 | writel(status, phba->HCregaddr); |
382 | readl(phba->HCregaddr); /* flush */ | 378 | readl(phba->HCregaddr); /* flush */ |
383 | spin_unlock_irq(phba->host->host_lock); | 379 | spin_unlock_irq(phba->host->host_lock); |
@@ -571,6 +567,8 @@ lpfc_handle_latt(struct lpfc_hba * phba) | |||
571 | 567 | ||
572 | rc = -EIO; | 568 | rc = -EIO; |
573 | 569 | ||
570 | /* Cleanup any outstanding ELS commands */ | ||
571 | lpfc_els_flush_cmd(phba); | ||
574 | 572 | ||
575 | psli->slistat.link_event++; | 573 | psli->slistat.link_event++; |
576 | lpfc_read_la(phba, pmb, mp); | 574 | lpfc_read_la(phba, pmb, mp); |
@@ -765,96 +763,139 @@ static void | |||
765 | lpfc_get_hba_model_desc(struct lpfc_hba * phba, uint8_t * mdp, uint8_t * descp) | 763 | lpfc_get_hba_model_desc(struct lpfc_hba * phba, uint8_t * mdp, uint8_t * descp) |
766 | { | 764 | { |
767 | lpfc_vpd_t *vp; | 765 | lpfc_vpd_t *vp; |
768 | uint32_t id; | 766 | uint16_t dev_id = phba->pcidev->device; |
769 | uint8_t hdrtype; | 767 | uint16_t dev_subid = phba->pcidev->subsystem_device; |
770 | char str[16]; | 768 | uint8_t hdrtype = phba->pcidev->hdr_type; |
769 | char *model_str = ""; | ||
771 | 770 | ||
772 | vp = &phba->vpd; | 771 | vp = &phba->vpd; |
773 | pci_read_config_dword(phba->pcidev, PCI_VENDOR_ID, &id); | ||
774 | pci_read_config_byte(phba->pcidev, PCI_HEADER_TYPE, &hdrtype); | ||
775 | 772 | ||
776 | switch ((id >> 16) & 0xffff) { | 773 | switch (dev_id) { |
777 | case PCI_DEVICE_ID_FIREFLY: | 774 | case PCI_DEVICE_ID_FIREFLY: |
778 | strcpy(str, "LP6000 1"); | 775 | model_str = "LP6000 1Gb PCI"; |
779 | break; | 776 | break; |
780 | case PCI_DEVICE_ID_SUPERFLY: | 777 | case PCI_DEVICE_ID_SUPERFLY: |
781 | if (vp->rev.biuRev >= 1 && vp->rev.biuRev <= 3) | 778 | if (vp->rev.biuRev >= 1 && vp->rev.biuRev <= 3) |
782 | strcpy(str, "LP7000 1"); | 779 | model_str = "LP7000 1Gb PCI"; |
783 | else | 780 | else |
784 | strcpy(str, "LP7000E 1"); | 781 | model_str = "LP7000E 1Gb PCI"; |
785 | break; | 782 | break; |
786 | case PCI_DEVICE_ID_DRAGONFLY: | 783 | case PCI_DEVICE_ID_DRAGONFLY: |
787 | strcpy(str, "LP8000 1"); | 784 | model_str = "LP8000 1Gb PCI"; |
788 | break; | 785 | break; |
789 | case PCI_DEVICE_ID_CENTAUR: | 786 | case PCI_DEVICE_ID_CENTAUR: |
790 | if (FC_JEDEC_ID(vp->rev.biuRev) == CENTAUR_2G_JEDEC_ID) | 787 | if (FC_JEDEC_ID(vp->rev.biuRev) == CENTAUR_2G_JEDEC_ID) |
791 | strcpy(str, "LP9002 2"); | 788 | model_str = "LP9002 2Gb PCI"; |
792 | else | 789 | else |
793 | strcpy(str, "LP9000 1"); | 790 | model_str = "LP9000 1Gb PCI"; |
794 | break; | 791 | break; |
795 | case PCI_DEVICE_ID_RFLY: | 792 | case PCI_DEVICE_ID_RFLY: |
796 | strcpy(str, "LP952 2"); | 793 | model_str = "LP952 2Gb PCI"; |
797 | break; | 794 | break; |
798 | case PCI_DEVICE_ID_PEGASUS: | 795 | case PCI_DEVICE_ID_PEGASUS: |
799 | strcpy(str, "LP9802 2"); | 796 | model_str = "LP9802 2Gb PCI-X"; |
800 | break; | 797 | break; |
801 | case PCI_DEVICE_ID_THOR: | 798 | case PCI_DEVICE_ID_THOR: |
802 | if (hdrtype == 0x80) | 799 | if (hdrtype == 0x80) |
803 | strcpy(str, "LP10000DC 2"); | 800 | model_str = "LP10000DC 2Gb 2-port PCI-X"; |
804 | else | 801 | else |
805 | strcpy(str, "LP10000 2"); | 802 | model_str = "LP10000 2Gb PCI-X"; |
806 | break; | 803 | break; |
807 | case PCI_DEVICE_ID_VIPER: | 804 | case PCI_DEVICE_ID_VIPER: |
808 | strcpy(str, "LPX1000 10"); | 805 | model_str = "LPX1000 10Gb PCI-X"; |
809 | break; | 806 | break; |
810 | case PCI_DEVICE_ID_PFLY: | 807 | case PCI_DEVICE_ID_PFLY: |
811 | strcpy(str, "LP982 2"); | 808 | model_str = "LP982 2Gb PCI-X"; |
812 | break; | 809 | break; |
813 | case PCI_DEVICE_ID_TFLY: | 810 | case PCI_DEVICE_ID_TFLY: |
814 | if (hdrtype == 0x80) | 811 | if (hdrtype == 0x80) |
815 | strcpy(str, "LP1050DC 2"); | 812 | model_str = "LP1050DC 2Gb 2-port PCI-X"; |
816 | else | 813 | else |
817 | strcpy(str, "LP1050 2"); | 814 | model_str = "LP1050 2Gb PCI-X"; |
818 | break; | 815 | break; |
819 | case PCI_DEVICE_ID_HELIOS: | 816 | case PCI_DEVICE_ID_HELIOS: |
820 | if (hdrtype == 0x80) | 817 | if (hdrtype == 0x80) |
821 | strcpy(str, "LP11002 4"); | 818 | model_str = "LP11002 4Gb 2-port PCI-X2"; |
819 | else | ||
820 | model_str = "LP11000 4Gb PCI-X2"; | ||
821 | break; | ||
822 | case PCI_DEVICE_ID_HELIOS_SCSP: | ||
823 | model_str = "LP11000-SP 4Gb PCI-X2"; | ||
824 | break; | ||
825 | case PCI_DEVICE_ID_HELIOS_DCSP: | ||
826 | model_str = "LP11002-SP 4Gb 2-port PCI-X2"; | ||
827 | break; | ||
828 | case PCI_DEVICE_ID_NEPTUNE: | ||
829 | if (hdrtype == 0x80) | ||
830 | model_str = "LPe1002 4Gb 2-port"; | ||
822 | else | 831 | else |
823 | strcpy(str, "LP11000 4"); | 832 | model_str = "LPe1000 4Gb PCIe"; |
833 | break; | ||
834 | case PCI_DEVICE_ID_NEPTUNE_SCSP: | ||
835 | model_str = "LPe1000-SP 4Gb PCIe"; | ||
836 | break; | ||
837 | case PCI_DEVICE_ID_NEPTUNE_DCSP: | ||
838 | model_str = "LPe1002-SP 4Gb 2-port PCIe"; | ||
824 | break; | 839 | break; |
825 | case PCI_DEVICE_ID_BMID: | 840 | case PCI_DEVICE_ID_BMID: |
826 | strcpy(str, "LP1150 4"); | 841 | model_str = "LP1150 4Gb PCI-X2"; |
827 | break; | 842 | break; |
828 | case PCI_DEVICE_ID_BSMB: | 843 | case PCI_DEVICE_ID_BSMB: |
829 | strcpy(str, "LP111 4"); | 844 | model_str = "LP111 4Gb PCI-X2"; |
830 | break; | 845 | break; |
831 | case PCI_DEVICE_ID_ZEPHYR: | 846 | case PCI_DEVICE_ID_ZEPHYR: |
832 | if (hdrtype == 0x80) | 847 | if (hdrtype == 0x80) |
833 | strcpy(str, "LPe11002 4"); | 848 | model_str = "LPe11002 4Gb 2-port PCIe"; |
834 | else | 849 | else |
835 | strcpy(str, "LPe11000 4"); | 850 | model_str = "LPe11000 4Gb PCIe"; |
851 | break; | ||
852 | case PCI_DEVICE_ID_ZEPHYR_SCSP: | ||
853 | model_str = "LPe11000-SP 4Gb PCIe"; | ||
854 | break; | ||
855 | case PCI_DEVICE_ID_ZEPHYR_DCSP: | ||
856 | model_str = "LPe11002-SP 4Gb 2-port PCIe"; | ||
836 | break; | 857 | break; |
837 | case PCI_DEVICE_ID_ZMID: | 858 | case PCI_DEVICE_ID_ZMID: |
838 | strcpy(str, "LPe1150 4"); | 859 | model_str = "LPe1150 4Gb PCIe"; |
839 | break; | 860 | break; |
840 | case PCI_DEVICE_ID_ZSMB: | 861 | case PCI_DEVICE_ID_ZSMB: |
841 | strcpy(str, "LPe111 4"); | 862 | model_str = "LPe111 4Gb PCIe"; |
842 | break; | 863 | break; |
843 | case PCI_DEVICE_ID_LP101: | 864 | case PCI_DEVICE_ID_LP101: |
844 | strcpy(str, "LP101 2"); | 865 | model_str = "LP101 2Gb PCI-X"; |
845 | break; | 866 | break; |
846 | case PCI_DEVICE_ID_LP10000S: | 867 | case PCI_DEVICE_ID_LP10000S: |
847 | strcpy(str, "LP10000-S 2"); | 868 | model_str = "LP10000-S 2Gb PCI"; |
869 | break; | ||
870 | case PCI_DEVICE_ID_LP11000S: | ||
871 | case PCI_DEVICE_ID_LPE11000S: | ||
872 | switch (dev_subid) { | ||
873 | case PCI_SUBSYSTEM_ID_LP11000S: | ||
874 | model_str = "LP11002-S 4Gb PCI-X2"; | ||
875 | break; | ||
876 | case PCI_SUBSYSTEM_ID_LP11002S: | ||
877 | model_str = "LP11000-S 4Gb 2-port PCI-X2"; | ||
878 | break; | ||
879 | case PCI_SUBSYSTEM_ID_LPE11000S: | ||
880 | model_str = "LPe11002-S 4Gb PCIe"; | ||
881 | break; | ||
882 | case PCI_SUBSYSTEM_ID_LPE11002S: | ||
883 | model_str = "LPe11002-S 4Gb 2-port PCIe"; | ||
884 | break; | ||
885 | case PCI_SUBSYSTEM_ID_LPE11010S: | ||
886 | model_str = "LPe11010-S 4Gb 10-port PCIe"; | ||
887 | break; | ||
888 | default: | ||
889 | break; | ||
890 | } | ||
848 | break; | 891 | break; |
849 | default: | 892 | default: |
850 | memset(str, 0, 16); | ||
851 | break; | 893 | break; |
852 | } | 894 | } |
853 | if (mdp) | 895 | if (mdp) |
854 | sscanf(str, "%s", mdp); | 896 | sscanf(model_str, "%s", mdp); |
855 | if (descp) | 897 | if (descp) |
856 | sprintf(descp, "Emulex LightPulse %s Gigabit PCI Fibre " | 898 | sprintf(descp, "Emulex %s Fibre Channel Adapter", model_str); |
857 | "Channel Adapter", str); | ||
858 | } | 899 | } |
859 | 900 | ||
860 | /**************************************************/ | 901 | /**************************************************/ |
@@ -1196,6 +1237,7 @@ lpfc_stop_timer(struct lpfc_hba * phba) | |||
1196 | } | 1237 | } |
1197 | } | 1238 | } |
1198 | 1239 | ||
1240 | del_timer_sync(&phba->fcp_poll_timer); | ||
1199 | del_timer_sync(&phba->fc_estabtmo); | 1241 | del_timer_sync(&phba->fc_estabtmo); |
1200 | del_timer_sync(&phba->fc_disctmo); | 1242 | del_timer_sync(&phba->fc_disctmo); |
1201 | del_timer_sync(&phba->fc_fdmitmo); | 1243 | del_timer_sync(&phba->fc_fdmitmo); |
@@ -1351,7 +1393,7 @@ lpfc_pci_probe_one(struct pci_dev *pdev, const struct pci_device_id *pid) | |||
1351 | goto out_put_host; | 1393 | goto out_put_host; |
1352 | 1394 | ||
1353 | host->unique_id = phba->brd_no; | 1395 | host->unique_id = phba->brd_no; |
1354 | 1396 | init_MUTEX(&phba->hba_can_block); | |
1355 | INIT_LIST_HEAD(&phba->ctrspbuflist); | 1397 | INIT_LIST_HEAD(&phba->ctrspbuflist); |
1356 | INIT_LIST_HEAD(&phba->rnidrspbuflist); | 1398 | INIT_LIST_HEAD(&phba->rnidrspbuflist); |
1357 | INIT_LIST_HEAD(&phba->freebufList); | 1399 | INIT_LIST_HEAD(&phba->freebufList); |
@@ -1375,6 +1417,10 @@ lpfc_pci_probe_one(struct pci_dev *pdev, const struct pci_device_id *pid) | |||
1375 | psli->mbox_tmo.function = lpfc_mbox_timeout; | 1417 | psli->mbox_tmo.function = lpfc_mbox_timeout; |
1376 | psli->mbox_tmo.data = (unsigned long)phba; | 1418 | psli->mbox_tmo.data = (unsigned long)phba; |
1377 | 1419 | ||
1420 | init_timer(&phba->fcp_poll_timer); | ||
1421 | phba->fcp_poll_timer.function = lpfc_poll_timeout; | ||
1422 | phba->fcp_poll_timer.data = (unsigned long)phba; | ||
1423 | |||
1378 | /* | 1424 | /* |
1379 | * Get all the module params for configuring this host and then | 1425 | * Get all the module params for configuring this host and then |
1380 | * establish the host parameters. | 1426 | * establish the host parameters. |
@@ -1489,6 +1535,7 @@ lpfc_pci_probe_one(struct pci_dev *pdev, const struct pci_device_id *pid) | |||
1489 | host->max_cmd_len = 16; | 1535 | host->max_cmd_len = 16; |
1490 | 1536 | ||
1491 | /* Initialize the list of scsi buffers used by driver for scsi IO. */ | 1537 | /* Initialize the list of scsi buffers used by driver for scsi IO. */ |
1538 | spin_lock_init(&phba->scsi_buf_list_lock); | ||
1492 | INIT_LIST_HEAD(&phba->lpfc_scsi_buf_list); | 1539 | INIT_LIST_HEAD(&phba->lpfc_scsi_buf_list); |
1493 | 1540 | ||
1494 | host->transportt = lpfc_transport_template; | 1541 | host->transportt = lpfc_transport_template; |
@@ -1520,6 +1567,12 @@ lpfc_pci_probe_one(struct pci_dev *pdev, const struct pci_device_id *pid) | |||
1520 | if (error) | 1567 | if (error) |
1521 | goto out_free_irq; | 1568 | goto out_free_irq; |
1522 | 1569 | ||
1570 | if (phba->cfg_poll & DISABLE_FCP_RING_INT) { | ||
1571 | spin_lock_irq(phba->host->host_lock); | ||
1572 | lpfc_poll_start_timer(phba); | ||
1573 | spin_unlock_irq(phba->host->host_lock); | ||
1574 | } | ||
1575 | |||
1523 | /* | 1576 | /* |
1524 | * set fixed host attributes | 1577 | * set fixed host attributes |
1525 | * Must done after lpfc_sli_hba_setup() | 1578 | * Must done after lpfc_sli_hba_setup() |
@@ -1679,14 +1732,28 @@ static struct pci_device_id lpfc_id_table[] = { | |||
1679 | PCI_ANY_ID, PCI_ANY_ID, }, | 1732 | PCI_ANY_ID, PCI_ANY_ID, }, |
1680 | {PCI_VENDOR_ID_EMULEX, PCI_DEVICE_ID_PFLY, | 1733 | {PCI_VENDOR_ID_EMULEX, PCI_DEVICE_ID_PFLY, |
1681 | PCI_ANY_ID, PCI_ANY_ID, }, | 1734 | PCI_ANY_ID, PCI_ANY_ID, }, |
1735 | {PCI_VENDOR_ID_EMULEX, PCI_DEVICE_ID_NEPTUNE, | ||
1736 | PCI_ANY_ID, PCI_ANY_ID, }, | ||
1737 | {PCI_VENDOR_ID_EMULEX, PCI_DEVICE_ID_NEPTUNE_SCSP, | ||
1738 | PCI_ANY_ID, PCI_ANY_ID, }, | ||
1739 | {PCI_VENDOR_ID_EMULEX, PCI_DEVICE_ID_NEPTUNE_DCSP, | ||
1740 | PCI_ANY_ID, PCI_ANY_ID, }, | ||
1682 | {PCI_VENDOR_ID_EMULEX, PCI_DEVICE_ID_HELIOS, | 1741 | {PCI_VENDOR_ID_EMULEX, PCI_DEVICE_ID_HELIOS, |
1683 | PCI_ANY_ID, PCI_ANY_ID, }, | 1742 | PCI_ANY_ID, PCI_ANY_ID, }, |
1743 | {PCI_VENDOR_ID_EMULEX, PCI_DEVICE_ID_HELIOS_SCSP, | ||
1744 | PCI_ANY_ID, PCI_ANY_ID, }, | ||
1745 | {PCI_VENDOR_ID_EMULEX, PCI_DEVICE_ID_HELIOS_DCSP, | ||
1746 | PCI_ANY_ID, PCI_ANY_ID, }, | ||
1684 | {PCI_VENDOR_ID_EMULEX, PCI_DEVICE_ID_BMID, | 1747 | {PCI_VENDOR_ID_EMULEX, PCI_DEVICE_ID_BMID, |
1685 | PCI_ANY_ID, PCI_ANY_ID, }, | 1748 | PCI_ANY_ID, PCI_ANY_ID, }, |
1686 | {PCI_VENDOR_ID_EMULEX, PCI_DEVICE_ID_BSMB, | 1749 | {PCI_VENDOR_ID_EMULEX, PCI_DEVICE_ID_BSMB, |
1687 | PCI_ANY_ID, PCI_ANY_ID, }, | 1750 | PCI_ANY_ID, PCI_ANY_ID, }, |
1688 | {PCI_VENDOR_ID_EMULEX, PCI_DEVICE_ID_ZEPHYR, | 1751 | {PCI_VENDOR_ID_EMULEX, PCI_DEVICE_ID_ZEPHYR, |
1689 | PCI_ANY_ID, PCI_ANY_ID, }, | 1752 | PCI_ANY_ID, PCI_ANY_ID, }, |
1753 | {PCI_VENDOR_ID_EMULEX, PCI_DEVICE_ID_ZEPHYR_SCSP, | ||
1754 | PCI_ANY_ID, PCI_ANY_ID, }, | ||
1755 | {PCI_VENDOR_ID_EMULEX, PCI_DEVICE_ID_ZEPHYR_DCSP, | ||
1756 | PCI_ANY_ID, PCI_ANY_ID, }, | ||
1690 | {PCI_VENDOR_ID_EMULEX, PCI_DEVICE_ID_ZMID, | 1757 | {PCI_VENDOR_ID_EMULEX, PCI_DEVICE_ID_ZMID, |
1691 | PCI_ANY_ID, PCI_ANY_ID, }, | 1758 | PCI_ANY_ID, PCI_ANY_ID, }, |
1692 | {PCI_VENDOR_ID_EMULEX, PCI_DEVICE_ID_ZSMB, | 1759 | {PCI_VENDOR_ID_EMULEX, PCI_DEVICE_ID_ZSMB, |
@@ -1697,6 +1764,10 @@ static struct pci_device_id lpfc_id_table[] = { | |||
1697 | PCI_ANY_ID, PCI_ANY_ID, }, | 1764 | PCI_ANY_ID, PCI_ANY_ID, }, |
1698 | {PCI_VENDOR_ID_EMULEX, PCI_DEVICE_ID_LP10000S, | 1765 | {PCI_VENDOR_ID_EMULEX, PCI_DEVICE_ID_LP10000S, |
1699 | PCI_ANY_ID, PCI_ANY_ID, }, | 1766 | PCI_ANY_ID, PCI_ANY_ID, }, |
1767 | {PCI_VENDOR_ID_EMULEX, PCI_DEVICE_ID_LP11000S, | ||
1768 | PCI_ANY_ID, PCI_ANY_ID, }, | ||
1769 | {PCI_VENDOR_ID_EMULEX, PCI_DEVICE_ID_LPE11000S, | ||
1770 | PCI_ANY_ID, PCI_ANY_ID, }, | ||
1700 | { 0 } | 1771 | { 0 } |
1701 | }; | 1772 | }; |
1702 | 1773 | ||
diff --git a/drivers/scsi/lpfc/lpfc_nportdisc.c b/drivers/scsi/lpfc/lpfc_nportdisc.c index 507a6af56f42..fbead786031f 100644 --- a/drivers/scsi/lpfc/lpfc_nportdisc.c +++ b/drivers/scsi/lpfc/lpfc_nportdisc.c | |||
@@ -55,55 +55,76 @@ lpfc_check_adisc(struct lpfc_hba * phba, struct lpfc_nodelist * ndlp, | |||
55 | return (1); | 55 | return (1); |
56 | } | 56 | } |
57 | 57 | ||
58 | |||
59 | int | 58 | int |
60 | lpfc_check_sparm(struct lpfc_hba * phba, | 59 | lpfc_check_sparm(struct lpfc_hba * phba, |
61 | struct lpfc_nodelist * ndlp, struct serv_parm * sp, | 60 | struct lpfc_nodelist * ndlp, struct serv_parm * sp, |
62 | uint32_t class) | 61 | uint32_t class) |
63 | { | 62 | { |
64 | volatile struct serv_parm *hsp = &phba->fc_sparam; | 63 | volatile struct serv_parm *hsp = &phba->fc_sparam; |
65 | /* First check for supported version */ | 64 | uint16_t hsp_value, ssp_value = 0; |
66 | 65 | ||
67 | /* Next check for class validity */ | 66 | /* |
67 | * The receive data field size and buffer-to-buffer receive data field | ||
68 | * size entries are 16 bits but are represented as two 8-bit fields in | ||
69 | * the driver data structure to account for rsvd bits and other control | ||
70 | * bits. Reconstruct and compare the fields as a 16-bit values before | ||
71 | * correcting the byte values. | ||
72 | */ | ||
68 | if (sp->cls1.classValid) { | 73 | if (sp->cls1.classValid) { |
69 | 74 | hsp_value = (hsp->cls1.rcvDataSizeMsb << 8) | | |
70 | if (sp->cls1.rcvDataSizeMsb > hsp->cls1.rcvDataSizeMsb) | 75 | hsp->cls1.rcvDataSizeLsb; |
71 | sp->cls1.rcvDataSizeMsb = hsp->cls1.rcvDataSizeMsb; | 76 | ssp_value = (sp->cls1.rcvDataSizeMsb << 8) | |
72 | if (sp->cls1.rcvDataSizeLsb > hsp->cls1.rcvDataSizeLsb) | 77 | sp->cls1.rcvDataSizeLsb; |
78 | if (ssp_value > hsp_value) { | ||
73 | sp->cls1.rcvDataSizeLsb = hsp->cls1.rcvDataSizeLsb; | 79 | sp->cls1.rcvDataSizeLsb = hsp->cls1.rcvDataSizeLsb; |
80 | sp->cls1.rcvDataSizeMsb = hsp->cls1.rcvDataSizeMsb; | ||
81 | } | ||
74 | } else if (class == CLASS1) { | 82 | } else if (class == CLASS1) { |
75 | return (0); | 83 | return 0; |
76 | } | 84 | } |
77 | 85 | ||
78 | if (sp->cls2.classValid) { | 86 | if (sp->cls2.classValid) { |
79 | 87 | hsp_value = (hsp->cls2.rcvDataSizeMsb << 8) | | |
80 | if (sp->cls2.rcvDataSizeMsb > hsp->cls2.rcvDataSizeMsb) | 88 | hsp->cls2.rcvDataSizeLsb; |
81 | sp->cls2.rcvDataSizeMsb = hsp->cls2.rcvDataSizeMsb; | 89 | ssp_value = (sp->cls2.rcvDataSizeMsb << 8) | |
82 | if (sp->cls2.rcvDataSizeLsb > hsp->cls2.rcvDataSizeLsb) | 90 | sp->cls2.rcvDataSizeLsb; |
91 | if (ssp_value > hsp_value) { | ||
83 | sp->cls2.rcvDataSizeLsb = hsp->cls2.rcvDataSizeLsb; | 92 | sp->cls2.rcvDataSizeLsb = hsp->cls2.rcvDataSizeLsb; |
93 | sp->cls2.rcvDataSizeMsb = hsp->cls2.rcvDataSizeMsb; | ||
94 | } | ||
84 | } else if (class == CLASS2) { | 95 | } else if (class == CLASS2) { |
85 | return (0); | 96 | return 0; |
86 | } | 97 | } |
87 | 98 | ||
88 | if (sp->cls3.classValid) { | 99 | if (sp->cls3.classValid) { |
89 | 100 | hsp_value = (hsp->cls3.rcvDataSizeMsb << 8) | | |
90 | if (sp->cls3.rcvDataSizeMsb > hsp->cls3.rcvDataSizeMsb) | 101 | hsp->cls3.rcvDataSizeLsb; |
91 | sp->cls3.rcvDataSizeMsb = hsp->cls3.rcvDataSizeMsb; | 102 | ssp_value = (sp->cls3.rcvDataSizeMsb << 8) | |
92 | if (sp->cls3.rcvDataSizeLsb > hsp->cls3.rcvDataSizeLsb) | 103 | sp->cls3.rcvDataSizeLsb; |
104 | if (ssp_value > hsp_value) { | ||
93 | sp->cls3.rcvDataSizeLsb = hsp->cls3.rcvDataSizeLsb; | 105 | sp->cls3.rcvDataSizeLsb = hsp->cls3.rcvDataSizeLsb; |
106 | sp->cls3.rcvDataSizeMsb = hsp->cls3.rcvDataSizeMsb; | ||
107 | } | ||
94 | } else if (class == CLASS3) { | 108 | } else if (class == CLASS3) { |
95 | return (0); | 109 | return 0; |
96 | } | 110 | } |
97 | 111 | ||
98 | if (sp->cmn.bbRcvSizeMsb > hsp->cmn.bbRcvSizeMsb) | 112 | /* |
99 | sp->cmn.bbRcvSizeMsb = hsp->cmn.bbRcvSizeMsb; | 113 | * Preserve the upper four bits of the MSB from the PLOGI response. |
100 | if (sp->cmn.bbRcvSizeLsb > hsp->cmn.bbRcvSizeLsb) | 114 | * These bits contain the Buffer-to-Buffer State Change Number |
115 | * from the target and need to be passed to the FW. | ||
116 | */ | ||
117 | hsp_value = (hsp->cmn.bbRcvSizeMsb << 8) | hsp->cmn.bbRcvSizeLsb; | ||
118 | ssp_value = (sp->cmn.bbRcvSizeMsb << 8) | sp->cmn.bbRcvSizeLsb; | ||
119 | if (ssp_value > hsp_value) { | ||
101 | sp->cmn.bbRcvSizeLsb = hsp->cmn.bbRcvSizeLsb; | 120 | sp->cmn.bbRcvSizeLsb = hsp->cmn.bbRcvSizeLsb; |
121 | sp->cmn.bbRcvSizeMsb = (sp->cmn.bbRcvSizeMsb & 0xF0) | | ||
122 | (hsp->cmn.bbRcvSizeMsb & 0x0F); | ||
123 | } | ||
102 | 124 | ||
103 | /* If check is good, copy wwpn wwnn into ndlp */ | ||
104 | memcpy(&ndlp->nlp_nodename, &sp->nodeName, sizeof (struct lpfc_name)); | 125 | memcpy(&ndlp->nlp_nodename, &sp->nodeName, sizeof (struct lpfc_name)); |
105 | memcpy(&ndlp->nlp_portname, &sp->portName, sizeof (struct lpfc_name)); | 126 | memcpy(&ndlp->nlp_portname, &sp->portName, sizeof (struct lpfc_name)); |
106 | return (1); | 127 | return 1; |
107 | } | 128 | } |
108 | 129 | ||
109 | static void * | 130 | static void * |
diff --git a/drivers/scsi/lpfc/lpfc_scsi.c b/drivers/scsi/lpfc/lpfc_scsi.c index c63275e66e2e..9ee8218404c0 100644 --- a/drivers/scsi/lpfc/lpfc_scsi.c +++ b/drivers/scsi/lpfc/lpfc_scsi.c | |||
@@ -41,6 +41,20 @@ | |||
41 | #define LPFC_ABORT_WAIT 2 | 41 | #define LPFC_ABORT_WAIT 2 |
42 | 42 | ||
43 | 43 | ||
44 | static inline void | ||
45 | lpfc_block_requests(struct lpfc_hba * phba) | ||
46 | { | ||
47 | down(&phba->hba_can_block); | ||
48 | scsi_block_requests(phba->host); | ||
49 | } | ||
50 | |||
51 | static inline void | ||
52 | lpfc_unblock_requests(struct lpfc_hba * phba) | ||
53 | { | ||
54 | scsi_unblock_requests(phba->host); | ||
55 | up(&phba->hba_can_block); | ||
56 | } | ||
57 | |||
44 | /* | 58 | /* |
45 | * This routine allocates a scsi buffer, which contains all the necessary | 59 | * This routine allocates a scsi buffer, which contains all the necessary |
46 | * information needed to initiate a SCSI I/O. The non-DMAable buffer region | 60 | * information needed to initiate a SCSI I/O. The non-DMAable buffer region |
@@ -137,18 +151,22 @@ lpfc_new_scsi_buf(struct lpfc_hba * phba) | |||
137 | } | 151 | } |
138 | 152 | ||
139 | struct lpfc_scsi_buf* | 153 | struct lpfc_scsi_buf* |
140 | lpfc_sli_get_scsi_buf(struct lpfc_hba * phba) | 154 | lpfc_get_scsi_buf(struct lpfc_hba * phba) |
141 | { | 155 | { |
142 | struct lpfc_scsi_buf * lpfc_cmd = NULL; | 156 | struct lpfc_scsi_buf * lpfc_cmd = NULL; |
143 | struct list_head *scsi_buf_list = &phba->lpfc_scsi_buf_list; | 157 | struct list_head *scsi_buf_list = &phba->lpfc_scsi_buf_list; |
158 | unsigned long iflag = 0; | ||
144 | 159 | ||
160 | spin_lock_irqsave(&phba->scsi_buf_list_lock, iflag); | ||
145 | list_remove_head(scsi_buf_list, lpfc_cmd, struct lpfc_scsi_buf, list); | 161 | list_remove_head(scsi_buf_list, lpfc_cmd, struct lpfc_scsi_buf, list); |
162 | spin_unlock_irqrestore(&phba->scsi_buf_list_lock, iflag); | ||
146 | return lpfc_cmd; | 163 | return lpfc_cmd; |
147 | } | 164 | } |
148 | 165 | ||
149 | static void | 166 | static void |
150 | lpfc_release_scsi_buf(struct lpfc_hba * phba, struct lpfc_scsi_buf * psb) | 167 | lpfc_release_scsi_buf(struct lpfc_hba * phba, struct lpfc_scsi_buf * psb) |
151 | { | 168 | { |
169 | unsigned long iflag = 0; | ||
152 | /* | 170 | /* |
153 | * There are only two special cases to consider. (1) the scsi command | 171 | * There are only two special cases to consider. (1) the scsi command |
154 | * requested scatter-gather usage or (2) the scsi command allocated | 172 | * requested scatter-gather usage or (2) the scsi command allocated |
@@ -166,8 +184,10 @@ lpfc_release_scsi_buf(struct lpfc_hba * phba, struct lpfc_scsi_buf * psb) | |||
166 | } | 184 | } |
167 | } | 185 | } |
168 | 186 | ||
187 | spin_lock_irqsave(&phba->scsi_buf_list_lock, iflag); | ||
169 | psb->pCmd = NULL; | 188 | psb->pCmd = NULL; |
170 | list_add_tail(&psb->list, &phba->lpfc_scsi_buf_list); | 189 | list_add_tail(&psb->list, &phba->lpfc_scsi_buf_list); |
190 | spin_unlock_irqrestore(&phba->scsi_buf_list_lock, iflag); | ||
171 | } | 191 | } |
172 | 192 | ||
173 | static int | 193 | static int |
@@ -389,7 +409,9 @@ lpfc_scsi_cmd_iocb_cmpl(struct lpfc_hba *phba, struct lpfc_iocbq *pIocbIn, | |||
389 | struct lpfc_rport_data *rdata = lpfc_cmd->rdata; | 409 | struct lpfc_rport_data *rdata = lpfc_cmd->rdata; |
390 | struct lpfc_nodelist *pnode = rdata->pnode; | 410 | struct lpfc_nodelist *pnode = rdata->pnode; |
391 | struct scsi_cmnd *cmd = lpfc_cmd->pCmd; | 411 | struct scsi_cmnd *cmd = lpfc_cmd->pCmd; |
392 | unsigned long iflag; | 412 | int result; |
413 | struct scsi_device *sdev, *tmp_sdev; | ||
414 | int depth = 0; | ||
393 | 415 | ||
394 | lpfc_cmd->result = pIocbOut->iocb.un.ulpWord[4]; | 416 | lpfc_cmd->result = pIocbOut->iocb.un.ulpWord[4]; |
395 | lpfc_cmd->status = pIocbOut->iocb.ulpStatus; | 417 | lpfc_cmd->status = pIocbOut->iocb.ulpStatus; |
@@ -441,11 +463,64 @@ lpfc_scsi_cmd_iocb_cmpl(struct lpfc_hba *phba, struct lpfc_iocbq *pIocbIn, | |||
441 | *lp, *(lp + 3), cmd->retries, cmd->resid); | 463 | *lp, *(lp + 3), cmd->retries, cmd->resid); |
442 | } | 464 | } |
443 | 465 | ||
466 | result = cmd->result; | ||
467 | sdev = cmd->device; | ||
444 | cmd->scsi_done(cmd); | 468 | cmd->scsi_done(cmd); |
445 | 469 | ||
446 | spin_lock_irqsave(phba->host->host_lock, iflag); | 470 | if (!result && |
471 | ((jiffies - pnode->last_ramp_up_time) > | ||
472 | LPFC_Q_RAMP_UP_INTERVAL * HZ) && | ||
473 | ((jiffies - pnode->last_q_full_time) > | ||
474 | LPFC_Q_RAMP_UP_INTERVAL * HZ) && | ||
475 | (phba->cfg_lun_queue_depth > sdev->queue_depth)) { | ||
476 | shost_for_each_device(tmp_sdev, sdev->host) { | ||
477 | if (phba->cfg_lun_queue_depth > tmp_sdev->queue_depth) { | ||
478 | if (tmp_sdev->id != sdev->id) | ||
479 | continue; | ||
480 | if (tmp_sdev->ordered_tags) | ||
481 | scsi_adjust_queue_depth(tmp_sdev, | ||
482 | MSG_ORDERED_TAG, | ||
483 | tmp_sdev->queue_depth+1); | ||
484 | else | ||
485 | scsi_adjust_queue_depth(tmp_sdev, | ||
486 | MSG_SIMPLE_TAG, | ||
487 | tmp_sdev->queue_depth+1); | ||
488 | |||
489 | pnode->last_ramp_up_time = jiffies; | ||
490 | } | ||
491 | } | ||
492 | } | ||
493 | |||
494 | /* | ||
495 | * Check for queue full. If the lun is reporting queue full, then | ||
496 | * back off the lun queue depth to prevent target overloads. | ||
497 | */ | ||
498 | if (result == SAM_STAT_TASK_SET_FULL) { | ||
499 | pnode->last_q_full_time = jiffies; | ||
500 | |||
501 | shost_for_each_device(tmp_sdev, sdev->host) { | ||
502 | if (tmp_sdev->id != sdev->id) | ||
503 | continue; | ||
504 | depth = scsi_track_queue_full(tmp_sdev, | ||
505 | tmp_sdev->queue_depth - 1); | ||
506 | } | ||
507 | /* | ||
508 | * The queue depth cannot be lowered any more. | ||
509 | * Modify the returned error code to store | ||
510 | * the final depth value set by | ||
511 | * scsi_track_queue_full. | ||
512 | */ | ||
513 | if (depth == -1) | ||
514 | depth = sdev->host->cmd_per_lun; | ||
515 | |||
516 | if (depth) { | ||
517 | lpfc_printf_log(phba, KERN_WARNING, LOG_FCP, | ||
518 | "%d:0711 detected queue full - lun queue depth " | ||
519 | " adjusted to %d.\n", phba->brd_no, depth); | ||
520 | } | ||
521 | } | ||
522 | |||
447 | lpfc_release_scsi_buf(phba, lpfc_cmd); | 523 | lpfc_release_scsi_buf(phba, lpfc_cmd); |
448 | spin_unlock_irqrestore(phba->host->host_lock, iflag); | ||
449 | } | 524 | } |
450 | 525 | ||
451 | static void | 526 | static void |
@@ -693,6 +768,37 @@ lpfc_info(struct Scsi_Host *host) | |||
693 | return lpfcinfobuf; | 768 | return lpfcinfobuf; |
694 | } | 769 | } |
695 | 770 | ||
771 | static __inline__ void lpfc_poll_rearm_timer(struct lpfc_hba * phba) | ||
772 | { | ||
773 | unsigned long poll_tmo_expires = | ||
774 | (jiffies + msecs_to_jiffies(phba->cfg_poll_tmo)); | ||
775 | |||
776 | if (phba->sli.ring[LPFC_FCP_RING].txcmplq_cnt) | ||
777 | mod_timer(&phba->fcp_poll_timer, | ||
778 | poll_tmo_expires); | ||
779 | } | ||
780 | |||
781 | void lpfc_poll_start_timer(struct lpfc_hba * phba) | ||
782 | { | ||
783 | lpfc_poll_rearm_timer(phba); | ||
784 | } | ||
785 | |||
786 | void lpfc_poll_timeout(unsigned long ptr) | ||
787 | { | ||
788 | struct lpfc_hba *phba = (struct lpfc_hba *)ptr; | ||
789 | unsigned long iflag; | ||
790 | |||
791 | spin_lock_irqsave(phba->host->host_lock, iflag); | ||
792 | |||
793 | if (phba->cfg_poll & ENABLE_FCP_RING_POLLING) { | ||
794 | lpfc_sli_poll_fcp_ring (phba); | ||
795 | if (phba->cfg_poll & DISABLE_FCP_RING_INT) | ||
796 | lpfc_poll_rearm_timer(phba); | ||
797 | } | ||
798 | |||
799 | spin_unlock_irqrestore(phba->host->host_lock, iflag); | ||
800 | } | ||
801 | |||
696 | static int | 802 | static int |
697 | lpfc_queuecommand(struct scsi_cmnd *cmnd, void (*done) (struct scsi_cmnd *)) | 803 | lpfc_queuecommand(struct scsi_cmnd *cmnd, void (*done) (struct scsi_cmnd *)) |
698 | { | 804 | { |
@@ -719,10 +825,11 @@ lpfc_queuecommand(struct scsi_cmnd *cmnd, void (*done) (struct scsi_cmnd *)) | |||
719 | cmnd->result = ScsiResult(DID_BUS_BUSY, 0); | 825 | cmnd->result = ScsiResult(DID_BUS_BUSY, 0); |
720 | goto out_fail_command; | 826 | goto out_fail_command; |
721 | } | 827 | } |
722 | lpfc_cmd = lpfc_sli_get_scsi_buf (phba); | 828 | lpfc_cmd = lpfc_get_scsi_buf (phba); |
723 | if (lpfc_cmd == NULL) { | 829 | if (lpfc_cmd == NULL) { |
724 | printk(KERN_WARNING "%s: No buffer available - list empty, " | 830 | lpfc_printf_log(phba, KERN_INFO, LOG_FCP, |
725 | "total count %d\n", __FUNCTION__, phba->total_scsi_bufs); | 831 | "%d:0707 driver's buffer pool is empty, " |
832 | "IO busied\n", phba->brd_no); | ||
726 | goto out_host_busy; | 833 | goto out_host_busy; |
727 | } | 834 | } |
728 | 835 | ||
@@ -746,11 +853,17 @@ lpfc_queuecommand(struct scsi_cmnd *cmnd, void (*done) (struct scsi_cmnd *)) | |||
746 | &lpfc_cmd->cur_iocbq, SLI_IOCB_RET_IOCB); | 853 | &lpfc_cmd->cur_iocbq, SLI_IOCB_RET_IOCB); |
747 | if (err) | 854 | if (err) |
748 | goto out_host_busy_free_buf; | 855 | goto out_host_busy_free_buf; |
856 | |||
857 | if (phba->cfg_poll & ENABLE_FCP_RING_POLLING) { | ||
858 | lpfc_sli_poll_fcp_ring(phba); | ||
859 | if (phba->cfg_poll & DISABLE_FCP_RING_INT) | ||
860 | lpfc_poll_rearm_timer(phba); | ||
861 | } | ||
862 | |||
749 | return 0; | 863 | return 0; |
750 | 864 | ||
751 | out_host_busy_free_buf: | 865 | out_host_busy_free_buf: |
752 | lpfc_release_scsi_buf(phba, lpfc_cmd); | 866 | lpfc_release_scsi_buf(phba, lpfc_cmd); |
753 | cmnd->host_scribble = NULL; | ||
754 | out_host_busy: | 867 | out_host_busy: |
755 | return SCSI_MLQUEUE_HOST_BUSY; | 868 | return SCSI_MLQUEUE_HOST_BUSY; |
756 | 869 | ||
@@ -759,11 +872,12 @@ lpfc_queuecommand(struct scsi_cmnd *cmnd, void (*done) (struct scsi_cmnd *)) | |||
759 | return 0; | 872 | return 0; |
760 | } | 873 | } |
761 | 874 | ||
875 | |||
762 | static int | 876 | static int |
763 | __lpfc_abort_handler(struct scsi_cmnd *cmnd) | 877 | lpfc_abort_handler(struct scsi_cmnd *cmnd) |
764 | { | 878 | { |
765 | struct lpfc_hba *phba = | 879 | struct Scsi_Host *shost = cmnd->device->host; |
766 | (struct lpfc_hba *)cmnd->device->host->hostdata[0]; | 880 | struct lpfc_hba *phba = (struct lpfc_hba *)shost->hostdata[0]; |
767 | struct lpfc_sli_ring *pring = &phba->sli.ring[phba->sli.fcp_ring]; | 881 | struct lpfc_sli_ring *pring = &phba->sli.ring[phba->sli.fcp_ring]; |
768 | struct lpfc_iocbq *iocb; | 882 | struct lpfc_iocbq *iocb; |
769 | struct lpfc_iocbq *abtsiocb; | 883 | struct lpfc_iocbq *abtsiocb; |
@@ -772,6 +886,8 @@ __lpfc_abort_handler(struct scsi_cmnd *cmnd) | |||
772 | unsigned int loop_count = 0; | 886 | unsigned int loop_count = 0; |
773 | int ret = SUCCESS; | 887 | int ret = SUCCESS; |
774 | 888 | ||
889 | lpfc_block_requests(phba); | ||
890 | spin_lock_irq(shost->host_lock); | ||
775 | 891 | ||
776 | lpfc_cmd = (struct lpfc_scsi_buf *)cmnd->host_scribble; | 892 | lpfc_cmd = (struct lpfc_scsi_buf *)cmnd->host_scribble; |
777 | BUG_ON(!lpfc_cmd); | 893 | BUG_ON(!lpfc_cmd); |
@@ -821,9 +937,15 @@ __lpfc_abort_handler(struct scsi_cmnd *cmnd) | |||
821 | goto out; | 937 | goto out; |
822 | } | 938 | } |
823 | 939 | ||
940 | if (phba->cfg_poll & DISABLE_FCP_RING_INT) | ||
941 | lpfc_sli_poll_fcp_ring (phba); | ||
942 | |||
824 | /* Wait for abort to complete */ | 943 | /* Wait for abort to complete */ |
825 | while (lpfc_cmd->pCmd == cmnd) | 944 | while (lpfc_cmd->pCmd == cmnd) |
826 | { | 945 | { |
946 | if (phba->cfg_poll & DISABLE_FCP_RING_INT) | ||
947 | lpfc_sli_poll_fcp_ring (phba); | ||
948 | |||
827 | spin_unlock_irq(phba->host->host_lock); | 949 | spin_unlock_irq(phba->host->host_lock); |
828 | schedule_timeout_uninterruptible(LPFC_ABORT_WAIT*HZ); | 950 | schedule_timeout_uninterruptible(LPFC_ABORT_WAIT*HZ); |
829 | spin_lock_irq(phba->host->host_lock); | 951 | spin_lock_irq(phba->host->host_lock); |
@@ -844,26 +966,19 @@ __lpfc_abort_handler(struct scsi_cmnd *cmnd) | |||
844 | 966 | ||
845 | out: | 967 | out: |
846 | lpfc_printf_log(phba, KERN_WARNING, LOG_FCP, | 968 | lpfc_printf_log(phba, KERN_WARNING, LOG_FCP, |
847 | "%d:0749 SCSI layer issued abort device: ret %#x, " | 969 | "%d:0749 SCSI Layer I/O Abort Request " |
848 | "ID %d, LUN %d, snum %#lx\n", | 970 | "Status x%x ID %d LUN %d snum %#lx\n", |
849 | phba->brd_no, ret, cmnd->device->id, | 971 | phba->brd_no, ret, cmnd->device->id, |
850 | cmnd->device->lun, cmnd->serial_number); | 972 | cmnd->device->lun, cmnd->serial_number); |
851 | 973 | ||
852 | return ret; | 974 | spin_unlock_irq(shost->host_lock); |
853 | } | 975 | lpfc_unblock_requests(phba); |
854 | 976 | ||
855 | static int | 977 | return ret; |
856 | lpfc_abort_handler(struct scsi_cmnd *cmnd) | ||
857 | { | ||
858 | int rc; | ||
859 | spin_lock_irq(cmnd->device->host->host_lock); | ||
860 | rc = __lpfc_abort_handler(cmnd); | ||
861 | spin_unlock_irq(cmnd->device->host->host_lock); | ||
862 | return rc; | ||
863 | } | 978 | } |
864 | 979 | ||
865 | static int | 980 | static int |
866 | __lpfc_reset_lun_handler(struct scsi_cmnd *cmnd) | 981 | lpfc_reset_lun_handler(struct scsi_cmnd *cmnd) |
867 | { | 982 | { |
868 | struct Scsi_Host *shost = cmnd->device->host; | 983 | struct Scsi_Host *shost = cmnd->device->host; |
869 | struct lpfc_hba *phba = (struct lpfc_hba *)shost->hostdata[0]; | 984 | struct lpfc_hba *phba = (struct lpfc_hba *)shost->hostdata[0]; |
@@ -871,9 +986,12 @@ __lpfc_reset_lun_handler(struct scsi_cmnd *cmnd) | |||
871 | struct lpfc_iocbq *iocbq, *iocbqrsp; | 986 | struct lpfc_iocbq *iocbq, *iocbqrsp; |
872 | struct lpfc_rport_data *rdata = cmnd->device->hostdata; | 987 | struct lpfc_rport_data *rdata = cmnd->device->hostdata; |
873 | struct lpfc_nodelist *pnode = rdata->pnode; | 988 | struct lpfc_nodelist *pnode = rdata->pnode; |
989 | uint32_t cmd_result = 0, cmd_status = 0; | ||
874 | int ret = FAILED; | 990 | int ret = FAILED; |
875 | int cnt, loopcnt; | 991 | int cnt, loopcnt; |
876 | 992 | ||
993 | lpfc_block_requests(phba); | ||
994 | spin_lock_irq(shost->host_lock); | ||
877 | /* | 995 | /* |
878 | * If target is not in a MAPPED state, delay the reset until | 996 | * If target is not in a MAPPED state, delay the reset until |
879 | * target is rediscovered or nodev timeout expires. | 997 | * target is rediscovered or nodev timeout expires. |
@@ -891,7 +1009,7 @@ __lpfc_reset_lun_handler(struct scsi_cmnd *cmnd) | |||
891 | break; | 1009 | break; |
892 | } | 1010 | } |
893 | 1011 | ||
894 | lpfc_cmd = lpfc_sli_get_scsi_buf (phba); | 1012 | lpfc_cmd = lpfc_get_scsi_buf (phba); |
895 | if (lpfc_cmd == NULL) | 1013 | if (lpfc_cmd == NULL) |
896 | goto out; | 1014 | goto out; |
897 | 1015 | ||
@@ -916,26 +1034,28 @@ __lpfc_reset_lun_handler(struct scsi_cmnd *cmnd) | |||
916 | if (ret == IOCB_SUCCESS) | 1034 | if (ret == IOCB_SUCCESS) |
917 | ret = SUCCESS; | 1035 | ret = SUCCESS; |
918 | 1036 | ||
919 | lpfc_cmd->result = iocbqrsp->iocb.un.ulpWord[4]; | 1037 | |
920 | lpfc_cmd->status = iocbqrsp->iocb.ulpStatus; | 1038 | cmd_result = iocbqrsp->iocb.un.ulpWord[4]; |
921 | if (lpfc_cmd->status == IOSTAT_LOCAL_REJECT) | 1039 | cmd_status = iocbqrsp->iocb.ulpStatus; |
922 | if (lpfc_cmd->result & IOERR_DRVR_MASK) | 1040 | |
923 | lpfc_cmd->status = IOSTAT_DRIVER_REJECT; | 1041 | lpfc_sli_release_iocbq(phba, iocbqrsp); |
1042 | lpfc_release_scsi_buf(phba, lpfc_cmd); | ||
924 | 1043 | ||
925 | /* | 1044 | /* |
926 | * All outstanding txcmplq I/Os should have been aborted by the target. | 1045 | * All outstanding txcmplq I/Os should have been aborted by the device. |
927 | * Unfortunately, some targets do not abide by this forcing the driver | 1046 | * Unfortunately, some targets do not abide by this forcing the driver |
928 | * to double check. | 1047 | * to double check. |
929 | */ | 1048 | */ |
930 | lpfc_sli_abort_iocb(phba, &phba->sli.ring[phba->sli.fcp_ring], | 1049 | cnt = lpfc_sli_sum_iocb(phba, &phba->sli.ring[phba->sli.fcp_ring], |
931 | cmnd->device->id, cmnd->device->lun, 0, | 1050 | cmnd->device->id, cmnd->device->lun, |
932 | LPFC_CTX_LUN); | 1051 | LPFC_CTX_LUN); |
933 | 1052 | if (cnt) | |
1053 | lpfc_sli_abort_iocb(phba, | ||
1054 | &phba->sli.ring[phba->sli.fcp_ring], | ||
1055 | cmnd->device->id, cmnd->device->lun, | ||
1056 | 0, LPFC_CTX_LUN); | ||
934 | loopcnt = 0; | 1057 | loopcnt = 0; |
935 | while((cnt = lpfc_sli_sum_iocb(phba, | 1058 | while(cnt) { |
936 | &phba->sli.ring[phba->sli.fcp_ring], | ||
937 | cmnd->device->id, cmnd->device->lun, | ||
938 | LPFC_CTX_LUN))) { | ||
939 | spin_unlock_irq(phba->host->host_lock); | 1059 | spin_unlock_irq(phba->host->host_lock); |
940 | schedule_timeout_uninterruptible(LPFC_RESET_WAIT*HZ); | 1060 | schedule_timeout_uninterruptible(LPFC_RESET_WAIT*HZ); |
941 | spin_lock_irq(phba->host->host_lock); | 1061 | spin_lock_irq(phba->host->host_lock); |
@@ -943,6 +1063,11 @@ __lpfc_reset_lun_handler(struct scsi_cmnd *cmnd) | |||
943 | if (++loopcnt | 1063 | if (++loopcnt |
944 | > (2 * phba->cfg_nodev_tmo)/LPFC_RESET_WAIT) | 1064 | > (2 * phba->cfg_nodev_tmo)/LPFC_RESET_WAIT) |
945 | break; | 1065 | break; |
1066 | |||
1067 | cnt = lpfc_sli_sum_iocb(phba, | ||
1068 | &phba->sli.ring[phba->sli.fcp_ring], | ||
1069 | cmnd->device->id, cmnd->device->lun, | ||
1070 | LPFC_CTX_LUN); | ||
946 | } | 1071 | } |
947 | 1072 | ||
948 | if (cnt) { | 1073 | if (cnt) { |
@@ -952,35 +1077,21 @@ __lpfc_reset_lun_handler(struct scsi_cmnd *cmnd) | |||
952 | ret = FAILED; | 1077 | ret = FAILED; |
953 | } | 1078 | } |
954 | 1079 | ||
955 | lpfc_sli_release_iocbq(phba, iocbqrsp); | ||
956 | |||
957 | out_free_scsi_buf: | 1080 | out_free_scsi_buf: |
958 | lpfc_printf_log(phba, KERN_ERR, LOG_FCP, | 1081 | lpfc_printf_log(phba, KERN_ERR, LOG_FCP, |
959 | "%d:0713 SCSI layer issued LUN reset (%d, %d) " | 1082 | "%d:0713 SCSI layer issued LUN reset (%d, %d) " |
960 | "Data: x%x x%x x%x\n", | 1083 | "Data: x%x x%x x%x\n", |
961 | phba->brd_no, lpfc_cmd->pCmd->device->id, | 1084 | phba->brd_no, cmnd->device->id,cmnd->device->lun, |
962 | lpfc_cmd->pCmd->device->lun, ret, lpfc_cmd->status, | 1085 | ret, cmd_status, cmd_result); |
963 | lpfc_cmd->result); | 1086 | |
964 | lpfc_release_scsi_buf(phba, lpfc_cmd); | ||
965 | out: | 1087 | out: |
1088 | spin_unlock_irq(shost->host_lock); | ||
1089 | lpfc_unblock_requests(phba); | ||
966 | return ret; | 1090 | return ret; |
967 | } | 1091 | } |
968 | 1092 | ||
969 | static int | 1093 | static int |
970 | lpfc_reset_lun_handler(struct scsi_cmnd *cmnd) | 1094 | lpfc_reset_bus_handler(struct scsi_cmnd *cmnd) |
971 | { | ||
972 | int rc; | ||
973 | spin_lock_irq(cmnd->device->host->host_lock); | ||
974 | rc = __lpfc_reset_lun_handler(cmnd); | ||
975 | spin_unlock_irq(cmnd->device->host->host_lock); | ||
976 | return rc; | ||
977 | } | ||
978 | |||
979 | /* | ||
980 | * Note: midlayer calls this function with the host_lock held | ||
981 | */ | ||
982 | static int | ||
983 | __lpfc_reset_bus_handler(struct scsi_cmnd *cmnd) | ||
984 | { | 1095 | { |
985 | struct Scsi_Host *shost = cmnd->device->host; | 1096 | struct Scsi_Host *shost = cmnd->device->host; |
986 | struct lpfc_hba *phba = (struct lpfc_hba *)shost->hostdata[0]; | 1097 | struct lpfc_hba *phba = (struct lpfc_hba *)shost->hostdata[0]; |
@@ -991,7 +1102,10 @@ __lpfc_reset_bus_handler(struct scsi_cmnd *cmnd) | |||
991 | unsigned int midlayer_id = 0; | 1102 | unsigned int midlayer_id = 0; |
992 | struct lpfc_scsi_buf * lpfc_cmd; | 1103 | struct lpfc_scsi_buf * lpfc_cmd; |
993 | 1104 | ||
994 | lpfc_cmd = lpfc_sli_get_scsi_buf (phba); | 1105 | lpfc_block_requests(phba); |
1106 | spin_lock_irq(shost->host_lock); | ||
1107 | |||
1108 | lpfc_cmd = lpfc_get_scsi_buf(phba); | ||
995 | if (lpfc_cmd == NULL) | 1109 | if (lpfc_cmd == NULL) |
996 | goto out; | 1110 | goto out; |
997 | 1111 | ||
@@ -1022,18 +1136,31 @@ __lpfc_reset_bus_handler(struct scsi_cmnd *cmnd) | |||
1022 | lpfc_cmd->pCmd->device->hostdata = ndlp->rport->dd_data; | 1136 | lpfc_cmd->pCmd->device->hostdata = ndlp->rport->dd_data; |
1023 | ret = lpfc_scsi_tgt_reset(lpfc_cmd, phba); | 1137 | ret = lpfc_scsi_tgt_reset(lpfc_cmd, phba); |
1024 | if (ret != SUCCESS) { | 1138 | if (ret != SUCCESS) { |
1025 | lpfc_printf_log(phba, KERN_INFO, LOG_FCP, | 1139 | lpfc_printf_log(phba, KERN_ERR, LOG_FCP, |
1026 | "%d:0713 Bus Reset on target %d failed\n", | 1140 | "%d:0713 Bus Reset on target %d failed\n", |
1027 | phba->brd_no, i); | 1141 | phba->brd_no, i); |
1028 | err_count++; | 1142 | err_count++; |
1029 | } | 1143 | } |
1030 | } | 1144 | } |
1031 | 1145 | ||
1146 | if (err_count == 0) | ||
1147 | ret = SUCCESS; | ||
1148 | |||
1149 | lpfc_release_scsi_buf(phba, lpfc_cmd); | ||
1150 | |||
1151 | /* | ||
1152 | * All outstanding txcmplq I/Os should have been aborted by | ||
1153 | * the targets. Unfortunately, some targets do not abide by | ||
1154 | * this forcing the driver to double check. | ||
1155 | */ | ||
1032 | cmnd->device->id = midlayer_id; | 1156 | cmnd->device->id = midlayer_id; |
1157 | cnt = lpfc_sli_sum_iocb(phba, &phba->sli.ring[phba->sli.fcp_ring], | ||
1158 | 0, 0, LPFC_CTX_HOST); | ||
1159 | if (cnt) | ||
1160 | lpfc_sli_abort_iocb(phba, &phba->sli.ring[phba->sli.fcp_ring], | ||
1161 | 0, 0, 0, LPFC_CTX_HOST); | ||
1033 | loopcnt = 0; | 1162 | loopcnt = 0; |
1034 | while((cnt = lpfc_sli_sum_iocb(phba, | 1163 | while(cnt) { |
1035 | &phba->sli.ring[phba->sli.fcp_ring], | ||
1036 | 0, 0, LPFC_CTX_HOST))) { | ||
1037 | spin_unlock_irq(phba->host->host_lock); | 1164 | spin_unlock_irq(phba->host->host_lock); |
1038 | schedule_timeout_uninterruptible(LPFC_RESET_WAIT*HZ); | 1165 | schedule_timeout_uninterruptible(LPFC_RESET_WAIT*HZ); |
1039 | spin_lock_irq(phba->host->host_lock); | 1166 | spin_lock_irq(phba->host->host_lock); |
@@ -1041,45 +1168,31 @@ __lpfc_reset_bus_handler(struct scsi_cmnd *cmnd) | |||
1041 | if (++loopcnt | 1168 | if (++loopcnt |
1042 | > (2 * phba->cfg_nodev_tmo)/LPFC_RESET_WAIT) | 1169 | > (2 * phba->cfg_nodev_tmo)/LPFC_RESET_WAIT) |
1043 | break; | 1170 | break; |
1171 | |||
1172 | cnt = lpfc_sli_sum_iocb(phba, | ||
1173 | &phba->sli.ring[phba->sli.fcp_ring], | ||
1174 | 0, 0, LPFC_CTX_HOST); | ||
1044 | } | 1175 | } |
1045 | 1176 | ||
1046 | if (cnt) { | 1177 | if (cnt) { |
1047 | /* flush all outstanding commands on the host */ | 1178 | lpfc_printf_log(phba, KERN_ERR, LOG_FCP, |
1048 | i = lpfc_sli_abort_iocb(phba, | ||
1049 | &phba->sli.ring[phba->sli.fcp_ring], 0, 0, 0, | ||
1050 | LPFC_CTX_HOST); | ||
1051 | |||
1052 | lpfc_printf_log(phba, KERN_INFO, LOG_FCP, | ||
1053 | "%d:0715 Bus Reset I/O flush failure: cnt x%x left x%x\n", | 1179 | "%d:0715 Bus Reset I/O flush failure: cnt x%x left x%x\n", |
1054 | phba->brd_no, cnt, i); | 1180 | phba->brd_no, cnt, i); |
1055 | } | ||
1056 | |||
1057 | if (cnt == 0) | ||
1058 | ret = SUCCESS; | ||
1059 | else | ||
1060 | ret = FAILED; | 1181 | ret = FAILED; |
1182 | } | ||
1061 | 1183 | ||
1062 | lpfc_release_scsi_buf(phba, lpfc_cmd); | ||
1063 | lpfc_printf_log(phba, | 1184 | lpfc_printf_log(phba, |
1064 | KERN_ERR, | 1185 | KERN_ERR, |
1065 | LOG_FCP, | 1186 | LOG_FCP, |
1066 | "%d:0714 SCSI layer issued Bus Reset Data: x%x\n", | 1187 | "%d:0714 SCSI layer issued Bus Reset Data: x%x\n", |
1067 | phba->brd_no, ret); | 1188 | phba->brd_no, ret); |
1068 | out: | 1189 | out: |
1190 | spin_unlock_irq(shost->host_lock); | ||
1191 | lpfc_unblock_requests(phba); | ||
1069 | return ret; | 1192 | return ret; |
1070 | } | 1193 | } |
1071 | 1194 | ||
1072 | static int | 1195 | static int |
1073 | lpfc_reset_bus_handler(struct scsi_cmnd *cmnd) | ||
1074 | { | ||
1075 | int rc; | ||
1076 | spin_lock_irq(cmnd->device->host->host_lock); | ||
1077 | rc = __lpfc_reset_bus_handler(cmnd); | ||
1078 | spin_unlock_irq(cmnd->device->host->host_lock); | ||
1079 | return rc; | ||
1080 | } | ||
1081 | |||
1082 | static int | ||
1083 | lpfc_slave_alloc(struct scsi_device *sdev) | 1196 | lpfc_slave_alloc(struct scsi_device *sdev) |
1084 | { | 1197 | { |
1085 | struct lpfc_hba *phba = (struct lpfc_hba *)sdev->host->hostdata[0]; | 1198 | struct lpfc_hba *phba = (struct lpfc_hba *)sdev->host->hostdata[0]; |
@@ -1127,10 +1240,10 @@ lpfc_slave_alloc(struct scsi_device *sdev) | |||
1127 | break; | 1240 | break; |
1128 | } | 1241 | } |
1129 | 1242 | ||
1130 | spin_lock_irqsave(phba->host->host_lock, flags); | 1243 | spin_lock_irqsave(&phba->scsi_buf_list_lock, flags); |
1131 | phba->total_scsi_bufs++; | 1244 | phba->total_scsi_bufs++; |
1132 | list_add_tail(&scsi_buf->list, &phba->lpfc_scsi_buf_list); | 1245 | list_add_tail(&scsi_buf->list, &phba->lpfc_scsi_buf_list); |
1133 | spin_unlock_irqrestore(phba->host->host_lock, flags); | 1246 | spin_unlock_irqrestore(&phba->scsi_buf_list_lock, flags); |
1134 | } | 1247 | } |
1135 | return 0; | 1248 | return 0; |
1136 | } | 1249 | } |
@@ -1154,6 +1267,12 @@ lpfc_slave_configure(struct scsi_device *sdev) | |||
1154 | */ | 1267 | */ |
1155 | rport->dev_loss_tmo = phba->cfg_nodev_tmo + 5; | 1268 | rport->dev_loss_tmo = phba->cfg_nodev_tmo + 5; |
1156 | 1269 | ||
1270 | if (phba->cfg_poll & ENABLE_FCP_RING_POLLING) { | ||
1271 | lpfc_sli_poll_fcp_ring(phba); | ||
1272 | if (phba->cfg_poll & DISABLE_FCP_RING_INT) | ||
1273 | lpfc_poll_rearm_timer(phba); | ||
1274 | } | ||
1275 | |||
1157 | return 0; | 1276 | return 0; |
1158 | } | 1277 | } |
1159 | 1278 | ||
diff --git a/drivers/scsi/lpfc/lpfc_sli.c b/drivers/scsi/lpfc/lpfc_sli.c index e2c08c5d83fb..7b785ade8b07 100644 --- a/drivers/scsi/lpfc/lpfc_sli.c +++ b/drivers/scsi/lpfc/lpfc_sli.c | |||
@@ -886,6 +886,182 @@ lpfc_sli_process_sol_iocb(struct lpfc_hba * phba, struct lpfc_sli_ring * pring, | |||
886 | return rc; | 886 | return rc; |
887 | } | 887 | } |
888 | 888 | ||
889 | static void lpfc_sli_rsp_pointers_error(struct lpfc_hba * phba, | ||
890 | struct lpfc_sli_ring * pring) | ||
891 | { | ||
892 | struct lpfc_pgp *pgp = &phba->slim2p->mbx.us.s2.port[pring->ringno]; | ||
893 | /* | ||
894 | * Ring <ringno> handler: portRspPut <portRspPut> is bigger then | ||
895 | * rsp ring <portRspMax> | ||
896 | */ | ||
897 | lpfc_printf_log(phba, KERN_ERR, LOG_SLI, | ||
898 | "%d:0312 Ring %d handler: portRspPut %d " | ||
899 | "is bigger then rsp ring %d\n", | ||
900 | phba->brd_no, pring->ringno, | ||
901 | le32_to_cpu(pgp->rspPutInx), | ||
902 | pring->numRiocb); | ||
903 | |||
904 | phba->hba_state = LPFC_HBA_ERROR; | ||
905 | |||
906 | /* | ||
907 | * All error attention handlers are posted to | ||
908 | * worker thread | ||
909 | */ | ||
910 | phba->work_ha |= HA_ERATT; | ||
911 | phba->work_hs = HS_FFER3; | ||
912 | if (phba->work_wait) | ||
913 | wake_up(phba->work_wait); | ||
914 | |||
915 | return; | ||
916 | } | ||
917 | |||
918 | void lpfc_sli_poll_fcp_ring(struct lpfc_hba * phba) | ||
919 | { | ||
920 | struct lpfc_sli * psli = &phba->sli; | ||
921 | struct lpfc_sli_ring * pring = &psli->ring[LPFC_FCP_RING]; | ||
922 | IOCB_t *irsp = NULL; | ||
923 | IOCB_t *entry = NULL; | ||
924 | struct lpfc_iocbq *cmdiocbq = NULL; | ||
925 | struct lpfc_iocbq rspiocbq; | ||
926 | struct lpfc_pgp *pgp; | ||
927 | uint32_t status; | ||
928 | uint32_t portRspPut, portRspMax; | ||
929 | int type; | ||
930 | uint32_t rsp_cmpl = 0; | ||
931 | void __iomem *to_slim; | ||
932 | uint32_t ha_copy; | ||
933 | |||
934 | pring->stats.iocb_event++; | ||
935 | |||
936 | /* The driver assumes SLI-2 mode */ | ||
937 | pgp = &phba->slim2p->mbx.us.s2.port[pring->ringno]; | ||
938 | |||
939 | /* | ||
940 | * The next available response entry should never exceed the maximum | ||
941 | * entries. If it does, treat it as an adapter hardware error. | ||
942 | */ | ||
943 | portRspMax = pring->numRiocb; | ||
944 | portRspPut = le32_to_cpu(pgp->rspPutInx); | ||
945 | if (unlikely(portRspPut >= portRspMax)) { | ||
946 | lpfc_sli_rsp_pointers_error(phba, pring); | ||
947 | return; | ||
948 | } | ||
949 | |||
950 | rmb(); | ||
951 | while (pring->rspidx != portRspPut) { | ||
952 | |||
953 | entry = IOCB_ENTRY(pring->rspringaddr, pring->rspidx); | ||
954 | |||
955 | if (++pring->rspidx >= portRspMax) | ||
956 | pring->rspidx = 0; | ||
957 | |||
958 | lpfc_sli_pcimem_bcopy((uint32_t *) entry, | ||
959 | (uint32_t *) &rspiocbq.iocb, | ||
960 | sizeof (IOCB_t)); | ||
961 | irsp = &rspiocbq.iocb; | ||
962 | type = lpfc_sli_iocb_cmd_type(irsp->ulpCommand & CMD_IOCB_MASK); | ||
963 | pring->stats.iocb_rsp++; | ||
964 | rsp_cmpl++; | ||
965 | |||
966 | if (unlikely(irsp->ulpStatus)) { | ||
967 | /* Rsp ring <ringno> error: IOCB */ | ||
968 | lpfc_printf_log(phba, KERN_WARNING, LOG_SLI, | ||
969 | "%d:0326 Rsp Ring %d error: IOCB Data: " | ||
970 | "x%x x%x x%x x%x x%x x%x x%x x%x\n", | ||
971 | phba->brd_no, pring->ringno, | ||
972 | irsp->un.ulpWord[0], | ||
973 | irsp->un.ulpWord[1], | ||
974 | irsp->un.ulpWord[2], | ||
975 | irsp->un.ulpWord[3], | ||
976 | irsp->un.ulpWord[4], | ||
977 | irsp->un.ulpWord[5], | ||
978 | *(((uint32_t *) irsp) + 6), | ||
979 | *(((uint32_t *) irsp) + 7)); | ||
980 | } | ||
981 | |||
982 | switch (type) { | ||
983 | case LPFC_ABORT_IOCB: | ||
984 | case LPFC_SOL_IOCB: | ||
985 | /* | ||
986 | * Idle exchange closed via ABTS from port. No iocb | ||
987 | * resources need to be recovered. | ||
988 | */ | ||
989 | if (unlikely(irsp->ulpCommand == CMD_XRI_ABORTED_CX)) { | ||
990 | printk(KERN_INFO "%s: IOCB cmd 0x%x processed." | ||
991 | " Skipping completion\n", __FUNCTION__, | ||
992 | irsp->ulpCommand); | ||
993 | break; | ||
994 | } | ||
995 | |||
996 | cmdiocbq = lpfc_sli_iocbq_lookup(phba, pring, | ||
997 | &rspiocbq); | ||
998 | if ((cmdiocbq) && (cmdiocbq->iocb_cmpl)) { | ||
999 | (cmdiocbq->iocb_cmpl)(phba, cmdiocbq, | ||
1000 | &rspiocbq); | ||
1001 | } | ||
1002 | break; | ||
1003 | default: | ||
1004 | if (irsp->ulpCommand == CMD_ADAPTER_MSG) { | ||
1005 | char adaptermsg[LPFC_MAX_ADPTMSG]; | ||
1006 | memset(adaptermsg, 0, LPFC_MAX_ADPTMSG); | ||
1007 | memcpy(&adaptermsg[0], (uint8_t *) irsp, | ||
1008 | MAX_MSG_DATA); | ||
1009 | dev_warn(&((phba->pcidev)->dev), "lpfc%d: %s", | ||
1010 | phba->brd_no, adaptermsg); | ||
1011 | } else { | ||
1012 | /* Unknown IOCB command */ | ||
1013 | lpfc_printf_log(phba, KERN_ERR, LOG_SLI, | ||
1014 | "%d:0321 Unknown IOCB command " | ||
1015 | "Data: x%x, x%x x%x x%x x%x\n", | ||
1016 | phba->brd_no, type, | ||
1017 | irsp->ulpCommand, | ||
1018 | irsp->ulpStatus, | ||
1019 | irsp->ulpIoTag, | ||
1020 | irsp->ulpContext); | ||
1021 | } | ||
1022 | break; | ||
1023 | } | ||
1024 | |||
1025 | /* | ||
1026 | * The response IOCB has been processed. Update the ring | ||
1027 | * pointer in SLIM. If the port response put pointer has not | ||
1028 | * been updated, sync the pgp->rspPutInx and fetch the new port | ||
1029 | * response put pointer. | ||
1030 | */ | ||
1031 | to_slim = phba->MBslimaddr + | ||
1032 | (SLIMOFF + (pring->ringno * 2) + 1) * 4; | ||
1033 | writeb(pring->rspidx, to_slim); | ||
1034 | |||
1035 | if (pring->rspidx == portRspPut) | ||
1036 | portRspPut = le32_to_cpu(pgp->rspPutInx); | ||
1037 | } | ||
1038 | |||
1039 | ha_copy = readl(phba->HAregaddr); | ||
1040 | ha_copy >>= (LPFC_FCP_RING * 4); | ||
1041 | |||
1042 | if ((rsp_cmpl > 0) && (ha_copy & HA_R0RE_REQ)) { | ||
1043 | pring->stats.iocb_rsp_full++; | ||
1044 | status = ((CA_R0ATT | CA_R0RE_RSP) << (LPFC_FCP_RING * 4)); | ||
1045 | writel(status, phba->CAregaddr); | ||
1046 | readl(phba->CAregaddr); | ||
1047 | } | ||
1048 | if ((ha_copy & HA_R0CE_RSP) && | ||
1049 | (pring->flag & LPFC_CALL_RING_AVAILABLE)) { | ||
1050 | pring->flag &= ~LPFC_CALL_RING_AVAILABLE; | ||
1051 | pring->stats.iocb_cmd_empty++; | ||
1052 | |||
1053 | /* Force update of the local copy of cmdGetInx */ | ||
1054 | pring->local_getidx = le32_to_cpu(pgp->cmdGetInx); | ||
1055 | lpfc_sli_resume_iocb(phba, pring); | ||
1056 | |||
1057 | if ((pring->lpfc_sli_cmd_available)) | ||
1058 | (pring->lpfc_sli_cmd_available) (phba, pring); | ||
1059 | |||
1060 | } | ||
1061 | |||
1062 | return; | ||
1063 | } | ||
1064 | |||
889 | /* | 1065 | /* |
890 | * This routine presumes LPFC_FCP_RING handling and doesn't bother | 1066 | * This routine presumes LPFC_FCP_RING handling and doesn't bother |
891 | * to check it explicitly. | 1067 | * to check it explicitly. |
@@ -917,24 +1093,7 @@ lpfc_sli_handle_fast_ring_event(struct lpfc_hba * phba, | |||
917 | portRspMax = pring->numRiocb; | 1093 | portRspMax = pring->numRiocb; |
918 | portRspPut = le32_to_cpu(pgp->rspPutInx); | 1094 | portRspPut = le32_to_cpu(pgp->rspPutInx); |
919 | if (unlikely(portRspPut >= portRspMax)) { | 1095 | if (unlikely(portRspPut >= portRspMax)) { |
920 | /* | 1096 | lpfc_sli_rsp_pointers_error(phba, pring); |
921 | * Ring <ringno> handler: portRspPut <portRspPut> is bigger then | ||
922 | * rsp ring <portRspMax> | ||
923 | */ | ||
924 | lpfc_printf_log(phba, KERN_ERR, LOG_SLI, | ||
925 | "%d:0312 Ring %d handler: portRspPut %d " | ||
926 | "is bigger then rsp ring %d\n", | ||
927 | phba->brd_no, pring->ringno, portRspPut, | ||
928 | portRspMax); | ||
929 | |||
930 | phba->hba_state = LPFC_HBA_ERROR; | ||
931 | |||
932 | /* All error attention handlers are posted to worker thread */ | ||
933 | phba->work_ha |= HA_ERATT; | ||
934 | phba->work_hs = HS_FFER3; | ||
935 | if (phba->work_wait) | ||
936 | wake_up(phba->work_wait); | ||
937 | |||
938 | spin_unlock_irqrestore(phba->host->host_lock, iflag); | 1097 | spin_unlock_irqrestore(phba->host->host_lock, iflag); |
939 | return 1; | 1098 | return 1; |
940 | } | 1099 | } |
@@ -947,6 +1106,10 @@ lpfc_sli_handle_fast_ring_event(struct lpfc_hba * phba, | |||
947 | * network byte order and pci byte orders are different. | 1106 | * network byte order and pci byte orders are different. |
948 | */ | 1107 | */ |
949 | entry = IOCB_ENTRY(pring->rspringaddr, pring->rspidx); | 1108 | entry = IOCB_ENTRY(pring->rspringaddr, pring->rspidx); |
1109 | |||
1110 | if (++pring->rspidx >= portRspMax) | ||
1111 | pring->rspidx = 0; | ||
1112 | |||
950 | lpfc_sli_pcimem_bcopy((uint32_t *) entry, | 1113 | lpfc_sli_pcimem_bcopy((uint32_t *) entry, |
951 | (uint32_t *) &rspiocbq.iocb, | 1114 | (uint32_t *) &rspiocbq.iocb, |
952 | sizeof (IOCB_t)); | 1115 | sizeof (IOCB_t)); |
@@ -1020,9 +1183,6 @@ lpfc_sli_handle_fast_ring_event(struct lpfc_hba * phba, | |||
1020 | * been updated, sync the pgp->rspPutInx and fetch the new port | 1183 | * been updated, sync the pgp->rspPutInx and fetch the new port |
1021 | * response put pointer. | 1184 | * response put pointer. |
1022 | */ | 1185 | */ |
1023 | if (++pring->rspidx >= portRspMax) | ||
1024 | pring->rspidx = 0; | ||
1025 | |||
1026 | to_slim = phba->MBslimaddr + | 1186 | to_slim = phba->MBslimaddr + |
1027 | (SLIMOFF + (pring->ringno * 2) + 1) * 4; | 1187 | (SLIMOFF + (pring->ringno * 2) + 1) * 4; |
1028 | writel(pring->rspidx, to_slim); | 1188 | writel(pring->rspidx, to_slim); |
@@ -2615,6 +2775,7 @@ lpfc_sli_issue_iocb_wait(struct lpfc_hba * phba, | |||
2615 | DECLARE_WAIT_QUEUE_HEAD(done_q); | 2775 | DECLARE_WAIT_QUEUE_HEAD(done_q); |
2616 | long timeleft, timeout_req = 0; | 2776 | long timeleft, timeout_req = 0; |
2617 | int retval = IOCB_SUCCESS; | 2777 | int retval = IOCB_SUCCESS; |
2778 | uint32_t creg_val; | ||
2618 | 2779 | ||
2619 | /* | 2780 | /* |
2620 | * If the caller has provided a response iocbq buffer, then context2 | 2781 | * If the caller has provided a response iocbq buffer, then context2 |
@@ -2630,6 +2791,13 @@ lpfc_sli_issue_iocb_wait(struct lpfc_hba * phba, | |||
2630 | piocb->context_un.wait_queue = &done_q; | 2791 | piocb->context_un.wait_queue = &done_q; |
2631 | piocb->iocb_flag &= ~LPFC_IO_WAKE; | 2792 | piocb->iocb_flag &= ~LPFC_IO_WAKE; |
2632 | 2793 | ||
2794 | if (phba->cfg_poll & DISABLE_FCP_RING_INT) { | ||
2795 | creg_val = readl(phba->HCregaddr); | ||
2796 | creg_val |= (HC_R0INT_ENA << LPFC_FCP_RING); | ||
2797 | writel(creg_val, phba->HCregaddr); | ||
2798 | readl(phba->HCregaddr); /* flush */ | ||
2799 | } | ||
2800 | |||
2633 | retval = lpfc_sli_issue_iocb(phba, pring, piocb, 0); | 2801 | retval = lpfc_sli_issue_iocb(phba, pring, piocb, 0); |
2634 | if (retval == IOCB_SUCCESS) { | 2802 | if (retval == IOCB_SUCCESS) { |
2635 | timeout_req = timeout * HZ; | 2803 | timeout_req = timeout * HZ; |
@@ -2663,6 +2831,13 @@ lpfc_sli_issue_iocb_wait(struct lpfc_hba * phba, | |||
2663 | retval = IOCB_ERROR; | 2831 | retval = IOCB_ERROR; |
2664 | } | 2832 | } |
2665 | 2833 | ||
2834 | if (phba->cfg_poll & DISABLE_FCP_RING_INT) { | ||
2835 | creg_val = readl(phba->HCregaddr); | ||
2836 | creg_val &= ~(HC_R0INT_ENA << LPFC_FCP_RING); | ||
2837 | writel(creg_val, phba->HCregaddr); | ||
2838 | readl(phba->HCregaddr); /* flush */ | ||
2839 | } | ||
2840 | |||
2666 | if (prspiocbq) | 2841 | if (prspiocbq) |
2667 | piocb->context2 = NULL; | 2842 | piocb->context2 = NULL; |
2668 | 2843 | ||
diff --git a/drivers/scsi/lpfc/lpfc_version.h b/drivers/scsi/lpfc/lpfc_version.h index 4f0466fbd5f2..fa681a934ffe 100644 --- a/drivers/scsi/lpfc/lpfc_version.h +++ b/drivers/scsi/lpfc/lpfc_version.h | |||
@@ -18,7 +18,7 @@ | |||
18 | * included with this package. * | 18 | * included with this package. * |
19 | *******************************************************************/ | 19 | *******************************************************************/ |
20 | 20 | ||
21 | #define LPFC_DRIVER_VERSION "8.1.0" | 21 | #define LPFC_DRIVER_VERSION "8.1.1" |
22 | 22 | ||
23 | #define LPFC_DRIVER_NAME "lpfc" | 23 | #define LPFC_DRIVER_NAME "lpfc" |
24 | 24 | ||
diff --git a/drivers/scsi/megaraid.c b/drivers/scsi/megaraid.c index 578143e93a6f..4a6feb1e5e3d 100644 --- a/drivers/scsi/megaraid.c +++ b/drivers/scsi/megaraid.c | |||
@@ -2,7 +2,7 @@ | |||
2 | * | 2 | * |
3 | * Linux MegaRAID device driver | 3 | * Linux MegaRAID device driver |
4 | * | 4 | * |
5 | * Copyright © 2002 LSI Logic Corporation. | 5 | * Copyright (c) 2002 LSI Logic Corporation. |
6 | * | 6 | * |
7 | * This program is free software; you can redistribute it and/or | 7 | * This program is free software; you can redistribute it and/or |
8 | * modify it under the terms of the GNU General Public License | 8 | * modify it under the terms of the GNU General Public License |
@@ -17,7 +17,8 @@ | |||
17 | * Copyright (c) 2003 Christoph Hellwig <hch@lst.de> | 17 | * Copyright (c) 2003 Christoph Hellwig <hch@lst.de> |
18 | * - new-style, hotplug-aware pci probing and scsi registration | 18 | * - new-style, hotplug-aware pci probing and scsi registration |
19 | * | 19 | * |
20 | * Version : v2.00.3 (Feb 19, 2003) - Atul Mukker <Atul.Mukker@lsil.com> | 20 | * Version : v2.00.4 Mon Nov 14 14:02:43 EST 2005 - Seokmann Ju |
21 | * <Seokmann.Ju@lsil.com> | ||
21 | * | 22 | * |
22 | * Description: Linux device driver for LSI Logic MegaRAID controller | 23 | * Description: Linux device driver for LSI Logic MegaRAID controller |
23 | * | 24 | * |
@@ -51,10 +52,10 @@ | |||
51 | 52 | ||
52 | #include "megaraid.h" | 53 | #include "megaraid.h" |
53 | 54 | ||
54 | #define MEGARAID_MODULE_VERSION "2.00.3" | 55 | #define MEGARAID_MODULE_VERSION "2.00.4" |
55 | 56 | ||
56 | MODULE_AUTHOR ("LSI Logic Corporation"); | 57 | MODULE_AUTHOR ("sju@lsil.com"); |
57 | MODULE_DESCRIPTION ("LSI Logic MegaRAID driver"); | 58 | MODULE_DESCRIPTION ("LSI Logic MegaRAID legacy driver"); |
58 | MODULE_LICENSE ("GPL"); | 59 | MODULE_LICENSE ("GPL"); |
59 | MODULE_VERSION(MEGARAID_MODULE_VERSION); | 60 | MODULE_VERSION(MEGARAID_MODULE_VERSION); |
60 | 61 | ||
@@ -4553,7 +4554,7 @@ mega_internal_done(Scsi_Cmnd *scmd) | |||
4553 | static struct scsi_host_template megaraid_template = { | 4554 | static struct scsi_host_template megaraid_template = { |
4554 | .module = THIS_MODULE, | 4555 | .module = THIS_MODULE, |
4555 | .name = "MegaRAID", | 4556 | .name = "MegaRAID", |
4556 | .proc_name = "megaraid", | 4557 | .proc_name = "megaraid_legacy", |
4557 | .info = megaraid_info, | 4558 | .info = megaraid_info, |
4558 | .queuecommand = megaraid_queue, | 4559 | .queuecommand = megaraid_queue, |
4559 | .bios_param = megaraid_biosparam, | 4560 | .bios_param = megaraid_biosparam, |
@@ -5037,22 +5038,12 @@ megaraid_shutdown(struct pci_dev *pdev) | |||
5037 | } | 5038 | } |
5038 | 5039 | ||
5039 | static struct pci_device_id megaraid_pci_tbl[] = { | 5040 | static struct pci_device_id megaraid_pci_tbl[] = { |
5040 | {PCI_VENDOR_ID_DELL, PCI_DEVICE_ID_DISCOVERY, | ||
5041 | PCI_ANY_ID, PCI_ANY_ID, 0, 0, 0}, | ||
5042 | {PCI_VENDOR_ID_DELL, PCI_DEVICE_ID_PERC4_DI, | ||
5043 | PCI_ANY_ID, PCI_ANY_ID, 0, 0, BOARD_64BIT}, | ||
5044 | {PCI_VENDOR_ID_LSI_LOGIC, PCI_DEVICE_ID_PERC4_QC_VERDE, | ||
5045 | PCI_ANY_ID, PCI_ANY_ID, 0, 0, BOARD_64BIT}, | ||
5046 | {PCI_VENDOR_ID_AMI, PCI_DEVICE_ID_AMI_MEGARAID, | 5041 | {PCI_VENDOR_ID_AMI, PCI_DEVICE_ID_AMI_MEGARAID, |
5047 | PCI_ANY_ID, PCI_ANY_ID, 0, 0, 0}, | 5042 | PCI_ANY_ID, PCI_ANY_ID, 0, 0, 0}, |
5048 | {PCI_VENDOR_ID_AMI, PCI_DEVICE_ID_AMI_MEGARAID2, | 5043 | {PCI_VENDOR_ID_AMI, PCI_DEVICE_ID_AMI_MEGARAID2, |
5049 | PCI_ANY_ID, PCI_ANY_ID, 0, 0, 0}, | 5044 | PCI_ANY_ID, PCI_ANY_ID, 0, 0, 0}, |
5050 | {PCI_VENDOR_ID_AMI, PCI_DEVICE_ID_AMI_MEGARAID3, | ||
5051 | PCI_ANY_ID, PCI_ANY_ID, 0, 0, 0}, | ||
5052 | {PCI_VENDOR_ID_INTEL, PCI_DEVICE_ID_AMI_MEGARAID3, | 5045 | {PCI_VENDOR_ID_INTEL, PCI_DEVICE_ID_AMI_MEGARAID3, |
5053 | PCI_ANY_ID, PCI_ANY_ID, 0, 0, 0}, | 5046 | PCI_ANY_ID, PCI_ANY_ID, 0, 0, 0}, |
5054 | {PCI_VENDOR_ID_LSI_LOGIC, PCI_DEVICE_ID_AMI_MEGARAID3, | ||
5055 | PCI_ANY_ID, PCI_ANY_ID, 0, 0, 0}, | ||
5056 | {0,} | 5047 | {0,} |
5057 | }; | 5048 | }; |
5058 | MODULE_DEVICE_TABLE(pci, megaraid_pci_tbl); | 5049 | MODULE_DEVICE_TABLE(pci, megaraid_pci_tbl); |
@@ -5095,7 +5086,7 @@ static int __init megaraid_init(void) | |||
5095 | * First argument (major) to register_chrdev implies a dynamic | 5086 | * First argument (major) to register_chrdev implies a dynamic |
5096 | * major number allocation. | 5087 | * major number allocation. |
5097 | */ | 5088 | */ |
5098 | major = register_chrdev(0, "megadev", &megadev_fops); | 5089 | major = register_chrdev(0, "megadev_legacy", &megadev_fops); |
5099 | if (!major) { | 5090 | if (!major) { |
5100 | printk(KERN_WARNING | 5091 | printk(KERN_WARNING |
5101 | "megaraid: failed to register char device\n"); | 5092 | "megaraid: failed to register char device\n"); |
@@ -5109,7 +5100,7 @@ static void __exit megaraid_exit(void) | |||
5109 | /* | 5100 | /* |
5110 | * Unregister the character device interface to the driver. | 5101 | * Unregister the character device interface to the driver. |
5111 | */ | 5102 | */ |
5112 | unregister_chrdev(major, "megadev"); | 5103 | unregister_chrdev(major, "megadev_legacy"); |
5113 | 5104 | ||
5114 | pci_unregister_driver(&megaraid_pci_driver); | 5105 | pci_unregister_driver(&megaraid_pci_driver); |
5115 | 5106 | ||
diff --git a/drivers/scsi/megaraid/Kconfig.megaraid b/drivers/scsi/megaraid/Kconfig.megaraid index 7363e12663ac..17419e30ffc8 100644 --- a/drivers/scsi/megaraid/Kconfig.megaraid +++ b/drivers/scsi/megaraid/Kconfig.megaraid | |||
@@ -64,7 +64,6 @@ config MEGARAID_MAILBOX | |||
64 | To compile this driver as a module, choose M here: the | 64 | To compile this driver as a module, choose M here: the |
65 | module will be called megaraid_mbox | 65 | module will be called megaraid_mbox |
66 | 66 | ||
67 | if MEGARAID_NEWGEN=n | ||
68 | config MEGARAID_LEGACY | 67 | config MEGARAID_LEGACY |
69 | tristate "LSI Logic Legacy MegaRAID Driver" | 68 | tristate "LSI Logic Legacy MegaRAID Driver" |
70 | depends on PCI && SCSI | 69 | depends on PCI && SCSI |
@@ -75,7 +74,6 @@ config MEGARAID_LEGACY | |||
75 | 74 | ||
76 | To compile this driver as a module, choose M here: the | 75 | To compile this driver as a module, choose M here: the |
77 | module will be called megaraid | 76 | module will be called megaraid |
78 | endif | ||
79 | 77 | ||
80 | config MEGARAID_SAS | 78 | config MEGARAID_SAS |
81 | tristate "LSI Logic MegaRAID SAS RAID Module" | 79 | tristate "LSI Logic MegaRAID SAS RAID Module" |
diff --git a/drivers/scsi/megaraid/megaraid_mbox.c b/drivers/scsi/megaraid/megaraid_mbox.c index 4b5d420d2f4d..d18a4bc2498c 100644 --- a/drivers/scsi/megaraid/megaraid_mbox.c +++ b/drivers/scsi/megaraid/megaraid_mbox.c | |||
@@ -10,12 +10,13 @@ | |||
10 | * 2 of the License, or (at your option) any later version. | 10 | * 2 of the License, or (at your option) any later version. |
11 | * | 11 | * |
12 | * FILE : megaraid_mbox.c | 12 | * FILE : megaraid_mbox.c |
13 | * Version : v2.20.4.6 (Mar 07 2005) | 13 | * Version : v2.20.4.7 (Nov 14 2005) |
14 | * | 14 | * |
15 | * Authors: | 15 | * Authors: |
16 | * Atul Mukker <Atul.Mukker@lsil.com> | 16 | * Atul Mukker <Atul.Mukker@lsil.com> |
17 | * Sreenivas Bagalkote <Sreenivas.Bagalkote@lsil.com> | 17 | * Sreenivas Bagalkote <Sreenivas.Bagalkote@lsil.com> |
18 | * Manoj Jose <Manoj.Jose@lsil.com> | 18 | * Manoj Jose <Manoj.Jose@lsil.com> |
19 | * Seokmann Ju <Seokmann.Ju@lsil.com> | ||
19 | * | 20 | * |
20 | * List of supported controllers | 21 | * List of supported controllers |
21 | * | 22 | * |
@@ -136,7 +137,7 @@ static int wait_till_fw_empty(adapter_t *); | |||
136 | 137 | ||
137 | 138 | ||
138 | 139 | ||
139 | MODULE_AUTHOR("LSI Logic Corporation"); | 140 | MODULE_AUTHOR("sju@lsil.com"); |
140 | MODULE_DESCRIPTION("LSI Logic MegaRAID Mailbox Driver"); | 141 | MODULE_DESCRIPTION("LSI Logic MegaRAID Mailbox Driver"); |
141 | MODULE_LICENSE("GPL"); | 142 | MODULE_LICENSE("GPL"); |
142 | MODULE_VERSION(MEGARAID_VERSION); | 143 | MODULE_VERSION(MEGARAID_VERSION); |
@@ -278,68 +279,14 @@ static struct pci_device_id pci_id_table_g[] = { | |||
278 | { | 279 | { |
279 | PCI_VENDOR_ID_AMI, | 280 | PCI_VENDOR_ID_AMI, |
280 | PCI_DEVICE_ID_AMI_MEGARAID3, | 281 | PCI_DEVICE_ID_AMI_MEGARAID3, |
281 | PCI_VENDOR_ID_DELL, | 282 | PCI_ANY_ID, |
282 | PCI_SUBSYS_ID_PERC3_QC, | 283 | PCI_ANY_ID, |
283 | }, | ||
284 | { | ||
285 | PCI_VENDOR_ID_AMI, | ||
286 | PCI_DEVICE_ID_AMI_MEGARAID3, | ||
287 | PCI_VENDOR_ID_DELL, | ||
288 | PCI_SUBSYS_ID_PERC3_DC, | ||
289 | }, | ||
290 | { | ||
291 | PCI_VENDOR_ID_AMI, | ||
292 | PCI_DEVICE_ID_AMI_MEGARAID3, | ||
293 | PCI_VENDOR_ID_DELL, | ||
294 | PCI_SUBSYS_ID_PERC3_SC, | ||
295 | }, | ||
296 | { | ||
297 | PCI_VENDOR_ID_AMI, | ||
298 | PCI_DEVICE_ID_AMI_MEGARAID3, | ||
299 | PCI_VENDOR_ID_AMI, | ||
300 | PCI_SUBSYS_ID_PERC3_SC, | ||
301 | }, | ||
302 | { | ||
303 | PCI_VENDOR_ID_AMI, | ||
304 | PCI_DEVICE_ID_AMI_MEGARAID3, | ||
305 | PCI_VENDOR_ID_AMI, | ||
306 | PCI_SUBSYS_ID_PERC3_DC, | ||
307 | }, | ||
308 | { | ||
309 | PCI_VENDOR_ID_LSI_LOGIC, | ||
310 | PCI_DEVICE_ID_MEGARAID_SCSI_320_0, | ||
311 | PCI_VENDOR_ID_LSI_LOGIC, | ||
312 | PCI_SUBSYS_ID_MEGARAID_SCSI_320_0, | ||
313 | }, | ||
314 | { | ||
315 | PCI_VENDOR_ID_LSI_LOGIC, | ||
316 | PCI_DEVICE_ID_MEGARAID_SCSI_320_1, | ||
317 | PCI_VENDOR_ID_LSI_LOGIC, | ||
318 | PCI_SUBSYS_ID_MEGARAID_SCSI_320_1, | ||
319 | }, | ||
320 | { | ||
321 | PCI_VENDOR_ID_LSI_LOGIC, | ||
322 | PCI_DEVICE_ID_MEGARAID_SCSI_320_2, | ||
323 | PCI_VENDOR_ID_LSI_LOGIC, | ||
324 | PCI_SUBSYS_ID_MEGARAID_SCSI_320_2, | ||
325 | }, | ||
326 | { | ||
327 | PCI_VENDOR_ID_LSI_LOGIC, | ||
328 | PCI_DEVICE_ID_MEGARAID_I4_133_RAID, | ||
329 | PCI_VENDOR_ID_LSI_LOGIC, | ||
330 | PCI_SUBSYS_ID_MEGARAID_I4_133_RAID, | ||
331 | }, | ||
332 | { | ||
333 | PCI_VENDOR_ID_LSI_LOGIC, | ||
334 | PCI_DEVICE_ID_MEGARAID_SATA_150_4, | ||
335 | PCI_VENDOR_ID_LSI_LOGIC, | ||
336 | PCI_SUBSYS_ID_MEGARAID_SATA_150_4, | ||
337 | }, | 284 | }, |
338 | { | 285 | { |
339 | PCI_VENDOR_ID_LSI_LOGIC, | 286 | PCI_VENDOR_ID_LSI_LOGIC, |
340 | PCI_DEVICE_ID_MEGARAID_SATA_150_6, | 287 | PCI_DEVICE_ID_AMI_MEGARAID3, |
341 | PCI_VENDOR_ID_LSI_LOGIC, | 288 | PCI_ANY_ID, |
342 | PCI_SUBSYS_ID_MEGARAID_SATA_150_6, | 289 | PCI_ANY_ID, |
343 | }, | 290 | }, |
344 | { | 291 | { |
345 | PCI_VENDOR_ID_LSI_LOGIC, | 292 | PCI_VENDOR_ID_LSI_LOGIC, |
@@ -347,18 +294,6 @@ static struct pci_device_id pci_id_table_g[] = { | |||
347 | PCI_ANY_ID, | 294 | PCI_ANY_ID, |
348 | PCI_ANY_ID, | 295 | PCI_ANY_ID, |
349 | }, | 296 | }, |
350 | { | ||
351 | PCI_VENDOR_ID_LSI_LOGIC, | ||
352 | PCI_DEVICE_ID_INTEL_RAID_SRCS16, | ||
353 | PCI_VENDOR_ID_INTEL, | ||
354 | PCI_SUBSYS_ID_INTEL_RAID_SRCS16, | ||
355 | }, | ||
356 | { | ||
357 | PCI_VENDOR_ID_LSI_LOGIC, | ||
358 | PCI_DEVICE_ID_INTEL_RAID_SRCU41L_LAKE_SHETEK, | ||
359 | PCI_VENDOR_ID_INTEL, | ||
360 | PCI_SUBSYS_ID_INTEL_RAID_SRCU41L_LAKE_SHETEK, | ||
361 | }, | ||
362 | {0} /* Terminating entry */ | 297 | {0} /* Terminating entry */ |
363 | }; | 298 | }; |
364 | MODULE_DEVICE_TABLE(pci, pci_id_table_g); | 299 | MODULE_DEVICE_TABLE(pci, pci_id_table_g); |
@@ -2985,6 +2920,7 @@ mbox_post_sync_cmd_fast(adapter_t *adapter, uint8_t raw_mbox[]) | |||
2985 | 2920 | ||
2986 | for (i = 0; i < 0xFFFFF; i++) { | 2921 | for (i = 0; i < 0xFFFFF; i++) { |
2987 | if (mbox->numstatus != 0xFF) break; | 2922 | if (mbox->numstatus != 0xFF) break; |
2923 | rmb(); | ||
2988 | } | 2924 | } |
2989 | 2925 | ||
2990 | if (i == 0xFFFFF) { | 2926 | if (i == 0xFFFFF) { |
diff --git a/drivers/scsi/megaraid/megaraid_mbox.h b/drivers/scsi/megaraid/megaraid_mbox.h index 644b91bdb028..882fb1a0b575 100644 --- a/drivers/scsi/megaraid/megaraid_mbox.h +++ b/drivers/scsi/megaraid/megaraid_mbox.h | |||
@@ -21,8 +21,8 @@ | |||
21 | #include "megaraid_ioctl.h" | 21 | #include "megaraid_ioctl.h" |
22 | 22 | ||
23 | 23 | ||
24 | #define MEGARAID_VERSION "2.20.4.6" | 24 | #define MEGARAID_VERSION "2.20.4.7" |
25 | #define MEGARAID_EXT_VERSION "(Release Date: Mon Mar 07 12:27:22 EST 2005)" | 25 | #define MEGARAID_EXT_VERSION "(Release Date: Mon Nov 14 12:27:22 EST 2005)" |
26 | 26 | ||
27 | 27 | ||
28 | /* | 28 | /* |
diff --git a/drivers/scsi/ncr53c8xx.c b/drivers/scsi/ncr53c8xx.c index 243470936fab..32350707b940 100644 --- a/drivers/scsi/ncr53c8xx.c +++ b/drivers/scsi/ncr53c8xx.c | |||
@@ -131,7 +131,739 @@ | |||
131 | #define NAME53C "ncr53c" | 131 | #define NAME53C "ncr53c" |
132 | #define NAME53C8XX "ncr53c8xx" | 132 | #define NAME53C8XX "ncr53c8xx" |
133 | 133 | ||
134 | #include "sym53c8xx_comm.h" | 134 | |
135 | /*========================================================== | ||
136 | ** | ||
137 | ** Debugging tags | ||
138 | ** | ||
139 | **========================================================== | ||
140 | */ | ||
141 | |||
142 | #define DEBUG_ALLOC (0x0001) | ||
143 | #define DEBUG_PHASE (0x0002) | ||
144 | #define DEBUG_QUEUE (0x0008) | ||
145 | #define DEBUG_RESULT (0x0010) | ||
146 | #define DEBUG_POINTER (0x0020) | ||
147 | #define DEBUG_SCRIPT (0x0040) | ||
148 | #define DEBUG_TINY (0x0080) | ||
149 | #define DEBUG_TIMING (0x0100) | ||
150 | #define DEBUG_NEGO (0x0200) | ||
151 | #define DEBUG_TAGS (0x0400) | ||
152 | #define DEBUG_SCATTER (0x0800) | ||
153 | #define DEBUG_IC (0x1000) | ||
154 | |||
155 | /* | ||
156 | ** Enable/Disable debug messages. | ||
157 | ** Can be changed at runtime too. | ||
158 | */ | ||
159 | |||
160 | #ifdef SCSI_NCR_DEBUG_INFO_SUPPORT | ||
161 | static int ncr_debug = SCSI_NCR_DEBUG_FLAGS; | ||
162 | #define DEBUG_FLAGS ncr_debug | ||
163 | #else | ||
164 | #define DEBUG_FLAGS SCSI_NCR_DEBUG_FLAGS | ||
165 | #endif | ||
166 | |||
167 | static inline struct list_head *ncr_list_pop(struct list_head *head) | ||
168 | { | ||
169 | if (!list_empty(head)) { | ||
170 | struct list_head *elem = head->next; | ||
171 | |||
172 | list_del(elem); | ||
173 | return elem; | ||
174 | } | ||
175 | |||
176 | return NULL; | ||
177 | } | ||
178 | |||
179 | /*========================================================== | ||
180 | ** | ||
181 | ** Simple power of two buddy-like allocator. | ||
182 | ** | ||
183 | ** This simple code is not intended to be fast, but to | ||
184 | ** provide power of 2 aligned memory allocations. | ||
185 | ** Since the SCRIPTS processor only supplies 8 bit | ||
186 | ** arithmetic, this allocator allows simple and fast | ||
187 | ** address calculations from the SCRIPTS code. | ||
188 | ** In addition, cache line alignment is guaranteed for | ||
189 | ** power of 2 cache line size. | ||
190 | ** Enhanced in linux-2.3.44 to provide a memory pool | ||
191 | ** per pcidev to support dynamic dma mapping. (I would | ||
192 | ** have preferred a real bus astraction, btw). | ||
193 | ** | ||
194 | **========================================================== | ||
195 | */ | ||
196 | |||
197 | #define MEMO_SHIFT 4 /* 16 bytes minimum memory chunk */ | ||
198 | #if PAGE_SIZE >= 8192 | ||
199 | #define MEMO_PAGE_ORDER 0 /* 1 PAGE maximum */ | ||
200 | #else | ||
201 | #define MEMO_PAGE_ORDER 1 /* 2 PAGES maximum */ | ||
202 | #endif | ||
203 | #define MEMO_FREE_UNUSED /* Free unused pages immediately */ | ||
204 | #define MEMO_WARN 1 | ||
205 | #define MEMO_GFP_FLAGS GFP_ATOMIC | ||
206 | #define MEMO_CLUSTER_SHIFT (PAGE_SHIFT+MEMO_PAGE_ORDER) | ||
207 | #define MEMO_CLUSTER_SIZE (1UL << MEMO_CLUSTER_SHIFT) | ||
208 | #define MEMO_CLUSTER_MASK (MEMO_CLUSTER_SIZE-1) | ||
209 | |||
210 | typedef u_long m_addr_t; /* Enough bits to bit-hack addresses */ | ||
211 | typedef struct device *m_bush_t; /* Something that addresses DMAable */ | ||
212 | |||
213 | typedef struct m_link { /* Link between free memory chunks */ | ||
214 | struct m_link *next; | ||
215 | } m_link_s; | ||
216 | |||
217 | typedef struct m_vtob { /* Virtual to Bus address translation */ | ||
218 | struct m_vtob *next; | ||
219 | m_addr_t vaddr; | ||
220 | m_addr_t baddr; | ||
221 | } m_vtob_s; | ||
222 | #define VTOB_HASH_SHIFT 5 | ||
223 | #define VTOB_HASH_SIZE (1UL << VTOB_HASH_SHIFT) | ||
224 | #define VTOB_HASH_MASK (VTOB_HASH_SIZE-1) | ||
225 | #define VTOB_HASH_CODE(m) \ | ||
226 | ((((m_addr_t) (m)) >> MEMO_CLUSTER_SHIFT) & VTOB_HASH_MASK) | ||
227 | |||
228 | typedef struct m_pool { /* Memory pool of a given kind */ | ||
229 | m_bush_t bush; | ||
230 | m_addr_t (*getp)(struct m_pool *); | ||
231 | void (*freep)(struct m_pool *, m_addr_t); | ||
232 | int nump; | ||
233 | m_vtob_s *(vtob[VTOB_HASH_SIZE]); | ||
234 | struct m_pool *next; | ||
235 | struct m_link h[PAGE_SHIFT-MEMO_SHIFT+MEMO_PAGE_ORDER+1]; | ||
236 | } m_pool_s; | ||
237 | |||
238 | static void *___m_alloc(m_pool_s *mp, int size) | ||
239 | { | ||
240 | int i = 0; | ||
241 | int s = (1 << MEMO_SHIFT); | ||
242 | int j; | ||
243 | m_addr_t a; | ||
244 | m_link_s *h = mp->h; | ||
245 | |||
246 | if (size > (PAGE_SIZE << MEMO_PAGE_ORDER)) | ||
247 | return NULL; | ||
248 | |||
249 | while (size > s) { | ||
250 | s <<= 1; | ||
251 | ++i; | ||
252 | } | ||
253 | |||
254 | j = i; | ||
255 | while (!h[j].next) { | ||
256 | if (s == (PAGE_SIZE << MEMO_PAGE_ORDER)) { | ||
257 | h[j].next = (m_link_s *)mp->getp(mp); | ||
258 | if (h[j].next) | ||
259 | h[j].next->next = NULL; | ||
260 | break; | ||
261 | } | ||
262 | ++j; | ||
263 | s <<= 1; | ||
264 | } | ||
265 | a = (m_addr_t) h[j].next; | ||
266 | if (a) { | ||
267 | h[j].next = h[j].next->next; | ||
268 | while (j > i) { | ||
269 | j -= 1; | ||
270 | s >>= 1; | ||
271 | h[j].next = (m_link_s *) (a+s); | ||
272 | h[j].next->next = NULL; | ||
273 | } | ||
274 | } | ||
275 | #ifdef DEBUG | ||
276 | printk("___m_alloc(%d) = %p\n", size, (void *) a); | ||
277 | #endif | ||
278 | return (void *) a; | ||
279 | } | ||
280 | |||
281 | static void ___m_free(m_pool_s *mp, void *ptr, int size) | ||
282 | { | ||
283 | int i = 0; | ||
284 | int s = (1 << MEMO_SHIFT); | ||
285 | m_link_s *q; | ||
286 | m_addr_t a, b; | ||
287 | m_link_s *h = mp->h; | ||
288 | |||
289 | #ifdef DEBUG | ||
290 | printk("___m_free(%p, %d)\n", ptr, size); | ||
291 | #endif | ||
292 | |||
293 | if (size > (PAGE_SIZE << MEMO_PAGE_ORDER)) | ||
294 | return; | ||
295 | |||
296 | while (size > s) { | ||
297 | s <<= 1; | ||
298 | ++i; | ||
299 | } | ||
300 | |||
301 | a = (m_addr_t) ptr; | ||
302 | |||
303 | while (1) { | ||
304 | #ifdef MEMO_FREE_UNUSED | ||
305 | if (s == (PAGE_SIZE << MEMO_PAGE_ORDER)) { | ||
306 | mp->freep(mp, a); | ||
307 | break; | ||
308 | } | ||
309 | #endif | ||
310 | b = a ^ s; | ||
311 | q = &h[i]; | ||
312 | while (q->next && q->next != (m_link_s *) b) { | ||
313 | q = q->next; | ||
314 | } | ||
315 | if (!q->next) { | ||
316 | ((m_link_s *) a)->next = h[i].next; | ||
317 | h[i].next = (m_link_s *) a; | ||
318 | break; | ||
319 | } | ||
320 | q->next = q->next->next; | ||
321 | a = a & b; | ||
322 | s <<= 1; | ||
323 | ++i; | ||
324 | } | ||
325 | } | ||
326 | |||
327 | static DEFINE_SPINLOCK(ncr53c8xx_lock); | ||
328 | |||
329 | static void *__m_calloc2(m_pool_s *mp, int size, char *name, int uflags) | ||
330 | { | ||
331 | void *p; | ||
332 | |||
333 | p = ___m_alloc(mp, size); | ||
334 | |||
335 | if (DEBUG_FLAGS & DEBUG_ALLOC) | ||
336 | printk ("new %-10s[%4d] @%p.\n", name, size, p); | ||
337 | |||
338 | if (p) | ||
339 | memset(p, 0, size); | ||
340 | else if (uflags & MEMO_WARN) | ||
341 | printk (NAME53C8XX ": failed to allocate %s[%d]\n", name, size); | ||
342 | |||
343 | return p; | ||
344 | } | ||
345 | |||
346 | #define __m_calloc(mp, s, n) __m_calloc2(mp, s, n, MEMO_WARN) | ||
347 | |||
348 | static void __m_free(m_pool_s *mp, void *ptr, int size, char *name) | ||
349 | { | ||
350 | if (DEBUG_FLAGS & DEBUG_ALLOC) | ||
351 | printk ("freeing %-10s[%4d] @%p.\n", name, size, ptr); | ||
352 | |||
353 | ___m_free(mp, ptr, size); | ||
354 | |||
355 | } | ||
356 | |||
357 | /* | ||
358 | * With pci bus iommu support, we use a default pool of unmapped memory | ||
359 | * for memory we donnot need to DMA from/to and one pool per pcidev for | ||
360 | * memory accessed by the PCI chip. `mp0' is the default not DMAable pool. | ||
361 | */ | ||
362 | |||
363 | static m_addr_t ___mp0_getp(m_pool_s *mp) | ||
364 | { | ||
365 | m_addr_t m = __get_free_pages(MEMO_GFP_FLAGS, MEMO_PAGE_ORDER); | ||
366 | if (m) | ||
367 | ++mp->nump; | ||
368 | return m; | ||
369 | } | ||
370 | |||
371 | static void ___mp0_freep(m_pool_s *mp, m_addr_t m) | ||
372 | { | ||
373 | free_pages(m, MEMO_PAGE_ORDER); | ||
374 | --mp->nump; | ||
375 | } | ||
376 | |||
377 | static m_pool_s mp0 = {NULL, ___mp0_getp, ___mp0_freep}; | ||
378 | |||
379 | /* | ||
380 | * DMAable pools. | ||
381 | */ | ||
382 | |||
383 | /* | ||
384 | * With pci bus iommu support, we maintain one pool per pcidev and a | ||
385 | * hashed reverse table for virtual to bus physical address translations. | ||
386 | */ | ||
387 | static m_addr_t ___dma_getp(m_pool_s *mp) | ||
388 | { | ||
389 | m_addr_t vp; | ||
390 | m_vtob_s *vbp; | ||
391 | |||
392 | vbp = __m_calloc(&mp0, sizeof(*vbp), "VTOB"); | ||
393 | if (vbp) { | ||
394 | dma_addr_t daddr; | ||
395 | vp = (m_addr_t) dma_alloc_coherent(mp->bush, | ||
396 | PAGE_SIZE<<MEMO_PAGE_ORDER, | ||
397 | &daddr, GFP_ATOMIC); | ||
398 | if (vp) { | ||
399 | int hc = VTOB_HASH_CODE(vp); | ||
400 | vbp->vaddr = vp; | ||
401 | vbp->baddr = daddr; | ||
402 | vbp->next = mp->vtob[hc]; | ||
403 | mp->vtob[hc] = vbp; | ||
404 | ++mp->nump; | ||
405 | return vp; | ||
406 | } | ||
407 | } | ||
408 | if (vbp) | ||
409 | __m_free(&mp0, vbp, sizeof(*vbp), "VTOB"); | ||
410 | return 0; | ||
411 | } | ||
412 | |||
413 | static void ___dma_freep(m_pool_s *mp, m_addr_t m) | ||
414 | { | ||
415 | m_vtob_s **vbpp, *vbp; | ||
416 | int hc = VTOB_HASH_CODE(m); | ||
417 | |||
418 | vbpp = &mp->vtob[hc]; | ||
419 | while (*vbpp && (*vbpp)->vaddr != m) | ||
420 | vbpp = &(*vbpp)->next; | ||
421 | if (*vbpp) { | ||
422 | vbp = *vbpp; | ||
423 | *vbpp = (*vbpp)->next; | ||
424 | dma_free_coherent(mp->bush, PAGE_SIZE<<MEMO_PAGE_ORDER, | ||
425 | (void *)vbp->vaddr, (dma_addr_t)vbp->baddr); | ||
426 | __m_free(&mp0, vbp, sizeof(*vbp), "VTOB"); | ||
427 | --mp->nump; | ||
428 | } | ||
429 | } | ||
430 | |||
431 | static inline m_pool_s *___get_dma_pool(m_bush_t bush) | ||
432 | { | ||
433 | m_pool_s *mp; | ||
434 | for (mp = mp0.next; mp && mp->bush != bush; mp = mp->next); | ||
435 | return mp; | ||
436 | } | ||
437 | |||
438 | static m_pool_s *___cre_dma_pool(m_bush_t bush) | ||
439 | { | ||
440 | m_pool_s *mp; | ||
441 | mp = __m_calloc(&mp0, sizeof(*mp), "MPOOL"); | ||
442 | if (mp) { | ||
443 | memset(mp, 0, sizeof(*mp)); | ||
444 | mp->bush = bush; | ||
445 | mp->getp = ___dma_getp; | ||
446 | mp->freep = ___dma_freep; | ||
447 | mp->next = mp0.next; | ||
448 | mp0.next = mp; | ||
449 | } | ||
450 | return mp; | ||
451 | } | ||
452 | |||
453 | static void ___del_dma_pool(m_pool_s *p) | ||
454 | { | ||
455 | struct m_pool **pp = &mp0.next; | ||
456 | |||
457 | while (*pp && *pp != p) | ||
458 | pp = &(*pp)->next; | ||
459 | if (*pp) { | ||
460 | *pp = (*pp)->next; | ||
461 | __m_free(&mp0, p, sizeof(*p), "MPOOL"); | ||
462 | } | ||
463 | } | ||
464 | |||
465 | static void *__m_calloc_dma(m_bush_t bush, int size, char *name) | ||
466 | { | ||
467 | u_long flags; | ||
468 | struct m_pool *mp; | ||
469 | void *m = NULL; | ||
470 | |||
471 | spin_lock_irqsave(&ncr53c8xx_lock, flags); | ||
472 | mp = ___get_dma_pool(bush); | ||
473 | if (!mp) | ||
474 | mp = ___cre_dma_pool(bush); | ||
475 | if (mp) | ||
476 | m = __m_calloc(mp, size, name); | ||
477 | if (mp && !mp->nump) | ||
478 | ___del_dma_pool(mp); | ||
479 | spin_unlock_irqrestore(&ncr53c8xx_lock, flags); | ||
480 | |||
481 | return m; | ||
482 | } | ||
483 | |||
484 | static void __m_free_dma(m_bush_t bush, void *m, int size, char *name) | ||
485 | { | ||
486 | u_long flags; | ||
487 | struct m_pool *mp; | ||
488 | |||
489 | spin_lock_irqsave(&ncr53c8xx_lock, flags); | ||
490 | mp = ___get_dma_pool(bush); | ||
491 | if (mp) | ||
492 | __m_free(mp, m, size, name); | ||
493 | if (mp && !mp->nump) | ||
494 | ___del_dma_pool(mp); | ||
495 | spin_unlock_irqrestore(&ncr53c8xx_lock, flags); | ||
496 | } | ||
497 | |||
498 | static m_addr_t __vtobus(m_bush_t bush, void *m) | ||
499 | { | ||
500 | u_long flags; | ||
501 | m_pool_s *mp; | ||
502 | int hc = VTOB_HASH_CODE(m); | ||
503 | m_vtob_s *vp = NULL; | ||
504 | m_addr_t a = ((m_addr_t) m) & ~MEMO_CLUSTER_MASK; | ||
505 | |||
506 | spin_lock_irqsave(&ncr53c8xx_lock, flags); | ||
507 | mp = ___get_dma_pool(bush); | ||
508 | if (mp) { | ||
509 | vp = mp->vtob[hc]; | ||
510 | while (vp && (m_addr_t) vp->vaddr != a) | ||
511 | vp = vp->next; | ||
512 | } | ||
513 | spin_unlock_irqrestore(&ncr53c8xx_lock, flags); | ||
514 | return vp ? vp->baddr + (((m_addr_t) m) - a) : 0; | ||
515 | } | ||
516 | |||
517 | #define _m_calloc_dma(np, s, n) __m_calloc_dma(np->dev, s, n) | ||
518 | #define _m_free_dma(np, p, s, n) __m_free_dma(np->dev, p, s, n) | ||
519 | #define m_calloc_dma(s, n) _m_calloc_dma(np, s, n) | ||
520 | #define m_free_dma(p, s, n) _m_free_dma(np, p, s, n) | ||
521 | #define _vtobus(np, p) __vtobus(np->dev, p) | ||
522 | #define vtobus(p) _vtobus(np, p) | ||
523 | |||
524 | /* | ||
525 | * Deal with DMA mapping/unmapping. | ||
526 | */ | ||
527 | |||
528 | /* To keep track of the dma mapping (sg/single) that has been set */ | ||
529 | #define __data_mapped SCp.phase | ||
530 | #define __data_mapping SCp.have_data_in | ||
531 | |||
532 | static void __unmap_scsi_data(struct device *dev, struct scsi_cmnd *cmd) | ||
533 | { | ||
534 | switch(cmd->__data_mapped) { | ||
535 | case 2: | ||
536 | dma_unmap_sg(dev, cmd->buffer, cmd->use_sg, | ||
537 | cmd->sc_data_direction); | ||
538 | break; | ||
539 | case 1: | ||
540 | dma_unmap_single(dev, cmd->__data_mapping, | ||
541 | cmd->request_bufflen, | ||
542 | cmd->sc_data_direction); | ||
543 | break; | ||
544 | } | ||
545 | cmd->__data_mapped = 0; | ||
546 | } | ||
547 | |||
548 | static u_long __map_scsi_single_data(struct device *dev, struct scsi_cmnd *cmd) | ||
549 | { | ||
550 | dma_addr_t mapping; | ||
551 | |||
552 | if (cmd->request_bufflen == 0) | ||
553 | return 0; | ||
554 | |||
555 | mapping = dma_map_single(dev, cmd->request_buffer, | ||
556 | cmd->request_bufflen, | ||
557 | cmd->sc_data_direction); | ||
558 | cmd->__data_mapped = 1; | ||
559 | cmd->__data_mapping = mapping; | ||
560 | |||
561 | return mapping; | ||
562 | } | ||
563 | |||
564 | static int __map_scsi_sg_data(struct device *dev, struct scsi_cmnd *cmd) | ||
565 | { | ||
566 | int use_sg; | ||
567 | |||
568 | if (cmd->use_sg == 0) | ||
569 | return 0; | ||
570 | |||
571 | use_sg = dma_map_sg(dev, cmd->buffer, cmd->use_sg, | ||
572 | cmd->sc_data_direction); | ||
573 | cmd->__data_mapped = 2; | ||
574 | cmd->__data_mapping = use_sg; | ||
575 | |||
576 | return use_sg; | ||
577 | } | ||
578 | |||
579 | #define unmap_scsi_data(np, cmd) __unmap_scsi_data(np->dev, cmd) | ||
580 | #define map_scsi_single_data(np, cmd) __map_scsi_single_data(np->dev, cmd) | ||
581 | #define map_scsi_sg_data(np, cmd) __map_scsi_sg_data(np->dev, cmd) | ||
582 | |||
583 | /*========================================================== | ||
584 | ** | ||
585 | ** Driver setup. | ||
586 | ** | ||
587 | ** This structure is initialized from linux config | ||
588 | ** options. It can be overridden at boot-up by the boot | ||
589 | ** command line. | ||
590 | ** | ||
591 | **========================================================== | ||
592 | */ | ||
593 | static struct ncr_driver_setup | ||
594 | driver_setup = SCSI_NCR_DRIVER_SETUP; | ||
595 | |||
596 | #ifdef SCSI_NCR_BOOT_COMMAND_LINE_SUPPORT | ||
597 | static struct ncr_driver_setup | ||
598 | driver_safe_setup __initdata = SCSI_NCR_DRIVER_SAFE_SETUP; | ||
599 | #endif | ||
600 | |||
601 | #define initverbose (driver_setup.verbose) | ||
602 | #define bootverbose (np->verbose) | ||
603 | |||
604 | |||
605 | /*=================================================================== | ||
606 | ** | ||
607 | ** Driver setup from the boot command line | ||
608 | ** | ||
609 | **=================================================================== | ||
610 | */ | ||
611 | |||
612 | #ifdef MODULE | ||
613 | #define ARG_SEP ' ' | ||
614 | #else | ||
615 | #define ARG_SEP ',' | ||
616 | #endif | ||
617 | |||
618 | #define OPT_TAGS 1 | ||
619 | #define OPT_MASTER_PARITY 2 | ||
620 | #define OPT_SCSI_PARITY 3 | ||
621 | #define OPT_DISCONNECTION 4 | ||
622 | #define OPT_SPECIAL_FEATURES 5 | ||
623 | #define OPT_UNUSED_1 6 | ||
624 | #define OPT_FORCE_SYNC_NEGO 7 | ||
625 | #define OPT_REVERSE_PROBE 8 | ||
626 | #define OPT_DEFAULT_SYNC 9 | ||
627 | #define OPT_VERBOSE 10 | ||
628 | #define OPT_DEBUG 11 | ||
629 | #define OPT_BURST_MAX 12 | ||
630 | #define OPT_LED_PIN 13 | ||
631 | #define OPT_MAX_WIDE 14 | ||
632 | #define OPT_SETTLE_DELAY 15 | ||
633 | #define OPT_DIFF_SUPPORT 16 | ||
634 | #define OPT_IRQM 17 | ||
635 | #define OPT_PCI_FIX_UP 18 | ||
636 | #define OPT_BUS_CHECK 19 | ||
637 | #define OPT_OPTIMIZE 20 | ||
638 | #define OPT_RECOVERY 21 | ||
639 | #define OPT_SAFE_SETUP 22 | ||
640 | #define OPT_USE_NVRAM 23 | ||
641 | #define OPT_EXCLUDE 24 | ||
642 | #define OPT_HOST_ID 25 | ||
643 | |||
644 | #ifdef SCSI_NCR_IARB_SUPPORT | ||
645 | #define OPT_IARB 26 | ||
646 | #endif | ||
647 | |||
648 | static char setup_token[] __initdata = | ||
649 | "tags:" "mpar:" | ||
650 | "spar:" "disc:" | ||
651 | "specf:" "ultra:" | ||
652 | "fsn:" "revprob:" | ||
653 | "sync:" "verb:" | ||
654 | "debug:" "burst:" | ||
655 | "led:" "wide:" | ||
656 | "settle:" "diff:" | ||
657 | "irqm:" "pcifix:" | ||
658 | "buschk:" "optim:" | ||
659 | "recovery:" | ||
660 | "safe:" "nvram:" | ||
661 | "excl:" "hostid:" | ||
662 | #ifdef SCSI_NCR_IARB_SUPPORT | ||
663 | "iarb:" | ||
664 | #endif | ||
665 | ; /* DONNOT REMOVE THIS ';' */ | ||
666 | |||
667 | #ifdef MODULE | ||
668 | #define ARG_SEP ' ' | ||
669 | #else | ||
670 | #define ARG_SEP ',' | ||
671 | #endif | ||
672 | |||
673 | static int __init get_setup_token(char *p) | ||
674 | { | ||
675 | char *cur = setup_token; | ||
676 | char *pc; | ||
677 | int i = 0; | ||
678 | |||
679 | while (cur != NULL && (pc = strchr(cur, ':')) != NULL) { | ||
680 | ++pc; | ||
681 | ++i; | ||
682 | if (!strncmp(p, cur, pc - cur)) | ||
683 | return i; | ||
684 | cur = pc; | ||
685 | } | ||
686 | return 0; | ||
687 | } | ||
688 | |||
689 | |||
690 | static int __init sym53c8xx__setup(char *str) | ||
691 | { | ||
692 | #ifdef SCSI_NCR_BOOT_COMMAND_LINE_SUPPORT | ||
693 | char *cur = str; | ||
694 | char *pc, *pv; | ||
695 | int i, val, c; | ||
696 | int xi = 0; | ||
697 | |||
698 | while (cur != NULL && (pc = strchr(cur, ':')) != NULL) { | ||
699 | char *pe; | ||
700 | |||
701 | val = 0; | ||
702 | pv = pc; | ||
703 | c = *++pv; | ||
704 | |||
705 | if (c == 'n') | ||
706 | val = 0; | ||
707 | else if (c == 'y') | ||
708 | val = 1; | ||
709 | else | ||
710 | val = (int) simple_strtoul(pv, &pe, 0); | ||
711 | |||
712 | switch (get_setup_token(cur)) { | ||
713 | case OPT_TAGS: | ||
714 | driver_setup.default_tags = val; | ||
715 | if (pe && *pe == '/') { | ||
716 | i = 0; | ||
717 | while (*pe && *pe != ARG_SEP && | ||
718 | i < sizeof(driver_setup.tag_ctrl)-1) { | ||
719 | driver_setup.tag_ctrl[i++] = *pe++; | ||
720 | } | ||
721 | driver_setup.tag_ctrl[i] = '\0'; | ||
722 | } | ||
723 | break; | ||
724 | case OPT_MASTER_PARITY: | ||
725 | driver_setup.master_parity = val; | ||
726 | break; | ||
727 | case OPT_SCSI_PARITY: | ||
728 | driver_setup.scsi_parity = val; | ||
729 | break; | ||
730 | case OPT_DISCONNECTION: | ||
731 | driver_setup.disconnection = val; | ||
732 | break; | ||
733 | case OPT_SPECIAL_FEATURES: | ||
734 | driver_setup.special_features = val; | ||
735 | break; | ||
736 | case OPT_FORCE_SYNC_NEGO: | ||
737 | driver_setup.force_sync_nego = val; | ||
738 | break; | ||
739 | case OPT_REVERSE_PROBE: | ||
740 | driver_setup.reverse_probe = val; | ||
741 | break; | ||
742 | case OPT_DEFAULT_SYNC: | ||
743 | driver_setup.default_sync = val; | ||
744 | break; | ||
745 | case OPT_VERBOSE: | ||
746 | driver_setup.verbose = val; | ||
747 | break; | ||
748 | case OPT_DEBUG: | ||
749 | driver_setup.debug = val; | ||
750 | break; | ||
751 | case OPT_BURST_MAX: | ||
752 | driver_setup.burst_max = val; | ||
753 | break; | ||
754 | case OPT_LED_PIN: | ||
755 | driver_setup.led_pin = val; | ||
756 | break; | ||
757 | case OPT_MAX_WIDE: | ||
758 | driver_setup.max_wide = val? 1:0; | ||
759 | break; | ||
760 | case OPT_SETTLE_DELAY: | ||
761 | driver_setup.settle_delay = val; | ||
762 | break; | ||
763 | case OPT_DIFF_SUPPORT: | ||
764 | driver_setup.diff_support = val; | ||
765 | break; | ||
766 | case OPT_IRQM: | ||
767 | driver_setup.irqm = val; | ||
768 | break; | ||
769 | case OPT_PCI_FIX_UP: | ||
770 | driver_setup.pci_fix_up = val; | ||
771 | break; | ||
772 | case OPT_BUS_CHECK: | ||
773 | driver_setup.bus_check = val; | ||
774 | break; | ||
775 | case OPT_OPTIMIZE: | ||
776 | driver_setup.optimize = val; | ||
777 | break; | ||
778 | case OPT_RECOVERY: | ||
779 | driver_setup.recovery = val; | ||
780 | break; | ||
781 | case OPT_USE_NVRAM: | ||
782 | driver_setup.use_nvram = val; | ||
783 | break; | ||
784 | case OPT_SAFE_SETUP: | ||
785 | memcpy(&driver_setup, &driver_safe_setup, | ||
786 | sizeof(driver_setup)); | ||
787 | break; | ||
788 | case OPT_EXCLUDE: | ||
789 | if (xi < SCSI_NCR_MAX_EXCLUDES) | ||
790 | driver_setup.excludes[xi++] = val; | ||
791 | break; | ||
792 | case OPT_HOST_ID: | ||
793 | driver_setup.host_id = val; | ||
794 | break; | ||
795 | #ifdef SCSI_NCR_IARB_SUPPORT | ||
796 | case OPT_IARB: | ||
797 | driver_setup.iarb = val; | ||
798 | break; | ||
799 | #endif | ||
800 | default: | ||
801 | printk("sym53c8xx_setup: unexpected boot option '%.*s' ignored\n", (int)(pc-cur+1), cur); | ||
802 | break; | ||
803 | } | ||
804 | |||
805 | if ((cur = strchr(cur, ARG_SEP)) != NULL) | ||
806 | ++cur; | ||
807 | } | ||
808 | #endif /* SCSI_NCR_BOOT_COMMAND_LINE_SUPPORT */ | ||
809 | return 1; | ||
810 | } | ||
811 | |||
812 | /*=================================================================== | ||
813 | ** | ||
814 | ** Get device queue depth from boot command line. | ||
815 | ** | ||
816 | **=================================================================== | ||
817 | */ | ||
818 | #define DEF_DEPTH (driver_setup.default_tags) | ||
819 | #define ALL_TARGETS -2 | ||
820 | #define NO_TARGET -1 | ||
821 | #define ALL_LUNS -2 | ||
822 | #define NO_LUN -1 | ||
823 | |||
824 | static int device_queue_depth(int unit, int target, int lun) | ||
825 | { | ||
826 | int c, h, t, u, v; | ||
827 | char *p = driver_setup.tag_ctrl; | ||
828 | char *ep; | ||
829 | |||
830 | h = -1; | ||
831 | t = NO_TARGET; | ||
832 | u = NO_LUN; | ||
833 | while ((c = *p++) != 0) { | ||
834 | v = simple_strtoul(p, &ep, 0); | ||
835 | switch(c) { | ||
836 | case '/': | ||
837 | ++h; | ||
838 | t = ALL_TARGETS; | ||
839 | u = ALL_LUNS; | ||
840 | break; | ||
841 | case 't': | ||
842 | if (t != target) | ||
843 | t = (target == v) ? v : NO_TARGET; | ||
844 | u = ALL_LUNS; | ||
845 | break; | ||
846 | case 'u': | ||
847 | if (u != lun) | ||
848 | u = (lun == v) ? v : NO_LUN; | ||
849 | break; | ||
850 | case 'q': | ||
851 | if (h == unit && | ||
852 | (t == ALL_TARGETS || t == target) && | ||
853 | (u == ALL_LUNS || u == lun)) | ||
854 | return v; | ||
855 | break; | ||
856 | case '-': | ||
857 | t = ALL_TARGETS; | ||
858 | u = ALL_LUNS; | ||
859 | break; | ||
860 | default: | ||
861 | break; | ||
862 | } | ||
863 | p = ep; | ||
864 | } | ||
865 | return DEF_DEPTH; | ||
866 | } | ||
135 | 867 | ||
136 | 868 | ||
137 | /*========================================================== | 869 | /*========================================================== |
@@ -2971,21 +3703,10 @@ struct host_data { | |||
2971 | 3703 | ||
2972 | static void ncr_print_msg(struct ccb *cp, char *label, u_char *msg) | 3704 | static void ncr_print_msg(struct ccb *cp, char *label, u_char *msg) |
2973 | { | 3705 | { |
2974 | int i; | ||
2975 | PRINT_ADDR(cp->cmd, "%s: ", label); | 3706 | PRINT_ADDR(cp->cmd, "%s: ", label); |
2976 | 3707 | ||
2977 | printk ("%x",*msg); | 3708 | spi_print_msg(msg); |
2978 | if (*msg == M_EXTENDED) { | 3709 | printk("\n"); |
2979 | for (i = 1; i < 8; i++) { | ||
2980 | if (i - 1 > msg[1]) | ||
2981 | break; | ||
2982 | printk ("-%x",msg[i]); | ||
2983 | } | ||
2984 | } else if ((*msg & 0xf0) == 0x20) { | ||
2985 | printk ("-%x",msg[1]); | ||
2986 | } | ||
2987 | |||
2988 | printk(".\n"); | ||
2989 | } | 3710 | } |
2990 | 3711 | ||
2991 | /*========================================================== | 3712 | /*========================================================== |
diff --git a/drivers/scsi/ncr53c8xx.h b/drivers/scsi/ncr53c8xx.h index 05c7b83cef09..6a7bef2e6118 100644 --- a/drivers/scsi/ncr53c8xx.h +++ b/drivers/scsi/ncr53c8xx.h | |||
@@ -2,6 +2,7 @@ | |||
2 | ** Device driver for the PCI-SCSI NCR538XX controller family. | 2 | ** Device driver for the PCI-SCSI NCR538XX controller family. |
3 | ** | 3 | ** |
4 | ** Copyright (C) 1994 Wolfgang Stanglmeier | 4 | ** Copyright (C) 1994 Wolfgang Stanglmeier |
5 | ** Copyright (C) 1998-2001 Gerard Roudier <groudier@free.fr> | ||
5 | ** | 6 | ** |
6 | ** This program is free software; you can redistribute it and/or modify | 7 | ** This program is free software; you can redistribute it and/or modify |
7 | ** it under the terms of the GNU General Public License as published by | 8 | ** it under the terms of the GNU General Public License as published by |
@@ -36,15 +37,1275 @@ | |||
36 | ** And has been ported to NetBSD by | 37 | ** And has been ported to NetBSD by |
37 | ** Charles M. Hannum <mycroft@gnu.ai.mit.edu> | 38 | ** Charles M. Hannum <mycroft@gnu.ai.mit.edu> |
38 | ** | 39 | ** |
40 | ** NVRAM detection and reading. | ||
41 | ** Copyright (C) 1997 Richard Waltham <dormouse@farsrobt.demon.co.uk> | ||
42 | ** | ||
43 | ** Added support for MIPS big endian systems. | ||
44 | ** Carsten Langgaard, carstenl@mips.com | ||
45 | ** Copyright (C) 2000 MIPS Technologies, Inc. All rights reserved. | ||
46 | ** | ||
47 | ** Added support for HP PARISC big endian systems. | ||
48 | ** Copyright (C) 2000 MIPS Technologies, Inc. All rights reserved. | ||
49 | ** | ||
39 | ******************************************************************************* | 50 | ******************************************************************************* |
40 | */ | 51 | */ |
41 | 52 | ||
42 | #ifndef NCR53C8XX_H | 53 | #ifndef NCR53C8XX_H |
43 | #define NCR53C8XX_H | 54 | #define NCR53C8XX_H |
44 | 55 | ||
56 | #include <linux/config.h> | ||
45 | #include <scsi/scsi_host.h> | 57 | #include <scsi/scsi_host.h> |
46 | 58 | ||
47 | #include "sym53c8xx_defs.h" | 59 | /* |
60 | ** If you want a driver as small as possible, do not define the | ||
61 | ** following options. | ||
62 | */ | ||
63 | #define SCSI_NCR_BOOT_COMMAND_LINE_SUPPORT | ||
64 | #define SCSI_NCR_DEBUG_INFO_SUPPORT | ||
65 | |||
66 | /* | ||
67 | ** To disable integrity checking, do not define the | ||
68 | ** following option. | ||
69 | */ | ||
70 | #ifdef CONFIG_SCSI_NCR53C8XX_INTEGRITY_CHECK | ||
71 | # define SCSI_NCR_ENABLE_INTEGRITY_CHECK | ||
72 | #endif | ||
73 | |||
74 | /* --------------------------------------------------------------------- | ||
75 | ** Take into account kernel configured parameters. | ||
76 | ** Most of these options can be overridden at startup by a command line. | ||
77 | ** --------------------------------------------------------------------- | ||
78 | */ | ||
79 | |||
80 | /* | ||
81 | * For Ultra2 and Ultra3 SCSI support option, use special features. | ||
82 | * | ||
83 | * Value (default) means: | ||
84 | * bit 0 : all features enabled, except: | ||
85 | * bit 1 : PCI Write And Invalidate. | ||
86 | * bit 2 : Data Phase Mismatch handling from SCRIPTS. | ||
87 | * | ||
88 | * Use boot options ncr53c8xx=specf:1 if you want all chip features to be | ||
89 | * enabled by the driver. | ||
90 | */ | ||
91 | #define SCSI_NCR_SETUP_SPECIAL_FEATURES (3) | ||
92 | |||
93 | #define SCSI_NCR_MAX_SYNC (80) | ||
94 | |||
95 | /* | ||
96 | * Allow tags from 2 to 256, default 8 | ||
97 | */ | ||
98 | #ifdef CONFIG_SCSI_NCR53C8XX_MAX_TAGS | ||
99 | #if CONFIG_SCSI_NCR53C8XX_MAX_TAGS < 2 | ||
100 | #define SCSI_NCR_MAX_TAGS (2) | ||
101 | #elif CONFIG_SCSI_NCR53C8XX_MAX_TAGS > 256 | ||
102 | #define SCSI_NCR_MAX_TAGS (256) | ||
103 | #else | ||
104 | #define SCSI_NCR_MAX_TAGS CONFIG_SCSI_NCR53C8XX_MAX_TAGS | ||
105 | #endif | ||
106 | #else | ||
107 | #define SCSI_NCR_MAX_TAGS (8) | ||
108 | #endif | ||
109 | |||
110 | /* | ||
111 | * Allow tagged command queuing support if configured with default number | ||
112 | * of tags set to max (see above). | ||
113 | */ | ||
114 | #ifdef CONFIG_SCSI_NCR53C8XX_DEFAULT_TAGS | ||
115 | #define SCSI_NCR_SETUP_DEFAULT_TAGS CONFIG_SCSI_NCR53C8XX_DEFAULT_TAGS | ||
116 | #elif defined CONFIG_SCSI_NCR53C8XX_TAGGED_QUEUE | ||
117 | #define SCSI_NCR_SETUP_DEFAULT_TAGS SCSI_NCR_MAX_TAGS | ||
118 | #else | ||
119 | #define SCSI_NCR_SETUP_DEFAULT_TAGS (0) | ||
120 | #endif | ||
121 | |||
122 | /* | ||
123 | * Immediate arbitration | ||
124 | */ | ||
125 | #if defined(CONFIG_SCSI_NCR53C8XX_IARB) | ||
126 | #define SCSI_NCR_IARB_SUPPORT | ||
127 | #endif | ||
128 | |||
129 | /* | ||
130 | * Sync transfer frequency at startup. | ||
131 | * Allow from 5Mhz to 80Mhz default 20 Mhz. | ||
132 | */ | ||
133 | #ifndef CONFIG_SCSI_NCR53C8XX_SYNC | ||
134 | #define CONFIG_SCSI_NCR53C8XX_SYNC (20) | ||
135 | #elif CONFIG_SCSI_NCR53C8XX_SYNC > SCSI_NCR_MAX_SYNC | ||
136 | #undef CONFIG_SCSI_NCR53C8XX_SYNC | ||
137 | #define CONFIG_SCSI_NCR53C8XX_SYNC SCSI_NCR_MAX_SYNC | ||
138 | #endif | ||
139 | |||
140 | #if CONFIG_SCSI_NCR53C8XX_SYNC == 0 | ||
141 | #define SCSI_NCR_SETUP_DEFAULT_SYNC (255) | ||
142 | #elif CONFIG_SCSI_NCR53C8XX_SYNC <= 5 | ||
143 | #define SCSI_NCR_SETUP_DEFAULT_SYNC (50) | ||
144 | #elif CONFIG_SCSI_NCR53C8XX_SYNC <= 20 | ||
145 | #define SCSI_NCR_SETUP_DEFAULT_SYNC (250/(CONFIG_SCSI_NCR53C8XX_SYNC)) | ||
146 | #elif CONFIG_SCSI_NCR53C8XX_SYNC <= 33 | ||
147 | #define SCSI_NCR_SETUP_DEFAULT_SYNC (11) | ||
148 | #elif CONFIG_SCSI_NCR53C8XX_SYNC <= 40 | ||
149 | #define SCSI_NCR_SETUP_DEFAULT_SYNC (10) | ||
150 | #else | ||
151 | #define SCSI_NCR_SETUP_DEFAULT_SYNC (9) | ||
152 | #endif | ||
153 | |||
154 | /* | ||
155 | * Disallow disconnections at boot-up | ||
156 | */ | ||
157 | #ifdef CONFIG_SCSI_NCR53C8XX_NO_DISCONNECT | ||
158 | #define SCSI_NCR_SETUP_DISCONNECTION (0) | ||
159 | #else | ||
160 | #define SCSI_NCR_SETUP_DISCONNECTION (1) | ||
161 | #endif | ||
162 | |||
163 | /* | ||
164 | * Force synchronous negotiation for all targets | ||
165 | */ | ||
166 | #ifdef CONFIG_SCSI_NCR53C8XX_FORCE_SYNC_NEGO | ||
167 | #define SCSI_NCR_SETUP_FORCE_SYNC_NEGO (1) | ||
168 | #else | ||
169 | #define SCSI_NCR_SETUP_FORCE_SYNC_NEGO (0) | ||
170 | #endif | ||
171 | |||
172 | /* | ||
173 | * Disable master parity checking (flawed hardwares need that) | ||
174 | */ | ||
175 | #ifdef CONFIG_SCSI_NCR53C8XX_DISABLE_MPARITY_CHECK | ||
176 | #define SCSI_NCR_SETUP_MASTER_PARITY (0) | ||
177 | #else | ||
178 | #define SCSI_NCR_SETUP_MASTER_PARITY (1) | ||
179 | #endif | ||
180 | |||
181 | /* | ||
182 | * Disable scsi parity checking (flawed devices may need that) | ||
183 | */ | ||
184 | #ifdef CONFIG_SCSI_NCR53C8XX_DISABLE_PARITY_CHECK | ||
185 | #define SCSI_NCR_SETUP_SCSI_PARITY (0) | ||
186 | #else | ||
187 | #define SCSI_NCR_SETUP_SCSI_PARITY (1) | ||
188 | #endif | ||
189 | |||
190 | /* | ||
191 | * Settle time after reset at boot-up | ||
192 | */ | ||
193 | #define SCSI_NCR_SETUP_SETTLE_TIME (2) | ||
194 | |||
195 | /* | ||
196 | ** Bridge quirks work-around option defaulted to 1. | ||
197 | */ | ||
198 | #ifndef SCSI_NCR_PCIQ_WORK_AROUND_OPT | ||
199 | #define SCSI_NCR_PCIQ_WORK_AROUND_OPT 1 | ||
200 | #endif | ||
201 | |||
202 | /* | ||
203 | ** Work-around common bridge misbehaviour. | ||
204 | ** | ||
205 | ** - Do not flush posted writes in the opposite | ||
206 | ** direction on read. | ||
207 | ** - May reorder DMA writes to memory. | ||
208 | ** | ||
209 | ** This option should not affect performances | ||
210 | ** significantly, so it is the default. | ||
211 | */ | ||
212 | #if SCSI_NCR_PCIQ_WORK_AROUND_OPT == 1 | ||
213 | #define SCSI_NCR_PCIQ_MAY_NOT_FLUSH_PW_UPSTREAM | ||
214 | #define SCSI_NCR_PCIQ_MAY_REORDER_WRITES | ||
215 | #define SCSI_NCR_PCIQ_MAY_MISS_COMPLETIONS | ||
216 | |||
217 | /* | ||
218 | ** Same as option 1, but also deal with | ||
219 | ** misconfigured interrupts. | ||
220 | ** | ||
221 | ** - Edge triggerred instead of level sensitive. | ||
222 | ** - No interrupt line connected. | ||
223 | ** - IRQ number misconfigured. | ||
224 | ** | ||
225 | ** If no interrupt is delivered, the driver will | ||
226 | ** catch the interrupt conditions 10 times per | ||
227 | ** second. No need to say that this option is | ||
228 | ** not recommended. | ||
229 | */ | ||
230 | #elif SCSI_NCR_PCIQ_WORK_AROUND_OPT == 2 | ||
231 | #define SCSI_NCR_PCIQ_MAY_NOT_FLUSH_PW_UPSTREAM | ||
232 | #define SCSI_NCR_PCIQ_MAY_REORDER_WRITES | ||
233 | #define SCSI_NCR_PCIQ_MAY_MISS_COMPLETIONS | ||
234 | #define SCSI_NCR_PCIQ_BROKEN_INTR | ||
235 | |||
236 | /* | ||
237 | ** Some bridge designers decided to flush | ||
238 | ** everything prior to deliver the interrupt. | ||
239 | ** This option tries to deal with such a | ||
240 | ** behaviour. | ||
241 | */ | ||
242 | #elif SCSI_NCR_PCIQ_WORK_AROUND_OPT == 3 | ||
243 | #define SCSI_NCR_PCIQ_SYNC_ON_INTR | ||
244 | #endif | ||
245 | |||
246 | /* | ||
247 | ** Other parameters not configurable with "make config" | ||
248 | ** Avoid to change these constants, unless you know what you are doing. | ||
249 | */ | ||
250 | |||
251 | #define SCSI_NCR_ALWAYS_SIMPLE_TAG | ||
252 | #define SCSI_NCR_MAX_SCATTER (127) | ||
253 | #define SCSI_NCR_MAX_TARGET (16) | ||
254 | |||
255 | /* | ||
256 | ** Compute some desirable value for CAN_QUEUE | ||
257 | ** and CMD_PER_LUN. | ||
258 | ** The driver will use lower values if these | ||
259 | ** ones appear to be too large. | ||
260 | */ | ||
261 | #define SCSI_NCR_CAN_QUEUE (8*SCSI_NCR_MAX_TAGS + 2*SCSI_NCR_MAX_TARGET) | ||
262 | #define SCSI_NCR_CMD_PER_LUN (SCSI_NCR_MAX_TAGS) | ||
263 | |||
264 | #define SCSI_NCR_SG_TABLESIZE (SCSI_NCR_MAX_SCATTER) | ||
265 | #define SCSI_NCR_TIMER_INTERVAL (HZ) | ||
266 | |||
267 | #if 1 /* defined CONFIG_SCSI_MULTI_LUN */ | ||
268 | #define SCSI_NCR_MAX_LUN (16) | ||
269 | #else | ||
270 | #define SCSI_NCR_MAX_LUN (1) | ||
271 | #endif | ||
272 | |||
273 | /* | ||
274 | * IO functions definition for big/little endian CPU support. | ||
275 | * For now, the NCR is only supported in little endian addressing mode, | ||
276 | */ | ||
277 | |||
278 | #ifdef __BIG_ENDIAN | ||
279 | |||
280 | #define inw_l2b inw | ||
281 | #define inl_l2b inl | ||
282 | #define outw_b2l outw | ||
283 | #define outl_b2l outl | ||
284 | |||
285 | #define readb_raw readb | ||
286 | #define writeb_raw writeb | ||
287 | |||
288 | #if defined(SCSI_NCR_BIG_ENDIAN) | ||
289 | #define readw_l2b __raw_readw | ||
290 | #define readl_l2b __raw_readl | ||
291 | #define writew_b2l __raw_writew | ||
292 | #define writel_b2l __raw_writel | ||
293 | #define readw_raw __raw_readw | ||
294 | #define readl_raw __raw_readl | ||
295 | #define writew_raw __raw_writew | ||
296 | #define writel_raw __raw_writel | ||
297 | #else /* Other big-endian */ | ||
298 | #define readw_l2b readw | ||
299 | #define readl_l2b readl | ||
300 | #define writew_b2l writew | ||
301 | #define writel_b2l writel | ||
302 | #define readw_raw readw | ||
303 | #define readl_raw readl | ||
304 | #define writew_raw writew | ||
305 | #define writel_raw writel | ||
306 | #endif | ||
307 | |||
308 | #else /* little endian */ | ||
309 | |||
310 | #define inw_raw inw | ||
311 | #define inl_raw inl | ||
312 | #define outw_raw outw | ||
313 | #define outl_raw outl | ||
314 | |||
315 | #define readb_raw readb | ||
316 | #define readw_raw readw | ||
317 | #define readl_raw readl | ||
318 | #define writeb_raw writeb | ||
319 | #define writew_raw writew | ||
320 | #define writel_raw writel | ||
321 | |||
322 | #endif | ||
323 | |||
324 | #if !defined(__hppa__) && !defined(__mips__) | ||
325 | #ifdef SCSI_NCR_BIG_ENDIAN | ||
326 | #error "The NCR in BIG ENDIAN addressing mode is not (yet) supported" | ||
327 | #endif | ||
328 | #endif | ||
329 | |||
330 | #define MEMORY_BARRIER() mb() | ||
331 | |||
332 | |||
333 | /* | ||
334 | * If the NCR uses big endian addressing mode over the | ||
335 | * PCI, actual io register addresses for byte and word | ||
336 | * accesses must be changed according to lane routing. | ||
337 | * Btw, ncr_offb() and ncr_offw() macros only apply to | ||
338 | * constants and so donnot generate bloated code. | ||
339 | */ | ||
340 | |||
341 | #if defined(SCSI_NCR_BIG_ENDIAN) | ||
342 | |||
343 | #define ncr_offb(o) (((o)&~3)+((~((o)&3))&3)) | ||
344 | #define ncr_offw(o) (((o)&~3)+((~((o)&3))&2)) | ||
345 | |||
346 | #else | ||
347 | |||
348 | #define ncr_offb(o) (o) | ||
349 | #define ncr_offw(o) (o) | ||
350 | |||
351 | #endif | ||
352 | |||
353 | /* | ||
354 | * If the CPU and the NCR use same endian-ness addressing, | ||
355 | * no byte reordering is needed for script patching. | ||
356 | * Macro cpu_to_scr() is to be used for script patching. | ||
357 | * Macro scr_to_cpu() is to be used for getting a DWORD | ||
358 | * from the script. | ||
359 | */ | ||
360 | |||
361 | #if defined(__BIG_ENDIAN) && !defined(SCSI_NCR_BIG_ENDIAN) | ||
362 | |||
363 | #define cpu_to_scr(dw) cpu_to_le32(dw) | ||
364 | #define scr_to_cpu(dw) le32_to_cpu(dw) | ||
365 | |||
366 | #elif defined(__LITTLE_ENDIAN) && defined(SCSI_NCR_BIG_ENDIAN) | ||
367 | |||
368 | #define cpu_to_scr(dw) cpu_to_be32(dw) | ||
369 | #define scr_to_cpu(dw) be32_to_cpu(dw) | ||
370 | |||
371 | #else | ||
372 | |||
373 | #define cpu_to_scr(dw) (dw) | ||
374 | #define scr_to_cpu(dw) (dw) | ||
375 | |||
376 | #endif | ||
377 | |||
378 | /* | ||
379 | * Access to the controller chip. | ||
380 | * | ||
381 | * If the CPU and the NCR use same endian-ness addressing, | ||
382 | * no byte reordering is needed for accessing chip io | ||
383 | * registers. Functions suffixed by '_raw' are assumed | ||
384 | * to access the chip over the PCI without doing byte | ||
385 | * reordering. Functions suffixed by '_l2b' are | ||
386 | * assumed to perform little-endian to big-endian byte | ||
387 | * reordering, those suffixed by '_b2l' blah, blah, | ||
388 | * blah, ... | ||
389 | */ | ||
390 | |||
391 | /* | ||
392 | * MEMORY mapped IO input / output | ||
393 | */ | ||
394 | |||
395 | #define INB_OFF(o) readb_raw((char __iomem *)np->reg + ncr_offb(o)) | ||
396 | #define OUTB_OFF(o, val) writeb_raw((val), (char __iomem *)np->reg + ncr_offb(o)) | ||
397 | |||
398 | #if defined(__BIG_ENDIAN) && !defined(SCSI_NCR_BIG_ENDIAN) | ||
399 | |||
400 | #define INW_OFF(o) readw_l2b((char __iomem *)np->reg + ncr_offw(o)) | ||
401 | #define INL_OFF(o) readl_l2b((char __iomem *)np->reg + (o)) | ||
402 | |||
403 | #define OUTW_OFF(o, val) writew_b2l((val), (char __iomem *)np->reg + ncr_offw(o)) | ||
404 | #define OUTL_OFF(o, val) writel_b2l((val), (char __iomem *)np->reg + (o)) | ||
405 | |||
406 | #elif defined(__LITTLE_ENDIAN) && defined(SCSI_NCR_BIG_ENDIAN) | ||
407 | |||
408 | #define INW_OFF(o) readw_b2l((char __iomem *)np->reg + ncr_offw(o)) | ||
409 | #define INL_OFF(o) readl_b2l((char __iomem *)np->reg + (o)) | ||
410 | |||
411 | #define OUTW_OFF(o, val) writew_l2b((val), (char __iomem *)np->reg + ncr_offw(o)) | ||
412 | #define OUTL_OFF(o, val) writel_l2b((val), (char __iomem *)np->reg + (o)) | ||
413 | |||
414 | #else | ||
415 | |||
416 | #ifdef CONFIG_SCSI_NCR53C8XX_NO_WORD_TRANSFERS | ||
417 | /* Only 8 or 32 bit transfers allowed */ | ||
418 | #define INW_OFF(o) (readb((char __iomem *)np->reg + ncr_offw(o)) << 8 | readb((char __iomem *)np->reg + ncr_offw(o) + 1)) | ||
419 | #else | ||
420 | #define INW_OFF(o) readw_raw((char __iomem *)np->reg + ncr_offw(o)) | ||
421 | #endif | ||
422 | #define INL_OFF(o) readl_raw((char __iomem *)np->reg + (o)) | ||
423 | |||
424 | #ifdef CONFIG_SCSI_NCR53C8XX_NO_WORD_TRANSFERS | ||
425 | /* Only 8 or 32 bit transfers allowed */ | ||
426 | #define OUTW_OFF(o, val) do { writeb((char)((val) >> 8), (char __iomem *)np->reg + ncr_offw(o)); writeb((char)(val), (char __iomem *)np->reg + ncr_offw(o) + 1); } while (0) | ||
427 | #else | ||
428 | #define OUTW_OFF(o, val) writew_raw((val), (char __iomem *)np->reg + ncr_offw(o)) | ||
429 | #endif | ||
430 | #define OUTL_OFF(o, val) writel_raw((val), (char __iomem *)np->reg + (o)) | ||
431 | |||
432 | #endif | ||
433 | |||
434 | #define INB(r) INB_OFF (offsetof(struct ncr_reg,r)) | ||
435 | #define INW(r) INW_OFF (offsetof(struct ncr_reg,r)) | ||
436 | #define INL(r) INL_OFF (offsetof(struct ncr_reg,r)) | ||
437 | |||
438 | #define OUTB(r, val) OUTB_OFF (offsetof(struct ncr_reg,r), (val)) | ||
439 | #define OUTW(r, val) OUTW_OFF (offsetof(struct ncr_reg,r), (val)) | ||
440 | #define OUTL(r, val) OUTL_OFF (offsetof(struct ncr_reg,r), (val)) | ||
441 | |||
442 | /* | ||
443 | * Set bit field ON, OFF | ||
444 | */ | ||
445 | |||
446 | #define OUTONB(r, m) OUTB(r, INB(r) | (m)) | ||
447 | #define OUTOFFB(r, m) OUTB(r, INB(r) & ~(m)) | ||
448 | #define OUTONW(r, m) OUTW(r, INW(r) | (m)) | ||
449 | #define OUTOFFW(r, m) OUTW(r, INW(r) & ~(m)) | ||
450 | #define OUTONL(r, m) OUTL(r, INL(r) | (m)) | ||
451 | #define OUTOFFL(r, m) OUTL(r, INL(r) & ~(m)) | ||
452 | |||
453 | /* | ||
454 | * We normally want the chip to have a consistent view | ||
455 | * of driver internal data structures when we restart it. | ||
456 | * Thus these macros. | ||
457 | */ | ||
458 | #define OUTL_DSP(v) \ | ||
459 | do { \ | ||
460 | MEMORY_BARRIER(); \ | ||
461 | OUTL (nc_dsp, (v)); \ | ||
462 | } while (0) | ||
463 | |||
464 | #define OUTONB_STD() \ | ||
465 | do { \ | ||
466 | MEMORY_BARRIER(); \ | ||
467 | OUTONB (nc_dcntl, (STD|NOCOM)); \ | ||
468 | } while (0) | ||
469 | |||
470 | |||
471 | /* | ||
472 | ** NCR53C8XX devices features table. | ||
473 | */ | ||
474 | struct ncr_chip { | ||
475 | unsigned short revision_id; | ||
476 | unsigned char burst_max; /* log-base-2 of max burst */ | ||
477 | unsigned char offset_max; | ||
478 | unsigned char nr_divisor; | ||
479 | unsigned int features; | ||
480 | #define FE_LED0 (1<<0) | ||
481 | #define FE_WIDE (1<<1) /* Wide data transfers */ | ||
482 | #define FE_ULTRA (1<<2) /* Ultra speed 20Mtrans/sec */ | ||
483 | #define FE_DBLR (1<<4) /* Clock doubler present */ | ||
484 | #define FE_QUAD (1<<5) /* Clock quadrupler present */ | ||
485 | #define FE_ERL (1<<6) /* Enable read line */ | ||
486 | #define FE_CLSE (1<<7) /* Cache line size enable */ | ||
487 | #define FE_WRIE (1<<8) /* Write & Invalidate enable */ | ||
488 | #define FE_ERMP (1<<9) /* Enable read multiple */ | ||
489 | #define FE_BOF (1<<10) /* Burst opcode fetch */ | ||
490 | #define FE_DFS (1<<11) /* DMA fifo size */ | ||
491 | #define FE_PFEN (1<<12) /* Prefetch enable */ | ||
492 | #define FE_LDSTR (1<<13) /* Load/Store supported */ | ||
493 | #define FE_RAM (1<<14) /* On chip RAM present */ | ||
494 | #define FE_VARCLK (1<<15) /* SCSI clock may vary */ | ||
495 | #define FE_RAM8K (1<<16) /* On chip RAM sized 8Kb */ | ||
496 | #define FE_64BIT (1<<17) /* Have a 64-bit PCI interface */ | ||
497 | #define FE_IO256 (1<<18) /* Requires full 256 bytes in PCI space */ | ||
498 | #define FE_NOPM (1<<19) /* Scripts handles phase mismatch */ | ||
499 | #define FE_LEDC (1<<20) /* Hardware control of LED */ | ||
500 | #define FE_DIFF (1<<21) /* Support Differential SCSI */ | ||
501 | #define FE_66MHZ (1<<23) /* 66MHz PCI Support */ | ||
502 | #define FE_DAC (1<<24) /* Support DAC cycles (64 bit addressing) */ | ||
503 | #define FE_ISTAT1 (1<<25) /* Have ISTAT1, MBOX0, MBOX1 registers */ | ||
504 | #define FE_DAC_IN_USE (1<<26) /* Platform does DAC cycles */ | ||
505 | #define FE_EHP (1<<27) /* 720: Even host parity */ | ||
506 | #define FE_MUX (1<<28) /* 720: Multiplexed bus */ | ||
507 | #define FE_EA (1<<29) /* 720: Enable Ack */ | ||
508 | |||
509 | #define FE_CACHE_SET (FE_ERL|FE_CLSE|FE_WRIE|FE_ERMP) | ||
510 | #define FE_SCSI_SET (FE_WIDE|FE_ULTRA|FE_DBLR|FE_QUAD|F_CLK80) | ||
511 | #define FE_SPECIAL_SET (FE_CACHE_SET|FE_BOF|FE_DFS|FE_LDSTR|FE_PFEN|FE_RAM) | ||
512 | }; | ||
513 | |||
514 | |||
515 | /* | ||
516 | ** Driver setup structure. | ||
517 | ** | ||
518 | ** This structure is initialized from linux config options. | ||
519 | ** It can be overridden at boot-up by the boot command line. | ||
520 | */ | ||
521 | #define SCSI_NCR_MAX_EXCLUDES 8 | ||
522 | struct ncr_driver_setup { | ||
523 | u8 master_parity; | ||
524 | u8 scsi_parity; | ||
525 | u8 disconnection; | ||
526 | u8 special_features; | ||
527 | u8 force_sync_nego; | ||
528 | u8 reverse_probe; | ||
529 | u8 pci_fix_up; | ||
530 | u8 use_nvram; | ||
531 | u8 verbose; | ||
532 | u8 default_tags; | ||
533 | u16 default_sync; | ||
534 | u16 debug; | ||
535 | u8 burst_max; | ||
536 | u8 led_pin; | ||
537 | u8 max_wide; | ||
538 | u8 settle_delay; | ||
539 | u8 diff_support; | ||
540 | u8 irqm; | ||
541 | u8 bus_check; | ||
542 | u8 optimize; | ||
543 | u8 recovery; | ||
544 | u8 host_id; | ||
545 | u16 iarb; | ||
546 | u32 excludes[SCSI_NCR_MAX_EXCLUDES]; | ||
547 | char tag_ctrl[100]; | ||
548 | }; | ||
549 | |||
550 | /* | ||
551 | ** Initial setup. | ||
552 | ** Can be overriden at startup by a command line. | ||
553 | */ | ||
554 | #define SCSI_NCR_DRIVER_SETUP \ | ||
555 | { \ | ||
556 | SCSI_NCR_SETUP_MASTER_PARITY, \ | ||
557 | SCSI_NCR_SETUP_SCSI_PARITY, \ | ||
558 | SCSI_NCR_SETUP_DISCONNECTION, \ | ||
559 | SCSI_NCR_SETUP_SPECIAL_FEATURES, \ | ||
560 | SCSI_NCR_SETUP_FORCE_SYNC_NEGO, \ | ||
561 | 0, \ | ||
562 | 0, \ | ||
563 | 1, \ | ||
564 | 0, \ | ||
565 | SCSI_NCR_SETUP_DEFAULT_TAGS, \ | ||
566 | SCSI_NCR_SETUP_DEFAULT_SYNC, \ | ||
567 | 0x00, \ | ||
568 | 7, \ | ||
569 | 0, \ | ||
570 | 1, \ | ||
571 | SCSI_NCR_SETUP_SETTLE_TIME, \ | ||
572 | 0, \ | ||
573 | 0, \ | ||
574 | 1, \ | ||
575 | 0, \ | ||
576 | 0, \ | ||
577 | 255, \ | ||
578 | 0x00 \ | ||
579 | } | ||
580 | |||
581 | /* | ||
582 | ** Boot fail safe setup. | ||
583 | ** Override initial setup from boot command line: | ||
584 | ** ncr53c8xx=safe:y | ||
585 | */ | ||
586 | #define SCSI_NCR_DRIVER_SAFE_SETUP \ | ||
587 | { \ | ||
588 | 0, \ | ||
589 | 1, \ | ||
590 | 0, \ | ||
591 | 0, \ | ||
592 | 0, \ | ||
593 | 0, \ | ||
594 | 0, \ | ||
595 | 1, \ | ||
596 | 2, \ | ||
597 | 0, \ | ||
598 | 255, \ | ||
599 | 0x00, \ | ||
600 | 255, \ | ||
601 | 0, \ | ||
602 | 0, \ | ||
603 | 10, \ | ||
604 | 1, \ | ||
605 | 1, \ | ||
606 | 1, \ | ||
607 | 0, \ | ||
608 | 0, \ | ||
609 | 255 \ | ||
610 | } | ||
611 | |||
612 | /**************** ORIGINAL CONTENT of ncrreg.h from FreeBSD ******************/ | ||
613 | |||
614 | /*----------------------------------------------------------------- | ||
615 | ** | ||
616 | ** The ncr 53c810 register structure. | ||
617 | ** | ||
618 | **----------------------------------------------------------------- | ||
619 | */ | ||
620 | |||
621 | struct ncr_reg { | ||
622 | /*00*/ u8 nc_scntl0; /* full arb., ena parity, par->ATN */ | ||
623 | |||
624 | /*01*/ u8 nc_scntl1; /* no reset */ | ||
625 | #define ISCON 0x10 /* connected to scsi */ | ||
626 | #define CRST 0x08 /* force reset */ | ||
627 | #define IARB 0x02 /* immediate arbitration */ | ||
628 | |||
629 | /*02*/ u8 nc_scntl2; /* no disconnect expected */ | ||
630 | #define SDU 0x80 /* cmd: disconnect will raise error */ | ||
631 | #define CHM 0x40 /* sta: chained mode */ | ||
632 | #define WSS 0x08 /* sta: wide scsi send [W]*/ | ||
633 | #define WSR 0x01 /* sta: wide scsi received [W]*/ | ||
634 | |||
635 | /*03*/ u8 nc_scntl3; /* cnf system clock dependent */ | ||
636 | #define EWS 0x08 /* cmd: enable wide scsi [W]*/ | ||
637 | #define ULTRA 0x80 /* cmd: ULTRA enable */ | ||
638 | /* bits 0-2, 7 rsvd for C1010 */ | ||
639 | |||
640 | /*04*/ u8 nc_scid; /* cnf host adapter scsi address */ | ||
641 | #define RRE 0x40 /* r/w:e enable response to resel. */ | ||
642 | #define SRE 0x20 /* r/w:e enable response to select */ | ||
643 | |||
644 | /*05*/ u8 nc_sxfer; /* ### Sync speed and count */ | ||
645 | /* bits 6-7 rsvd for C1010 */ | ||
646 | |||
647 | /*06*/ u8 nc_sdid; /* ### Destination-ID */ | ||
648 | |||
649 | /*07*/ u8 nc_gpreg; /* ??? IO-Pins */ | ||
650 | |||
651 | /*08*/ u8 nc_sfbr; /* ### First byte in phase */ | ||
652 | |||
653 | /*09*/ u8 nc_socl; | ||
654 | #define CREQ 0x80 /* r/w: SCSI-REQ */ | ||
655 | #define CACK 0x40 /* r/w: SCSI-ACK */ | ||
656 | #define CBSY 0x20 /* r/w: SCSI-BSY */ | ||
657 | #define CSEL 0x10 /* r/w: SCSI-SEL */ | ||
658 | #define CATN 0x08 /* r/w: SCSI-ATN */ | ||
659 | #define CMSG 0x04 /* r/w: SCSI-MSG */ | ||
660 | #define CC_D 0x02 /* r/w: SCSI-C_D */ | ||
661 | #define CI_O 0x01 /* r/w: SCSI-I_O */ | ||
662 | |||
663 | /*0a*/ u8 nc_ssid; | ||
664 | |||
665 | /*0b*/ u8 nc_sbcl; | ||
666 | |||
667 | /*0c*/ u8 nc_dstat; | ||
668 | #define DFE 0x80 /* sta: dma fifo empty */ | ||
669 | #define MDPE 0x40 /* int: master data parity error */ | ||
670 | #define BF 0x20 /* int: script: bus fault */ | ||
671 | #define ABRT 0x10 /* int: script: command aborted */ | ||
672 | #define SSI 0x08 /* int: script: single step */ | ||
673 | #define SIR 0x04 /* int: script: interrupt instruct. */ | ||
674 | #define IID 0x01 /* int: script: illegal instruct. */ | ||
675 | |||
676 | /*0d*/ u8 nc_sstat0; | ||
677 | #define ILF 0x80 /* sta: data in SIDL register lsb */ | ||
678 | #define ORF 0x40 /* sta: data in SODR register lsb */ | ||
679 | #define OLF 0x20 /* sta: data in SODL register lsb */ | ||
680 | #define AIP 0x10 /* sta: arbitration in progress */ | ||
681 | #define LOA 0x08 /* sta: arbitration lost */ | ||
682 | #define WOA 0x04 /* sta: arbitration won */ | ||
683 | #define IRST 0x02 /* sta: scsi reset signal */ | ||
684 | #define SDP 0x01 /* sta: scsi parity signal */ | ||
685 | |||
686 | /*0e*/ u8 nc_sstat1; | ||
687 | #define FF3210 0xf0 /* sta: bytes in the scsi fifo */ | ||
688 | |||
689 | /*0f*/ u8 nc_sstat2; | ||
690 | #define ILF1 0x80 /* sta: data in SIDL register msb[W]*/ | ||
691 | #define ORF1 0x40 /* sta: data in SODR register msb[W]*/ | ||
692 | #define OLF1 0x20 /* sta: data in SODL register msb[W]*/ | ||
693 | #define DM 0x04 /* sta: DIFFSENS mismatch (895/6 only) */ | ||
694 | #define LDSC 0x02 /* sta: disconnect & reconnect */ | ||
695 | |||
696 | /*10*/ u8 nc_dsa; /* --> Base page */ | ||
697 | /*11*/ u8 nc_dsa1; | ||
698 | /*12*/ u8 nc_dsa2; | ||
699 | /*13*/ u8 nc_dsa3; | ||
700 | |||
701 | /*14*/ u8 nc_istat; /* --> Main Command and status */ | ||
702 | #define CABRT 0x80 /* cmd: abort current operation */ | ||
703 | #define SRST 0x40 /* mod: reset chip */ | ||
704 | #define SIGP 0x20 /* r/w: message from host to ncr */ | ||
705 | #define SEM 0x10 /* r/w: message between host + ncr */ | ||
706 | #define CON 0x08 /* sta: connected to scsi */ | ||
707 | #define INTF 0x04 /* sta: int on the fly (reset by wr)*/ | ||
708 | #define SIP 0x02 /* sta: scsi-interrupt */ | ||
709 | #define DIP 0x01 /* sta: host/script interrupt */ | ||
710 | |||
711 | /*15*/ u8 nc_istat1; /* 896 and later cores only */ | ||
712 | #define FLSH 0x04 /* sta: chip is flushing */ | ||
713 | #define SRUN 0x02 /* sta: scripts are running */ | ||
714 | #define SIRQD 0x01 /* r/w: disable INT pin */ | ||
715 | |||
716 | /*16*/ u8 nc_mbox0; /* 896 and later cores only */ | ||
717 | /*17*/ u8 nc_mbox1; /* 896 and later cores only */ | ||
718 | |||
719 | /*18*/ u8 nc_ctest0; | ||
720 | #define EHP 0x04 /* 720 even host parity */ | ||
721 | /*19*/ u8 nc_ctest1; | ||
722 | |||
723 | /*1a*/ u8 nc_ctest2; | ||
724 | #define CSIGP 0x40 | ||
725 | /* bits 0-2,7 rsvd for C1010 */ | ||
726 | |||
727 | /*1b*/ u8 nc_ctest3; | ||
728 | #define FLF 0x08 /* cmd: flush dma fifo */ | ||
729 | #define CLF 0x04 /* cmd: clear dma fifo */ | ||
730 | #define FM 0x02 /* mod: fetch pin mode */ | ||
731 | #define WRIE 0x01 /* mod: write and invalidate enable */ | ||
732 | /* bits 4-7 rsvd for C1010 */ | ||
733 | |||
734 | /*1c*/ u32 nc_temp; /* ### Temporary stack */ | ||
735 | |||
736 | /*20*/ u8 nc_dfifo; | ||
737 | /*21*/ u8 nc_ctest4; | ||
738 | #define MUX 0x80 /* 720 host bus multiplex mode */ | ||
739 | #define BDIS 0x80 /* mod: burst disable */ | ||
740 | #define MPEE 0x08 /* mod: master parity error enable */ | ||
741 | |||
742 | /*22*/ u8 nc_ctest5; | ||
743 | #define DFS 0x20 /* mod: dma fifo size */ | ||
744 | /* bits 0-1, 3-7 rsvd for C1010 */ | ||
745 | /*23*/ u8 nc_ctest6; | ||
746 | |||
747 | /*24*/ u32 nc_dbc; /* ### Byte count and command */ | ||
748 | /*28*/ u32 nc_dnad; /* ### Next command register */ | ||
749 | /*2c*/ u32 nc_dsp; /* --> Script Pointer */ | ||
750 | /*30*/ u32 nc_dsps; /* --> Script pointer save/opcode#2 */ | ||
751 | |||
752 | /*34*/ u8 nc_scratcha; /* Temporary register a */ | ||
753 | /*35*/ u8 nc_scratcha1; | ||
754 | /*36*/ u8 nc_scratcha2; | ||
755 | /*37*/ u8 nc_scratcha3; | ||
756 | |||
757 | /*38*/ u8 nc_dmode; | ||
758 | #define BL_2 0x80 /* mod: burst length shift value +2 */ | ||
759 | #define BL_1 0x40 /* mod: burst length shift value +1 */ | ||
760 | #define ERL 0x08 /* mod: enable read line */ | ||
761 | #define ERMP 0x04 /* mod: enable read multiple */ | ||
762 | #define BOF 0x02 /* mod: burst op code fetch */ | ||
763 | |||
764 | /*39*/ u8 nc_dien; | ||
765 | /*3a*/ u8 nc_sbr; | ||
766 | |||
767 | /*3b*/ u8 nc_dcntl; /* --> Script execution control */ | ||
768 | #define CLSE 0x80 /* mod: cache line size enable */ | ||
769 | #define PFF 0x40 /* cmd: pre-fetch flush */ | ||
770 | #define PFEN 0x20 /* mod: pre-fetch enable */ | ||
771 | #define EA 0x20 /* mod: 720 enable-ack */ | ||
772 | #define SSM 0x10 /* mod: single step mode */ | ||
773 | #define IRQM 0x08 /* mod: irq mode (1 = totem pole !) */ | ||
774 | #define STD 0x04 /* cmd: start dma mode */ | ||
775 | #define IRQD 0x02 /* mod: irq disable */ | ||
776 | #define NOCOM 0x01 /* cmd: protect sfbr while reselect */ | ||
777 | /* bits 0-1 rsvd for C1010 */ | ||
778 | |||
779 | /*3c*/ u32 nc_adder; | ||
780 | |||
781 | /*40*/ u16 nc_sien; /* -->: interrupt enable */ | ||
782 | /*42*/ u16 nc_sist; /* <--: interrupt status */ | ||
783 | #define SBMC 0x1000/* sta: SCSI Bus Mode Change (895/6 only) */ | ||
784 | #define STO 0x0400/* sta: timeout (select) */ | ||
785 | #define GEN 0x0200/* sta: timeout (general) */ | ||
786 | #define HTH 0x0100/* sta: timeout (handshake) */ | ||
787 | #define MA 0x80 /* sta: phase mismatch */ | ||
788 | #define CMP 0x40 /* sta: arbitration complete */ | ||
789 | #define SEL 0x20 /* sta: selected by another device */ | ||
790 | #define RSL 0x10 /* sta: reselected by another device*/ | ||
791 | #define SGE 0x08 /* sta: gross error (over/underflow)*/ | ||
792 | #define UDC 0x04 /* sta: unexpected disconnect */ | ||
793 | #define RST 0x02 /* sta: scsi bus reset detected */ | ||
794 | #define PAR 0x01 /* sta: scsi parity error */ | ||
795 | |||
796 | /*44*/ u8 nc_slpar; | ||
797 | /*45*/ u8 nc_swide; | ||
798 | /*46*/ u8 nc_macntl; | ||
799 | /*47*/ u8 nc_gpcntl; | ||
800 | /*48*/ u8 nc_stime0; /* cmd: timeout for select&handshake*/ | ||
801 | /*49*/ u8 nc_stime1; /* cmd: timeout user defined */ | ||
802 | /*4a*/ u16 nc_respid; /* sta: Reselect-IDs */ | ||
803 | |||
804 | /*4c*/ u8 nc_stest0; | ||
805 | |||
806 | /*4d*/ u8 nc_stest1; | ||
807 | #define SCLK 0x80 /* Use the PCI clock as SCSI clock */ | ||
808 | #define DBLEN 0x08 /* clock doubler running */ | ||
809 | #define DBLSEL 0x04 /* clock doubler selected */ | ||
810 | |||
811 | |||
812 | /*4e*/ u8 nc_stest2; | ||
813 | #define ROF 0x40 /* reset scsi offset (after gross error!) */ | ||
814 | #define DIF 0x20 /* 720 SCSI differential mode */ | ||
815 | #define EXT 0x02 /* extended filtering */ | ||
816 | |||
817 | /*4f*/ u8 nc_stest3; | ||
818 | #define TE 0x80 /* c: tolerAnt enable */ | ||
819 | #define HSC 0x20 /* c: Halt SCSI Clock */ | ||
820 | #define CSF 0x02 /* c: clear scsi fifo */ | ||
821 | |||
822 | /*50*/ u16 nc_sidl; /* Lowlevel: latched from scsi data */ | ||
823 | /*52*/ u8 nc_stest4; | ||
824 | #define SMODE 0xc0 /* SCSI bus mode (895/6 only) */ | ||
825 | #define SMODE_HVD 0x40 /* High Voltage Differential */ | ||
826 | #define SMODE_SE 0x80 /* Single Ended */ | ||
827 | #define SMODE_LVD 0xc0 /* Low Voltage Differential */ | ||
828 | #define LCKFRQ 0x20 /* Frequency Lock (895/6 only) */ | ||
829 | /* bits 0-5 rsvd for C1010 */ | ||
830 | |||
831 | /*53*/ u8 nc_53_; | ||
832 | /*54*/ u16 nc_sodl; /* Lowlevel: data out to scsi data */ | ||
833 | /*56*/ u8 nc_ccntl0; /* Chip Control 0 (896) */ | ||
834 | #define ENPMJ 0x80 /* Enable Phase Mismatch Jump */ | ||
835 | #define PMJCTL 0x40 /* Phase Mismatch Jump Control */ | ||
836 | #define ENNDJ 0x20 /* Enable Non Data PM Jump */ | ||
837 | #define DISFC 0x10 /* Disable Auto FIFO Clear */ | ||
838 | #define DILS 0x02 /* Disable Internal Load/Store */ | ||
839 | #define DPR 0x01 /* Disable Pipe Req */ | ||
840 | |||
841 | /*57*/ u8 nc_ccntl1; /* Chip Control 1 (896) */ | ||
842 | #define ZMOD 0x80 /* High Impedance Mode */ | ||
843 | #define DIC 0x10 /* Disable Internal Cycles */ | ||
844 | #define DDAC 0x08 /* Disable Dual Address Cycle */ | ||
845 | #define XTIMOD 0x04 /* 64-bit Table Ind. Indexing Mode */ | ||
846 | #define EXTIBMV 0x02 /* Enable 64-bit Table Ind. BMOV */ | ||
847 | #define EXDBMV 0x01 /* Enable 64-bit Direct BMOV */ | ||
848 | |||
849 | /*58*/ u16 nc_sbdl; /* Lowlevel: data from scsi data */ | ||
850 | /*5a*/ u16 nc_5a_; | ||
851 | |||
852 | /*5c*/ u8 nc_scr0; /* Working register B */ | ||
853 | /*5d*/ u8 nc_scr1; /* */ | ||
854 | /*5e*/ u8 nc_scr2; /* */ | ||
855 | /*5f*/ u8 nc_scr3; /* */ | ||
856 | |||
857 | /*60*/ u8 nc_scrx[64]; /* Working register C-R */ | ||
858 | /*a0*/ u32 nc_mmrs; /* Memory Move Read Selector */ | ||
859 | /*a4*/ u32 nc_mmws; /* Memory Move Write Selector */ | ||
860 | /*a8*/ u32 nc_sfs; /* Script Fetch Selector */ | ||
861 | /*ac*/ u32 nc_drs; /* DSA Relative Selector */ | ||
862 | /*b0*/ u32 nc_sbms; /* Static Block Move Selector */ | ||
863 | /*b4*/ u32 nc_dbms; /* Dynamic Block Move Selector */ | ||
864 | /*b8*/ u32 nc_dnad64; /* DMA Next Address 64 */ | ||
865 | /*bc*/ u16 nc_scntl4; /* C1010 only */ | ||
866 | #define U3EN 0x80 /* Enable Ultra 3 */ | ||
867 | #define AIPEN 0x40 /* Allow check upper byte lanes */ | ||
868 | #define XCLKH_DT 0x08 /* Extra clock of data hold on DT | ||
869 | transfer edge */ | ||
870 | #define XCLKH_ST 0x04 /* Extra clock of data hold on ST | ||
871 | transfer edge */ | ||
872 | |||
873 | /*be*/ u8 nc_aipcntl0; /* Epat Control 1 C1010 only */ | ||
874 | /*bf*/ u8 nc_aipcntl1; /* AIP Control C1010_66 Only */ | ||
875 | |||
876 | /*c0*/ u32 nc_pmjad1; /* Phase Mismatch Jump Address 1 */ | ||
877 | /*c4*/ u32 nc_pmjad2; /* Phase Mismatch Jump Address 2 */ | ||
878 | /*c8*/ u8 nc_rbc; /* Remaining Byte Count */ | ||
879 | /*c9*/ u8 nc_rbc1; /* */ | ||
880 | /*ca*/ u8 nc_rbc2; /* */ | ||
881 | /*cb*/ u8 nc_rbc3; /* */ | ||
882 | |||
883 | /*cc*/ u8 nc_ua; /* Updated Address */ | ||
884 | /*cd*/ u8 nc_ua1; /* */ | ||
885 | /*ce*/ u8 nc_ua2; /* */ | ||
886 | /*cf*/ u8 nc_ua3; /* */ | ||
887 | /*d0*/ u32 nc_esa; /* Entry Storage Address */ | ||
888 | /*d4*/ u8 nc_ia; /* Instruction Address */ | ||
889 | /*d5*/ u8 nc_ia1; | ||
890 | /*d6*/ u8 nc_ia2; | ||
891 | /*d7*/ u8 nc_ia3; | ||
892 | /*d8*/ u32 nc_sbc; /* SCSI Byte Count (3 bytes only) */ | ||
893 | /*dc*/ u32 nc_csbc; /* Cumulative SCSI Byte Count */ | ||
894 | |||
895 | /* Following for C1010 only */ | ||
896 | /*e0*/ u16 nc_crcpad; /* CRC Value */ | ||
897 | /*e2*/ u8 nc_crccntl0; /* CRC control register */ | ||
898 | #define SNDCRC 0x10 /* Send CRC Request */ | ||
899 | /*e3*/ u8 nc_crccntl1; /* CRC control register */ | ||
900 | /*e4*/ u32 nc_crcdata; /* CRC data register */ | ||
901 | /*e8*/ u32 nc_e8_; /* rsvd */ | ||
902 | /*ec*/ u32 nc_ec_; /* rsvd */ | ||
903 | /*f0*/ u16 nc_dfbc; /* DMA FIFO byte count */ | ||
904 | |||
905 | }; | ||
906 | |||
907 | /*----------------------------------------------------------- | ||
908 | ** | ||
909 | ** Utility macros for the script. | ||
910 | ** | ||
911 | **----------------------------------------------------------- | ||
912 | */ | ||
913 | |||
914 | #define REGJ(p,r) (offsetof(struct ncr_reg, p ## r)) | ||
915 | #define REG(r) REGJ (nc_, r) | ||
916 | |||
917 | typedef u32 ncrcmd; | ||
918 | |||
919 | /*----------------------------------------------------------- | ||
920 | ** | ||
921 | ** SCSI phases | ||
922 | ** | ||
923 | ** DT phases illegal for ncr driver. | ||
924 | ** | ||
925 | **----------------------------------------------------------- | ||
926 | */ | ||
927 | |||
928 | #define SCR_DATA_OUT 0x00000000 | ||
929 | #define SCR_DATA_IN 0x01000000 | ||
930 | #define SCR_COMMAND 0x02000000 | ||
931 | #define SCR_STATUS 0x03000000 | ||
932 | #define SCR_DT_DATA_OUT 0x04000000 | ||
933 | #define SCR_DT_DATA_IN 0x05000000 | ||
934 | #define SCR_MSG_OUT 0x06000000 | ||
935 | #define SCR_MSG_IN 0x07000000 | ||
936 | |||
937 | #define SCR_ILG_OUT 0x04000000 | ||
938 | #define SCR_ILG_IN 0x05000000 | ||
939 | |||
940 | /*----------------------------------------------------------- | ||
941 | ** | ||
942 | ** Data transfer via SCSI. | ||
943 | ** | ||
944 | **----------------------------------------------------------- | ||
945 | ** | ||
946 | ** MOVE_ABS (LEN) | ||
947 | ** <<start address>> | ||
948 | ** | ||
949 | ** MOVE_IND (LEN) | ||
950 | ** <<dnad_offset>> | ||
951 | ** | ||
952 | ** MOVE_TBL | ||
953 | ** <<dnad_offset>> | ||
954 | ** | ||
955 | **----------------------------------------------------------- | ||
956 | */ | ||
957 | |||
958 | #define OPC_MOVE 0x08000000 | ||
959 | |||
960 | #define SCR_MOVE_ABS(l) ((0x00000000 | OPC_MOVE) | (l)) | ||
961 | #define SCR_MOVE_IND(l) ((0x20000000 | OPC_MOVE) | (l)) | ||
962 | #define SCR_MOVE_TBL (0x10000000 | OPC_MOVE) | ||
963 | |||
964 | #define SCR_CHMOV_ABS(l) ((0x00000000) | (l)) | ||
965 | #define SCR_CHMOV_IND(l) ((0x20000000) | (l)) | ||
966 | #define SCR_CHMOV_TBL (0x10000000) | ||
967 | |||
968 | struct scr_tblmove { | ||
969 | u32 size; | ||
970 | u32 addr; | ||
971 | }; | ||
972 | |||
973 | /*----------------------------------------------------------- | ||
974 | ** | ||
975 | ** Selection | ||
976 | ** | ||
977 | **----------------------------------------------------------- | ||
978 | ** | ||
979 | ** SEL_ABS | SCR_ID (0..15) [ | REL_JMP] | ||
980 | ** <<alternate_address>> | ||
981 | ** | ||
982 | ** SEL_TBL | << dnad_offset>> [ | REL_JMP] | ||
983 | ** <<alternate_address>> | ||
984 | ** | ||
985 | **----------------------------------------------------------- | ||
986 | */ | ||
987 | |||
988 | #define SCR_SEL_ABS 0x40000000 | ||
989 | #define SCR_SEL_ABS_ATN 0x41000000 | ||
990 | #define SCR_SEL_TBL 0x42000000 | ||
991 | #define SCR_SEL_TBL_ATN 0x43000000 | ||
992 | |||
993 | |||
994 | #ifdef SCSI_NCR_BIG_ENDIAN | ||
995 | struct scr_tblsel { | ||
996 | u8 sel_scntl3; | ||
997 | u8 sel_id; | ||
998 | u8 sel_sxfer; | ||
999 | u8 sel_scntl4; | ||
1000 | }; | ||
1001 | #else | ||
1002 | struct scr_tblsel { | ||
1003 | u8 sel_scntl4; | ||
1004 | u8 sel_sxfer; | ||
1005 | u8 sel_id; | ||
1006 | u8 sel_scntl3; | ||
1007 | }; | ||
1008 | #endif | ||
1009 | |||
1010 | #define SCR_JMP_REL 0x04000000 | ||
1011 | #define SCR_ID(id) (((u32)(id)) << 16) | ||
1012 | |||
1013 | /*----------------------------------------------------------- | ||
1014 | ** | ||
1015 | ** Waiting for Disconnect or Reselect | ||
1016 | ** | ||
1017 | **----------------------------------------------------------- | ||
1018 | ** | ||
1019 | ** WAIT_DISC | ||
1020 | ** dummy: <<alternate_address>> | ||
1021 | ** | ||
1022 | ** WAIT_RESEL | ||
1023 | ** <<alternate_address>> | ||
1024 | ** | ||
1025 | **----------------------------------------------------------- | ||
1026 | */ | ||
1027 | |||
1028 | #define SCR_WAIT_DISC 0x48000000 | ||
1029 | #define SCR_WAIT_RESEL 0x50000000 | ||
1030 | |||
1031 | /*----------------------------------------------------------- | ||
1032 | ** | ||
1033 | ** Bit Set / Reset | ||
1034 | ** | ||
1035 | **----------------------------------------------------------- | ||
1036 | ** | ||
1037 | ** SET (flags {|.. }) | ||
1038 | ** | ||
1039 | ** CLR (flags {|.. }) | ||
1040 | ** | ||
1041 | **----------------------------------------------------------- | ||
1042 | */ | ||
1043 | |||
1044 | #define SCR_SET(f) (0x58000000 | (f)) | ||
1045 | #define SCR_CLR(f) (0x60000000 | (f)) | ||
1046 | |||
1047 | #define SCR_CARRY 0x00000400 | ||
1048 | #define SCR_TRG 0x00000200 | ||
1049 | #define SCR_ACK 0x00000040 | ||
1050 | #define SCR_ATN 0x00000008 | ||
1051 | |||
1052 | |||
1053 | |||
1054 | |||
1055 | /*----------------------------------------------------------- | ||
1056 | ** | ||
1057 | ** Memory to memory move | ||
1058 | ** | ||
1059 | **----------------------------------------------------------- | ||
1060 | ** | ||
1061 | ** COPY (bytecount) | ||
1062 | ** << source_address >> | ||
1063 | ** << destination_address >> | ||
1064 | ** | ||
1065 | ** SCR_COPY sets the NO FLUSH option by default. | ||
1066 | ** SCR_COPY_F does not set this option. | ||
1067 | ** | ||
1068 | ** For chips which do not support this option, | ||
1069 | ** ncr_copy_and_bind() will remove this bit. | ||
1070 | **----------------------------------------------------------- | ||
1071 | */ | ||
1072 | |||
1073 | #define SCR_NO_FLUSH 0x01000000 | ||
1074 | |||
1075 | #define SCR_COPY(n) (0xc0000000 | SCR_NO_FLUSH | (n)) | ||
1076 | #define SCR_COPY_F(n) (0xc0000000 | (n)) | ||
1077 | |||
1078 | /*----------------------------------------------------------- | ||
1079 | ** | ||
1080 | ** Register move and binary operations | ||
1081 | ** | ||
1082 | **----------------------------------------------------------- | ||
1083 | ** | ||
1084 | ** SFBR_REG (reg, op, data) reg = SFBR op data | ||
1085 | ** << 0 >> | ||
1086 | ** | ||
1087 | ** REG_SFBR (reg, op, data) SFBR = reg op data | ||
1088 | ** << 0 >> | ||
1089 | ** | ||
1090 | ** REG_REG (reg, op, data) reg = reg op data | ||
1091 | ** << 0 >> | ||
1092 | ** | ||
1093 | **----------------------------------------------------------- | ||
1094 | ** On 810A, 860, 825A, 875, 895 and 896 chips the content | ||
1095 | ** of SFBR register can be used as data (SCR_SFBR_DATA). | ||
1096 | ** The 896 has additionnal IO registers starting at | ||
1097 | ** offset 0x80. Bit 7 of register offset is stored in | ||
1098 | ** bit 7 of the SCRIPTS instruction first DWORD. | ||
1099 | **----------------------------------------------------------- | ||
1100 | */ | ||
1101 | |||
1102 | #define SCR_REG_OFS(ofs) ((((ofs) & 0x7f) << 16ul) + ((ofs) & 0x80)) | ||
1103 | |||
1104 | #define SCR_SFBR_REG(reg,op,data) \ | ||
1105 | (0x68000000 | (SCR_REG_OFS(REG(reg))) | (op) | (((data)&0xff)<<8ul)) | ||
1106 | |||
1107 | #define SCR_REG_SFBR(reg,op,data) \ | ||
1108 | (0x70000000 | (SCR_REG_OFS(REG(reg))) | (op) | (((data)&0xff)<<8ul)) | ||
1109 | |||
1110 | #define SCR_REG_REG(reg,op,data) \ | ||
1111 | (0x78000000 | (SCR_REG_OFS(REG(reg))) | (op) | (((data)&0xff)<<8ul)) | ||
1112 | |||
1113 | |||
1114 | #define SCR_LOAD 0x00000000 | ||
1115 | #define SCR_SHL 0x01000000 | ||
1116 | #define SCR_OR 0x02000000 | ||
1117 | #define SCR_XOR 0x03000000 | ||
1118 | #define SCR_AND 0x04000000 | ||
1119 | #define SCR_SHR 0x05000000 | ||
1120 | #define SCR_ADD 0x06000000 | ||
1121 | #define SCR_ADDC 0x07000000 | ||
1122 | |||
1123 | #define SCR_SFBR_DATA (0x00800000>>8ul) /* Use SFBR as data */ | ||
1124 | |||
1125 | /*----------------------------------------------------------- | ||
1126 | ** | ||
1127 | ** FROM_REG (reg) SFBR = reg | ||
1128 | ** << 0 >> | ||
1129 | ** | ||
1130 | ** TO_REG (reg) reg = SFBR | ||
1131 | ** << 0 >> | ||
1132 | ** | ||
1133 | ** LOAD_REG (reg, data) reg = <data> | ||
1134 | ** << 0 >> | ||
1135 | ** | ||
1136 | ** LOAD_SFBR(data) SFBR = <data> | ||
1137 | ** << 0 >> | ||
1138 | ** | ||
1139 | **----------------------------------------------------------- | ||
1140 | */ | ||
1141 | |||
1142 | #define SCR_FROM_REG(reg) \ | ||
1143 | SCR_REG_SFBR(reg,SCR_OR,0) | ||
1144 | |||
1145 | #define SCR_TO_REG(reg) \ | ||
1146 | SCR_SFBR_REG(reg,SCR_OR,0) | ||
1147 | |||
1148 | #define SCR_LOAD_REG(reg,data) \ | ||
1149 | SCR_REG_REG(reg,SCR_LOAD,data) | ||
1150 | |||
1151 | #define SCR_LOAD_SFBR(data) \ | ||
1152 | (SCR_REG_SFBR (gpreg, SCR_LOAD, data)) | ||
1153 | |||
1154 | /*----------------------------------------------------------- | ||
1155 | ** | ||
1156 | ** LOAD from memory to register. | ||
1157 | ** STORE from register to memory. | ||
1158 | ** | ||
1159 | ** Only supported by 810A, 860, 825A, 875, 895 and 896. | ||
1160 | ** | ||
1161 | **----------------------------------------------------------- | ||
1162 | ** | ||
1163 | ** LOAD_ABS (LEN) | ||
1164 | ** <<start address>> | ||
1165 | ** | ||
1166 | ** LOAD_REL (LEN) (DSA relative) | ||
1167 | ** <<dsa_offset>> | ||
1168 | ** | ||
1169 | **----------------------------------------------------------- | ||
1170 | */ | ||
1171 | |||
1172 | #define SCR_REG_OFS2(ofs) (((ofs) & 0xff) << 16ul) | ||
1173 | #define SCR_NO_FLUSH2 0x02000000 | ||
1174 | #define SCR_DSA_REL2 0x10000000 | ||
1175 | |||
1176 | #define SCR_LOAD_R(reg, how, n) \ | ||
1177 | (0xe1000000 | how | (SCR_REG_OFS2(REG(reg))) | (n)) | ||
1178 | |||
1179 | #define SCR_STORE_R(reg, how, n) \ | ||
1180 | (0xe0000000 | how | (SCR_REG_OFS2(REG(reg))) | (n)) | ||
1181 | |||
1182 | #define SCR_LOAD_ABS(reg, n) SCR_LOAD_R(reg, SCR_NO_FLUSH2, n) | ||
1183 | #define SCR_LOAD_REL(reg, n) SCR_LOAD_R(reg, SCR_NO_FLUSH2|SCR_DSA_REL2, n) | ||
1184 | #define SCR_LOAD_ABS_F(reg, n) SCR_LOAD_R(reg, 0, n) | ||
1185 | #define SCR_LOAD_REL_F(reg, n) SCR_LOAD_R(reg, SCR_DSA_REL2, n) | ||
1186 | |||
1187 | #define SCR_STORE_ABS(reg, n) SCR_STORE_R(reg, SCR_NO_FLUSH2, n) | ||
1188 | #define SCR_STORE_REL(reg, n) SCR_STORE_R(reg, SCR_NO_FLUSH2|SCR_DSA_REL2,n) | ||
1189 | #define SCR_STORE_ABS_F(reg, n) SCR_STORE_R(reg, 0, n) | ||
1190 | #define SCR_STORE_REL_F(reg, n) SCR_STORE_R(reg, SCR_DSA_REL2, n) | ||
1191 | |||
1192 | |||
1193 | /*----------------------------------------------------------- | ||
1194 | ** | ||
1195 | ** Waiting for Disconnect or Reselect | ||
1196 | ** | ||
1197 | **----------------------------------------------------------- | ||
1198 | ** | ||
1199 | ** JUMP [ | IFTRUE/IFFALSE ( ... ) ] | ||
1200 | ** <<address>> | ||
1201 | ** | ||
1202 | ** JUMPR [ | IFTRUE/IFFALSE ( ... ) ] | ||
1203 | ** <<distance>> | ||
1204 | ** | ||
1205 | ** CALL [ | IFTRUE/IFFALSE ( ... ) ] | ||
1206 | ** <<address>> | ||
1207 | ** | ||
1208 | ** CALLR [ | IFTRUE/IFFALSE ( ... ) ] | ||
1209 | ** <<distance>> | ||
1210 | ** | ||
1211 | ** RETURN [ | IFTRUE/IFFALSE ( ... ) ] | ||
1212 | ** <<dummy>> | ||
1213 | ** | ||
1214 | ** INT [ | IFTRUE/IFFALSE ( ... ) ] | ||
1215 | ** <<ident>> | ||
1216 | ** | ||
1217 | ** INT_FLY [ | IFTRUE/IFFALSE ( ... ) ] | ||
1218 | ** <<ident>> | ||
1219 | ** | ||
1220 | ** Conditions: | ||
1221 | ** WHEN (phase) | ||
1222 | ** IF (phase) | ||
1223 | ** CARRYSET | ||
1224 | ** DATA (data, mask) | ||
1225 | ** | ||
1226 | **----------------------------------------------------------- | ||
1227 | */ | ||
1228 | |||
1229 | #define SCR_NO_OP 0x80000000 | ||
1230 | #define SCR_JUMP 0x80080000 | ||
1231 | #define SCR_JUMP64 0x80480000 | ||
1232 | #define SCR_JUMPR 0x80880000 | ||
1233 | #define SCR_CALL 0x88080000 | ||
1234 | #define SCR_CALLR 0x88880000 | ||
1235 | #define SCR_RETURN 0x90080000 | ||
1236 | #define SCR_INT 0x98080000 | ||
1237 | #define SCR_INT_FLY 0x98180000 | ||
1238 | |||
1239 | #define IFFALSE(arg) (0x00080000 | (arg)) | ||
1240 | #define IFTRUE(arg) (0x00000000 | (arg)) | ||
1241 | |||
1242 | #define WHEN(phase) (0x00030000 | (phase)) | ||
1243 | #define IF(phase) (0x00020000 | (phase)) | ||
1244 | |||
1245 | #define DATA(D) (0x00040000 | ((D) & 0xff)) | ||
1246 | #define MASK(D,M) (0x00040000 | (((M ^ 0xff) & 0xff) << 8ul)|((D) & 0xff)) | ||
1247 | |||
1248 | #define CARRYSET (0x00200000) | ||
1249 | |||
1250 | /*----------------------------------------------------------- | ||
1251 | ** | ||
1252 | ** SCSI constants. | ||
1253 | ** | ||
1254 | **----------------------------------------------------------- | ||
1255 | */ | ||
1256 | |||
1257 | /* | ||
1258 | ** Messages | ||
1259 | */ | ||
1260 | |||
1261 | #define M_COMPLETE COMMAND_COMPLETE | ||
1262 | #define M_EXTENDED EXTENDED_MESSAGE | ||
1263 | #define M_SAVE_DP SAVE_POINTERS | ||
1264 | #define M_RESTORE_DP RESTORE_POINTERS | ||
1265 | #define M_DISCONNECT DISCONNECT | ||
1266 | #define M_ID_ERROR INITIATOR_ERROR | ||
1267 | #define M_ABORT ABORT_TASK_SET | ||
1268 | #define M_REJECT MESSAGE_REJECT | ||
1269 | #define M_NOOP NOP | ||
1270 | #define M_PARITY MSG_PARITY_ERROR | ||
1271 | #define M_LCOMPLETE LINKED_CMD_COMPLETE | ||
1272 | #define M_FCOMPLETE LINKED_FLG_CMD_COMPLETE | ||
1273 | #define M_RESET TARGET_RESET | ||
1274 | #define M_ABORT_TAG ABORT_TASK | ||
1275 | #define M_CLEAR_QUEUE CLEAR_TASK_SET | ||
1276 | #define M_INIT_REC INITIATE_RECOVERY | ||
1277 | #define M_REL_REC RELEASE_RECOVERY | ||
1278 | #define M_TERMINATE (0x11) | ||
1279 | #define M_SIMPLE_TAG SIMPLE_QUEUE_TAG | ||
1280 | #define M_HEAD_TAG HEAD_OF_QUEUE_TAG | ||
1281 | #define M_ORDERED_TAG ORDERED_QUEUE_TAG | ||
1282 | #define M_IGN_RESIDUE IGNORE_WIDE_RESIDUE | ||
1283 | #define M_IDENTIFY (0x80) | ||
1284 | |||
1285 | #define M_X_MODIFY_DP EXTENDED_MODIFY_DATA_POINTER | ||
1286 | #define M_X_SYNC_REQ EXTENDED_SDTR | ||
1287 | #define M_X_WIDE_REQ EXTENDED_WDTR | ||
1288 | #define M_X_PPR_REQ EXTENDED_PPR | ||
1289 | |||
1290 | /* | ||
1291 | ** Status | ||
1292 | */ | ||
1293 | |||
1294 | #define S_GOOD (0x00) | ||
1295 | #define S_CHECK_COND (0x02) | ||
1296 | #define S_COND_MET (0x04) | ||
1297 | #define S_BUSY (0x08) | ||
1298 | #define S_INT (0x10) | ||
1299 | #define S_INT_COND_MET (0x14) | ||
1300 | #define S_CONFLICT (0x18) | ||
1301 | #define S_TERMINATED (0x20) | ||
1302 | #define S_QUEUE_FULL (0x28) | ||
1303 | #define S_ILLEGAL (0xff) | ||
1304 | #define S_SENSE (0x80) | ||
1305 | |||
1306 | /* | ||
1307 | * End of ncrreg from FreeBSD | ||
1308 | */ | ||
48 | 1309 | ||
49 | /* | 1310 | /* |
50 | Build a scatter/gather entry. | 1311 | Build a scatter/gather entry. |
diff --git a/drivers/scsi/qla2xxx/Kconfig b/drivers/scsi/qla2xxx/Kconfig index c1c1c687bcbd..5205c4e7d6ff 100644 --- a/drivers/scsi/qla2xxx/Kconfig +++ b/drivers/scsi/qla2xxx/Kconfig | |||
@@ -1,55 +1,70 @@ | |||
1 | config SCSI_QLA2XXX | 1 | config SCSI_QLA2XXX |
2 | tristate | 2 | tristate "QLogic QLA2XXX Fibre Channel Support" |
3 | default (SCSI && PCI) | 3 | depends on PCI && SCSI |
4 | depends on SCSI && PCI | 4 | select SCSI_FC_ATTRS |
5 | select FW_LOADER | ||
6 | ---help--- | ||
7 | This qla2xxx driver supports all QLogic Fibre Channel | ||
8 | PCI and PCIe host adapters. | ||
5 | 9 | ||
6 | config SCSI_QLA21XX | 10 | By default, firmware for the ISP parts will be loaded |
7 | tristate "QLogic ISP2100 host adapter family support" | 11 | via the Firmware Loader interface. |
12 | |||
13 | ISP Firmware Filename | ||
14 | ---------- ----------------- | ||
15 | 21xx ql2100_fw.bin | ||
16 | 22xx ql2200_fw.bin | ||
17 | 2300, 2312 ql2300_fw.bin | ||
18 | 2322 ql2322_fw.bin | ||
19 | 6312, 6322 ql6312_fw.bin | ||
20 | 24xx ql2400_fw.bin | ||
21 | |||
22 | Upon request, the driver caches the firmware image until | ||
23 | the driver is unloaded. | ||
24 | |||
25 | NOTE: The original method of building firmware-loader | ||
26 | modules has been deprecated as the firmware-images will | ||
27 | be removed from the kernel sources. | ||
28 | |||
29 | config SCSI_QLA2XXX_EMBEDDED_FIRMWARE | ||
30 | bool " Use firmware-loader modules (DEPRECATED)" | ||
8 | depends on SCSI_QLA2XXX | 31 | depends on SCSI_QLA2XXX |
9 | select SCSI_FC_ATTRS | 32 | |
10 | select FW_LOADER | 33 | config SCSI_QLA21XX |
34 | tristate " Build QLogic ISP2100 firmware-module" | ||
35 | depends on SCSI_QLA2XXX_EMBEDDED_FIRMWARE | ||
11 | ---help--- | 36 | ---help--- |
12 | This driver supports the QLogic 21xx (ISP2100) host adapter family. | 37 | This driver supports the QLogic 21xx (ISP2100) host adapter family. |
13 | 38 | ||
14 | config SCSI_QLA22XX | 39 | config SCSI_QLA22XX |
15 | tristate "QLogic ISP2200 host adapter family support" | 40 | tristate " Build QLogic ISP2200 firmware-module" |
16 | depends on SCSI_QLA2XXX | 41 | depends on SCSI_QLA2XXX_EMBEDDED_FIRMWARE |
17 | select SCSI_FC_ATTRS | ||
18 | select FW_LOADER | ||
19 | ---help--- | 42 | ---help--- |
20 | This driver supports the QLogic 22xx (ISP2200) host adapter family. | 43 | This driver supports the QLogic 22xx (ISP2200) host adapter family. |
21 | 44 | ||
22 | config SCSI_QLA2300 | 45 | config SCSI_QLA2300 |
23 | tristate "QLogic ISP2300 host adapter family support" | 46 | tristate " Build QLogic ISP2300 firmware-module" |
24 | depends on SCSI_QLA2XXX | 47 | depends on SCSI_QLA2XXX_EMBEDDED_FIRMWARE |
25 | select SCSI_FC_ATTRS | ||
26 | select FW_LOADER | ||
27 | ---help--- | 48 | ---help--- |
28 | This driver supports the QLogic 2300 (ISP2300 and ISP2312) host | 49 | This driver supports the QLogic 2300 (ISP2300 and ISP2312) host |
29 | adapter family. | 50 | adapter family. |
30 | 51 | ||
31 | config SCSI_QLA2322 | 52 | config SCSI_QLA2322 |
32 | tristate "QLogic ISP2322 host adapter family support" | 53 | tristate " Build QLogic ISP2322 firmware-module" |
33 | depends on SCSI_QLA2XXX | 54 | depends on SCSI_QLA2XXX_EMBEDDED_FIRMWARE |
34 | select SCSI_FC_ATTRS | ||
35 | select FW_LOADER | ||
36 | ---help--- | 55 | ---help--- |
37 | This driver supports the QLogic 2322 (ISP2322) host adapter family. | 56 | This driver supports the QLogic 2322 (ISP2322) host adapter family. |
38 | 57 | ||
39 | config SCSI_QLA6312 | 58 | config SCSI_QLA6312 |
40 | tristate "QLogic ISP63xx host adapter family support" | 59 | tristate " Build QLogic ISP63xx firmware-module" |
41 | depends on SCSI_QLA2XXX | 60 | depends on SCSI_QLA2XXX_EMBEDDED_FIRMWARE |
42 | select SCSI_FC_ATTRS | ||
43 | select FW_LOADER | ||
44 | ---help--- | 61 | ---help--- |
45 | This driver supports the QLogic 63xx (ISP6312 and ISP6322) host | 62 | This driver supports the QLogic 63xx (ISP6312 and ISP6322) host |
46 | adapter family. | 63 | adapter family. |
47 | 64 | ||
48 | config SCSI_QLA24XX | 65 | config SCSI_QLA24XX |
49 | tristate "QLogic ISP24xx host adapter family support" | 66 | tristate " Build QLogic ISP24xx firmware-module" |
50 | depends on SCSI_QLA2XXX | 67 | depends on SCSI_QLA2XXX_EMBEDDED_FIRMWARE |
51 | select SCSI_FC_ATTRS | ||
52 | select FW_LOADER | ||
53 | ---help--- | 68 | ---help--- |
54 | This driver supports the QLogic 24xx (ISP2422 and ISP2432) host | 69 | This driver supports the QLogic 24xx (ISP2422 and ISP2432) host |
55 | adapter family. | 70 | adapter family. |
diff --git a/drivers/scsi/qla2xxx/Makefile b/drivers/scsi/qla2xxx/Makefile index b169687d08ff..40c0de125889 100644 --- a/drivers/scsi/qla2xxx/Makefile +++ b/drivers/scsi/qla2xxx/Makefile | |||
@@ -3,15 +3,18 @@ EXTRA_CFLAGS += -DUNIQUE_FW_NAME | |||
3 | qla2xxx-y := qla_os.o qla_init.o qla_mbx.o qla_iocb.o qla_isr.o qla_gs.o \ | 3 | qla2xxx-y := qla_os.o qla_init.o qla_mbx.o qla_iocb.o qla_isr.o qla_gs.o \ |
4 | qla_dbg.o qla_sup.o qla_rscn.o qla_attr.o | 4 | qla_dbg.o qla_sup.o qla_rscn.o qla_attr.o |
5 | 5 | ||
6 | obj-$(CONFIG_SCSI_QLA2XXX) += qla2xxx.o | ||
7 | |||
6 | qla2100-y := ql2100.o ql2100_fw.o | 8 | qla2100-y := ql2100.o ql2100_fw.o |
7 | qla2200-y := ql2200.o ql2200_fw.o | 9 | qla2200-y := ql2200.o ql2200_fw.o |
8 | qla2300-y := ql2300.o ql2300_fw.o | 10 | qla2300-y := ql2300.o ql2300_fw.o |
9 | qla2322-y := ql2322.o ql2322_fw.o | 11 | qla2322-y := ql2322.o ql2322_fw.o |
10 | qla6312-y := ql6312.o ql6312_fw.o | 12 | qla6312-y := ql6312.o ql6312_fw.o |
13 | qla2400-y := ql2400.o ql2400_fw.o | ||
11 | 14 | ||
12 | obj-$(CONFIG_SCSI_QLA21XX) += qla2xxx.o qla2100.o | 15 | obj-$(CONFIG_SCSI_QLA21XX) += qla2xxx.o qla2100.o |
13 | obj-$(CONFIG_SCSI_QLA22XX) += qla2xxx.o qla2200.o | 16 | obj-$(CONFIG_SCSI_QLA22XX) += qla2xxx.o qla2200.o |
14 | obj-$(CONFIG_SCSI_QLA2300) += qla2xxx.o qla2300.o | 17 | obj-$(CONFIG_SCSI_QLA2300) += qla2xxx.o qla2300.o |
15 | obj-$(CONFIG_SCSI_QLA2322) += qla2xxx.o qla2322.o | 18 | obj-$(CONFIG_SCSI_QLA2322) += qla2xxx.o qla2322.o |
16 | obj-$(CONFIG_SCSI_QLA6312) += qla2xxx.o qla6312.o | 19 | obj-$(CONFIG_SCSI_QLA6312) += qla2xxx.o qla6312.o |
17 | obj-$(CONFIG_SCSI_QLA24XX) += qla2xxx.o | 20 | obj-$(CONFIG_SCSI_QLA24XX) += qla2xxx.o qla2400.o |
diff --git a/drivers/scsi/qla2xxx/ql2400.c b/drivers/scsi/qla2xxx/ql2400.c new file mode 100644 index 000000000000..6c7165f47e29 --- /dev/null +++ b/drivers/scsi/qla2xxx/ql2400.c | |||
@@ -0,0 +1,111 @@ | |||
1 | /* | ||
2 | * QLogic Fibre Channel HBA Driver | ||
3 | * Copyright (c) 2003-2005 QLogic Corporation | ||
4 | * | ||
5 | * See LICENSE.qla2xxx for copyright and licensing details. | ||
6 | */ | ||
7 | #include <linux/init.h> | ||
8 | #include <linux/module.h> | ||
9 | #include <linux/pci.h> | ||
10 | |||
11 | #include "qla_def.h" | ||
12 | |||
13 | static char qla_driver_name[] = "qla2400"; | ||
14 | |||
15 | extern uint32_t fw2400_version_str[]; | ||
16 | extern uint32_t fw2400_addr01; | ||
17 | extern uint32_t fw2400_code01[]; | ||
18 | extern uint32_t fw2400_length01; | ||
19 | extern uint32_t fw2400_addr02; | ||
20 | extern uint32_t fw2400_code02[]; | ||
21 | extern uint32_t fw2400_length02; | ||
22 | |||
23 | static struct qla_fw_info qla_fw_tbl[] = { | ||
24 | { | ||
25 | .addressing = FW_INFO_ADDR_EXTENDED, | ||
26 | .fwcode = (unsigned short *)&fw2400_code01[0], | ||
27 | .fwlen = (unsigned short *)&fw2400_length01, | ||
28 | .lfwstart = (unsigned long *)&fw2400_addr01, | ||
29 | }, | ||
30 | { | ||
31 | .addressing = FW_INFO_ADDR_EXTENDED, | ||
32 | .fwcode = (unsigned short *)&fw2400_code02[0], | ||
33 | .fwlen = (unsigned short *)&fw2400_length02, | ||
34 | .lfwstart = (unsigned long *)&fw2400_addr02, | ||
35 | }, | ||
36 | { FW_INFO_ADDR_NOMORE, }, | ||
37 | }; | ||
38 | |||
39 | static struct qla_board_info qla_board_tbl[] = { | ||
40 | { | ||
41 | .drv_name = qla_driver_name, | ||
42 | .isp_name = "ISP2422", | ||
43 | .fw_info = qla_fw_tbl, | ||
44 | .fw_fname = "ql2400_fw.bin", | ||
45 | }, | ||
46 | { | ||
47 | .drv_name = qla_driver_name, | ||
48 | .isp_name = "ISP2432", | ||
49 | .fw_info = qla_fw_tbl, | ||
50 | .fw_fname = "ql2400_fw.bin", | ||
51 | }, | ||
52 | }; | ||
53 | |||
54 | static struct pci_device_id qla24xx_pci_tbl[] = { | ||
55 | { | ||
56 | .vendor = PCI_VENDOR_ID_QLOGIC, | ||
57 | .device = PCI_DEVICE_ID_QLOGIC_ISP2422, | ||
58 | .subvendor = PCI_ANY_ID, | ||
59 | .subdevice = PCI_ANY_ID, | ||
60 | .driver_data = (unsigned long)&qla_board_tbl[0], | ||
61 | }, | ||
62 | { | ||
63 | .vendor = PCI_VENDOR_ID_QLOGIC, | ||
64 | .device = PCI_DEVICE_ID_QLOGIC_ISP2432, | ||
65 | .subvendor = PCI_ANY_ID, | ||
66 | .subdevice = PCI_ANY_ID, | ||
67 | .driver_data = (unsigned long)&qla_board_tbl[1], | ||
68 | }, | ||
69 | {0, 0}, | ||
70 | }; | ||
71 | MODULE_DEVICE_TABLE(pci, qla24xx_pci_tbl); | ||
72 | |||
73 | static int __devinit | ||
74 | qla24xx_probe_one(struct pci_dev *pdev, const struct pci_device_id *id) | ||
75 | { | ||
76 | return qla2x00_probe_one(pdev, | ||
77 | (struct qla_board_info *)id->driver_data); | ||
78 | } | ||
79 | |||
80 | static void __devexit | ||
81 | qla24xx_remove_one(struct pci_dev *pdev) | ||
82 | { | ||
83 | qla2x00_remove_one(pdev); | ||
84 | } | ||
85 | |||
86 | static struct pci_driver qla24xx_pci_driver = { | ||
87 | .name = "qla2400", | ||
88 | .id_table = qla24xx_pci_tbl, | ||
89 | .probe = qla24xx_probe_one, | ||
90 | .remove = __devexit_p(qla24xx_remove_one), | ||
91 | }; | ||
92 | |||
93 | static int __init | ||
94 | qla24xx_init(void) | ||
95 | { | ||
96 | return pci_module_init(&qla24xx_pci_driver); | ||
97 | } | ||
98 | |||
99 | static void __exit | ||
100 | qla24xx_exit(void) | ||
101 | { | ||
102 | pci_unregister_driver(&qla24xx_pci_driver); | ||
103 | } | ||
104 | |||
105 | module_init(qla24xx_init); | ||
106 | module_exit(qla24xx_exit); | ||
107 | |||
108 | MODULE_AUTHOR("QLogic Corporation"); | ||
109 | MODULE_DESCRIPTION("QLogic ISP24xx FC-SCSI Host Bus Adapter driver"); | ||
110 | MODULE_LICENSE("GPL"); | ||
111 | MODULE_VERSION(QLA2XXX_VERSION); | ||
diff --git a/drivers/scsi/qla2xxx/ql2400_fw.c b/drivers/scsi/qla2xxx/ql2400_fw.c new file mode 100644 index 000000000000..5977795854f8 --- /dev/null +++ b/drivers/scsi/qla2xxx/ql2400_fw.c | |||
@@ -0,0 +1,12376 @@ | |||
1 | /* | ||
2 | * QLogic Fibre Channel HBA Driver | ||
3 | * Copyright (c) 2003-2005 QLogic Corporation | ||
4 | * | ||
5 | * See LICENSE.qla2xxx for copyright and licensing details. | ||
6 | */ | ||
7 | #include <linux/types.h> | ||
8 | |||
9 | /* | ||
10 | * Firmware Version 4.00.16 (08:09 Oct 26, 2005) | ||
11 | */ | ||
12 | |||
13 | #ifdef UNIQUE_FW_NAME | ||
14 | uint32_t fw2400_version = 4*1024+0; | ||
15 | #else | ||
16 | uint32_t risc_code_version = 4*1024+0; | ||
17 | #endif | ||
18 | |||
19 | #ifdef UNIQUE_FW_NAME | ||
20 | uint32_t fw2400_version_str[] = {4, 0,16}; | ||
21 | #else | ||
22 | uint32_t firmware_version[] = {4, 0,16}; | ||
23 | #endif | ||
24 | |||
25 | #ifdef UNIQUE_FW_NAME | ||
26 | #define fw2400_VERSION_STRING "4.00.16" | ||
27 | #else | ||
28 | #define FW_VERSION_STRING "4.00.16" | ||
29 | #endif | ||
30 | |||
31 | #ifdef UNIQUE_FW_NAME | ||
32 | uint32_t fw2400_addr01 = 0x00100000 ; | ||
33 | #else | ||
34 | uint32_t risc_code_addr01 = 0x00100000 ; | ||
35 | #endif | ||
36 | |||
37 | #ifdef UNIQUE_FW_NAME | ||
38 | uint32_t fw2400_code01[] = { | ||
39 | #else | ||
40 | uint32_t risc_code01[] = { | ||
41 | #endif | ||
42 | 0x0401f17c, 0x0010e000, 0x00100000, 0x0000ab4a, | ||
43 | 0x00000004, 0x00000000, 0x00000010, 0x00000002, | ||
44 | 0x00000003, 0x00000000, 0x20434f50, 0x59524947, | ||
45 | 0x48542032, 0x30303520, 0x514c4f47, 0x49432043, | ||
46 | 0x4f52504f, 0x52415449, 0x4f4e2020, 0x20495350, | ||
47 | 0x32347878, 0x20466972, 0x6d776172, 0x65202020, | ||
48 | 0x56657273, 0x696f6e20, 0x342e302e, 0x31362020, | ||
49 | 0x20202024, 0x00000000, 0x00000000, 0x00000000, | ||
50 | 0x00000000, 0x00000000, 0x00000000, 0x00000000, | ||
51 | 0x00000000, 0x00000000, 0x00000000, 0x00000000, | ||
52 | 0x00000000, 0x00000000, 0x00000000, 0x00000000, | ||
53 | 0x00000000, 0x00000000, 0x00000000, 0x00000000, | ||
54 | 0x42001800, 0x0010014f, 0x42002000, 0x0010b8fe, | ||
55 | 0x500c0800, 0x800c1800, 0x500c1000, 0x800c1800, | ||
56 | 0x54042000, 0x80102000, 0x80040800, 0x80081040, | ||
57 | 0x040207fc, 0x500c0800, 0x800409c0, 0x040207f6, | ||
58 | 0x44002000, 0x80102000, 0x40100000, 0x44040000, | ||
59 | 0x80000000, 0x44080000, 0x80000000, 0x440c0000, | ||
60 | 0x80000000, 0x44100000, 0x80000000, 0x44140000, | ||
61 | 0x80000000, 0x44180000, 0x80000000, 0x441c0000, | ||
62 | 0x80000000, 0x44200000, 0x80000000, 0x44240000, | ||
63 | 0x80000000, 0x44280000, 0x80000000, 0x442c0000, | ||
64 | 0x80000000, 0x44300000, 0x80000000, 0x44340000, | ||
65 | 0x80000000, 0x44380000, 0x80000000, 0x443c0000, | ||
66 | 0x80000000, 0x44400000, 0x80000000, 0x44440000, | ||
67 | 0x80000000, 0x44480000, 0x80000000, 0x444c0000, | ||
68 | 0x80000000, 0x44500000, 0x80000000, 0x44540000, | ||
69 | 0x80000000, 0x44580000, 0x80000000, 0x445c0000, | ||
70 | 0x80000000, 0x44600000, 0x80000000, 0x44640000, | ||
71 | 0x80000000, 0x44680000, 0x80000000, 0x446c0000, | ||
72 | 0x80000000, 0x44700000, 0x80000000, 0x44740000, | ||
73 | 0x80000000, 0x44780000, 0x80000000, 0x447c0000, | ||
74 | 0x80000000, 0x44800000, 0x80000000, 0x44840000, | ||
75 | 0x80000000, 0x44880000, 0x80000000, 0x448c0000, | ||
76 | 0x80000000, 0x44900000, 0x80000000, 0x44940000, | ||
77 | 0x80000000, 0x44980000, 0x80000000, 0x449c0000, | ||
78 | 0x80000000, 0x44a00000, 0x80000000, 0x44a40000, | ||
79 | 0x80000000, 0x44a80000, 0x80000000, 0x44ac0000, | ||
80 | 0x80000000, 0x44b00000, 0x80000000, 0x44b40000, | ||
81 | 0x80000000, 0x44b80000, 0x80000000, 0x44bc0000, | ||
82 | 0x80000000, 0x44c00000, 0x80000000, 0x44c40000, | ||
83 | 0x80000000, 0x44c80000, 0x80000000, 0x44cc0000, | ||
84 | 0x80000000, 0x44d00000, 0x80000000, 0x44d80000, | ||
85 | 0x80000000, 0x44d40000, 0x80000000, 0x44dc0000, | ||
86 | 0x80000000, 0x44e00000, 0x80000000, 0x44e40000, | ||
87 | 0x80000000, 0x44e80000, 0x80000000, 0x44ec0000, | ||
88 | 0x80000000, 0x44f00000, 0x80000000, 0x44f40000, | ||
89 | 0x80000000, 0x44f80000, 0x80000000, 0x44fc0000, | ||
90 | 0x80000000, 0x45000000, 0x80000000, 0x45040000, | ||
91 | 0x80000000, 0x45080000, 0x80000000, 0x450c0000, | ||
92 | 0x80000000, 0x45100000, 0x80000000, 0x45140000, | ||
93 | 0x80000000, 0x45180000, 0x80000000, 0x451c0000, | ||
94 | 0x80000000, 0x45200000, 0x80000000, 0x45240000, | ||
95 | 0x80000000, 0x45280000, 0x80000000, 0x452c0000, | ||
96 | 0x80000000, 0x45300000, 0x80000000, 0x45340000, | ||
97 | 0x80000000, 0x45380000, 0x80000000, 0x453c0000, | ||
98 | 0x80000000, 0x45400000, 0x80000000, 0x45440000, | ||
99 | 0x80000000, 0x45480000, 0x80000000, 0x454c0000, | ||
100 | 0x80000000, 0x45500000, 0x80000000, 0x45540000, | ||
101 | 0x80000000, 0x45580000, 0x80000000, 0x455c0000, | ||
102 | 0x80000000, 0x45600000, 0x80000000, 0x45640000, | ||
103 | 0x80000000, 0x45680000, 0x80000000, 0x456c0000, | ||
104 | 0x80000000, 0x45700000, 0x80000000, 0x45740000, | ||
105 | 0x80000000, 0x45780000, 0x80000000, 0x457c0000, | ||
106 | 0x80000000, 0x45800000, 0x80000000, 0x45840000, | ||
107 | 0x80000000, 0x45880000, 0x80000000, 0x458c0000, | ||
108 | 0x80000000, 0x45900000, 0x80000000, 0x45940000, | ||
109 | 0x80000000, 0x45980000, 0x80000000, 0x459c0000, | ||
110 | 0x80000000, 0x45a00000, 0x80000000, 0x45a40000, | ||
111 | 0x80000000, 0x45a80000, 0x80000000, 0x45ac0000, | ||
112 | 0x80000000, 0x45b00000, 0x80000000, 0x45b40000, | ||
113 | 0x80000000, 0x45b80000, 0x80000000, 0x45bc0000, | ||
114 | 0x80000000, 0x45c00000, 0x80000000, 0x45c40000, | ||
115 | 0x80000000, 0x45c80000, 0x80000000, 0x45cc0000, | ||
116 | 0x80000000, 0x45d00000, 0x80000000, 0x45d40000, | ||
117 | 0x80000000, 0x45d80000, 0x80000000, 0x45dc0000, | ||
118 | 0x80000000, 0x45e00000, 0x80000000, 0x45e40000, | ||
119 | 0x80000000, 0x45e80000, 0x80000000, 0x45ec0000, | ||
120 | 0x80000000, 0x45f00000, 0x80000000, 0x45f40000, | ||
121 | 0x80000000, 0x45f80000, 0x80000000, 0x45fc0000, | ||
122 | 0x4a03c020, 0x00004000, 0x4a03c011, 0x40000010, | ||
123 | 0x04006000, 0x4203e000, 0x40000000, 0x59e00017, | ||
124 | 0x8c000508, 0x04000003, 0x4a03c017, 0x00000000, | ||
125 | 0x4203e000, 0x30000001, 0x0401f000, 0x0000bf00, | ||
126 | 0x00000080, 0x0000bfe0, 0x00000020, 0x0000ff00, | ||
127 | 0x00000080, 0x0000ffd0, 0x00000030, 0x00007100, | ||
128 | 0x00000010, 0x00007200, 0x00000008, 0x00007209, | ||
129 | 0x00000007, 0x00007300, 0x00000008, 0x00007309, | ||
130 | 0x00000007, 0x00007400, 0x00000008, 0x00007409, | ||
131 | 0x00000007, 0x00007600, 0x000000b0, 0x00007700, | ||
132 | 0x00000040, 0x00003000, 0x00000070, 0x00004000, | ||
133 | 0x000000c0, 0x00006000, 0x00000050, 0x00006100, | ||
134 | 0x00000010, 0x00006130, 0x00000010, 0x00006150, | ||
135 | 0x00000010, 0x00006170, 0x00000010, 0x00006190, | ||
136 | 0x00000010, 0x000061b0, 0x00000010, 0x00000000, | ||
137 | 0x42000000, 0x00000100, 0x4202f000, 0x00000000, | ||
138 | 0x42000800, 0x00021f00, 0x45780800, 0x80040800, | ||
139 | 0x80000040, 0x040207fd, 0x4203f000, 0x00021fff, | ||
140 | 0x40000000, 0x4203e000, 0x90000100, 0x40000000, | ||
141 | 0x0201f800, 0x001006fd, 0x42000000, 0x00001000, | ||
142 | 0x50000000, 0x82000480, 0x24320002, 0x04020015, | ||
143 | 0x42000800, 0x00000064, 0x80040840, 0x04000007, | ||
144 | 0x4a030000, 0x00000001, 0x40000000, 0x59800000, | ||
145 | 0x8c000500, 0x040007f9, 0x04000008, 0x42000800, | ||
146 | 0x00007a17, 0x50040000, 0x8c00050e, 0x04020003, | ||
147 | 0x8400054e, 0x44000800, 0x4a030000, 0x00000000, | ||
148 | 0x4a03c020, 0x00000004, 0x4203e000, 0x6000000f, | ||
149 | 0x59e00023, 0x8c000500, 0x04020039, 0x42000000, | ||
150 | 0x00100001, 0x50000800, 0x82040c00, 0x00000004, | ||
151 | 0x58042003, 0x42001000, 0xffffffff, 0x0201f800, | ||
152 | 0x001006f4, 0x0402004e, 0x58042003, 0x42001000, | ||
153 | 0xffffffff, 0x0201f800, 0x001006f4, 0x04020048, | ||
154 | 0x58042003, 0x42001000, 0x00ffffff, 0x0201f800, | ||
155 | 0x001006f4, 0x04020042, 0x58042003, 0x42001000, | ||
156 | 0x00ffffff, 0x0201f800, 0x001006f4, 0x0402003c, | ||
157 | 0x42000000, 0x00100001, 0x5000a000, 0x8250a400, | ||
158 | 0x00000004, 0x4200a800, 0x00020000, 0x5850b003, | ||
159 | 0x0201f800, 0x0010ab17, 0x8250a400, 0x00000005, | ||
160 | 0x4a0370e8, 0x00000003, 0x4200a800, 0x0000c000, | ||
161 | 0x5850b003, 0x0201f800, 0x0010ab17, 0x4a0378e8, | ||
162 | 0x00000003, 0x4200a800, 0x00008000, 0x5850b003, | ||
163 | 0x0201f800, 0x0010ab17, 0x0401f02b, 0x42000800, | ||
164 | 0x00020000, 0x58042003, 0x42001000, 0xffffffff, | ||
165 | 0x0201f800, 0x001006f4, 0x04020019, 0x4a0370e8, | ||
166 | 0x00000003, 0x42000800, 0x0000c000, 0x58042003, | ||
167 | 0x82102500, 0x00ffffff, 0x42001000, 0x00ffffff, | ||
168 | 0x0201f800, 0x001006f4, 0x0402000d, 0x4a0378e8, | ||
169 | 0x00000003, 0x42000800, 0x00008000, 0x58042003, | ||
170 | 0x82102500, 0x00ffffff, 0x42001000, 0x00ffffff, | ||
171 | 0x0201f800, 0x001006f4, 0x0400000b, 0x4a03c020, | ||
172 | 0x00004010, 0x4a03c011, 0x40100011, 0x04006000, | ||
173 | 0x4203e000, 0x40000000, 0x4203e000, 0x30000001, | ||
174 | 0x0401f000, 0x0201f800, 0x00100791, 0x42001000, | ||
175 | 0x0010ab4a, 0x40080000, 0x80140480, 0x82001d00, | ||
176 | 0xffffff00, 0x04020003, 0x40001800, 0x0401f003, | ||
177 | 0x42001800, 0x000000ff, 0x480bc840, 0x480fc842, | ||
178 | 0x04011000, 0x400c0000, 0x80081400, 0x40140000, | ||
179 | 0x80080580, 0x040207f0, 0x4817500d, 0x45782800, | ||
180 | 0x59c40000, 0x82000500, 0xffff0000, 0x80000120, | ||
181 | 0x82000580, 0x00002422, 0x04020005, 0x59a80005, | ||
182 | 0x8400054e, 0x48035005, 0x0401f008, 0x59e00003, | ||
183 | 0x82000500, 0x00030000, 0x04000004, 0x59a80005, | ||
184 | 0x84000554, 0x48035005, 0x42000800, 0x00000040, | ||
185 | 0x59a80005, 0x8c000514, 0x0402000e, 0x42000800, | ||
186 | 0x00001000, 0x82141480, 0x0017ffff, 0x04021009, | ||
187 | 0x80040902, 0x82141480, 0x0013ffff, 0x04021005, | ||
188 | 0x80040902, 0x82141480, 0x0011ffff, 0x04001b8d, | ||
189 | 0x4807500e, 0x42001000, 0x00000024, 0x0201f800, | ||
190 | 0x00106681, 0x82040c00, 0x0010d1c0, 0x4807500b, | ||
191 | 0x4a03c810, 0x00100000, 0x4a03c811, 0x0010ab4a, | ||
192 | 0x4a03c829, 0x00000004, 0x59e40001, 0x82000540, | ||
193 | 0x0003001d, 0x4803c801, 0x4a03c014, 0x001c001c, | ||
194 | 0x42001000, 0x0000001c, 0x0201f800, 0x001006e2, | ||
195 | 0x4202c000, 0x0010d1c0, 0x59aab00b, 0x59aaa00b, | ||
196 | 0x59aaa80b, 0x59aac80e, 0x49675069, 0x59a8000b, | ||
197 | 0x4803500c, 0x0401fbf5, 0x0201f800, 0x00107903, | ||
198 | 0x0201f800, 0x001007be, 0x0201f800, 0x00100807, | ||
199 | 0x0201f800, 0x00101a05, 0x0201f800, 0x00101354, | ||
200 | 0x0201f800, 0x00100969, 0x0201f800, 0x00101354, | ||
201 | 0x0201f800, 0x00100f4c, 0x0201f800, 0x001066c1, | ||
202 | 0x0401fb1a, 0x0201f800, 0x0010220e, 0x0201f800, | ||
203 | 0x001053bb, 0x0201f800, 0x00104c90, 0x0201f800, | ||
204 | 0x00106194, 0x0201f800, 0x00105f28, 0x0201f800, | ||
205 | 0x001013ed, 0x0201f800, 0x0010126f, 0x4203e000, | ||
206 | 0xf0000001, 0x42000000, 0x00001000, 0x50000000, | ||
207 | 0x82000480, 0x24220001, 0x04000016, 0x59e00002, | ||
208 | 0x8c00051e, 0x42000000, 0x7ffe00fe, 0x04020003, | ||
209 | 0x42000000, 0x7ffe01fe, 0x50000800, 0x48075058, | ||
210 | 0x80040920, 0x82040580, 0x0000013a, 0x04000004, | ||
211 | 0x82040580, 0x0000013b, 0x04020006, 0x59a80005, | ||
212 | 0x84000552, 0x48035005, 0x4a0378e4, 0x000c0000, | ||
213 | 0x4a03c018, 0x0000000f, 0x4203e000, 0x20000511, | ||
214 | 0x4203e000, 0x50010000, 0x4a03c020, 0x00000000, | ||
215 | 0x04027013, 0x59e00020, 0x82000580, 0x00000002, | ||
216 | 0x0402000f, 0x4a03c020, 0x00004000, 0x4a03c011, | ||
217 | 0x40000010, 0x04006000, 0x4203e000, 0x40000000, | ||
218 | 0x59e00017, 0x8c000508, 0x04000003, 0x4a03c017, | ||
219 | 0x00000000, 0x4203e000, 0x30000001, 0x4202d800, | ||
220 | 0x00000000, 0x4203e000, 0xb0600000, 0x59a80005, | ||
221 | 0x42000800, 0x00000002, 0x8c000512, 0x04020007, | ||
222 | 0x42000800, 0x0000000f, 0x8c000514, 0x04020003, | ||
223 | 0x42000800, 0x00000001, 0x4007f800, 0x59a80005, | ||
224 | 0x8c000514, 0x02020000, 0x00020004, 0x59e00003, | ||
225 | 0x82000500, 0x00030000, 0x82000580, 0x00000000, | ||
226 | 0x04020af8, 0x0201f000, 0x00020004, 0x4df00000, | ||
227 | 0x4203e000, 0x50000000, 0x416c0000, 0x82000c80, | ||
228 | 0x00000008, 0x04021aef, 0x0c01f804, 0x5c03e000, | ||
229 | 0x0201f000, 0x00020008, 0x001002f7, 0x0010030a, | ||
230 | 0x001003d7, 0x001002f6, 0x00100452, 0x001002f6, | ||
231 | 0x001002f6, 0x00100593, 0x0401fae2, 0x42000800, | ||
232 | 0x0010b4a4, 0x5804001d, 0x4803c857, 0x8c000500, | ||
233 | 0x0400000d, 0x84000500, 0x4800081d, 0x4202d800, | ||
234 | 0x00000004, 0x0401fbd3, 0x49f3c857, 0x5c000800, | ||
235 | 0x5c000000, 0x82000540, 0x00003e00, 0x4c000000, | ||
236 | 0x4c040000, 0x1c01f000, 0x0401fbbd, 0x0201f800, | ||
237 | 0x0010513b, 0x04000009, 0x0201f800, 0x00105151, | ||
238 | 0x0402002e, 0x59c40006, 0x82000540, 0x000000c0, | ||
239 | 0x48038806, 0x0401f029, 0x0201f800, 0x001050a2, | ||
240 | 0x836c0580, 0x00000001, 0x040200bc, 0x59a80017, | ||
241 | 0x82000580, 0x00000009, 0x040200b8, 0x497b5010, | ||
242 | 0x4a038893, 0x00000001, 0x42001000, 0x000000f0, | ||
243 | 0x0201f800, 0x0010193d, 0x0201f800, 0x00105149, | ||
244 | 0x59c41006, 0x04020006, 0x82081540, 0x000000f1, | ||
245 | 0x82081500, 0xbbffffff, 0x0401f003, 0x82081540, | ||
246 | 0x440000f1, 0x480b8806, 0x0201f800, 0x0010609e, | ||
247 | 0x4a0378e4, 0x00002000, 0x42000000, 0x0010b83a, | ||
248 | 0x0201f800, 0x0010aa47, 0x42001000, 0x00008030, | ||
249 | 0x497b5013, 0x0401f035, 0x0201f800, 0x00103b38, | ||
250 | 0x59c400a4, 0x82000500, 0x0000000f, 0x82000480, | ||
251 | 0x00000007, 0x04021091, 0x0201f800, 0x0010609e, | ||
252 | 0x59c400a3, 0x82000500, 0xffefffff, 0x480388a3, | ||
253 | 0x59a8004b, 0x800001c0, 0x04020004, 0x0201f800, | ||
254 | 0x00104139, 0x0401f085, 0x59a80015, 0x84000546, | ||
255 | 0x48035015, 0x0201f800, 0x00105141, 0x59c41006, | ||
256 | 0x04020006, 0x82081540, 0x44000001, 0x82081500, | ||
257 | 0xffffff0f, 0x0401f003, 0x82081540, 0x440000f1, | ||
258 | 0x480b8806, 0x497b9005, 0x4a038802, 0x0000ffff, | ||
259 | 0x4a0378e4, 0x00003000, 0x42000000, 0x0010b80c, | ||
260 | 0x0201f800, 0x0010aa47, 0x59a81010, 0x42000800, | ||
261 | 0x00000003, 0x0201f800, 0x00106c78, 0x42001000, | ||
262 | 0x00008010, 0x59a8180a, 0x0201f800, 0x00103a3e, | ||
263 | 0x0201f800, 0x00101815, 0x59a80805, 0x82040d00, | ||
264 | 0xffffffdf, 0x48075005, 0x0201f800, 0x0010483d, | ||
265 | 0x0201f800, 0x0010513b, 0x0400000a, 0x0201f800, | ||
266 | 0x0010413e, 0x04000007, 0x4a035013, 0x00000001, | ||
267 | 0x497b5021, 0x0201f800, 0x00103c80, 0x0401f04f, | ||
268 | 0x0201f800, 0x001048ec, 0x04000005, 0x59c41002, | ||
269 | 0x8408150c, 0x480b8802, 0x0401f012, 0x0201f800, | ||
270 | 0x0010513b, 0x04020006, 0x59a8001d, 0x80000540, | ||
271 | 0x02000800, 0x0010930f, 0x0401f00a, 0x0201f800, | ||
272 | 0x0010930f, 0x59a80026, 0x8c000506, 0x04020005, | ||
273 | 0x59a8001d, 0x80000540, 0x02020800, 0x00104245, | ||
274 | 0x497b5028, 0x497b5027, 0x497b5018, 0x0201f800, | ||
275 | 0x0010513b, 0x59a81026, 0x0402000a, 0x0201f800, | ||
276 | 0x0010162a, 0x80001580, 0x59a8002a, 0x82000500, | ||
277 | 0xffff0000, 0x80040d40, 0x4807502a, 0x0401f005, | ||
278 | 0x59a8002a, 0x82000500, 0xffff0000, 0x4803502a, | ||
279 | 0x599c0017, 0x8c00050a, 0x04000002, 0x84081544, | ||
280 | 0x480b5026, 0x0201f800, 0x0010513b, 0x04000004, | ||
281 | 0x0201f800, 0x0010162a, 0x48078880, 0x42001000, | ||
282 | 0x00000005, 0x0201f800, 0x001070b0, 0x497b5028, | ||
283 | 0x497b501b, 0x4a03501c, 0x0000ffff, 0x4a0378e4, | ||
284 | 0x000000c0, 0x4202d800, 0x00000002, 0x0201f800, | ||
285 | 0x0010513b, 0x04000007, 0x59a80026, 0x82000500, | ||
286 | 0x0000000c, 0x82000580, 0x00000004, 0x04000003, | ||
287 | 0x0201f800, 0x00101e45, 0x1c01f000, 0x59a8001c, | ||
288 | 0x82000580, 0x0000ffff, 0x04000004, 0x0201f800, | ||
289 | 0x00101e45, 0x0401f074, 0x59a80026, 0x8c00050a, | ||
290 | 0x04020003, 0x8c000506, 0x0400001c, 0x8c000500, | ||
291 | 0x0400001a, 0x4a038802, 0x0000ffbf, 0x8c000502, | ||
292 | 0x04000016, 0x599c0018, 0x8c000516, 0x04020010, | ||
293 | 0x59a80027, 0x82000580, 0x0000ffff, 0x0400000c, | ||
294 | 0x0201f800, 0x00101f9a, 0x59a80026, 0x8c000504, | ||
295 | 0x0402005d, 0x42001000, 0x00000003, 0x417a5800, | ||
296 | 0x0201f800, 0x00101fbf, 0x0401f057, 0x59a80028, | ||
297 | 0x80000540, 0x04020054, 0x59a80026, 0x8c000508, | ||
298 | 0x04020005, 0x59a8001b, 0x80000540, 0x0402004e, | ||
299 | 0x0401f003, 0x8c000516, 0x0400004b, 0x0201f800, | ||
300 | 0x001048ec, 0x04020048, 0x599c0018, 0x8c000516, | ||
301 | 0x04020004, 0x0201f800, 0x00104c51, 0x04020042, | ||
302 | 0x599c0017, 0x8c00050a, 0x0400000d, 0x4200b000, | ||
303 | 0x000007f0, 0x417a8800, 0x0201f800, 0x00020245, | ||
304 | 0x04020004, 0x59340200, 0x8c00051a, 0x04020036, | ||
305 | 0x81468800, 0x8058b040, 0x040207f8, 0x4a038802, | ||
306 | 0x0000ffff, 0x42001800, 0x0010b4eb, 0x0401fb8c, | ||
307 | 0x42001800, 0x0010b4f8, 0x0401fb89, 0x59a80005, | ||
308 | 0x84000502, 0x48035005, 0x4a0378e4, 0x00000080, | ||
309 | 0x4202d800, 0x00000003, 0x4a03501c, 0x0000ffff, | ||
310 | 0x0401fa7f, 0x80000580, 0x0201f800, 0x00101590, | ||
311 | 0x599c0018, 0x8c000516, 0x04000004, 0x0201f800, | ||
312 | 0x00103b10, 0x0401f009, 0x42001800, 0x0000ffff, | ||
313 | 0x42002000, 0x00000006, 0x42003000, 0x00000000, | ||
314 | 0x0201f800, 0x00103aae, 0x0201f800, 0x00105151, | ||
315 | 0x0400000b, 0x59c40006, 0x0201f800, 0x0010513b, | ||
316 | 0x04000004, 0x82000500, 0xffffff0f, 0x0401f003, | ||
317 | 0x82000500, 0xfbffffff, 0x48038806, 0x0201f800, | ||
318 | 0x00106f36, 0x1c01f000, 0x4c040000, 0x4c080000, | ||
319 | 0x4c100000, 0x59a8003e, 0x82000c80, 0x00000004, | ||
320 | 0x04021980, 0x0c01f805, 0x5c002000, 0x5c001000, | ||
321 | 0x5c000800, 0x1c01f000, 0x00100462, 0x001004ea, | ||
322 | 0x00100516, 0x00100577, 0x42000000, 0x00000001, | ||
323 | 0x0201f800, 0x00101590, 0x0201f800, 0x0010609e, | ||
324 | 0x59c408a3, 0x82040d00, 0xfffffff7, 0x480788a3, | ||
325 | 0x0201f800, 0x00105141, 0x0400000e, 0x0201f800, | ||
326 | 0x00105151, 0x0400000b, 0x0201f800, 0x00105149, | ||
327 | 0x04020964, 0x59c400a3, 0x84000532, 0x84000570, | ||
328 | 0x480388a3, 0x4a038808, 0x00000008, 0x0401f010, | ||
329 | 0x59c400a3, 0x84000530, 0x82000500, 0xbf7fffff, | ||
330 | 0x480388a3, 0x42000800, 0x000000f8, 0x0201f800, | ||
331 | 0x00104200, 0x59c400a3, 0x82000540, 0x00018000, | ||
332 | 0x8400051c, 0x480388a3, 0x497b8808, 0x59c40006, | ||
333 | 0x82000500, 0xfbffff0e, 0x48038806, 0x497b2822, | ||
334 | 0x497b2823, 0x42000800, 0x000001f4, 0x42001000, | ||
335 | 0x00100591, 0x0201f800, 0x00105f83, 0x59c40805, | ||
336 | 0x42001000, 0x00000001, 0x0201f800, 0x0010193d, | ||
337 | 0x0201f800, 0x0010163b, 0x0402000a, 0x42000000, | ||
338 | 0x00000001, 0x0201f800, 0x0010188c, 0x42000000, | ||
339 | 0x00000001, 0x0201f800, 0x00101821, 0x0401f022, | ||
340 | 0x0201f800, 0x00101642, 0x04020008, 0x41780000, | ||
341 | 0x0201f800, 0x0010188c, 0x41780000, 0x0201f800, | ||
342 | 0x00101821, 0x0401f018, 0x0201f800, 0x00101649, | ||
343 | 0x0402000a, 0x42000000, 0x00000002, 0x0201f800, | ||
344 | 0x0010188c, 0x42000000, 0x00000002, 0x0201f800, | ||
345 | 0x00101821, 0x0401f00c, 0x0201f800, 0x00101650, | ||
346 | 0x04020918, 0x59a80049, 0x800001c0, 0x04000006, | ||
347 | 0x0201f800, 0x00101656, 0x4a03503e, 0x00000001, | ||
348 | 0x0401f021, 0x0201f800, 0x00101927, 0x4a03503e, | ||
349 | 0x00000001, 0x0201f800, 0x00105141, 0x0400000c, | ||
350 | 0x0201f800, 0x00105151, 0x04000009, 0x0201f800, | ||
351 | 0x00105149, 0x04020903, 0x4a035033, 0x00000001, | ||
352 | 0x0201f800, 0x001050a2, 0x0401f00f, 0x59c400a4, | ||
353 | 0x82000500, 0x0000000f, 0x82000580, 0x00000008, | ||
354 | 0x04000003, 0x4a038805, 0x04000000, 0x59c400a3, | ||
355 | 0x82000540, 0x0001c000, 0x480388a3, 0x84000520, | ||
356 | 0x480388a3, 0x1c01f000, 0x0401f8a3, 0x04020004, | ||
357 | 0x4a03503e, 0x00000003, 0x0401f027, 0x0201f800, | ||
358 | 0x00101650, 0x04020011, 0x59a80049, 0x800001c0, | ||
359 | 0x0400000e, 0x0201f800, 0x00101656, 0x59a80048, | ||
360 | 0x8c00051e, 0x0400001c, 0x0201f800, 0x00105149, | ||
361 | 0x04020009, 0x4a035033, 0x00000001, 0x0201f800, | ||
362 | 0x001050a2, 0x0401f004, 0x0201f800, 0x001018d3, | ||
363 | 0x04020011, 0x0201f800, 0x00101815, 0x4a03503e, | ||
364 | 0x00000002, 0x497b5049, 0x59c400a3, 0x84000520, | ||
365 | 0x480388a3, 0x497b2822, 0x497b2823, 0x42000800, | ||
366 | 0x0000002d, 0x42001000, 0x00100591, 0x0201f800, | ||
367 | 0x00105f83, 0x1c01f000, 0x0401f877, 0x04020004, | ||
368 | 0x4a03503e, 0x00000003, 0x0401f05b, 0x4a038805, | ||
369 | 0x000000f0, 0x0201f800, 0x001018d3, 0x04020050, | ||
370 | 0x0201f800, 0x00105149, 0x04000044, 0x59c400a4, | ||
371 | 0x82000500, 0x0000000f, 0x82000580, 0x00000008, | ||
372 | 0x04000020, 0x59c40005, 0x8c000534, 0x0402001d, | ||
373 | 0x59940022, 0x82000580, 0x00000001, 0x04020046, | ||
374 | 0x0201f800, 0x00105151, 0x04020043, 0x4a038805, | ||
375 | 0x000000f0, 0x0201f800, 0x00105196, 0x4a035032, | ||
376 | 0x0000aaaa, 0x4a035033, 0x00000000, 0x59c408a3, | ||
377 | 0x82040d40, 0x00000008, 0x480788a3, 0x4202d800, | ||
378 | 0x00000001, 0x4a03503e, 0x00000000, 0x4a038805, | ||
379 | 0x00000001, 0x497b2822, 0x497b2823, 0x0401f01f, | ||
380 | 0x0201f800, 0x00105151, 0x04020007, 0x59a80032, | ||
381 | 0x82000580, 0x0000aaaa, 0x04020003, 0x4a035010, | ||
382 | 0x00ffffff, 0x497b5032, 0x59c40006, 0x82000540, | ||
383 | 0x04000001, 0x48038806, 0x59a80805, 0x8c040d06, | ||
384 | 0x04020005, 0x59c408a3, 0x82040d40, 0x00000008, | ||
385 | 0x480788a3, 0x4202d800, 0x00000001, 0x4a03503e, | ||
386 | 0x00000000, 0x4a038805, 0x00000001, 0x497b2822, | ||
387 | 0x497b2823, 0x0401f010, 0x59c40005, 0x82000500, | ||
388 | 0x000000c0, 0x0400000c, 0x59c40006, 0x82000540, | ||
389 | 0x000000f1, 0x48038806, 0x0401f7ef, 0x0201f800, | ||
390 | 0x00101650, 0x04020004, 0x59a80049, 0x800001c0, | ||
391 | 0x040207a4, 0x497b8885, 0x1c01f000, 0x4803c856, | ||
392 | 0x42000000, 0x00000001, 0x0201f800, 0x00101590, | ||
393 | 0x4a03503e, 0x00000000, 0x0201f800, 0x00101650, | ||
394 | 0x0402000b, 0x59a80052, 0x800001c0, 0x04000004, | ||
395 | 0x80000040, 0x48035052, 0x04020005, 0x4a035052, | ||
396 | 0x0000000a, 0x4a035049, 0x00000001, 0x497b8885, | ||
397 | 0x0401f0ed, 0x59940022, 0x59940823, 0x80040540, | ||
398 | 0x1c01f000, 0x497b2823, 0x1c01f000, 0x4c080000, | ||
399 | 0x42001000, 0x000000f0, 0x0201f800, 0x0010193d, | ||
400 | 0x5c001000, 0x1c01f000, 0x4a03505c, 0x00000004, | ||
401 | 0x4a03505d, 0x00000000, 0x4a03505e, 0x00000010, | ||
402 | 0x4a03505f, 0x00000002, 0x4a035010, 0x00ffffff, | ||
403 | 0x0201f800, 0x0010930f, 0x4a03502a, 0x20200000, | ||
404 | 0x4a03502b, 0x88000200, 0x4a03502c, 0x00ff001f, | ||
405 | 0x4a03502d, 0x000007d0, 0x4a03502e, 0x80000000, | ||
406 | 0x4a03502f, 0x00000200, 0x4a035030, 0x00ff0000, | ||
407 | 0x4a035031, 0x00010000, 0x4a03503a, 0x514c4f47, | ||
408 | 0x4a03503b, 0x49432020, 0x1c01f000, 0x4d440000, | ||
409 | 0x417a8800, 0x41780800, 0x0201f800, 0x00020245, | ||
410 | 0x04020005, 0x0201f800, 0x001049e7, 0x04020002, | ||
411 | 0x80040800, 0x81468800, 0x83440580, 0x000007f0, | ||
412 | 0x040207f6, 0x5c028800, 0x1c01f000, 0x4803c857, | ||
413 | 0x5c000000, 0x4c000000, 0x4803c857, 0x0401f809, | ||
414 | 0x485fc857, 0x4203e000, 0x50000000, 0x5c000000, | ||
415 | 0x4d780000, 0x4200b800, 0x00008002, 0x0401f006, | ||
416 | 0x485fc857, 0x4203e000, 0x50000000, 0x4200b800, | ||
417 | 0x00008002, 0x04006000, 0x4c000000, 0x4c040000, | ||
418 | 0x59bc00ea, 0x82000500, 0x00000007, 0x82000580, | ||
419 | 0x00000001, 0x04020005, 0x42000800, 0x00000000, | ||
420 | 0x0201f800, 0x00106c6c, 0x5c000800, 0x4807c025, | ||
421 | 0x80040920, 0x4807c026, 0x5c000000, 0x4803c023, | ||
422 | 0x80000120, 0x4803c024, 0x5c000000, 0x4803c857, | ||
423 | 0x4803c021, 0x80000120, 0x4803c022, 0x41f80000, | ||
424 | 0x4803c027, 0x80000120, 0x4803c028, 0x42000000, | ||
425 | 0x00001000, 0x50000000, 0x82000480, 0x24320001, | ||
426 | 0x4803c857, 0x0400104f, 0x42000800, 0x00000064, | ||
427 | 0x80040840, 0x04000007, 0x4a030000, 0x00000001, | ||
428 | 0x40000000, 0x59800000, 0x8c000500, 0x040007f9, | ||
429 | 0x04000042, 0x42000800, 0x0010c1a3, 0x46000800, | ||
430 | 0xfaceface, 0x80040800, 0x42001000, 0x00007a00, | ||
431 | 0x58080013, 0x44000800, 0x80040800, 0x58080019, | ||
432 | 0x44000800, 0x80040800, 0x5808001a, 0x44000800, | ||
433 | 0x80040800, 0x5808001b, 0x44000800, 0x80040800, | ||
434 | 0x5808001c, 0x44000800, 0x80040800, 0x5808001f, | ||
435 | 0x44000800, 0x80040800, 0x42001000, 0x00007a40, | ||
436 | 0x42001800, 0x0000000b, 0x50080000, 0x44000800, | ||
437 | 0x80081000, 0x80040800, 0x800c1840, 0x040207fb, | ||
438 | 0x42001800, 0x00000003, 0x42001000, 0x00007b00, | ||
439 | 0x480c1003, 0x58080005, 0x44000800, 0x80040800, | ||
440 | 0x800c1840, 0x040217fb, 0x42001000, 0x00007c00, | ||
441 | 0x58080002, 0x44000800, 0x80040800, 0x58080003, | ||
442 | 0x44000800, 0x80040800, 0x58080020, 0x44000800, | ||
443 | 0x80040800, 0x58080021, 0x44000800, 0x80040800, | ||
444 | 0x58080022, 0x44000800, 0x80040800, 0x58080023, | ||
445 | 0x44000800, 0x80040800, 0x4a030000, 0x00000000, | ||
446 | 0x485fc020, 0x905cb9c0, 0x825cbd40, 0x00000012, | ||
447 | 0x485fc011, 0x4203e000, 0x40000000, 0x4202d800, | ||
448 | 0x00000005, 0x59e00017, 0x8c000508, 0x04000003, | ||
449 | 0x4a03c017, 0x00000002, 0x4203e000, 0x30000001, | ||
450 | 0x0401f81a, 0x0401f7ff, 0x4a03c850, 0x0010c1bf, | ||
451 | 0x4a03c851, 0x0010d1be, 0x4a03c853, 0x00000800, | ||
452 | 0x4a03c855, 0x0001eb5a, 0x59e40001, 0x82000540, | ||
453 | 0x00003f00, 0x4803c801, 0x4a03b104, 0x70000002, | ||
454 | 0x4a03a804, 0x70000002, 0x4a03b004, 0x70000002, | ||
455 | 0x42000000, 0x0010b8ec, 0x49780001, 0x49780002, | ||
456 | 0x1c01f000, 0x1c01f000, 0x59a8006b, 0x8c000530, | ||
457 | 0x040207fe, 0x4c080000, 0x42001000, 0x00000004, | ||
458 | 0x0401f862, 0x5c001000, 0x4201d000, 0x00028b0a, | ||
459 | 0x0201f800, 0x0010608e, 0x4c080000, 0x42001000, | ||
460 | 0x00000008, 0x0401f859, 0x5c001000, 0x4201d000, | ||
461 | 0x00028b0a, 0x0201f800, 0x0010608e, 0x4c080000, | ||
462 | 0x42001000, 0x00000010, 0x0401f850, 0x5c001000, | ||
463 | 0x4201d000, 0x00028b0a, 0x0201f800, 0x0010608e, | ||
464 | 0x0401f7e2, 0x8c00050c, 0x59a8086b, 0x04020003, | ||
465 | 0x84040d30, 0x0401f006, 0x84040d70, 0x4807506b, | ||
466 | 0x42001000, 0x00000000, 0x0401f040, 0x4807506b, | ||
467 | 0x836c0500, 0x00000007, 0x0c01f001, 0x001006e1, | ||
468 | 0x001006c7, 0x001006c7, 0x001006af, 0x001006d4, | ||
469 | 0x001006c7, 0x001006c7, 0x001006d4, 0x59a80005, | ||
470 | 0x8c000514, 0x04020013, 0x59c40801, 0x82040d00, | ||
471 | 0x00018000, 0x82040580, 0x00010000, 0x0400000a, | ||
472 | 0x82040580, 0x00008000, 0x04000004, 0x42001000, | ||
473 | 0x42004000, 0x0401f006, 0x42001000, 0x22002000, | ||
474 | 0x0401f003, 0x42001000, 0x12001000, 0x0401f025, | ||
475 | 0x42001000, 0x00001004, 0x0401f022, 0x59a80005, | ||
476 | 0x8c000514, 0x04020008, 0x59a8006b, 0x8c000534, | ||
477 | 0x04020004, 0x42001000, 0x74057005, 0x0401f819, | ||
478 | 0x1c01f000, 0x42001000, 0x00002008, 0x0401f7fc, | ||
479 | 0x59a8006b, 0x8c000534, 0x0402000a, 0x59a80005, | ||
480 | 0x8c000514, 0x04000004, 0x42001000, 0x24052005, | ||
481 | 0x0401f00c, 0x42001000, 0x74057005, 0x0401f009, | ||
482 | 0x1c01f000, 0x1c01f000, 0x82081500, 0x0000001c, | ||
483 | 0x82081540, 0x001c0000, 0x480bc013, 0x1c01f000, | ||
484 | 0x59a8006b, 0x8c000530, 0x04000002, 0x84081570, | ||
485 | 0x480b506b, 0x8c000530, 0x04020005, 0x82081500, | ||
486 | 0x00007000, 0x80081114, 0x0401fff0, 0x1c01f000, | ||
487 | 0x41780000, 0x50041800, 0x800c0400, 0x80040800, | ||
488 | 0x80102040, 0x040207fc, 0x80080500, 0x80000540, | ||
489 | 0x1c01f000, 0x4202f000, 0x00000000, 0x41780000, | ||
490 | 0x41780800, 0x41781000, 0x41781800, 0x41782000, | ||
491 | 0x41782800, 0x41783000, 0x41783800, 0x41784000, | ||
492 | 0x41784800, 0x41785000, 0x41785800, 0x41786000, | ||
493 | 0x41786800, 0x41787000, 0x41787800, 0x41788000, | ||
494 | 0x41788800, 0x41789000, 0x41789800, 0x4178a000, | ||
495 | 0x4178a800, 0x4178b000, 0x4178b800, 0x4178c000, | ||
496 | 0x4178c800, 0x4178d000, 0x4178d800, 0x4178e000, | ||
497 | 0x4178e800, 0x4178f000, 0x4178f800, 0x41790000, | ||
498 | 0x41790800, 0x41791000, 0x41791800, 0x41792000, | ||
499 | 0x41792800, 0x41793000, 0x41793800, 0x41794000, | ||
500 | 0x41794800, 0x41795000, 0x41795800, 0x41796000, | ||
501 | 0x41796800, 0x41797000, 0x41797800, 0x41798000, | ||
502 | 0x41798800, 0x42019000, 0x0010b537, 0x42019800, | ||
503 | 0x0010b50e, 0x4179a000, 0x4179b000, 0x4179a800, | ||
504 | 0x4179b800, 0x4179c800, 0x4179c000, 0x4179d000, | ||
505 | 0x4179d800, 0x4179e000, 0x4179e800, 0x4179f000, | ||
506 | 0x4179f800, 0x417a0000, 0x417a0800, 0x417a1000, | ||
507 | 0x417a1800, 0x417a2000, 0x42022800, 0x00006100, | ||
508 | 0x417a3000, 0x417a3800, 0x417a4000, 0x417a4800, | ||
509 | 0x417a5000, 0x417a5800, 0x417a6000, 0x417a6800, | ||
510 | 0x417a7000, 0x417a7800, 0x417a8000, 0x417a8800, | ||
511 | 0x417a9000, 0x417a9800, 0x417ae800, 0x417af800, | ||
512 | 0x42030000, 0x00007c00, 0x42031000, 0x0010b806, | ||
513 | 0x42031800, 0x0000bf1d, 0x42032000, 0x0000bf32, | ||
514 | 0x42032800, 0x0010b7ce, 0x42033000, 0x0010b46e, | ||
515 | 0x42034000, 0x0010b4a4, 0x42033800, 0x0010b4c3, | ||
516 | 0x42034800, 0x0010b544, 0x42035000, 0x0010b400, | ||
517 | 0x42035800, 0x0010ac00, 0x42030800, 0x0010b505, | ||
518 | 0x417b6000, 0x42036800, 0x00006f00, 0x4203c800, | ||
519 | 0x00003000, 0x42037000, 0x0000ff00, 0x42037800, | ||
520 | 0x0000bf00, 0x42038000, 0x00007700, 0x42038800, | ||
521 | 0x00004000, 0x42039000, 0x00006000, 0x42039800, | ||
522 | 0x0010bedb, 0x4203a000, 0x00007600, 0x4203a800, | ||
523 | 0x00007400, 0x4203b000, 0x00007200, 0x4203b800, | ||
524 | 0x00007100, 0x4203c000, 0x00007000, 0x4203d000, | ||
525 | 0x00000000, 0x4203e800, 0x00101b95, 0x417bd800, | ||
526 | 0x1c01f000, 0x42000800, 0x00100000, 0x50040000, | ||
527 | 0x4c000000, 0x42000000, 0x0000aaaa, 0x44000800, | ||
528 | 0x42001800, 0x00005555, 0x41782000, 0x82102400, | ||
529 | 0x00010000, 0x40100000, 0x80042c00, 0x440c2800, | ||
530 | 0x42003000, 0x0000000a, 0x80183040, 0x040207ff, | ||
531 | 0x50140000, 0x800c0580, 0x04020004, 0x50040000, | ||
532 | 0x800c0580, 0x040207f2, 0x5c000000, 0x44000800, | ||
533 | 0x80142840, 0x4817c861, 0x1c01f000, 0x59a8081f, | ||
534 | 0x800409c0, 0x04020009, 0x49781c0c, 0x4a001a0c, | ||
535 | 0x00000200, 0x4a001804, 0x07000000, 0x59a80010, | ||
536 | 0x9c0001c0, 0x48001805, 0x0401fe01, 0x9c0409c0, | ||
537 | 0x48041806, 0x1c01f000, 0x59a8080c, 0x4006d000, | ||
538 | 0x4202b800, 0x00000001, 0x59a8180d, 0x480fc857, | ||
539 | 0x82041400, 0x00000014, 0x82082400, 0x00000014, | ||
540 | 0x40100000, 0x800c0480, 0x04001006, 0x44080800, | ||
541 | 0x40080800, 0x40101000, 0x815eb800, 0x0401f7f7, | ||
542 | 0x45780800, 0x495f5020, 0x1c01f000, 0x835c0480, | ||
543 | 0x00000020, 0x04001009, 0x496bc857, 0x815eb840, | ||
544 | 0x416a5800, 0x592ed000, 0x497a5800, 0x497a5801, | ||
545 | 0x812e59c0, 0x1c01f000, 0x42000000, 0x0010b853, | ||
546 | 0x0201f800, 0x0010aa47, 0x417a5800, 0x0401f7f9, | ||
547 | 0x815eb840, 0x04001008, 0x416a5800, 0x492fc857, | ||
548 | 0x592ed000, 0x497a5800, 0x497a5801, 0x812e59c0, | ||
549 | 0x1c01f000, 0x42000000, 0x0010b853, 0x0201f800, | ||
550 | 0x0010aa47, 0x417ab800, 0x417a5800, 0x0401f7f8, | ||
551 | 0x492fc857, 0x496a5800, 0x412ed000, 0x815eb800, | ||
552 | 0x59c80000, 0x82000540, 0x00001200, 0x48039000, | ||
553 | 0x1c01f000, 0x492fc857, 0x812e59c0, 0x04000007, | ||
554 | 0x592c0001, 0x497a5801, 0x4c000000, 0x0401fff1, | ||
555 | 0x5c025800, 0x0401f7f9, 0x1c01f000, 0x4807c856, | ||
556 | 0x42007000, 0x0010b7f8, 0x4a007001, 0x00000000, | ||
557 | 0x59e00003, 0x82000540, 0x00008080, 0x4803c003, | ||
558 | 0x4a03b805, 0x90000001, 0x59dc0006, 0x4a03b805, | ||
559 | 0x70000000, 0x59dc0006, 0x4a03b805, 0x30000000, | ||
560 | 0x4200b000, 0x00000020, 0x497bb807, 0x8058b040, | ||
561 | 0x040207fe, 0x4a03b805, 0x30000000, 0x59dc0006, | ||
562 | 0x4a03b805, 0x60000001, 0x59dc0006, 0x4a03b805, | ||
563 | 0x70000001, 0x59dc0006, 0x4a03b805, 0x30000002, | ||
564 | 0x4200b000, 0x00000020, 0x497bb807, 0x8058b040, | ||
565 | 0x040207fe, 0x4a03b805, 0x30000000, 0x59dc0006, | ||
566 | 0x4a03b805, 0x60000001, 0x0401ffa1, 0x04000da5, | ||
567 | 0x42001000, 0x0010b7f6, 0x452c1000, 0x4a025801, | ||
568 | 0x00000001, 0x4a025802, 0x00000100, 0x4a025809, | ||
569 | 0x00107149, 0x497a580a, 0x497a580b, 0x497a580c, | ||
570 | 0x0401ff93, 0x04000d97, 0x42001000, 0x0010b7f7, | ||
571 | 0x452c1000, 0x4a025801, 0x00000000, 0x4a025802, | ||
572 | 0x00000100, 0x4a025809, 0x001011bc, 0x497a5803, | ||
573 | 0x497a5807, 0x497a5808, 0x497a580a, 0x59a80005, | ||
574 | 0x8c00050e, 0x04000006, 0x4a03b805, 0xe0000001, | ||
575 | 0x59dc0006, 0x8c000522, 0x040007fc, 0x1c01f000, | ||
576 | 0x4df00000, 0x4203e000, 0x50000000, 0x4c380000, | ||
577 | 0x40087000, 0x480bc857, 0x4a007002, 0x00000000, | ||
578 | 0x42007000, 0x0010b7f8, 0x82080400, 0x00000000, | ||
579 | 0x45780000, 0x58380005, 0x48087005, 0x80000540, | ||
580 | 0x04000005, 0x82000400, 0x00000000, 0x44080000, | ||
581 | 0x0401f003, 0x480bc857, 0x48087006, 0x58380001, | ||
582 | 0x80000540, 0x0400080c, 0x5c007000, 0x5c03e000, | ||
583 | 0x1c01f000, 0x4c380000, 0x42007000, 0x0010b7f8, | ||
584 | 0x58380001, 0x80000540, 0x04000803, 0x5c007000, | ||
585 | 0x1c01f000, 0x42007000, 0x0010b7f8, 0x58380001, | ||
586 | 0x82000580, 0x00000000, 0x04020012, 0x58380000, | ||
587 | 0x0c01f001, 0x0010088e, 0x0010088d, 0x0010088d, | ||
588 | 0x0010088d, 0x0010088d, 0x0010088d, 0x0010088d, | ||
589 | 0x0010088d, 0x0401fd4b, 0x58380808, 0x800409c0, | ||
590 | 0x04020024, 0x58380006, 0x80000540, 0x04020002, | ||
591 | 0x1c01f000, 0x4803c857, 0x48007002, 0x40006800, | ||
592 | 0x58340000, 0x80000540, 0x04020002, 0x48007005, | ||
593 | 0x48007006, 0x4a03b805, 0x20000000, 0x59dc0006, | ||
594 | 0x4a03b805, 0x30000000, 0x58340007, 0x4803b800, | ||
595 | 0x58340008, 0x4803b801, 0x58340004, 0x48007003, | ||
596 | 0x58340003, 0x48007004, 0x4803b803, 0x58340001, | ||
597 | 0x8c000500, 0x04000004, 0x4a007001, 0x00000001, | ||
598 | 0x0401f028, 0x4a007001, 0x00000002, 0x0401f03d, | ||
599 | 0x0201f800, 0x001093ea, 0x0201f800, 0x0010a69d, | ||
600 | 0x04000017, 0x4a03b805, 0x20000000, 0x59dc0006, | ||
601 | 0x4a03b805, 0x30000000, 0x4807b800, 0x480bb801, | ||
602 | 0x4a007003, 0x00000010, 0x480c7009, 0x42001000, | ||
603 | 0x00100875, 0x0201f800, 0x00105f9a, 0x58380008, | ||
604 | 0x82000400, 0x00000004, 0x48007004, 0x4803b803, | ||
605 | 0x4a007001, 0x00000007, 0x0401f022, 0x0201f800, | ||
606 | 0x00109402, 0x42000800, 0x00000001, 0x42001000, | ||
607 | 0x00100875, 0x0201f800, 0x00105f76, 0x0401f7ba, | ||
608 | 0x4c040000, 0x4c080000, 0x58380803, 0x42001000, | ||
609 | 0x00003fff, 0x82040480, 0x00003fff, 0x04021003, | ||
610 | 0x40041000, 0x80000580, 0x48007003, 0x800800c4, | ||
611 | 0x4803b802, 0x4a03b805, 0x30000002, 0x59dc0006, | ||
612 | 0x4a03b805, 0x70000001, 0x59dc0006, 0x4a03b805, | ||
613 | 0x10000000, 0x5c001000, 0x5c000800, 0x1c01f000, | ||
614 | 0x483bc857, 0x4c040000, 0x4c080000, 0x58380803, | ||
615 | 0x42001000, 0x00003fff, 0x82040480, 0x00003fff, | ||
616 | 0x04021003, 0x40041000, 0x80000580, 0x48007003, | ||
617 | 0x800800c4, 0x4803b802, 0x4a03b805, 0x10000002, | ||
618 | 0x5c001000, 0x5c000800, 0x1c01f000, 0x4c040000, | ||
619 | 0x4c380000, 0x42007000, 0x0010b7f8, 0x59dc0806, | ||
620 | 0x4807c857, 0x4a03b805, 0x20000000, 0x8c040d3e, | ||
621 | 0x04000007, 0x8c040d08, 0x04020cca, 0x58380001, | ||
622 | 0x82000500, 0x00000007, 0x0c01f804, 0x5c007000, | ||
623 | 0x5c000800, 0x1c01f000, 0x0010087d, 0x0010091e, | ||
624 | 0x0010092e, 0x001005d8, 0x001005d8, 0x001005d8, | ||
625 | 0x001005d8, 0x001011ea, 0x4807c856, 0x82040d00, | ||
626 | 0x43000f80, 0x04020009, 0x58380003, 0x80000540, | ||
627 | 0x0400001c, 0x59dc0000, 0x4803b800, 0x59dc0001, | ||
628 | 0x4803b801, 0x0401f7af, 0x58380802, 0x4a000802, | ||
629 | 0x00000200, 0x0401f01e, 0x4807c856, 0x82040d00, | ||
630 | 0x43000f80, 0x04020009, 0x58380003, 0x80000540, | ||
631 | 0x0400000c, 0x59dc0000, 0x4803b800, 0x59dc0001, | ||
632 | 0x4803b801, 0x0401f7b7, 0x58380002, 0x82000400, | ||
633 | 0x00000002, 0x46000000, 0x00000200, 0x0401f00c, | ||
634 | 0x4c340000, 0x58386802, 0x59dc0000, 0x4803c857, | ||
635 | 0x48006807, 0x59dc0001, 0x4803c857, 0x48006808, | ||
636 | 0x4a006802, 0x00000100, 0x5c006800, 0x4a007001, | ||
637 | 0x00000000, 0x4c300000, 0x58386002, 0x0401f80c, | ||
638 | 0x04000009, 0x58300009, 0x82000c80, 0x0010ab4a, | ||
639 | 0x04021c84, 0x82000c80, 0x00020000, 0x04001c81, | ||
640 | 0x0801f800, 0x5c006000, 0x0401f723, 0x4833c857, | ||
641 | 0x803061c0, 0x04000009, 0x59a8000c, 0x80300480, | ||
642 | 0x04001007, 0x59a8000d, 0x80300480, 0x04021004, | ||
643 | 0x82000540, 0x00000001, 0x1c01f000, 0x80000580, | ||
644 | 0x1c01f000, 0x4803c856, 0x4dc00000, 0x42007000, | ||
645 | 0x0010b803, 0x4a007400, 0x00000000, 0x49787001, | ||
646 | 0x42038000, 0x00007720, 0x4a038006, 0x60000001, | ||
647 | 0x4a038009, 0xf4f60000, 0x42038000, 0x00007700, | ||
648 | 0x4a038006, 0x60000001, 0x4a038009, 0xf4f60000, | ||
649 | 0x4a03c822, 0x00000010, 0x4a0370e8, 0x00000000, | ||
650 | 0x0401f809, 0x4a0370e9, 0x00003a0f, 0x4a0370e8, | ||
651 | 0x00000000, 0x4a0370e8, 0x00000001, 0x5c038000, | ||
652 | 0x1c01f000, 0x4c5c0000, 0x4178b800, 0x0401f80a, | ||
653 | 0x5c00b800, 0x1c01f000, 0x4803c856, 0x4c5c0000, | ||
654 | 0x825cbd40, 0x00000001, 0x0401f803, 0x5c00b800, | ||
655 | 0x1c01f000, 0x4803c856, 0x4dc00000, 0x4c500000, | ||
656 | 0x4c580000, 0x4c540000, 0x4a0370e8, 0x00000000, | ||
657 | 0x805cb9c0, 0x04000009, 0x4a038807, 0x00000004, | ||
658 | 0x59b800ea, 0x8c000510, 0x04000004, 0x59b800e0, | ||
659 | 0x0401f87b, 0x0401f7fb, 0x42038000, 0x00007720, | ||
660 | 0x0201f800, 0x00100ec1, 0x59c00007, 0x4a038006, | ||
661 | 0x20000000, 0x59c00007, 0x4a038006, 0x8000000a, | ||
662 | 0x59c00007, 0x4a038006, 0x8000000b, 0x59c00007, | ||
663 | 0x4a038006, 0x40000001, 0x83c00580, 0x00007700, | ||
664 | 0x04000004, 0x42038000, 0x00007700, 0x0401f7ed, | ||
665 | 0x42038000, 0x00007720, 0x42000800, 0x00000800, | ||
666 | 0x59c00007, 0x8c00051e, 0x04000006, 0x4a038006, | ||
667 | 0x90000001, 0x80040840, 0x040207fa, 0x0401fc11, | ||
668 | 0x83c00580, 0x00007700, 0x04000004, 0x42038000, | ||
669 | 0x00007700, 0x0401f7f1, 0x805cb9c0, 0x0402001d, | ||
670 | 0x4200b000, 0x00000020, 0x83b8ac00, 0x00000020, | ||
671 | 0x0201f800, 0x0010ab20, 0x4a0370fb, 0x00000001, | ||
672 | 0x4a037020, 0x001010bd, 0x59a80039, 0x82000500, | ||
673 | 0x0000ffff, 0x48037021, 0x4a037035, 0x0010bddb, | ||
674 | 0x4a037030, 0x0010b410, 0x4a037031, 0x0010ac00, | ||
675 | 0x4a037032, 0x0010b519, 0x4a037036, 0x0010b524, | ||
676 | 0x59840002, 0x48037034, 0x4a037038, 0x001010b4, | ||
677 | 0x4a0370fb, 0x00000001, 0x4178a000, 0x4200b000, | ||
678 | 0x00000020, 0x83b8ac00, 0x00000000, 0x0201f800, | ||
679 | 0x0010ab20, 0x4200b000, 0x00000040, 0x83b8ac00, | ||
680 | 0x00000040, 0x0201f800, 0x0010ab20, 0x805cb9c0, | ||
681 | 0x04020004, 0x4a0370e4, 0xaaaaaaaa, 0x0401f003, | ||
682 | 0x4a0370e4, 0xa2aaaa82, 0x4a0370e5, 0xaaaaaaaa, | ||
683 | 0x4a0370e6, 0xaaaaaaaa, 0x4a0370fb, 0x00000000, | ||
684 | 0x4a0370e6, 0xaaaaaaaa, 0x42038000, 0x00007720, | ||
685 | 0x4a038006, 0x90000000, 0x59c00007, 0x8c00051e, | ||
686 | 0x02020800, 0x001005d8, 0x42038000, 0x00007700, | ||
687 | 0x4a038006, 0x90000000, 0x59c00007, 0x8c00051e, | ||
688 | 0x02020800, 0x001005d8, 0x5c00a800, 0x5c00b000, | ||
689 | 0x5c00a000, 0x5c038000, 0x1c01f000, 0x4d300000, | ||
690 | 0x4d380000, 0x40026000, 0x82000500, 0x7f000000, | ||
691 | 0x82000580, 0x00000003, 0x0402000f, 0x83326500, | ||
692 | 0x00ffffff, 0x59300203, 0x82000580, 0x00000004, | ||
693 | 0x04020009, 0x59300c06, 0x82040580, 0x00000009, | ||
694 | 0x04020005, 0x42027000, 0x00000047, 0x0201f800, | ||
695 | 0x000207a1, 0x5c027000, 0x5c026000, 0x1c01f000, | ||
696 | 0x4d300000, 0x4d2c0000, 0x4d340000, 0x4d400000, | ||
697 | 0x4cfc0000, 0x4d380000, 0x4d3c0000, 0x4d440000, | ||
698 | 0x4d4c0000, 0x4d480000, 0x4c5c0000, 0x4c600000, | ||
699 | 0x4c640000, 0x4cc80000, 0x4ccc0000, 0x4cf00000, | ||
700 | 0x4cf40000, 0x4cf80000, 0x4cfc0000, 0x4d000000, | ||
701 | 0x4d040000, 0x0201f800, 0x00020015, 0x5c020800, | ||
702 | 0x5c020000, 0x5c01f800, 0x5c01f000, 0x5c01e800, | ||
703 | 0x5c01e000, 0x5c019800, 0x5c019000, 0x5c00c800, | ||
704 | 0x5c00c000, 0x5c00b800, 0x5c029000, 0x5c029800, | ||
705 | 0x5c028800, 0x5c027800, 0x5c027000, 0x5c01f800, | ||
706 | 0x5c028000, 0x5c026800, 0x5c025800, 0x5c026000, | ||
707 | 0x1c01f000, 0x493bc857, 0x0201f000, 0x00020044, | ||
708 | 0x83300500, 0x1f000000, 0x04000008, 0x81326580, | ||
709 | 0x80000130, 0x82000c80, 0x00000014, 0x02021800, | ||
710 | 0x001005d8, 0x0c01f013, 0x83300500, 0x000000ff, | ||
711 | 0x82000c80, 0x00000007, 0x02021800, 0x001005d8, | ||
712 | 0x0c01f025, 0x1c01f000, 0x82000d00, 0xc0000038, | ||
713 | 0x02020800, 0x001005d0, 0x0201f800, 0x001005d8, | ||
714 | 0x00000000, 0x00000048, 0x00000054, 0x00000053, | ||
715 | 0x00100a9b, 0x00100abf, 0x00100aba, 0x00100adf, | ||
716 | 0x00100aa6, 0x00100ab2, 0x00100a9b, 0x00100ada, | ||
717 | 0x00100b1a, 0x00100a9b, 0x00100a9b, 0x00100a9b, | ||
718 | 0x00100a9b, 0x00100b1d, 0x00100b23, 0x00100b34, | ||
719 | 0x00100b45, 0x00100a9b, 0x00100b4e, 0x00100b5a, | ||
720 | 0x00100a9b, 0x00100a9b, 0x00100a9b, 0x0201f800, | ||
721 | 0x001005d8, 0x00100aa4, 0x00100bff, 0x00100aec, | ||
722 | 0x00100b0f, 0x00100aa4, 0x00100aa4, 0x00100aa4, | ||
723 | 0x0201f800, 0x001005d8, 0x4803c856, 0x59300004, | ||
724 | 0x8c00053e, 0x04020005, 0x42027000, 0x00000055, | ||
725 | 0x0201f000, 0x000207a1, 0x0201f800, 0x00106f60, | ||
726 | 0x040007fa, 0x1c01f000, 0x4803c856, 0x0401f8a9, | ||
727 | 0x40002800, 0x41782000, 0x42027000, 0x00000056, | ||
728 | 0x0201f000, 0x000207a1, 0x4803c856, 0x42027000, | ||
729 | 0x00000057, 0x0201f000, 0x000207a1, 0x4803c856, | ||
730 | 0x59300007, 0x8c00051a, 0x04020010, 0x59325808, | ||
731 | 0x812e59c0, 0x04000014, 0x592c0408, 0x8c00051c, | ||
732 | 0x04020003, 0x4a026011, 0xffffffff, 0x59300004, | ||
733 | 0x8c00053e, 0x04020009, 0x42027000, 0x00000048, | ||
734 | 0x0201f000, 0x000207a1, 0x59325808, 0x4a025a06, | ||
735 | 0x00000007, 0x0401f7f4, 0x0201f800, 0x00106f60, | ||
736 | 0x040007f6, 0x1c01f000, 0x4803c856, 0x83300500, | ||
737 | 0x00ffffff, 0x0201f000, 0x001064d7, 0x1c01f000, | ||
738 | 0x4c040000, 0x59b808ea, 0x82040d00, 0x00000007, | ||
739 | 0x82040580, 0x00000003, 0x04000004, 0x42000000, | ||
740 | 0x60000000, 0x0401f8ab, 0x5c000800, 0x1c01f000, | ||
741 | 0x0401f8f9, 0x59325808, 0x812e59c0, 0x04000018, | ||
742 | 0x592c0204, 0x82000500, 0x000000ff, 0x82000d80, | ||
743 | 0x00000029, 0x04020012, 0x59300203, 0x82000580, | ||
744 | 0x00000003, 0x0400000b, 0x59300807, 0x84040d26, | ||
745 | 0x48066007, 0x0201f800, 0x00020086, 0x4a03900d, | ||
746 | 0x00000040, 0x4a0370e5, 0x00000008, 0x1c01f000, | ||
747 | 0x0201f800, 0x00106f60, 0x040007f4, 0x59880052, | ||
748 | 0x80000000, 0x48031052, 0x4a03900d, 0x00000040, | ||
749 | 0x42000000, 0xc0000000, 0x0401f05a, 0x42007800, | ||
750 | 0x0010bde2, 0x42002000, 0x00003000, 0x42003000, | ||
751 | 0x00000105, 0x0201f800, 0x00105e04, 0x4a0370e4, | ||
752 | 0x02000000, 0x1c01f000, 0x4933c857, 0x0201f000, | ||
753 | 0x0002077d, 0x41300800, 0x800409c0, 0x02020800, | ||
754 | 0x001005d8, 0x0201f800, 0x001005d0, 0x4933c857, | ||
755 | 0x813261c0, 0x02000800, 0x001005d8, 0x0401f835, | ||
756 | 0x40002800, 0x0201f800, 0x0010a99c, 0x0401f8ae, | ||
757 | 0x04000007, 0x59326809, 0x59340200, 0x8c00050e, | ||
758 | 0x59300414, 0x02020800, 0x001092ce, 0x1c01f000, | ||
759 | 0x4933c857, 0x813261c0, 0x02000800, 0x001005d8, | ||
760 | 0x0401f8a1, 0x0400000b, 0x59325808, 0x0201f800, | ||
761 | 0x00109037, 0x04000007, 0x592c0208, 0x8400054e, | ||
762 | 0x48025a08, 0x417a7800, 0x0201f800, 0x00108be3, | ||
763 | 0x1c01f000, 0x485fc857, 0x5c000000, 0x4d780000, | ||
764 | 0x4203e000, 0x50000000, 0x4200b800, 0x00008005, | ||
765 | 0x0201f000, 0x001005dd, 0x4933c857, 0x83300480, | ||
766 | 0x00000020, 0x02021800, 0x001005d8, 0x83300c00, | ||
767 | 0x0010b8cc, 0x50040000, 0x80000000, 0x04001002, | ||
768 | 0x44000800, 0x1c01f000, 0x4933c857, 0x0401f7f4, | ||
769 | 0x4807c856, 0x59b800ea, 0x8c000510, 0x040007fd, | ||
770 | 0x59b800e0, 0x4803c857, 0x1c01f000, 0x4803c856, | ||
771 | 0x42000000, 0x10000000, 0x41300800, 0x0401f02d, | ||
772 | 0x82000500, 0xf0000000, 0x82040d00, 0x0fffffff, | ||
773 | 0x80040d40, 0x4807c857, 0x59b800ea, 0x8c000516, | ||
774 | 0x04020003, 0x480770e1, 0x1c01f000, 0x8c000510, | ||
775 | 0x040007fa, 0x4c040000, 0x0401f809, 0x5c000800, | ||
776 | 0x82100480, 0x00000008, 0x040017f4, 0x4c040000, | ||
777 | 0x0401febc, 0x5c000800, 0x0401f7f0, 0x59b800e2, | ||
778 | 0x59b820e2, 0x80100580, 0x040207fd, 0x80102114, | ||
779 | 0x0401f006, 0x59b800e2, 0x59b820e2, 0x80100580, | ||
780 | 0x040207fd, 0x0401f001, 0x40101800, 0x800c190a, | ||
781 | 0x82100500, 0x0000001f, 0x820c1d00, 0x0000001f, | ||
782 | 0x800c2480, 0x82102500, 0x0000001f, 0x1c01f000, | ||
783 | 0x82000500, 0xf0000000, 0x82040d00, 0x0fffffff, | ||
784 | 0x80040d40, 0x4807c857, 0x42001000, 0x0010b804, | ||
785 | 0x50080000, 0x80000540, 0x04020005, 0x4a0370e5, | ||
786 | 0x00000003, 0x4a0370e4, 0x00000300, 0x80000000, | ||
787 | 0x44001000, 0x42001000, 0x00000400, 0x59b800ea, | ||
788 | 0x8c000510, 0x0400000c, 0x0401ffd5, 0x82100480, | ||
789 | 0x00000008, 0x04001007, 0x4c040000, 0x4c080000, | ||
790 | 0x0401fe88, 0x5c001000, 0x5c000800, 0x0401f020, | ||
791 | 0x59b800ea, 0x8c000516, 0x0402001d, 0x4a0370e4, | ||
792 | 0x00300000, 0x480770e1, 0x42001000, 0x0000ff00, | ||
793 | 0x80081040, 0x04000012, 0x59b808e4, 0x8c040d28, | ||
794 | 0x040207fc, 0x42001000, 0x0010b804, 0x50080000, | ||
795 | 0x80000040, 0x04020005, 0x4a0370e5, 0x00000002, | ||
796 | 0x4a0370e4, 0x00000200, 0x02001800, 0x001005d8, | ||
797 | 0x44001000, 0x8c040d2c, 0x1c01f000, 0x41f80000, | ||
798 | 0x50000000, 0x0201f800, 0x001005d8, 0x80081040, | ||
799 | 0x040207d3, 0x41f80000, 0x50000000, 0x0201f800, | ||
800 | 0x001005d8, 0x4d380000, 0x59300c06, 0x82040580, | ||
801 | 0x00000009, 0x04020006, 0x42027000, 0x00000047, | ||
802 | 0x0201f800, 0x000207a1, 0x80000580, 0x5c027000, | ||
803 | 0x1c01f000, 0x4c500000, 0x4a03900d, 0x00000001, | ||
804 | 0x59c8a020, 0x4a03900d, 0x00000002, 0x59c80820, | ||
805 | 0x8c50a52e, 0x04000002, 0x900409c0, 0x82040d00, | ||
806 | 0x0000ffff, 0x0201f800, 0x00105dd7, 0x02000800, | ||
807 | 0x001005d8, 0x4933c857, 0x8250a500, 0xff000000, | ||
808 | 0x82500580, 0x05000000, 0x04000003, 0x82000540, | ||
809 | 0x00000001, 0x5c00a000, 0x1c01f000, 0x0401ffe6, | ||
810 | 0x4933c857, 0x59300406, 0x82000580, 0x00000000, | ||
811 | 0x04000040, 0x59c82021, 0x4a03900d, 0x00000001, | ||
812 | 0x59c82821, 0x82142d00, 0x0000ffff, 0x59325808, | ||
813 | 0x812e59c0, 0x04000037, 0x59326809, 0x0201f800, | ||
814 | 0x001048d9, 0x02020800, 0x001092b6, 0x599c0019, | ||
815 | 0x8c00050c, 0x04020018, 0x0201f800, 0x001048d9, | ||
816 | 0x04020015, 0x59300811, 0x4807c857, 0x592c0408, | ||
817 | 0x8c00051c, 0x0402000e, 0x8400055c, 0x48025c08, | ||
818 | 0x592c0a04, 0x82040d00, 0x000000ff, 0x82040580, | ||
819 | 0x00000048, 0x04000004, 0x82040580, 0x00000018, | ||
820 | 0x04020003, 0x59300811, 0x48065803, 0x4a026011, | ||
821 | 0x7fffffff, 0x48166013, 0x0201f800, 0x001010dd, | ||
822 | 0x04020014, 0x0401f9fd, 0x40280000, 0x4802600d, | ||
823 | 0x04000005, 0x4832600b, 0x50200000, 0x4802600a, | ||
824 | 0x4822600c, 0x59300414, 0x8c00051c, 0x04020004, | ||
825 | 0x599c0019, 0x8c00050c, 0x0402086e, 0x4a03900d, | ||
826 | 0x00000040, 0x4a0370e5, 0x00000008, 0x1c01f000, | ||
827 | 0x59880052, 0x80000000, 0x48031052, 0x4a03900d, | ||
828 | 0x00000040, 0x42000000, 0xc0000000, 0x0401f71d, | ||
829 | 0x4cf80000, 0x58f40000, 0x8001f540, 0x0401f820, | ||
830 | 0x41781800, 0x0401f8e4, 0x04020014, 0x44140800, | ||
831 | 0x0401f82a, 0x04000011, 0x40043800, 0x42001800, | ||
832 | 0x00000001, 0x40142000, 0x0401f8db, 0x0402000b, | ||
833 | 0x801c3800, 0x501c0000, 0x44000800, 0x0401f810, | ||
834 | 0x801c0580, 0x04000004, 0x44103800, 0x801c3840, | ||
835 | 0x44143800, 0x0401f819, 0x5c01f000, 0x1c01f000, | ||
836 | 0x80f9f1c0, 0x04020003, 0x58f41202, 0x0401f003, | ||
837 | 0x42001000, 0x00000007, 0x1c01f000, 0x80f9f1c0, | ||
838 | 0x04020006, 0x58f40401, 0x82000480, 0x00000002, | ||
839 | 0x80f40400, 0x0401f005, 0x58f80401, 0x82000480, | ||
840 | 0x00000002, 0x80f80400, 0x50002800, 0x80000000, | ||
841 | 0x50002000, 0x1c01f000, 0x80f9f1c0, 0x04020008, | ||
842 | 0x58f40401, 0x82000480, 0x00000002, 0x02001800, | ||
843 | 0x001005d8, 0x4801ec01, 0x0401f00b, 0x58f80401, | ||
844 | 0x82000480, 0x00000002, 0x02001800, 0x001005d8, | ||
845 | 0x4801f401, 0x82000580, 0x00000002, 0x04020002, | ||
846 | 0x0401f809, 0x58f40202, 0x80000040, 0x4801ea02, | ||
847 | 0x02000800, 0x001005d8, 0x82000580, 0x00000001, | ||
848 | 0x1c01f000, 0x4d2c0000, 0x40fa5800, 0x0201f800, | ||
849 | 0x001007f4, 0x4979e800, 0x4179f000, 0x5c025800, | ||
850 | 0x1c01f000, 0x80f5e9c0, 0x04000009, 0x80f9f1c0, | ||
851 | 0x04020ff5, 0x4d2c0000, 0x40f65800, 0x0201f800, | ||
852 | 0x001007f4, 0x4179e800, 0x5c025800, 0x1c01f000, | ||
853 | 0x4cf40000, 0x59300807, 0x82040500, 0x00003100, | ||
854 | 0x04020032, 0x8c040d22, 0x04000032, 0x5930001f, | ||
855 | 0x8001ed40, 0x02000800, 0x001005d8, 0x82000580, | ||
856 | 0xffffffff, 0x04000029, 0x58f40201, 0x82000580, | ||
857 | 0x0000dcb3, 0x02020800, 0x001005d8, 0x58f40a02, | ||
858 | 0x82040500, 0x0000fffe, 0x04000003, 0x0401ff89, | ||
859 | 0x58f40a02, 0x82040480, 0x0000000f, 0x04021059, | ||
860 | 0x80040800, 0x4805ea02, 0x82040580, 0x00000008, | ||
861 | 0x0400005d, 0x82040480, 0x00000008, 0x0400100a, | ||
862 | 0x58f40000, 0x8001ed40, 0x02000800, 0x001005d8, | ||
863 | 0x58f40201, 0x82000580, 0x0000ddb9, 0x02020800, | ||
864 | 0x001005d8, 0x58f40401, 0x82000c00, 0x00000002, | ||
865 | 0x4805ec01, 0x80f40400, 0x59300812, 0x44040000, | ||
866 | 0x80000000, 0x45780000, 0x5c01e800, 0x1c01f000, | ||
867 | 0x42001000, 0x00000400, 0x59b800e4, 0x8c000524, | ||
868 | 0x04020023, 0x4a0370e4, 0x00030000, 0x40000000, | ||
869 | 0x59b800e4, 0x8c000524, 0x0402001b, 0x59300807, | ||
870 | 0x84040d62, 0x48066007, 0x4a0370e4, 0x00020000, | ||
871 | 0x4d2c0000, 0x0201f800, 0x001007d3, 0x04000025, | ||
872 | 0x492e601f, 0x4a025a01, 0x0000dcb3, 0x59300008, | ||
873 | 0x80001d40, 0x02000800, 0x001005d8, 0x580c080f, | ||
874 | 0x48065803, 0x59301811, 0x40040000, 0x800c0580, | ||
875 | 0x0402000d, 0x497a5a02, 0x4a025c01, 0x00000004, | ||
876 | 0x0401f011, 0x4a0370e4, 0x00020000, 0x40000000, | ||
877 | 0x40000000, 0x80081040, 0x02000800, 0x001005d8, | ||
878 | 0x0401f7d6, 0x4a025a02, 0x00000001, 0x4a025c01, | ||
879 | 0x00000006, 0x497a5804, 0x400c0000, 0x80040480, | ||
880 | 0x48025805, 0x412de800, 0x5c025800, 0x0401f7a9, | ||
881 | 0x5c025800, 0x4a02601f, 0xffffffff, 0x0401f7c3, | ||
882 | 0x4d2c0000, 0x58f65800, 0x0201f800, 0x001007f4, | ||
883 | 0x40f65800, 0x0201f800, 0x001007f4, 0x5c025800, | ||
884 | 0x0401f7f5, 0x4d2c0000, 0x0201f800, 0x001007d3, | ||
885 | 0x040007f8, 0x4a025a01, 0x0000ddb9, 0x4a025c01, | ||
886 | 0x00000002, 0x492de800, 0x412de800, 0x5c025800, | ||
887 | 0x0401f7a5, 0x0401ff33, 0x82f40400, 0x00000004, | ||
888 | 0x800c0400, 0x40000800, 0x50040000, 0x80100580, | ||
889 | 0x04000016, 0x82040c00, 0x00000002, 0x80081040, | ||
890 | 0x040207fa, 0x80f9f1c0, 0x04000011, 0x58f41202, | ||
891 | 0x82081480, 0x00000007, 0x82f80400, 0x00000002, | ||
892 | 0x800c0400, 0x40000800, 0x50040000, 0x80100580, | ||
893 | 0x04000006, 0x82040c00, 0x00000002, 0x80081040, | ||
894 | 0x040207fa, 0x0401f002, 0x1c01f000, 0x82000540, | ||
895 | 0x00000001, 0x0401f7fd, 0x4cf40000, 0x4cf80000, | ||
896 | 0x4001e800, 0x592c0a06, 0x800409c0, 0x0402001d, | ||
897 | 0x82f40580, 0xffffffff, 0x04000017, 0x58f40201, | ||
898 | 0x82000580, 0x0000dcb3, 0x02020800, 0x001005d8, | ||
899 | 0x58f40000, 0x8001f540, 0x04000006, 0x58f80201, | ||
900 | 0x82000580, 0x0000ddb9, 0x02020800, 0x001005d8, | ||
901 | 0x41783800, 0x0401f839, 0x04020006, 0x0401ff32, | ||
902 | 0x497a601f, 0x5c01f000, 0x5c01e800, 0x1c01f000, | ||
903 | 0x0401ff2d, 0x4a025a06, 0x00000011, 0x0401f7f9, | ||
904 | 0x82f40580, 0xffffffff, 0x04020f27, 0x0401f7f5, | ||
905 | 0x4cf40000, 0x4cf80000, 0x4001e800, 0x82040580, | ||
906 | 0x00000001, 0x0402001f, 0x82f40580, 0xffffffff, | ||
907 | 0x04000019, 0x58f40201, 0x82000580, 0x0000dcb3, | ||
908 | 0x02020800, 0x001005d8, 0x58f40000, 0x8001f540, | ||
909 | 0x04000006, 0x58f80201, 0x82000580, 0x0000ddb9, | ||
910 | 0x02020800, 0x001005d8, 0x41783800, 0x0401f813, | ||
911 | 0x04020008, 0x0401ff0c, 0x42000800, 0x00000001, | ||
912 | 0x497a601f, 0x5c01f000, 0x5c01e800, 0x1c01f000, | ||
913 | 0x0401ff05, 0x42000800, 0x00000011, 0x0401f7f9, | ||
914 | 0x4c040000, 0x82f40580, 0xffffffff, 0x04020efe, | ||
915 | 0x5c000800, 0x0401f7f3, 0x4803c856, 0x401c2000, | ||
916 | 0x41781800, 0x0401ff8c, 0x0402002c, 0x58f42003, | ||
917 | 0x42001800, 0x00000001, 0x0401ff87, 0x04020027, | ||
918 | 0x0401feb8, 0x40082800, 0x82f40400, 0x00000004, | ||
919 | 0x40003000, 0x50182000, 0x40100000, 0x801c0580, | ||
920 | 0x04000005, 0x42001800, 0x00000001, 0x0401ff7a, | ||
921 | 0x0402001a, 0x82183400, 0x00000002, 0x80142840, | ||
922 | 0x040207f5, 0x80f9f1c0, 0x04000013, 0x58f42a02, | ||
923 | 0x82142c80, 0x00000007, 0x82f80400, 0x00000003, | ||
924 | 0x40003000, 0x50182000, 0x40100000, 0x801c0580, | ||
925 | 0x04000005, 0x42001800, 0x00000001, 0x0401ff66, | ||
926 | 0x04020006, 0x82183400, 0x00000002, 0x80142840, | ||
927 | 0x040207f5, 0x1c01f000, 0x82000540, 0x00000001, | ||
928 | 0x0401f7fd, 0x0201f800, 0x001005d8, 0x58380207, | ||
929 | 0x8c000502, 0x040007fc, 0x50200000, 0x80387c00, | ||
930 | 0x583c2800, 0x583c2001, 0x58380404, 0x80001540, | ||
931 | 0x04020002, 0x58381407, 0x58c83401, 0x58380c08, | ||
932 | 0x59303807, 0x497a6012, 0x497a6013, 0x0201f000, | ||
933 | 0x000200be, 0x592c0408, 0x8c000502, 0x040007ea, | ||
934 | 0x592c0409, 0x80000540, 0x040007e7, 0x82000c80, | ||
935 | 0x00000002, 0x04001011, 0x58380001, 0x80007540, | ||
936 | 0x02000800, 0x001005d8, 0x58380204, 0x82000500, | ||
937 | 0x0000000f, 0x82000400, 0x001010bd, 0x50004000, | ||
938 | 0x40040000, 0x800409c0, 0x04000005, 0x82040c80, | ||
939 | 0x00000005, 0x040217f1, 0x80204400, 0x50200000, | ||
940 | 0x80387c00, 0x583c2800, 0x583c2001, 0x583c1002, | ||
941 | 0x592c0a07, 0x592c4c08, 0x592c300d, 0x59303807, | ||
942 | 0x497a6012, 0x497a6013, 0x4816600e, 0x4812600f, | ||
943 | 0x480a6010, 0x481a6011, 0x80040840, 0x4806600d, | ||
944 | 0x02000000, 0x000200c6, 0x80204000, 0x50201800, | ||
945 | 0x800c19c0, 0x0402000c, 0x58380001, 0x80007540, | ||
946 | 0x02000800, 0x001005d8, 0x58380204, 0x82000500, | ||
947 | 0x0000000f, 0x82000400, 0x001010bd, 0x50004000, | ||
948 | 0x50201800, 0x483a600b, 0x480e600a, 0x4822600c, | ||
949 | 0x0201f000, 0x000200c6, 0x4803c856, 0x592c0208, | ||
950 | 0x8c00051e, 0x04020017, 0x50200000, 0x80306c00, | ||
951 | 0x40240000, 0x0c01f001, 0x00100e46, 0x00100e46, | ||
952 | 0x00100e4f, 0x00100e46, 0x00100e46, 0x00100e46, | ||
953 | 0x00100e46, 0x00100e46, 0x00100e4f, 0x00100e46, | ||
954 | 0x00100e4f, 0x00100e46, 0x00100e46, 0x00100e4f, | ||
955 | 0x00100e46, 0x00100e46, 0x0201f800, 0x001005d8, | ||
956 | 0x8400051e, 0x48025a08, 0x50200000, 0x80306c00, | ||
957 | 0x58343801, 0x481e600f, 0x0401f007, 0x58341802, | ||
958 | 0x58342800, 0x58343801, 0x480e6010, 0x4816600e, | ||
959 | 0x481e600f, 0x0401f246, 0x4933c857, 0x5931f808, | ||
960 | 0x59300a06, 0x800409c0, 0x04000005, 0x80040906, | ||
961 | 0x04020002, 0x80040800, 0x4805fc06, 0x4a026206, | ||
962 | 0x00000002, 0x592c0409, 0x82000500, 0x00000008, | ||
963 | 0x0400000b, 0x0401f834, 0x59300203, 0x82000580, | ||
964 | 0x00000004, 0x04020005, 0x42027000, 0x00000048, | ||
965 | 0x0201f800, 0x000207a1, 0x1c01f000, 0x4cfc0000, | ||
966 | 0x58fc0204, 0x82000500, 0x000000ff, 0x82000580, | ||
967 | 0x00000048, 0x0402000c, 0x58fc000b, 0x800001c0, | ||
968 | 0x04000009, 0x58fc0407, 0x800001c0, 0x04000006, | ||
969 | 0x58fc080b, 0x8c040d16, 0x04000017, 0x58fc0007, | ||
970 | 0x0401f00a, 0x58fc0408, 0x8c000512, 0x04020014, | ||
971 | 0x58fc0c09, 0x8c040d16, 0x04020003, 0x5c01f800, | ||
972 | 0x1c01f000, 0x58fc000a, 0x59300811, 0x80040580, | ||
973 | 0x04020009, 0x59300007, 0x84000500, 0x48026007, | ||
974 | 0x42027000, 0x00000048, 0x5c01f800, 0x0201f000, | ||
975 | 0x000207a1, 0x5c01f800, 0x1c01f000, 0x58fdf809, | ||
976 | 0x0401f7ec, 0x4933c857, 0x59b808ea, 0x82040d00, | ||
977 | 0x00000007, 0x82040580, 0x00000000, 0x0400001e, | ||
978 | 0x82040580, 0x00000003, 0x0400001b, 0x59300406, | ||
979 | 0x4c000000, 0x4a026406, 0x00000000, 0x42003000, | ||
980 | 0x00000041, 0x42000000, 0x50000000, 0x41300800, | ||
981 | 0x4c180000, 0x0401fce7, 0x5c003000, 0x0400000b, | ||
982 | 0x42000000, 0x0000001e, 0x80000040, 0x040207ff, | ||
983 | 0x80183040, 0x040207f4, 0x42000000, 0x40000000, | ||
984 | 0x41300800, 0x0401fcdb, 0x5c000000, 0x48026406, | ||
985 | 0x1c01f000, 0x59300007, 0x84000500, 0x48026007, | ||
986 | 0x0401f7fc, 0x59c00007, 0x4a038006, 0x30000000, | ||
987 | 0x40000000, 0x59c00007, 0x8c00050a, 0x040207fe, | ||
988 | 0x1c01f000, 0x5c000000, 0x4c000000, 0x4803c857, | ||
989 | 0x4dc00000, 0x4a0370e8, 0x00000000, 0x42038000, | ||
990 | 0x00007720, 0x0401fff0, 0x42038000, 0x00007700, | ||
991 | 0x0401ffed, 0x0201f800, 0x0010513b, 0x04020013, | ||
992 | 0x4a038891, 0x0000ffff, 0x497b8880, 0x497b8892, | ||
993 | 0x42001000, 0x00000190, 0x40000000, 0x40000000, | ||
994 | 0x80081040, 0x040207fd, 0x42000000, 0x0010b8a6, | ||
995 | 0x0201f800, 0x0010aa47, 0x0401f80e, 0x5c038000, | ||
996 | 0x0201f000, 0x00105258, 0x0401f82d, 0x42000000, | ||
997 | 0x0010b8a7, 0x0201f800, 0x0010aa47, 0x0401f805, | ||
998 | 0x48178892, 0x480b8880, 0x5c038000, 0x1c01f000, | ||
999 | 0x496fc857, 0x836c0580, 0x00000003, 0x0402000b, | ||
1000 | 0x4c080000, 0x4c0c0000, 0x42001000, 0x00008048, | ||
1001 | 0x42001800, 0x0000ffff, 0x0201f800, 0x00103a3e, | ||
1002 | 0x5c001800, 0x5c001000, 0x42000800, 0x0000003c, | ||
1003 | 0x0201f800, 0x00101345, 0x59a8006c, 0x80000540, | ||
1004 | 0x04000006, 0x59a8106d, 0x800811c0, 0x04000003, | ||
1005 | 0x0201f800, 0x00101aaf, 0x4a038891, 0x0000ffff, | ||
1006 | 0x4a03900d, 0x00000040, 0x0201f800, 0x0010098e, | ||
1007 | 0x4a0370e8, 0x00000001, 0x1c01f000, 0x5c000000, | ||
1008 | 0x4c000000, 0x4803c857, 0x59c41080, 0x497b8880, | ||
1009 | 0x59c42892, 0x497b8892, 0x0201f800, 0x0010513b, | ||
1010 | 0x04020002, 0x1c01f000, 0x42002000, 0x00000260, | ||
1011 | 0x59c418a4, 0x820c1d00, 0x0000000f, 0x820c0580, | ||
1012 | 0x00000000, 0x04000010, 0x59c41805, 0x820c1d00, | ||
1013 | 0x00000001, 0x0402000e, 0x59c418a4, 0x820c1d00, | ||
1014 | 0x0000000f, 0x820c0480, 0x00000007, 0x04001004, | ||
1015 | 0x820c0480, 0x0000000c, 0x04001003, 0x80102040, | ||
1016 | 0x040207ec, 0x497b8891, 0x1c01f000, 0x4c100000, | ||
1017 | 0x42002000, 0x00000019, 0x46000000, 0x00000001, | ||
1018 | 0x0201f800, 0x00101937, 0x50001800, 0x820c1d00, | ||
1019 | 0x00000001, 0x04000005, 0x80102040, 0x040207f7, | ||
1020 | 0x5c002000, 0x0401f7f0, 0x5c002000, 0x0401f7ec, | ||
1021 | 0x4803c856, 0x1c01f000, 0x4d2c0000, 0x59325808, | ||
1022 | 0x592c0a04, 0x4807c857, 0x82040d00, 0x000000ff, | ||
1023 | 0x82040500, 0x0000000f, 0x0c01f001, 0x00100f67, | ||
1024 | 0x00100f67, 0x00100f67, 0x00100f7f, 0x00100f67, | ||
1025 | 0x00100f67, 0x00100f67, 0x00100f67, 0x00100f67, | ||
1026 | 0x00100f7f, 0x00100f67, 0x00100f69, 0x00100f67, | ||
1027 | 0x00100f67, 0x00100f67, 0x00100f67, 0x0201f800, | ||
1028 | 0x001005d8, 0x82040580, 0x0000003b, 0x02020800, | ||
1029 | 0x001005d8, 0x592c020a, 0x8c000500, 0x0400005f, | ||
1030 | 0x592c1a07, 0x82040500, 0x0000000f, 0x82000400, | ||
1031 | 0x001010bd, 0x50001000, 0x50080000, 0x59302013, | ||
1032 | 0x4802600a, 0x492e600b, 0x480a600c, 0x480e600d, | ||
1033 | 0x48126012, 0x5c025800, 0x1c01f000, 0x82040500, | ||
1034 | 0x0000000f, 0x82000400, 0x001010bd, 0x50001000, | ||
1035 | 0x50080000, 0x592c1a07, 0x4802600a, 0x492e600b, | ||
1036 | 0x480a600c, 0x480e600d, 0x497a6012, 0x0401f7f2, | ||
1037 | 0x8c040d00, 0x04020041, 0x82040d00, 0x00000080, | ||
1038 | 0x0400003e, 0x0201f000, 0x000200cf, 0x59300013, | ||
1039 | 0x59301012, 0x80080580, 0x0402000c, 0x42007800, | ||
1040 | 0x80000005, 0x592c1208, 0x82080500, 0xffff7fff, | ||
1041 | 0x48025a08, 0x8c08151e, 0x0402002d, 0x823c7d40, | ||
1042 | 0x00000020, 0x0401f02a, 0x480bc857, 0x42000000, | ||
1043 | 0x0010b851, 0x0201f800, 0x0010aa47, 0x59300414, | ||
1044 | 0x4803c857, 0x8c000514, 0x04020007, 0x599c1819, | ||
1045 | 0x8c0c1d12, 0x04020004, 0x820c1d40, 0x00000001, | ||
1046 | 0x0401f01d, 0x59302013, 0x0401f92b, 0x0402001a, | ||
1047 | 0x42007800, 0x80000005, 0x5930500d, 0x592c0208, | ||
1048 | 0x4803c857, 0x8c00051e, 0x04020005, 0x823c7d40, | ||
1049 | 0x00000020, 0x5930400c, 0x0401f004, 0x8400051e, | ||
1050 | 0x48025a08, 0x0401f8da, 0x50201800, 0x480e600a, | ||
1051 | 0x4832600b, 0x4822600c, 0x482a600d, 0x480fc857, | ||
1052 | 0x4833c857, 0x4823c857, 0x482bc857, 0x80000580, | ||
1053 | 0x483e6004, 0x1c01f000, 0x0201f800, 0x001005d8, | ||
1054 | 0x4933c857, 0x4d2c0000, 0x59900004, 0x81300580, | ||
1055 | 0x02020800, 0x001005d8, 0x0201f800, 0x00109037, | ||
1056 | 0x02000800, 0x001005d8, 0x59325808, 0x4d3c0000, | ||
1057 | 0x4d400000, 0x59300004, 0x4803c857, 0x4c000000, | ||
1058 | 0x0201f800, 0x00106dc3, 0x0201f800, 0x00106b8a, | ||
1059 | 0x5c000000, 0x8c000516, 0x04000010, 0x592c000f, | ||
1060 | 0x4803c857, 0x48025807, 0x41780800, 0x42028000, | ||
1061 | 0x00000002, 0x0201f800, 0x00104e70, 0x4a025c06, | ||
1062 | 0x0000ffff, 0x0201f800, 0x000202da, 0x0201f800, | ||
1063 | 0x00107911, 0x0401f015, 0x4a026203, 0x00000002, | ||
1064 | 0x592c0208, 0x8400054e, 0x48025a08, 0x59300406, | ||
1065 | 0x82000580, 0x00000006, 0x04020009, 0x811800ca, | ||
1066 | 0x81c80c00, 0x58040939, 0x592c000d, 0x80040480, | ||
1067 | 0x592c080f, 0x80040480, 0x4802580b, 0x417a7800, | ||
1068 | 0x0201f800, 0x00108be3, 0x5c028000, 0x5c027800, | ||
1069 | 0x5c025800, 0x1c01f000, 0x4933c857, 0x4d2c0000, | ||
1070 | 0x59900004, 0x81300580, 0x02020800, 0x001005d8, | ||
1071 | 0x0201f800, 0x00109037, 0x02000800, 0x001005d8, | ||
1072 | 0x59325808, 0x592c0208, 0x84000540, 0x48025a08, | ||
1073 | 0x0401f7bf, 0x491bc857, 0x49d3c857, 0x4dd00000, | ||
1074 | 0x41780800, 0x8007a0ca, 0x83d3a400, 0x00007600, | ||
1075 | 0x4a03a005, 0x80000002, 0x42000000, 0x00001000, | ||
1076 | 0x50000000, 0x82000480, 0x24220001, 0x04020029, | ||
1077 | 0x59d01006, 0x82080500, 0x00006000, 0x82000580, | ||
1078 | 0x00006000, 0x0400002f, 0x82080500, 0x40008000, | ||
1079 | 0x040007f8, 0x800409c0, 0x0402002a, 0x811a31c0, | ||
1080 | 0x04000028, 0x42000000, 0x00001002, 0x50001000, | ||
1081 | 0x46000000, 0x00000512, 0x42001800, 0x0000000a, | ||
1082 | 0x59e00000, 0x8c00051a, 0x040207fc, 0x800c1840, | ||
1083 | 0x040207fc, 0x42000000, 0x00001002, 0x46000000, | ||
1084 | 0x00000514, 0x42001800, 0x0000000a, 0x59e00000, | ||
1085 | 0x8c00053a, 0x040207fc, 0x800c1840, 0x040207fc, | ||
1086 | 0x42000000, 0x00001002, 0x44080000, 0x0401f00d, | ||
1087 | 0x59d01006, 0x82080500, 0x00006000, 0x82000580, | ||
1088 | 0x00006000, 0x04000007, 0x8c08151e, 0x040007f9, | ||
1089 | 0x59d01006, 0x82080500, 0x00006000, 0x040207f5, | ||
1090 | 0x83d3a400, 0x00000020, 0x80040800, 0x82040480, | ||
1091 | 0x00000005, 0x040017bf, 0x5c03a000, 0x1c01f000, | ||
1092 | 0x491bc857, 0x49d3c857, 0x4dd00000, 0x41780800, | ||
1093 | 0x8007a0ca, 0x83d3a400, 0x00007600, 0x4a03a005, | ||
1094 | 0x80000001, 0x59d00006, 0x83d3a400, 0x00000020, | ||
1095 | 0x80040800, 0x82040480, 0x00000005, 0x040017f8, | ||
1096 | 0x5c03a000, 0x1c01f000, 0x59d00006, 0x8c00053e, | ||
1097 | 0x0400001e, 0x59902804, 0x4817c857, 0x801429c0, | ||
1098 | 0x04000013, 0x5990000a, 0x5990080b, 0x5990100c, | ||
1099 | 0x5990180d, 0x4800280a, 0x4804280b, 0x4808280c, | ||
1100 | 0x480c280d, 0x59d00000, 0x59d00801, 0x59d01002, | ||
1101 | 0x59d01803, 0x59d02004, 0x4800280e, 0x4804280f, | ||
1102 | 0x48082810, 0x480c2811, 0x48102812, 0x59900006, | ||
1103 | 0x82000500, 0xffff0000, 0x48032006, 0x4a03a005, | ||
1104 | 0x30000000, 0x59d00006, 0x1c01f000, 0x4803c856, | ||
1105 | 0x80204000, 0x50200000, 0x80000540, 0x04000003, | ||
1106 | 0x80285040, 0x1c01f000, 0x58300001, 0x80000540, | ||
1107 | 0x0400000e, 0x4802600b, 0x40006000, 0x58300204, | ||
1108 | 0x82000500, 0x0000000f, 0x82000400, 0x001010bd, | ||
1109 | 0x50004000, 0x802041c0, 0x02000800, 0x001005d8, | ||
1110 | 0x80285040, 0x1c01f000, 0x40005000, 0x1c01f000, | ||
1111 | 0x00000005, 0x00000008, 0x0000000b, 0x0000000e, | ||
1112 | 0x00000011, 0x00000000, 0x00000000, 0x0000000b, | ||
1113 | 0x00000000, 0x00000000, 0x00000000, 0x001010b8, | ||
1114 | 0x001010b7, 0x00000000, 0x00000000, 0x00000000, | ||
1115 | 0x00000000, 0x001010b8, 0x001010b7, 0x001010b4, | ||
1116 | 0x001010b8, 0x001010b7, 0x00000000, 0x00000000, | ||
1117 | 0x00000000, 0x00000000, 0x00000000, 0x001010b8, | ||
1118 | 0x00000000, 0x00000000, 0x00000000, 0x00000000, | ||
1119 | 0x00000000, 0x001010b8, 0x001010b8, 0x001010b8, | ||
1120 | 0x00000000, 0x001010b8, 0x00000000, 0x00000000, | ||
1121 | 0x00000000, 0x4813c857, 0x492fc857, 0x4933c857, | ||
1122 | 0x48126012, 0x592c5207, 0x802851c0, 0x0400004a, | ||
1123 | 0x412c6000, 0x0401f84b, 0x04000009, 0x82240580, | ||
1124 | 0x00000002, 0x04020003, 0x5830000d, 0x80102480, | ||
1125 | 0x50200000, 0x80004540, 0x0400003f, 0x50200000, | ||
1126 | 0x80000540, 0x0400000b, 0x80301400, 0x58080002, | ||
1127 | 0x80102480, 0x0400101e, 0x801021c0, 0x04000009, | ||
1128 | 0x80285040, 0x04000034, 0x80204000, 0x0401f7f4, | ||
1129 | 0x58300001, 0x80006540, 0x0400002f, 0x0401f7e6, | ||
1130 | 0x80285040, 0x0400002c, 0x80204000, 0x50200000, | ||
1131 | 0x80000540, 0x0402000a, 0x58300001, 0x80006540, | ||
1132 | 0x04000025, 0x58300204, 0x82004d00, 0x0000000f, | ||
1133 | 0x82244400, 0x001010bd, 0x50204000, 0x592c0208, | ||
1134 | 0x8400051e, 0x48025a08, 0x0401f013, 0x80102080, | ||
1135 | 0x80102000, 0x48126010, 0x4813c857, 0x58080802, | ||
1136 | 0x40100000, 0x80042480, 0x02001800, 0x001005d8, | ||
1137 | 0x58080000, 0x58081801, 0x80102400, 0x4812600e, | ||
1138 | 0x480e600f, 0x4813c857, 0x592c0208, 0x8400055e, | ||
1139 | 0x48025a08, 0x4833c857, 0x4823c857, 0x482bc857, | ||
1140 | 0x4832600b, 0x4822600c, 0x482a600d, 0x80000580, | ||
1141 | 0x0401f003, 0x82000540, 0x00000001, 0x1c01f000, | ||
1142 | 0x58300204, 0x82004d00, 0x0000000f, 0x82244400, | ||
1143 | 0x001010bd, 0x82000500, 0x000000ff, 0x82000580, | ||
1144 | 0x00000029, 0x0402001b, 0x50204000, 0x592c0409, | ||
1145 | 0x80000540, 0x02000800, 0x001005d8, 0x82000c80, | ||
1146 | 0x00000002, 0x04001011, 0x58300001, 0x80006540, | ||
1147 | 0x02000800, 0x001005d8, 0x58300204, 0x82000500, | ||
1148 | 0x0000000f, 0x82000400, 0x001010bd, 0x50004000, | ||
1149 | 0x40040000, 0x800409c0, 0x04000006, 0x82040c80, | ||
1150 | 0x00000005, 0x040217f1, 0x80204400, 0x80000580, | ||
1151 | 0x1c01f000, 0x59e00004, 0x8c00050e, 0x02020000, | ||
1152 | 0x00100903, 0x1c01f000, 0x4c5c0000, 0x59e4b800, | ||
1153 | 0x485fc857, 0x825c0500, 0x0000001f, 0x04000004, | ||
1154 | 0x59e40862, 0x0201f800, 0x001005d8, 0x825c0500, | ||
1155 | 0x000000e0, 0x02000800, 0x001005d8, 0x8c5cbd0e, | ||
1156 | 0x04020807, 0x8c5cbd0c, 0x04020809, 0x8c5cbd0a, | ||
1157 | 0x04020878, 0x5c00b800, 0x1c01f000, 0x4803c856, | ||
1158 | 0x4a03c800, 0x00000080, 0x1c01f000, 0x4d2c0000, | ||
1159 | 0x42007800, 0x0010b8ec, 0x583c0001, 0x583c0802, | ||
1160 | 0x80040540, 0x0400003f, 0x42000800, 0x0010b7f7, | ||
1161 | 0x50065800, 0x592c0002, 0x82000580, 0x00000000, | ||
1162 | 0x0400000e, 0x59e40850, 0x59e41853, 0x400c0000, | ||
1163 | 0x80040400, 0x59e40852, 0x4807c857, 0x80041480, | ||
1164 | 0x04021008, 0x40001000, 0x480bc857, 0x4a007800, | ||
1165 | 0x00000001, 0x0401f006, 0x4803c857, 0x0401f029, | ||
1166 | 0x59e41050, 0x480bc857, 0x49787800, 0x480bc857, | ||
1167 | 0x480fc857, 0x592c0003, 0x80000540, 0x04000006, | ||
1168 | 0x80080580, 0x04020004, 0x592c0003, 0x4803c857, | ||
1169 | 0x480bc857, 0x480a5803, 0x592c0007, 0x800001c0, | ||
1170 | 0x04000007, 0x592c1007, 0x480bc857, 0x583c0003, | ||
1171 | 0x4803c857, 0x80080480, 0x04001003, 0x583c1001, | ||
1172 | 0x480bc857, 0x583c0802, 0x480bc857, 0x4807c857, | ||
1173 | 0x4a025801, 0x00000000, 0x4a025809, 0x001011bc, | ||
1174 | 0x480a5807, 0x48065808, 0x59e40053, 0x48025804, | ||
1175 | 0x412c1000, 0x492fc857, 0x0201f800, 0x00100858, | ||
1176 | 0x5c025800, 0x4a03c800, 0x00000040, 0x1c01f000, | ||
1177 | 0x42007800, 0x0010b7f7, 0x503c7800, 0x4a007802, | ||
1178 | 0x00000100, 0x42007800, 0x0010b8ec, 0x583c0000, | ||
1179 | 0x4803c857, 0x82000d80, 0x00000001, 0x04000004, | ||
1180 | 0x80000000, 0x48007800, 0x0401f019, 0x49787800, | ||
1181 | 0x583c1806, 0x583c0005, 0x800c1800, 0x480c7806, | ||
1182 | 0x800c0580, 0x04020002, 0x49787806, 0x583c0807, | ||
1183 | 0x800409c0, 0x0400000e, 0x583c0008, 0x80000000, | ||
1184 | 0x48007808, 0x80040580, 0x04020009, 0x49787808, | ||
1185 | 0x583c2006, 0x42001800, 0x00000001, 0x42001000, | ||
1186 | 0x00008028, 0x0201f800, 0x00103a3e, 0x1c01f000, | ||
1187 | 0x4a03c800, 0x00000020, 0x0201f800, 0x0010aa40, | ||
1188 | 0x59e40000, 0x1c01f000, 0x4d2c0000, 0x4a007001, | ||
1189 | 0x00000000, 0x82040d00, 0x43000f80, 0x02020800, | ||
1190 | 0x001005d8, 0x58380009, 0x4803c00f, 0x0201f800, | ||
1191 | 0x00109402, 0x583a5808, 0x592c0000, 0x48007008, | ||
1192 | 0x800001c0, 0x04020002, 0x49787007, 0x0201f800, | ||
1193 | 0x001007f4, 0x5c025800, 0x0201f000, 0x0010087d, | ||
1194 | 0x4803c856, 0x4c3c0000, 0x4d2c0000, 0x4d300000, | ||
1195 | 0x5830000a, 0x80025d40, 0x02000800, 0x001005d8, | ||
1196 | 0x592e6008, 0x4c300000, 0x0201f800, 0x0010941a, | ||
1197 | 0x5c006000, 0x02000800, 0x001005d8, 0x58300002, | ||
1198 | 0x82000580, 0x00000100, 0x04020010, 0x5930780b, | ||
1199 | 0x583c0001, 0x80000540, 0x0400000e, 0x4802600b, | ||
1200 | 0x40007800, 0x82000400, 0x00000002, 0x48006003, | ||
1201 | 0x583c0000, 0x48006004, 0x40301000, 0x0201f800, | ||
1202 | 0x00100858, 0x0401f00c, 0x4a025a06, 0x00000002, | ||
1203 | 0x4c300000, 0x0201f800, 0x000202da, 0x5c006000, | ||
1204 | 0x40325800, 0x0201f800, 0x001007f4, 0x0201f800, | ||
1205 | 0x0002077d, 0x5c026000, 0x5c025800, 0x5c007800, | ||
1206 | 0x1c01f000, 0x4803c856, 0x4d2c0000, 0x4d300000, | ||
1207 | 0x42007000, 0x0010b7f8, 0x58380801, 0x82040580, | ||
1208 | 0x00000002, 0x04020011, 0x58386002, 0x5830000a, | ||
1209 | 0x812c0580, 0x0402000d, 0x59e00004, 0x8c00050e, | ||
1210 | 0x040007fe, 0x59dc0006, 0x4803c857, 0x4a03b805, | ||
1211 | 0x20000000, 0x8c00053e, 0x040007f8, 0x4a007001, | ||
1212 | 0x00000000, 0x0401f019, 0x58386006, 0x40305000, | ||
1213 | 0x803061c0, 0x02000800, 0x001005d8, 0x5830000a, | ||
1214 | 0x812c0580, 0x04000004, 0x40305000, 0x58306000, | ||
1215 | 0x0401f7f8, 0x40280000, 0x80300580, 0x58300000, | ||
1216 | 0x04000006, 0x48005000, 0x800001c0, 0x04020007, | ||
1217 | 0x48287005, 0x0401f005, 0x800001c0, 0x04020002, | ||
1218 | 0x48007005, 0x48007006, 0x40325800, 0x0201f800, | ||
1219 | 0x001007f4, 0x42007000, 0x0010b7f8, 0x58380001, | ||
1220 | 0x82000580, 0x00000000, 0x02000800, 0x0010087d, | ||
1221 | 0x5c026000, 0x5c025800, 0x1c01f000, 0x4803c856, | ||
1222 | 0x42000800, 0x0000003c, 0x48079000, 0x59c80000, | ||
1223 | 0x80040500, 0x040207fe, 0x497b9005, 0x4a039035, | ||
1224 | 0x00880200, 0x59a8000e, 0x800000e0, 0x4803900e, | ||
1225 | 0x4a039011, 0x00000024, 0x4a03900f, 0x0010d1c0, | ||
1226 | 0x4a039010, 0x0010d1c0, 0x4a039015, 0x0000007f, | ||
1227 | 0x4a03900d, 0x00000040, 0x4a039000, 0x00001600, | ||
1228 | 0x1c01f000, 0x59c80007, 0x8c000508, 0x040208b7, | ||
1229 | 0x59c80800, 0x8c040d16, 0x04020004, 0x82000500, | ||
1230 | 0x00000006, 0x0c01f005, 0x4807c857, 0x82000500, | ||
1231 | 0x0000000e, 0x0c01f001, 0x001012a8, 0x001012a6, | ||
1232 | 0x00105999, 0x001012a6, 0x001012aa, 0x001012a6, | ||
1233 | 0x001012aa, 0x001012aa, 0x001012a6, 0x001012a6, | ||
1234 | 0x001012a6, 0x001012a6, 0x001012aa, 0x001012a6, | ||
1235 | 0x001012aa, 0x001012a6, 0x0201f800, 0x001005d8, | ||
1236 | 0x4803c857, 0x1c01f000, 0x59c8080c, 0x4807c857, | ||
1237 | 0x82040500, 0x00006000, 0x04000004, 0x0201f800, | ||
1238 | 0x0010aa03, 0x0401f006, 0x82040500, 0x007f0000, | ||
1239 | 0x04000006, 0x0201f800, 0x0010a9d5, 0x0201f800, | ||
1240 | 0x00106eb3, 0x0401f02b, 0x82040500, 0x00000014, | ||
1241 | 0x04000014, 0x0201f800, 0x0010aa32, 0x836c0580, | ||
1242 | 0x00000003, 0x0400000d, 0x0201f800, 0x0010513b, | ||
1243 | 0x04000004, 0x0201f800, 0x0010411d, 0x0401f007, | ||
1244 | 0x4a035033, 0x00000001, 0x4202d800, 0x00000001, | ||
1245 | 0x0201f800, 0x001050a2, 0x0401f817, 0x0401f015, | ||
1246 | 0x82040500, 0x00001c00, 0x04000005, 0x0201f800, | ||
1247 | 0x0010aa11, 0x0401f810, 0x0401f00e, 0x82040500, | ||
1248 | 0x00000140, 0x04000005, 0x0201f800, 0x0010aa24, | ||
1249 | 0x0401f809, 0x0401f007, 0x82040500, 0x00008000, | ||
1250 | 0x04000004, 0x0201f800, 0x0010a9fc, 0x0401f802, | ||
1251 | 0x1c01f000, 0x4c0c0000, 0x4c100000, 0x4c140000, | ||
1252 | 0x0201f800, 0x00100ec9, 0x5c002800, 0x5c002000, | ||
1253 | 0x5c001800, 0x1c01f000, 0x4803c856, 0x59a80804, | ||
1254 | 0x59a8002b, 0x82000500, 0xfffff000, 0x80040540, | ||
1255 | 0x4803502b, 0x59a8002f, 0x82000500, 0xfffff000, | ||
1256 | 0x80040540, 0x4803502f, 0x48078882, 0x82041c00, | ||
1257 | 0x0000000f, 0x800c1908, 0x820c1c00, 0x00000004, | ||
1258 | 0x400c2000, 0x901029c0, 0x82040480, 0x000001e4, | ||
1259 | 0x04021005, 0x42001000, 0x00000008, 0x801020c6, | ||
1260 | 0x0401f031, 0x82040480, 0x00000230, 0x04021009, | ||
1261 | 0x42001000, 0x00000007, 0x801000c2, 0x800000c2, | ||
1262 | 0x80100400, 0x80100400, 0x80102400, 0x0401f026, | ||
1263 | 0x82040480, 0x00000298, 0x04021008, 0x42001000, | ||
1264 | 0x00000006, 0x801000c2, 0x800000c2, 0x80100400, | ||
1265 | 0x80102400, 0x0401f01c, 0x82040480, 0x00000328, | ||
1266 | 0x04021007, 0x42001000, 0x00000005, 0x801000c2, | ||
1267 | 0x800000c2, 0x80102400, 0x0401f013, 0x82040480, | ||
1268 | 0x00000404, 0x04021005, 0x42001000, 0x00000004, | ||
1269 | 0x801020c4, 0x0401f00c, 0x82040480, 0x0000056c, | ||
1270 | 0x04021006, 0x42001000, 0x00000003, 0x801000c2, | ||
1271 | 0x80102400, 0x0401f004, 0x42001000, 0x00000002, | ||
1272 | 0x801020c2, 0x82100480, 0x00000110, 0x80000080, | ||
1273 | 0x80002000, 0x800800d0, 0x80140540, 0x80100540, | ||
1274 | 0x48039035, 0x1c01f000, 0x59c80815, 0x0201f800, | ||
1275 | 0x001005d0, 0x82040d00, 0x0000007c, 0x48079000, | ||
1276 | 0x59c80000, 0x80040500, 0x040207fe, 0x8c040d04, | ||
1277 | 0x04000003, 0x59c80035, 0x48039035, 0x59c80000, | ||
1278 | 0x82000540, 0x00001200, 0x48039000, 0x1c01f000, | ||
1279 | 0x4803c856, 0x497b88a9, 0x4a038807, 0x00000001, | ||
1280 | 0x497b8807, 0x59c40005, 0x48038805, 0x0201f800, | ||
1281 | 0x00101815, 0x4201d000, 0x000001f4, 0x0201f800, | ||
1282 | 0x0010608e, 0x497b880e, 0x4200b000, 0x000001f4, | ||
1283 | 0x42000000, 0x00000001, 0x42000800, 0x00000014, | ||
1284 | 0x0201f800, 0x00101944, 0x42000800, 0x00000014, | ||
1285 | 0x0201f800, 0x0010193f, 0x8c040d00, 0x04000005, | ||
1286 | 0x8058b040, 0x040207f3, 0x0201f800, 0x001005d8, | ||
1287 | 0x4200b000, 0x00000032, 0x42000000, 0x00000001, | ||
1288 | 0x42000800, 0x000000b4, 0x0201f800, 0x00101944, | ||
1289 | 0x42000800, 0x000000b4, 0x0201f800, 0x0010193f, | ||
1290 | 0x8c040d00, 0x04000005, 0x8058b040, 0x040207f3, | ||
1291 | 0x0201f800, 0x001005d8, 0x59c40005, 0x48038805, | ||
1292 | 0x42000000, 0x00000089, 0x800008d0, 0x48075054, | ||
1293 | 0x48075055, 0x48075056, 0x42000800, 0x000000e0, | ||
1294 | 0x0201f800, 0x00101944, 0x42000800, 0x000000f4, | ||
1295 | 0x0201f800, 0x0010193f, 0x82040500, 0xffffffd1, | ||
1296 | 0x82000540, 0x00000002, 0x42000800, 0x000000f4, | ||
1297 | 0x0201f800, 0x00101944, 0x42000800, 0x000000a0, | ||
1298 | 0x0201f800, 0x0010193f, 0x82040540, 0x00000001, | ||
1299 | 0x42000800, 0x000000a0, 0x0201f800, 0x00101944, | ||
1300 | 0x42000800, 0x00000000, 0x0201f800, 0x0010193f, | ||
1301 | 0x82040540, 0x00000001, 0x42000800, 0x00000000, | ||
1302 | 0x0201f800, 0x00101944, 0x4201d000, 0x0001d4c0, | ||
1303 | 0x0201f800, 0x0010608e, 0x0401fa2b, 0x4a0388a7, | ||
1304 | 0x0000f7f7, 0x4a0388a3, 0x8000403c, 0x4a0388ae, | ||
1305 | 0x000061a8, 0x4a038801, 0x00032063, 0x4a038810, | ||
1306 | 0x00410108, 0x4a038811, 0x00520608, 0x4a038812, | ||
1307 | 0x00450320, 0x4a038813, 0x00440405, 0x4a03881c, | ||
1308 | 0x004132e1, 0x4a038850, 0x80000108, 0x4a038860, | ||
1309 | 0x00000008, 0x4a038870, 0x00000008, 0x4a038851, | ||
1310 | 0x80000508, 0x4a038861, 0x00800000, 0x4a038871, | ||
1311 | 0x00800000, 0x4a038852, 0x80000708, 0x4a038862, | ||
1312 | 0x00800000, 0x4a038872, 0x00800000, 0x4a038853, | ||
1313 | 0x80000608, 0x497b8863, 0x4a038873, 0x00800000, | ||
1314 | 0x4a038882, 0x00000840, 0x4a0388a5, 0x0000001e, | ||
1315 | 0x4a0388a6, 0x0000001e, 0x4a0388b0, 0x00007530, | ||
1316 | 0x4a038802, 0x0000ffff, 0x4a038806, 0xc0e00800, | ||
1317 | 0x1c01f000, 0x497b5022, 0x4a035021, 0x00000001, | ||
1318 | 0x42000800, 0x00000040, 0x0201f800, 0x0010193f, | ||
1319 | 0x82040500, 0xffffffaf, 0x82000540, 0x00000000, | ||
1320 | 0x42000800, 0x00000040, 0x0201f800, 0x00101944, | ||
1321 | 0x42000800, 0x000000f4, 0x0201f800, 0x0010193f, | ||
1322 | 0x4c040000, 0x40040000, 0x84000548, 0x42000800, | ||
1323 | 0x000000f4, 0x0201f800, 0x00101944, 0x42000800, | ||
1324 | 0x00000000, 0x0201f800, 0x0010193f, 0x82040500, | ||
1325 | 0xffffffc1, 0x82000540, 0x00000038, 0x42000800, | ||
1326 | 0x00000000, 0x0201f800, 0x00101944, 0x5c000000, | ||
1327 | 0x42000800, 0x000000f4, 0x0201f000, 0x00101944, | ||
1328 | 0x59c40805, 0x4807c857, 0x59c40006, 0x80040d00, | ||
1329 | 0x02000800, 0x001005d8, 0x82040500, 0x00e00800, | ||
1330 | 0x04020004, 0x8c040d3e, 0x040208c4, 0x0401f007, | ||
1331 | 0x82040500, 0x00800800, 0x02020800, 0x001005d0, | ||
1332 | 0x0201f800, 0x001005d8, 0x4c5c0000, 0x4c600000, | ||
1333 | 0x59c4b805, 0x485fc857, 0x59c40006, 0x8c000500, | ||
1334 | 0x04000003, 0x8c5cbd00, 0x04020079, 0x0201f800, | ||
1335 | 0x0010513b, 0x04000014, 0x59c40005, 0x82000500, | ||
1336 | 0x000000c0, 0x04000036, 0x0201f800, 0x00105151, | ||
1337 | 0x04020033, 0x4a038805, 0x04000000, 0x59c400a3, | ||
1338 | 0x82000500, 0xbf203fff, 0x480388a3, 0x497b5049, | ||
1339 | 0x4a038805, 0x000000c0, 0x0201f800, 0x00105065, | ||
1340 | 0x0401f063, 0x8c5cbd34, 0x04020025, 0x59c40005, | ||
1341 | 0x8c00050c, 0x04020012, 0x8c00050e, 0x04020013, | ||
1342 | 0x8c00050a, 0x04020014, 0x8c000508, 0x0400000b, | ||
1343 | 0x59a80017, 0x82000580, 0x00000009, 0x04020007, | ||
1344 | 0x42000000, 0x0010b844, 0x0201f800, 0x0010aa47, | ||
1345 | 0x0201f800, 0x00105318, 0x0401f04b, 0x4a035033, | ||
1346 | 0x00000000, 0x0401f00b, 0x4a035033, 0x00000002, | ||
1347 | 0x0401f008, 0x42000000, 0x0010b846, 0x0201f800, | ||
1348 | 0x0010aa47, 0x0201f800, 0x001052c2, 0x0401f03e, | ||
1349 | 0x0201f800, 0x00105378, 0x0401f03b, 0x8c5cbd34, | ||
1350 | 0x04000037, 0x59c40005, 0x8c00053a, 0x04020005, | ||
1351 | 0x42000000, 0x0010b818, 0x0201f800, 0x0010aa47, | ||
1352 | 0x4a038805, 0x02000000, 0x0201f800, 0x0010513b, | ||
1353 | 0x04020010, 0x4a038805, 0x04000000, 0x0201f800, | ||
1354 | 0x00105149, 0x04020008, 0x4a035033, 0x00000001, | ||
1355 | 0x4202d800, 0x00000001, 0x0201f800, 0x001050a2, | ||
1356 | 0x0401f05b, 0x41780000, 0x0201f800, 0x00105113, | ||
1357 | 0x0201f800, 0x001019fe, 0x4000c000, 0x0201f800, | ||
1358 | 0x00101963, 0x836c1580, 0x00000004, 0x0402000d, | ||
1359 | 0x8c5cbd00, 0x04020012, 0x59a81005, 0x8c081506, | ||
1360 | 0x04020005, 0x59c410a3, 0x82081540, 0x00000008, | ||
1361 | 0x480b88a3, 0x59c41006, 0x84081540, 0x480b8806, | ||
1362 | 0x4a038805, 0x04000000, 0x4202d800, 0x00000001, | ||
1363 | 0x497b5014, 0x0201f800, 0x00103b38, 0x8c5cbd3c, | ||
1364 | 0x04020858, 0x8c5cbd00, 0x04000036, 0x42000000, | ||
1365 | 0x0010b8ca, 0x0201f800, 0x0010aa47, 0x4a038805, | ||
1366 | 0x00000001, 0x4200b000, 0x000003e8, 0x4201d000, | ||
1367 | 0x00000064, 0x4c580000, 0x0201f800, 0x0010608e, | ||
1368 | 0x0201f800, 0x001018d3, 0x5c00b000, 0x04000004, | ||
1369 | 0x8058b040, 0x040207f6, 0x0401f004, 0x4a038805, | ||
1370 | 0x00000001, 0x0401f01f, 0x59c40006, 0x84000500, | ||
1371 | 0x48038806, 0x0201f800, 0x00106ede, 0x497b8880, | ||
1372 | 0x0201f800, 0x0010a9c0, 0x59c4000d, 0x8c000500, | ||
1373 | 0x02020800, 0x0010a9ce, 0x59c400a3, 0x82000500, | ||
1374 | 0xfcf8ffff, 0x480388a3, 0x4a03504c, 0x00000002, | ||
1375 | 0x4202d800, 0x00000004, 0x4a038805, 0x00000001, | ||
1376 | 0x0201f800, 0x001006d4, 0x0401fb3b, 0x497b5052, | ||
1377 | 0x4a035049, 0x00000001, 0x0201f800, 0x00100452, | ||
1378 | 0x825cbd00, 0xbbfffffe, 0x485f8805, 0x5c00c000, | ||
1379 | 0x5c00b800, 0x1c01f000, 0x59c41004, 0x480bc857, | ||
1380 | 0x8c081500, 0x04000006, 0x4803c856, 0x497b2807, | ||
1381 | 0x0201f800, 0x00106fa4, 0x0401f00a, 0x82080500, | ||
1382 | 0x000001f0, 0x04000007, 0x4803c856, 0x417a3000, | ||
1383 | 0x0201f800, 0x00106062, 0x0201f800, 0x00106fc6, | ||
1384 | 0x4a038805, 0x80000000, 0x1c01f000, 0x59c408a3, | ||
1385 | 0x4807c857, 0x84040d40, 0x480788a3, 0x1c01f000, | ||
1386 | 0x4d900000, 0x4dd00000, 0x4da40000, 0x4d140000, | ||
1387 | 0x4a038805, 0x40000000, 0x42000000, 0x0010b8c6, | ||
1388 | 0x0201f800, 0x0010aa47, 0x0201f800, 0x00106c55, | ||
1389 | 0x59c41004, 0x8c081500, 0x04000054, 0x598e600d, | ||
1390 | 0x497b2807, 0x813261c0, 0x04000032, 0x59300403, | ||
1391 | 0x82000580, 0x00000032, 0x0402002e, 0x5930001c, | ||
1392 | 0x48038833, 0x4a038807, 0x00018000, 0x4201d000, | ||
1393 | 0x00000002, 0x0201f800, 0x0010608e, 0x497b8807, | ||
1394 | 0x4201d000, 0x00000002, 0x0201f800, 0x0010608e, | ||
1395 | 0x0201f800, 0x00106e21, 0x4201d000, 0x00007530, | ||
1396 | 0x0201f800, 0x0010608e, 0x59c408a4, 0x82040d00, | ||
1397 | 0x0000000f, 0x82040d80, 0x00000000, 0x04000005, | ||
1398 | 0x42000000, 0x00200000, 0x0201f800, 0x00101949, | ||
1399 | 0x0201f800, 0x00106bbf, 0x59300008, 0x80000540, | ||
1400 | 0x02000800, 0x001005d8, 0x40025800, 0x4a025a04, | ||
1401 | 0x00000103, 0x5931d821, 0x58ef400b, 0x58ec0009, | ||
1402 | 0x0801f800, 0x0201f800, 0x0002077d, 0x0401f047, | ||
1403 | 0x598c000f, 0x82001c80, 0x000000c8, 0x0402100f, | ||
1404 | 0x80000000, 0x4803180f, 0x59c400a4, 0x82000500, | ||
1405 | 0x0000000f, 0x82000580, 0x00000002, 0x04020004, | ||
1406 | 0x42000000, 0x00200000, 0x0401fbf7, 0x0201f800, | ||
1407 | 0x0010604d, 0x0401f035, 0x4933c857, 0x0201f800, | ||
1408 | 0x00106e21, 0x813261c0, 0x04000030, 0x4a026203, | ||
1409 | 0x00000001, 0x42027000, 0x00000027, 0x0201f800, | ||
1410 | 0x000207a1, 0x0401f029, 0x8c081508, 0x04000027, | ||
1411 | 0x417a3000, 0x0201f800, 0x001070d8, 0x42032000, | ||
1412 | 0x0000bf32, 0x0201f800, 0x00106062, 0x59926004, | ||
1413 | 0x813261c0, 0x04000012, 0x42001800, 0x000000c8, | ||
1414 | 0x0201f800, 0x001070a4, 0x0402000d, 0x59c400a4, | ||
1415 | 0x82000500, 0x0000000f, 0x82000580, 0x00000002, | ||
1416 | 0x04020004, 0x42000000, 0x00200000, 0x0401fbce, | ||
1417 | 0x0201f800, 0x00106052, 0x0401f00c, 0x4933c857, | ||
1418 | 0x0201f800, 0x00106dc3, 0x813261c0, 0x04000007, | ||
1419 | 0x42027000, 0x0000004f, 0x4a026203, 0x00000003, | ||
1420 | 0x0201f800, 0x000207a1, 0x5c022800, 0x5c034800, | ||
1421 | 0x5c03a000, 0x5c032000, 0x0201f000, 0x00106c4b, | ||
1422 | 0x4803c857, 0x59a80821, 0x48035021, 0x80041580, | ||
1423 | 0x04000045, 0x800409c0, 0x04000023, 0x497b504c, | ||
1424 | 0x42000000, 0x0010b80d, 0x0201f800, 0x0010aa47, | ||
1425 | 0x0201f800, 0x0010aaf9, 0x42001000, 0x00008011, | ||
1426 | 0x59c40001, 0x82000500, 0x00018000, 0x82001d80, | ||
1427 | 0x00000000, 0x04000009, 0x82001d80, 0x00008000, | ||
1428 | 0x04000009, 0x82001d80, 0x00010000, 0x04000009, | ||
1429 | 0x0201f800, 0x001005d8, 0x42001800, 0x00000000, | ||
1430 | 0x0401f006, 0x42001800, 0x00000001, 0x0401f003, | ||
1431 | 0x42001800, 0x00000003, 0x0201f800, 0x00103a3e, | ||
1432 | 0x0401f021, 0x59a8084c, 0x800409c0, 0x04020007, | ||
1433 | 0x59c4000d, 0x8c000520, 0x04000004, 0x42001800, | ||
1434 | 0x00000003, 0x0401f002, 0x40041800, 0x0201f800, | ||
1435 | 0x0010aadd, 0x42001000, 0x00008012, 0x0201f800, | ||
1436 | 0x00103a3e, 0x0201f800, 0x001006d4, 0x0201f800, | ||
1437 | 0x0010ab33, 0x0402000c, 0x0401f853, 0x4d400000, | ||
1438 | 0x4d3c0000, 0x42028000, 0x00000028, 0x42027800, | ||
1439 | 0x00000408, 0x0201f800, 0x00101fe5, 0x5c027800, | ||
1440 | 0x5c028000, 0x1c01f000, 0x4803c857, 0x82000400, | ||
1441 | 0x0010210e, 0x50000800, 0x82040d00, 0x000000ff, | ||
1442 | 0x1c01f000, 0x4803c856, 0x4c580000, 0x4200b000, | ||
1443 | 0x00000010, 0x497b88ac, 0x497b88ad, 0x8058b040, | ||
1444 | 0x040207fe, 0x5c00b000, 0x1c01f000, 0x4807c857, | ||
1445 | 0x48075010, 0x80041108, 0x4200b000, 0x00000010, | ||
1446 | 0x497b88ac, 0x80000580, 0x800811c0, 0x04020006, | ||
1447 | 0x82040500, 0x0000000f, 0x82000400, 0x0010ab38, | ||
1448 | 0x50000000, 0x480388ad, 0x80081040, 0x8058b040, | ||
1449 | 0x040207f5, 0x1c01f000, 0x59a80005, 0x04000003, | ||
1450 | 0x84000546, 0x0401f002, 0x84000506, 0x48035005, | ||
1451 | 0x4803c857, 0x1c01f000, 0x4803c857, 0x4c080000, | ||
1452 | 0x4c040000, 0x4c000000, 0x59c40892, 0x4807c857, | ||
1453 | 0x80041580, 0x04000010, 0x80041480, 0x04021007, | ||
1454 | 0x80081080, 0x80081000, 0x4008b000, 0x42000000, | ||
1455 | 0x00000201, 0x0401f004, 0x4008b000, 0x42000000, | ||
1456 | 0x00000210, 0x48038886, 0x8058b040, 0x040207fe, | ||
1457 | 0x497b8886, 0x5c000000, 0x5c000800, 0x5c001000, | ||
1458 | 0x1c01f000, 0x4803c856, 0x0201f800, 0x00103b25, | ||
1459 | 0x04000005, 0x42028000, 0x0000002e, 0x0201f000, | ||
1460 | 0x0010a449, 0x1c01f000, 0x42000800, 0x00000002, | ||
1461 | 0x59a80005, 0x8c000514, 0x0402000b, 0x59c80835, | ||
1462 | 0x82040d00, 0x00001f00, 0x80040910, 0x80040800, | ||
1463 | 0x59a8006c, 0x80000540, 0x04000003, 0x42000800, | ||
1464 | 0x0000025a, 0x4807c857, 0x1c01f000, 0x4c000000, | ||
1465 | 0x59a80053, 0x4803c857, 0x82000580, 0x00000000, | ||
1466 | 0x5c000000, 0x1c01f000, 0x4c000000, 0x59a80053, | ||
1467 | 0x4803c857, 0x82000580, 0x00000001, 0x5c000000, | ||
1468 | 0x1c01f000, 0x4c000000, 0x59a80053, 0x4803c857, | ||
1469 | 0x82000580, 0x00000003, 0x5c000000, 0x1c01f000, | ||
1470 | 0x4c000000, 0x59a80053, 0x82000580, 0x00000002, | ||
1471 | 0x5c000000, 0x1c01f000, 0x4c000000, 0x4c040000, | ||
1472 | 0x4c080000, 0x4c380000, 0x59a80040, 0x82000c80, | ||
1473 | 0x00000007, 0x02021800, 0x001005d8, 0x0c01f806, | ||
1474 | 0x5c007000, 0x5c001000, 0x5c000800, 0x5c000000, | ||
1475 | 0x1c01f000, 0x0010166c, 0x0010167f, 0x00101693, | ||
1476 | 0x00101695, 0x001016bc, 0x001016be, 0x001016c0, | ||
1477 | 0x4803c856, 0x4a035042, 0x00000000, 0x42000000, | ||
1478 | 0x00000002, 0x0401fa1b, 0x42000000, 0x00000002, | ||
1479 | 0x0401f9ad, 0x0401fab2, 0x4803c856, 0x4a035040, | ||
1480 | 0x00000006, 0x42000800, 0x0000001e, 0x42001000, | ||
1481 | 0x001016c1, 0x0201f000, 0x0010606e, 0x497b5045, | ||
1482 | 0x4a035050, 0x00000036, 0x4a03504f, 0x0000002a, | ||
1483 | 0x4803c856, 0x4a035042, 0x00000001, 0x42000000, | ||
1484 | 0x00000002, 0x0401f998, 0x4803c856, 0x4a035040, | ||
1485 | 0x00000006, 0x42000800, 0x0000001e, 0x42001000, | ||
1486 | 0x001016c1, 0x0201f000, 0x0010606e, 0x0201f800, | ||
1487 | 0x001005d8, 0x4a035050, 0x00000036, 0x4803c856, | ||
1488 | 0x4a035042, 0x00000003, 0x42000800, 0x00000000, | ||
1489 | 0x0401faa3, 0x82040d00, 0x00000090, 0x82040580, | ||
1490 | 0x00000090, 0x04000009, 0x82040580, 0x00000010, | ||
1491 | 0x04000009, 0x82040580, 0x00000000, 0x04000008, | ||
1492 | 0x0201f800, 0x001005d8, 0x42000000, 0x00000001, | ||
1493 | 0x0401f005, 0x41780000, 0x0401f003, 0x42000000, | ||
1494 | 0x00000002, 0x0401f970, 0x497b5046, 0x4803c856, | ||
1495 | 0x4a035040, 0x00000006, 0x42000800, 0x0000001e, | ||
1496 | 0x42001000, 0x001016c1, 0x0201f000, 0x0010606e, | ||
1497 | 0x0201f800, 0x001005d8, 0x0201f800, 0x001005d8, | ||
1498 | 0x1c01f000, 0x4c000000, 0x4c040000, 0x4c080000, | ||
1499 | 0x4c380000, 0x59a80042, 0x82000c80, 0x00000007, | ||
1500 | 0x02021800, 0x001005d8, 0x0c01f806, 0x5c007000, | ||
1501 | 0x5c001000, 0x5c000800, 0x5c000000, 0x1c01f000, | ||
1502 | 0x001016d7, 0x001016f6, 0x0010174a, 0x00101761, | ||
1503 | 0x00101778, 0x00101781, 0x00101783, 0x0401f9fc, | ||
1504 | 0x0402001b, 0x59a81048, 0x42000800, 0x00000000, | ||
1505 | 0x0401fa63, 0x82040d00, 0x00000090, 0x82040580, | ||
1506 | 0x00000090, 0x04000009, 0x82040580, 0x00000010, | ||
1507 | 0x04000008, 0x82040580, 0x00000000, 0x04000007, | ||
1508 | 0x0201f800, 0x001005d8, 0x84081540, 0x0401f004, | ||
1509 | 0x84081542, 0x0401f002, 0x84081544, 0x480b5048, | ||
1510 | 0x4a035040, 0x00000001, 0x0401f003, 0x0401f8cb, | ||
1511 | 0x0401ff82, 0x1c01f000, 0x0401f88f, 0x04000052, | ||
1512 | 0x0401f9db, 0x0402002a, 0x42000800, 0x00000000, | ||
1513 | 0x0401fa43, 0x82040d00, 0x00000090, 0x82040580, | ||
1514 | 0x00000000, 0x04000044, 0x82040580, 0x00000010, | ||
1515 | 0x04000006, 0x82040580, 0x00000090, 0x04000009, | ||
1516 | 0x0201f800, 0x001005d8, 0x59c40801, 0x82040d00, | ||
1517 | 0x00018000, 0x82040580, 0x00000000, 0x04000036, | ||
1518 | 0x42000800, 0x00000000, 0x0401fa2d, 0x82040d00, | ||
1519 | 0x00000090, 0x82040580, 0x00000010, 0x04000006, | ||
1520 | 0x82040580, 0x00000090, 0x04000006, 0x02020800, | ||
1521 | 0x001005d8, 0x59a80048, 0x84000542, 0x0401f003, | ||
1522 | 0x59a80048, 0x84000540, 0x48035048, 0x59a80045, | ||
1523 | 0x80000000, 0x48035045, 0x82000580, 0x00000005, | ||
1524 | 0x04000003, 0x0401f861, 0x0401f01e, 0x497b5045, | ||
1525 | 0x59c40801, 0x82040d00, 0x00018000, 0x82040580, | ||
1526 | 0x00000000, 0x04000009, 0x82040580, 0x00008000, | ||
1527 | 0x04000009, 0x82040580, 0x00010000, 0x04000008, | ||
1528 | 0x0201f800, 0x001005d8, 0x42000000, 0x00000001, | ||
1529 | 0x0401f005, 0x41780000, 0x0401f003, 0x42000000, | ||
1530 | 0x00000002, 0x0401f94b, 0x4a035042, 0x00000002, | ||
1531 | 0x0401f004, 0x4a035040, 0x00000003, 0x0401f002, | ||
1532 | 0x0401ff42, 0x1c01f000, 0x0401f83b, 0x04000015, | ||
1533 | 0x59a8004f, 0x80000040, 0x4803504f, 0x0401f984, | ||
1534 | 0x04020005, 0x4a035040, 0x00000003, 0x497b5041, | ||
1535 | 0x0401f00c, 0x59a8004f, 0x80000540, 0x04020003, | ||
1536 | 0x0401f89e, 0x0401f002, 0x0401f84b, 0x0401f82f, | ||
1537 | 0x497b5045, 0x4a035042, 0x00000001, 0x0401ff2b, | ||
1538 | 0x1c01f000, 0x0401f824, 0x04000015, 0x0401f970, | ||
1539 | 0x0402000f, 0x59a80046, 0x80000000, 0x48035046, | ||
1540 | 0x82000580, 0x00000007, 0x0402000c, 0x4a035052, | ||
1541 | 0x0000000a, 0x497b5049, 0x59a80048, 0x8400055e, | ||
1542 | 0x48035048, 0x4803c857, 0x0401f005, 0x0401f817, | ||
1543 | 0x4a035042, 0x00000004, 0x0401ff3d, 0x1c01f000, | ||
1544 | 0x0401f80d, 0x04000007, 0x0401f959, 0x04020003, | ||
1545 | 0x0401ff1b, 0x0401f003, 0x0401f80c, 0x0401ff34, | ||
1546 | 0x1c01f000, 0x0201f800, 0x001005d8, 0x0201f800, | ||
1547 | 0x001005d8, 0x59a80050, 0x80000040, 0x48035050, | ||
1548 | 0x0400088d, 0x1c01f000, 0x4c040000, 0x42000800, | ||
1549 | 0x00000000, 0x0401f9b2, 0x82040d00, 0x00000090, | ||
1550 | 0x82040580, 0x00000090, 0x04000009, 0x82040580, | ||
1551 | 0x00000010, 0x04000009, 0x82040580, 0x00000000, | ||
1552 | 0x04000009, 0x0201f800, 0x001005d8, 0x42000000, | ||
1553 | 0x00000002, 0x0401f005, 0x42000000, 0x00000001, | ||
1554 | 0x0401f002, 0x41780000, 0x0401f8ea, 0x5c000800, | ||
1555 | 0x1c01f000, 0x4c040000, 0x59c40801, 0x82040d00, | ||
1556 | 0x00018000, 0x82040580, 0x00000000, 0x04000009, | ||
1557 | 0x82040580, 0x00008000, 0x04000009, 0x82040580, | ||
1558 | 0x00010000, 0x04000009, 0x0201f800, 0x001005d8, | ||
1559 | 0x42000000, 0x00000002, 0x0401f005, 0x42000000, | ||
1560 | 0x00000001, 0x0401f002, 0x41780000, 0x0401f866, | ||
1561 | 0x5c000800, 0x1c01f000, 0x4c040000, 0x59a80045, | ||
1562 | 0x80000000, 0x48035045, 0x82000580, 0x00000005, | ||
1563 | 0x04020018, 0x497b5045, 0x59c40801, 0x82040d00, | ||
1564 | 0x00018000, 0x82040580, 0x00000000, 0x04000009, | ||
1565 | 0x82040580, 0x00008000, 0x04000009, 0x82040580, | ||
1566 | 0x00010000, 0x04000009, 0x0201f800, 0x001005d8, | ||
1567 | 0x42000000, 0x00000002, 0x0401f005, 0x42000000, | ||
1568 | 0x00000001, 0x0401f002, 0x41780000, 0x0401f846, | ||
1569 | 0x42000800, 0x00000000, 0x0401f961, 0x82040d00, | ||
1570 | 0x00000090, 0x82040580, 0x00000090, 0x04000009, | ||
1571 | 0x82040580, 0x00000010, 0x04000009, 0x82040580, | ||
1572 | 0x00000000, 0x04000009, 0x0201f800, 0x001005d8, | ||
1573 | 0x42000000, 0x00000002, 0x0401f005, 0x42000000, | ||
1574 | 0x00000001, 0x0401f002, 0x41780000, 0x0401f899, | ||
1575 | 0x5c000800, 0x1c01f000, 0x4c200000, 0x59a80048, | ||
1576 | 0x82000500, 0x00007fff, 0x02000800, 0x001005d8, | ||
1577 | 0x59a84047, 0x80204102, 0x02001800, 0x001005d8, | ||
1578 | 0x48235047, 0x80204500, 0x040007fa, 0x8c000504, | ||
1579 | 0x04020007, 0x8c000502, 0x04020008, 0x8c000500, | ||
1580 | 0x04020008, 0x0201f800, 0x001005d8, 0x42000000, | ||
1581 | 0x00000002, 0x0401f005, 0x41780000, 0x0401f003, | ||
1582 | 0x42000000, 0x00000001, 0x0401f80f, 0x5c004000, | ||
1583 | 0x1c01f000, 0x04011000, 0x4a03c840, 0x0010b440, | ||
1584 | 0x4a03c842, 0x00000009, 0x40000000, 0x040117ff, | ||
1585 | 0x4a035047, 0x00000004, 0x4a03503e, 0x00000000, | ||
1586 | 0x1c01f000, 0x59a80858, 0x82040d80, 0x01391077, | ||
1587 | 0x04020008, 0x59e00813, 0x8c040d00, 0x04000005, | ||
1588 | 0x82000d80, 0x00000002, 0x04020002, 0x41780000, | ||
1589 | 0x4c000000, 0x0401f9b1, 0x5c000000, 0x800001c0, | ||
1590 | 0x04000040, 0x82000d80, 0x00000001, 0x0402001d, | ||
1591 | 0x42000800, 0x000000a0, 0x0401f909, 0x82040540, | ||
1592 | 0x00000004, 0x42000800, 0x000000a0, 0x0401f909, | ||
1593 | 0x42000800, 0x000000c0, 0x0401f901, 0x82040540, | ||
1594 | 0x00000020, 0x42000800, 0x000000c0, 0x0401f901, | ||
1595 | 0x59c40001, 0x82000500, 0xfffe7fff, 0x82000540, | ||
1596 | 0x00000000, 0x48038801, 0x59a80054, 0x80000110, | ||
1597 | 0x42000800, 0x000000e0, 0x0401f8f6, 0x0401f03c, | ||
1598 | 0x82000d80, 0x00000002, 0x02020800, 0x001005d8, | ||
1599 | 0x42000800, 0x000000a0, 0x0401f8e9, 0x82040500, | ||
1600 | 0xfffffffb, 0x42000800, 0x000000a0, 0x0401f8e9, | ||
1601 | 0x42000800, 0x000000c0, 0x0401f8e1, 0x82040500, | ||
1602 | 0xffffffdf, 0x42000800, 0x000000c0, 0x0401f8e1, | ||
1603 | 0x59c40001, 0x82000500, 0xfffe7fff, 0x82000540, | ||
1604 | 0x00010000, 0x48038801, 0x59a80056, 0x80000110, | ||
1605 | 0x42000800, 0x000000e0, 0x0401f8d6, 0x0401f01c, | ||
1606 | 0x42000800, 0x000000a0, 0x0401f8cd, 0x82040540, | ||
1607 | 0x00000004, 0x42000800, 0x000000a0, 0x0401f8cd, | ||
1608 | 0x42000800, 0x000000c0, 0x0401f8c5, 0x82040500, | ||
1609 | 0xffffffdf, 0x42000800, 0x000000c0, 0x0401f8c5, | ||
1610 | 0x59c40001, 0x82000500, 0xfffe7fff, 0x82000540, | ||
1611 | 0x00008000, 0x48038801, 0x59a80055, 0x80000110, | ||
1612 | 0x42000800, 0x000000e0, 0x0401f8ba, 0x0401f163, | ||
1613 | 0x4803c857, 0x59a80858, 0x82040d80, 0x01391077, | ||
1614 | 0x04020008, 0x59e00813, 0x8c040d00, 0x04000005, | ||
1615 | 0x82000d80, 0x00000002, 0x04020002, 0x41780000, | ||
1616 | 0x4c000000, 0x0401f94d, 0x5c000000, 0x800001c0, | ||
1617 | 0x04000026, 0x82000d80, 0x00000001, 0x04020010, | ||
1618 | 0x59a8006c, 0x80000540, 0x04000004, 0x42001000, | ||
1619 | 0x00000000, 0x0401fa0a, 0x42000800, 0x00000000, | ||
1620 | 0x0401f897, 0x82040540, 0x00000090, 0x42000800, | ||
1621 | 0x00000000, 0x0401f897, 0x0401f024, 0x82000d80, | ||
1622 | 0x00000002, 0x02020800, 0x001005d8, 0x59a8006c, | ||
1623 | 0x80000540, 0x04000004, 0x42001000, 0x00010000, | ||
1624 | 0x0401f9f7, 0x42000800, 0x00000000, 0x0401f884, | ||
1625 | 0x82040500, 0xffffff6f, 0x42000800, 0x00000000, | ||
1626 | 0x0401f884, 0x0401f011, 0x59a8006c, 0x80000540, | ||
1627 | 0x04000004, 0x42001000, 0x00008000, 0x0401f9e8, | ||
1628 | 0x42000800, 0x00000000, 0x0401f875, 0x82040500, | ||
1629 | 0xffffff6f, 0x82000540, 0x00000010, 0x42000800, | ||
1630 | 0x00000000, 0x0401f873, 0x0401f124, 0x4c580000, | ||
1631 | 0x4200b000, 0x00000014, 0x8058b040, 0x04000043, | ||
1632 | 0x59c4000d, 0x8c000520, 0x040207fc, 0x0401f85c, | ||
1633 | 0x59c4000d, 0x8c000520, 0x040207f8, 0x59c40808, | ||
1634 | 0x84040d50, 0x48078808, 0x4200b000, 0x000000c8, | ||
1635 | 0x8058b040, 0x040207ff, 0x4200b000, 0x00000014, | ||
1636 | 0x8058b040, 0x04000031, 0x59c4000d, 0x8c000520, | ||
1637 | 0x0402002e, 0x42000800, 0x00001000, 0x50040800, | ||
1638 | 0x82040c80, 0x24220001, 0x04020003, 0x8c000504, | ||
1639 | 0x040007f4, 0x0401f842, 0x59c4000d, 0x8c000520, | ||
1640 | 0x04020022, 0x42000800, 0x00001000, 0x50040800, | ||
1641 | 0x82040c80, 0x24220001, 0x04020003, 0x8c000504, | ||
1642 | 0x040007e8, 0x4200b000, 0x0000000a, 0x8058b040, | ||
1643 | 0x04000003, 0x0401f832, 0x0401f7fd, 0x4200b000, | ||
1644 | 0x00000064, 0x59c4000d, 0x8c00051e, 0x0400000f, | ||
1645 | 0x8058b040, 0x040207fc, 0x42000000, 0x00001000, | ||
1646 | 0x50000000, 0x82000480, 0x24220001, 0x04020004, | ||
1647 | 0x59c40808, 0x84040d10, 0x48078808, 0x80000580, | ||
1648 | 0x4803c857, 0x0401f00c, 0x42000000, 0x00001000, | ||
1649 | 0x50000000, 0x82000480, 0x24220001, 0x04020004, | ||
1650 | 0x59c40808, 0x84040d10, 0x48078808, 0x82000540, | ||
1651 | 0x00000001, 0x5c00b000, 0x1c01f000, 0x42000800, | ||
1652 | 0x000000a0, 0x0401f816, 0x82040500, 0xfffffffe, | ||
1653 | 0x42000800, 0x000000a0, 0x0401f816, 0x42000800, | ||
1654 | 0x00000000, 0x0401f80e, 0x82040500, 0xfffffffe, | ||
1655 | 0x42000800, 0x00000000, 0x0401f00e, 0x40000000, | ||
1656 | 0x40000000, 0x40000000, 0x40000000, 0x40000000, | ||
1657 | 0x1c01f000, 0x480b8805, 0x1c01f000, 0x4807880e, | ||
1658 | 0x59c4080f, 0x82040d00, 0x000000ff, 0x1c01f000, | ||
1659 | 0x900001c0, 0x80040d40, 0x84040d40, 0x4807880e, | ||
1660 | 0x1c01f000, 0x82000d80, 0x00200000, 0x04000009, | ||
1661 | 0x82000d80, 0x02000000, 0x04000006, 0x82000d80, | ||
1662 | 0x01000000, 0x04000006, 0x59c408a3, 0x0401f006, | ||
1663 | 0x59c408a3, 0x84040d30, 0x0401f003, 0x59c408a3, | ||
1664 | 0x84040d32, 0x80040540, 0x480388a3, 0x480788a3, | ||
1665 | 0x1c01f000, 0x59c400a3, 0x84000556, 0x480388a3, | ||
1666 | 0x84000516, 0x480388a3, 0x1c01f000, 0x485fc857, | ||
1667 | 0x4863c857, 0x4c640000, 0x4d3c0000, 0x4d400000, | ||
1668 | 0x0201f800, 0x00106ede, 0x4863500a, 0x0201f800, | ||
1669 | 0x0010ab33, 0x0402006c, 0x82600d00, 0x0000ff00, | ||
1670 | 0x800409c0, 0x0400000c, 0x4200c800, 0x00000001, | ||
1671 | 0x59a80010, 0x82000500, 0x000000ff, 0x80041110, | ||
1672 | 0x80081580, 0x04000021, 0x82041580, 0x0000ff00, | ||
1673 | 0x0400000a, 0x59c410a3, 0x82081500, 0x00008000, | ||
1674 | 0x04000009, 0x59c410a7, 0x82081500, 0x0000ff00, | ||
1675 | 0x82081580, 0x0000ff00, 0x4200c800, 0x00000000, | ||
1676 | 0x04000012, 0x59a80005, 0x8c000502, 0x04020008, | ||
1677 | 0x8c000500, 0x0402000d, 0x599c1017, 0x8c08151a, | ||
1678 | 0x0400003e, 0x84000542, 0x48035005, 0x4200c800, | ||
1679 | 0x00000002, 0x42028000, 0x00000004, 0x42027800, | ||
1680 | 0x00000008, 0x0401f008, 0x59a80805, 0x84040d40, | ||
1681 | 0x48075005, 0x42028000, 0x00000004, 0x42027800, | ||
1682 | 0x00000400, 0x59a80006, 0x8c000502, 0x04020006, | ||
1683 | 0x59a80805, 0x8c040d0a, 0x04020033, 0x84040d4a, | ||
1684 | 0x48075005, 0x42000000, 0x0010b812, 0x0201f800, | ||
1685 | 0x0010aa47, 0x59a8180a, 0x42001000, 0x00008013, | ||
1686 | 0x0201f800, 0x00103a3e, 0x0201f800, 0x00103b25, | ||
1687 | 0x04000015, 0x4d400000, 0x82600500, 0x000000ff, | ||
1688 | 0x42028800, 0x0000ffff, 0x40643000, 0x42028000, | ||
1689 | 0x0000000e, 0x0201f800, 0x0010a446, 0x42000800, | ||
1690 | 0x00000001, 0x42001000, 0x00000100, 0x0201f800, | ||
1691 | 0x0010618b, 0x5c028000, 0x599c0817, 0x8c040d0a, | ||
1692 | 0x04020011, 0x493fc857, 0x4943c857, 0x0201f800, | ||
1693 | 0x00101fe5, 0x0401f00c, 0x0201f800, 0x00103b25, | ||
1694 | 0x04000009, 0x42028000, 0x0000000f, 0x42028800, | ||
1695 | 0x0000ffff, 0x42003000, 0x00000000, 0x0201f800, | ||
1696 | 0x0010a449, 0x497b8880, 0x5c028000, 0x5c027800, | ||
1697 | 0x5c00c800, 0x1c01f000, 0x42000800, 0x000000a0, | ||
1698 | 0x0401ff5f, 0x82040540, 0x00000002, 0x42000800, | ||
1699 | 0x000000a0, 0x0401f75f, 0x42000800, 0x00000000, | ||
1700 | 0x0401ff57, 0x82040540, 0x00000002, 0x42000800, | ||
1701 | 0x00000000, 0x0401f757, 0x42000800, 0x000000a0, | ||
1702 | 0x0401ff4f, 0x82040500, 0xfffffffd, 0x42000800, | ||
1703 | 0x000000a0, 0x0401f74f, 0x42000800, 0x00000000, | ||
1704 | 0x0401ff47, 0x82040500, 0xfffffffd, 0x42000800, | ||
1705 | 0x00000000, 0x0401f747, 0x59c408a8, 0x0401ff38, | ||
1706 | 0x0401ff37, 0x59c400a8, 0x80040d80, 0x040207fb, | ||
1707 | 0x1c01f000, 0x4803c856, 0x4a038807, 0x00000001, | ||
1708 | 0x497b8807, 0x59c40005, 0x48038805, 0x497b506c, | ||
1709 | 0x497b506d, 0x41785800, 0x42006000, 0x00000001, | ||
1710 | 0x42006800, 0x00000003, 0x0401f824, 0x0401f82f, | ||
1711 | 0x40400000, 0x4803c857, 0x82408580, 0x00000000, | ||
1712 | 0x0402001d, 0x41785800, 0x42006000, 0x0000001e, | ||
1713 | 0x42006800, 0x00000014, 0x0401f818, 0x0401f823, | ||
1714 | 0x40400000, 0x4803c857, 0x82408580, 0x00000800, | ||
1715 | 0x04020011, 0x42005800, 0x00000001, 0x42006000, | ||
1716 | 0x0000001e, 0x42006800, 0x00000014, 0x0401f80b, | ||
1717 | 0x0401f816, 0x40400000, 0x4803c857, 0x82408580, | ||
1718 | 0x0000ffff, 0x04020004, 0x4a03506c, 0x00000001, | ||
1719 | 0x4803c856, 0x1c01f000, 0x41785000, 0x0401f812, | ||
1720 | 0x0401f838, 0x40347000, 0x40340800, 0x0401f03d, | ||
1721 | 0x42005000, 0x00000001, 0x0401f80b, 0x0401f831, | ||
1722 | 0x40340800, 0x0401f037, 0x42005000, 0x00000002, | ||
1723 | 0x0401f805, 0x0401f81d, 0x0401f835, 0x40048000, | ||
1724 | 0x1c01f000, 0x0401f808, 0x0401f814, 0x40280800, | ||
1725 | 0x0401f826, 0x402c0800, 0x0401f827, 0x40300800, | ||
1726 | 0x0401f025, 0x42000800, 0x0000ffff, 0x42001000, | ||
1727 | 0x00000001, 0x0401f829, 0x42001000, 0x00000010, | ||
1728 | 0x0401f826, 0x42000800, 0x0000ffff, 0x42001000, | ||
1729 | 0x00000010, 0x0401f021, 0x41780800, 0x42001000, | ||
1730 | 0x00000002, 0x0401f01d, 0x0401f92e, 0x4a03d000, | ||
1731 | 0x00050004, 0x0401f92b, 0x4a03d000, 0x00050005, | ||
1732 | 0x0401f928, 0x4a03d000, 0x00050004, 0x42000800, | ||
1733 | 0x00000001, 0x42001000, 0x00000001, 0x0401f00f, | ||
1734 | 0x42000800, 0x00000002, 0x42001000, 0x00000002, | ||
1735 | 0x0401f00a, 0x42001000, 0x00000005, 0x0401f007, | ||
1736 | 0x42001000, 0x00000010, 0x0401f004, 0x42001000, | ||
1737 | 0x00000010, 0x0401f01b, 0x0401f912, 0x82082c00, | ||
1738 | 0x0010ab38, 0x50142800, 0x82081500, 0xffffffff, | ||
1739 | 0x04000013, 0x0401f90b, 0x80081040, 0x80142902, | ||
1740 | 0x40040000, 0x80140500, 0x04000007, 0x4a03d000, | ||
1741 | 0x00070006, 0x0401f903, 0x4a03d000, 0x00070007, | ||
1742 | 0x0401f006, 0x4a03d000, 0x00070004, 0x0401f8fd, | ||
1743 | 0x4a03d000, 0x00070005, 0x0401f7ec, 0x1c01f000, | ||
1744 | 0x41780800, 0x82082c00, 0x0010ab38, 0x50142800, | ||
1745 | 0x82081500, 0xffffffff, 0x04000010, 0x0401f8f1, | ||
1746 | 0x4a03d000, 0x00050001, 0x0401f8ee, 0x59e81800, | ||
1747 | 0x80081040, 0x80142902, 0x8c0c1d06, 0x04000004, | ||
1748 | 0x40140000, 0x80040d40, 0x0401f8e6, 0x4a03d000, | ||
1749 | 0x00070000, 0x0401f7ef, 0x1c01f000, 0x480bc857, | ||
1750 | 0x480b506d, 0x59c40001, 0x82000500, 0xffffefff, | ||
1751 | 0x48038801, 0x41781800, 0x0401f8c4, 0x41785800, | ||
1752 | 0x42006000, 0x0000001e, 0x42006800, 0x00000004, | ||
1753 | 0x0401ff7a, 0x42006800, 0x0000003c, 0x0401ff7d, | ||
1754 | 0x41785800, 0x42006000, 0x0000001e, 0x42006800, | ||
1755 | 0x00000004, 0x0401ff71, 0x41786800, 0x0401ff75, | ||
1756 | 0x41785800, 0x42006000, 0x0000001e, 0x41786800, | ||
1757 | 0x0401ff6a, 0x42006800, 0x00000002, 0x0401ff6d, | ||
1758 | 0x42006800, 0x00000001, 0x0401ff64, 0x42006800, | ||
1759 | 0x000000f5, 0x0401ff67, 0x41785800, 0x42006000, | ||
1760 | 0x0000001e, 0x42006800, 0x00000004, 0x0401ff5b, | ||
1761 | 0x42006800, 0x00000020, 0x0401ff5e, 0x59a8106d, | ||
1762 | 0x0401f865, 0x42001800, 0x000200f5, 0x0401f897, | ||
1763 | 0x59a8106d, 0x0401f879, 0x41785800, 0x42006000, | ||
1764 | 0x0000001e, 0x42006800, 0x00000004, 0x0401ff4b, | ||
1765 | 0x41786800, 0x0401ff4f, 0x59c40001, 0x82000540, | ||
1766 | 0x00001000, 0x48038801, 0x41785800, 0x42006000, | ||
1767 | 0x0000001e, 0x42006800, 0x00000015, 0x0401ff3f, | ||
1768 | 0x0401ff4a, 0x40400000, 0x82000540, 0x00000002, | ||
1769 | 0x4c000000, 0x41785800, 0x42006000, 0x0000001e, | ||
1770 | 0x42006800, 0x00000015, 0x0401ff34, 0x5c000000, | ||
1771 | 0x40006800, 0x0401ff37, 0x41785800, 0x42006000, | ||
1772 | 0x0000001e, 0x42006800, 0x00000015, 0x0401ff2b, | ||
1773 | 0x0401ff36, 0x40400000, 0x82000500, 0x0000fffd, | ||
1774 | 0x4c000000, 0x41785800, 0x42006000, 0x0000001e, | ||
1775 | 0x42006800, 0x00000015, 0x0401ff20, 0x5c000000, | ||
1776 | 0x40006800, 0x0401ff23, 0x41785800, 0x42006000, | ||
1777 | 0x0000001e, 0x42006800, 0x00000014, 0x0401ff17, | ||
1778 | 0x0401ff22, 0x40400000, 0x82000540, 0x00000040, | ||
1779 | 0x4c000000, 0x41785800, 0x42006000, 0x0000001e, | ||
1780 | 0x42006800, 0x00000014, 0x0401ff0c, 0x5c000000, | ||
1781 | 0x40006800, 0x0401ff0f, 0x41785800, 0x42006000, | ||
1782 | 0x0000001e, 0x42006800, 0x00000014, 0x0401ff03, | ||
1783 | 0x0401ff0e, 0x40400000, 0x82000500, 0x0000ffbf, | ||
1784 | 0x4c000000, 0x41785800, 0x42006000, 0x0000001e, | ||
1785 | 0x42006800, 0x00000014, 0x0401fef8, 0x5c000000, | ||
1786 | 0x40006800, 0x0401fefb, 0x4a038886, 0x00002020, | ||
1787 | 0x0401f04c, 0x480bc857, 0x82080580, 0x00010000, | ||
1788 | 0x04020007, 0x82040d40, 0x00010000, 0x42001800, | ||
1789 | 0x00000001, 0x0401f82d, 0x0401f00f, 0x82080580, | ||
1790 | 0x00008000, 0x04000007, 0x82040d40, 0x00000000, | ||
1791 | 0x42001800, 0x00900001, 0x0401f824, 0x0401f006, | ||
1792 | 0x82040d40, 0x00008000, 0x42001800, 0x00100001, | ||
1793 | 0x0401f81e, 0x1c01f000, 0x480bc857, 0x82080580, | ||
1794 | 0x00010000, 0x04020008, 0x42001800, 0x000000a1, | ||
1795 | 0x0401f816, 0x42001800, 0x000000c1, 0x0401f813, | ||
1796 | 0x0401f011, 0x82080580, 0x00008000, 0x04000008, | ||
1797 | 0x42001800, 0x000400a1, 0x0401f80c, 0x42001800, | ||
1798 | 0x002000c1, 0x0401f809, 0x0401f007, 0x42001800, | ||
1799 | 0x000400a1, 0x0401f805, 0x42001800, 0x000000c1, | ||
1800 | 0x0401f802, 0x1c01f000, 0x480fc857, 0x41785800, | ||
1801 | 0x42006000, 0x0000001e, 0x41786800, 0x0401feb7, | ||
1802 | 0x400c6800, 0x80346960, 0x0401feba, 0x42006800, | ||
1803 | 0x00000001, 0x0401feb1, 0x400c6800, 0x0401feb5, | ||
1804 | 0x42006800, 0x00000003, 0x0401feac, 0x0401feb7, | ||
1805 | 0x40400000, 0x8c000504, 0x040207fc, 0x1c01f000, | ||
1806 | 0x42000000, 0x00000064, 0x80000040, 0x040207ff, | ||
1807 | 0x1c01f000, 0x00020103, 0x00101bd5, 0x00101bdb, | ||
1808 | 0x00101be1, 0x00101be9, 0x00101bef, 0x00101bf7, | ||
1809 | 0x00101bff, 0x00101c09, 0x00101c0f, 0x00101c17, | ||
1810 | 0x00101c1f, 0x00101c29, 0x00101c31, 0x00101c3b, | ||
1811 | 0x00101c45, 0x000200f8, 0x00101c51, 0x00101c59, | ||
1812 | 0x00101c61, 0x00101c6b, 0x00101c73, 0x00101c7d, | ||
1813 | 0x00101c87, 0x00101c93, 0x00101c9b, 0x00101ca5, | ||
1814 | 0x00101caf, 0x00101cbb, 0x00101cc5, 0x00101cd1, | ||
1815 | 0x00101cdd, 0x000200fd, 0x00101ceb, 0x00101cf3, | ||
1816 | 0x00101cfb, 0x00101d05, 0x00101d0d, 0x00101d17, | ||
1817 | 0x00101d21, 0x00101d2d, 0x00101d35, 0x00101d3f, | ||
1818 | 0x00101d49, 0x00101d55, 0x00101d5f, 0x00101d6b, | ||
1819 | 0x00101d77, 0x00101d85, 0x00101d8d, 0x00101d97, | ||
1820 | 0x00101da1, 0x00101dad, 0x00101db7, 0x00101dc3, | ||
1821 | 0x00101dcf, 0x00101ddd, 0x00101de7, 0x00101df3, | ||
1822 | 0x00101dff, 0x00101e0d, 0x00101e19, 0x00101e27, | ||
1823 | 0x00101e35, 0x4c000000, 0x4df00000, 0x0201f800, | ||
1824 | 0x00020104, 0x0201f000, 0x00020101, 0x4c000000, | ||
1825 | 0x4df00000, 0x0201f800, 0x00101418, 0x0201f000, | ||
1826 | 0x00020101, 0x4c000000, 0x4df00000, 0x0201f800, | ||
1827 | 0x00101418, 0x0201f800, 0x00020104, 0x0201f000, | ||
1828 | 0x00020101, 0x4c000000, 0x4df00000, 0x0201f800, | ||
1829 | 0x00101155, 0x0201f000, 0x00020101, 0x4c000000, | ||
1830 | 0x4df00000, 0x0201f800, 0x00101155, 0x0201f800, | ||
1831 | 0x00020104, 0x0201f000, 0x00020101, 0x4c000000, | ||
1832 | 0x4df00000, 0x0201f800, 0x00101155, 0x0201f800, | ||
1833 | 0x00101418, 0x0201f000, 0x00020101, 0x4c000000, | ||
1834 | 0x4df00000, 0x0201f800, 0x00101155, 0x0201f800, | ||
1835 | 0x00101418, 0x0201f800, 0x00020104, 0x0201f000, | ||
1836 | 0x00020101, 0x4c000000, 0x4df00000, 0x0201f800, | ||
1837 | 0x00101289, 0x0201f000, 0x00020101, 0x4c000000, | ||
1838 | 0x4df00000, 0x0201f800, 0x00101289, 0x0201f800, | ||
1839 | 0x00020104, 0x0201f000, 0x00020101, 0x4c000000, | ||
1840 | 0x4df00000, 0x0201f800, 0x00101418, 0x0201f800, | ||
1841 | 0x00101289, 0x0201f000, 0x00020101, 0x4c000000, | ||
1842 | 0x4df00000, 0x0201f800, 0x00101418, 0x0201f800, | ||
1843 | 0x00101289, 0x0201f800, 0x00020104, 0x0201f000, | ||
1844 | 0x00020101, 0x4c000000, 0x4df00000, 0x0201f800, | ||
1845 | 0x00101155, 0x0201f800, 0x00101289, 0x0201f000, | ||
1846 | 0x00020101, 0x4c000000, 0x4df00000, 0x0201f800, | ||
1847 | 0x00101155, 0x0201f800, 0x00101289, 0x0201f800, | ||
1848 | 0x00020104, 0x0201f000, 0x00020101, 0x4c000000, | ||
1849 | 0x4df00000, 0x0201f800, 0x00101155, 0x0201f800, | ||
1850 | 0x00101418, 0x0201f800, 0x00101289, 0x0201f000, | ||
1851 | 0x00020101, 0x4c000000, 0x4df00000, 0x0201f800, | ||
1852 | 0x00101155, 0x0201f800, 0x00101418, 0x0201f800, | ||
1853 | 0x00101289, 0x0201f800, 0x00020104, 0x0201f000, | ||
1854 | 0x00020101, 0x4c000000, 0x4df00000, 0x0201f800, | ||
1855 | 0x00020729, 0x0201f800, 0x00020104, 0x0201f000, | ||
1856 | 0x00020101, 0x4c000000, 0x4df00000, 0x0201f800, | ||
1857 | 0x00101418, 0x0201f800, 0x00020729, 0x0201f000, | ||
1858 | 0x00020101, 0x4c000000, 0x4df00000, 0x0201f800, | ||
1859 | 0x00101418, 0x0201f800, 0x00020729, 0x0201f800, | ||
1860 | 0x00020104, 0x0201f000, 0x00020101, 0x4c000000, | ||
1861 | 0x4df00000, 0x0201f800, 0x00101155, 0x0201f800, | ||
1862 | 0x00020729, 0x0201f000, 0x00020101, 0x4c000000, | ||
1863 | 0x4df00000, 0x0201f800, 0x00101155, 0x0201f800, | ||
1864 | 0x00020729, 0x0201f800, 0x00020104, 0x0201f000, | ||
1865 | 0x00020101, 0x4c000000, 0x4df00000, 0x0201f800, | ||
1866 | 0x00101155, 0x0201f800, 0x00101418, 0x0201f800, | ||
1867 | 0x00020729, 0x0201f000, 0x00020101, 0x4c000000, | ||
1868 | 0x4df00000, 0x0201f800, 0x00101155, 0x0201f800, | ||
1869 | 0x00101418, 0x0201f800, 0x00020729, 0x0201f800, | ||
1870 | 0x00020104, 0x0201f000, 0x00020101, 0x4c000000, | ||
1871 | 0x4df00000, 0x0201f800, 0x00020729, 0x0201f800, | ||
1872 | 0x00101289, 0x0201f000, 0x00020101, 0x4c000000, | ||
1873 | 0x4df00000, 0x0201f800, 0x00020729, 0x0201f800, | ||
1874 | 0x00101289, 0x0201f800, 0x00020104, 0x0201f000, | ||
1875 | 0x00020101, 0x4c000000, 0x4df00000, 0x0201f800, | ||
1876 | 0x00101418, 0x0201f800, 0x00020729, 0x0201f800, | ||
1877 | 0x00101289, 0x0201f000, 0x00020101, 0x4c000000, | ||
1878 | 0x4df00000, 0x0201f800, 0x00101418, 0x0201f800, | ||
1879 | 0x00020729, 0x0201f800, 0x00101289, 0x0201f800, | ||
1880 | 0x00020104, 0x0201f000, 0x00020101, 0x4c000000, | ||
1881 | 0x4df00000, 0x0201f800, 0x00101155, 0x0201f800, | ||
1882 | 0x00020729, 0x0201f800, 0x00101289, 0x0201f000, | ||
1883 | 0x00020101, 0x4c000000, 0x4df00000, 0x0201f800, | ||
1884 | 0x00101155, 0x0201f800, 0x00020729, 0x0201f800, | ||
1885 | 0x00101289, 0x0201f800, 0x00020104, 0x0201f000, | ||
1886 | 0x00020101, 0x4c000000, 0x4df00000, 0x0201f800, | ||
1887 | 0x00101155, 0x0201f800, 0x00101418, 0x0201f800, | ||
1888 | 0x00020729, 0x0201f800, 0x00101289, 0x0201f000, | ||
1889 | 0x00020101, 0x4c000000, 0x4df00000, 0x0201f800, | ||
1890 | 0x00101155, 0x0201f800, 0x00101418, 0x0201f800, | ||
1891 | 0x00020729, 0x0201f800, 0x00101289, 0x0201f800, | ||
1892 | 0x00020104, 0x0201f000, 0x00020101, 0x4c000000, | ||
1893 | 0x4df00000, 0x0201f800, 0x00020015, 0x0201f800, | ||
1894 | 0x00020104, 0x0201f000, 0x00020101, 0x4c000000, | ||
1895 | 0x4df00000, 0x0201f800, 0x00101418, 0x0201f800, | ||
1896 | 0x00020015, 0x0201f000, 0x00020101, 0x4c000000, | ||
1897 | 0x4df00000, 0x0201f800, 0x00101418, 0x0201f800, | ||
1898 | 0x00020015, 0x0201f800, 0x00020104, 0x0201f000, | ||
1899 | 0x00020101, 0x4c000000, 0x4df00000, 0x0201f800, | ||
1900 | 0x00101155, 0x0201f800, 0x00020015, 0x0201f000, | ||
1901 | 0x00020101, 0x4c000000, 0x4df00000, 0x0201f800, | ||
1902 | 0x00101155, 0x0201f800, 0x00020015, 0x0201f800, | ||
1903 | 0x00020104, 0x0201f000, 0x00020101, 0x4c000000, | ||
1904 | 0x4df00000, 0x0201f800, 0x00101418, 0x0201f800, | ||
1905 | 0x00101155, 0x0201f800, 0x00020015, 0x0201f000, | ||
1906 | 0x00020101, 0x4c000000, 0x4df00000, 0x0201f800, | ||
1907 | 0x00101418, 0x0201f800, 0x00101155, 0x0201f800, | ||
1908 | 0x00020015, 0x0201f800, 0x00020104, 0x0201f000, | ||
1909 | 0x00020101, 0x4c000000, 0x4df00000, 0x0201f800, | ||
1910 | 0x00020015, 0x0201f800, 0x00101289, 0x0201f000, | ||
1911 | 0x00020101, 0x4c000000, 0x4df00000, 0x0201f800, | ||
1912 | 0x00020015, 0x0201f800, 0x00101289, 0x0201f800, | ||
1913 | 0x00020104, 0x0201f000, 0x00020101, 0x4c000000, | ||
1914 | 0x4df00000, 0x0201f800, 0x00101418, 0x0201f800, | ||
1915 | 0x00020015, 0x0201f800, 0x00101289, 0x0201f000, | ||
1916 | 0x00020101, 0x4c000000, 0x4df00000, 0x0201f800, | ||
1917 | 0x00101418, 0x0201f800, 0x00020015, 0x0201f800, | ||
1918 | 0x00101289, 0x0201f800, 0x00020104, 0x0201f000, | ||
1919 | 0x00020101, 0x4c000000, 0x4df00000, 0x0201f800, | ||
1920 | 0x00020015, 0x0201f800, 0x00101289, 0x0201f800, | ||
1921 | 0x00101155, 0x0201f000, 0x00020101, 0x4c000000, | ||
1922 | 0x4df00000, 0x0201f800, 0x00020015, 0x0201f800, | ||
1923 | 0x00101289, 0x0201f800, 0x00101155, 0x0201f800, | ||
1924 | 0x00020104, 0x0201f000, 0x00020101, 0x4c000000, | ||
1925 | 0x4df00000, 0x0201f800, 0x00101418, 0x0201f800, | ||
1926 | 0x00020015, 0x0201f800, 0x00101289, 0x0201f800, | ||
1927 | 0x00101155, 0x0201f000, 0x00020101, 0x4c000000, | ||
1928 | 0x4df00000, 0x0201f800, 0x00101418, 0x0201f800, | ||
1929 | 0x00020015, 0x0201f800, 0x00101289, 0x0201f800, | ||
1930 | 0x00101155, 0x0201f800, 0x00020104, 0x0201f000, | ||
1931 | 0x00020101, 0x4c000000, 0x4df00000, 0x0201f800, | ||
1932 | 0x00020729, 0x0201f800, 0x00020015, 0x0201f000, | ||
1933 | 0x00020101, 0x4c000000, 0x4df00000, 0x0201f800, | ||
1934 | 0x00020729, 0x0201f800, 0x00020015, 0x0201f800, | ||
1935 | 0x00020104, 0x0201f000, 0x00020101, 0x4c000000, | ||
1936 | 0x4df00000, 0x0201f800, 0x00101418, 0x0201f800, | ||
1937 | 0x00020729, 0x0201f800, 0x00020015, 0x0201f000, | ||
1938 | 0x00020101, 0x4c000000, 0x4df00000, 0x0201f800, | ||
1939 | 0x00101418, 0x0201f800, 0x00020729, 0x0201f800, | ||
1940 | 0x00020015, 0x0201f800, 0x00020104, 0x0201f000, | ||
1941 | 0x00020101, 0x4c000000, 0x4df00000, 0x0201f800, | ||
1942 | 0x00020729, 0x0201f800, 0x00020015, 0x0201f800, | ||
1943 | 0x00101155, 0x0201f000, 0x00020101, 0x4c000000, | ||
1944 | 0x4df00000, 0x0201f800, 0x00020729, 0x0201f800, | ||
1945 | 0x00020015, 0x0201f800, 0x00101155, 0x0201f800, | ||
1946 | 0x00020104, 0x0201f000, 0x00020101, 0x4c000000, | ||
1947 | 0x4df00000, 0x0201f800, 0x00101418, 0x0201f800, | ||
1948 | 0x00020729, 0x0201f800, 0x00020015, 0x0201f800, | ||
1949 | 0x00101155, 0x0201f000, 0x00020101, 0x4c000000, | ||
1950 | 0x4df00000, 0x0201f800, 0x00101418, 0x0201f800, | ||
1951 | 0x00020729, 0x0201f800, 0x00020015, 0x0201f800, | ||
1952 | 0x00101155, 0x0201f800, 0x00020104, 0x0201f000, | ||
1953 | 0x00020101, 0x4c000000, 0x4df00000, 0x0201f800, | ||
1954 | 0x00020729, 0x0201f800, 0x00020015, 0x0201f800, | ||
1955 | 0x00101289, 0x0201f000, 0x00020101, 0x4c000000, | ||
1956 | 0x4df00000, 0x0201f800, 0x00020729, 0x0201f800, | ||
1957 | 0x00020015, 0x0201f800, 0x00101289, 0x0201f800, | ||
1958 | 0x00020104, 0x0201f000, 0x00020101, 0x4c000000, | ||
1959 | 0x4df00000, 0x0201f800, 0x00101418, 0x0201f800, | ||
1960 | 0x00020729, 0x0201f800, 0x00020015, 0x0201f800, | ||
1961 | 0x00101289, 0x0201f000, 0x00020101, 0x4c000000, | ||
1962 | 0x4df00000, 0x0201f800, 0x00101418, 0x0201f800, | ||
1963 | 0x00020729, 0x0201f800, 0x00020015, 0x0201f800, | ||
1964 | 0x00101289, 0x0201f800, 0x00020104, 0x0201f000, | ||
1965 | 0x00020101, 0x4c000000, 0x4df00000, 0x0201f800, | ||
1966 | 0x00101155, 0x0201f800, 0x00020729, 0x0201f800, | ||
1967 | 0x00020015, 0x0201f800, 0x00101289, 0x0201f000, | ||
1968 | 0x00020101, 0x4c000000, 0x4df00000, 0x0201f800, | ||
1969 | 0x00101155, 0x0201f800, 0x00020729, 0x0201f800, | ||
1970 | 0x00020015, 0x0201f800, 0x00101289, 0x0201f800, | ||
1971 | 0x00020104, 0x0201f000, 0x00020101, 0x4c000000, | ||
1972 | 0x4df00000, 0x0201f800, 0x00101155, 0x0201f800, | ||
1973 | 0x00101418, 0x0201f800, 0x00020729, 0x0201f800, | ||
1974 | 0x00020015, 0x0201f800, 0x00101289, 0x0201f000, | ||
1975 | 0x00020101, 0x4c000000, 0x4df00000, 0x0201f800, | ||
1976 | 0x00101155, 0x0201f800, 0x00101418, 0x0201f800, | ||
1977 | 0x00020729, 0x0201f800, 0x00020015, 0x0201f800, | ||
1978 | 0x00101289, 0x0201f800, 0x00020104, 0x0201f000, | ||
1979 | 0x00020101, 0x4c5c0000, 0x4c600000, 0x4178b800, | ||
1980 | 0x0201f800, 0x001048ec, 0x040200fd, 0x59a8c026, | ||
1981 | 0x0201f800, 0x0010513b, 0x04000003, 0x8c60c506, | ||
1982 | 0x0400000e, 0x8c60c500, 0x04020004, 0x8c60c50e, | ||
1983 | 0x040008f6, 0x0401f0f2, 0x0401fab4, 0x040200f0, | ||
1984 | 0x0201f800, 0x0010513b, 0x04020004, 0x4a03501c, | ||
1985 | 0x0000ffff, 0x0401f0ea, 0x8c60c504, 0x04000004, | ||
1986 | 0x4a03501c, 0x0000ffff, 0x0401f0e5, 0x59a8c010, | ||
1987 | 0x8260c500, 0x000000ff, 0x59a81013, 0x8c081500, | ||
1988 | 0x0400005d, 0x8c081502, 0x0402005b, 0x59a8b81c, | ||
1989 | 0x825c0d80, 0x0000ffff, 0x04020003, 0x4200b800, | ||
1990 | 0x00000001, 0x805c1104, 0x82086400, 0x0010be21, | ||
1991 | 0x50300800, 0x825c0500, 0x00000003, 0x0c01f001, | ||
1992 | 0x00101e81, 0x00101e7c, 0x00101e80, 0x00101e7e, | ||
1993 | 0x80040910, 0x0401f004, 0x80040930, 0x0401f002, | ||
1994 | 0x80040920, 0x82040500, 0x000000ff, 0x82000d80, | ||
1995 | 0x000000ff, 0x0400000f, 0x4c000000, 0x82000400, | ||
1996 | 0x0010210e, 0x50000800, 0x80040910, 0x82040580, | ||
1997 | 0x00000080, 0x5c000000, 0x04000030, 0x80600d80, | ||
1998 | 0x0400002e, 0x80000540, 0x0400002c, 0x0401f00b, | ||
1999 | 0x59a81005, 0x82081500, 0x00000003, 0x0402002b, | ||
2000 | 0x59a81013, 0x84081542, 0x480b5013, 0x4a03501c, | ||
2001 | 0x0000ffff, 0x0401f028, 0x4c000000, 0x59a80005, | ||
2002 | 0x8c000514, 0x42001000, 0x00000010, 0x02020800, | ||
2003 | 0x00104c6d, 0x5c000000, 0x0402001c, 0x417a8800, | ||
2004 | 0x0201f800, 0x00105c9a, 0x04020016, 0x0201f800, | ||
2005 | 0x001045e5, 0x04000006, 0x0201f800, 0x00104c62, | ||
2006 | 0x0401f8b1, 0x0400000f, 0x0401f00c, 0x599c0019, | ||
2007 | 0x8c00050e, 0x04020009, 0x0201f800, 0x001045a6, | ||
2008 | 0x04020008, 0x0201f800, 0x00104c62, 0x0401f9e1, | ||
2009 | 0x0401f8be, 0x04000003, 0x805cb800, 0x0401f7b2, | ||
2010 | 0x485f501c, 0x0401f086, 0x4a03501c, 0x0000ffff, | ||
2011 | 0x0401f083, 0x42003000, 0x0000007e, 0x59a8001c, | ||
2012 | 0x82001580, 0x0000ffff, 0x04020005, 0x80000d80, | ||
2013 | 0x4018b000, 0x4803c856, 0x0401f009, 0x8018b480, | ||
2014 | 0x04001004, 0x40000800, 0x4803c856, 0x0401f004, | ||
2015 | 0x4a03501c, 0x0000ffff, 0x0401f071, 0x4c040000, | ||
2016 | 0x4c580000, 0x82040400, 0x0010210e, 0x50000000, | ||
2017 | 0x82000500, 0x000000ff, 0x80604580, 0x0400005c, | ||
2018 | 0x0201f800, 0x00105c9b, 0x04020061, 0x59a80005, | ||
2019 | 0x8c000514, 0x42001000, 0x00000010, 0x02020800, | ||
2020 | 0x00104c6d, 0x5c00b000, 0x5c000800, 0x040207d7, | ||
2021 | 0x4c040000, 0x4c580000, 0x845cbd00, 0x0201f800, | ||
2022 | 0x00020245, 0x04000008, 0x599c0019, 0x8c00050e, | ||
2023 | 0x04020047, 0x0201f800, 0x001045ab, 0x0402004c, | ||
2024 | 0x0401f002, 0x845cbd40, 0x0201f800, 0x00104c62, | ||
2025 | 0x0201f800, 0x001049e7, 0x04020007, 0x59a80005, | ||
2026 | 0x8c000502, 0x04000033, 0x59340200, 0x8c00050e, | ||
2027 | 0x04020030, 0x59a81013, 0x8c081502, 0x04000025, | ||
2028 | 0x0201f800, 0x00104a09, 0x04000031, 0x8c5cbd00, | ||
2029 | 0x04020004, 0x0201f800, 0x001045ff, 0x0401f02c, | ||
2030 | 0x0401f9cd, 0x0400002a, 0x42026000, 0x0010bde9, | ||
2031 | 0x49366009, 0x497a6008, 0x417a7800, 0x0401f925, | ||
2032 | 0x42000000, 0x0010b864, 0x0201f800, 0x0010aa47, | ||
2033 | 0x0201f800, 0x00103b25, 0x0400001d, 0x41782800, | ||
2034 | 0x42003000, 0x00000008, 0x4d400000, 0x4d440000, | ||
2035 | 0x59368c03, 0x42028000, 0x00000029, 0x0201f800, | ||
2036 | 0x0010a446, 0x5c028800, 0x5c028000, 0x0401f010, | ||
2037 | 0x4937c857, 0x599c0019, 0x8c00050e, 0x0402000c, | ||
2038 | 0x0401f96c, 0x0401f849, 0x04000011, 0x0401f008, | ||
2039 | 0x59a80013, 0x8c000500, 0x04000003, 0x0401f9a6, | ||
2040 | 0x04000003, 0x0401f828, 0x04000009, 0x5c00b000, | ||
2041 | 0x5c000800, 0x80040800, 0x8058b040, 0x04020798, | ||
2042 | 0x4a03501c, 0x0000ffff, 0x0401f005, 0x4937c857, | ||
2043 | 0x5c00b000, 0x5c000800, 0x4807501c, 0x5c00c000, | ||
2044 | 0x5c00b800, 0x1c01f000, 0x4803c856, 0x4a03501c, | ||
2045 | 0x00000001, 0x42028800, 0x000007fe, 0x42003000, | ||
2046 | 0x00fffffe, 0x0201f800, 0x001045a6, 0x0402000c, | ||
2047 | 0x0401f948, 0x0401f825, 0x04000009, 0x59a80026, | ||
2048 | 0x8400054e, 0x48035026, 0x0201f800, 0x0010930f, | ||
2049 | 0x82000540, 0x00000001, 0x1c01f000, 0x80000580, | ||
2050 | 0x0401f7fe, 0x4937c857, 0x0201f800, 0x00107942, | ||
2051 | 0x04000015, 0x49366009, 0x4a026406, 0x00000001, | ||
2052 | 0x417a7800, 0x0201f800, 0x00104567, 0x59a8001b, | ||
2053 | 0x80000000, 0x4803501b, 0x42027000, 0x00000004, | ||
2054 | 0x599c0019, 0x8c00050e, 0x04000003, 0x42027000, | ||
2055 | 0x00000000, 0x0201f800, 0x000207a1, 0x82000540, | ||
2056 | 0x00000001, 0x1c01f000, 0x4937c857, 0x0201f800, | ||
2057 | 0x00107942, 0x0400001c, 0x49366009, 0x59340403, | ||
2058 | 0x82000580, 0x000007fe, 0x04000005, 0x4d3c0000, | ||
2059 | 0x417a7800, 0x0401f8b7, 0x5c027800, 0x4a026406, | ||
2060 | 0x00000001, 0x417a7800, 0x0201f800, 0x00104567, | ||
2061 | 0x42000800, 0x00000003, 0x0201f800, 0x00104571, | ||
2062 | 0x59a8001b, 0x80000000, 0x4803501b, 0x42027000, | ||
2063 | 0x00000002, 0x0201f800, 0x000207a1, 0x82000540, | ||
2064 | 0x00000001, 0x1c01f000, 0x4803c856, 0x42028800, | ||
2065 | 0x000007fc, 0x42003000, 0x00fffffc, 0x0201f800, | ||
2066 | 0x001045a6, 0x04020005, 0x0401f805, 0x04000003, | ||
2067 | 0x4a035027, 0x0000ffff, 0x1c01f000, 0x4937c857, | ||
2068 | 0x0201f800, 0x00107942, 0x04000014, 0x49366009, | ||
2069 | 0x4a026406, 0x00000001, 0x417a7800, 0x0201f800, | ||
2070 | 0x00104567, 0x42000800, 0x00000003, 0x0201f800, | ||
2071 | 0x00104571, 0x59a80028, 0x80000000, 0x48035028, | ||
2072 | 0x42027000, 0x00000002, 0x0201f800, 0x000207a1, | ||
2073 | 0x82000540, 0x00000001, 0x1c01f000, 0x480bc857, | ||
2074 | 0x492fc857, 0x4c5c0000, 0x4008b800, 0x42028800, | ||
2075 | 0x000007fd, 0x42003000, 0x00fffffd, 0x0201f800, | ||
2076 | 0x001045a6, 0x0402001a, 0x0201f800, 0x0002075a, | ||
2077 | 0x04000017, 0x49366009, 0x5934000a, 0x84000544, | ||
2078 | 0x4802680a, 0x812e59c0, 0x04000005, 0x592c0404, | ||
2079 | 0x8c00051e, 0x04000002, 0x48ee6021, 0x492e6008, | ||
2080 | 0x4a026406, 0x00000001, 0x485e601c, 0x42027000, | ||
2081 | 0x00000022, 0x0201f800, 0x000207a1, 0x82000540, | ||
2082 | 0x00000001, 0x5c00b800, 0x1c01f000, 0x80000580, | ||
2083 | 0x0401f7fd, 0x5c000000, 0x4c000000, 0x4803c857, | ||
2084 | 0x4943c857, 0x493fc857, 0x4d340000, 0x4d440000, | ||
2085 | 0x4c580000, 0x4d2c0000, 0x4c5c0000, 0x0201f800, | ||
2086 | 0x00106c55, 0x4df00000, 0x0201f800, 0x001069f1, | ||
2087 | 0x0201f800, 0x00106aac, 0x0201f800, 0x00106737, | ||
2088 | 0x0201f800, 0x0010848a, 0x5c03e000, 0x02000800, | ||
2089 | 0x00106c4b, 0x4200b000, 0x000007f0, 0x417a8800, | ||
2090 | 0x0201f800, 0x00020245, 0x0402001f, 0x8d3e7d14, | ||
2091 | 0x04000005, 0x59340212, 0x82000500, 0x0000ff00, | ||
2092 | 0x04000019, 0x8d3e7d06, 0x04000004, 0x59340200, | ||
2093 | 0x8c00050e, 0x04020014, 0x8d3e7d18, 0x0400000f, | ||
2094 | 0x5934b80f, 0x805cb9c0, 0x04000009, 0x49425a06, | ||
2095 | 0x592cb800, 0x0201f800, 0x000202ce, 0x805cb9c0, | ||
2096 | 0x040207fb, 0x497a680f, 0x497a6810, 0x4a026c00, | ||
2097 | 0x00000707, 0x0401f004, 0x4937c857, 0x0201f800, | ||
2098 | 0x001042b4, 0x81468800, 0x8058b040, 0x040207dd, | ||
2099 | 0x8d3e7d02, 0x04000011, 0x497b501d, 0x42028800, | ||
2100 | 0x000007f0, 0x4200b000, 0x00000010, 0x0201f800, | ||
2101 | 0x00020245, 0x04020006, 0x4937c857, 0x4a026c00, | ||
2102 | 0x00000707, 0x0201f800, 0x001042b4, 0x81468800, | ||
2103 | 0x8058b040, 0x040207f6, 0x5c00b800, 0x5c025800, | ||
2104 | 0x5c00b000, 0x5c028800, 0x5c026800, 0x1c01f000, | ||
2105 | 0x5c000000, 0x4c000000, 0x4803c857, 0x4933c857, | ||
2106 | 0x493fc857, 0x4d340000, 0x4d400000, 0x4d440000, | ||
2107 | 0x4d2c0000, 0x4c5c0000, 0x0201f800, 0x00106c55, | ||
2108 | 0x4df00000, 0x59326809, 0x813669c0, 0x04000020, | ||
2109 | 0x59368c03, 0x42028000, 0x00000029, 0x0201f800, | ||
2110 | 0x00106a50, 0x0201f800, 0x00106ab4, 0x0201f800, | ||
2111 | 0x001067fd, 0x0201f800, 0x0010a2ff, 0x4937c857, | ||
2112 | 0x8d3e7d18, 0x04000010, 0x5934b80f, 0x805cb9c0, | ||
2113 | 0x0400000a, 0x405e5800, 0x49425a06, 0x592cb800, | ||
2114 | 0x0201f800, 0x000202ce, 0x805cb9c0, 0x040207fa, | ||
2115 | 0x497a680f, 0x497a6810, 0x4a026c00, 0x00000707, | ||
2116 | 0x0401f003, 0x0201f800, 0x001042b4, 0x5c03e000, | ||
2117 | 0x02000800, 0x00106c4b, 0x5c00b800, 0x5c025800, | ||
2118 | 0x5c028800, 0x5c028000, 0x5c026800, 0x1c01f000, | ||
2119 | 0x4933c857, 0x59a80026, 0x8c000508, 0x04020012, | ||
2120 | 0x59305009, 0x482bc857, 0x836c0580, 0x00000002, | ||
2121 | 0x0402000d, 0x0401f813, 0x0402000b, 0x58280403, | ||
2122 | 0x82000580, 0x000007fc, 0x04000008, 0x59a8001b, | ||
2123 | 0x80000040, 0x4803c857, 0x02001800, 0x001005d8, | ||
2124 | 0x4803501b, 0x1c01f000, 0x59a80028, 0x80000040, | ||
2125 | 0x4803c857, 0x040017fc, 0x48035028, 0x1c01f000, | ||
2126 | 0x59300008, 0x800001c0, 0x04020009, 0x59300403, | ||
2127 | 0x82000580, 0x00000001, 0x04020004, 0x82000540, | ||
2128 | 0x00000001, 0x0401f002, 0x80000580, 0x1c01f000, | ||
2129 | 0x4937c857, 0x59340200, 0x84000502, 0x48026a00, | ||
2130 | 0x1c01f000, 0x4933c857, 0x493fc857, 0x4947c857, | ||
2131 | 0x4d3c0000, 0x4d400000, 0x4d340000, 0x4d440000, | ||
2132 | 0x4c580000, 0x0201f800, 0x00106c55, 0x4df00000, | ||
2133 | 0x813e79c0, 0x04020004, 0x4200b000, 0x00000001, | ||
2134 | 0x0401f004, 0x4200b000, 0x000007f0, 0x417a8800, | ||
2135 | 0x41440000, 0x81ac0400, 0x50000000, 0x80026d40, | ||
2136 | 0x04000019, 0x42027800, 0x00000001, 0x0201f800, | ||
2137 | 0x001048f6, 0x42028000, 0x00000029, 0x417a7800, | ||
2138 | 0x0201f800, 0x00106a50, 0x0201f800, 0x00106ab4, | ||
2139 | 0x0201f800, 0x001067fd, 0x0201f800, 0x001049e7, | ||
2140 | 0x04020005, 0x4937c857, 0x4a026c00, 0x00000404, | ||
2141 | 0x0401f003, 0x0201f800, 0x00104a14, 0x0201f800, | ||
2142 | 0x0010a2ff, 0x81468800, 0x8058b040, 0x040207e1, | ||
2143 | 0x5c03e000, 0x02000800, 0x00106c4b, 0x5c00b000, | ||
2144 | 0x5c028800, 0x5c026800, 0x5c028000, 0x5c027800, | ||
2145 | 0x1c01f000, 0x4937c857, 0x4947c857, 0x4c5c0000, | ||
2146 | 0x4c600000, 0x4c640000, 0x59a80013, 0x8c000500, | ||
2147 | 0x0400001f, 0x599c0017, 0x8c00050a, 0x0402001c, | ||
2148 | 0x5934ba02, 0x825cbd00, 0x000000ff, 0x485fc857, | ||
2149 | 0x4178c000, 0x4178c800, 0x82600400, 0x0010be21, | ||
2150 | 0x50002000, 0x8060c1c0, 0x04000008, 0x82100500, | ||
2151 | 0x000000ff, 0x82002d80, 0x000000ff, 0x0400000c, | ||
2152 | 0x805c0580, 0x0400000d, 0x80102110, 0x8064c800, | ||
2153 | 0x82640580, 0x00000004, 0x040207f5, 0x8060c000, | ||
2154 | 0x82600580, 0x00000020, 0x040207eb, 0x4813c857, | ||
2155 | 0x82000540, 0x00000001, 0x5c00c800, 0x5c00c000, | ||
2156 | 0x5c00b800, 0x1c01f000, 0x59a80026, 0x4803c857, | ||
2157 | 0x8c000512, 0x1c01f000, 0x00007eef, 0x00007de8, | ||
2158 | 0x00007ce4, 0x000080e2, 0x00007be1, 0x000080e0, | ||
2159 | 0x000080dc, 0x000080da, 0x00007ad9, 0x000080d6, | ||
2160 | 0x000080d5, 0x000080d4, 0x000080d3, 0x000080d2, | ||
2161 | 0x000080d1, 0x000079ce, 0x000078cd, 0x000080cc, | ||
2162 | 0x000080cb, 0x000080ca, 0x000080c9, 0x000080c7, | ||
2163 | 0x000080c6, 0x000077c5, 0x000076c3, 0x000080bc, | ||
2164 | 0x000080ba, 0x000075b9, 0x000080b6, 0x000074b5, | ||
2165 | 0x000073b4, 0x000072b3, 0x000080b2, 0x000080b1, | ||
2166 | 0x000080ae, 0x000071ad, 0x000080ac, 0x000070ab, | ||
2167 | 0x00006faa, 0x00006ea9, 0x000080a7, 0x00006da6, | ||
2168 | 0x00006ca5, 0x00006ba3, 0x00006a9f, 0x0000699e, | ||
2169 | 0x0000689d, 0x0000809b, 0x00008098, 0x00006797, | ||
2170 | 0x00006690, 0x0000658f, 0x00006488, 0x00006384, | ||
2171 | 0x00006282, 0x00008081, 0x00008080, 0x0000617c, | ||
2172 | 0x0000607a, 0x00008079, 0x00005f76, 0x00008075, | ||
2173 | 0x00008074, 0x00008073, 0x00008072, 0x00008071, | ||
2174 | 0x0000806e, 0x00005e6d, 0x0000806c, 0x00005d6b, | ||
2175 | 0x00005c6a, 0x00005b69, 0x00008067, 0x00005a66, | ||
2176 | 0x00005965, 0x00005863, 0x0000575c, 0x0000565a, | ||
2177 | 0x00005559, 0x00008056, 0x00008055, 0x00005454, | ||
2178 | 0x00005353, 0x00005252, 0x00005151, 0x0000504e, | ||
2179 | 0x00004f4d, 0x0000804c, 0x0000804b, 0x00004e4a, | ||
2180 | 0x00004d49, 0x00008047, 0x00004c46, 0x00008045, | ||
2181 | 0x00008043, 0x0000803c, 0x0000803a, 0x00008039, | ||
2182 | 0x00008036, 0x00004b35, 0x00008034, 0x00004a33, | ||
2183 | 0x00004932, 0x00004831, 0x0000802e, 0x0000472d, | ||
2184 | 0x0000462c, 0x0000452b, 0x0000442a, 0x00004329, | ||
2185 | 0x00004227, 0x00008026, 0x00008025, 0x00004123, | ||
2186 | 0x0000401f, 0x00003f1e, 0x00003e1d, 0x00003d1b, | ||
2187 | 0x00003c18, 0x00008017, 0x00008010, 0x00003b0f, | ||
2188 | 0x00003a08, 0x00008004, 0x00003902, 0x00008001, | ||
2189 | 0x00008000, 0x00008000, 0x00003800, 0x00003700, | ||
2190 | 0x00003600, 0x00008000, 0x00003500, 0x00008000, | ||
2191 | 0x00008000, 0x00008000, 0x00003400, 0x00008000, | ||
2192 | 0x00008000, 0x00008000, 0x00008000, 0x00008000, | ||
2193 | 0x00008000, 0x00003300, 0x00003200, 0x00008000, | ||
2194 | 0x00008000, 0x00008000, 0x00008000, 0x00008000, | ||
2195 | 0x00008000, 0x00003100, 0x00003000, 0x00008000, | ||
2196 | 0x00008000, 0x00002f00, 0x00008000, 0x00002e00, | ||
2197 | 0x00002d00, 0x00002c00, 0x00008000, 0x00008000, | ||
2198 | 0x00008000, 0x00002b00, 0x00008000, 0x00002a00, | ||
2199 | 0x00002900, 0x00002800, 0x00008000, 0x00002700, | ||
2200 | 0x00002600, 0x00002500, 0x00002400, 0x00002300, | ||
2201 | 0x00002200, 0x00008000, 0x00008000, 0x00002100, | ||
2202 | 0x00002000, 0x00001f00, 0x00001e00, 0x00001d00, | ||
2203 | 0x00001c00, 0x00008000, 0x00008000, 0x00001b00, | ||
2204 | 0x00001a00, 0x00008000, 0x00001900, 0x00008000, | ||
2205 | 0x00008000, 0x00008000, 0x00008000, 0x00008000, | ||
2206 | 0x00008000, 0x00001800, 0x00008000, 0x00001700, | ||
2207 | 0x00001600, 0x00001500, 0x00008000, 0x00001400, | ||
2208 | 0x00001300, 0x00001200, 0x00001100, 0x00001000, | ||
2209 | 0x00000f00, 0x00008000, 0x00008000, 0x00000e00, | ||
2210 | 0x00000d00, 0x00000c00, 0x00000b00, 0x00000a00, | ||
2211 | 0x00000900, 0x00008000, 0x00008000, 0x00000800, | ||
2212 | 0x00000700, 0x00008000, 0x00000600, 0x00008000, | ||
2213 | 0x00008000, 0x00008000, 0x00000500, 0x00000400, | ||
2214 | 0x00000300, 0x00008000, 0x00000200, 0x00008000, | ||
2215 | 0x00008000, 0x00008000, 0x00000100, 0x00008000, | ||
2216 | 0x00008000, 0x00008000, 0x00008000, 0x00008000, | ||
2217 | 0x00008000, 0x00000000, 0x00008000, 0x00008000, | ||
2218 | 0x00008000, 0x00008000, 0x00008000, 0x00008000, | ||
2219 | 0x00008000, 0x00008000, 0x00008000, 0x00008000, | ||
2220 | 0x00008000, 0x00008000, 0x00008000, 0x00008000, | ||
2221 | 0x00008000, 0x00008000, 0x0201f800, 0x001007d3, | ||
2222 | 0x02000800, 0x001005d8, 0x492f4016, 0x1c01f000, | ||
2223 | 0x83a0ac00, 0x00000006, 0x83a00580, 0x0010b4a4, | ||
2224 | 0x0400000c, 0x492fc857, 0x812e59c0, 0x02000800, | ||
2225 | 0x001005d8, 0x832ca400, 0x00000006, 0x4200b000, | ||
2226 | 0x0000000d, 0x0201f800, 0x0010ab17, 0x0401f00f, | ||
2227 | 0x4200b000, 0x00000010, 0x83e0a400, 0x00000020, | ||
2228 | 0x50500000, 0x8050a000, 0x50500800, 0x900409c0, | ||
2229 | 0x80040540, 0x4400a800, 0x8050a000, 0x8054a800, | ||
2230 | 0x8058b040, 0x040207f7, 0x1c01f000, 0x59a00206, | ||
2231 | 0x4803c857, 0x82000c80, 0x0000007f, 0x040210c9, | ||
2232 | 0x59a80821, 0x0c01f001, 0x001022c0, 0x00102300, | ||
2233 | 0x00102300, 0x0010234b, 0x0010236d, 0x00102300, | ||
2234 | 0x001022c0, 0x0010238f, 0x001023a0, 0x00102300, | ||
2235 | 0x00102300, 0x001023ad, 0x001023c5, 0x001023dd, | ||
2236 | 0x00102300, 0x001023e7, 0x001023f4, 0x00102300, | ||
2237 | 0x0010241d, 0x00102300, 0x0010247a, 0x00102300, | ||
2238 | 0x00102300, 0x00102300, 0x00102300, 0x00102300, | ||
2239 | 0x00102300, 0x00102300, 0x00102300, 0x00102300, | ||
2240 | 0x00102300, 0x00102300, 0x00102491, 0x00102300, | ||
2241 | 0x001024e3, 0x00102300, 0x00102300, 0x00102300, | ||
2242 | 0x00102300, 0x001024e8, 0x00102560, 0x00102300, | ||
2243 | 0x00102567, 0x00102300, 0x00102300, 0x00102300, | ||
2244 | 0x00102300, 0x00102300, 0x00102569, 0x001025ea, | ||
2245 | 0x00102727, 0x00102300, 0x00102300, 0x00102300, | ||
2246 | 0x00102300, 0x00102300, 0x00102736, 0x00102300, | ||
2247 | 0x00102300, 0x00102300, 0x00102300, 0x00102300, | ||
2248 | 0x00102300, 0x00102300, 0x00102753, 0x001027a6, | ||
2249 | 0x00102802, 0x00102816, 0x00102835, 0x00102a70, | ||
2250 | 0x00102dff, 0x00102300, 0x00102300, 0x00102300, | ||
2251 | 0x00102300, 0x00102300, 0x00102300, 0x00102300, | ||
2252 | 0x00102300, 0x00102300, 0x00102300, 0x00102300, | ||
2253 | 0x00102300, 0x00102fb4, 0x00103028, 0x00102300, | ||
2254 | 0x00102300, 0x00103094, 0x00102300, 0x00103126, | ||
2255 | 0x001031d8, 0x00102300, 0x00102300, 0x0010320f, | ||
2256 | 0x0010326b, 0x00102300, 0x001032bd, 0x00103419, | ||
2257 | 0x00102300, 0x0010342d, 0x001034b8, 0x00102300, | ||
2258 | 0x00102300, 0x00102300, 0x00102300, 0x00103522, | ||
2259 | 0x00103526, 0x00103545, 0x00102300, 0x001035e7, | ||
2260 | 0x00102300, 0x00102300, 0x00103615, 0x00102300, | ||
2261 | 0x00103643, 0x00102300, 0x00102300, 0x001036aa, | ||
2262 | 0x001037b7, 0x00103814, 0x00102300, 0x0010387a, | ||
2263 | 0x00102300, 0x00102300, 0x001038d3, 0x00103936, | ||
2264 | 0x00102300, 0x48efc857, 0x4031d800, 0x58ef400b, | ||
2265 | 0x58ec0002, 0x82000580, 0x00000200, 0x04000045, | ||
2266 | 0x48efc857, 0x4a034206, 0x00004000, 0x0201f800, | ||
2267 | 0x00103a15, 0x83a00580, 0x0010b4a4, 0x0400000d, | ||
2268 | 0x58ee580a, 0x4d2c0000, 0x0401f856, 0x41a25800, | ||
2269 | 0x0201f800, 0x001007f4, 0x40ee5800, 0x0201f800, | ||
2270 | 0x001007f4, 0x5c025800, 0x0201f000, 0x000202da, | ||
2271 | 0x04026007, 0x59a0001d, 0x84000542, 0x4803401d, | ||
2272 | 0x4a01d809, 0x001022d4, 0x1c01f000, 0x59a00206, | ||
2273 | 0x82000d80, 0x00004000, 0x04000006, 0x900001c0, | ||
2274 | 0x82000540, 0x00000011, 0x4803c011, 0x0401f005, | ||
2275 | 0x900001c0, 0x82000540, 0x00000010, 0x4803c011, | ||
2276 | 0x0401f845, 0x59e00017, 0x8c000508, 0x0402000c, | ||
2277 | 0x4203e000, 0x30000001, 0x4203e000, 0x40000000, | ||
2278 | 0x40ee5800, 0x0201f800, 0x001007f4, 0x59a0001d, | ||
2279 | 0x84000504, 0x4803401d, 0x1c01f000, 0x4a03c017, | ||
2280 | 0x00000000, 0x59a00206, 0x82000d80, 0x00004000, | ||
2281 | 0x040007f0, 0x4a03c017, 0x00000001, 0x0401f7ed, | ||
2282 | 0x4803c856, 0x4a034206, 0x00004001, 0x0401f7c0, | ||
2283 | 0x4803c856, 0x4a034206, 0x00004002, 0x0401f7bc, | ||
2284 | 0x4803c856, 0x4a034206, 0x00004003, 0x0401f7b8, | ||
2285 | 0x4803c856, 0x4a034206, 0x00004005, 0x0401f7b4, | ||
2286 | 0x4803c856, 0x4a034206, 0x00004006, 0x0401f7b0, | ||
2287 | 0x4803c856, 0x4a034206, 0x0000400b, 0x0401f7ac, | ||
2288 | 0x4803c856, 0x4a034206, 0x0000400c, 0x0401f7a8, | ||
2289 | 0x4803c856, 0x4a034206, 0x0000400c, 0x0401f7a4, | ||
2290 | 0x48efc857, 0x58eca80a, 0x8054a9c0, 0x02000800, | ||
2291 | 0x001005d8, 0x83a0a400, 0x00000006, 0x8254ac00, | ||
2292 | 0x00000006, 0x4200b000, 0x0000000d, 0x0201f000, | ||
2293 | 0x0010ab17, 0x59a00206, 0x4803c857, 0x59a00406, | ||
2294 | 0x4803c857, 0x59a00207, 0x4803c857, 0x59a00407, | ||
2295 | 0x4803c857, 0x59a00208, 0x4803c857, 0x59a00408, | ||
2296 | 0x4803c857, 0x59a00209, 0x4803c857, 0x83e0ac00, | ||
2297 | 0x00000020, 0x83a0a400, 0x00000006, 0x4200b000, | ||
2298 | 0x00000010, 0x50500000, 0x4400a800, 0x8054a800, | ||
2299 | 0x900001c0, 0x4400a800, 0x8054a800, 0x8050a000, | ||
2300 | 0x8058b040, 0x040207f8, 0x1c01f000, 0x59a00406, | ||
2301 | 0x800000c2, 0x59a00a07, 0x900409c0, 0x80040540, | ||
2302 | 0x84000540, 0x59a00c07, 0x8c040d00, 0x04000018, | ||
2303 | 0x59a80805, 0x8c040d0e, 0x040207ba, 0x42000800, | ||
2304 | 0x00000064, 0x80040840, 0x04000007, 0x4a030000, | ||
2305 | 0x00000001, 0x40000000, 0x59801000, 0x8c081500, | ||
2306 | 0x040007f9, 0x04000005, 0x48030004, 0x4a030000, | ||
2307 | 0x00000000, 0x0401f75b, 0x4a030000, 0x00000000, | ||
2308 | 0x4a034406, 0x00000004, 0x040007a2, 0x4803880e, | ||
2309 | 0x0401f754, 0x59a00406, 0x800000c2, 0x59a00c07, | ||
2310 | 0x8c040d00, 0x0400001a, 0x59a80805, 0x8c040d0e, | ||
2311 | 0x0402079c, 0x42000800, 0x00000064, 0x80040840, | ||
2312 | 0x04000007, 0x4a030000, 0x00000001, 0x40000000, | ||
2313 | 0x59801000, 0x8c081500, 0x040007f9, 0x04000007, | ||
2314 | 0x48030004, 0x59800805, 0x48074406, 0x4a030000, | ||
2315 | 0x00000000, 0x0401f73b, 0x4a030000, 0x00000000, | ||
2316 | 0x4a034406, 0x00000004, 0x04000782, 0x4803880e, | ||
2317 | 0x59c4080f, 0x48074406, 0x0401f732, 0x59a01c06, | ||
2318 | 0x59a00207, 0x900c19c0, 0x800c1d40, 0x580c0803, | ||
2319 | 0x80000580, 0x500c1000, 0x80080400, 0x800c1800, | ||
2320 | 0x80040840, 0x040207fc, 0x48034406, 0x900001c0, | ||
2321 | 0x48034207, 0x800001c0, 0x04000722, 0x0401f769, | ||
2322 | 0x4a034406, 0x00000004, 0x4a034207, 0x00000000, | ||
2323 | 0x4a034407, 0x00000010, 0x59a8000d, 0x48034208, | ||
2324 | 0x900001c0, 0x48034408, 0x4a034209, 0x00000002, | ||
2325 | 0x0401f714, 0x59a00407, 0x59a01207, 0x900811c0, | ||
2326 | 0x80081540, 0x59a00409, 0x59a01a09, 0x900c19c0, | ||
2327 | 0x800c1d40, 0x59a00a08, 0x59a00408, 0x900409c0, | ||
2328 | 0x80040d40, 0x59a0020a, 0x82002480, 0x00000010, | ||
2329 | 0x04001754, 0x59a02406, 0x900001c0, 0x80100540, | ||
2330 | 0x59a8280d, 0x80142480, 0x0400174e, 0x0201f000, | ||
2331 | 0x00103a25, 0x59a00407, 0x59a01207, 0x900811c0, | ||
2332 | 0x80081540, 0x59a00409, 0x59a01a09, 0x900c19c0, | ||
2333 | 0x800c1d40, 0x59a00a08, 0x59a00408, 0x900409c0, | ||
2334 | 0x80040d40, 0x59a0020a, 0x82002480, 0x00000010, | ||
2335 | 0x0400173c, 0x59a02406, 0x900001c0, 0x80100540, | ||
2336 | 0x59a8280d, 0x80142480, 0x04001736, 0x0201f000, | ||
2337 | 0x00103a28, 0x59a00a0a, 0x59a00406, 0x900409c0, | ||
2338 | 0x80040d40, 0x59a01407, 0x59a00207, 0x900811c0, | ||
2339 | 0x80081540, 0x44080800, 0x0401f6da, 0x59a00a0a, | ||
2340 | 0x59a00406, 0x900409c0, 0x80040d40, 0x50040000, | ||
2341 | 0x82000d00, 0x0000ffff, 0x48074207, 0x82000d00, | ||
2342 | 0xffff0000, 0x900409c0, 0x48074407, 0x0401f6cd, | ||
2343 | 0x59a00406, 0x8c000500, 0x04000020, 0x59a01207, | ||
2344 | 0x59a01c07, 0x59a02208, 0x480b5054, 0x480f5055, | ||
2345 | 0x48135056, 0x59c40801, 0x82040d00, 0x00018000, | ||
2346 | 0x82040580, 0x00000000, 0x04000009, 0x82040580, | ||
2347 | 0x00008000, 0x04000008, 0x82040580, 0x00010000, | ||
2348 | 0x04000007, 0x0201f800, 0x001005d8, 0x40080000, | ||
2349 | 0x0401f004, 0x400c0000, 0x0401f002, 0x40100000, | ||
2350 | 0x80000110, 0x42000800, 0x000000e0, 0x0201f800, | ||
2351 | 0x00101944, 0x0401f007, 0x59a81054, 0x59a81855, | ||
2352 | 0x59a82056, 0x480b4207, 0x480f4407, 0x48134208, | ||
2353 | 0x0401f6a4, 0x4d2c0000, 0x4d340000, 0x4d300000, | ||
2354 | 0x4d440000, 0x59a28c06, 0x0201f800, 0x00020245, | ||
2355 | 0x04000006, 0x5c028800, 0x5c026000, 0x5c026800, | ||
2356 | 0x5c025800, 0x0401f6e7, 0x59a04407, 0x59a00207, | ||
2357 | 0x900001c0, 0x80204540, 0x0401f81e, 0x04000009, | ||
2358 | 0x4a034208, 0x00000001, 0x4a034406, 0x0000ffff, | ||
2359 | 0x4a034207, 0x0000ffff, 0x497b4407, 0x0401f00b, | ||
2360 | 0x0401f822, 0x0400000e, 0x4a034208, 0x00000002, | ||
2361 | 0x59300402, 0x48034406, 0x59300202, 0x48034207, | ||
2362 | 0x59300206, 0x48034407, 0x5c028800, 0x5c026000, | ||
2363 | 0x5c026800, 0x5c025800, 0x0401f67a, 0x5c028800, | ||
2364 | 0x5c026000, 0x5c026800, 0x5c025800, 0x0401f6c1, | ||
2365 | 0x4937c856, 0x4823c856, 0x4d2c0000, 0x5934000f, | ||
2366 | 0x80025d40, 0x04000007, 0x592c0005, 0x80200580, | ||
2367 | 0x592c0000, 0x040207fb, 0x82000540, 0x00000001, | ||
2368 | 0x5c025800, 0x1c01f000, 0x4823c857, 0x4d2c0000, | ||
2369 | 0x4d300000, 0x42026000, 0x0010d1c0, 0x59300406, | ||
2370 | 0x82000d80, 0x00000003, 0x04000004, 0x82000d80, | ||
2371 | 0x00000006, 0x04020007, 0x59325808, 0x812e59c0, | ||
2372 | 0x04000004, 0x592c0005, 0x80200580, 0x0400000a, | ||
2373 | 0x83326400, 0x00000024, 0x41580000, 0x81300480, | ||
2374 | 0x040017ef, 0x80000580, 0x5c026000, 0x5c025800, | ||
2375 | 0x1c01f000, 0x82000540, 0x00000001, 0x5c026000, | ||
2376 | 0x5c025800, 0x1c01f000, 0x83a00580, 0x0010b4a4, | ||
2377 | 0x04020684, 0x59a80005, 0x8c00050e, 0x04020003, | ||
2378 | 0x4a030000, 0x00000000, 0x4a034206, 0x00004000, | ||
2379 | 0x4a03c011, 0x40000010, 0x0401fea7, 0x59e00017, | ||
2380 | 0x8c000508, 0x04000003, 0x4a03c017, 0x00000000, | ||
2381 | 0x4203e000, 0x30000001, 0x4203e000, 0x40000000, | ||
2382 | 0x0401f000, 0x800409c0, 0x04000004, 0x4a034406, | ||
2383 | 0x00000001, 0x0401f677, 0x836c0580, 0x00000003, | ||
2384 | 0x04020010, 0x59a80010, 0x497b4406, 0x0201f800, | ||
2385 | 0x0010513b, 0x0400000f, 0x82000d00, 0x00ffff00, | ||
2386 | 0x0402000c, 0x82000c00, 0x0010210e, 0x50040800, | ||
2387 | 0x80040910, 0x82041580, 0x00000080, 0x04020004, | ||
2388 | 0x4a034406, 0x00000007, 0x0401f662, 0x48074406, | ||
2389 | 0x82000d00, 0x0000ffff, 0x48074207, 0x80000120, | ||
2390 | 0x48034407, 0x59a80026, 0x82001500, 0x00000100, | ||
2391 | 0x480b4409, 0x8c000502, 0x0400001f, 0x8c000506, | ||
2392 | 0x04000009, 0x82000d00, 0x0000000a, 0x82040d80, | ||
2393 | 0x0000000a, 0x04020004, 0x4a034209, 0x00000001, | ||
2394 | 0x0401f022, 0x8c00050a, 0x04000009, 0x82000d00, | ||
2395 | 0x00000022, 0x82040d80, 0x00000022, 0x04020004, | ||
2396 | 0x4a034209, 0x00000003, 0x0401f018, 0x8c000508, | ||
2397 | 0x04000009, 0x82000d00, 0x00000012, 0x82040d80, | ||
2398 | 0x00000012, 0x04020004, 0x4a034209, 0x00000002, | ||
2399 | 0x0401f00e, 0x0201f800, 0x0010513b, 0x04020004, | ||
2400 | 0x4a034209, 0x00000004, 0x0401f5e6, 0x8c000506, | ||
2401 | 0x04000004, 0x4a034406, 0x00000005, 0x0401f62d, | ||
2402 | 0x4a034209, 0x00000000, 0x0401f5de, 0x59a80037, | ||
2403 | 0x48034407, 0x59a80038, 0x48034209, 0x0401f5d9, | ||
2404 | 0x42007800, 0x0010b8ec, 0x59a00406, 0x4803c857, | ||
2405 | 0x82000c80, 0x00000006, 0x04021622, 0x0c01f001, | ||
2406 | 0x001024f6, 0x001024f7, 0x00102505, 0x00102518, | ||
2407 | 0x00102539, 0x001024f6, 0x0401f61a, 0x836c0580, | ||
2408 | 0x00000000, 0x04000613, 0x59a00a07, 0x59a00407, | ||
2409 | 0x900001c0, 0x80040d40, 0x4807c857, 0x59a00a08, | ||
2410 | 0x59a00408, 0x900001c0, 0x80040d40, 0x4807c857, | ||
2411 | 0x0401f056, 0x836c0580, 0x00000000, 0x04000605, | ||
2412 | 0x59a00407, 0x59a01207, 0x900001c0, 0x80081540, | ||
2413 | 0x59a00408, 0x59a01a08, 0x900001c0, 0x800c1d40, | ||
2414 | 0x42000000, 0x0010c1bf, 0x480fc857, 0x480bc857, | ||
2415 | 0x42000800, 0x00001000, 0x0201f000, 0x00103a28, | ||
2416 | 0x59a00a07, 0x59a00407, 0x900001c0, 0x80041d40, | ||
2417 | 0x820c0c80, 0x0010ab4a, 0x040215f2, 0x820c0c80, | ||
2418 | 0x00100000, 0x040015ef, 0x480fc857, 0x823c7c00, | ||
2419 | 0x00000009, 0x503c0800, 0x800409c0, 0x04000006, | ||
2420 | 0x823c0580, 0x0000000d, 0x040005e6, 0x803c7800, | ||
2421 | 0x0401f7f9, 0x59e41001, 0x82080d00, 0xfffeffcf, | ||
2422 | 0x4807c801, 0x440c7800, 0x46001800, 0x0201f800, | ||
2423 | 0x800c1800, 0x46001800, 0x001005cb, 0x480bc801, | ||
2424 | 0x0401f022, 0x59a01a07, 0x59a00407, 0x900001c0, | ||
2425 | 0x800c1d40, 0x480c7801, 0x59a02208, 0x59a00408, | ||
2426 | 0x900001c0, 0x80102540, 0x48107802, 0x59a00209, | ||
2427 | 0x80000040, 0x040015cb, 0x48007806, 0x80000000, | ||
2428 | 0x48007805, 0x42000800, 0x00004000, 0x40001000, | ||
2429 | 0x0201f800, 0x00106681, 0x80000540, 0x04000003, | ||
2430 | 0x49787801, 0x0401f5bf, 0x40040000, 0x800c1c00, | ||
2431 | 0x040015bc, 0x480c7803, 0x48107804, 0x49787808, | ||
2432 | 0x59a00409, 0x48007807, 0x59e40001, 0x4803c857, | ||
2433 | 0x82000540, 0x00040000, 0x4803c801, 0x0401f561, | ||
2434 | 0x59a80006, 0x48034406, 0x59a80007, 0x48034207, | ||
2435 | 0x59a80008, 0x48034407, 0x0401f55a, 0x0201f800, | ||
2436 | 0x001005d8, 0x4803c856, 0x4a03c013, 0x03800300, | ||
2437 | 0x4a03c014, 0x03800380, 0x59a00c06, 0x82040580, | ||
2438 | 0x000000a0, 0x04000004, 0x82040580, 0x000000a2, | ||
2439 | 0x0402002b, 0x59a0140a, 0x82080480, 0x00000100, | ||
2440 | 0x04021027, 0x59a0020b, 0x8c000500, 0x0402002e, | ||
2441 | 0x59a00a0a, 0x800409c0, 0x04000021, 0x82040480, | ||
2442 | 0x00000041, 0x0402101e, 0x82040c00, 0x00000003, | ||
2443 | 0x82040d00, 0x000000fc, 0x80040904, 0x59a00407, | ||
2444 | 0x59a01207, 0x900811c0, 0x80081540, 0x59a00409, | ||
2445 | 0x59a01a09, 0x900c19c0, 0x800c1d40, 0x0201f800, | ||
2446 | 0x00103a00, 0x04020006, 0x4a034406, 0x00000002, | ||
2447 | 0x4a03c014, 0x03800000, 0x0401f576, 0x832e5c00, | ||
2448 | 0x00000004, 0x412c0000, 0x0201f800, 0x00103a25, | ||
2449 | 0x4a01d809, 0x001025a2, 0x1c01f000, 0x4a03c014, | ||
2450 | 0x03800000, 0x0401f56f, 0x4031d800, 0x58ef400b, | ||
2451 | 0x58ee580d, 0x58ec0002, 0x82000580, 0x00000200, | ||
2452 | 0x0400055c, 0x59a00c06, 0x59a0140a, 0x59a0020b, | ||
2453 | 0x8c000500, 0x04020031, 0x832e5c00, 0x00000004, | ||
2454 | 0x41783800, 0x59a04a0a, 0x401c0000, 0x812c0400, | ||
2455 | 0x50004000, 0x82201d00, 0x000000ff, 0x4c040000, | ||
2456 | 0x0401f8ac, 0x5c000800, 0x0400002d, 0x80244840, | ||
2457 | 0x04000028, 0x80081000, 0x82201d00, 0x0000ff00, | ||
2458 | 0x800c1910, 0x4c040000, 0x0401f8a2, 0x5c000800, | ||
2459 | 0x04000023, 0x80244840, 0x0400001e, 0x80081000, | ||
2460 | 0x82201d00, 0x00ff0000, 0x800c1920, 0x4c040000, | ||
2461 | 0x0401f898, 0x5c000800, 0x04000019, 0x80244840, | ||
2462 | 0x04000014, 0x80081000, 0x82201d00, 0xff000000, | ||
2463 | 0x800c1930, 0x4c040000, 0x0401f88e, 0x5c000800, | ||
2464 | 0x0400000f, 0x80244840, 0x0400000a, 0x80081000, | ||
2465 | 0x801c3800, 0x0401f7d5, 0x59a0020a, 0x82000500, | ||
2466 | 0x000000ff, 0x40001800, 0x0401f882, 0x04000004, | ||
2467 | 0x4a03c014, 0x03800000, 0x0401f4da, 0x4a03c014, | ||
2468 | 0x03800000, 0x0401f523, 0x4803c856, 0x4a03c013, | ||
2469 | 0x03800300, 0x4a03c014, 0x03800380, 0x59a00c06, | ||
2470 | 0x82040580, 0x000000a0, 0x04000004, 0x82040580, | ||
2471 | 0x000000a2, 0x0402006c, 0x59a0140a, 0x82080480, | ||
2472 | 0x00000100, 0x04021068, 0x59a0020b, 0x8c000500, | ||
2473 | 0x0402005c, 0x59a01a0a, 0x800c19c0, 0x04000062, | ||
2474 | 0x820c0480, 0x00000041, 0x0402105f, 0x0201f800, | ||
2475 | 0x00103a00, 0x04020006, 0x4a034406, 0x00000002, | ||
2476 | 0x4a03c014, 0x03800000, 0x0401f502, 0x832e5c00, | ||
2477 | 0x00000004, 0x41783800, 0x59a04a0a, 0x401c0000, | ||
2478 | 0x812c0400, 0x40004000, 0x4c040000, 0x4c080000, | ||
2479 | 0x0401f874, 0x5c001000, 0x5c000800, 0x04000047, | ||
2480 | 0x44144000, 0x80244840, 0x0400002b, 0x80081000, | ||
2481 | 0x4c040000, 0x4c080000, 0x0401f86a, 0x5c001000, | ||
2482 | 0x5c000800, 0x0400003d, 0x50200000, 0x801428d0, | ||
2483 | 0x80140540, 0x44004000, 0x80244840, 0x0400001e, | ||
2484 | 0x80081000, 0x4c040000, 0x4c080000, 0x0401f85d, | ||
2485 | 0x5c001000, 0x5c000800, 0x04000030, 0x50200000, | ||
2486 | 0x801428e0, 0x80140540, 0x44004000, 0x80244840, | ||
2487 | 0x04000011, 0x80081000, 0x4c040000, 0x4c080000, | ||
2488 | 0x0401f850, 0x5c001000, 0x5c000800, 0x04000023, | ||
2489 | 0x50200000, 0x801428f0, 0x80140540, 0x44004000, | ||
2490 | 0x80244840, 0x04000004, 0x80081000, 0x801c3800, | ||
2491 | 0x0401f7cb, 0x59a00a0a, 0x82040c00, 0x00000003, | ||
2492 | 0x82040d00, 0x000000fc, 0x80040904, 0x59a00407, | ||
2493 | 0x59a01207, 0x900811c0, 0x80081540, 0x59a00409, | ||
2494 | 0x59a01a09, 0x900c19c0, 0x800c1d40, 0x4a03c014, | ||
2495 | 0x03800000, 0x412c0000, 0x0201f000, 0x00103a28, | ||
2496 | 0x0401f830, 0x04000005, 0x48174406, 0x4a03c014, | ||
2497 | 0x03800000, 0x0401f463, 0x4a03c014, 0x03800000, | ||
2498 | 0x0401f4ac, 0x4a03c014, 0x03800000, 0x0401f4ad, | ||
2499 | 0x0401f836, 0x04000010, 0x0401f862, 0x0402000f, | ||
2500 | 0x40080800, 0x0401f85f, 0x0402000c, 0x400c0800, | ||
2501 | 0x0401f85c, 0x04020009, 0x0401f84b, 0x42000000, | ||
2502 | 0x00030d40, 0x80000040, 0x040207ff, 0x82000540, | ||
2503 | 0x00000001, 0x1c01f000, 0x0401f843, 0x80000580, | ||
2504 | 0x0401f7fd, 0x0401f821, 0x0400000a, 0x82040d40, | ||
2505 | 0x00000001, 0x0401f84b, 0x04020007, 0x0401f87e, | ||
2506 | 0x0401f898, 0x0401f838, 0x82000540, 0x00000001, | ||
2507 | 0x1c01f000, 0x0401f834, 0x80000580, 0x0401f7fd, | ||
2508 | 0x40041800, 0x0401f811, 0x0400000c, 0x0401f83d, | ||
2509 | 0x0402000b, 0x40080800, 0x0401f83a, 0x04020008, | ||
2510 | 0x400c0800, 0x0401ffe8, 0x04000004, 0x0401f826, | ||
2511 | 0x82000540, 0x00000001, 0x1c01f000, 0x0401f822, | ||
2512 | 0x80000580, 0x0401f7fd, 0x4c040000, 0x42000800, | ||
2513 | 0x00000064, 0x4a03c013, 0x03800300, 0x80040840, | ||
2514 | 0x04000016, 0x59e00013, 0x82000500, 0x00000300, | ||
2515 | 0x82000580, 0x00000300, 0x040207f7, 0x42000000, | ||
2516 | 0x00000064, 0x80000040, 0x040207ff, 0x4a03c013, | ||
2517 | 0x01000000, 0x42000000, 0x00000064, 0x80000040, | ||
2518 | 0x040207ff, 0x4a03c013, 0x02000000, 0x82000540, | ||
2519 | 0x00000001, 0x0401f002, 0x80000580, 0x5c000800, | ||
2520 | 0x1c01f000, 0x4a03c013, 0x01000000, 0x42000000, | ||
2521 | 0x00000064, 0x80000040, 0x040207ff, 0x4a03c013, | ||
2522 | 0x02000200, 0x42000000, 0x00000064, 0x80000040, | ||
2523 | 0x040207ff, 0x4a03c013, 0x01000100, 0x1c01f000, | ||
2524 | 0x42002000, 0x00000008, 0x82040500, 0x00000080, | ||
2525 | 0x800000c2, 0x82000540, 0x01000000, 0x4803c013, | ||
2526 | 0x42000000, 0x00000064, 0x80000040, 0x040207ff, | ||
2527 | 0x4a03c013, 0x02000200, 0x42000000, 0x00000064, | ||
2528 | 0x80000040, 0x040207ff, 0x4a03c013, 0x02000000, | ||
2529 | 0x800408c2, 0x80102040, 0x040207ec, 0x4a03c013, | ||
2530 | 0x01000100, 0x42000000, 0x00000064, 0x80000040, | ||
2531 | 0x040207ff, 0x4a03c013, 0x02000200, 0x42000000, | ||
2532 | 0x00000064, 0x80000040, 0x040207ff, 0x59e00013, | ||
2533 | 0x82000500, 0x00000100, 0x4a03c013, 0x02000000, | ||
2534 | 0x4c040000, 0x42000800, 0x00000064, 0x59e00013, | ||
2535 | 0x82000500, 0x00000100, 0x80040840, 0x04000003, | ||
2536 | 0x80000540, 0x040207fa, 0x80000540, 0x5c000800, | ||
2537 | 0x1c01f000, 0x4a03c013, 0x01000100, 0x42001000, | ||
2538 | 0x00000008, 0x80000d80, 0x42000000, 0x00000064, | ||
2539 | 0x80000040, 0x040207ff, 0x4a03c013, 0x02000200, | ||
2540 | 0x42000000, 0x00000064, 0x80000040, 0x040207ff, | ||
2541 | 0x59e00013, 0x82000500, 0x00000100, 0x80000110, | ||
2542 | 0x800408c2, 0x80040d40, 0x4a03c013, 0x02000000, | ||
2543 | 0x80081040, 0x040207ed, 0x40042800, 0x1c01f000, | ||
2544 | 0x4a03c013, 0x01000100, 0x42000000, 0x00000064, | ||
2545 | 0x80000040, 0x040207ff, 0x4a03c013, 0x02000200, | ||
2546 | 0x42000000, 0x00000064, 0x80000040, 0x040207ff, | ||
2547 | 0x4a03c013, 0x02000000, 0x1c01f000, 0x59a00407, | ||
2548 | 0x59a80837, 0x48035037, 0x48074407, 0x59a00a09, | ||
2549 | 0x82040480, 0x00000014, 0x04021003, 0x42000800, | ||
2550 | 0x000007d0, 0x59a80038, 0x48075038, 0x48034209, | ||
2551 | 0x0201f000, 0x001022c0, 0x836c0580, 0x00000000, | ||
2552 | 0x0400000e, 0x59a80006, 0x59a00c06, 0x80041580, | ||
2553 | 0x82081500, 0x00000040, 0x02000000, 0x001022c0, | ||
2554 | 0x80080580, 0x48035006, 0x0201f800, 0x00100699, | ||
2555 | 0x0201f000, 0x001022c0, 0x59a00406, 0x59a80806, | ||
2556 | 0x48035006, 0x80040d80, 0x8c040d0c, 0x02020800, | ||
2557 | 0x00100699, 0x59a00207, 0x48035007, 0x59a00407, | ||
2558 | 0x48035008, 0x0201f000, 0x001022c0, 0x800409c0, | ||
2559 | 0x04000005, 0x4a034406, 0x00000001, 0x0201f000, | ||
2560 | 0x0010230c, 0x0201f800, 0x0010513b, 0x04020005, | ||
2561 | 0x4a034406, 0x00000016, 0x0201f000, 0x0010230c, | ||
2562 | 0x836c0580, 0x00000003, 0x04000005, 0x4a034406, | ||
2563 | 0x00000007, 0x0201f000, 0x0010230c, 0x59a00c06, | ||
2564 | 0x82040500, 0xffffff00, 0x02020000, 0x00102310, | ||
2565 | 0x82041580, 0x000000ff, 0x04020007, 0x59a80010, | ||
2566 | 0x82000500, 0x000000ff, 0x82001540, 0x0000ff00, | ||
2567 | 0x0401f011, 0x82040400, 0x0010210e, 0x50000000, | ||
2568 | 0x80000110, 0x82000580, 0x00000080, 0x02000000, | ||
2569 | 0x00102310, 0x59a80010, 0x82000500, 0x000000ff, | ||
2570 | 0x80041580, 0x02000000, 0x00102310, 0x840409c0, | ||
2571 | 0x80041540, 0x0201f800, 0x0002075a, 0x04020005, | ||
2572 | 0x4a034406, 0x00000003, 0x0201f000, 0x0010230c, | ||
2573 | 0x48ee6021, 0x480a621c, 0x4a02641c, 0x0000bc09, | ||
2574 | 0x4a026406, 0x00000001, 0x0201f800, 0x00103a00, | ||
2575 | 0x04020007, 0x0201f800, 0x0002077d, 0x4a034406, | ||
2576 | 0x00000002, 0x0201f000, 0x0010230c, 0x497a5a04, | ||
2577 | 0x497a5805, 0x4a025c04, 0x00008000, 0x4a01d809, | ||
2578 | 0x001027f9, 0x492e6008, 0x42027000, 0x00000032, | ||
2579 | 0x0201f000, 0x000207a1, 0x800409c0, 0x04000005, | ||
2580 | 0x4a034406, 0x00000001, 0x0201f000, 0x0010230c, | ||
2581 | 0x0201f800, 0x0010513b, 0x04020005, 0x4a034406, | ||
2582 | 0x00000016, 0x0201f000, 0x0010230c, 0x836c0580, | ||
2583 | 0x00000003, 0x04000005, 0x4a034406, 0x00000007, | ||
2584 | 0x0201f000, 0x0010230c, 0x59a00c06, 0x82040500, | ||
2585 | 0xffffff00, 0x02020000, 0x00102310, 0x82041580, | ||
2586 | 0x000000ff, 0x04020007, 0x59a80010, 0x82000500, | ||
2587 | 0x000000ff, 0x82001540, 0x0000ff00, 0x0401f011, | ||
2588 | 0x82040400, 0x0010210e, 0x50000000, 0x80000110, | ||
2589 | 0x82000580, 0x00000080, 0x02000000, 0x00102310, | ||
2590 | 0x59a80010, 0x82000500, 0x000000ff, 0x80041580, | ||
2591 | 0x02000000, 0x00102310, 0x840409c0, 0x80041540, | ||
2592 | 0x0201f800, 0x0002075a, 0x04020005, 0x4a034406, | ||
2593 | 0x00000003, 0x0201f000, 0x0010230c, 0x48ee6021, | ||
2594 | 0x480a621c, 0x4a02641c, 0x0000bc05, 0x4a026406, | ||
2595 | 0x00000001, 0x0201f800, 0x00103a00, 0x04020007, | ||
2596 | 0x0201f800, 0x0002077d, 0x4a034406, 0x00000002, | ||
2597 | 0x0201f000, 0x0010230c, 0x497a5a04, 0x497a5805, | ||
2598 | 0x4a025c04, 0x00008000, 0x4a01d809, 0x001027f9, | ||
2599 | 0x492e6008, 0x42027000, 0x00000032, 0x0201f000, | ||
2600 | 0x000207a1, 0x592c0005, 0x82000580, 0x01000000, | ||
2601 | 0x02020000, 0x001022c0, 0x4a034406, 0x00000004, | ||
2602 | 0x0201f000, 0x0010230c, 0x497b4406, 0x497b4207, | ||
2603 | 0x0201f800, 0x00103b25, 0x04000008, 0x59a80066, | ||
2604 | 0x59a8086a, 0x80040480, 0x59a80867, 0x48074406, | ||
2605 | 0x80041480, 0x480b4207, 0x49674407, 0x59a8000e, | ||
2606 | 0x48034209, 0x495f4409, 0x59a80020, 0x4803420b, | ||
2607 | 0x0201f000, 0x001022c0, 0x800409c0, 0x04000005, | ||
2608 | 0x4a034406, 0x00000001, 0x0201f000, 0x0010230c, | ||
2609 | 0x59a00406, 0x8c000500, 0x0402000f, 0x59a80069, | ||
2610 | 0x81640480, 0x04001008, 0x59a8000b, 0x81500580, | ||
2611 | 0x04000009, 0x59a8006a, 0x59a81066, 0x80080580, | ||
2612 | 0x04000005, 0x4a034406, 0x00000018, 0x0201f000, | ||
2613 | 0x0010230c, 0x82000540, 0x00000001, 0x0201f800, | ||
2614 | 0x001015fe, 0x0201f800, 0x00103c80, 0x0201f000, | ||
2615 | 0x001022c0, 0x4803c856, 0x800409c0, 0x02020000, | ||
2616 | 0x00102314, 0x59a00406, 0x8c00051e, 0x04000008, | ||
2617 | 0x4803c856, 0x59a0020b, 0x82000480, 0x00000800, | ||
2618 | 0x04001015, 0x0201f000, 0x00102310, 0x4803c856, | ||
2619 | 0x59a0020b, 0x599c0a01, 0x80040480, 0x04021003, | ||
2620 | 0x0201f000, 0x00102310, 0x59a8000e, 0x81640580, | ||
2621 | 0x04000009, 0x4a034406, 0x00000018, 0x0201f000, | ||
2622 | 0x0010230c, 0x4a034406, 0x00000005, 0x0201f000, | ||
2623 | 0x0010230c, 0x59a80026, 0x8c00050a, 0x040007fa, | ||
2624 | 0x59a00406, 0x8c00051e, 0x04000036, 0x0201f800, | ||
2625 | 0x0002075a, 0x040007f4, 0x0201f800, 0x00103a00, | ||
2626 | 0x040007f1, 0x497a5a04, 0x59a00406, 0x4802620a, | ||
2627 | 0x59a00209, 0x4802640a, 0x59a00409, 0x4802620b, | ||
2628 | 0x59a0020d, 0x4802620c, 0x59a0040d, 0x4802640c, | ||
2629 | 0x59a0020e, 0x4802620d, 0x59a0040e, 0x4802640d, | ||
2630 | 0x59a00210, 0x4802620e, 0x59a00410, 0x4802640e, | ||
2631 | 0x59a0020b, 0x82000500, 0x0000fffc, 0x80000104, | ||
2632 | 0x4802640b, 0x0401f9d9, 0x040007d7, 0x48ee6021, | ||
2633 | 0x58ee580d, 0x5930020e, 0x59301c0e, 0x900c19c0, | ||
2634 | 0x800c1d40, 0x5930020c, 0x5930140c, 0x900811c0, | ||
2635 | 0x80081540, 0x592c0a05, 0x832c0400, 0x00000006, | ||
2636 | 0x0201f800, 0x00103a25, 0x4a01d809, 0x001029e5, | ||
2637 | 0x4a034000, 0x00000001, 0x49334001, 0x1c01f000, | ||
2638 | 0x0201f800, 0x00106c55, 0x0201f800, 0x00100ae0, | ||
2639 | 0x0401f86d, 0x497b5057, 0x4201d000, 0x00002710, | ||
2640 | 0x0201f800, 0x001060c6, 0x59c40880, 0x4c040000, | ||
2641 | 0x59c408a3, 0x4c040000, 0x497b4002, 0x0401f876, | ||
2642 | 0x0401f893, 0x4a03a005, 0x10000000, 0x0401f8b4, | ||
2643 | 0x0401f901, 0x04000048, 0x59c80001, 0x800001c0, | ||
2644 | 0x040007fc, 0x59c80018, 0x82000500, 0xf0000000, | ||
2645 | 0x59c00808, 0x82040d00, 0x0fffffff, 0x80040540, | ||
2646 | 0x48038008, 0x0201f800, 0x00100ec1, 0x59c00006, | ||
2647 | 0x4a038006, 0x10000000, 0x59c00009, 0x82000d00, | ||
2648 | 0x00e00000, 0x04020024, 0x4a03900d, 0x00000000, | ||
2649 | 0x59c80020, 0x82000500, 0xff000000, 0x82000580, | ||
2650 | 0x32000000, 0x0402001c, 0x4a03900d, 0x00000001, | ||
2651 | 0x59c80020, 0x82000500, 0xff000000, 0x82000580, | ||
2652 | 0xe1000000, 0x04020014, 0x4a03900d, 0x00000000, | ||
2653 | 0x59c80020, 0x82000500, 0x00ffffff, 0x4a03900d, | ||
2654 | 0x00000000, 0x59c80821, 0x82040d00, 0x00ffffff, | ||
2655 | 0x80040580, 0x04020008, 0x59a80010, 0x80040580, | ||
2656 | 0x04020005, 0x59c40005, 0x82000500, 0x000000f0, | ||
2657 | 0x04000006, 0x4803c856, 0x0401f8d7, 0x4a035057, | ||
2658 | 0x00000001, 0x0401f002, 0x0401f8e1, 0x42000000, | ||
2659 | 0x00000064, 0x80000040, 0x02000800, 0x001005d8, | ||
2660 | 0x59c00807, 0x82040d00, 0x0000000c, 0x040007fa, | ||
2661 | 0x0401f003, 0x4a035057, 0x00000001, 0x0401f8da, | ||
2662 | 0x0201f800, 0x00106f36, 0x0401f818, 0x4201d000, | ||
2663 | 0x000186a0, 0x0201f800, 0x001060c6, 0x5c000800, | ||
2664 | 0x480788a3, 0x5c000800, 0x48078880, 0x59a80057, | ||
2665 | 0x800001c0, 0x02000000, 0x001022c0, 0x0201f000, | ||
2666 | 0x00102318, 0x599c0201, 0x48035059, 0x41780800, | ||
2667 | 0x42001000, 0x00003b10, 0x0201f800, 0x001066a0, | ||
2668 | 0x480b505a, 0x1c01f000, 0x0201f800, 0x00106c4b, | ||
2669 | 0x59b800ea, 0x82000500, 0x00000007, 0x82000580, | ||
2670 | 0x00000003, 0x04020003, 0x4a0370e8, 0x00000001, | ||
2671 | 0x1c01f000, 0x42038000, 0x00007700, 0x4a038006, | ||
2672 | 0x30000000, 0x59c00007, 0x8c00050a, 0x040207fe, | ||
2673 | 0x59c00006, 0x59a00209, 0x59a00c09, 0x900409c0, | ||
2674 | 0x80040d40, 0x48078001, 0x59a0020e, 0x59a00c0e, | ||
2675 | 0x900409c0, 0x80040d40, 0x48078000, 0x59a0020b, | ||
2676 | 0x82000500, 0x0000fffc, 0x48038002, 0x48038003, | ||
2677 | 0x48038005, 0x497b9009, 0x59e00003, 0x82000540, | ||
2678 | 0x00008060, 0x4803c003, 0x1c01f000, 0x41780800, | ||
2679 | 0x8007a0ca, 0x83d3a400, 0x00007600, 0x42000800, | ||
2680 | 0x00000040, 0x0201f800, 0x00101345, 0x4a03a00a, | ||
2681 | 0x00000001, 0x4a03a005, 0x20000000, 0x59d00006, | ||
2682 | 0x4a03a005, 0x30000000, 0x59d00006, 0x8c00050a, | ||
2683 | 0x040207fe, 0x59d00005, 0x59a00210, 0x59a00c10, | ||
2684 | 0x900409c0, 0x80040d40, 0x4807a001, 0x59a0020d, | ||
2685 | 0x59a00c0d, 0x900409c0, 0x80040d40, 0x4807a000, | ||
2686 | 0x59a0020b, 0x82000500, 0x0000fffc, 0x4803a003, | ||
2687 | 0x4803a002, 0x4803a008, 0x1c01f000, 0x59a00002, | ||
2688 | 0x4803c857, 0x800001c0, 0x0402004a, 0x59a8005a, | ||
2689 | 0x48038880, 0x59c400a3, 0x82000540, 0x00002008, | ||
2690 | 0x8400053a, 0x480388a3, 0x59c40008, 0x8400054e, | ||
2691 | 0x82000500, 0xffffffe1, 0x48038808, 0x59c80040, | ||
2692 | 0x84000534, 0x48039040, 0x0401f902, 0x04020013, | ||
2693 | 0x59a80010, 0x800000d0, 0x82000540, 0x00000011, | ||
2694 | 0x48039120, 0x59a80010, 0x82000500, 0x00ffffff, | ||
2695 | 0x82000540, 0x32000000, 0x48039121, 0x4a039123, | ||
2696 | 0xe1290008, 0x59a80010, 0x82000500, 0x00ffffff, | ||
2697 | 0x48039122, 0x0401f016, 0x59a80010, 0x82000500, | ||
2698 | 0x000000ff, 0x900009c0, 0x840001c0, 0x80040540, | ||
2699 | 0x82000540, 0x00000000, 0x48039120, 0x59a80010, | ||
2700 | 0x82000500, 0x000000ff, 0x82000540, 0x01000000, | ||
2701 | 0x48039121, 0x4a039123, 0x08210008, 0x59a80010, | ||
2702 | 0x82000500, 0x000000ff, 0x48039122, 0x497b9124, | ||
2703 | 0x59a80c5b, 0x80040800, 0x4807545b, 0x900409c0, | ||
2704 | 0x82040540, 0x0000aaaa, 0x48039125, 0x497b9126, | ||
2705 | 0x497b9127, 0x0401f8cf, 0x04020004, 0x4a039100, | ||
2706 | 0x0000e980, 0x0401f003, 0x4a039100, 0x0000e9a0, | ||
2707 | 0x1c01f000, 0x82000540, 0x00000001, 0x0402500d, | ||
2708 | 0x4203e000, 0x80000000, 0x40e81000, 0x41780800, | ||
2709 | 0x42000000, 0x00000064, 0x0201f800, 0x001066a0, | ||
2710 | 0x59940024, 0x80080400, 0x48032824, 0x80000580, | ||
2711 | 0x1c01f000, 0x4d900000, 0x4dd00000, 0x4da40000, | ||
2712 | 0x4d140000, 0x417a3000, 0x0201f800, 0x001070d8, | ||
2713 | 0x0201f800, 0x00106dc3, 0x5c022800, 0x5c034800, | ||
2714 | 0x5c03a000, 0x5c032000, 0x1c01f000, 0x59c80007, | ||
2715 | 0x8c000500, 0x04000003, 0x4a03900d, 0x00000030, | ||
2716 | 0x1c01f000, 0x4a038805, 0x00020000, 0x42000800, | ||
2717 | 0x0000003c, 0x0201f800, 0x00101345, 0x4a038891, | ||
2718 | 0x0000ffff, 0x59c80035, 0x48039035, 0x4a03900d, | ||
2719 | 0x00000040, 0x42038000, 0x00007700, 0x0201f800, | ||
2720 | 0x00100ec1, 0x42038000, 0x00007720, 0x0201f800, | ||
2721 | 0x00100ec1, 0x4a03a005, 0x20000000, 0x4a03a005, | ||
2722 | 0x30000000, 0x59d00806, 0x8c040d0a, 0x040207fe, | ||
2723 | 0x1c01f000, 0x4d300000, 0x4031d800, 0x58ef400b, | ||
2724 | 0x58ee580d, 0x58ec0002, 0x82000580, 0x00000200, | ||
2725 | 0x5c026000, 0x02000000, 0x00102304, 0x4d300000, | ||
2726 | 0x59a26001, 0x59a00000, 0x4000b000, 0x80000000, | ||
2727 | 0x48034000, 0x592c0001, 0x80000540, 0x0400001e, | ||
2728 | 0x40025800, 0x8058b040, 0x040207fb, 0x58ec1007, | ||
2729 | 0x58ec1808, 0x592c0a05, 0x4d2c0000, 0x58ec000d, | ||
2730 | 0x40025800, 0x592c0204, 0x5c025800, 0x82000580, | ||
2731 | 0x00000103, 0x04000008, 0x832c0400, 0x00000006, | ||
2732 | 0x0201f800, 0x00103a25, 0x4a01d809, 0x001029e5, | ||
2733 | 0x0401f007, 0x832c0400, 0x00000006, 0x0201f800, | ||
2734 | 0x00103a28, 0x4a01d809, 0x001029e5, 0x5c026000, | ||
2735 | 0x1c01f000, 0x58ec000d, 0x40025800, 0x592c0204, | ||
2736 | 0x82000580, 0x00000103, 0x04020006, 0x0201f800, | ||
2737 | 0x0002077d, 0x5c026000, 0x0201f000, 0x001022c0, | ||
2738 | 0x58ec000d, 0x40025800, 0x592c0404, 0x8400055e, | ||
2739 | 0x48025c04, 0x42028800, 0x000007fd, 0x42003000, | ||
2740 | 0x00fffffd, 0x0201f800, 0x001045a6, 0x04000003, | ||
2741 | 0x80000580, 0x0401f004, 0x59a26001, 0x0201f800, | ||
2742 | 0x0010937d, 0x5c026000, 0x02000000, 0x0010230c, | ||
2743 | 0x4d300000, 0x4a01d809, 0x00102a38, 0x0401f7dc, | ||
2744 | 0x592c0005, 0x82000580, 0x01000000, 0x02000000, | ||
2745 | 0x00102318, 0x4d300000, 0x59a26001, 0x5930020b, | ||
2746 | 0x59301c0a, 0x900001c0, 0x800c1d40, 0x5930040d, | ||
2747 | 0x5930120d, 0x900001c0, 0x80081540, 0x592c0a05, | ||
2748 | 0x832c0400, 0x00000006, 0x0201f800, 0x00103a28, | ||
2749 | 0x4a01d809, 0x001029e5, 0x4a034000, 0x00000001, | ||
2750 | 0x5c026000, 0x1c01f000, 0x4933c857, 0x4c300000, | ||
2751 | 0x5930040b, 0x82000c80, 0x0000000e, 0x04001004, | ||
2752 | 0x4a025a05, 0x0000000e, 0x0401f003, 0x48025a05, | ||
2753 | 0x0401f00c, 0x800409c0, 0x0400000a, 0x4c040000, | ||
2754 | 0x0201f800, 0x00103a00, 0x5c000800, 0x04000003, | ||
2755 | 0x40040000, 0x0401f7f0, 0x80000580, 0x0401f003, | ||
2756 | 0x82000540, 0x00000001, 0x5c006000, 0x1c01f000, | ||
2757 | 0x59a00206, 0x82000580, 0x00000044, 0x1c01f000, | ||
2758 | 0x4807c857, 0x800409c0, 0x0400000c, 0x0201f800, | ||
2759 | 0x00101650, 0x04020009, 0x42000000, 0x00000002, | ||
2760 | 0x0201f800, 0x0010188c, 0x42000000, 0x00000002, | ||
2761 | 0x0201f800, 0x00101821, 0x59a00406, 0x82000500, | ||
2762 | 0x00000007, 0x0c01f001, 0x00102a8c, 0x00102aa1, | ||
2763 | 0x00102ab7, 0x00102a8a, 0x00102a8a, 0x00102a8a, | ||
2764 | 0x00102a8a, 0x00102a8a, 0x0201f000, 0x00102310, | ||
2765 | 0x42000800, 0x000000c0, 0x0201f800, 0x0010193f, | ||
2766 | 0x82040540, 0x00000002, 0x42000800, 0x000000c0, | ||
2767 | 0x0201f800, 0x00101944, 0x42000800, 0x00000000, | ||
2768 | 0x0201f800, 0x0010193f, 0x82040540, 0x00000008, | ||
2769 | 0x42000800, 0x00000000, 0x0201f800, 0x00101944, | ||
2770 | 0x0401f00b, 0x42000800, 0x000000c0, 0x0201f800, | ||
2771 | 0x0010193f, 0x82040540, 0x00000001, 0x42000800, | ||
2772 | 0x000000c0, 0x0201f800, 0x00101944, 0x59c80040, | ||
2773 | 0x4c000000, 0x59a80010, 0x4c000000, 0x59c400a3, | ||
2774 | 0x4c000000, 0x59c40008, 0x4c000000, 0x0401f911, | ||
2775 | 0x04000021, 0x0201f800, 0x001005d8, 0x59a80821, | ||
2776 | 0x800409c0, 0x02020000, 0x00102314, 0x0201f800, | ||
2777 | 0x0010513b, 0x04020005, 0x4a034406, 0x00000016, | ||
2778 | 0x0201f000, 0x0010230c, 0x836c0580, 0x00000003, | ||
2779 | 0x02020000, 0x00102314, 0x59c408a4, 0x82040d00, | ||
2780 | 0x0000000f, 0x82040580, 0x00000000, 0x02020000, | ||
2781 | 0x00102314, 0x59c80040, 0x4c000000, 0x59a80010, | ||
2782 | 0x4c000000, 0x59c400a3, 0x4c000000, 0x59c40008, | ||
2783 | 0x4c000000, 0x59c40080, 0x4c000000, 0x59a0020f, | ||
2784 | 0x59a0bc0f, 0x905cb9c0, 0x805cbd40, 0x41784800, | ||
2785 | 0x41785000, 0x41785800, 0x41789000, 0x41789800, | ||
2786 | 0x0401fe21, 0x0201f800, 0x00106c55, 0x0201f800, | ||
2787 | 0x00100ae0, 0x4178c000, 0x497b4002, 0x0401f95c, | ||
2788 | 0x0401f9aa, 0x59a0020c, 0x59a00c0c, 0x80040d40, | ||
2789 | 0x04000002, 0x0401f9fb, 0x0401f9fa, 0x0401fe68, | ||
2790 | 0x8060c1c0, 0x04020014, 0x0401fa98, 0x0401feb2, | ||
2791 | 0x0402000e, 0x0201f800, 0x001018d3, 0x04020008, | ||
2792 | 0x4a034406, 0x00000017, 0x0201f800, 0x0010230c, | ||
2793 | 0x4203e000, 0x50000000, 0x0401f000, 0x42005800, | ||
2794 | 0x0000aaaa, 0x0401f058, 0x59c80001, 0x800001c0, | ||
2795 | 0x040007ee, 0x59c80801, 0x800409c0, 0x04000006, | ||
2796 | 0x0401fa70, 0x40240000, 0x80280540, 0x802c0540, | ||
2797 | 0x0402004d, 0x59a00002, 0x82000580, 0xfeedbeef, | ||
2798 | 0x04000004, 0x42008800, 0x10000000, 0x0401f003, | ||
2799 | 0x42008800, 0x10000004, 0x0401fa19, 0x4a034002, | ||
2800 | 0xfeedbeef, 0x0401fa71, 0x0401fa97, 0x0401fea8, | ||
2801 | 0x59c40005, 0x8c000534, 0x04000004, 0x42005800, | ||
2802 | 0x0000bbbb, 0x0401f038, 0x0401fe83, 0x04020007, | ||
2803 | 0x42005800, 0x0000cccc, 0x485f420f, 0x905cb9c0, | ||
2804 | 0x485f440f, 0x0401f030, 0x59a0040c, 0x800001c0, | ||
2805 | 0x0400000e, 0x59a26000, 0x5930000d, 0x800001c0, | ||
2806 | 0x040207be, 0x59a26001, 0x5930080d, 0x800409c0, | ||
2807 | 0x040207ba, 0x804891c0, 0x040207b8, 0x804c99c0, | ||
2808 | 0x040207b6, 0x0401f87a, 0x805cb840, 0x04000005, | ||
2809 | 0x40240000, 0x80280540, 0x802c0540, 0x0402001a, | ||
2810 | 0x42000000, 0x00030d40, 0x80000040, 0x04020012, | ||
2811 | 0x59c00007, 0x82000500, 0x000501c0, 0x0402000b, | ||
2812 | 0x0201f800, 0x001018d3, 0x04020008, 0x4a034406, | ||
2813 | 0x00000017, 0x0201f800, 0x0010230c, 0x4203e000, | ||
2814 | 0x50000000, 0x0401f000, 0x42005800, 0x0000dddd, | ||
2815 | 0x0401f005, 0x59c00807, 0x82040d00, 0x0000000c, | ||
2816 | 0x040007ea, 0x0401fe5c, 0x59a0040c, 0x800001c0, | ||
2817 | 0x04000002, 0x0401f856, 0x0401fe6b, 0x40240000, | ||
2818 | 0x80280540, 0x802c0540, 0x04020003, 0x805cb9c0, | ||
2819 | 0x04020781, 0x0201f800, 0x00106f36, 0x0401fda3, | ||
2820 | 0x4201d000, 0x000186a0, 0x0201f800, 0x001060c6, | ||
2821 | 0x5c000800, 0x48078880, 0x5c000800, 0x48078808, | ||
2822 | 0x5c000800, 0x480788a3, 0x5c000800, 0x48075010, | ||
2823 | 0x5c000800, 0x48079040, 0x0201f800, 0x00100969, | ||
2824 | 0x59a00406, 0x82000500, 0x00000003, 0x82000580, | ||
2825 | 0x00000002, 0x0400002c, 0x42000800, 0x000000c0, | ||
2826 | 0x0201f800, 0x0010193f, 0x82040500, 0xfffffffc, | ||
2827 | 0x42000800, 0x000000c0, 0x0201f800, 0x00101944, | ||
2828 | 0x42000800, 0x00000000, 0x0201f800, 0x0010193f, | ||
2829 | 0x82040500, 0xfffffff7, 0x42000800, 0x00000000, | ||
2830 | 0x0201f800, 0x00101944, 0x42000800, 0x00000000, | ||
2831 | 0x0201f800, 0x0010193f, 0x82040500, 0xfffffffb, | ||
2832 | 0x42000800, 0x00000000, 0x0201f800, 0x00101944, | ||
2833 | 0x4a0388a7, 0x0000f7f7, 0x42006000, 0xbeffffff, | ||
2834 | 0x42006800, 0x80018000, 0x0201f800, 0x0010427d, | ||
2835 | 0x42006000, 0xfffeffff, 0x41786800, 0x0201f800, | ||
2836 | 0x0010427d, 0x402c0000, 0x80280540, 0x80240540, | ||
2837 | 0x02000000, 0x001022c0, 0x48274406, 0x482b4207, | ||
2838 | 0x482f4407, 0x0201f000, 0x0010231c, 0x59a26000, | ||
2839 | 0x813261c0, 0x0400000e, 0x59325808, 0x812e59c0, | ||
2840 | 0x0400000b, 0x0201f800, 0x0002077d, 0x0201f800, | ||
2841 | 0x001007fd, 0x59a26001, 0x59325808, 0x0201f800, | ||
2842 | 0x0002077d, 0x0201f800, 0x001007fd, 0x1c01f000, | ||
2843 | 0x42000800, 0x000000ef, 0x0201f800, 0x001015eb, | ||
2844 | 0x59c400a3, 0x8400055a, 0x8400053a, 0x480388a3, | ||
2845 | 0x0201f800, 0x0010163b, 0x0402000a, 0x42000000, | ||
2846 | 0x00000001, 0x0201f800, 0x0010188c, 0x42000000, | ||
2847 | 0x00000001, 0x0201f800, 0x00101821, 0x0401f013, | ||
2848 | 0x0201f800, 0x00101642, 0x04020008, 0x41780000, | ||
2849 | 0x0201f800, 0x0010188c, 0x41780000, 0x0201f800, | ||
2850 | 0x00101821, 0x0401f009, 0x42000000, 0x00000002, | ||
2851 | 0x0201f800, 0x0010188c, 0x42000000, 0x00000002, | ||
2852 | 0x0201f800, 0x00101821, 0x42000800, 0x00000000, | ||
2853 | 0x0201f800, 0x0010193f, 0x82040540, 0x00000004, | ||
2854 | 0x42000800, 0x00000000, 0x0201f800, 0x00101944, | ||
2855 | 0x4201d000, 0x00000014, 0x0201f800, 0x0010608e, | ||
2856 | 0x59c40008, 0x8400054e, 0x82000500, 0xffffffe1, | ||
2857 | 0x48038808, 0x4a0388a7, 0x0000f7f7, 0x42001000, | ||
2858 | 0x04000001, 0x0201f800, 0x0010193d, 0x42006000, | ||
2859 | 0xbe20bfff, 0x42006800, 0x80018000, 0x0201f800, | ||
2860 | 0x0010427d, 0x42006000, 0xfffeffff, 0x41786800, | ||
2861 | 0x0201f800, 0x0010427d, 0x4200b000, 0x00001388, | ||
2862 | 0x4201d000, 0x00000014, 0x4c580000, 0x0201f800, | ||
2863 | 0x0010608e, 0x0201f800, 0x001018d3, 0x5c00b000, | ||
2864 | 0x04000004, 0x8058b040, 0x040207f6, 0x0401f025, | ||
2865 | 0x59c40005, 0x8c000534, 0x04020007, 0x59c400a4, | ||
2866 | 0x82000500, 0x0000000f, 0x82000580, 0x00000008, | ||
2867 | 0x0402001c, 0x42006000, 0x00020000, 0x0201f800, | ||
2868 | 0x00104282, 0x4201d000, 0x00000064, 0x0201f800, | ||
2869 | 0x0010608e, 0x42006000, 0xfeffffff, 0x42006800, | ||
2870 | 0x02000000, 0x0201f800, 0x0010427d, 0x42006000, | ||
2871 | 0xfdffffff, 0x41786800, 0x0201f800, 0x0010427d, | ||
2872 | 0x4a038805, 0x04000001, 0x59c400a4, 0x82000500, | ||
2873 | 0x0000000f, 0x82000580, 0x00000000, 0x04000003, | ||
2874 | 0x82000540, 0x00000001, 0x1c01f000, 0x4803c856, | ||
2875 | 0x42038000, 0x00007700, 0x0201f800, 0x00100ec1, | ||
2876 | 0x59c00006, 0x59a0040c, 0x800001c0, 0x0400003f, | ||
2877 | 0x59a03c0c, 0x59a00209, 0x59a01c09, 0x900c19c0, | ||
2878 | 0x800c1d40, 0x59a0020e, 0x59a0240e, 0x901021c0, | ||
2879 | 0x80102540, 0x59a0020b, 0x82000500, 0x0000fffc, | ||
2880 | 0x59a0140b, 0x900811c0, 0x80081540, 0x480b8003, | ||
2881 | 0x0201f800, 0x0002075a, 0x02000800, 0x001005d8, | ||
2882 | 0x49334000, 0x0201f800, 0x001007e4, 0x4a025a04, | ||
2883 | 0x00000018, 0x4a025805, 0x00abcdef, 0x492e6008, | ||
2884 | 0x492e600b, 0x481e600d, 0x4a02600c, 0x00000004, | ||
2885 | 0x832c0400, 0x00000011, 0x4802600a, 0x42001000, | ||
2886 | 0x0000000c, 0x821c0d80, 0x00000001, 0x04000004, | ||
2887 | 0x801c3840, 0x0401f963, 0x0401f004, 0x41783800, | ||
2888 | 0x0401f960, 0x0401f011, 0x821c0c80, 0x00000005, | ||
2889 | 0x04001005, 0x40043800, 0x42001000, 0x0000003c, | ||
2890 | 0x0401f006, 0x80001580, 0x82081400, 0x0000000c, | ||
2891 | 0x801c3840, 0x040207fd, 0x832c0400, 0x00000005, | ||
2892 | 0x0401f950, 0x040207f1, 0x497b9009, 0x59e00003, | ||
2893 | 0x82000540, 0x00008060, 0x4803c003, 0x4a038009, | ||
2894 | 0x00e00000, 0x1c01f000, 0x4803c856, 0x41780800, | ||
2895 | 0x8007a0ca, 0x83d3a400, 0x00007600, 0x42000800, | ||
2896 | 0x00000040, 0x0201f800, 0x00101345, 0x4a03a00a, | ||
2897 | 0x00000001, 0x4a03a005, 0x20000000, 0x59d00006, | ||
2898 | 0x4a03a005, 0x30000000, 0x59d00006, 0x8c00050a, | ||
2899 | 0x040207fe, 0x59d00005, 0x59a0020c, 0x800001c0, | ||
2900 | 0x0400003f, 0x59a03a0c, 0x59a00210, 0x59a01c10, | ||
2901 | 0x900c19c0, 0x800c1d40, 0x59a0020d, 0x59a0240d, | ||
2902 | 0x901021c0, 0x80102540, 0x59a0120b, 0x82081500, | ||
2903 | 0x0000fffc, 0x59a0040b, 0x900001c0, 0x80081540, | ||
2904 | 0x480ba003, 0x0201f800, 0x0002075a, 0x02000800, | ||
2905 | 0x001005d8, 0x49334001, 0x0201f800, 0x001007e4, | ||
2906 | 0x4a025a04, 0x00000018, 0x4a025805, 0x00abcdef, | ||
2907 | 0x492e6008, 0x492e600b, 0x481e600d, 0x4a02600c, | ||
2908 | 0x00000004, 0x832c0400, 0x00000011, 0x4802600a, | ||
2909 | 0x42001000, 0x0000000c, 0x821c0d80, 0x00000001, | ||
2910 | 0x04000004, 0x801c3840, 0x0401f906, 0x0401f004, | ||
2911 | 0x41783800, 0x0401f903, 0x0401f011, 0x821c0c80, | ||
2912 | 0x00000005, 0x04001005, 0x40043800, 0x42001000, | ||
2913 | 0x0000003c, 0x0401f006, 0x80001580, 0x82081400, | ||
2914 | 0x0000000c, 0x801c3840, 0x040207fd, 0x832c0400, | ||
2915 | 0x00000005, 0x0401f8f3, 0x040207f1, 0x1c01f000, | ||
2916 | 0x4803c856, 0x59a0020c, 0x800001c0, 0x04000024, | ||
2917 | 0x824c0580, 0x00000002, 0x04000040, 0x59a26001, | ||
2918 | 0x5930380d, 0x801c39c0, 0x0400003c, 0x801c3840, | ||
2919 | 0x481e600d, 0x5932580b, 0x5930080a, 0x50042000, | ||
2920 | 0x58041801, 0x58041002, 0x82081500, 0xfffffffc, | ||
2921 | 0x5930000c, 0x80000000, 0x82000d80, 0x00000005, | ||
2922 | 0x04020009, 0x497a600c, 0x592e5801, 0x812e59c0, | ||
2923 | 0x0400001a, 0x492e600b, 0x832c0c00, 0x00000005, | ||
2924 | 0x0401f005, 0x4802600c, 0x5930080a, 0x82040c00, | ||
2925 | 0x00000003, 0x4806600a, 0x0401f010, 0x59a0120b, | ||
2926 | 0x82081500, 0x0000fffc, 0x59a0040b, 0x900001c0, | ||
2927 | 0x80081540, 0x480ba003, 0x59a0020d, 0x59a0240d, | ||
2928 | 0x901021c0, 0x80102540, 0x59a00210, 0x59a01c10, | ||
2929 | 0x900c19c0, 0x800c1d40, 0x4201d000, 0x00003a98, | ||
2930 | 0x0201f800, 0x001060c6, 0x480ba002, 0x59a80059, | ||
2931 | 0x4803a008, 0x4813a000, 0x480fa001, 0x4a03a005, | ||
2932 | 0x10000000, 0x02005800, 0x001005d8, 0x804c9800, | ||
2933 | 0x82000540, 0x00000001, 0x1c01f000, 0x4847c857, | ||
2934 | 0x59a0040c, 0x800001c0, 0x04000024, 0x82480580, | ||
2935 | 0x00000002, 0x04000042, 0x59a26000, 0x5930380d, | ||
2936 | 0x801c39c0, 0x0400003e, 0x801c3840, 0x481e600d, | ||
2937 | 0x5932580b, 0x5930080a, 0x50042000, 0x58041801, | ||
2938 | 0x58041002, 0x82081500, 0xfffffffc, 0x5930000c, | ||
2939 | 0x80000000, 0x82000d80, 0x00000005, 0x04020009, | ||
2940 | 0x497a600c, 0x592e5801, 0x812e59c0, 0x0400001d, | ||
2941 | 0x492e600b, 0x832c0c00, 0x00000005, 0x0401f005, | ||
2942 | 0x4802600c, 0x5930080a, 0x82040c00, 0x00000003, | ||
2943 | 0x4806600a, 0x0401f013, 0x82440580, 0x10000000, | ||
2944 | 0x0402001f, 0x59a0020e, 0x59a0240e, 0x901021c0, | ||
2945 | 0x80102540, 0x59a00209, 0x59a01c09, 0x900c19c0, | ||
2946 | 0x800c1d40, 0x59a0020b, 0x82000500, 0x0000fffc, | ||
2947 | 0x59a0140b, 0x900811c0, 0x80081540, 0x480b8003, | ||
2948 | 0x48138000, 0x480f8001, 0x480b8002, 0x59c80018, | ||
2949 | 0x82000500, 0xf0000000, 0x59c02008, 0x82102500, | ||
2950 | 0x0fffffff, 0x80100540, 0x48038008, 0x48478006, | ||
2951 | 0x80489000, 0x8260c540, 0x00000001, 0x1c01f000, | ||
2952 | 0x59c00009, 0x4803c857, 0x82000d00, 0x00e00000, | ||
2953 | 0x0400000d, 0x485f420f, 0x905cb9c0, 0x485f440f, | ||
2954 | 0x8c00052e, 0x04000002, 0x80285000, 0x8c00052c, | ||
2955 | 0x04000002, 0x80244800, 0x8c00052a, 0x04000002, | ||
2956 | 0x802c5800, 0x1c01f000, 0x59a0020c, 0x800001c0, | ||
2957 | 0x04000024, 0x59d00806, 0x4807c857, 0x8c040d3e, | ||
2958 | 0x04000020, 0x4a03a005, 0x20000000, 0x4a03a005, | ||
2959 | 0x30000000, 0x59d00806, 0x8c040d0a, 0x040207fe, | ||
2960 | 0x824c0480, 0x00000003, 0x02021800, 0x001005d8, | ||
2961 | 0x404c0000, 0x0c01f001, 0x00102da1, 0x00102da3, | ||
2962 | 0x00102da9, 0x0201f800, 0x001005d8, 0x80000040, | ||
2963 | 0x40009800, 0x0401ff43, 0x0400000a, 0x0401ff41, | ||
2964 | 0x0401f008, 0x80000040, 0x40009800, 0x59d00806, | ||
2965 | 0x4807c857, 0x8c040d3e, 0x040207e3, 0x0401ff39, | ||
2966 | 0x1c01f000, 0x59a0040c, 0x800001c0, 0x04000024, | ||
2967 | 0x59c00807, 0x4807c857, 0x8c040d3e, 0x04000020, | ||
2968 | 0x59c00807, 0x4a038006, 0x20000000, 0x82480480, | ||
2969 | 0x00000003, 0x02021800, 0x001005d8, 0x40480000, | ||
2970 | 0x0c01f001, 0x00102dc4, 0x00102dc6, 0x00102dce, | ||
2971 | 0x0201f800, 0x001005d8, 0x80000040, 0x40009000, | ||
2972 | 0x42008800, 0x10000004, 0x0401ff65, 0x0400000c, | ||
2973 | 0x0401ff63, 0x0401f00a, 0x80000040, 0x40009000, | ||
2974 | 0x59c00807, 0x4807c857, 0x8c040d3e, 0x040207e5, | ||
2975 | 0x42008800, 0x10000004, 0x0401ff59, 0x1c01f000, | ||
2976 | 0x492fc857, 0x4000a800, 0x4a03b805, 0x20000000, | ||
2977 | 0x59dc0006, 0x4a03b805, 0x30000000, 0x4813b800, | ||
2978 | 0x480fb801, 0x480bb802, 0x4857b803, 0x4a03b805, | ||
2979 | 0x30000002, 0x59dc0006, 0x4a03b805, 0x70000001, | ||
2980 | 0x59dc0006, 0x4a03b805, 0x10000000, 0x59dc0006, | ||
2981 | 0x8c00053e, 0x040007fe, 0x4a03b805, 0x20000000, | ||
2982 | 0x59dc0006, 0x59dc2000, 0x59dc1801, 0x801c39c0, | ||
2983 | 0x0400000a, 0x4d2c0000, 0x0201f800, 0x001007e4, | ||
2984 | 0x5c000800, 0x02000800, 0x001005d8, 0x4a025a04, | ||
2985 | 0x0000000a, 0x492c0801, 0x1c01f000, 0x42006000, | ||
2986 | 0x00102fb2, 0x0201f800, 0x00101345, 0x4a03902c, | ||
2987 | 0x00200000, 0x4200b000, 0x000001f4, 0x59c8002c, | ||
2988 | 0x8c00052c, 0x04000007, 0x8058b040, 0x040207fc, | ||
2989 | 0x42000000, 0x00004003, 0x41781000, 0x0401f196, | ||
2990 | 0x50301000, 0x41784800, 0x4a03902d, 0x00008000, | ||
2991 | 0x4200b000, 0x000001f4, 0x59c8002c, 0x8c000534, | ||
2992 | 0x04000007, 0x8058b040, 0x040207fc, 0x42000000, | ||
2993 | 0x00004003, 0x41781000, 0x0401f187, 0x0401f8f8, | ||
2994 | 0x80244800, 0x40240000, 0x82000580, 0x000003b1, | ||
2995 | 0x040207fb, 0x0401f988, 0x41784800, 0x0401f920, | ||
2996 | 0x80244800, 0x40240000, 0x82000580, 0x000003b1, | ||
2997 | 0x040207fb, 0x80306000, 0x82300580, 0x00102fb4, | ||
2998 | 0x040207e0, 0x59a80863, 0x800409c0, 0x04000007, | ||
2999 | 0x42000000, 0x00004004, 0x42001000, 0x00000002, | ||
3000 | 0x59a81862, 0x0401f16c, 0x42006000, 0x00102fb2, | ||
3001 | 0x4a035064, 0x00000004, 0x50301000, 0x41784800, | ||
3002 | 0x4a03902d, 0x00004000, 0x4200b000, 0x000001f4, | ||
3003 | 0x59c8002c, 0x8c000532, 0x04000007, 0x8058b040, | ||
3004 | 0x040207fc, 0x42000000, 0x00004003, 0x41781000, | ||
3005 | 0x0401f159, 0x0401f8ca, 0x80244800, 0x40240000, | ||
3006 | 0x82000580, 0x00000154, 0x040207fb, 0x0401f95a, | ||
3007 | 0x41784800, 0x0401f8f2, 0x80244800, 0x40240000, | ||
3008 | 0x82000580, 0x00000154, 0x040207fb, 0x80306000, | ||
3009 | 0x82300580, 0x00102fb4, 0x040207e0, 0x59a80863, | ||
3010 | 0x800409c0, 0x04000007, 0x42000000, 0x00004004, | ||
3011 | 0x42001000, 0x00000004, 0x59a81862, 0x0401f13e, | ||
3012 | 0x42006000, 0x00102fb2, 0x497b5064, 0x50301000, | ||
3013 | 0x41784800, 0x4a03902d, 0x00001000, 0x4200b000, | ||
3014 | 0x000001f4, 0x59c8002c, 0x8c00052e, 0x04000007, | ||
3015 | 0x8058b040, 0x040207fc, 0x42000000, 0x00004003, | ||
3016 | 0x41781000, 0x0401f12c, 0x0401f89d, 0x80244800, | ||
3017 | 0x40240000, 0x82000580, 0x00000088, 0x040207fb, | ||
3018 | 0x0401f92d, 0x41784800, 0x0401f8c5, 0x80244800, | ||
3019 | 0x40240000, 0x82000580, 0x00000088, 0x040207fb, | ||
3020 | 0x80306000, 0x82300580, 0x00102fb4, 0x040207e0, | ||
3021 | 0x59a80863, 0x800409c0, 0x04000007, 0x42000000, | ||
3022 | 0x00004004, 0x42001000, 0x00000001, 0x59a81862, | ||
3023 | 0x0401f111, 0x42006000, 0x00102fb2, 0x50301000, | ||
3024 | 0x41784800, 0x4a03902d, 0x00000800, 0x0401f87c, | ||
3025 | 0x80244800, 0x40240000, 0x82000580, 0x00000018, | ||
3026 | 0x040207fb, 0x0401f90c, 0x41784800, 0x0401f8a4, | ||
3027 | 0x80244800, 0x40240000, 0x82000580, 0x00000018, | ||
3028 | 0x040207fb, 0x80306000, 0x82300580, 0x00102fb4, | ||
3029 | 0x040207eb, 0x59a80863, 0x800409c0, 0x04000007, | ||
3030 | 0x42000000, 0x00004004, 0x42001000, 0x00000010, | ||
3031 | 0x59a81862, 0x0401f0f0, 0x42006000, 0x00102fb2, | ||
3032 | 0x50301000, 0x41784800, 0x4a03902d, 0x00000400, | ||
3033 | 0x0401f85b, 0x80244800, 0x40240000, 0x82000580, | ||
3034 | 0x00000088, 0x040207fb, 0x0401f8eb, 0x41784800, | ||
3035 | 0x0401f883, 0x80244800, 0x40240000, 0x82000580, | ||
3036 | 0x00000088, 0x040207fb, 0x80306000, 0x82300580, | ||
3037 | 0x00102fb4, 0x040207eb, 0x59a80863, 0x800409c0, | ||
3038 | 0x04000007, 0x42000000, 0x00004004, 0x42001000, | ||
3039 | 0x00000008, 0x59a81862, 0x0401f0cf, 0x42006000, | ||
3040 | 0x00102fb2, 0x50301000, 0x41784800, 0x4a03902d, | ||
3041 | 0x00002000, 0x4200b000, 0x000001f4, 0x59c8002c, | ||
3042 | 0x8c000530, 0x04000007, 0x8058b040, 0x040207fc, | ||
3043 | 0x42000000, 0x00004003, 0x41781000, 0x0401f0be, | ||
3044 | 0x59c8002c, 0x82000500, 0xffe0ffff, 0x82080d00, | ||
3045 | 0x001f0000, 0x80040540, 0x4803902c, 0x0401f828, | ||
3046 | 0x80244800, 0x40240000, 0x82000580, 0x00000110, | ||
3047 | 0x040207fb, 0x0401f8b8, 0x41784800, 0x0401f850, | ||
3048 | 0x59c80034, 0x82080d00, 0x001f0000, 0x82000500, | ||
3049 | 0x001f0000, 0x80040580, 0x04000006, 0x59a80063, | ||
3050 | 0x80000000, 0x48035063, 0x40240000, 0x48035062, | ||
3051 | 0x80244800, 0x40240000, 0x82000580, 0x00000110, | ||
3052 | 0x040207ef, 0x80306000, 0x82300580, 0x00102fb4, | ||
3053 | 0x040207cd, 0x59a80863, 0x800409c0, 0x04000006, | ||
3054 | 0x42000000, 0x00004004, 0x42001000, 0x00000020, | ||
3055 | 0x59a81862, 0x0201f000, 0x001022c0, 0x59c8002c, | ||
3056 | 0x82000500, 0xffff0000, 0x82080d00, 0x0000ffff, | ||
3057 | 0x80040540, 0x4803902c, 0x40080000, 0x48039028, | ||
3058 | 0x48039029, 0x59a80064, 0x82000580, 0x00000004, | ||
3059 | 0x04000004, 0x40080000, 0x4803902a, 0x4803902b, | ||
3060 | 0x59c8082d, 0x82040d00, 0xfffffc00, 0x40240000, | ||
3061 | 0x80040d40, 0x4807902d, 0x4200b000, 0x000001f4, | ||
3062 | 0x59c8002c, 0x82000500, 0x18000000, 0x04000007, | ||
3063 | 0x8058b040, 0x040207fb, 0x42000000, 0x00004003, | ||
3064 | 0x41781000, 0x0401f06c, 0x4a03902e, 0x00000001, | ||
3065 | 0x4200b000, 0x000001f4, 0x59c8002e, 0x8c000500, | ||
3066 | 0x04000006, 0x8058b040, 0x040207fc, 0x42000000, | ||
3067 | 0x00004003, 0x0401f060, 0x1c01f000, 0x41783800, | ||
3068 | 0x59c8082d, 0x82040d00, 0xfffffc00, 0x40240000, | ||
3069 | 0x80040d40, 0x4807902d, 0x4200b000, 0x000001f4, | ||
3070 | 0x59c8002c, 0x82000500, 0x18000000, 0x04000007, | ||
3071 | 0x8058b040, 0x040207fb, 0x42000000, 0x00004003, | ||
3072 | 0x41781000, 0x0401f04c, 0x59c80030, 0x59c80830, | ||
3073 | 0x80040580, 0x040207fd, 0x40041800, 0x59c80031, | ||
3074 | 0x59c80831, 0x80040580, 0x040207fd, 0x40042000, | ||
3075 | 0x59c80032, 0x59c80832, 0x80040580, 0x040207fd, | ||
3076 | 0x40042800, 0x59c80033, 0x59c80833, 0x80040580, | ||
3077 | 0x040207fd, 0x40043000, 0x400c0000, 0x80080580, | ||
3078 | 0x04000002, 0x801c3800, 0x40100000, 0x80080580, | ||
3079 | 0x04000002, 0x801c3800, 0x59a80064, 0x82000580, | ||
3080 | 0x00000004, 0x04000009, 0x40140000, 0x80080580, | ||
3081 | 0x04000002, 0x801c3800, 0x40180000, 0x80080580, | ||
3082 | 0x04000002, 0x801c3800, 0x59a80064, 0x82000580, | ||
3083 | 0x00000004, 0x0400000d, 0x59c80034, 0x59c80834, | ||
3084 | 0x80040580, 0x040207fd, 0x82040500, 0x0000ffff, | ||
3085 | 0x82080d00, 0x0000ffff, 0x80040580, 0x0400000e, | ||
3086 | 0x801c3800, 0x0401f00c, 0x59c80034, 0x59c80834, | ||
3087 | 0x80040580, 0x040207fd, 0x82040500, 0x000000ff, | ||
3088 | 0x82080d00, 0x000000ff, 0x80040580, 0x04000002, | ||
3089 | 0x801c3800, 0x801c39c0, 0x04000006, 0x59a80063, | ||
3090 | 0x801c0400, 0x48035063, 0x40240000, 0x48035062, | ||
3091 | 0x1c01f000, 0x48034206, 0x48074406, 0x480b4207, | ||
3092 | 0x480f4407, 0x48134208, 0x48174408, 0x0201f000, | ||
3093 | 0x001022c3, 0x42000000, 0x00600000, 0x80000040, | ||
3094 | 0x040207ff, 0x1c01f000, 0x5a5a5a5a, 0xa5a5a5a5, | ||
3095 | 0x59a00c0a, 0x800409c0, 0x02000000, 0x00102310, | ||
3096 | 0x82040480, 0x00000021, 0x02021000, 0x00102310, | ||
3097 | 0x82040480, 0x00000011, 0x04001003, 0x42000800, | ||
3098 | 0x00000010, 0x59a00208, 0x59a01407, 0x900811c0, | ||
3099 | 0x80081540, 0x59a00207, 0x59a01c06, 0x900c19c0, | ||
3100 | 0x800c1d40, 0x0201f800, 0x00103a00, 0x04000006, | ||
3101 | 0x0201f800, 0x00103a25, 0x4a01d809, 0x00102fd5, | ||
3102 | 0x1c01f000, 0x4a034406, 0x00000002, 0x0201f000, | ||
3103 | 0x0010230c, 0x4031d800, 0x58ef400b, 0x58ec0002, | ||
3104 | 0x82000580, 0x00000200, 0x02000000, 0x00102304, | ||
3105 | 0x59a00c0a, 0x82040480, 0x00000011, 0x04001003, | ||
3106 | 0x42000800, 0x00000010, 0x59a0040b, 0x59a0120b, | ||
3107 | 0x900811c0, 0x80081540, 0x59a00209, 0x59a01c08, | ||
3108 | 0x900c19c0, 0x800c1d40, 0x58ec0003, 0x0201f800, | ||
3109 | 0x00103a28, 0x4a01d809, 0x00102ff0, 0x1c01f000, | ||
3110 | 0x4031d800, 0x58ef400b, 0x58ec0002, 0x82000580, | ||
3111 | 0x00000200, 0x02000000, 0x00102304, 0x59a00c0a, | ||
3112 | 0x82040480, 0x00000011, 0x02001000, 0x001022c0, | ||
3113 | 0x82040c80, 0x00000010, 0x59a00208, 0x59a01407, | ||
3114 | 0x900811c0, 0x80081540, 0x59a00207, 0x59a01c06, | ||
3115 | 0x900c19c0, 0x800c1d40, 0x82081400, 0x00000040, | ||
3116 | 0x58ec0003, 0x0201f800, 0x00103a25, 0x4a01d809, | ||
3117 | 0x0010300e, 0x1c01f000, 0x4031d800, 0x58ef400b, | ||
3118 | 0x58ec0002, 0x82000580, 0x00000200, 0x02000000, | ||
3119 | 0x00102304, 0x59a0040a, 0x82000c80, 0x00000010, | ||
3120 | 0x59a0040b, 0x59a0120b, 0x900811c0, 0x80081540, | ||
3121 | 0x59a00209, 0x59a01c08, 0x900c19c0, 0x800c1d40, | ||
3122 | 0x82081400, 0x00000040, 0x58ec0003, 0x0201f800, | ||
3123 | 0x00103a28, 0x4a01d809, 0x001022b9, 0x1c01f000, | ||
3124 | 0x48efc857, 0x59a00207, 0x59a01407, 0x900001c0, | ||
3125 | 0x80081540, 0x59a00209, 0x59a01c09, 0x900001c0, | ||
3126 | 0x800c1d40, 0x59a00406, 0x48034000, 0x480b4001, | ||
3127 | 0x480f4002, 0x0201f800, 0x00103a00, 0x04020005, | ||
3128 | 0x4a034406, 0x00000002, 0x0201f000, 0x0010230c, | ||
3129 | 0x42000800, 0x00000010, 0x0201f800, 0x00103a25, | ||
3130 | 0x4a01d809, 0x00103043, 0x1c01f000, 0x4031d800, | ||
3131 | 0x58ef400b, 0x58ee580d, 0x58ec0002, 0x82000580, | ||
3132 | 0x00000200, 0x02000000, 0x00102304, 0x48efc857, | ||
3133 | 0x49a3c857, 0x492fc857, 0x592c0a04, 0x80040910, | ||
3134 | 0x04020005, 0x4a034406, 0x00000019, 0x0201f000, | ||
3135 | 0x0010230c, 0x4805d80c, 0x0401f00a, 0x4031d800, | ||
3136 | 0x58ef400b, 0x58ec0002, 0x82000580, 0x00000200, | ||
3137 | 0x02000000, 0x00102304, 0x48efc857, 0x49a3c857, | ||
3138 | 0x48efc857, 0x49a3c857, 0x58ec000c, 0x80000040, | ||
3139 | 0x04000012, 0x4801d80c, 0x0201f800, 0x00103a00, | ||
3140 | 0x04020005, 0x4a034406, 0x00000002, 0x0201f000, | ||
3141 | 0x0010230c, 0x42000800, 0x00000010, 0x58ec1007, | ||
3142 | 0x58ec1808, 0x0201f800, 0x00103a25, 0x4a01d809, | ||
3143 | 0x00103057, 0x1c01f000, 0x58ee580d, 0x48efc857, | ||
3144 | 0x49a3c857, 0x492fc857, 0x492f3006, 0x592c0404, | ||
3145 | 0x8400055e, 0x48025c04, 0x4a01d809, 0x00103081, | ||
3146 | 0x1c01f000, 0x58ee580d, 0x48efc857, 0x49a3c857, | ||
3147 | 0x492fc857, 0x592c0404, 0x8400051e, 0x48025c04, | ||
3148 | 0x59a00000, 0x59a01001, 0x59a01802, 0x80081400, | ||
3149 | 0x820c1c40, 0x00000000, 0x832c0400, 0x00000004, | ||
3150 | 0x42000800, 0x00000010, 0x0201f000, 0x00103a28, | ||
3151 | 0x800409c0, 0x04000005, 0x4a034406, 0x00000001, | ||
3152 | 0x0201f000, 0x0010230c, 0x836c0580, 0x00000003, | ||
3153 | 0x04000005, 0x4a034406, 0x00000007, 0x0201f000, | ||
3154 | 0x0010230c, 0x59a0320b, 0x82183500, 0x000000ff, | ||
3155 | 0x59a28c06, 0x0201f800, 0x00020245, 0x02020000, | ||
3156 | 0x00102310, 0x83440580, 0x000007fd, 0x04000008, | ||
3157 | 0x0201f800, 0x001049e7, 0x04000005, 0x4a034406, | ||
3158 | 0x00000009, 0x0201f000, 0x0010230c, 0x0201f800, | ||
3159 | 0x00103a00, 0x04020005, 0x4a034406, 0x00000002, | ||
3160 | 0x0201f000, 0x0010230c, 0x801831c0, 0x0400000a, | ||
3161 | 0x412c0800, 0x0201f800, 0x00103a00, 0x04020005, | ||
3162 | 0x4a034406, 0x00000002, 0x0201f000, 0x0010230c, | ||
3163 | 0x40065800, 0x4a025c04, 0x00008000, 0x497a5a04, | ||
3164 | 0x0201f800, 0x00109100, 0x04020005, 0x4a034406, | ||
3165 | 0x00000003, 0x0201f000, 0x0010230c, 0x4a01d809, | ||
3166 | 0x001030d2, 0x1c01f000, 0x592c0005, 0x82000580, | ||
3167 | 0x01000000, 0x04020005, 0x4a034406, 0x00000004, | ||
3168 | 0x0201f000, 0x0010230c, 0x592c0406, 0x82002d00, | ||
3169 | 0x0000ff00, 0x82000500, 0x000000ff, 0x80000904, | ||
3170 | 0x80040800, 0x82040480, 0x00000006, 0x04001003, | ||
3171 | 0x42000800, 0x00000005, 0x832ca400, 0x00000006, | ||
3172 | 0x4050a800, 0x4004b000, 0x0201f800, 0x0010ab28, | ||
3173 | 0x59a00407, 0x59a01207, 0x900811c0, 0x80081540, | ||
3174 | 0x59a00409, 0x59a01a09, 0x900c19c0, 0x800c1d40, | ||
3175 | 0x832c0400, 0x00000006, 0x4c140000, 0x0201f800, | ||
3176 | 0x00103a28, 0x5c002800, 0x801429c0, 0x04000003, | ||
3177 | 0x4a01d809, 0x001030ff, 0x1c01f000, 0x4031d800, | ||
3178 | 0x58ef400b, 0x58ee580d, 0x58ec0002, 0x82000580, | ||
3179 | 0x00000200, 0x02000000, 0x00102304, 0x812e59c0, | ||
3180 | 0x02000800, 0x001005d8, 0x592c0006, 0x82000500, | ||
3181 | 0xff000000, 0x80000904, 0x800409c0, 0x02000000, | ||
3182 | 0x00102304, 0x82040480, 0x0000000e, 0x04001003, | ||
3183 | 0x42000800, 0x0000000d, 0x592e5801, 0x812e59c0, | ||
3184 | 0x02000800, 0x001005d8, 0x832ca400, 0x00000005, | ||
3185 | 0x4050a800, 0x4004b000, 0x0201f800, 0x0010ab28, | ||
3186 | 0x58ec1007, 0x58ec1808, 0x832c0400, 0x00000005, | ||
3187 | 0x0201f000, 0x00103a28, 0x0201f800, 0x00103a00, | ||
3188 | 0x04020005, 0x4a034406, 0x00000002, 0x0201f000, | ||
3189 | 0x0010230c, 0x59a00c06, 0x82040500, 0x0000ff00, | ||
3190 | 0x840001c0, 0x82001480, 0x00000007, 0x02021000, | ||
3191 | 0x00102310, 0x0c01f001, 0x0010313d, 0x00103144, | ||
3192 | 0x0010314b, 0x0010314b, 0x0010314b, 0x0010314d, | ||
3193 | 0x00103152, 0x42000800, 0x0000000d, 0x42003800, | ||
3194 | 0x00103166, 0x4a034000, 0x0010b4eb, 0x0401f013, | ||
3195 | 0x42000800, 0x0000000d, 0x42003800, 0x00103166, | ||
3196 | 0x4a034000, 0x0010b4f8, 0x0401f00c, 0x0201f000, | ||
3197 | 0x00102310, 0x42000800, 0x00000008, 0x42003800, | ||
3198 | 0x00103179, 0x0401f005, 0x42000800, 0x00000004, | ||
3199 | 0x42003800, 0x001031c3, 0x59a00207, 0x59a01407, | ||
3200 | 0x900001c0, 0x80081540, 0x59a00209, 0x59a01c09, | ||
3201 | 0x900001c0, 0x800c1d40, 0x832c0400, 0x00000005, | ||
3202 | 0x4c1c0000, 0x0201f800, 0x00103a25, 0x5c003800, | ||
3203 | 0x481dd809, 0x1c01f000, 0x4031d800, 0x58ef400b, | ||
3204 | 0x58ee580d, 0x58ec0002, 0x82000580, 0x00000200, | ||
3205 | 0x02000000, 0x00102304, 0x4a03501f, 0x00000001, | ||
3206 | 0x4200b000, 0x0000000d, 0x59a0a800, 0x832ca400, | ||
3207 | 0x00000005, 0x0201f800, 0x0010ab17, 0x0201f000, | ||
3208 | 0x001022c0, 0x4031d800, 0x58ef400b, 0x58ee580d, | ||
3209 | 0x58ec0002, 0x82000580, 0x00000200, 0x02000000, | ||
3210 | 0x00102304, 0x832ca400, 0x00000005, 0x50500000, | ||
3211 | 0x82001500, 0x000c0016, 0x02020000, 0x00102310, | ||
3212 | 0x82500c00, 0x00000003, 0x50040000, 0x82001500, | ||
3213 | 0x00000001, 0x02020000, 0x00102310, 0x50500000, | ||
3214 | 0x82001500, 0x00000028, 0x0400001d, 0x82081580, | ||
3215 | 0x00000028, 0x02020000, 0x00102310, 0x80500800, | ||
3216 | 0x50040000, 0x82001500, 0x00000013, 0x82081580, | ||
3217 | 0x00000013, 0x02020000, 0x00102310, 0x80040800, | ||
3218 | 0x50040000, 0x82001500, 0x00010000, 0x82081580, | ||
3219 | 0x00010000, 0x02020000, 0x00102310, 0x836c0580, | ||
3220 | 0x00000000, 0x04000012, 0x599c0019, 0x8c00050e, | ||
3221 | 0x0402000f, 0x0201f000, 0x00102310, 0x80500800, | ||
3222 | 0x50040000, 0x82001500, 0x00000013, 0x02020000, | ||
3223 | 0x00102310, 0x80040800, 0x50040000, 0x82001500, | ||
3224 | 0x00010000, 0x02020000, 0x00102310, 0x4200b000, | ||
3225 | 0x00000008, 0x4200a800, 0x0010b4e3, 0x0201f800, | ||
3226 | 0x0010ab17, 0x0201f000, 0x001022c0, 0x4031d800, | ||
3227 | 0x58ef400b, 0x58ee580d, 0x58ec0002, 0x82000580, | ||
3228 | 0x00000200, 0x02000000, 0x00102304, 0x4200b000, | ||
3229 | 0x00000004, 0x4200a800, 0x0010b8fa, 0x832ca400, | ||
3230 | 0x00000005, 0x0201f800, 0x0010ab17, 0x59a80005, | ||
3231 | 0x84000550, 0x48035005, 0x0201f000, 0x001022c0, | ||
3232 | 0x0201f800, 0x00103a00, 0x04020005, 0x4a034406, | ||
3233 | 0x00000002, 0x0201f000, 0x0010230c, 0x59a00c06, | ||
3234 | 0x82040500, 0x0000ff00, 0x840001c0, 0x82001480, | ||
3235 | 0x00000006, 0x02021000, 0x00102310, 0x0c01f001, | ||
3236 | 0x001031ee, 0x001031f3, 0x001031f8, 0x001031f8, | ||
3237 | 0x001031f8, 0x001031fa, 0x42000800, 0x0000000d, | ||
3238 | 0x4200a000, 0x0010b4eb, 0x0401f00c, 0x42000800, | ||
3239 | 0x0000000d, 0x4200a000, 0x0010b4f8, 0x0401f007, | ||
3240 | 0x0201f000, 0x00102310, 0x42000800, 0x00000008, | ||
3241 | 0x4200a000, 0x0010b4e3, 0x4004b000, 0x832cac00, | ||
3242 | 0x00000005, 0x0201f800, 0x0010ab17, 0x59a00207, | ||
3243 | 0x59a01407, 0x900001c0, 0x80081540, 0x59a00209, | ||
3244 | 0x59a01c09, 0x900001c0, 0x800c1d40, 0x832c0400, | ||
3245 | 0x00000005, 0x0201f000, 0x00103a28, 0x836c0580, | ||
3246 | 0x00000000, 0x04020005, 0x4a034406, 0x00000007, | ||
3247 | 0x0201f000, 0x0010230c, 0x59a00406, 0x800001c0, | ||
3248 | 0x0400001a, 0x59a80005, 0x8c000514, 0x04000005, | ||
3249 | 0x42000000, 0x00000001, 0x40000800, 0x0401f003, | ||
3250 | 0x59a00207, 0x59a80853, 0x48035053, 0x0201f800, | ||
3251 | 0x0010163b, 0x04000022, 0x0201f800, 0x00101642, | ||
3252 | 0x0400001f, 0x0201f800, 0x00101649, 0x0400001c, | ||
3253 | 0x0201f800, 0x00101650, 0x04000019, 0x48075053, | ||
3254 | 0x0201f000, 0x00102310, 0x59c40801, 0x82040d00, | ||
3255 | 0x00018000, 0x82040580, 0x00000000, 0x04020004, | ||
3256 | 0x4a034406, 0x00000000, 0x0401f00d, 0x82040580, | ||
3257 | 0x00008000, 0x04020004, 0x4a034406, 0x00000001, | ||
3258 | 0x0401f007, 0x82040580, 0x00010000, 0x02020800, | ||
3259 | 0x001005d8, 0x4a034406, 0x00000003, 0x59a00406, | ||
3260 | 0x82000580, 0x00000002, 0x0402001f, 0x59c40006, | ||
3261 | 0x84000500, 0x48038806, 0x0201f800, 0x00106ede, | ||
3262 | 0x497b8880, 0x0201f800, 0x0010a9c0, 0x0201f800, | ||
3263 | 0x0010a9ce, 0x42000000, 0x0010b8ca, 0x0201f800, | ||
3264 | 0x0010aa47, 0x82000540, 0x00000001, 0x0201f800, | ||
3265 | 0x0010518c, 0x4a038808, 0x00000000, 0x4202d800, | ||
3266 | 0x00000004, 0x42001000, 0x00000001, 0x0201f800, | ||
3267 | 0x0010193d, 0x4a035049, 0x00000001, 0x0201f800, | ||
3268 | 0x001006d4, 0x0201f000, 0x001022c0, 0x800409c0, | ||
3269 | 0x04000005, 0x4a034406, 0x00000001, 0x0201f000, | ||
3270 | 0x0010230c, 0x836c0580, 0x00000003, 0x04000005, | ||
3271 | 0x4a034406, 0x00000007, 0x0201f000, 0x0010230c, | ||
3272 | 0x59a28c06, 0x59a0320b, 0x82183500, 0x000000ff, | ||
3273 | 0x0201f800, 0x00020245, 0x02020000, 0x00102310, | ||
3274 | 0x83440580, 0x000007fd, 0x04000008, 0x0201f800, | ||
3275 | 0x001049e7, 0x04000005, 0x42000800, 0x00000009, | ||
3276 | 0x0201f000, 0x0010230c, 0x0201f800, 0x00103a00, | ||
3277 | 0x04020005, 0x4a034406, 0x00000002, 0x0201f000, | ||
3278 | 0x0010230c, 0x497a5a04, 0x4a025c04, 0x00008000, | ||
3279 | 0x0201f800, 0x00109115, 0x04020005, 0x4a034406, | ||
3280 | 0x00000003, 0x0201f000, 0x0010230c, 0x4a01d809, | ||
3281 | 0x0010329e, 0x1c01f000, 0x592c0005, 0x82000d00, | ||
3282 | 0x0000ffff, 0x82000500, 0xffff0000, 0x82000580, | ||
3283 | 0x01000000, 0x04020005, 0x4a034406, 0x00000004, | ||
3284 | 0x0201f000, 0x0010230c, 0x80040904, 0x832ca400, | ||
3285 | 0x00000005, 0x4050a800, 0x4004b000, 0x0201f800, | ||
3286 | 0x0010ab28, 0x59a00207, 0x59a01407, 0x900001c0, | ||
3287 | 0x80081540, 0x59a00209, 0x59a01c09, 0x900001c0, | ||
3288 | 0x800c1d40, 0x832c0400, 0x00000005, 0x0201f000, | ||
3289 | 0x00103a28, 0x496fc857, 0x836c0580, 0x00000000, | ||
3290 | 0x04000005, 0x4a034406, 0x0000001a, 0x0201f000, | ||
3291 | 0x0010230c, 0x0201f800, 0x0010513b, 0x02020800, | ||
3292 | 0x00104142, 0x42000800, 0x00000020, 0x59a00407, | ||
3293 | 0x59a01207, 0x900811c0, 0x80081540, 0x59a00409, | ||
3294 | 0x59a01a09, 0x900c19c0, 0x800c1d40, 0x419c0000, | ||
3295 | 0x49a3c857, 0x0201f800, 0x00103a25, 0x4a01d809, | ||
3296 | 0x001032da, 0x1c01f000, 0x4833c857, 0x4031d800, | ||
3297 | 0x58ef400b, 0x58ec0002, 0x82000580, 0x00000200, | ||
3298 | 0x02000000, 0x00102304, 0x599c0200, 0x800001c0, | ||
3299 | 0x02000000, 0x00102310, 0x59a80005, 0x8c000512, | ||
3300 | 0x04000004, 0x599c0019, 0x8400050c, 0x48033819, | ||
3301 | 0x0201f800, 0x001097d7, 0x59a80005, 0x8c000514, | ||
3302 | 0x04000004, 0x599c0017, 0x84000508, 0x48033817, | ||
3303 | 0x0201f800, 0x00103b25, 0x04020004, 0x8c00050a, | ||
3304 | 0x02020000, 0x00102310, 0x4803c857, 0x8c000504, | ||
3305 | 0x04020004, 0x59c408a3, 0x84040d7a, 0x480788a3, | ||
3306 | 0x8c000502, 0x04020004, 0x59c408a3, 0x84040d08, | ||
3307 | 0x480788a3, 0x599c0c02, 0x8c000500, 0x04020004, | ||
3308 | 0x8c000516, 0x04000012, 0x0401f001, 0x82041480, | ||
3309 | 0x0000007f, 0x02021000, 0x00102310, 0x82041400, | ||
3310 | 0x0010210e, 0x50081000, 0x82081500, 0x000000ff, | ||
3311 | 0x8c000500, 0x04020006, 0x480b5010, 0x42000800, | ||
3312 | 0x00000003, 0x0201f800, 0x00106c78, 0x599c0019, | ||
3313 | 0x8c00050e, 0x0402000b, 0x59a80806, 0x8c040d14, | ||
3314 | 0x04000008, 0x42000800, 0x0010b4e3, 0x50040800, | ||
3315 | 0x82040d00, 0x00000028, 0x02020000, 0x00102310, | ||
3316 | 0x82000500, 0x00000030, 0x04000003, 0x80000108, | ||
3317 | 0x0401f003, 0x42000000, 0x00000002, 0x48039040, | ||
3318 | 0x42000800, 0x00000002, 0x82000400, 0x00103415, | ||
3319 | 0x50001000, 0x0201f800, 0x00106c78, 0x599c0201, | ||
3320 | 0x82000c80, 0x00000100, 0x02001000, 0x00102310, | ||
3321 | 0x82000c80, 0x00000841, 0x02021000, 0x00102310, | ||
3322 | 0x82000500, 0x00000007, 0x02020000, 0x00102310, | ||
3323 | 0x599c0401, 0x80000540, 0x02000000, 0x00102310, | ||
3324 | 0x599c0409, 0x599c0c07, 0x80040c80, 0x02021000, | ||
3325 | 0x00102310, 0x80000040, 0x02000000, 0x00102310, | ||
3326 | 0x599c0209, 0x599c0a07, 0x80040c80, 0x02021000, | ||
3327 | 0x00102310, 0x80000040, 0x02000000, 0x00102310, | ||
3328 | 0x0201f800, 0x001053cd, 0x0201f800, 0x00104cb6, | ||
3329 | 0x599c0201, 0x48035004, 0x0201f800, 0x001012ee, | ||
3330 | 0x599c020a, 0x800001c0, 0x04000003, 0x4803504d, | ||
3331 | 0x0401f003, 0x4a03504d, 0x000000c8, 0x0201f800, | ||
3332 | 0x00103b25, 0x04000004, 0x0201f800, 0x001060df, | ||
3333 | 0x417a5000, 0x836c0580, 0x00000000, 0x04020098, | ||
3334 | 0x599c0003, 0x599c0804, 0x9c0001c0, 0x9c0409c0, | ||
3335 | 0x48035002, 0x48075003, 0x599c1017, 0x8c08151c, | ||
3336 | 0x04000006, 0x599c0005, 0x599c0806, 0x9c0001c0, | ||
3337 | 0x9c0409c0, 0x0401f003, 0x82000500, 0xf0ffffff, | ||
3338 | 0x48035000, 0x48075001, 0x42001000, 0x0010b4eb, | ||
3339 | 0x48001000, 0x48041001, 0x42001000, 0x0010b4f8, | ||
3340 | 0x48001000, 0x48041001, 0x59a80005, 0x8c000514, | ||
3341 | 0x04020015, 0x599c1019, 0x82081500, 0x0000e000, | ||
3342 | 0x82080580, 0x00000000, 0x0402000c, 0x4a035053, | ||
3343 | 0x00000000, 0x42000000, 0x00000001, 0x0201f800, | ||
3344 | 0x0010188c, 0x42000000, 0x00000001, 0x0201f800, | ||
3345 | 0x00101821, 0x0401f02b, 0x82080580, 0x00002000, | ||
3346 | 0x0402000a, 0x4a035053, 0x00000001, 0x41780000, | ||
3347 | 0x0201f800, 0x0010188c, 0x41780000, 0x0201f800, | ||
3348 | 0x00101821, 0x0401f01f, 0x82080580, 0x00004000, | ||
3349 | 0x04020006, 0x4a035053, 0x00000002, 0x4a035049, | ||
3350 | 0x00000001, 0x0401f017, 0x82080580, 0x00006000, | ||
3351 | 0x02020000, 0x00102310, 0x59a80858, 0x82040d80, | ||
3352 | 0x01391077, 0x04020005, 0x59e00813, 0x8c040d00, | ||
3353 | 0x02020000, 0x00102310, 0x4a035053, 0x00000003, | ||
3354 | 0x42000000, 0x00000002, 0x0201f800, 0x0010188c, | ||
3355 | 0x42000000, 0x00000002, 0x0201f800, 0x00101821, | ||
3356 | 0x599c0019, 0x8c000520, 0x0400000d, 0x42000000, | ||
3357 | 0x00000004, 0x42000800, 0x00000040, 0x0201f800, | ||
3358 | 0x00101944, 0x42000000, 0x00000010, 0x42000800, | ||
3359 | 0x000000c0, 0x0201f800, 0x00101944, 0x4a035032, | ||
3360 | 0x0000aaaa, 0x599c1018, 0x82081500, 0x00000030, | ||
3361 | 0x59a8006c, 0x80000540, 0x0400000c, 0x82080580, | ||
3362 | 0x00000000, 0x02000000, 0x00102310, 0x599c1018, | ||
3363 | 0x82081500, 0xffffffcf, 0x82081540, 0x00000010, | ||
3364 | 0x480b3818, 0x0401f010, 0x82080d80, 0x00000000, | ||
3365 | 0x04000007, 0x82080d80, 0x00000010, 0x0400000a, | ||
3366 | 0x82080d80, 0x00000020, 0x04020002, 0x48075032, | ||
3367 | 0x0201f800, 0x00103aba, 0x04000008, 0x0201f800, | ||
3368 | 0x001015fe, 0x0201f800, 0x0010162a, 0x59a8002a, | ||
3369 | 0x80040540, 0x4803502a, 0x49f3c857, 0x42001000, | ||
3370 | 0x00105065, 0x0201f800, 0x00105f90, 0x42001000, | ||
3371 | 0x00105058, 0x0201f800, 0x00106084, 0x4a038805, | ||
3372 | 0xffffffff, 0x4a03c014, 0x00400040, 0x4a03c013, | ||
3373 | 0x00400000, 0x0201f800, 0x001048c7, 0x59a0001d, | ||
3374 | 0x84000540, 0x4803401d, 0x49f3c857, 0x0201f000, | ||
3375 | 0x001022c0, 0x00000018, 0x0000000c, 0x00000018, | ||
3376 | 0x00000020, 0x836c0580, 0x00000000, 0x04020005, | ||
3377 | 0x42000800, 0x00000007, 0x0201f000, 0x0010230c, | ||
3378 | 0x42000800, 0x00000020, 0x59a00407, 0x59a01207, | ||
3379 | 0x900811c0, 0x80081540, 0x59a00409, 0x59a01a09, | ||
3380 | 0x900c19c0, 0x800c1d40, 0x419c0000, 0x0201f000, | ||
3381 | 0x00103a28, 0x800409c0, 0x04000005, 0x4a034406, | ||
3382 | 0x00000001, 0x0201f000, 0x0010230c, 0x0201f800, | ||
3383 | 0x0010513b, 0x04020005, 0x4a034406, 0x00000016, | ||
3384 | 0x0201f000, 0x0010230c, 0x59a80013, 0x8c000500, | ||
3385 | 0x04000011, 0x4a034406, 0x00000000, 0x42000800, | ||
3386 | 0x00000020, 0x59a00407, 0x59a01207, 0x900811c0, | ||
3387 | 0x80081540, 0x59a00409, 0x59a01a09, 0x900c19c0, | ||
3388 | 0x800c1d40, 0x42000000, 0x0010be21, 0x0201f000, | ||
3389 | 0x00103a28, 0x4a034406, 0x00000001, 0x4200b000, | ||
3390 | 0x00000020, 0x4200a800, 0x0010be21, 0x4200a000, | ||
3391 | 0xffffffff, 0x4450a800, 0x8054a800, 0x8058b040, | ||
3392 | 0x040207fd, 0x4d440000, 0x4d340000, 0x42028800, | ||
3393 | 0xffffffff, 0x42002000, 0xffffffff, 0x42003000, | ||
3394 | 0x00000001, 0x42003800, 0x00000001, 0x42001800, | ||
3395 | 0x0010be21, 0x59a81010, 0x82081500, 0x000000ff, | ||
3396 | 0x40180000, 0x0c01f001, 0x0010346e, 0x00103471, | ||
3397 | 0x00103475, 0x00103479, 0x82102500, 0xffffff00, | ||
3398 | 0x0401f014, 0x82102500, 0xffff00ff, 0x840811c0, | ||
3399 | 0x0401f010, 0x82102500, 0xff00ffff, 0x900811c0, | ||
3400 | 0x0401f00c, 0x82102500, 0x00ffffff, 0x9c0801c0, | ||
3401 | 0x80102540, 0x44101800, 0x42003000, 0xffffffff, | ||
3402 | 0x42002000, 0xffffffff, 0x800c1800, 0x0401f003, | ||
3403 | 0x40080000, 0x80102540, 0x81468800, 0x83442c80, | ||
3404 | 0x0000007f, 0x04021014, 0x4c080000, 0x4c0c0000, | ||
3405 | 0x4c180000, 0x4c1c0000, 0x0201f800, 0x00020245, | ||
3406 | 0x5c003800, 0x5c003000, 0x5c001800, 0x5c001000, | ||
3407 | 0x040207f2, 0x0201f800, 0x001049f3, 0x040207ef, | ||
3408 | 0x80183000, 0x801c3800, 0x59341202, 0x40180000, | ||
3409 | 0x0c01f7ce, 0x82100580, 0xffffffff, 0x04000002, | ||
3410 | 0x44101800, 0x42001800, 0x0010be21, 0x500c0000, | ||
3411 | 0x82000500, 0xffffff00, 0x801c0540, 0x44001800, | ||
3412 | 0x5c026800, 0x5c028800, 0x42000800, 0x00000020, | ||
3413 | 0x59a00407, 0x59a01207, 0x900811c0, 0x80081540, | ||
3414 | 0x59a00409, 0x59a01a09, 0x900c19c0, 0x800c1d40, | ||
3415 | 0x42000000, 0x0010be21, 0x0201f000, 0x00103a28, | ||
3416 | 0x59a28c06, 0x59a0020b, 0x8c000500, 0x0400000e, | ||
3417 | 0x59a01208, 0x59a00408, 0x82000500, 0x000000ff, | ||
3418 | 0x900001c0, 0x80081540, 0x41784000, 0x0201f800, | ||
3419 | 0x00104919, 0x04000008, 0x48034406, 0x0201f000, | ||
3420 | 0x00102310, 0x0201f800, 0x00020245, 0x02020000, | ||
3421 | 0x00102310, 0x0201f800, 0x00103a00, 0x04020005, | ||
3422 | 0x4a034406, 0x00000002, 0x0201f000, 0x0010230c, | ||
3423 | 0x59a0020b, 0x8c000500, 0x04000005, 0x0201f800, | ||
3424 | 0x001049f3, 0x02020000, 0x00103ac4, 0x59a0020b, | ||
3425 | 0x8c000502, 0x04000019, 0x83440480, 0x000007f0, | ||
3426 | 0x04021016, 0x0201f800, 0x001049fc, 0x04020013, | ||
3427 | 0x497a5a04, 0x4a025c04, 0x00008000, 0x0201f800, | ||
3428 | 0x001090e6, 0x04020005, 0x4a034406, 0x00000003, | ||
3429 | 0x0201f000, 0x0010230c, 0x4a01d809, 0x001034f1, | ||
3430 | 0x1c01f000, 0x59a28c06, 0x0201f800, 0x00020245, | ||
3431 | 0x02020000, 0x00102310, 0x4200b000, 0x0000000a, | ||
3432 | 0x4134a000, 0x832e5c00, 0x00000002, 0x412ca800, | ||
3433 | 0x0201f800, 0x0010ab17, 0x832cac00, 0x00000006, | ||
3434 | 0x4054a000, 0x4200b000, 0x00000004, 0x0201f800, | ||
3435 | 0x0010ab28, 0x592c0802, 0x82040500, 0x00ff00ff, | ||
3436 | 0x900001c0, 0x82041500, 0xff00ff00, 0x80080540, | ||
3437 | 0x48025802, 0x592c0801, 0x82040500, 0x00ff00ff, | ||
3438 | 0x900001c0, 0x82041500, 0xff00ff00, 0x80080540, | ||
3439 | 0x48025801, 0x42000800, 0x0000000a, 0x59a00407, | ||
3440 | 0x59a01207, 0x900811c0, 0x80081540, 0x59a00409, | ||
3441 | 0x59a01a09, 0x900c19c0, 0x800c1d40, 0x412c0000, | ||
3442 | 0x0201f000, 0x00103a28, 0x496fc857, 0x496f4406, | ||
3443 | 0x0201f000, 0x001022c0, 0x59a28c06, 0x0201f800, | ||
3444 | 0x00020245, 0x02020000, 0x00102310, 0x836c0580, | ||
3445 | 0x00000003, 0x04000005, 0x4a034406, 0x00000007, | ||
3446 | 0x0201f000, 0x0010230c, 0x83340c00, 0x00000006, | ||
3447 | 0x59a0020b, 0x8c000500, 0x04000003, 0x83340c00, | ||
3448 | 0x00000008, 0x58040001, 0x48034409, 0x900001c0, | ||
3449 | 0x48034209, 0x50040000, 0x48034407, 0x900001c0, | ||
3450 | 0x48034207, 0x59340200, 0x48034406, 0x0201f000, | ||
3451 | 0x001022c0, 0x800409c0, 0x04000005, 0x4a034406, | ||
3452 | 0x00000001, 0x0201f000, 0x0010230c, 0x59a0220b, | ||
3453 | 0x8c102500, 0x0402002e, 0x8c102506, 0x04020006, | ||
3454 | 0x59a03208, 0x82180480, 0x00000003, 0x02021000, | ||
3455 | 0x00102310, 0x59a28c06, 0x0201f800, 0x00020245, | ||
3456 | 0x02020000, 0x00102310, 0x0201f800, 0x001049e7, | ||
3457 | 0x04000005, 0x4a034406, 0x00000009, 0x0201f000, | ||
3458 | 0x0010230c, 0x0201f800, 0x00103a00, 0x04020005, | ||
3459 | 0x4a034406, 0x00000002, 0x0201f000, 0x0010230c, | ||
3460 | 0x59a0220b, 0x8c102506, 0x04000004, 0x59343002, | ||
3461 | 0x82183500, 0x00ffffff, 0x497a5a04, 0x4a025c04, | ||
3462 | 0x00008000, 0x0201f800, 0x001090a8, 0x04020005, | ||
3463 | 0x4a034406, 0x00000003, 0x0201f000, 0x0010230c, | ||
3464 | 0x4a01d809, 0x001035d1, 0x1c01f000, 0x59a28c06, | ||
3465 | 0x0201f800, 0x00020245, 0x02020000, 0x00102310, | ||
3466 | 0x0201f800, 0x001049e7, 0x04000005, 0x4a034406, | ||
3467 | 0x00000009, 0x0201f000, 0x0010230c, 0x0201f800, | ||
3468 | 0x00103a00, 0x04020005, 0x4a034406, 0x00000002, | ||
3469 | 0x0201f000, 0x0010230c, 0x497a5a04, 0x4a025c04, | ||
3470 | 0x00008000, 0x0201f800, 0x00103a00, 0x04020005, | ||
3471 | 0x4a034406, 0x00000002, 0x0201f000, 0x0010230c, | ||
3472 | 0x592e5800, 0x0201f800, 0x001090bd, 0x04020005, | ||
3473 | 0x4a034406, 0x00000003, 0x0201f000, 0x0010230c, | ||
3474 | 0x4a01d809, 0x001035a3, 0x1c01f000, 0x592c2805, | ||
3475 | 0x82140d80, 0x01000000, 0x04020005, 0x4a034406, | ||
3476 | 0x00000004, 0x0201f000, 0x0010230c, 0x42000800, | ||
3477 | 0x00000008, 0x59a00207, 0x59a01407, 0x900001c0, | ||
3478 | 0x80081540, 0x59a00209, 0x59a01c09, 0x900001c0, | ||
3479 | 0x800c1d40, 0x832c0400, 0x00000005, 0x0201f800, | ||
3480 | 0x00103a28, 0x8c142d00, 0x04000003, 0x4a01d809, | ||
3481 | 0x001035be, 0x1c01f000, 0x4031d800, 0x58ef400b, | ||
3482 | 0x58ee580e, 0x58ec0002, 0x82000580, 0x00000200, | ||
3483 | 0x02000000, 0x00102304, 0x812e59c0, 0x02000800, | ||
3484 | 0x001005d8, 0x42000800, 0x00000008, 0x832c0400, | ||
3485 | 0x00000005, 0x58ec1007, 0x58ec1808, 0x0201f000, | ||
3486 | 0x00103a28, 0x592c0005, 0x82000580, 0x01000000, | ||
3487 | 0x04020005, 0x4a034406, 0x00000004, 0x0201f000, | ||
3488 | 0x0010230c, 0x59a00207, 0x59a01407, 0x900001c0, | ||
3489 | 0x80081540, 0x59a00209, 0x59a01c09, 0x900001c0, | ||
3490 | 0x800c1d40, 0x42000800, 0x00000006, 0x832c0400, | ||
3491 | 0x00000006, 0x0201f000, 0x00103a28, 0x59a00a0a, | ||
3492 | 0x800409c0, 0x02000000, 0x00102310, 0x82040480, | ||
3493 | 0x000000e7, 0x04001003, 0x42000800, 0x000000e6, | ||
3494 | 0x59a00207, 0x59a01407, 0x900001c0, 0x80081540, | ||
3495 | 0x59a00209, 0x59a01c09, 0x900001c0, 0x800c1d40, | ||
3496 | 0x83880400, 0x00000000, 0x0201f800, 0x00103a28, | ||
3497 | 0x4a01d809, 0x001035ff, 0x1c01f000, 0x4031d800, | ||
3498 | 0x58ef400b, 0x58ec0002, 0x82000580, 0x00000200, | ||
3499 | 0x02000000, 0x00102304, 0x58ef400b, 0x59a0020b, | ||
3500 | 0x8c000500, 0x04000008, 0x83880400, 0x00000000, | ||
3501 | 0x4803c840, 0x4a03c842, 0x00000006, 0x04011000, | ||
3502 | 0x497b8885, 0x4a034207, 0x000000e6, 0x0201f000, | ||
3503 | 0x001022c0, 0x800409c0, 0x04000005, 0x4a034406, | ||
3504 | 0x00000001, 0x0201f000, 0x0010230c, 0x0401fbe5, | ||
3505 | 0x04020005, 0x4a034406, 0x00000002, 0x0201f000, | ||
3506 | 0x0010230c, 0x497a5a04, 0x4a025c04, 0x00008000, | ||
3507 | 0x59a00406, 0x800001c0, 0x02000000, 0x00102310, | ||
3508 | 0x82001580, 0x000000ff, 0x04000005, 0x82001480, | ||
3509 | 0x00000004, 0x02021000, 0x00102310, 0x40001000, | ||
3510 | 0x0201f800, 0x00101fbf, 0x04020005, 0x4a034406, | ||
3511 | 0x00000003, 0x0201f000, 0x0010230c, 0x4a01d809, | ||
3512 | 0x0010363a, 0x1c01f000, 0x592c0005, 0x82000580, | ||
3513 | 0x01000000, 0x02020000, 0x001022c0, 0x4a034406, | ||
3514 | 0x00000004, 0x0201f000, 0x0010230c, 0x59a01406, | ||
3515 | 0x8c081508, 0x04020007, 0x800409c0, 0x04000005, | ||
3516 | 0x4a034406, 0x00000001, 0x0201f000, 0x0010230c, | ||
3517 | 0x59a01c07, 0x820c0480, 0x00001000, 0x02021000, | ||
3518 | 0x00102310, 0x497b2804, 0x497b2805, 0x497b281c, | ||
3519 | 0x497b281d, 0x497b281f, 0x497b2820, 0x497b2822, | ||
3520 | 0x497b2823, 0x80000580, 0x0201f800, 0x001015fe, | ||
3521 | 0x59a80805, 0x8c081500, 0x04000004, 0x82040d40, | ||
3522 | 0x00000011, 0x0401f004, 0x8c081506, 0x04000002, | ||
3523 | 0x84040d42, 0x84040d0a, 0x48075005, 0x4202d800, | ||
3524 | 0x00000001, 0x82081500, 0x000000e0, 0x8008010a, | ||
3525 | 0x0c020036, 0x0201f800, 0x0010513b, 0x04020009, | ||
3526 | 0x4a035033, 0x00000001, 0x0201f800, 0x001050a2, | ||
3527 | 0x0401f01f, 0x4a035033, 0x00000000, 0x0401f7fb, | ||
3528 | 0x497b5032, 0x0201f800, 0x00104142, 0x0201f800, | ||
3529 | 0x00106c55, 0x0201f800, 0x00106ede, 0x0201f800, | ||
3530 | 0x00106c4b, 0x59a00a07, 0x480788a7, 0x59c400a3, | ||
3531 | 0x82000500, 0xfeffffff, 0x82000540, 0x80018000, | ||
3532 | 0x40000800, 0x84040d20, 0x480388a3, 0x480788a3, | ||
3533 | 0x497b504e, 0x42000800, 0x0000002d, 0x42001000, | ||
3534 | 0x001041bc, 0x0201f800, 0x00105f69, 0x59a00407, | ||
3535 | 0x800000c2, 0x800008c4, 0x8005d400, 0x42000000, | ||
3536 | 0x0000ffff, 0x0201f800, 0x0010513b, 0x04000003, | ||
3537 | 0x59a00207, 0x80000110, 0x0201f800, 0x00103afc, | ||
3538 | 0x0201f000, 0x001022c0, 0x0010366d, 0x00103670, | ||
3539 | 0x00103678, 0x00102310, 0x00103675, 0x00102310, | ||
3540 | 0x00102310, 0x00102310, 0x836c0580, 0x00000003, | ||
3541 | 0x04000005, 0x4a034406, 0x00000007, 0x0201f000, | ||
3542 | 0x0010230c, 0x59a03c06, 0x59a00407, 0x59a04a07, | ||
3543 | 0x902449c0, 0x80244d40, 0x59a00409, 0x59a05209, | ||
3544 | 0x902851c0, 0x80285540, 0x0401fb46, 0x04020005, | ||
3545 | 0x4a034406, 0x00000002, 0x0201f000, 0x0010230c, | ||
3546 | 0x417a8800, 0x41783000, 0x497b4001, 0x497b4004, | ||
3547 | 0x832c4400, 0x00000005, 0x48234002, 0x8c1c3d04, | ||
3548 | 0x04020078, 0x0201f800, 0x00020245, 0x0402002a, | ||
3549 | 0x0201f800, 0x001049e7, 0x04000004, 0x0201f800, | ||
3550 | 0x001048e3, 0x04020024, 0x8c1c3d00, 0x04000008, | ||
3551 | 0x59340009, 0x44004000, 0x59340008, 0x80204000, | ||
3552 | 0x44004000, 0x80204000, 0x0401f007, 0x59340007, | ||
3553 | 0x44004000, 0x59340006, 0x80204000, 0x44004000, | ||
3554 | 0x80204000, 0x83440580, 0x000007fe, 0x0400000d, | ||
3555 | 0x83440580, 0x000007fc, 0x0400000a, 0x0201f800, | ||
3556 | 0x001049f3, 0x04000003, 0x85468d5e, 0x0401f005, | ||
3557 | 0x0201f800, 0x00104838, 0x04020002, 0x85468d5e, | ||
3558 | 0x45444000, 0x85468d1e, 0x80204000, 0x82183400, | ||
3559 | 0x00000003, 0x81468800, 0x83440480, 0x000007f0, | ||
3560 | 0x0400100e, 0x8c1c3d06, 0x04000010, 0x83440580, | ||
3561 | 0x000007f0, 0x04020004, 0x42028800, 0x000007fe, | ||
3562 | 0x0401f006, 0x83440580, 0x000007ff, 0x04020007, | ||
3563 | 0x42028800, 0x000007fc, 0x82180580, 0x0000000f, | ||
3564 | 0x0400000b, 0x0401f7c0, 0x801831c0, 0x04020006, | ||
3565 | 0x59a00801, 0x800408c4, 0x48074406, 0x0201f000, | ||
3566 | 0x001022c0, 0x4a034004, 0x00000001, 0x49474000, | ||
3567 | 0x59a00001, 0x80180400, 0x48034001, 0x481f4003, | ||
3568 | 0x4a01d801, 0x00000000, 0x4819d804, 0x59a00002, | ||
3569 | 0x4801d803, 0x4825d807, 0x4829d808, 0x4000a800, | ||
3570 | 0x4000a000, 0x4018b000, 0x0201f800, 0x0010ab17, | ||
3571 | 0x40ec1000, 0x0201f800, 0x00100858, 0x4a01d809, | ||
3572 | 0x0010372a, 0x1c01f000, 0x4031d800, 0x58ef400b, | ||
3573 | 0x58ec0002, 0x82000580, 0x00000200, 0x02000000, | ||
3574 | 0x00102304, 0x59a00004, 0x80000540, 0x04020008, | ||
3575 | 0x59a28800, 0x59a04002, 0x59a03803, 0x41783000, | ||
3576 | 0x58ec4807, 0x58ec5008, 0x0401f78f, 0x59a00801, | ||
3577 | 0x800408c4, 0x48074406, 0x0201f000, 0x001022c0, | ||
3578 | 0x0201f800, 0x00020245, 0x0402002f, 0x0201f800, | ||
3579 | 0x001049e7, 0x04000004, 0x0201f800, 0x001048e3, | ||
3580 | 0x04020029, 0x83440580, 0x000007fe, 0x04000011, | ||
3581 | 0x83440580, 0x000007fc, 0x0400000e, 0x0201f800, | ||
3582 | 0x001049f3, 0x04000005, 0x59340403, 0x8400055e, | ||
3583 | 0x48026c03, 0x0401f007, 0x0201f800, 0x00104838, | ||
3584 | 0x04020004, 0x59340403, 0x8400055e, 0x48026c03, | ||
3585 | 0x4134a000, 0x4020a800, 0x4200b000, 0x00000006, | ||
3586 | 0x0201f800, 0x0010ab17, 0x59340007, 0x4400a800, | ||
3587 | 0x59340006, 0x4800a801, 0x59340009, 0x4800a802, | ||
3588 | 0x59340008, 0x4800a803, 0x59340403, 0x8400051e, | ||
3589 | 0x48026c03, 0x82204400, 0x0000000a, 0x82183400, | ||
3590 | 0x0000000a, 0x81468800, 0x83440480, 0x000007f0, | ||
3591 | 0x0400100e, 0x8c1c3d06, 0x04000010, 0x83440580, | ||
3592 | 0x000007f0, 0x04020004, 0x42028800, 0x000007fe, | ||
3593 | 0x0401f006, 0x83440580, 0x000007ff, 0x04020007, | ||
3594 | 0x42028800, 0x000007fc, 0x82180580, 0x0000000a, | ||
3595 | 0x0400000b, 0x0401f7bb, 0x801831c0, 0x04020006, | ||
3596 | 0x59a00801, 0x800408c4, 0x48074406, 0x0201f000, | ||
3597 | 0x001022c0, 0x4a034004, 0x00000001, 0x49474000, | ||
3598 | 0x59a00001, 0x80180400, 0x48034001, 0x481f4003, | ||
3599 | 0x4a01d801, 0x00000000, 0x4819d804, 0x59a00002, | ||
3600 | 0x4801d803, 0x4825d807, 0x4829d808, 0x40ec1000, | ||
3601 | 0x0201f800, 0x00100858, 0x4a01d809, 0x001037a1, | ||
3602 | 0x1c01f000, 0x4031d800, 0x58ef400b, 0x58ec0002, | ||
3603 | 0x82000580, 0x00000200, 0x02000000, 0x00102304, | ||
3604 | 0x59a00004, 0x80000540, 0x04020008, 0x59a28800, | ||
3605 | 0x59a04002, 0x59a03803, 0x41783000, 0x58ec4807, | ||
3606 | 0x58ec5008, 0x0401f78f, 0x59a00801, 0x800408c4, | ||
3607 | 0x48074406, 0x0201f000, 0x001022c0, 0x42002800, | ||
3608 | 0x0000007e, 0x59a00c06, 0x59a01207, 0x59a01c07, | ||
3609 | 0x59a02209, 0x82040500, 0x0000ff00, 0x840001c0, | ||
3610 | 0x82003480, 0x00000020, 0x02001000, 0x00102310, | ||
3611 | 0x80140480, 0x02001000, 0x00102310, 0x82040500, | ||
3612 | 0x000000ff, 0x82003480, 0x00000020, 0x02001000, | ||
3613 | 0x00102310, 0x80140480, 0x02001000, 0x00102310, | ||
3614 | 0x82080500, 0x0000ff00, 0x840001c0, 0x82003480, | ||
3615 | 0x00000020, 0x02001000, 0x00102310, 0x80140480, | ||
3616 | 0x02001000, 0x00102310, 0x82080500, 0x000000ff, | ||
3617 | 0x82003480, 0x00000020, 0x02001000, 0x00102310, | ||
3618 | 0x80140480, 0x02001000, 0x00102310, 0x820c0500, | ||
3619 | 0x0000ff00, 0x840001c0, 0x82003480, 0x00000020, | ||
3620 | 0x02001000, 0x00102310, 0x80140480, 0x02001000, | ||
3621 | 0x00102310, 0x820c0500, 0x000000ff, 0x82003480, | ||
3622 | 0x00000020, 0x02001000, 0x00102310, 0x80140480, | ||
3623 | 0x02001000, 0x00102310, 0x82100500, 0x0000ff00, | ||
3624 | 0x840001c0, 0x82003480, 0x00000020, 0x02001000, | ||
3625 | 0x00102310, 0x80140480, 0x02001000, 0x00102310, | ||
3626 | 0x82100500, 0x000000ff, 0x82003480, 0x00000020, | ||
3627 | 0x02001000, 0x00102310, 0x80140480, 0x02001000, | ||
3628 | 0x00102310, 0x900401c0, 0x80080d40, 0x900c01c0, | ||
3629 | 0x80101d40, 0x83a83400, 0x0000003a, 0x44043000, | ||
3630 | 0x80183000, 0x440c3000, 0x0201f000, 0x001022c0, | ||
3631 | 0x0401f9ec, 0x04020005, 0x4a034406, 0x00000002, | ||
3632 | 0x0201f000, 0x0010230c, 0x42000800, 0x0000000c, | ||
3633 | 0x0401f853, 0x4a01d809, 0x00103820, 0x1c01f000, | ||
3634 | 0x4031d800, 0x58ee580d, 0x58ef400b, 0x58ec0002, | ||
3635 | 0x82000580, 0x00000200, 0x02000000, 0x00102304, | ||
3636 | 0x832ca400, 0x00000004, 0x4200b000, 0x0000000c, | ||
3637 | 0x40c8a800, 0x0201f800, 0x0010ab17, 0x58c80200, | ||
3638 | 0x80000540, 0x04000034, 0x58c80400, 0x82000500, | ||
3639 | 0xfffffffb, 0x04020030, 0x58c80401, 0x80000540, | ||
3640 | 0x0400002d, 0x82000480, 0x0000ff01, 0x0402102a, | ||
3641 | 0x58c80202, 0x82000480, 0x0000005c, 0x04001026, | ||
3642 | 0x0201f800, 0x001063a3, 0x58c80c08, 0x58c80204, | ||
3643 | 0x80040480, 0x04001020, 0x58c80204, 0x82000480, | ||
3644 | 0x00000005, 0x0402101c, 0x58c80205, 0x58c80c08, | ||
3645 | 0x80040902, 0x80040480, 0x04001017, 0x58c80c08, | ||
3646 | 0x0201f800, 0x001062f1, 0x0400001b, 0x0201f800, | ||
3647 | 0x001061b9, 0x04020012, 0x4979940b, 0x59c408a3, | ||
3648 | 0x82040d40, 0x00000002, 0x480788a3, 0x4a038830, | ||
3649 | 0x00000001, 0x4a038832, 0x01ffffff, 0x58c80202, | ||
3650 | 0x48030804, 0x0201f800, 0x0010619b, 0x0201f000, | ||
3651 | 0x001022c0, 0x0201f000, 0x00102310, 0x0201f800, | ||
3652 | 0x001063f5, 0x0201f800, 0x00106402, 0x0201f800, | ||
3653 | 0x001062e4, 0x0201f000, 0x0010230c, 0x4c000000, | ||
3654 | 0x59a01207, 0x59a00407, 0x900811c0, 0x80081540, | ||
3655 | 0x59a01a09, 0x59a00409, 0x900c19c0, 0x800c1d40, | ||
3656 | 0x5c000000, 0x0401f1ac, 0x59840000, 0x82000580, | ||
3657 | 0x00000000, 0x04000054, 0x59840002, 0x8c000504, | ||
3658 | 0x04000051, 0x84000546, 0x48030802, 0x0201f800, | ||
3659 | 0x001062e4, 0x59c408a3, 0x82040d00, 0xfffffffd, | ||
3660 | 0x480788a3, 0x4c5c0000, 0x4200b800, 0x0010ac00, | ||
3661 | 0x505e6800, 0x813669c0, 0x04000008, 0x5936600e, | ||
3662 | 0x813261c0, 0x04000005, 0x0201f800, 0x001062d5, | ||
3663 | 0x02000800, 0x001064ad, 0x805cb800, 0x825c0580, | ||
3664 | 0x0010b3f0, 0x040207f3, 0x59866003, 0x813261c0, | ||
3665 | 0x0400000b, 0x59300406, 0x82000580, 0x00000009, | ||
3666 | 0x02020800, 0x001005d8, 0x5930b800, 0x0201f800, | ||
3667 | 0x001062c1, 0x405e6000, 0x0401f7f5, 0x497b0803, | ||
3668 | 0x4200b800, 0x0010b51b, 0x505e6000, 0x813261c0, | ||
3669 | 0x04000011, 0x59300406, 0x82000580, 0x00000009, | ||
3670 | 0x0402000d, 0x59300203, 0x82000580, 0x00000004, | ||
3671 | 0x04020009, 0x59326809, 0x813669c0, 0x02020800, | ||
3672 | 0x001005d8, 0x0201f800, 0x00100e99, 0x0201f800, | ||
3673 | 0x001062c1, 0x4578b800, 0x805cb800, 0x825c0580, | ||
3674 | 0x0010b523, 0x040207e9, 0x42000800, 0x0010b519, | ||
3675 | 0x49780801, 0x49780800, 0x59a80069, 0x82000400, | ||
3676 | 0x00000007, 0x48035069, 0x0201f800, 0x001063f5, | ||
3677 | 0x0201f800, 0x00106402, 0x5c00b800, 0x0201f800, | ||
3678 | 0x001061b4, 0x0201f000, 0x001022c0, 0x836c0580, | ||
3679 | 0x00000003, 0x04000005, 0x4a034406, 0x00000007, | ||
3680 | 0x0201f000, 0x0010230c, 0x59a00407, 0x59a02207, | ||
3681 | 0x901021c0, 0x80102540, 0x59a00409, 0x59a02a09, | ||
3682 | 0x901429c0, 0x80142d40, 0x0401f91e, 0x04020005, | ||
3683 | 0x4a034406, 0x00000002, 0x0201f000, 0x0010230c, | ||
3684 | 0x417a8800, 0x41781800, 0x497b4001, 0x497b4003, | ||
3685 | 0x832c3400, 0x00000004, 0x481b4002, 0x41440000, | ||
3686 | 0x81ac0400, 0x50026800, 0x813669c0, 0x0400000b, | ||
3687 | 0x0201f800, 0x001049e7, 0x04020008, 0x59340002, | ||
3688 | 0x48003000, 0x49443001, 0x82183400, 0x00000002, | ||
3689 | 0x820c1c00, 0x00000002, 0x81468800, 0x83440480, | ||
3690 | 0x00000800, 0x04000005, 0x820c0480, 0x00000010, | ||
3691 | 0x0402100b, 0x0401f7ea, 0x800c19c0, 0x04020006, | ||
3692 | 0x59a00801, 0x80040902, 0x48074406, 0x0201f000, | ||
3693 | 0x001022c0, 0x4a034003, 0x00000001, 0x49474000, | ||
3694 | 0x59a00001, 0x800c0400, 0x48034001, 0x40ec1000, | ||
3695 | 0x4a001001, 0x00000000, 0x480c1004, 0x59a00002, | ||
3696 | 0x48001003, 0x48101007, 0x48141008, 0x0201f800, | ||
3697 | 0x00100858, 0x4a01d809, 0x00103920, 0x1c01f000, | ||
3698 | 0x4031d800, 0x58ef400b, 0x58ec0002, 0x82000580, | ||
3699 | 0x00000200, 0x02000000, 0x00102304, 0x59a00003, | ||
3700 | 0x80000540, 0x04020008, 0x59a28800, 0x59a03002, | ||
3701 | 0x41781800, 0x40ec1000, 0x58082007, 0x58082808, | ||
3702 | 0x0401f7bf, 0x59a00801, 0x80040902, 0x48074406, | ||
3703 | 0x0201f000, 0x001022c0, 0x800409c0, 0x04000005, | ||
3704 | 0x4a034406, 0x00000001, 0x0201f000, 0x0010230c, | ||
3705 | 0x59a80026, 0x8c00050a, 0x04020007, 0x8c000506, | ||
3706 | 0x04020005, 0x4a034406, 0x00000016, 0x0201f000, | ||
3707 | 0x0010230c, 0x0401f8bb, 0x04020005, 0x4a034406, | ||
3708 | 0x00000002, 0x0201f000, 0x0010230c, 0x59a00c06, | ||
3709 | 0x80040902, 0x59a00407, 0x59a01207, 0x900811c0, | ||
3710 | 0x80081540, 0x59a00409, 0x59a01a09, 0x900c19c0, | ||
3711 | 0x800c1d40, 0x832c0400, 0x00000005, 0x0401f8ce, | ||
3712 | 0x4a01d809, 0x0010395b, 0x1c01f000, 0x4031d800, | ||
3713 | 0x58ef400b, 0x58ee580d, 0x58ec0002, 0x82000580, | ||
3714 | 0x00000200, 0x02000000, 0x00102304, 0x592c0009, | ||
3715 | 0x0201f800, 0x00105c9a, 0x02000800, 0x001045a6, | ||
3716 | 0x02020000, 0x00102310, 0x49474001, 0x481a6802, | ||
3717 | 0x592c000a, 0x82001d80, 0x70000000, 0x04020007, | ||
3718 | 0x0401f890, 0x04020011, 0x4a034406, 0x00000002, | ||
3719 | 0x0201f000, 0x0010230c, 0x82001d80, 0x72000000, | ||
3720 | 0x02020000, 0x00102310, 0x0401f886, 0x04020885, | ||
3721 | 0x04020884, 0x04020005, 0x4a034406, 0x00000002, | ||
3722 | 0x0201f000, 0x0010230c, 0x58ee580d, 0x4a025c04, | ||
3723 | 0x00008000, 0x497a5a04, 0x592c3208, 0x80183102, | ||
3724 | 0x592c1801, 0x4a001805, 0x01000000, 0x0201f800, | ||
3725 | 0x001090d1, 0x04020005, 0x4a034406, 0x00000003, | ||
3726 | 0x0201f000, 0x0010230c, 0x4a01d809, 0x00103995, | ||
3727 | 0x1c01f000, 0x592c4000, 0x592c0005, 0x82000580, | ||
3728 | 0x01000000, 0x04020005, 0x4a034406, 0x00000004, | ||
3729 | 0x0201f000, 0x0010230c, 0x832c3c00, 0x00000005, | ||
3730 | 0x401ca000, 0x401ca800, 0x5820280a, 0x4200b000, | ||
3731 | 0x00000002, 0x82143580, 0x70000000, 0x04000003, | ||
3732 | 0x4200b000, 0x0000000f, 0x0201f800, 0x0010ab28, | ||
3733 | 0x401c0000, 0x58201006, 0x58201807, 0x58202205, | ||
3734 | 0x80102102, 0x82143580, 0x70000000, 0x04020008, | ||
3735 | 0x82103480, 0x00000002, 0x02001000, 0x00102310, | ||
3736 | 0x42000800, 0x00000002, 0x0401f06e, 0x82143580, | ||
3737 | 0x72000000, 0x02020000, 0x00102310, 0x82103480, | ||
3738 | 0x0000002a, 0x02001000, 0x00102310, 0x42000800, | ||
3739 | 0x0000000f, 0x0401f863, 0x4a01d809, 0x001039c9, | ||
3740 | 0x1c01f000, 0x4031d800, 0x58ef400b, 0x58ee580e, | ||
3741 | 0x58ec0002, 0x82000580, 0x00000200, 0x02000000, | ||
3742 | 0x00102304, 0x592e5800, 0x832c0c00, 0x00000005, | ||
3743 | 0x4004a000, 0x4004a800, 0x4200b000, 0x0000000f, | ||
3744 | 0x0201f800, 0x0010ab28, 0x40ec1000, 0x4a001001, | ||
3745 | 0x00000000, 0x4a001004, 0x0000000f, 0x48041003, | ||
3746 | 0x0201f800, 0x00100858, 0x4a01d809, 0x001039e5, | ||
3747 | 0x1c01f000, 0x4031d800, 0x58ef400b, 0x58ee580e, | ||
3748 | 0x58ec0002, 0x82000580, 0x00000200, 0x02000000, | ||
3749 | 0x00102304, 0x832c0c00, 0x00000005, 0x4004a000, | ||
3750 | 0x4004a800, 0x4200b000, 0x0000000c, 0x0201f800, | ||
3751 | 0x0010ab28, 0x40ec1000, 0x4a001001, 0x00000000, | ||
3752 | 0x4a001004, 0x0000000c, 0x48041003, 0x0201f800, | ||
3753 | 0x00100858, 0x4a01d809, 0x001022b9, 0x1c01f000, | ||
3754 | 0x0201f800, 0x001007e4, 0x04000010, 0x497a5800, | ||
3755 | 0x58ec000d, 0x80000540, 0x04020004, 0x492dd80d, | ||
3756 | 0x492dd80e, 0x0401f007, 0x58ec000e, 0x48025800, | ||
3757 | 0x82000400, 0x00000001, 0x452c0000, 0x492dd80e, | ||
3758 | 0x832c0400, 0x00000004, 0x492fc857, 0x4803c857, | ||
3759 | 0x1c01f000, 0x4d2c0000, 0x48efc857, 0x58ec400d, | ||
3760 | 0x4823c857, 0x802041c0, 0x04000007, 0x40225800, | ||
3761 | 0x592c4001, 0x497a5801, 0x0201f800, 0x001007f4, | ||
3762 | 0x0401f7f8, 0x4979d80d, 0x4979d80e, 0x5c025800, | ||
3763 | 0x1c01f000, 0x42003000, 0x00000001, 0x0401f003, | ||
3764 | 0x42003000, 0x00000000, 0x4803c857, 0x4807c857, | ||
3765 | 0x480bc857, 0x480fc857, 0x481bc857, 0x48efc857, | ||
3766 | 0x4819d801, 0x800409c0, 0x02000800, 0x001005d8, | ||
3767 | 0x4805d804, 0x4801d803, 0x4809d807, 0x480dd808, | ||
3768 | 0x40ec1000, 0x0201f800, 0x00100858, 0x4a01d809, | ||
3769 | 0x001022b9, 0x1c01f000, 0x80002d80, 0x480bc857, | ||
3770 | 0x480fc857, 0x4813c857, 0x4817c857, 0x4d2c0000, | ||
3771 | 0x4da00000, 0x42034000, 0x0010b4a4, 0x59a00017, | ||
3772 | 0x800001c0, 0x04020013, 0x04006012, 0x480bc020, | ||
3773 | 0x480fc021, 0x4813c022, 0x4817c023, 0x900811c0, | ||
3774 | 0x82081540, 0x00000012, 0x480bc011, 0x59e00017, | ||
3775 | 0x8c000508, 0x04020004, 0x4203e000, 0x30000001, | ||
3776 | 0x0401f053, 0x4a03c017, 0x00000002, 0x0401f7fb, | ||
3777 | 0x4c040000, 0x4c1c0000, 0x80000800, 0x48074017, | ||
3778 | 0x59a0381a, 0x481fc857, 0x801c39c0, 0x04020027, | ||
3779 | 0x82000480, 0x0000000a, 0x04021010, 0x59a00018, | ||
3780 | 0x80000000, 0x48034018, 0x59a00219, 0x82000400, | ||
3781 | 0x00000002, 0x82000c80, 0x00000013, 0x48034219, | ||
3782 | 0x04001003, 0x497b4219, 0x41780000, 0x59a03816, | ||
3783 | 0x801c3c00, 0x0401f030, 0x4803c856, 0x0201f800, | ||
3784 | 0x001007e4, 0x04000007, 0x492f401a, 0x492f401b, | ||
3785 | 0x412c3800, 0x497b421c, 0x497a5813, 0x0401f026, | ||
3786 | 0x59880051, 0x80000000, 0x48031051, 0x59a00017, | ||
3787 | 0x80000040, 0x48034017, 0x59a00219, 0x59a03816, | ||
3788 | 0x801c3c00, 0x0401f01c, 0x59a0021c, 0x82000400, | ||
3789 | 0x00000002, 0x82000c80, 0x00000012, 0x04021004, | ||
3790 | 0x4803421c, 0x801c3c00, 0x0401f013, 0x0201f800, | ||
3791 | 0x001007e4, 0x0402000b, 0x59880051, 0x80000000, | ||
3792 | 0x48031051, 0x59a00017, 0x80000040, 0x48034017, | ||
3793 | 0x4803c856, 0x59a0021c, 0x801c3c00, 0x0401f006, | ||
3794 | 0x492f401a, 0x492c3813, 0x412c3800, 0x497b421c, | ||
3795 | 0x497a5813, 0x48083c00, 0x480c3a00, 0x48103c01, | ||
3796 | 0x48143a01, 0x5c003800, 0x5c000800, 0x5c034000, | ||
3797 | 0x5c025800, 0x1c01f000, 0x480fc857, 0x4813c857, | ||
3798 | 0x481bc857, 0x42000000, 0x0010b813, 0x0201f800, | ||
3799 | 0x0010aa47, 0x801800d0, 0x40002800, 0x42001000, | ||
3800 | 0x00008014, 0x0401f786, 0x4c000000, 0x599c0017, | ||
3801 | 0x8c000512, 0x5c000000, 0x1c01f000, 0x4c000000, | ||
3802 | 0x599c0018, 0x8c00050e, 0x5c000000, 0x1c01f000, | ||
3803 | 0x59a80821, 0x800409c0, 0x04000005, 0x4a034406, | ||
3804 | 0x00000001, 0x0201f000, 0x0010230c, 0x836c0580, | ||
3805 | 0x00000003, 0x04000005, 0x4a034406, 0x00000007, | ||
3806 | 0x0201f000, 0x0010230c, 0x599c0017, 0x8c00050a, | ||
3807 | 0x04000005, 0x4a034406, 0x00000008, 0x0201f000, | ||
3808 | 0x0010230c, 0x59340405, 0x8c000508, 0x04020004, | ||
3809 | 0x8c00050a, 0x02020000, 0x001034db, 0x497a5a04, | ||
3810 | 0x497a5805, 0x4a025c04, 0x00008000, 0x0201f800, | ||
3811 | 0x00109176, 0x04020005, 0x4a034406, 0x00000003, | ||
3812 | 0x0201f000, 0x0010230c, 0x4a01d809, 0x00103aed, | ||
3813 | 0x1c01f000, 0x592c0005, 0x82000580, 0x01000000, | ||
3814 | 0x04020005, 0x4a034406, 0x00000004, 0x0201f000, | ||
3815 | 0x0010230c, 0x59a28c06, 0x0201f800, 0x00020245, | ||
3816 | 0x02020000, 0x00102310, 0x0201f000, 0x001034db, | ||
3817 | 0x82001580, 0x0000ffff, 0x04000009, 0x0201f800, | ||
3818 | 0x00105c9a, 0x02000800, 0x00020245, 0x0402000c, | ||
3819 | 0x0201f800, 0x00105fae, 0x0401f009, 0x42028800, | ||
3820 | 0x000007ef, 0x0201f800, 0x00020245, 0x02000800, | ||
3821 | 0x00105fae, 0x81468840, 0x040217fb, 0x1c01f000, | ||
3822 | 0x4803c856, 0x4c0c0000, 0x4d340000, 0x4d440000, | ||
3823 | 0x42028800, 0x000007fe, 0x0201f800, 0x00020245, | ||
3824 | 0x04020009, 0x5934180a, 0x820c1d00, 0x00000001, | ||
3825 | 0x820c1d80, 0x00000001, 0x42001000, 0x0000801b, | ||
3826 | 0x0401ff1e, 0x5c028800, 0x5c026800, 0x5c001800, | ||
3827 | 0x1c01f000, 0x599c0017, 0x8c000508, 0x1c01f000, | ||
3828 | 0x48efc857, 0x04011000, 0x48efc840, 0x4a03c842, | ||
3829 | 0x00000011, 0x40000000, 0x040117ff, 0x4a01d80f, | ||
3830 | 0xbeefbeef, 0x1c01f000, 0x497b4000, 0x497b4001, | ||
3831 | 0x497b4002, 0x497b4003, 0x497b4004, 0x1c01f000, | ||
3832 | 0x59c400a4, 0x4c580000, 0x4c500000, 0x4c540000, | ||
3833 | 0x82000500, 0x0000000f, 0x82000480, 0x00000007, | ||
3834 | 0x0400100a, 0x82006c80, 0x00000006, 0x02021800, | ||
3835 | 0x001005d8, 0x0c01f807, 0x5c00a800, 0x5c00a000, | ||
3836 | 0x5c00b000, 0x1c01f000, 0x0401f906, 0x0401f7fb, | ||
3837 | 0x00103b51, 0x00103b57, 0x00103b7c, 0x00103b9e, | ||
3838 | 0x00103c59, 0x59c40806, 0x8c040d00, 0x04020003, | ||
3839 | 0x84040d40, 0x48078806, 0x1c01f000, 0x59c40005, | ||
3840 | 0x8c000534, 0x02020000, 0x0010429e, 0x4a038805, | ||
3841 | 0xffffffff, 0x42006000, 0x00020000, 0x0201f800, | ||
3842 | 0x00104282, 0x59a80015, 0x82000500, 0xfffffffa, | ||
3843 | 0x84000542, 0x48035015, 0x497b5026, 0x42000800, | ||
3844 | 0x0010be21, 0x45780800, 0x497b5013, 0x42006000, | ||
3845 | 0xffefffff, 0x42006800, 0x40000000, 0x0201f800, | ||
3846 | 0x0010427d, 0x59c40006, 0x82000500, 0xffffff0f, | ||
3847 | 0x48038806, 0x42000800, 0x00000010, 0x42001000, | ||
3848 | 0x001041f3, 0x0201f800, 0x00105f83, 0x0401f001, | ||
3849 | 0x42006000, 0xffffffff, 0x42006800, 0x00800000, | ||
3850 | 0x0201f800, 0x0010427d, 0x4200b000, 0x000000c8, | ||
3851 | 0x59c400a4, 0x82000500, 0x0000000f, 0x82000580, | ||
3852 | 0x0000000a, 0x0400000f, 0x8058b040, 0x040207f9, | ||
3853 | 0x497b5014, 0x42006000, 0xbf7fffff, 0x42006800, | ||
3854 | 0x00018000, 0x0201f800, 0x0010427d, 0x42006000, | ||
3855 | 0xfffeffff, 0x41786800, 0x0201f000, 0x0010427d, | ||
3856 | 0x497b5014, 0x4a035012, 0x00000000, 0x80000580, | ||
3857 | 0x0201f000, 0x00104289, 0x4a038805, 0xffffffff, | ||
3858 | 0x59a80012, 0x82000c80, 0x00000004, 0x02021800, | ||
3859 | 0x001005d8, 0x0c01f001, 0x00103ba9, 0x00103bd6, | ||
3860 | 0x00103c4f, 0x4803c856, 0x59c400a3, 0x8400051e, | ||
3861 | 0x480388a3, 0x4a035012, 0x00000001, 0x59c40008, | ||
3862 | 0x8400054e, 0x48038808, 0x0201f800, 0x00104263, | ||
3863 | 0x42007800, 0x0010b54c, 0x4a007806, 0x11010000, | ||
3864 | 0x4200a000, 0x0010b402, 0x4200a800, 0x0010b553, | ||
3865 | 0x4200b000, 0x00000002, 0x0201f800, 0x0010ab17, | ||
3866 | 0x497b8802, 0x42000800, 0x00000003, 0x497b504a, | ||
3867 | 0x0201f800, 0x0010416e, 0x4a03504a, 0x00000001, | ||
3868 | 0x497b5016, 0x0201f800, 0x00104290, 0x42006000, | ||
3869 | 0xffffffff, 0x42006800, 0x00080000, 0x0201f800, | ||
3870 | 0x0010427d, 0x42006000, 0xfff7ffff, 0x41786800, | ||
3871 | 0x0201f000, 0x0010427d, 0x59a80016, 0x497b5016, | ||
3872 | 0x80002540, 0x04000066, 0x59c40004, 0x82000500, | ||
3873 | 0x00000003, 0x04020071, 0x59a80815, 0x8c040d02, | ||
3874 | 0x0400004b, 0x82100580, 0x0000000c, 0x0402004f, | ||
3875 | 0x82100400, 0x00000018, 0x8000b104, 0x41cc1000, | ||
3876 | 0x42001800, 0x0010b54c, 0x50080800, 0x500c0000, | ||
3877 | 0x80040580, 0x0402001a, 0x80081000, 0x800c1800, | ||
3878 | 0x8058b040, 0x040207f9, 0x0201f800, 0x00104290, | ||
3879 | 0x42006000, 0xffffffff, 0x42006800, 0x00500000, | ||
3880 | 0x0201f800, 0x0010427d, 0x4a035012, 0x00000002, | ||
3881 | 0x4a035014, 0x00000002, 0x42000800, 0x000007d0, | ||
3882 | 0x42001000, 0x00104148, 0x0201f800, 0x0010606e, | ||
3883 | 0x0201f800, 0x00104263, 0x0401f048, 0x59cc0806, | ||
3884 | 0x82040d80, 0x11010000, 0x04020028, 0x59cc0800, | ||
3885 | 0x82040500, 0x00ffffff, 0x0400001a, 0x82000580, | ||
3886 | 0x000000ef, 0x04020017, 0x59cc0801, 0x82040500, | ||
3887 | 0x00ffffff, 0x82000580, 0x000000ef, 0x04020011, | ||
3888 | 0x83cca400, 0x00000007, 0x4200a800, 0x0010b402, | ||
3889 | 0x4200b000, 0x00000002, 0x50500800, 0x50540000, | ||
3890 | 0x80040480, 0x04001007, 0x04020010, 0x8050a000, | ||
3891 | 0x8054a800, 0x8058b040, 0x040207f8, 0x0401f00b, | ||
3892 | 0x59a80015, 0x84000502, 0x48035015, 0x41cca000, | ||
3893 | 0x4200a800, 0x0010b54c, 0x4200b000, 0x00000009, | ||
3894 | 0x0201f800, 0x0010ab17, 0x0201f800, 0x00104290, | ||
3895 | 0x42006000, 0xffffffff, 0x42006800, 0x00080000, | ||
3896 | 0x0201f800, 0x0010427d, 0x42006000, 0xfff7ffff, | ||
3897 | 0x41786800, 0x0201f800, 0x0010427d, 0x42006000, | ||
3898 | 0xffffffff, 0x42006800, 0x00004000, 0x0201f800, | ||
3899 | 0x0010427d, 0x59c40004, 0x82000500, 0x00000003, | ||
3900 | 0x04020006, 0x497b5016, 0x42000800, 0x00000003, | ||
3901 | 0x0201f000, 0x0010416e, 0x1c01f000, 0x1c01f000, | ||
3902 | 0x59a80014, 0x82006d80, 0x0000000f, 0x04000005, | ||
3903 | 0x82000580, 0x0000001b, 0x02020800, 0x00104139, | ||
3904 | 0x1c01f000, 0x59a80015, 0x84000506, 0x48035015, | ||
3905 | 0x497b504a, 0x59a80014, 0x82000c80, 0x0000001e, | ||
3906 | 0x02021800, 0x001005d8, 0x0c01f001, 0x00103c97, | ||
3907 | 0x00103cac, 0x00103cd5, 0x00103cf0, 0x00103d14, | ||
3908 | 0x00103d45, 0x00103d68, 0x00103d9b, 0x00103dbe, | ||
3909 | 0x00103de4, 0x00103e21, 0x00103e48, 0x00103e5f, | ||
3910 | 0x00103e71, 0x00103e8a, 0x00103ea0, 0x00103ea5, | ||
3911 | 0x00103ecd, 0x00103ef0, 0x00103f16, 0x00103f39, | ||
3912 | 0x00103f6c, 0x00103fae, 0x00103fd8, 0x00103ff0, | ||
3913 | 0x00104030, 0x00104049, 0x0010405c, 0x0010405d, | ||
3914 | 0x4803c856, 0x4202d800, 0x00000007, 0x0201f800, | ||
3915 | 0x0010513b, 0x04000007, 0x42006000, 0xffffffd7, | ||
3916 | 0x41786800, 0x0201f800, 0x0010427d, 0x0401f00b, | ||
3917 | 0x59c40006, 0x82000500, 0xffffff0f, 0x48038806, | ||
3918 | 0x42001000, 0x000000f0, 0x0201f800, 0x0010193d, | ||
3919 | 0x0201f800, 0x00105098, 0x1c01f000, 0x4803c856, | ||
3920 | 0x42006000, 0xbf7fffff, 0x42006800, 0x00400000, | ||
3921 | 0x0201f800, 0x0010427d, 0x4a035014, 0x00000001, | ||
3922 | 0x42001000, 0x001041f3, 0x0201f800, 0x00105fa4, | ||
3923 | 0x0201f800, 0x001041f8, 0x42000800, 0x000007d0, | ||
3924 | 0x42001000, 0x00104148, 0x0201f000, 0x0010606e, | ||
3925 | 0x59a80016, 0x82000580, 0x00000014, 0x04020025, | ||
3926 | 0x4803c857, 0x42006000, 0xffbfffff, 0x41786800, | ||
3927 | 0x0201f800, 0x0010427d, 0x59c40004, 0x82000500, | ||
3928 | 0x00000003, 0x0402001b, 0x59cc1006, 0x82081580, | ||
3929 | 0x11020000, 0x04020016, 0x59cc1007, 0x8c08153e, | ||
3930 | 0x0400000b, 0x59a80015, 0x8c000504, 0x04020008, | ||
3931 | 0x42000000, 0x0010b83f, 0x0201f800, 0x0010aa47, | ||
3932 | 0x59a80015, 0x84000544, 0x48035015, 0x42001000, | ||
3933 | 0x00104148, 0x0201f800, 0x00105f90, 0x4a035014, | ||
3934 | 0x00000010, 0x0401f9d4, 0x0401f002, 0x497b5016, | ||
3935 | 0x1c01f000, 0x4803c856, 0x4a035014, 0x00000003, | ||
3936 | 0x42006000, 0xbf3fffff, 0x42006800, 0x00100000, | ||
3937 | 0x0201f800, 0x0010427d, 0x42001000, 0x001041f3, | ||
3938 | 0x0201f800, 0x00105fa4, 0x0201f800, 0x001041f8, | ||
3939 | 0x42001000, 0x00104148, 0x0201f800, 0x00105f90, | ||
3940 | 0x42007800, 0x0010b552, 0x46007800, 0x11020000, | ||
3941 | 0x42000800, 0x00000005, 0x0201f000, 0x0010416e, | ||
3942 | 0x59a80016, 0x80000540, 0x04000021, 0x4803c857, | ||
3943 | 0x42001000, 0x00104148, 0x0201f800, 0x00105f90, | ||
3944 | 0x59a80016, 0x82000580, 0x00000014, 0x04020016, | ||
3945 | 0x59cc1006, 0x82081580, 0x11020000, 0x04020012, | ||
3946 | 0x59cc1007, 0x8c08153e, 0x0400000b, 0x59a80015, | ||
3947 | 0x8c000504, 0x04020008, 0x42000000, 0x0010b83f, | ||
3948 | 0x0201f800, 0x0010aa47, 0x59a80015, 0x84000544, | ||
3949 | 0x48035015, 0x4a035014, 0x00000004, 0x0401f805, | ||
3950 | 0x0401f003, 0x0201f800, 0x00104139, 0x1c01f000, | ||
3951 | 0x4803c856, 0x4a035014, 0x00000005, 0x83cca400, | ||
3952 | 0x00000006, 0x4200a800, 0x0010b552, 0x4200b000, | ||
3953 | 0x00000005, 0x0201f800, 0x0010ab17, 0x42007800, | ||
3954 | 0x0010b552, 0x46007800, 0x11030000, 0x0201f800, | ||
3955 | 0x0010413e, 0x04020014, 0x59a80015, 0x8c000500, | ||
3956 | 0x04020011, 0x59a80810, 0x82040580, 0x00ffffff, | ||
3957 | 0x0400000d, 0x82040d00, 0x000000ff, 0x82040400, | ||
3958 | 0x0010210e, 0x50000800, 0x80040910, 0x42001000, | ||
3959 | 0x00000004, 0x0401fb9b, 0x0400000b, 0x0201f800, | ||
3960 | 0x0010420d, 0x4200b000, 0x00000004, 0x83cca400, | ||
3961 | 0x00000007, 0x4200a800, 0x0010b553, 0x0201f800, | ||
3962 | 0x0010ab17, 0x42000800, 0x00000005, 0x0201f000, | ||
3963 | 0x0010416e, 0x59a80016, 0x80000540, 0x04000020, | ||
3964 | 0x4803c857, 0x42001000, 0x00104148, 0x0201f800, | ||
3965 | 0x00105f90, 0x59a80016, 0x82000580, 0x00000014, | ||
3966 | 0x04020016, 0x59cc1006, 0x82081580, 0x11030000, | ||
3967 | 0x04020012, 0x59cc1007, 0x8c08153e, 0x0400000b, | ||
3968 | 0x59a80015, 0x8c000504, 0x04020008, 0x42000000, | ||
3969 | 0x0010b83f, 0x0201f800, 0x0010aa47, 0x59a80015, | ||
3970 | 0x84000544, 0x48035015, 0x4a035014, 0x00000006, | ||
3971 | 0x0401f804, 0x0401f002, 0x0401fbd3, 0x1c01f000, | ||
3972 | 0x4803c856, 0x4a035014, 0x00000007, 0x83cca400, | ||
3973 | 0x00000006, 0x4200a800, 0x0010b552, 0x4200b000, | ||
3974 | 0x00000005, 0x0201f800, 0x0010ab17, 0x42007800, | ||
3975 | 0x0010b552, 0x46007800, 0x11040000, 0x0401fbc7, | ||
3976 | 0x04020020, 0x59a80015, 0x8c000500, 0x0402001d, | ||
3977 | 0x599c0017, 0x8c000500, 0x0400001a, 0x599c1402, | ||
3978 | 0x82080480, 0x0000007f, 0x02021800, 0x001005d8, | ||
3979 | 0x4c080000, 0x82081400, 0x0010210e, 0x50081000, | ||
3980 | 0x82081500, 0x000000ff, 0x480b5010, 0x42000800, | ||
3981 | 0x00000003, 0x0201f800, 0x00106c78, 0x5c000800, | ||
3982 | 0x42001000, 0x00000004, 0x0401fb3e, 0x04000005, | ||
3983 | 0x0401fd2b, 0x04000003, 0x0201f800, 0x001015fe, | ||
3984 | 0x42000800, 0x00000005, 0x0401f3d4, 0x59a80016, | ||
3985 | 0x80000540, 0x04000020, 0x4803c857, 0x42001000, | ||
3986 | 0x00104148, 0x0201f800, 0x00105f90, 0x59a80016, | ||
3987 | 0x82000580, 0x00000014, 0x04020016, 0x59cc1006, | ||
3988 | 0x82081580, 0x11040000, 0x04020012, 0x59cc1007, | ||
3989 | 0x8c08153e, 0x0400000b, 0x59a80015, 0x8c000504, | ||
3990 | 0x04020008, 0x42000000, 0x0010b83f, 0x0201f800, | ||
3991 | 0x0010aa47, 0x59a80015, 0x84000544, 0x48035015, | ||
3992 | 0x4a035014, 0x00000008, 0x0401f804, 0x0401f002, | ||
3993 | 0x0401fb7d, 0x1c01f000, 0x4803c856, 0x4a035014, | ||
3994 | 0x00000009, 0x83cca400, 0x00000006, 0x4200a800, | ||
3995 | 0x0010b552, 0x4200b000, 0x00000005, 0x0201f800, | ||
3996 | 0x0010ab17, 0x42007800, 0x0010b552, 0x46007800, | ||
3997 | 0x11050100, 0x0401fb71, 0x0402000a, 0x59a80015, | ||
3998 | 0x8c000500, 0x04020007, 0x0401fa8c, 0x04020005, | ||
3999 | 0x82000540, 0x00000001, 0x0201f800, 0x001015fe, | ||
4000 | 0x42000800, 0x00000005, 0x0401fb94, 0x0401fb63, | ||
4001 | 0x04020ea4, 0x4d3c0000, 0x42027800, 0x00000001, | ||
4002 | 0x0201f800, 0x00109874, 0x5c027800, 0x1c01f000, | ||
4003 | 0x59a80016, 0x80000540, 0x0400003a, 0x4803c857, | ||
4004 | 0x42001000, 0x00104148, 0x0201f800, 0x00105f90, | ||
4005 | 0x59a80016, 0x82000580, 0x00000014, 0x04020030, | ||
4006 | 0x59cc1006, 0x82080500, 0x11050000, 0x82000580, | ||
4007 | 0x11050000, 0x0402002a, 0x8c081510, 0x04000014, | ||
4008 | 0x59cc1007, 0x8c08153e, 0x0400000b, 0x59a80015, | ||
4009 | 0x8c000504, 0x04020008, 0x42000000, 0x0010b83f, | ||
4010 | 0x0201f800, 0x0010aa47, 0x59a80015, 0x84000544, | ||
4011 | 0x48035015, 0x4a035013, 0x00000001, 0x4a035014, | ||
4012 | 0x0000000a, 0x0401f818, 0x0401f016, 0x80000540, | ||
4013 | 0x04020013, 0x59cc1007, 0x8c08153e, 0x0400000b, | ||
4014 | 0x59a80015, 0x8c000504, 0x04020008, 0x42000000, | ||
4015 | 0x0010b83f, 0x0201f800, 0x0010aa47, 0x59a80015, | ||
4016 | 0x84000544, 0x48035015, 0x497b5013, 0x4a035014, | ||
4017 | 0x0000000e, 0x0401f86d, 0x0401f002, 0x0401fb1a, | ||
4018 | 0x1c01f000, 0x4803c856, 0x4a035014, 0x0000000b, | ||
4019 | 0x42001000, 0x0010b553, 0x4008a800, 0x4200b000, | ||
4020 | 0x00000020, 0x4600a800, 0xffffffff, 0x8054a800, | ||
4021 | 0x8058b040, 0x040207fc, 0x42007800, 0x0010b552, | ||
4022 | 0x46007800, 0x11060000, 0x42001000, 0x0010b553, | ||
4023 | 0x0401fb0a, 0x04000005, 0x50080000, 0x46001000, | ||
4024 | 0x00ffffff, 0x0401f00c, 0x50080800, 0x82040d00, | ||
4025 | 0x0000ffff, 0x59a80010, 0x82000500, 0x000000ff, | ||
4026 | 0x82000540, 0x00000100, 0x800000e0, 0x80040d40, | ||
4027 | 0x44041000, 0x42000800, 0x00000021, 0x0401f327, | ||
4028 | 0x59a80016, 0x80000540, 0x04000014, 0x4803c857, | ||
4029 | 0x59a80016, 0x42001000, 0x00104148, 0x0201f800, | ||
4030 | 0x00105f90, 0x59a80016, 0x82000580, 0x00000084, | ||
4031 | 0x04020009, 0x59cc1006, 0x82081580, 0x11060000, | ||
4032 | 0x04020005, 0x4a035014, 0x0000000c, 0x0401f804, | ||
4033 | 0x0401f002, 0x0401fadc, 0x1c01f000, 0x4803c856, | ||
4034 | 0x4a035014, 0x0000000d, 0x83cca400, 0x00000006, | ||
4035 | 0x4200a800, 0x0010b552, 0x4200b000, 0x00000021, | ||
4036 | 0x0201f800, 0x0010ab17, 0x42007800, 0x0010b552, | ||
4037 | 0x46007800, 0x11070000, 0x42000800, 0x00000021, | ||
4038 | 0x0401f2fe, 0x59a80016, 0x80000540, 0x04000016, | ||
4039 | 0x4803c857, 0x59a80016, 0x42001000, 0x00104148, | ||
4040 | 0x0201f800, 0x00105f90, 0x82000580, 0x00000084, | ||
4041 | 0x0402000c, 0x59cc1006, 0x82081580, 0x11070000, | ||
4042 | 0x04020008, 0x4a035013, 0x00000001, 0x0401fa91, | ||
4043 | 0x4a035014, 0x0000000e, 0x0401f804, 0x0401f002, | ||
4044 | 0x0401fab1, 0x1c01f000, 0x4803c856, 0x82040d40, | ||
4045 | 0x00000001, 0x0401fbfc, 0x4a035014, 0x0000000f, | ||
4046 | 0x497b5016, 0x42006000, 0xffffffff, 0x42006800, | ||
4047 | 0x00300000, 0x0401fbe8, 0x42006000, 0xffdfffff, | ||
4048 | 0x41786800, 0x0401fbe4, 0x42000800, 0x000007d0, | ||
4049 | 0x42001000, 0x00104148, 0x0201f000, 0x00105f69, | ||
4050 | 0x4803c856, 0x59a80016, 0x80000540, 0x04020296, | ||
4051 | 0x1c01f000, 0x4803c856, 0x4a035014, 0x00000011, | ||
4052 | 0x83cca400, 0x00000006, 0x4200a800, 0x0010b552, | ||
4053 | 0x4200b000, 0x00000005, 0x0201f800, 0x0010ab17, | ||
4054 | 0x4200a800, 0x0010b552, 0x4600a800, 0x11020000, | ||
4055 | 0x0401fa8a, 0x04020015, 0x59a80010, 0x82000d00, | ||
4056 | 0xffff0000, 0x04000011, 0x82000500, 0x000000ff, | ||
4057 | 0x0400000e, 0x82000c00, 0x0010210e, 0x50040800, | ||
4058 | 0x80040910, 0x82040580, 0x0000007e, 0x04000007, | ||
4059 | 0x82040580, 0x00000080, 0x04000004, 0x42001000, | ||
4060 | 0x00000004, 0x0401fa07, 0x42000800, 0x00000005, | ||
4061 | 0x0401f2a2, 0x59a80016, 0x80000540, 0x04000020, | ||
4062 | 0x4803c857, 0x42001000, 0x00104148, 0x0201f800, | ||
4063 | 0x00105f90, 0x59a80016, 0x82000580, 0x00000014, | ||
4064 | 0x04020016, 0x59cc1006, 0x82081580, 0x11030000, | ||
4065 | 0x04020012, 0x59cc1007, 0x8c08153e, 0x0400000b, | ||
4066 | 0x59a80015, 0x8c000504, 0x04020008, 0x42000000, | ||
4067 | 0x0010b83f, 0x0201f800, 0x0010aa47, 0x59a80015, | ||
4068 | 0x84000544, 0x48035015, 0x4a035014, 0x00000012, | ||
4069 | 0x0401f804, 0x0401f002, 0x0401fa4b, 0x1c01f000, | ||
4070 | 0x4803c856, 0x4a035014, 0x00000013, 0x83cca400, | ||
4071 | 0x00000006, 0x4200a800, 0x0010b552, 0x4200b000, | ||
4072 | 0x00000005, 0x0201f800, 0x0010ab17, 0x4200a800, | ||
4073 | 0x0010b552, 0x4600a800, 0x11030000, 0x0401fa3f, | ||
4074 | 0x04020013, 0x59a80015, 0x8c000500, 0x04020010, | ||
4075 | 0x59a80810, 0x82040580, 0x00ffffff, 0x0400000c, | ||
4076 | 0x82040d00, 0x000000ff, 0x82040400, 0x0010210e, | ||
4077 | 0x50000800, 0x80040910, 0x42001000, 0x00000004, | ||
4078 | 0x0401f9c0, 0x04000002, 0x0401fafb, 0x42000800, | ||
4079 | 0x00000005, 0x0401f259, 0x59a80016, 0x80000540, | ||
4080 | 0x04000020, 0x4803c857, 0x42001000, 0x00104148, | ||
4081 | 0x0201f800, 0x00105f90, 0x59a80016, 0x82000580, | ||
4082 | 0x00000014, 0x04020016, 0x59cc1006, 0x82081580, | ||
4083 | 0x11040000, 0x04020012, 0x59cc1007, 0x8c08153e, | ||
4084 | 0x0400000b, 0x59a80015, 0x8c000504, 0x04020008, | ||
4085 | 0x42000000, 0x0010b83f, 0x0201f800, 0x0010aa47, | ||
4086 | 0x59a80015, 0x84000544, 0x48035015, 0x4a035014, | ||
4087 | 0x00000014, 0x0401f804, 0x0401f002, 0x0401fa02, | ||
4088 | 0x1c01f000, 0x4803c856, 0x4a035014, 0x00000015, | ||
4089 | 0x83cca400, 0x00000006, 0x4200a800, 0x0010b552, | ||
4090 | 0x4200b000, 0x00000005, 0x0201f800, 0x0010ab17, | ||
4091 | 0x4200a800, 0x0010b552, 0x4600a800, 0x11040000, | ||
4092 | 0x0401f9f6, 0x04020020, 0x59a80015, 0x8c000500, | ||
4093 | 0x0402001d, 0x599c0017, 0x8c000500, 0x0400001a, | ||
4094 | 0x599c1402, 0x82080480, 0x0000007f, 0x02021800, | ||
4095 | 0x001005d8, 0x4c080000, 0x82081400, 0x0010210e, | ||
4096 | 0x50081000, 0x82081500, 0x000000ff, 0x480b5010, | ||
4097 | 0x42000800, 0x00000003, 0x0201f800, 0x00106c78, | ||
4098 | 0x5c000800, 0x42001000, 0x00000004, 0x0401f96d, | ||
4099 | 0x04000005, 0x0201f800, 0x00103abf, 0x02020800, | ||
4100 | 0x001015fe, 0x42000800, 0x00000005, 0x0401f203, | ||
4101 | 0x59a80016, 0x80000540, 0x0400003f, 0x4803c857, | ||
4102 | 0x42001000, 0x00104148, 0x0201f800, 0x00105f90, | ||
4103 | 0x59a80016, 0x82000580, 0x00000014, 0x04020035, | ||
4104 | 0x59cc1006, 0x82080500, 0x11050000, 0x82000580, | ||
4105 | 0x11050000, 0x0402002f, 0x8c081510, 0x04000010, | ||
4106 | 0x0401fb09, 0x59cc1007, 0x8c08153e, 0x0400000b, | ||
4107 | 0x59a80015, 0x8c000504, 0x04020008, 0x42000000, | ||
4108 | 0x0010b83f, 0x0201f800, 0x0010aa47, 0x59a80015, | ||
4109 | 0x84000544, 0x48035015, 0x0401f013, 0x59cc1007, | ||
4110 | 0x8c08153e, 0x0400000b, 0x59a80015, 0x8c000504, | ||
4111 | 0x04020008, 0x42000000, 0x0010b83f, 0x0201f800, | ||
4112 | 0x0010aa47, 0x59a80015, 0x84000544, 0x48035015, | ||
4113 | 0x82000540, 0x00000001, 0x0401faeb, 0x497b5013, | ||
4114 | 0x0401f003, 0x4a035013, 0x00000001, 0x59cc1007, | ||
4115 | 0x8c08153c, 0x04000003, 0x4a035026, 0x00000008, | ||
4116 | 0x4a035014, 0x00000016, 0x0401f804, 0x0401f002, | ||
4117 | 0x0401f98d, 0x1c01f000, 0x4803c856, 0x83cca400, | ||
4118 | 0x00000006, 0x4200a800, 0x0010b552, 0x4200b000, | ||
4119 | 0x00000005, 0x0201f800, 0x0010ab17, 0x4a035014, | ||
4120 | 0x00000017, 0x59a80013, 0x8c000500, 0x04000006, | ||
4121 | 0x42001000, 0x0010b552, 0x46001000, 0x11050100, | ||
4122 | 0x0401f003, 0x4a035014, 0x0000001b, 0x0401f97b, | ||
4123 | 0x0402000a, 0x59a80015, 0x8c000500, 0x04020007, | ||
4124 | 0x0401f896, 0x04020005, 0x82000540, 0x00000001, | ||
4125 | 0x0201f800, 0x001015fe, 0x42000800, 0x00000005, | ||
4126 | 0x0401f99e, 0x4d3c0000, 0x42027800, 0x00000001, | ||
4127 | 0x0201f800, 0x00109874, 0x5c027800, 0x1c01f000, | ||
4128 | 0x59a80016, 0x80000540, 0x04000015, 0x4803c857, | ||
4129 | 0x42001000, 0x00104148, 0x0201f800, 0x00105f90, | ||
4130 | 0x59a80016, 0x82000580, 0x00000084, 0x0402000b, | ||
4131 | 0x59cc1006, 0x82081580, 0x11060000, 0x04020007, | ||
4132 | 0x80000580, 0x0401faa0, 0x4a035014, 0x00000018, | ||
4133 | 0x0401f804, 0x0401f002, 0x0401f94b, 0x1c01f000, | ||
4134 | 0x4803c856, 0x4a035014, 0x00000019, 0x83cca400, | ||
4135 | 0x00000006, 0x4200a800, 0x0010b552, 0x4200b000, | ||
4136 | 0x00000021, 0x0201f800, 0x0010ab17, 0x42003800, | ||
4137 | 0x0010b553, 0x0401f941, 0x04020018, 0x401c2800, | ||
4138 | 0x50141000, 0x80080130, 0x80000000, 0x40001800, | ||
4139 | 0x82081500, 0x00ffffff, 0x800000f0, 0x80080540, | ||
4140 | 0x44002800, 0x59a80810, 0x82040d00, 0x000000ff, | ||
4141 | 0x400c1000, 0x80081104, 0x82082400, 0x0010b553, | ||
4142 | 0x50101000, 0x820c0500, 0x00000003, 0x0c01f806, | ||
4143 | 0x80081540, 0x44082000, 0x42000800, 0x00000021, | ||
4144 | 0x0401f156, 0x0010401d, 0x00104022, 0x00104027, | ||
4145 | 0x0010402c, 0x800408f0, 0x40040000, 0x82081500, | ||
4146 | 0x00ffffff, 0x1c01f000, 0x800408e0, 0x40040000, | ||
4147 | 0x82081500, 0xff00ffff, 0x1c01f000, 0x800408d0, | ||
4148 | 0x40040000, 0x82081500, 0xffff00ff, 0x1c01f000, | ||
4149 | 0x40040000, 0x82081500, 0xffffff00, 0x1c01f000, | ||
4150 | 0x59a80016, 0x80000540, 0x04000016, 0x4803c857, | ||
4151 | 0x42001000, 0x00104148, 0x0201f800, 0x00105f90, | ||
4152 | 0x59a80016, 0x82000580, 0x00000084, 0x0402000c, | ||
4153 | 0x59cc1006, 0x82081580, 0x11070000, 0x04020008, | ||
4154 | 0x4a035013, 0x00000001, 0x0401f8d2, 0x4a035014, | ||
4155 | 0x0000001a, 0x0401f804, 0x0401f002, 0x0401f8f2, | ||
4156 | 0x1c01f000, 0x82000540, 0x00000001, 0x0401fa3e, | ||
4157 | 0x4a035014, 0x0000001b, 0x83cca400, 0x00000006, | ||
4158 | 0x4200a800, 0x0010b552, 0x59a82016, 0x40100000, | ||
4159 | 0x8000b104, 0x40580800, 0x5450a800, 0x8050a000, | ||
4160 | 0x8054a800, 0x8058b040, 0x040207fc, 0x0401f113, | ||
4161 | 0x1c01f000, 0x1c01f000, 0x4803c856, 0x42003000, | ||
4162 | 0x00000004, 0x42004000, 0x0010b553, 0x599c2817, | ||
4163 | 0x8c142d14, 0x0402001f, 0x42001000, 0x00000003, | ||
4164 | 0x40200000, 0x80080400, 0x50000800, 0x82042580, | ||
4165 | 0xffffffff, 0x04020005, 0x80081040, 0x80183040, | ||
4166 | 0x040207f8, 0x0401f05e, 0x800811c0, 0x04020006, | ||
4167 | 0x82042580, 0x3fffffff, 0x04000058, 0x82040d40, | ||
4168 | 0xc0000000, 0x4200b000, 0x00000020, 0x42001800, | ||
4169 | 0x00000001, 0x40042000, 0x80102102, 0x04021021, | ||
4170 | 0x800c18c2, 0x8058b040, 0x040207fc, 0x0401f04b, | ||
4171 | 0x41781000, 0x40200000, 0x80080400, 0x50000800, | ||
4172 | 0x82042580, 0xffffffff, 0x04020005, 0x80081000, | ||
4173 | 0x80183040, 0x040207f8, 0x0401f040, 0x800811c0, | ||
4174 | 0x04020003, 0x82040d40, 0xc0000000, 0x4200b000, | ||
4175 | 0x00000001, 0x42001800, 0x80000000, 0x40042000, | ||
4176 | 0x801020c2, 0x04021007, 0x800c1902, 0x8058b000, | ||
4177 | 0x82580480, 0x00000021, 0x040017fa, 0x0401f02f, | ||
4178 | 0x40200000, 0x80082400, 0x50100000, 0x800c0540, | ||
4179 | 0x44002000, 0x59a80015, 0x84000540, 0x48035015, | ||
4180 | 0x40580000, 0x42002800, 0x00000020, 0x80142c80, | ||
4181 | 0x40080000, 0x42003800, 0x00000003, 0x801c0480, | ||
4182 | 0x800000ca, 0x80142d40, 0x82144c00, 0x0010210e, | ||
4183 | 0x50242800, 0x82142d00, 0x000000ff, 0x48175010, | ||
4184 | 0x4c040000, 0x40140800, 0x0201f800, 0x001015eb, | ||
4185 | 0x5c000800, 0x40001800, 0x500c0000, 0x80100540, | ||
4186 | 0x44001800, 0x59a80015, 0x84000540, 0x48035015, | ||
4187 | 0x4200a800, 0x0010b553, 0x4020a000, 0x4200b000, | ||
4188 | 0x00000004, 0x0201f800, 0x0010ab17, 0x82000540, | ||
4189 | 0x00000001, 0x0401f002, 0x80000580, 0x1c01f000, | ||
4190 | 0x4807c857, 0x480bc857, 0x4008b000, 0x83cca400, | ||
4191 | 0x00000007, 0x4200a800, 0x0010b553, 0x40541000, | ||
4192 | 0x0201f800, 0x0010ab17, 0x40041800, 0x41782000, | ||
4193 | 0x42000000, 0x00000003, 0x820c1c80, 0x00000020, | ||
4194 | 0x04001004, 0x80102000, 0x80000040, 0x0401f7fb, | ||
4195 | 0x40041800, 0x801021c0, 0x04000005, 0x820c1c80, | ||
4196 | 0x00000020, 0x80102040, 0x040207fd, 0x42002000, | ||
4197 | 0x00000001, 0x800c19c0, 0x04000004, 0x801020c2, | ||
4198 | 0x800c1840, 0x040207fe, 0x80083c00, 0x83cc2c00, | ||
4199 | 0x00000007, 0x80142c00, 0x50140000, 0x80102d00, | ||
4200 | 0x04020012, 0x80100540, 0x44003800, 0x82042400, | ||
4201 | 0x0010210e, 0x50102800, 0x82142d00, 0x000000ff, | ||
4202 | 0x48175010, 0x4c040000, 0x40140800, 0x0201f800, | ||
4203 | 0x001015eb, 0x5c000800, 0x59a80015, 0x84000540, | ||
4204 | 0x48035015, 0x80000580, 0x1c01f000, 0x4807c856, | ||
4205 | 0x42001000, 0x00008017, 0x59a8184e, 0x0201f800, | ||
4206 | 0x0010aa4f, 0x0201f800, 0x00103a3e, 0x1c01f000, | ||
4207 | 0x4807c856, 0x4200b000, 0x00000020, 0x83cca400, | ||
4208 | 0x00000007, 0x4200a800, 0x0010be21, 0x0201f000, | ||
4209 | 0x0010ab28, 0x4807c856, 0x0201f800, 0x00106ede, | ||
4210 | 0x42000800, 0x000000f7, 0x0401f8de, 0x497b2804, | ||
4211 | 0x497b2805, 0x497b281c, 0x497b281d, 0x4202d800, | ||
4212 | 0x00000001, 0x42006000, 0xbf7fffff, 0x42006800, | ||
4213 | 0x00018000, 0x0401f950, 0x42006000, 0xfffeffff, | ||
4214 | 0x41786800, 0x0401f94c, 0x497b504e, 0x42000800, | ||
4215 | 0x0000002d, 0x42001000, 0x001041bc, 0x0201f000, | ||
4216 | 0x00105f69, 0x4807c856, 0x0401ffe3, 0x497b5014, | ||
4217 | 0x497b5016, 0x1c01f000, 0x4807c856, 0x59a80005, | ||
4218 | 0x8c000506, 0x1c01f000, 0x4807c856, 0x42006000, | ||
4219 | 0xffffffff, 0x42006800, 0x00000028, 0x0401f136, | ||
4220 | 0x4807c856, 0x0401ffc2, 0x0201f800, 0x00106c55, | ||
4221 | 0x4df00000, 0x0201f800, 0x00106e21, 0x5c03e000, | ||
4222 | 0x02000800, 0x00106c4b, 0x59c400a4, 0x82000500, | ||
4223 | 0x0000000f, 0x82000580, 0x00000002, 0x0402000a, | ||
4224 | 0x42006000, 0xffffffff, 0x42006800, 0x00200000, | ||
4225 | 0x0401f921, 0x42006000, 0xffdfffff, 0x41786800, | ||
4226 | 0x0401f91d, 0x497b5014, 0x42000800, 0x000000f7, | ||
4227 | 0x0401f89c, 0x59c400a3, 0x82000500, 0xbf20bfff, | ||
4228 | 0x82000540, 0x0001c000, 0x480388a3, 0x84000520, | ||
4229 | 0x480388a3, 0x1c01f000, 0x497b5016, 0x59b400f5, | ||
4230 | 0x8c000500, 0x04020004, 0x82000540, 0x00000001, | ||
4231 | 0x480368f5, 0x800400c4, 0x82000400, 0x00002000, | ||
4232 | 0x4803910a, 0x59b400f6, 0x82000500, 0x00000018, | ||
4233 | 0x040207fd, 0x4a0368f0, 0x0010b54b, 0x42000000, | ||
4234 | 0x0010b552, 0x480368f1, 0x82040400, 0x0000dc00, | ||
4235 | 0x480368f3, 0x59c400a4, 0x82000500, 0x0000000f, | ||
4236 | 0x82000580, 0x00000008, 0x04020017, 0x4c5c0000, | ||
4237 | 0x4c600000, 0x59c4b805, 0x8c5cbd3a, 0x04020005, | ||
4238 | 0x42000000, 0x0010b818, 0x0201f800, 0x0010aa47, | ||
4239 | 0x4a038805, 0x02000000, 0x0201f800, 0x001019fe, | ||
4240 | 0x4000c000, 0x0201f800, 0x00101963, 0x4202d800, | ||
4241 | 0x00000001, 0x497b5014, 0x5c00c000, 0x5c00b800, | ||
4242 | 0x1c01f000, 0x59c8010b, 0x8c000502, 0x040007e2, | ||
4243 | 0x59c408a4, 0x82040d00, 0x0000000f, 0x82040d80, | ||
4244 | 0x0000000b, 0x04020005, 0x59a80814, 0x82040d40, | ||
4245 | 0x00002000, 0x0401f004, 0x59a80812, 0x82040d40, | ||
4246 | 0x00001000, 0x4807504e, 0x59a8084a, 0x800409c0, | ||
4247 | 0x04020007, 0x42000800, 0x000007d0, 0x42001000, | ||
4248 | 0x00104148, 0x0201f800, 0x0010606e, 0x1c01f000, | ||
4249 | 0x4807c856, 0x0401ff4e, 0x0201f800, 0x00106c55, | ||
4250 | 0x4df00000, 0x0201f800, 0x00106e21, 0x5c03e000, | ||
4251 | 0x02000800, 0x00106c4b, 0x59c400a4, 0x82000500, | ||
4252 | 0x0000000f, 0x82000580, 0x00000002, 0x0402000a, | ||
4253 | 0x42006000, 0xffffffff, 0x42006800, 0x00200000, | ||
4254 | 0x0401f8ad, 0x42006000, 0xffdfffff, 0x41786800, | ||
4255 | 0x0401f8a9, 0x0201f800, 0x00105141, 0x04000014, | ||
4256 | 0x0201f800, 0x00105151, 0x04020011, 0x4a035032, | ||
4257 | 0x0000aaaa, 0x4c040000, 0x0201f800, 0x0010162a, | ||
4258 | 0x59a8002a, 0x82000500, 0xffff0000, 0x80040540, | ||
4259 | 0x4803502a, 0x5c000800, 0x4a035033, 0x00000000, | ||
4260 | 0x0201f800, 0x001050a2, 0x0401f008, 0x4a03504c, | ||
4261 | 0x00000005, 0x42000000, 0x00000001, 0x0201f800, | ||
4262 | 0x00101590, 0x0401ff2c, 0x1c01f000, 0x0401f805, | ||
4263 | 0x42006000, 0xbf7f7fff, 0x41786800, 0x0401f086, | ||
4264 | 0x0201f800, 0x00105151, 0x04020005, 0x59c40006, | ||
4265 | 0x82000540, 0x000000f0, 0x48038806, 0x1c01f000, | ||
4266 | 0x800408d0, 0x59a80015, 0x8c000506, 0x04000006, | ||
4267 | 0x59a80010, 0x82000500, 0x000000ff, 0x80040540, | ||
4268 | 0x0401f003, 0x82040540, 0x000000f7, 0x480388a7, | ||
4269 | 0x1c01f000, 0x4807c856, 0x42000000, 0x0010b83b, | ||
4270 | 0x0201f800, 0x0010aa47, 0x42003000, 0x00000005, | ||
4271 | 0x4d3c0000, 0x4c180000, 0x42003000, 0x0000000d, | ||
4272 | 0x42027800, 0x00000002, 0x0401f038, 0x4807c856, | ||
4273 | 0x42000000, 0x0010b86b, 0x0201f800, 0x0010aa47, | ||
4274 | 0x42003000, 0x00000000, 0x4d3c0000, 0x4c180000, | ||
4275 | 0x42003000, 0x0000000f, 0x42027800, 0x00000002, | ||
4276 | 0x0401f02a, 0x4807c856, 0x42000000, 0x0010b86a, | ||
4277 | 0x0201f800, 0x0010aa47, 0x42003000, 0x00000003, | ||
4278 | 0x4d3c0000, 0x4c180000, 0x42003000, 0x0000000e, | ||
4279 | 0x42027800, 0x00000202, 0x0401f01c, 0x4807c856, | ||
4280 | 0x42000000, 0x0010b869, 0x0201f800, 0x0010aa47, | ||
4281 | 0x42003000, 0x00000004, 0x4d3c0000, 0x4c180000, | ||
4282 | 0x42003000, 0x00000010, 0x42027800, 0x00000202, | ||
4283 | 0x0401f00e, 0x4807c856, 0x42000000, 0x0010b83e, | ||
4284 | 0x0201f800, 0x0010aa47, 0x42003000, 0x00000001, | ||
4285 | 0x4d3c0000, 0x4c180000, 0x42003000, 0x0000000c, | ||
4286 | 0x42027800, 0x00000202, 0x42001800, 0x0000ffff, | ||
4287 | 0x42002000, 0x00000007, 0x0201f800, 0x00103aae, | ||
4288 | 0x5c003000, 0x4d400000, 0x0201f800, 0x0010a95d, | ||
4289 | 0x42028000, 0x0000002a, 0x0201f800, 0x00101fe5, | ||
4290 | 0x5c028000, 0x5c027800, 0x1c01f000, 0x4807c856, | ||
4291 | 0x04011000, 0x4a03c840, 0x0010b54b, 0x4a03c842, | ||
4292 | 0x00000040, 0x40000000, 0x040117ff, 0x42007800, | ||
4293 | 0x0010b54b, 0x46007800, 0x00000011, 0x803c7800, | ||
4294 | 0x4a007800, 0x220000ef, 0x4a007801, 0x000000ef, | ||
4295 | 0x4a007802, 0x01380000, 0x4a007803, 0x00000000, | ||
4296 | 0x4a007804, 0xffffffff, 0x4a007805, 0x00000000, | ||
4297 | 0x1c01f000, 0x59c400a3, 0x80300500, 0x80340540, | ||
4298 | 0x480388a3, 0x1c01f000, 0x4833c857, 0x59c400a3, | ||
4299 | 0x80300540, 0x480388a3, 0x80300580, 0x480388a3, | ||
4300 | 0x1c01f000, 0x4803c856, 0x04000004, 0x4a03504b, | ||
4301 | 0x00000001, 0x0401f002, 0x497b504b, 0x1c01f000, | ||
4302 | 0x4803c856, 0x59c80002, 0x80000540, 0x0400000a, | ||
4303 | 0x80000040, 0x04000008, 0x4a039005, 0x00000140, | ||
4304 | 0x42000000, 0x00000006, 0x80000040, 0x040207ff, | ||
4305 | 0x0401f7f4, 0x1c01f000, 0x4c5c0000, 0x4c600000, | ||
4306 | 0x59c4b805, 0x485fc856, 0x8c5cbd3a, 0x04020005, | ||
4307 | 0x42000000, 0x0010b818, 0x0201f800, 0x0010aa47, | ||
4308 | 0x4a038805, 0x02000000, 0x0201f800, 0x001019fe, | ||
4309 | 0x4000c000, 0x0201f800, 0x00101963, 0x4a038805, | ||
4310 | 0x04000000, 0x5c00c000, 0x5c00b800, 0x1c01f000, | ||
4311 | 0x497a6a00, 0x4937c857, 0x4a026c00, 0x00000707, | ||
4312 | 0x497a6801, 0x497a6808, 0x497a6809, 0x497a6806, | ||
4313 | 0x497a6807, 0x497a6c0b, 0x497a680c, 0x0201f800, | ||
4314 | 0x00103b25, 0x04020006, 0x5934080f, 0x59340010, | ||
4315 | 0x80040540, 0x02020800, 0x001005d8, 0x4a026a04, | ||
4316 | 0x00000100, 0x497a6a03, 0x59340402, 0x82000500, | ||
4317 | 0x000000ff, 0x48026c02, 0x497a6c04, 0x497a6a05, | ||
4318 | 0x497a6c05, 0x497a6811, 0x4d2c0000, 0x5934000d, | ||
4319 | 0x49466c03, 0x80025d40, 0x04000004, 0x0201f800, | ||
4320 | 0x001007fd, 0x497a680d, 0x5c025800, 0x599c0401, | ||
4321 | 0x48026a0b, 0x599c0208, 0x48026c12, 0x497a680a, | ||
4322 | 0x0201f000, 0x00104c62, 0x42000000, 0x00000005, | ||
4323 | 0x80000d80, 0x0401f02d, 0x0201f800, 0x00104a09, | ||
4324 | 0x04020017, 0x59a80026, 0x8c00050a, 0x04020010, | ||
4325 | 0x59340212, 0x82000500, 0x0000ff00, 0x4803c857, | ||
4326 | 0x0400000b, 0x59340a00, 0x8c040d1e, 0x02000000, | ||
4327 | 0x000201c4, 0x42000000, 0x00000029, 0x42000800, | ||
4328 | 0x00001000, 0x492fc857, 0x0401f018, 0x492fc857, | ||
4329 | 0x42000000, 0x00000028, 0x0401f012, 0x59a80805, | ||
4330 | 0x8c040d02, 0x04020003, 0x8c040d00, 0x04000004, | ||
4331 | 0x42000000, 0x00000004, 0x0401f00a, 0x42000000, | ||
4332 | 0x00000029, 0x59340a00, 0x8c040d1e, 0x04000005, | ||
4333 | 0x492fc857, 0x42000800, 0x00001000, 0x0401f003, | ||
4334 | 0x492fc857, 0x80000d80, 0x4803c857, 0x80028540, | ||
4335 | 0x1c01f000, 0x4803c857, 0x59a80005, 0x8c000500, | ||
4336 | 0x040207ec, 0x0201f800, 0x001049e7, 0x040207e4, | ||
4337 | 0x59340200, 0x8c00050e, 0x040007e1, 0x0201f000, | ||
4338 | 0x000201c4, 0x0201f800, 0x001047eb, 0x040007bf, | ||
4339 | 0x0201f000, 0x000201c8, 0x592c0206, 0x492fc857, | ||
4340 | 0x82000d80, 0x000007ff, 0x04020006, 0x4a025c0a, | ||
4341 | 0x00000030, 0x42026800, 0x0010b524, 0x0401f021, | ||
4342 | 0x82000c80, 0x000007f0, 0x04021046, 0x81ac0400, | ||
4343 | 0x50000000, 0x80026d40, 0x04000038, 0x0201f800, | ||
4344 | 0x001048e3, 0x04020038, 0x592c040a, 0x8c00050a, | ||
4345 | 0x04020014, 0x592e6009, 0x83300480, 0x0010d1c0, | ||
4346 | 0x0400103b, 0x41580000, 0x81300480, 0x04021038, | ||
4347 | 0x59300c06, 0x82040580, 0x00000009, 0x04020037, | ||
4348 | 0x4a025a06, 0x00000000, 0x497a5800, 0x59300008, | ||
4349 | 0x80000540, 0x04020018, 0x492e6008, 0x0401f010, | ||
4350 | 0x0201f800, 0x0002075a, 0x04000019, 0x592c0206, | ||
4351 | 0x49366009, 0x492e6008, 0x4a026406, 0x00000009, | ||
4352 | 0x497a6015, 0x49325809, 0x82000d80, 0x000007ff, | ||
4353 | 0x04020003, 0x4a026015, 0x00008000, 0x42027000, | ||
4354 | 0x00000043, 0x0201f800, 0x000207a1, 0x80000580, | ||
4355 | 0x0401f020, 0x40000800, 0x58040000, 0x80000d40, | ||
4356 | 0x040207fd, 0x492c0800, 0x0401f01a, 0x42000000, | ||
4357 | 0x0000002c, 0x0401f016, 0x42000000, 0x00000028, | ||
4358 | 0x0401f013, 0x59a80805, 0x82040500, 0x00000003, | ||
4359 | 0x04000004, 0x42000000, 0x00000004, 0x0401f00c, | ||
4360 | 0x42000000, 0x00000029, 0x0401f009, 0x42000000, | ||
4361 | 0x00000008, 0x0401f006, 0x82040580, 0x00000007, | ||
4362 | 0x040207fb, 0x42000000, 0x00000005, 0x80000540, | ||
4363 | 0x1c01f000, 0x492fc857, 0x592e8c06, 0x83440d80, | ||
4364 | 0x000007fc, 0x04000004, 0x83440480, 0x000007f0, | ||
4365 | 0x04021014, 0x0201f800, 0x00020245, 0x04020011, | ||
4366 | 0x0201f800, 0x001049f3, 0x04020011, 0x0201f800, | ||
4367 | 0x0002075a, 0x0400001c, 0x49366009, 0x492e6008, | ||
4368 | 0x4a026406, 0x0000000a, 0x42027000, 0x00000040, | ||
4369 | 0x0201f800, 0x000207a1, 0x80000580, 0x0401f011, | ||
4370 | 0x42000000, 0x00000028, 0x0401f00d, 0x0201f800, | ||
4371 | 0x00104a09, 0x040007fb, 0x59a80805, 0x82040d00, | ||
4372 | 0x00000003, 0x04000004, 0x42000000, 0x00000004, | ||
4373 | 0x0401f003, 0x42000000, 0x00000029, 0x80000540, | ||
4374 | 0x1c01f000, 0x42000000, 0x0000002c, 0x0401f7fc, | ||
4375 | 0x492fc857, 0x592e8c06, 0x4947c857, 0x83440c80, | ||
4376 | 0x00000800, 0x42000000, 0x0000000a, 0x04021176, | ||
4377 | 0x592c4207, 0x4823c857, 0x82200500, 0x0000000f, | ||
4378 | 0x0c01f001, 0x001043d5, 0x0010445d, 0x001044a9, | ||
4379 | 0x001044b4, 0x001044bf, 0x001043d1, 0x001043d1, | ||
4380 | 0x001043d1, 0x001044cf, 0x00104513, 0x00104530, | ||
4381 | 0x001043d1, 0x001043d1, 0x001043d1, 0x001043d1, | ||
4382 | 0x001043d1, 0x4803c857, 0x42000000, 0x0000000c, | ||
4383 | 0x0401f15d, 0x592c1008, 0x82081500, 0x00ffffff, | ||
4384 | 0x59a80010, 0x80084d80, 0x42000000, 0x00000010, | ||
4385 | 0x04000155, 0x0201f800, 0x00104919, 0x04000036, | ||
4386 | 0x4803c857, 0x82004d80, 0x0000001d, 0x0402001a, | ||
4387 | 0x0201f800, 0x00105755, 0x59340405, 0x4c000000, | ||
4388 | 0x0201f800, 0x001049e7, 0x5c000000, 0x04000004, | ||
4389 | 0x8c20450a, 0x04000028, 0x80000580, 0x44002800, | ||
4390 | 0x59340008, 0x48002802, 0x59340009, 0x48002801, | ||
4391 | 0x59340006, 0x48002804, 0x59340007, 0x48002803, | ||
4392 | 0x4200b000, 0x00000005, 0x0201f800, 0x0010955f, | ||
4393 | 0x0401f166, 0x4803c857, 0x82004d80, 0x0000001a, | ||
4394 | 0x04020003, 0x40101000, 0x0401f136, 0x4803c857, | ||
4395 | 0x82004d80, 0x0000001b, 0x04020003, 0x40181000, | ||
4396 | 0x0401f130, 0x4803c857, 0x82004d80, 0x0000001c, | ||
4397 | 0x04000131, 0x82004d80, 0x00000019, 0x42000000, | ||
4398 | 0x0000000a, 0x04000120, 0x42000000, 0x0000000a, | ||
4399 | 0x04020137, 0x59a80005, 0x8c000514, 0x0400001b, | ||
4400 | 0x0201f800, 0x001049e7, 0x04000018, 0x59340212, | ||
4401 | 0x82000500, 0x0000ff00, 0x42001000, 0x00000010, | ||
4402 | 0x0402000c, 0x42001000, 0x00000008, 0x59a80026, | ||
4403 | 0x8c000506, 0x04020009, 0x59340002, 0x82000500, | ||
4404 | 0x00ff0000, 0x82000580, 0x00ff0000, 0x04000007, | ||
4405 | 0x0201f800, 0x00104c6d, 0x42000000, 0x0000001c, | ||
4406 | 0x40181000, 0x04020107, 0x0201f800, 0x0002075a, | ||
4407 | 0x04000111, 0x49366009, 0x492e6008, 0x4a026406, | ||
4408 | 0x00000001, 0x8c20450a, 0x04000004, 0x592c0404, | ||
4409 | 0x8400055c, 0x48025c04, 0x4c200000, 0x4d3c0000, | ||
4410 | 0x42027800, 0x00001000, 0x0201f800, 0x0010203c, | ||
4411 | 0x5c027800, 0x5c004000, 0x8c204512, 0x0400000b, | ||
4412 | 0x599c0018, 0x8c000518, 0x04000008, 0x592c0009, | ||
4413 | 0x82000500, 0x00000380, 0x5934080a, 0x80040d40, | ||
4414 | 0x84040d54, 0x4806680a, 0x417a7800, 0x0401f914, | ||
4415 | 0x42000800, 0x00000003, 0x0401f91b, 0x42027000, | ||
4416 | 0x00000002, 0x0201f800, 0x000207a1, 0x80000580, | ||
4417 | 0x0401f10a, 0x0201f800, 0x00020245, 0x040200ec, | ||
4418 | 0x0201f800, 0x001049ed, 0x04000008, 0x0201f800, | ||
4419 | 0x001049e7, 0x040200ec, 0x417a7800, 0x417a6000, | ||
4420 | 0x0201f800, 0x001020a1, 0x59a80005, 0x8c000514, | ||
4421 | 0x0400001b, 0x0201f800, 0x001049e7, 0x04000018, | ||
4422 | 0x59340212, 0x82000500, 0x0000ff00, 0x42001000, | ||
4423 | 0x00000010, 0x0402000c, 0x42001000, 0x00000008, | ||
4424 | 0x59a80026, 0x8c000506, 0x04020009, 0x59340002, | ||
4425 | 0x82000500, 0x00ff0000, 0x82000580, 0x00ff0000, | ||
4426 | 0x04000007, 0x0201f800, 0x00104c6d, 0x42000000, | ||
4427 | 0x0000001c, 0x40181000, 0x040200b2, 0x0201f800, | ||
4428 | 0x0002075a, 0x040000bc, 0x5934080a, 0x8c204512, | ||
4429 | 0x0400000c, 0x599c0018, 0x8c000518, 0x04000009, | ||
4430 | 0x592c0009, 0x82000500, 0x00000380, 0x82041500, | ||
4431 | 0xfffffc7f, 0x80080d40, 0x84040d54, 0x0401f002, | ||
4432 | 0x84040d14, 0x4806680a, 0x49366009, 0x492e6008, | ||
4433 | 0x4a026406, 0x00000001, 0x417a7800, 0x0401f8c8, | ||
4434 | 0x42000800, 0x00000005, 0x0401f8cf, 0x42027000, | ||
4435 | 0x00000003, 0x0201f800, 0x000207a1, 0x80000580, | ||
4436 | 0x0401f0be, 0x0201f800, 0x00020245, 0x040200a0, | ||
4437 | 0x0201f800, 0x001049fc, 0x040200a3, 0x0201f800, | ||
4438 | 0x00109517, 0x04000094, 0x80000580, 0x0401f0b3, | ||
4439 | 0x0201f800, 0x00020245, 0x04020095, 0x0201f800, | ||
4440 | 0x001049fc, 0x04020098, 0x0201f800, 0x001090e6, | ||
4441 | 0x04000089, 0x80000580, 0x0401f0a8, 0x0201f800, | ||
4442 | 0x00020245, 0x0402008a, 0x83444d80, 0x000007fe, | ||
4443 | 0x42000000, 0x0000000a, 0x0402006b, 0x0201f800, | ||
4444 | 0x001049e7, 0x04020088, 0x0201f800, 0x0010952f, | ||
4445 | 0x04000079, 0x80000580, 0x0401f098, 0x82200500, | ||
4446 | 0x00000070, 0x04020005, 0x8c20450e, 0x42000000, | ||
4447 | 0x0000000c, 0x0402005c, 0x8c20450a, 0x0400000d, | ||
4448 | 0x4d3c0000, 0x42027800, 0x00001000, 0x8c20450e, | ||
4449 | 0x04020002, 0x853e7d56, 0x82200500, 0x000000a0, | ||
4450 | 0x0201f800, 0x001049d3, 0x5c027800, 0x0401f07f, | ||
4451 | 0x0201f800, 0x00020245, 0x04020065, 0x8c204508, | ||
4452 | 0x04000010, 0x4d3c0000, 0x42027800, 0x00001000, | ||
4453 | 0x8c20450e, 0x04020002, 0x853e7d56, 0x82200500, | ||
4454 | 0x00000090, 0x0201f800, 0x001049bb, 0x5c027800, | ||
4455 | 0x42000000, 0x0000000a, 0x0402003b, 0x0401f06b, | ||
4456 | 0x836c0580, 0x00000003, 0x42000800, 0x00000007, | ||
4457 | 0x0402000f, 0x0201f800, 0x001049f3, 0x04000007, | ||
4458 | 0x4c000000, 0x0201f800, 0x00104a1f, 0x5c000000, | ||
4459 | 0x0400004d, 0x0401f05d, 0x0201f800, 0x001094c5, | ||
4460 | 0x04000007, 0x80000580, 0x0401f05c, 0x0201f800, | ||
4461 | 0x00104a1f, 0x04000051, 0x0401f054, 0x0201f800, | ||
4462 | 0x00104a1f, 0x04000034, 0x0401f050, 0x0201f800, | ||
4463 | 0x00020245, 0x04020036, 0x836c0580, 0x00000003, | ||
4464 | 0x04020040, 0x8c204508, 0x04000006, 0x417a7800, | ||
4465 | 0x417a6000, 0x0201f800, 0x001020a1, 0x0401f043, | ||
4466 | 0x0201f800, 0x001049ed, 0x04000008, 0x0201f800, | ||
4467 | 0x001049e7, 0x0402002c, 0x417a7800, 0x417a6000, | ||
4468 | 0x0201f800, 0x001020a1, 0x480bc856, 0x0201f800, | ||
4469 | 0x00109332, 0x04000018, 0x80000580, 0x0401f037, | ||
4470 | 0x0401f7e3, 0x480bc857, 0x42000800, 0x00000019, | ||
4471 | 0x40001000, 0x4200b000, 0x00000002, 0x0401f00a, | ||
4472 | 0x480bc857, 0x40000800, 0x4200b000, 0x00000002, | ||
4473 | 0x0401f005, 0x480bc857, 0x40000800, 0x4200b000, | ||
4474 | 0x00000001, 0x480bc857, 0x42028000, 0x00000031, | ||
4475 | 0x0401f020, 0x480bc857, 0x42000800, 0x00000003, | ||
4476 | 0x4200b000, 0x00000001, 0x0401f7f7, 0x480bc857, | ||
4477 | 0x42000800, 0x0000000a, 0x4200b000, 0x00000001, | ||
4478 | 0x0401f7f1, 0x480bc857, 0x42000800, 0x00000009, | ||
4479 | 0x40001000, 0x4200b000, 0x00000002, 0x0401f7ea, | ||
4480 | 0x480bc857, 0x42000800, 0x00000007, 0x4200b000, | ||
4481 | 0x00000001, 0x0401f7e4, 0x480bc857, 0x4200b000, | ||
4482 | 0x00000001, 0x0401f7e0, 0x80028580, 0x4178b000, | ||
4483 | 0x82000540, 0x00000001, 0x1c01f000, 0x4937c857, | ||
4484 | 0x59326809, 0x59341200, 0x813e79c0, 0x04000003, | ||
4485 | 0x84081540, 0x0401f002, 0x84081500, 0x480a6a00, | ||
4486 | 0x1c01f000, 0x59326809, 0x5c000000, 0x4c000000, | ||
4487 | 0x4803c857, 0x4937c857, 0x82040580, 0x00000006, | ||
4488 | 0x04020004, 0x42000000, 0x00000606, 0x0401f021, | ||
4489 | 0x82040580, 0x00000004, 0x04020004, 0x42000000, | ||
4490 | 0x00000404, 0x0401f01b, 0x82040580, 0x00000007, | ||
4491 | 0x42000000, 0x00000707, 0x04000016, 0x82040580, | ||
4492 | 0x00000003, 0x42000000, 0x00000703, 0x04000011, | ||
4493 | 0x82040580, 0x00000005, 0x42000000, 0x00000405, | ||
4494 | 0x0400000c, 0x82040580, 0x00000009, 0x42000000, | ||
4495 | 0x00000409, 0x04000007, 0x82040580, 0x0000000b, | ||
4496 | 0x42000000, 0x0000070b, 0x02020800, 0x001005d8, | ||
4497 | 0x4803c857, 0x48026c00, 0x82040d80, 0x00000006, | ||
4498 | 0x04020005, 0x59341404, 0x800811c0, 0x02000800, | ||
4499 | 0x001005d8, 0x1c01f000, 0x5c000000, 0x4c000000, | ||
4500 | 0x4803c857, 0x4947c857, 0x481bc857, 0x83440480, | ||
4501 | 0x00000800, 0x04021034, 0x83441400, 0x0010ac00, | ||
4502 | 0x50080000, 0x80026d40, 0x04020011, 0x4c180000, | ||
4503 | 0x4d2c0000, 0x0201f800, 0x001007d3, 0x412e6800, | ||
4504 | 0x5c025800, 0x5c003000, 0x04000027, 0x45341000, | ||
4505 | 0x497a680d, 0x497a6810, 0x497a680f, 0x497a680e, | ||
4506 | 0x4c180000, 0x0401fcf3, 0x5c003000, 0x59340a12, | ||
4507 | 0x4c040000, 0x0201f800, 0x0010513b, 0x5c000800, | ||
4508 | 0x04000009, 0x82180500, 0x00ffff00, 0x04000008, | ||
4509 | 0x59a81010, 0x82081500, 0x00ffff00, 0x80080580, | ||
4510 | 0x04000003, 0x80000580, 0x0401f004, 0x82180500, | ||
4511 | 0x000000ff, 0x800000d0, 0x80040d80, 0x04000003, | ||
4512 | 0x4803c857, 0x48026a12, 0x59340002, 0x80180580, | ||
4513 | 0x04000003, 0x481bc857, 0x481a6802, 0x80000580, | ||
4514 | 0x1c01f000, 0x4803c856, 0x82000540, 0x00000001, | ||
4515 | 0x0401f7fc, 0x4947c857, 0x83440480, 0x00000800, | ||
4516 | 0x04021011, 0x83441400, 0x0010ac00, 0x50080000, | ||
4517 | 0x80026d40, 0x0400000b, 0x0401fbf9, 0x0402000a, | ||
4518 | 0x59a80005, 0x8c000502, 0x04000004, 0x59340200, | ||
4519 | 0x8c00050e, 0x04000004, 0x82000540, 0x00000001, | ||
4520 | 0x1c01f000, 0x80000580, 0x0401f7fe, 0x5c000000, | ||
4521 | 0x4c000000, 0x4803c857, 0x4947c857, 0x4d2c0000, | ||
4522 | 0x4d300000, 0x83440480, 0x00000800, 0x04021024, | ||
4523 | 0x83441400, 0x0010ac00, 0x50080000, 0x80026d40, | ||
4524 | 0x0400001b, 0x45781000, 0x5934000d, 0x80025d40, | ||
4525 | 0x02020800, 0x001007fd, 0x59366011, 0x813261c0, | ||
4526 | 0x0400000e, 0x4c640000, 0x5930c800, 0x59325808, | ||
4527 | 0x0201f800, 0x00109037, 0x02020800, 0x001007fd, | ||
4528 | 0x0201f800, 0x0002077d, 0x82666540, 0x00000000, | ||
4529 | 0x040207f6, 0x5c00c800, 0x0201f800, 0x00104c62, | ||
4530 | 0x41365800, 0x0201f800, 0x001007f5, 0x80000580, | ||
4531 | 0x5c026000, 0x5c025800, 0x1c01f000, 0x82000540, | ||
4532 | 0x00000001, 0x0401f7fb, 0x4937c857, 0x4c580000, | ||
4533 | 0x59cc0001, 0x82000500, 0x00ffffff, 0x48026802, | ||
4534 | 0x497a6c01, 0x497a6a01, 0x59340200, 0x84000502, | ||
4535 | 0x48026a00, 0x0201f800, 0x0010513b, 0x04020017, | ||
4536 | 0x59340403, 0x82000580, 0x000007fe, 0x04000005, | ||
4537 | 0x59a80026, 0x8c00050a, 0x04020010, 0x0401f008, | ||
4538 | 0x59cc0408, 0x8c000518, 0x0400000c, 0x59cc0009, | ||
4539 | 0x48035035, 0x59cc000a, 0x48035036, 0x59cc0207, | ||
4540 | 0x80000540, 0x04020003, 0x42000000, 0x00000001, | ||
4541 | 0x48038893, 0x4803501e, 0x59cc0a09, 0x82040d00, | ||
4542 | 0x00000010, 0x59cc0408, 0x82000500, 0x00000020, | ||
4543 | 0x04000002, 0x84040d40, 0x5934000a, 0x82000500, | ||
4544 | 0xffffffee, 0x80040540, 0x4802680a, 0x83cca400, | ||
4545 | 0x0000000b, 0x8334ac00, 0x00000006, 0x4200b000, | ||
4546 | 0x00000002, 0x0201f800, 0x0010ab17, 0x83cca400, | ||
4547 | 0x0000000d, 0x8334ac00, 0x00000008, 0x4200b000, | ||
4548 | 0x00000002, 0x0201f800, 0x0010ab17, 0x59cc0a18, | ||
4549 | 0x82040480, 0x00000800, 0x0402100c, 0x82040480, | ||
4550 | 0x00000400, 0x04001004, 0x42000800, 0x00000400, | ||
4551 | 0x0401f006, 0x82040480, 0x00000200, 0x04001003, | ||
4552 | 0x42000800, 0x00000200, 0x48066a04, 0x59340403, | ||
4553 | 0x82000580, 0x000007fe, 0x04020003, 0x59cc0a08, | ||
4554 | 0x48066a04, 0x42000800, 0x00000004, 0x59cc1207, | ||
4555 | 0x800811c0, 0x04000005, 0x82080480, 0x00000004, | ||
4556 | 0x04021002, 0x40080800, 0x48066c04, 0x5c00b000, | ||
4557 | 0x1c01f000, 0x4937c857, 0x59a80026, 0x8c000508, | ||
4558 | 0x04000004, 0x84000556, 0x4803c857, 0x48035026, | ||
4559 | 0x59cc0207, 0x4803c857, 0x48026a05, 0x59cc020a, | ||
4560 | 0x4803c857, 0x48026c05, 0x59341200, 0x599c0818, | ||
4561 | 0x5934180a, 0x4807c857, 0x480bc857, 0x480fc857, | ||
4562 | 0x59cc2006, 0x82102500, 0xff000000, 0x82102580, | ||
4563 | 0x02000000, 0x04000007, 0x8c00050e, 0x04000009, | ||
4564 | 0x8c0c1d14, 0x04000003, 0x8c0c1d0e, 0x04000005, | ||
4565 | 0x8c040d18, 0x04000003, 0x8408154a, 0x0401f002, | ||
4566 | 0x8408150a, 0x8c000510, 0x04000009, 0x8c0c1d14, | ||
4567 | 0x04000003, 0x8c0c1d10, 0x04000005, 0x8c040d18, | ||
4568 | 0x04000003, 0x8408154e, 0x0401f002, 0x8408150e, | ||
4569 | 0x8c000512, 0x04000009, 0x8c0c1d14, 0x04000003, | ||
4570 | 0x8c0c1d12, 0x04000005, 0x8c040d18, 0x04000003, | ||
4571 | 0x8408155c, 0x0401f002, 0x8408151c, 0x480a6a00, | ||
4572 | 0x1c01f000, 0x4803c856, 0x4c5c0000, 0x4d2c0000, | ||
4573 | 0x4c580000, 0x5934000d, 0x80025d40, 0x04000029, | ||
4574 | 0x592c0003, 0x82000480, 0x00000008, 0x0400100b, | ||
4575 | 0x412cb800, 0x592c0001, 0x80025d40, 0x040207f9, | ||
4576 | 0x0201f800, 0x001007e4, 0x04000037, 0x492fc857, | ||
4577 | 0x492cb801, 0x0401f020, 0x832c0c00, 0x00000004, | ||
4578 | 0x4200b000, 0x00000008, 0x50040000, 0x82000580, | ||
4579 | 0xffffffff, 0x04020006, 0x80041000, 0x50080000, | ||
4580 | 0x82000580, 0xffffffff, 0x04000007, 0x82040c00, | ||
4581 | 0x00000002, 0x8058b040, 0x040207f4, 0x0201f800, | ||
4582 | 0x001005d8, 0x45480800, 0x454c1000, 0x592c1803, | ||
4583 | 0x800c1800, 0x480e5803, 0x480fc857, 0x0401f014, | ||
4584 | 0x0201f800, 0x001007e4, 0x04000017, 0x492fc857, | ||
4585 | 0x492e680d, 0x497a5802, 0x4a025803, 0x00000001, | ||
4586 | 0x494a5804, 0x494e5805, 0x832c0c00, 0x00000006, | ||
4587 | 0x4200b000, 0x0000000e, 0x46000800, 0xffffffff, | ||
4588 | 0x80040800, 0x8058b040, 0x040207fc, 0x82000540, | ||
4589 | 0x00000001, 0x5c00b000, 0x5c025800, 0x5c00b800, | ||
4590 | 0x1c01f000, 0x80000580, 0x0401f7fb, 0x4803c856, | ||
4591 | 0x4d3c0000, 0x4d2c0000, 0x5934000d, 0x80025d40, | ||
4592 | 0x0400001f, 0x592c0002, 0x80000540, 0x0402001f, | ||
4593 | 0x412e7800, 0x0401f8ce, 0x0402001c, 0x46000800, | ||
4594 | 0xffffffff, 0x46001000, 0xffffffff, 0x4813c857, | ||
4595 | 0x480fc857, 0x580c0003, 0x82000c80, 0x00000002, | ||
4596 | 0x04021014, 0x480fc857, 0x400c0000, 0x812c0580, | ||
4597 | 0x04020004, 0x580c0001, 0x4802680d, 0x0401f003, | ||
4598 | 0x580c0001, 0x48002001, 0x400e5800, 0x0201f800, | ||
4599 | 0x001007f4, 0x82000540, 0x00000001, 0x5c025800, | ||
4600 | 0x5c027800, 0x1c01f000, 0x80000580, 0x0401f7fc, | ||
4601 | 0x80000040, 0x48001803, 0x4803c857, 0x0401f7f6, | ||
4602 | 0x0201f800, 0x00020086, 0x59300007, 0x8400054e, | ||
4603 | 0x48026007, 0x592c1a04, 0x820c1d00, 0x000000ff, | ||
4604 | 0x820c0580, 0x00000048, 0x04000013, 0x0201f000, | ||
4605 | 0x0002028e, 0x8c000500, 0x02020800, 0x000200e5, | ||
4606 | 0x4a026203, 0x00000002, 0x592c1a04, 0x820c1d00, | ||
4607 | 0x000000ff, 0x820c0580, 0x00000018, 0x02000000, | ||
4608 | 0x0002028e, 0x820c0580, 0x00000048, 0x02020000, | ||
4609 | 0x0002028e, 0x42000800, 0x80000804, 0x0201f800, | ||
4610 | 0x00106721, 0x0201f000, 0x00020297, 0x4a025a06, | ||
4611 | 0x00000008, 0x0201f000, 0x000202da, 0x4a025a06, | ||
4612 | 0x00000029, 0x0201f000, 0x000202da, 0x4a025a06, | ||
4613 | 0x0000002a, 0x0201f000, 0x000202da, 0x4a025a06, | ||
4614 | 0x00000028, 0x0201f000, 0x000202da, 0x4943c857, | ||
4615 | 0x4d440000, 0x4d340000, 0x4d2c0000, 0x4c580000, | ||
4616 | 0x4200b000, 0x000007f0, 0x417a8800, 0x0201f800, | ||
4617 | 0x00020245, 0x0402000d, 0x8d3e7d14, 0x04000005, | ||
4618 | 0x59340212, 0x82000500, 0x0000ff00, 0x04000007, | ||
4619 | 0x8d3e7d06, 0x04000004, 0x59340200, 0x8c00050e, | ||
4620 | 0x04020002, 0x0401f813, 0x81468800, 0x8058b040, | ||
4621 | 0x040207ef, 0x83440480, 0x00000800, 0x04021008, | ||
4622 | 0x8d3e7d02, 0x04000006, 0x42028800, 0x000007f0, | ||
4623 | 0x4200b000, 0x00000010, 0x0401f7e5, 0x5c00b000, | ||
4624 | 0x5c025800, 0x5c026800, 0x5c028800, 0x1c01f000, | ||
4625 | 0x4d2c0000, 0x41783000, 0x5936580f, 0x812e59c0, | ||
4626 | 0x04000029, 0x592c0204, 0x82000500, 0x000000ff, | ||
4627 | 0x82000580, 0x00000012, 0x04000020, 0x8d3e7d00, | ||
4628 | 0x04000003, 0x0401f83c, 0x0402001c, 0x592c2000, | ||
4629 | 0x497a5800, 0x801831c0, 0x04020009, 0x59340010, | ||
4630 | 0x812c0580, 0x04020004, 0x497a680f, 0x497a6810, | ||
4631 | 0x0401f008, 0x4812680f, 0x0401f006, 0x48103000, | ||
4632 | 0x59340010, 0x812c0580, 0x04020002, 0x481a6810, | ||
4633 | 0x4a025a04, 0x00000103, 0x49425a06, 0x497a5c09, | ||
4634 | 0x0201f800, 0x001091c6, 0x0201f800, 0x000202da, | ||
4635 | 0x40125800, 0x0401f7da, 0x412c3000, 0x592e5800, | ||
4636 | 0x0401f7d7, 0x5c025800, 0x1c01f000, 0x4803c856, | ||
4637 | 0x41781800, 0x5934000f, 0x80025d40, 0x04000010, | ||
4638 | 0x592c0005, 0x80200580, 0x592c0000, 0x04000003, | ||
4639 | 0x412c1800, 0x0401f7f9, 0x497a5800, 0x800c19c0, | ||
4640 | 0x04000008, 0x48001800, 0x80000540, 0x04020004, | ||
4641 | 0x480e6810, 0x82000540, 0x00000001, 0x1c01f000, | ||
4642 | 0x4802680f, 0x80000540, 0x040207fd, 0x497a6810, | ||
4643 | 0x0401f7f9, 0x592c0008, 0x81480580, 0x04020003, | ||
4644 | 0x592c0009, 0x814c0580, 0x1c01f000, 0x4803c856, | ||
4645 | 0x4c580000, 0x413c1800, 0x400c2000, 0x593c0002, | ||
4646 | 0x80000540, 0x04020018, 0x4200b000, 0x00000008, | ||
4647 | 0x820c0c00, 0x00000004, 0x50040000, 0x81480580, | ||
4648 | 0x04020005, 0x80041000, 0x50080000, 0x814c0580, | ||
4649 | 0x0400000d, 0x82040c00, 0x00000002, 0x8058b040, | ||
4650 | 0x040207f6, 0x400c2000, 0x580c0001, 0x80001d40, | ||
4651 | 0x040207ee, 0x82000540, 0x00000001, 0x5c00b000, | ||
4652 | 0x1c01f000, 0x80000580, 0x0401f7fd, 0x4937c857, | ||
4653 | 0x4c580000, 0x4d2c0000, 0x5934000d, 0x80025d40, | ||
4654 | 0x04020016, 0x0201f800, 0x001007e4, 0x04000010, | ||
4655 | 0x492e680d, 0x4a025802, 0x00000001, 0x497a5803, | ||
4656 | 0x832c0c00, 0x00000004, 0x4200b000, 0x00000010, | ||
4657 | 0x46000800, 0xffffffff, 0x80040800, 0x8058b040, | ||
4658 | 0x040207fc, 0x82000540, 0x00000001, 0x5c025800, | ||
4659 | 0x5c00b000, 0x1c01f000, 0x4d2c0000, 0x592e5801, | ||
4660 | 0x0201f800, 0x001007fd, 0x5c025800, 0x0401f7ea, | ||
4661 | 0x4d2c0000, 0x5936580d, 0x812e59c0, 0x04000007, | ||
4662 | 0x4937c857, 0x497a680d, 0x0201f800, 0x001007fd, | ||
4663 | 0x82000540, 0x00000001, 0x5c025800, 0x1c01f000, | ||
4664 | 0x59340405, 0x4937c857, 0x4803c857, 0x8c000508, | ||
4665 | 0x1c01f000, 0x4803c856, 0x0201f800, 0x0010513b, | ||
4666 | 0x04000011, 0x59a80815, 0x8c040d04, 0x0402000e, | ||
4667 | 0x59a80826, 0x8c040d06, 0x0400000b, 0x83ac0400, | ||
4668 | 0x000007fe, 0x50000000, 0x80026d40, 0x04000006, | ||
4669 | 0x0401f9a7, 0x04020004, 0x59340200, 0x8400055a, | ||
4670 | 0x48026a00, 0x599c0017, 0x8c000508, 0x04000015, | ||
4671 | 0x4200b000, 0x000007f0, 0x417a8800, 0x0201f800, | ||
4672 | 0x00020245, 0x0402000c, 0x0401f999, 0x0402000a, | ||
4673 | 0x59a80010, 0x59340802, 0x80040580, 0x82000500, | ||
4674 | 0x00ffff00, 0x04020004, 0x59340200, 0x8400055a, | ||
4675 | 0x48026a00, 0x81468800, 0x8058b040, 0x040207f0, | ||
4676 | 0x0401f884, 0x04000003, 0x59a80836, 0x0401f006, | ||
4677 | 0x599c0017, 0x8c000508, 0x04000007, 0x42000800, | ||
4678 | 0x000007d0, 0x42001000, 0x00104876, 0x0201f800, | ||
4679 | 0x0010606e, 0x1c01f000, 0x4803c856, 0x4d340000, | ||
4680 | 0x4d440000, 0x4d3c0000, 0x4c580000, 0x42001000, | ||
4681 | 0x00104876, 0x0201f800, 0x00105f90, 0x59a80826, | ||
4682 | 0x8c040d06, 0x04000015, 0x0401f86a, 0x04000013, | ||
4683 | 0x83ae6c00, 0x000007fe, 0x51366800, 0x59340200, | ||
4684 | 0x8400051a, 0x48026a00, 0x599c0017, 0x8c000508, | ||
4685 | 0x04000007, 0x42000800, 0x000007d0, 0x42001000, | ||
4686 | 0x00104876, 0x0201f800, 0x0010606e, 0x0201f800, | ||
4687 | 0x00101e45, 0x0401f027, 0x4200b000, 0x000007f0, | ||
4688 | 0x80028d80, 0x0201f800, 0x00020245, 0x0402001e, | ||
4689 | 0x59340200, 0x8c00051a, 0x0400001b, 0x59368c03, | ||
4690 | 0x417a7800, 0x42028000, 0x00000029, 0x41783000, | ||
4691 | 0x0201f800, 0x0010a446, 0x59340200, 0x84000558, | ||
4692 | 0x8400051a, 0x48026a00, 0x4937c857, 0x4a026c00, | ||
4693 | 0x00000707, 0x42028000, 0x00000029, 0x0201f800, | ||
4694 | 0x00106ab4, 0x417a7800, 0x0201f800, 0x001067fd, | ||
4695 | 0x80000d80, 0x0201f800, 0x0010a2ff, 0x0201f800, | ||
4696 | 0x00106c4b, 0x81468800, 0x8058b040, 0x040207de, | ||
4697 | 0x5c00b000, 0x5c027800, 0x5c028800, 0x5c026800, | ||
4698 | 0x1c01f000, 0x4933c857, 0x59303809, 0x581c0200, | ||
4699 | 0x8400051a, 0x48003a00, 0x1c01f000, 0x4803c856, | ||
4700 | 0x42026800, 0x0010b524, 0x497a680e, 0x42028800, | ||
4701 | 0x000007ff, 0x0201f800, 0x001042b4, 0x4937c857, | ||
4702 | 0x4a026c00, 0x00000606, 0x4a026802, 0x00ffffff, | ||
4703 | 0x4a026a04, 0x00000200, 0x4a026c04, 0x00000002, | ||
4704 | 0x1c01f000, 0x59300009, 0x50000000, 0x4933c857, | ||
4705 | 0x4803c857, 0x8c00050e, 0x1c01f000, 0x59300009, | ||
4706 | 0x50000000, 0x8c00050a, 0x1c01f000, 0x4933c856, | ||
4707 | 0x0401f90f, 0x04000006, 0x59340400, 0x82000d00, | ||
4708 | 0x000000ff, 0x82041580, 0x00000005, 0x1c01f000, | ||
4709 | 0x4d340000, 0x83ac0400, 0x000007fe, 0x50000000, | ||
4710 | 0x80026d40, 0x04000003, 0x59340200, 0x8c00051a, | ||
4711 | 0x5c026800, 0x1c01f000, 0x4937c857, 0x493fc857, | ||
4712 | 0x59340403, 0x81ac0400, 0x50000000, 0x81340580, | ||
4713 | 0x02020800, 0x001005d8, 0x59341200, 0x813e79c0, | ||
4714 | 0x04000003, 0x8408155e, 0x0401f002, 0x8408151e, | ||
4715 | 0x480a6a00, 0x1c01f000, 0x4937c857, 0x0201f800, | ||
4716 | 0x0010210a, 0x04000006, 0x59a80835, 0x42001000, | ||
4717 | 0x00104910, 0x0201f800, 0x0010606e, 0x1c01f000, | ||
4718 | 0x4937c857, 0x42001000, 0x00104910, 0x0201f800, | ||
4719 | 0x00105f90, 0x59a81026, 0x84081512, 0x480b5026, | ||
4720 | 0x1c01f000, 0x4c380000, 0x4c340000, 0x4c240000, | ||
4721 | 0x4c600000, 0x4008c000, 0x83440480, 0x00000800, | ||
4722 | 0x04021045, 0x80002d80, 0x41442000, 0x83447400, | ||
4723 | 0x0010ac00, 0x4200b000, 0x000007f0, 0x83444c80, | ||
4724 | 0x000007f0, 0x04001003, 0x4200b000, 0x00000010, | ||
4725 | 0x50380000, 0x80000540, 0x0402001e, 0x41440000, | ||
4726 | 0x80100580, 0x04020043, 0x40102800, 0x82104c80, | ||
4727 | 0x000007f0, 0x04001015, 0x82104d80, 0x000007fc, | ||
4728 | 0x04020005, 0x82604d80, 0x00fffffc, 0x0402002a, | ||
4729 | 0x0401f00e, 0x82104d80, 0x000007fd, 0x04020005, | ||
4730 | 0x82604d80, 0x00fffffd, 0x04020023, 0x0401f007, | ||
4731 | 0x82104d80, 0x000007ff, 0x0402001f, 0x82604d80, | ||
4732 | 0x00ffffff, 0x0402001c, 0x84142d5e, 0x0401f029, | ||
4733 | 0x40006800, 0x58343002, 0x82183500, 0x00ffffff, | ||
4734 | 0x40180000, 0x80600580, 0x04020019, 0x40100000, | ||
4735 | 0x81440580, 0x0402000a, 0x40366800, 0x8c204508, | ||
4736 | 0x04000053, 0x0401ff8a, 0x04020051, 0x4947c857, | ||
4737 | 0x42000000, 0x0000001d, 0x0401f04e, 0x4947c857, | ||
4738 | 0x480bc857, 0x4823c857, 0x42000000, 0x0000001a, | ||
4739 | 0x0401f048, 0x4947c857, 0x4863c857, 0x4813c857, | ||
4740 | 0x42000000, 0x00000019, 0x0401f042, 0x40100000, | ||
4741 | 0x81440580, 0x04020007, 0x58343002, 0x4947c857, | ||
4742 | 0x481bc857, 0x42000000, 0x0000001b, 0x0401f039, | ||
4743 | 0x80102000, 0x80387000, 0x83444c80, 0x000007f0, | ||
4744 | 0x04001009, 0x82104d80, 0x00000800, 0x0402000c, | ||
4745 | 0x42002000, 0x000007f0, 0x42007000, 0x0010b3f0, | ||
4746 | 0x0401f007, 0x82104d80, 0x000007f0, 0x04020004, | ||
4747 | 0x41782000, 0x42007000, 0x0010ac00, 0x8058b040, | ||
4748 | 0x040207a4, 0x801429c0, 0x04020007, 0x0201f800, | ||
4749 | 0x001005d8, 0x4947c857, 0x42000000, 0x0000000a, | ||
4750 | 0x0401f01c, 0x4d2c0000, 0x4c180000, 0x40603000, | ||
4751 | 0x0401fc12, 0x4947c857, 0x4937c857, 0x5c003000, | ||
4752 | 0x5c025800, 0x040207f4, 0x497a6a12, 0x59a80026, | ||
4753 | 0x8c00050a, 0x0402000d, 0x82600500, 0x00ffff00, | ||
4754 | 0x04000006, 0x59a84810, 0x82244d00, 0x00ffff00, | ||
4755 | 0x80240580, 0x04020005, 0x82600500, 0x000000ff, | ||
4756 | 0x800000d0, 0x48026a12, 0x48626802, 0x80000580, | ||
4757 | 0x80000540, 0x5c00c000, 0x5c004800, 0x5c006800, | ||
4758 | 0x5c007000, 0x1c01f000, 0x5934000f, 0x5934140b, | ||
4759 | 0x80081040, 0x04001002, 0x480a6c0b, 0x80000540, | ||
4760 | 0x02020800, 0x00020253, 0x1c01f000, 0x4803c857, | ||
4761 | 0x4947c857, 0x4c300000, 0x82006500, 0x00000030, | ||
4762 | 0x04000006, 0x4c000000, 0x0201f800, 0x0010942a, | ||
4763 | 0x5c000000, 0x0402000b, 0x8c00050e, 0x04000006, | ||
4764 | 0x0201f800, 0x00020245, 0x04020006, 0x4937c857, | ||
4765 | 0x0401fc2f, 0x80000580, 0x5c006000, 0x1c01f000, | ||
4766 | 0x82000540, 0x00000001, 0x0401f7fc, 0x4803c857, | ||
4767 | 0x4c580000, 0x4d440000, 0x40001000, 0x80000d80, | ||
4768 | 0x4200b000, 0x000007f0, 0x4c040000, 0x40068800, | ||
4769 | 0x4c080000, 0x40080000, 0x0401ffdd, 0x5c001000, | ||
4770 | 0x5c000800, 0x80040800, 0x8058b040, 0x040207f7, | ||
4771 | 0x5c028800, 0x5c00b000, 0x1c01f000, 0x4c5c0000, | ||
4772 | 0x59340400, 0x8200bd80, 0x00000606, 0x5c00b800, | ||
4773 | 0x1c01f000, 0x4c5c0000, 0x59340400, 0x8200bd80, | ||
4774 | 0x00000404, 0x5c00b800, 0x1c01f000, 0x4c5c0000, | ||
4775 | 0x59340400, 0x8200bd80, 0x00000404, 0x04000003, | ||
4776 | 0x8200bd80, 0x00000606, 0x5c00b800, 0x1c01f000, | ||
4777 | 0x4c5c0000, 0x4c600000, 0x59340400, 0x8200bd00, | ||
4778 | 0x0000ff00, 0x825cc580, 0x00000400, 0x04000003, | ||
4779 | 0x825cc580, 0x00000600, 0x5c00c000, 0x5c00b800, | ||
4780 | 0x1c01f000, 0x4c5c0000, 0x59340400, 0x82000500, | ||
4781 | 0x000000ff, 0x8200bd80, 0x00000003, 0x04000003, | ||
4782 | 0x8200bd80, 0x00000005, 0x5c00b800, 0x1c01f000, | ||
4783 | 0x4c5c0000, 0x59340400, 0x82000500, 0x0000ff00, | ||
4784 | 0x8400b9c0, 0x805c0580, 0x4937c857, 0x4803c857, | ||
4785 | 0x48026c00, 0x5c00b800, 0x1c01f000, 0x4c040000, | ||
4786 | 0x4c080000, 0x592c0207, 0x8c00050c, 0x0400000f, | ||
4787 | 0x592e8c06, 0x82000500, 0x00000080, 0x84000548, | ||
4788 | 0x4d3c0000, 0x42027800, 0x00001000, 0x0401ff90, | ||
4789 | 0x5c027800, 0x82000540, 0x00000001, 0x5c001000, | ||
4790 | 0x5c000800, 0x1c01f000, 0x80000580, 0x0401f7fc, | ||
4791 | 0x592c040b, 0x82000500, 0x0000e000, 0x82000580, | ||
4792 | 0x00006000, 0x04000019, 0x836c0580, 0x00000003, | ||
4793 | 0x04000016, 0x836c0580, 0x00000002, 0x040200ff, | ||
4794 | 0x59a80026, 0x82000d00, 0x00000038, 0x04020005, | ||
4795 | 0x59a80832, 0x800409c0, 0x0400000c, 0x0401f0f7, | ||
4796 | 0x82000d00, 0x00000003, 0x82040d80, 0x00000003, | ||
4797 | 0x040200f2, 0x82000d00, 0x00000028, 0x04020003, | ||
4798 | 0x8c00050c, 0x040000ed, 0x592c100a, 0x82080500, | ||
4799 | 0xff000000, 0x040200ce, 0x59a80010, 0x80080580, | ||
4800 | 0x040000c8, 0x592c0c0b, 0x82040d00, 0x0000e000, | ||
4801 | 0x82040480, 0x00008000, 0x040210c8, 0x592e8c06, | ||
4802 | 0x83440480, 0x00000800, 0x04001007, 0x83440580, | ||
4803 | 0x0000ffff, 0x040200af, 0x800409c0, 0x040200f7, | ||
4804 | 0x0401f0ac, 0x800409c0, 0x040200f4, 0x41784000, | ||
4805 | 0x0401fead, 0x040200db, 0x42027000, 0x00000053, | ||
4806 | 0x592c2409, 0x82100500, 0xffffff00, 0x040200aa, | ||
4807 | 0x4813c857, 0x592c000c, 0x800001c0, 0x04000083, | ||
4808 | 0x82100580, 0x00000004, 0x040000a0, 0x82100580, | ||
4809 | 0x00000051, 0x0400009d, 0x82100580, 0x00000003, | ||
4810 | 0x04000016, 0x82100580, 0x00000020, 0x0400004b, | ||
4811 | 0x82100580, 0x00000024, 0x04000042, 0x82100580, | ||
4812 | 0x00000021, 0x04000042, 0x82100580, 0x00000050, | ||
4813 | 0x04000037, 0x82100580, 0x00000052, 0x04000031, | ||
4814 | 0x82100580, 0x00000005, 0x0402006b, 0x42027000, | ||
4815 | 0x00000001, 0x0401f01b, 0x42027000, 0x00000002, | ||
4816 | 0x59a80005, 0x8c000514, 0x04000016, 0x0401ff4c, | ||
4817 | 0x04000014, 0x59340212, 0x82000500, 0x0000ff00, | ||
4818 | 0x42001000, 0x00000010, 0x0402000c, 0x59a80026, | ||
4819 | 0x8c000506, 0x0402006f, 0x42001000, 0x00000008, | ||
4820 | 0x59340002, 0x82000500, 0x00ff0000, 0x82000580, | ||
4821 | 0x00ff0000, 0x04000003, 0x0401f9bf, 0x04020065, | ||
4822 | 0x0201f800, 0x0002075a, 0x0400007e, 0x4a026406, | ||
4823 | 0x00000010, 0x49366009, 0x42000800, 0x00000003, | ||
4824 | 0x83380580, 0x00000002, 0x04000003, 0x42000800, | ||
4825 | 0x0000000b, 0x0201f800, 0x00104571, 0x0401f044, | ||
4826 | 0x42027000, 0x00000000, 0x0401f003, 0x42027000, | ||
4827 | 0x00000004, 0x0401ff37, 0x04020071, 0x0401f036, | ||
4828 | 0x42027000, 0x00000033, 0x0401f006, 0x42027000, | ||
4829 | 0x00000005, 0x0401f003, 0x42027000, 0x00000003, | ||
4830 | 0x0401ff23, 0x04020066, 0x59a80005, 0x8c000514, | ||
4831 | 0x04000016, 0x0401ff12, 0x04000014, 0x59340212, | ||
4832 | 0x82000500, 0x0000ff00, 0x42001000, 0x00000010, | ||
4833 | 0x0402000c, 0x59a80026, 0x8c000506, 0x04020035, | ||
4834 | 0x42001000, 0x00000008, 0x59340002, 0x82000500, | ||
4835 | 0x00ff0000, 0x82000580, 0x00ff0000, 0x04000003, | ||
4836 | 0x0401f985, 0x0402002b, 0x0201f800, 0x0002075a, | ||
4837 | 0x04000044, 0x4a026406, 0x00000010, 0x49366009, | ||
4838 | 0x42000800, 0x00000005, 0x83380580, 0x00000003, | ||
4839 | 0x04000003, 0x42000800, 0x00000009, 0x0201f800, | ||
4840 | 0x00104571, 0x0401f00a, 0x82102580, 0x00000011, | ||
4841 | 0x0402002d, 0x0201f800, 0x0002075a, 0x04000031, | ||
4842 | 0x4a026406, 0x00000010, 0x49366009, 0x492e6008, | ||
4843 | 0x49325808, 0x813669c0, 0x04000007, 0x592c0c0b, | ||
4844 | 0x8c040d18, 0x04000004, 0x59340200, 0x84000514, | ||
4845 | 0x48026a00, 0x0201f800, 0x000207a1, 0x80000580, | ||
4846 | 0x1c01f000, 0x82000540, 0x00000001, 0x0401f7fd, | ||
4847 | 0x42001000, 0x0000000a, 0x0401f015, 0x42001000, | ||
4848 | 0x00000010, 0x0401f012, 0x42001000, 0x00000016, | ||
4849 | 0x0401f00f, 0x42001000, 0x00000017, 0x0401f00c, | ||
4850 | 0x42001000, 0x00000018, 0x0401f009, 0x42001000, | ||
4851 | 0x0000001b, 0x0401f006, 0x42001000, 0x0000001e, | ||
4852 | 0x0401f003, 0x42001000, 0x00000020, 0x42000800, | ||
4853 | 0x00000019, 0x42028000, 0x00000031, 0x0401f7e2, | ||
4854 | 0x42000800, 0x00000003, 0x0401f003, 0x42000800, | ||
4855 | 0x0000000a, 0x41781000, 0x0401f7f7, 0x42000800, | ||
4856 | 0x00000009, 0x59341400, 0x0401f7f3, 0x42028000, | ||
4857 | 0x00000008, 0x0401f005, 0x42000800, 0x00000007, | ||
4858 | 0x416c1000, 0x0401f7ec, 0x41780800, 0x41781000, | ||
4859 | 0x0401f7cd, 0x42028000, 0x00000000, 0x0401f7fb, | ||
4860 | 0x82004d80, 0x0000001d, 0x02000800, 0x001005d8, | ||
4861 | 0x82004d80, 0x0000001a, 0x04020004, 0x40101000, | ||
4862 | 0x40000800, 0x0401f7dc, 0x82004d80, 0x0000001b, | ||
4863 | 0x04020003, 0x40181000, 0x0401f7fa, 0x82004d80, | ||
4864 | 0x0000001c, 0x040007f7, 0x82004d80, 0x00000019, | ||
4865 | 0x040007b8, 0x0401f7d6, 0x592e6008, 0x0201f800, | ||
4866 | 0x0010941a, 0x040007b6, 0x59300c06, 0x82040580, | ||
4867 | 0x00000011, 0x040207d6, 0x83440580, 0x0000ffff, | ||
4868 | 0x04020005, 0x59326809, 0x813669c0, 0x0400000e, | ||
4869 | 0x0401f7cf, 0x592c100a, 0x82081500, 0x00ffffff, | ||
4870 | 0x41784000, 0x0401fda8, 0x040207d6, 0x59300009, | ||
4871 | 0x800001c0, 0x04000003, 0x81340580, 0x040207c4, | ||
4872 | 0x49366009, 0x592c0c0b, 0x82041500, 0x0000e000, | ||
4873 | 0x82080580, 0x00006000, 0x04000009, 0x59300a03, | ||
4874 | 0x82040580, 0x00000007, 0x040207b9, 0x492e6008, | ||
4875 | 0x42027000, 0x00000054, 0x0401f77f, 0x0201f800, | ||
4876 | 0x0010a8d4, 0x040007bc, 0x0401f7b1, 0x492fc857, | ||
4877 | 0x59a80021, 0x800001c0, 0x04020073, 0x592e6008, | ||
4878 | 0x4933c857, 0x0201f800, 0x0010941a, 0x04000041, | ||
4879 | 0x59301406, 0x82080580, 0x00000005, 0x0402005b, | ||
4880 | 0x59301203, 0x82080580, 0x00000007, 0x04020057, | ||
4881 | 0x592e8c06, 0x83440480, 0x00000800, 0x04021032, | ||
4882 | 0x41784000, 0x592c1009, 0x82081500, 0x00ffffff, | ||
4883 | 0x0401fd75, 0x0402005f, 0x59300009, 0x800001c0, | ||
4884 | 0x04000003, 0x81340580, 0x04020048, 0x4d300000, | ||
4885 | 0x592e6013, 0x4933c857, 0x83300580, 0xffffffff, | ||
4886 | 0x0400000d, 0x0201f800, 0x0010941a, 0x5c026000, | ||
4887 | 0x04000029, 0x591c1406, 0x82080580, 0x00000006, | ||
4888 | 0x04000046, 0x82080580, 0x00000011, 0x04000043, | ||
4889 | 0x0401f002, 0x5c026000, 0x59a80010, 0x592c100a, | ||
4890 | 0x82081500, 0x00ffffff, 0x80081580, 0x04020017, | ||
4891 | 0x592c1009, 0x82081500, 0x00ffffff, 0x80081580, | ||
4892 | 0x0400000f, 0x49366009, 0x492e6008, 0x42027000, | ||
4893 | 0x00000092, 0x0201f800, 0x000207a1, 0x80000580, | ||
4894 | 0x1c01f000, 0x42001000, 0x0000000a, 0x0401f00c, | ||
4895 | 0x42001000, 0x00000010, 0x0401f009, 0x42001000, | ||
4896 | 0x00000014, 0x0401f006, 0x42001000, 0x00000018, | ||
4897 | 0x0401f003, 0x42001000, 0x0000003c, 0x492fc857, | ||
4898 | 0x480bc857, 0x42000800, 0x00000019, 0x42028000, | ||
4899 | 0x00000031, 0x82000540, 0x00000001, 0x0401f7e9, | ||
4900 | 0x492fc857, 0x4803c857, 0x480bc857, 0x40000800, | ||
4901 | 0x0401f7f7, 0x492fc857, 0x42000800, 0x0000000a, | ||
4902 | 0x41781000, 0x0401f7f2, 0x4933c857, 0x59300406, | ||
4903 | 0x4803c857, 0x59300203, 0x4803c857, 0x59300009, | ||
4904 | 0x4803c857, 0x42028000, 0x00000008, 0x41780800, | ||
4905 | 0x41781000, 0x0401f7e8, 0x42000800, 0x0000001e, | ||
4906 | 0x0401f7f0, 0x42000800, 0x00000001, 0x0401f7ed, | ||
4907 | 0x82004d80, 0x0000001d, 0x02000800, 0x001005d8, | ||
4908 | 0x82004d80, 0x0000001a, 0x04020003, 0x40101000, | ||
4909 | 0x0401f7dc, 0x82004d80, 0x0000001b, 0x04020003, | ||
4910 | 0x40181000, 0x0401f7d7, 0x82004d80, 0x0000001c, | ||
4911 | 0x040007d4, 0x82004d80, 0x00000019, 0x040007d1, | ||
4912 | 0x0401f7d5, 0x59302009, 0x801021c0, 0x04000035, | ||
4913 | 0x58101400, 0x82081d00, 0x000000ff, 0x59300c03, | ||
4914 | 0x82040580, 0x00000008, 0x04000022, 0x82040580, | ||
4915 | 0x0000000a, 0x04000017, 0x82040580, 0x0000000c, | ||
4916 | 0x04000010, 0x82040580, 0x00000002, 0x04000019, | ||
4917 | 0x82040580, 0x00000001, 0x04000012, 0x82040580, | ||
4918 | 0x00000003, 0x0400000b, 0x82040580, 0x00000005, | ||
4919 | 0x04000004, 0x82040580, 0x00000033, 0x04020019, | ||
4920 | 0x820c0580, 0x00000009, 0x0400000d, 0x0401f015, | ||
4921 | 0x820c0580, 0x00000005, 0x04000009, 0x0401f011, | ||
4922 | 0x820c0580, 0x0000000b, 0x04000005, 0x0401f00d, | ||
4923 | 0x820c0580, 0x00000003, 0x0402000a, 0x82081d00, | ||
4924 | 0xffffff00, 0x840c01c0, 0x800c0540, 0x4813c857, | ||
4925 | 0x480bc857, 0x4807c857, 0x4803c857, 0x48002400, | ||
4926 | 0x1c01f000, 0x599c0017, 0x8c00050a, 0x04000003, | ||
4927 | 0x80000580, 0x1c01f000, 0x59a80026, 0x82000500, | ||
4928 | 0x00000028, 0x04000008, 0x42028800, 0x000007fd, | ||
4929 | 0x0201f800, 0x00020245, 0x04020003, 0x5934000a, | ||
4930 | 0x8c000504, 0x1c01f000, 0x4d300000, 0x5934000e, | ||
4931 | 0x80026540, 0x04000006, 0x0201f800, 0x001062d5, | ||
4932 | 0x02000800, 0x001064ad, 0x497a680e, 0x5c026000, | ||
4933 | 0x1c01f000, 0x4d440000, 0x4d340000, 0x80000580, | ||
4934 | 0x40001800, 0x40028800, 0x82080580, 0x00000008, | ||
4935 | 0x04020003, 0x42001800, 0x00000001, 0x0201f800, | ||
4936 | 0x00020245, 0x0402000a, 0x0401fd6d, 0x04020008, | ||
4937 | 0x800c19c0, 0x04000004, 0x59340405, 0x8c000508, | ||
4938 | 0x04000003, 0x80081040, 0x04000009, 0x81468800, | ||
4939 | 0x83440480, 0x00000800, 0x040017f1, 0x80000580, | ||
4940 | 0x5c026800, 0x5c028800, 0x1c01f000, 0x82000540, | ||
4941 | 0x00000001, 0x5c026800, 0x5c028800, 0x1c01f000, | ||
4942 | 0x4a033020, 0x00000000, 0x497b3026, 0x497b3027, | ||
4943 | 0x497b3028, 0x497b3029, 0x497b302b, 0x497b3021, | ||
4944 | 0x4a03b104, 0x60000001, 0x1c01f000, 0x4803c856, | ||
4945 | 0x599c0018, 0x497b3024, 0x497b3025, 0x82000500, | ||
4946 | 0x0000000f, 0x82000d80, 0x00000005, 0x04000006, | ||
4947 | 0x82000580, 0x00000006, 0x0400000d, 0x497b3022, | ||
4948 | 0x1c01f000, 0x4a033022, 0x00000005, 0x599c0216, | ||
4949 | 0x82000500, 0x0000ffff, 0x04020003, 0x42000000, | ||
4950 | 0x00000002, 0x48033023, 0x1c01f000, 0x4a033022, | ||
4951 | 0x00000006, 0x0401f7f6, 0x0401ffe5, 0x4a03c826, | ||
4952 | 0x00000004, 0x599c0209, 0x80000540, 0x0400001f, | ||
4953 | 0x599c0207, 0x80000540, 0x04000007, 0x800000cc, | ||
4954 | 0x599c080d, 0x80040400, 0x4803b100, 0x497bb102, | ||
4955 | 0x59d80101, 0x599c000d, 0x4803b100, 0x599c000e, | ||
4956 | 0x4803b101, 0x599c0207, 0x80000540, 0x04020002, | ||
4957 | 0x497bb102, 0x599c0a09, 0x82040540, 0x00400000, | ||
4958 | 0x59980822, 0x4803b103, 0x4a03b109, 0x00000004, | ||
4959 | 0x4a03b104, 0x10000001, 0x800409c0, 0x04020004, | ||
4960 | 0x4a033020, 0x00000001, 0x1c01f000, 0x4a033020, | ||
4961 | 0x00000002, 0x0401f7fd, 0x59980022, 0x4803c856, | ||
4962 | 0x80000540, 0x02000000, 0x000202de, 0x0401f017, | ||
4963 | 0x42034000, 0x0010b4a4, 0x59a1d81e, 0x80edd9c0, | ||
4964 | 0x02000800, 0x001005d8, 0x58ec0009, 0x48efc857, | ||
4965 | 0x49a3c857, 0x492fc857, 0x4803c857, 0x800001c0, | ||
4966 | 0x08020000, 0x0201f800, 0x001005d8, 0x5931d821, | ||
4967 | 0x58ef400b, 0x58ec0009, 0x800001c0, 0x08020000, | ||
4968 | 0x0201f800, 0x001005d8, 0x497a5800, 0x59980026, | ||
4969 | 0x80000540, 0x0402008c, 0x59d80105, 0x82000d00, | ||
4970 | 0x00018780, 0x040201da, 0x80000106, 0x82000500, | ||
4971 | 0x00000003, 0x0c01f001, 0x00104d0a, 0x00104d89, | ||
4972 | 0x00104d22, 0x00104d50, 0x592c0001, 0x492fc857, | ||
4973 | 0x492fb107, 0x80000d40, 0x04020007, 0x59940019, | ||
4974 | 0x80000540, 0x04022003, 0x59980023, 0x48032819, | ||
4975 | 0x1c01f000, 0x497a5801, 0x40065800, 0x592c0001, | ||
4976 | 0x496a5800, 0x815eb800, 0x412ed000, 0x80000d40, | ||
4977 | 0x040207f9, 0x59c80000, 0x82000540, 0x00001200, | ||
4978 | 0x48039000, 0x0401f7ee, 0x492fc857, 0x492fb107, | ||
4979 | 0x592c0001, 0x80000d40, 0x04020012, 0x59da5908, | ||
4980 | 0x835c0480, 0x00000020, 0x0400101c, 0x0402b01a, | ||
4981 | 0x492fb007, 0x0400e7fa, 0x59d80105, 0x82000500, | ||
4982 | 0x00018780, 0x040201aa, 0x59940019, 0x80000540, | ||
4983 | 0x04022003, 0x59980023, 0x48032819, 0x1c01f000, | ||
4984 | 0x497a5801, 0x40065800, 0x592c0001, 0x496a5800, | ||
4985 | 0x815eb800, 0x412ed000, 0x80000d40, 0x040207f9, | ||
4986 | 0x59c80000, 0x82000540, 0x00001200, 0x48039000, | ||
4987 | 0x0401f7e3, 0x0400f009, 0x496a5800, 0x412ed000, | ||
4988 | 0x815eb800, 0x59c80000, 0x82000540, 0x00001200, | ||
4989 | 0x48039000, 0x0401f7e0, 0x492fa807, 0x0401f7de, | ||
4990 | 0x492fc857, 0x59d81108, 0x45681000, 0x400ad000, | ||
4991 | 0x815eb800, 0x0400e7fc, 0x59c80000, 0x82000540, | ||
4992 | 0x00001200, 0x48039000, 0x0402d00c, 0x592c0001, | ||
4993 | 0x492fc857, 0x492fb107, 0x80000d40, 0x0402001d, | ||
4994 | 0x59940019, 0x80000540, 0x04022003, 0x59980023, | ||
4995 | 0x48032819, 0x1c01f000, 0x59d80105, 0x82000500, | ||
4996 | 0x00018780, 0x04020172, 0x42000000, 0x0010b855, | ||
4997 | 0x0201f800, 0x0010aa47, 0x59980026, 0x59980828, | ||
4998 | 0x80000000, 0x48033026, 0x492fc857, 0x800409c0, | ||
4999 | 0x492f3028, 0x04000003, 0x492c0800, 0x0401f002, | ||
5000 | 0x492f3029, 0x592c0001, 0x80000d40, 0x040007e5, | ||
5001 | 0x497a5801, 0x40065800, 0x592c0001, 0x496a5800, | ||
5002 | 0x815eb800, 0x412ed000, 0x80000d40, 0x040207f9, | ||
5003 | 0x59c80000, 0x82000540, 0x00001200, 0x48039000, | ||
5004 | 0x0401f7d8, 0x59980026, 0x59980828, 0x80000000, | ||
5005 | 0x48033026, 0x492fc857, 0x800409c0, 0x492f3028, | ||
5006 | 0x04000003, 0x492c0800, 0x0401f002, 0x492f3029, | ||
5007 | 0x592c0001, 0x80000d40, 0x04020027, 0x0402d00e, | ||
5008 | 0x59980029, 0x80025d40, 0x0400000f, 0x59980026, | ||
5009 | 0x80000040, 0x48033026, 0x04020002, 0x48033028, | ||
5010 | 0x592c0000, 0x48033029, 0x492fc857, 0x492fb107, | ||
5011 | 0x0400d7f4, 0x42000000, 0x0010b855, 0x0201f800, | ||
5012 | 0x0010aa47, 0x0402e00a, 0x59da5908, 0x496a5800, | ||
5013 | 0x412ed000, 0x815eb800, 0x0400e7fc, 0x59c80000, | ||
5014 | 0x82000540, 0x00001200, 0x48039000, 0x59d80105, | ||
5015 | 0x82000500, 0x00018780, 0x04020125, 0x59940019, | ||
5016 | 0x80000540, 0x04022003, 0x59980023, 0x48032819, | ||
5017 | 0x1c01f000, 0x497a5801, 0x40065800, 0x592c0001, | ||
5018 | 0x496a5800, 0x815eb800, 0x412ed000, 0x80000d40, | ||
5019 | 0x040207f9, 0x59c80000, 0x82000540, 0x00001200, | ||
5020 | 0x48039000, 0x0401f7ce, 0x592c0204, 0x4803c856, | ||
5021 | 0x04000008, 0x42034000, 0x0010b4a4, 0x59a1d81e, | ||
5022 | 0x80edd9c0, 0x02000800, 0x001005d8, 0x0401f003, | ||
5023 | 0x5931d821, 0x58ef400b, 0x58ec0009, 0x800001c0, | ||
5024 | 0x08020000, 0x0201f800, 0x001005d8, 0x497a5801, | ||
5025 | 0x40065800, 0x592c0001, 0x496a5800, 0x412ed000, | ||
5026 | 0x815eb800, 0x80000d40, 0x040207f9, 0x59c80000, | ||
5027 | 0x82000540, 0x00001200, 0x48039000, 0x1c01f000, | ||
5028 | 0x497a5801, 0x40065800, 0x592c0001, 0x496a5800, | ||
5029 | 0x412ed000, 0x815eb800, 0x80000d40, 0x040207f9, | ||
5030 | 0x59c80000, 0x82000540, 0x00001200, 0x48039000, | ||
5031 | 0x0200e000, 0x000202fb, 0x0201f000, 0x00020302, | ||
5032 | 0x5998002b, 0x84000540, 0x4803302b, 0x0201f000, | ||
5033 | 0x0002035e, 0x42000000, 0x0010b855, 0x0201f800, | ||
5034 | 0x0010aa47, 0x492fc857, 0x59980026, 0x59980828, | ||
5035 | 0x80000000, 0x48033026, 0x800409c0, 0x492f3028, | ||
5036 | 0x04000003, 0x492c0800, 0x0401f002, 0x492f3029, | ||
5037 | 0x592c0001, 0x80000d40, 0x04020002, 0x1c01f000, | ||
5038 | 0x497a5801, 0x40065800, 0x592c0001, 0x496a5800, | ||
5039 | 0x412ed000, 0x815eb800, 0x80000d40, 0x040207f9, | ||
5040 | 0x59c80000, 0x82000540, 0x00001200, 0x48039000, | ||
5041 | 0x1c01f000, 0x59980026, 0x59980828, 0x80000000, | ||
5042 | 0x48033026, 0x492fc857, 0x800409c0, 0x492f3028, | ||
5043 | 0x04000003, 0x492c0800, 0x0401f002, 0x492f3029, | ||
5044 | 0x592c0001, 0x80000d40, 0x04020039, 0x0402d00e, | ||
5045 | 0x59980029, 0x80025d40, 0x0400000f, 0x59980026, | ||
5046 | 0x80000040, 0x48033026, 0x04020002, 0x48033028, | ||
5047 | 0x592c0000, 0x48033029, 0x492fc857, 0x492fb107, | ||
5048 | 0x0400d7f4, 0x42000000, 0x0010b855, 0x0201f800, | ||
5049 | 0x0010aa47, 0x0402e01d, 0x59da5908, 0x496a5800, | ||
5050 | 0x412ed000, 0x815eb800, 0x0400e7fc, 0x59c80000, | ||
5051 | 0x82000540, 0x00001200, 0x48039000, 0x04006018, | ||
5052 | 0x59d8010a, 0x59d8090a, 0x80040d80, 0x040207fd, | ||
5053 | 0x900001c0, 0x82000540, 0x00000013, 0x4803c011, | ||
5054 | 0x5998002b, 0x84000500, 0x4803302b, 0x59e00017, | ||
5055 | 0x8c000508, 0x04000003, 0x4a03c017, 0x00000003, | ||
5056 | 0x4203e000, 0x30000001, 0x59d80105, 0x82000500, | ||
5057 | 0x00018780, 0x0402007e, 0x1c01f000, 0x5998002b, | ||
5058 | 0x84000540, 0x4803302b, 0x0401f7f8, 0x497a5801, | ||
5059 | 0x40065800, 0x592c0001, 0x496a5800, 0x412ed000, | ||
5060 | 0x815eb800, 0x80000d40, 0x040207f9, 0x59c80000, | ||
5061 | 0x82000540, 0x00001200, 0x48039000, 0x0401f7bc, | ||
5062 | 0x5c000000, 0x4c000000, 0x4803c857, 0x492fc857, | ||
5063 | 0x4943c857, 0x4807c857, 0x4a025a04, 0x00000103, | ||
5064 | 0x49425a06, 0x48065a08, 0x4a025c06, 0x0000ffff, | ||
5065 | 0x813261c0, 0x04000003, 0x59300402, 0x48025c06, | ||
5066 | 0x832c0400, 0x00000009, 0x04011000, 0x4803c840, | ||
5067 | 0x4a03c842, 0x0000000b, 0x04011000, 0x1c01f000, | ||
5068 | 0x4df00000, 0x4203e000, 0x50000000, 0x599cb817, | ||
5069 | 0x59940019, 0x80000540, 0x04002023, 0x0400000e, | ||
5070 | 0x59980022, 0x82000580, 0x00000005, 0x0400001e, | ||
5071 | 0x59a80069, 0x81640580, 0x0402001b, 0x8c5cbd08, | ||
5072 | 0x04000005, 0x59a8006a, 0x59a80866, 0x80040580, | ||
5073 | 0x04020015, 0x8c5cbd08, 0x04020030, 0x59d8090b, | ||
5074 | 0x59d8010a, 0x80040580, 0x0400000d, 0x0400600e, | ||
5075 | 0x4a03c011, 0x80400012, 0x4a03c020, 0x00008040, | ||
5076 | 0x59e00017, 0x8c000508, 0x04000003, 0x4a03c017, | ||
5077 | 0x00000002, 0x4203e000, 0x30000001, 0x4a032819, | ||
5078 | 0xffff0000, 0x04026835, 0x04006003, 0x8c5cbd08, | ||
5079 | 0x04020860, 0x59980029, 0x80025d40, 0x04000010, | ||
5080 | 0x59d80105, 0x82000500, 0x00018780, 0x04020020, | ||
5081 | 0x0402d00d, 0x59980026, 0x492fc857, 0x80000040, | ||
5082 | 0x48033026, 0x592c0000, 0x492fb107, 0x48033029, | ||
5083 | 0x04020003, 0x4803c856, 0x48033028, 0x5c03e000, | ||
5084 | 0x1c01f000, 0x42000000, 0x0010b855, 0x0201f800, | ||
5085 | 0x0010aa47, 0x0401f7fa, 0x59e0000f, 0x59e0080f, | ||
5086 | 0x80040580, 0x040207fd, 0x59e00010, 0x59e01010, | ||
5087 | 0x80081580, 0x040207fd, 0x40065000, 0x80041580, | ||
5088 | 0x040007c7, 0x040067dc, 0x0401f7ca, 0x4803c857, | ||
5089 | 0x485fc857, 0x8c00050e, 0x02020800, 0x001005d0, | ||
5090 | 0x4203e000, 0x50000000, 0x4200b800, 0x00008004, | ||
5091 | 0x0201f000, 0x001005dd, 0x5998002b, 0x8c000500, | ||
5092 | 0x04000013, 0x84000500, 0x4803302b, 0x59d8010a, | ||
5093 | 0x59d8090a, 0x80040580, 0x040207fd, 0x800408e0, | ||
5094 | 0x82040d40, 0x00000013, 0x4807c011, 0x59e00017, | ||
5095 | 0x8c000508, 0x04000003, 0x4a03c017, 0x00000003, | ||
5096 | 0x4203e000, 0x30000001, 0x1c01f000, 0x0402e014, | ||
5097 | 0x59da5908, 0x496a5800, 0x412ed000, 0x815eb800, | ||
5098 | 0x0400e7fc, 0x59c80000, 0x82000540, 0x00001200, | ||
5099 | 0x48039000, 0x59d8090b, 0x59980024, 0x48073024, | ||
5100 | 0x80040480, 0x04020004, 0x59940019, 0x80000540, | ||
5101 | 0x04022003, 0x59980823, 0x48072819, 0x59d80105, | ||
5102 | 0x82000500, 0x00018780, 0x040207c9, 0x1c01f000, | ||
5103 | 0x59981025, 0x59e00010, 0x59e00810, 0x80041d80, | ||
5104 | 0x040207fd, 0x80080580, 0x04000013, 0x48073025, | ||
5105 | 0x59e0000f, 0x59e0100f, 0x80081d80, 0x040207fd, | ||
5106 | 0x81280580, 0x04000008, 0x400a5000, 0x40080000, | ||
5107 | 0x80040580, 0x04000003, 0x59980823, 0x48072819, | ||
5108 | 0x1c01f000, 0x59940019, 0x80000540, 0x040227f8, | ||
5109 | 0x0401f7fc, 0x59e0000f, 0x59e0100f, 0x80081d80, | ||
5110 | 0x040207fd, 0x81280580, 0x040007f6, 0x400a5000, | ||
5111 | 0x59940019, 0x80000540, 0x040027ed, 0x0401f7f1, | ||
5112 | 0x59a80017, 0x82000c80, 0x0000000a, 0x02021800, | ||
5113 | 0x001005d8, 0x0c01f809, 0x4a038805, 0x000000f0, | ||
5114 | 0x59c400a3, 0x82000500, 0x02870000, 0x02020800, | ||
5115 | 0x001005d8, 0x1c01f000, 0x00104fc5, 0x00104f51, | ||
5116 | 0x00104f6c, 0x00104f95, 0x00104fb8, 0x00104ff2, | ||
5117 | 0x00105004, 0x00104f6c, 0x00104fd6, 0x00104f50, | ||
5118 | 0x1c01f000, 0x4a038808, 0x00000004, 0x0401f8f9, | ||
5119 | 0x0201f800, 0x001053ab, 0x59c40805, 0x8c040d0e, | ||
5120 | 0x04020013, 0x8c040d0a, 0x0402000b, 0x8c040d0c, | ||
5121 | 0x04020006, 0x8c040d08, 0x0400000d, 0x4a035017, | ||
5122 | 0x00000003, 0x0401f00a, 0x4a035017, 0x00000000, | ||
5123 | 0x0401f007, 0x42000000, 0x0010b844, 0x0201f800, | ||
5124 | 0x0010aa47, 0x4a035017, 0x00000002, 0x1c01f000, | ||
5125 | 0x4a038808, 0x00000002, 0x0401f8de, 0x59c40805, | ||
5126 | 0x8c040d08, 0x04020021, 0x8c040d0c, 0x0402001c, | ||
5127 | 0x8c040d0e, 0x04020017, 0x82040500, 0x000000f0, | ||
5128 | 0x0402001c, 0x0201f800, 0x001053ab, 0x4a038808, | ||
5129 | 0x00000080, 0x59c40002, 0x8400050c, 0x48038802, | ||
5130 | 0x0401f9d9, 0x4d3c0000, 0x42027800, 0x00000001, | ||
5131 | 0x0201f800, 0x00109874, 0x5c027800, 0x4a038808, | ||
5132 | 0x00000080, 0x4a035017, 0x00000009, 0x0401f009, | ||
5133 | 0x4a035017, 0x00000001, 0x0401f006, 0x4a035017, | ||
5134 | 0x00000000, 0x0401f003, 0x4a035017, 0x00000003, | ||
5135 | 0x1c01f000, 0x0401f8b7, 0x4a038808, 0x00000080, | ||
5136 | 0x59c40805, 0x8c040d0a, 0x0402001b, 0x8c040d0c, | ||
5137 | 0x04020016, 0x8c040d0e, 0x04020011, 0x82040500, | ||
5138 | 0x000000f0, 0x04020016, 0x59c40002, 0x8400050c, | ||
5139 | 0x48038802, 0x0401f9b4, 0x4d3c0000, 0x42027800, | ||
5140 | 0x00000001, 0x0201f800, 0x00109874, 0x5c027800, | ||
5141 | 0x4a035017, 0x00000009, 0x0401f009, 0x4a035017, | ||
5142 | 0x00000001, 0x0401f006, 0x4a035017, 0x00000000, | ||
5143 | 0x0401f003, 0x4a035017, 0x00000002, 0x1c01f000, | ||
5144 | 0x4a038808, 0x00000008, 0x59c40805, 0x8c040d0c, | ||
5145 | 0x04020006, 0x8c040d0e, 0x04000006, 0x4a035017, | ||
5146 | 0x00000001, 0x0401f003, 0x4a035017, 0x00000000, | ||
5147 | 0x1c01f000, 0x0401f8d3, 0x59c40805, 0x8c040d0c, | ||
5148 | 0x0402000d, 0x4c040000, 0x0401f882, 0x5c000800, | ||
5149 | 0x8c040d0a, 0x04020006, 0x8c040d0e, 0x04000006, | ||
5150 | 0x4a035017, 0x00000001, 0x0401f003, 0x4a035017, | ||
5151 | 0x00000002, 0x1c01f000, 0x4a038808, 0x00000008, | ||
5152 | 0x42001000, 0x00105058, 0x0201f800, 0x00106084, | ||
5153 | 0x59c40805, 0x8c040d0a, 0x0402000d, 0x8c040d08, | ||
5154 | 0x0402000b, 0x8c040d0c, 0x04020006, 0x8c040d0e, | ||
5155 | 0x0400000d, 0x4a035017, 0x00000001, 0x0401f00a, | ||
5156 | 0x4a035017, 0x00000000, 0x0401f007, 0x42000000, | ||
5157 | 0x0010b844, 0x0201f800, 0x0010aa47, 0x4a035017, | ||
5158 | 0x00000004, 0x1c01f000, 0x0401f8a6, 0x0401f859, | ||
5159 | 0x59c40805, 0x8c040d0a, 0x0402000b, 0x8c040d0c, | ||
5160 | 0x04020006, 0x8c040d0e, 0x04000009, 0x4a035017, | ||
5161 | 0x00000001, 0x0401f006, 0x4a035017, 0x00000000, | ||
5162 | 0x0401f003, 0x4a035017, 0x00000002, 0x1c01f000, | ||
5163 | 0x4a038808, 0x00000004, 0x0401f846, 0x59c40805, | ||
5164 | 0x8c040d0a, 0x04020010, 0x8c040d08, 0x0402000b, | ||
5165 | 0x8c040d0c, 0x04020006, 0x8c040d0e, 0x0400000c, | ||
5166 | 0x4a035017, 0x00000001, 0x0401f009, 0x4a035017, | ||
5167 | 0x00000000, 0x0401f006, 0x4a035017, 0x00000003, | ||
5168 | 0x0401f003, 0x4a035017, 0x00000002, 0x1c01f000, | ||
5169 | 0x0401f91f, 0x02020800, 0x001005d8, 0x59a80805, | ||
5170 | 0x8c040d0c, 0x04000015, 0x84040d0c, 0x48075005, | ||
5171 | 0x4a038805, 0x00000010, 0x0201f800, 0x00101937, | ||
5172 | 0x59c40005, 0x8c000508, 0x04000008, 0x4a038808, | ||
5173 | 0x00000008, 0x4a035033, 0x00000001, 0x4202d800, | ||
5174 | 0x00000001, 0x0401f01a, 0x59c40006, 0x84000548, | ||
5175 | 0x48038806, 0x0401f016, 0x59a80017, 0x82000580, | ||
5176 | 0x00000001, 0x0400000c, 0x59a80017, 0x82000580, | ||
5177 | 0x00000005, 0x0402000c, 0x42000000, 0x0010b844, | ||
5178 | 0x0201f800, 0x0010aa47, 0x4a035017, 0x00000008, | ||
5179 | 0x0401f007, 0x42000000, 0x0010b844, 0x0201f800, | ||
5180 | 0x0010aa47, 0x4a035017, 0x00000004, 0x1c01f000, | ||
5181 | 0x4803c856, 0x4c040000, 0x4c080000, 0x42000800, | ||
5182 | 0x00000064, 0x42001000, 0x00105058, 0x0201f800, | ||
5183 | 0x00106079, 0x5c001000, 0x5c000800, 0x1c01f000, | ||
5184 | 0x4803c856, 0x4c040000, 0x0201f800, 0x00106c55, | ||
5185 | 0x4df00000, 0x0201f800, 0x00106e21, 0x5c03e000, | ||
5186 | 0x02000800, 0x00106c4b, 0x0401ffba, 0x5c000800, | ||
5187 | 0x1c01f000, 0x4803c856, 0x4c040000, 0x4c080000, | ||
5188 | 0x0201f800, 0x00106c55, 0x4df00000, 0x0201f800, | ||
5189 | 0x00106e21, 0x5c03e000, 0x02000800, 0x00106c4b, | ||
5190 | 0x59c40006, 0x84000500, 0x48038806, 0x0201f800, | ||
5191 | 0x00106ede, 0x497b8880, 0x0201f800, 0x0010a9c0, | ||
5192 | 0x0201f800, 0x0010a9ce, 0x0201f800, 0x00101815, | ||
5193 | 0x4a03504c, 0x00000004, 0x4202d800, 0x00000004, | ||
5194 | 0x4a038805, 0x00000001, 0x42001000, 0x00105058, | ||
5195 | 0x0201f800, 0x00106084, 0x0201f800, 0x001006d4, | ||
5196 | 0x0401f8c1, 0x04000006, 0x42006000, 0xfeffffff, | ||
5197 | 0x41786800, 0x0201f800, 0x0010427d, 0x0201f800, | ||
5198 | 0x00100452, 0x42000000, 0x00000001, 0x0201f800, | ||
5199 | 0x00101590, 0x5c001000, 0x5c000800, 0x1c01f000, | ||
5200 | 0x59c40008, 0x8c000508, 0x04020007, 0x4a038808, | ||
5201 | 0x00000010, 0x4201d000, 0x00001388, 0x0201f800, | ||
5202 | 0x0010608e, 0x1c01f000, 0x4c040000, 0x59a80833, | ||
5203 | 0x82040580, 0x00000000, 0x0400000b, 0x82040580, | ||
5204 | 0x00000001, 0x0400000b, 0x82040580, 0x00000002, | ||
5205 | 0x0400000b, 0x82040580, 0x00000003, 0x0400000b, | ||
5206 | 0x0401f057, 0x4a035017, 0x00000000, 0x0401f009, | ||
5207 | 0x4a035017, 0x00000004, 0x0401f006, 0x4a035017, | ||
5208 | 0x00000001, 0x0401f003, 0x4a035017, 0x00000007, | ||
5209 | 0x497b8880, 0x4a038893, 0x00000001, 0x41780000, | ||
5210 | 0x0201f800, 0x00101606, 0x0201f800, 0x00106ede, | ||
5211 | 0x836c0d80, 0x00000004, 0x04000008, 0x59c40006, | ||
5212 | 0x82000500, 0xffffff0f, 0x82000540, 0x04000001, | ||
5213 | 0x48038806, 0x0401f007, 0x59c40006, 0x82000500, | ||
5214 | 0xffffff0f, 0x82000540, 0x04000000, 0x48038806, | ||
5215 | 0x0401f875, 0x04020005, 0x59c40806, 0x82040d00, | ||
5216 | 0xfbffff0f, 0x48078806, 0x4200b000, 0x00000005, | ||
5217 | 0x59c40005, 0x8c000534, 0x04020033, 0x42006000, | ||
5218 | 0xfc18ffff, 0x42006800, 0x01000000, 0x0201f800, | ||
5219 | 0x0010427d, 0x0201f800, 0x00101937, 0x59c408a4, | ||
5220 | 0x82040d00, 0x0000000f, 0x82040d80, 0x0000000c, | ||
5221 | 0x0400000a, 0x42006000, 0xfeffffff, 0x42006800, | ||
5222 | 0x02000000, 0x0201f800, 0x0010427d, 0x8058b040, | ||
5223 | 0x040207e8, 0x0401f8a1, 0x0401f853, 0x04000006, | ||
5224 | 0x42006000, 0xfeffffff, 0x41786800, 0x0201f800, | ||
5225 | 0x0010427d, 0x836c0d80, 0x00000004, 0x04000006, | ||
5226 | 0x59a8084d, 0x42001000, 0x00105065, 0x0201f800, | ||
5227 | 0x0010606e, 0x4a035033, 0x00000004, 0x0401fe31, | ||
5228 | 0x0401f841, 0x04020008, 0x59c408a4, 0x82040d00, | ||
5229 | 0x0000000f, 0x82040580, 0x0000000c, 0x02020800, | ||
5230 | 0x001005d8, 0x5c000800, 0x1c01f000, 0x4803c856, | ||
5231 | 0x4c000000, 0x0201f800, 0x0010609e, 0x4a035010, | ||
5232 | 0x00ffffff, 0x497b5032, 0x59a8002a, 0x82000500, | ||
5233 | 0xffff0000, 0x4803502a, 0x497b8880, 0x497b8893, | ||
5234 | 0x41780000, 0x0201f800, 0x00101606, 0x59c40001, | ||
5235 | 0x82000500, 0xfffffcff, 0x48038801, 0x42006000, | ||
5236 | 0xfc18ffff, 0x41786800, 0x0201f800, 0x0010427d, | ||
5237 | 0x4a038808, 0x00000000, 0x5c000000, 0x800001c0, | ||
5238 | 0x02020800, 0x0010411d, 0x4a038805, 0x040000f0, | ||
5239 | 0x59c40006, 0x82000500, 0xffffffcf, 0x82000540, | ||
5240 | 0x440000c1, 0x48038806, 0x1c01f000, 0x4c5c0000, | ||
5241 | 0x59a8b832, 0x825cbd80, 0x0000aaaa, 0x5c00b800, | ||
5242 | 0x1c01f000, 0x4c5c0000, 0x599cb818, 0x825cbd00, | ||
5243 | 0x00000030, 0x825cbd80, 0x00000000, 0x5c00b800, | ||
5244 | 0x1c01f000, 0x4c5c0000, 0x599cb818, 0x825cbd00, | ||
5245 | 0x00000030, 0x825cbd80, 0x00000010, 0x5c00b800, | ||
5246 | 0x1c01f000, 0x4c5c0000, 0x599cb818, 0x825cbd00, | ||
5247 | 0x00000030, 0x825cbd80, 0x00000020, 0x5c00b800, | ||
5248 | 0x1c01f000, 0x59a80005, 0x4803c857, 0x82000d00, | ||
5249 | 0x00000013, 0x04000025, 0x599c1017, 0x4d3c0000, | ||
5250 | 0x82000500, 0x00000011, 0x04000007, 0x42027800, | ||
5251 | 0x00000400, 0x0201f800, 0x00103b25, 0x0402000a, | ||
5252 | 0x0401f012, 0x42027800, 0x00000408, 0x0201f800, | ||
5253 | 0x00103b25, 0x0400000d, 0x42003000, 0x00000003, | ||
5254 | 0x0401f003, 0x42003000, 0x00000004, 0x42028000, | ||
5255 | 0x0000000e, 0x0201f800, 0x0010a449, 0x599c1017, | ||
5256 | 0x8c08150a, 0x04020007, 0x42028000, 0x00000004, | ||
5257 | 0x0201f800, 0x00101fe5, 0x80000580, 0x0401f80d, | ||
5258 | 0x5c027800, 0x0401f00a, 0x0201f800, 0x00103b25, | ||
5259 | 0x04000007, 0x42028000, 0x0000000f, 0x42003000, | ||
5260 | 0x00000001, 0x0201f800, 0x0010a449, 0x1c01f000, | ||
5261 | 0x59a80005, 0x04000004, 0x82000540, 0x00000010, | ||
5262 | 0x0401f003, 0x82000500, 0xffffffef, 0x48035005, | ||
5263 | 0x4803c857, 0x1c01f000, 0x4803c856, 0x4c580000, | ||
5264 | 0x42000000, 0x0010b8cb, 0x0201f800, 0x0010aa47, | ||
5265 | 0x42000800, 0x0010c0f1, 0x59c40003, 0x44000800, | ||
5266 | 0x59c40004, 0x48000801, 0x59c4000b, 0x48000802, | ||
5267 | 0x59c4008e, 0x48000803, 0x59c4008f, 0x48000804, | ||
5268 | 0x59c40090, 0x48000805, 0x59c40091, 0x48000806, | ||
5269 | 0x59c40092, 0x48000807, 0x59c40093, 0x48000808, | ||
5270 | 0x59c40099, 0x48000809, 0x59c4009e, 0x4800080a, | ||
5271 | 0x59c400aa, 0x4800080b, 0x59c400af, 0x4800080c, | ||
5272 | 0x59c400b2, 0x4800080d, 0x59c400b1, 0x4800080e, | ||
5273 | 0x82040c00, 0x0000000f, 0x41c41800, 0x4200b000, | ||
5274 | 0x00000030, 0x580c0050, 0x44000800, 0x80040800, | ||
5275 | 0x800c1800, 0x8058b040, 0x040207fb, 0x41c41800, | ||
5276 | 0x4200b000, 0x00000020, 0x580c0010, 0x44000800, | ||
5277 | 0x80040800, 0x800c1800, 0x8058b040, 0x040207fb, | ||
5278 | 0x497b8830, 0x4200b000, 0x00000040, 0x59c40031, | ||
5279 | 0x44000800, 0x80040800, 0x8058b040, 0x040207fc, | ||
5280 | 0x497b88ac, 0x4200b000, 0x00000010, 0x59c400ad, | ||
5281 | 0x44000800, 0x80040800, 0x8058b040, 0x040207fc, | ||
5282 | 0x59c41001, 0x4c080000, 0x8408150c, 0x480b8801, | ||
5283 | 0x4a0370e4, 0x00000300, 0x4a0370e5, 0xb0000000, | ||
5284 | 0x42000800, 0x00000800, 0x80040840, 0x02000800, | ||
5285 | 0x001005d8, 0x59b800e5, 0x8c000538, 0x040207fb, | ||
5286 | 0x4a0370e4, 0x00000200, 0x42006000, 0xffffffff, | ||
5287 | 0x42006800, 0x80000000, 0x0201f800, 0x0010427d, | ||
5288 | 0x4a038807, 0x00000001, 0x497b8807, 0x4a038808, | ||
5289 | 0x00000010, 0x42006000, 0xfcf8ffff, 0x42006800, | ||
5290 | 0x01000000, 0x0201f800, 0x0010427d, 0x5c001000, | ||
5291 | 0x480b8801, 0x42000800, 0x0010c0f1, 0x50040000, | ||
5292 | 0x48038803, 0x58040001, 0x48038804, 0x58040002, | ||
5293 | 0x4803880b, 0x58040003, 0x4803888e, 0x58040004, | ||
5294 | 0x4803888f, 0x58040005, 0x48038890, 0x58040006, | ||
5295 | 0x48038891, 0x58040007, 0x48038892, 0x58040008, | ||
5296 | 0x48038893, 0x58040009, 0x48038899, 0x5804000a, | ||
5297 | 0x4803889e, 0x5804000b, 0x480388aa, 0x5804000c, | ||
5298 | 0x480388af, 0x5804000d, 0x480388b2, 0x5804000e, | ||
5299 | 0x480388b1, 0x82040c00, 0x0000000f, 0x41c41800, | ||
5300 | 0x4200b000, 0x00000030, 0x50040000, 0x48001850, | ||
5301 | 0x80040800, 0x800c1800, 0x8058b040, 0x040207fb, | ||
5302 | 0x41c41800, 0x4200b000, 0x00000020, 0x50040000, | ||
5303 | 0x48001810, 0x80040800, 0x800c1800, 0x8058b040, | ||
5304 | 0x040207fb, 0x497b8830, 0x4200b000, 0x00000040, | ||
5305 | 0x50040000, 0x48038831, 0x80040800, 0x8058b040, | ||
5306 | 0x040207fc, 0x497b88ac, 0x4200b000, 0x00000010, | ||
5307 | 0x50040000, 0x480388ad, 0x80040800, 0x8058b040, | ||
5308 | 0x040207fc, 0x497b8880, 0x41780000, 0x0201f800, | ||
5309 | 0x00101606, 0x59c408a4, 0x82040d00, 0x0000000f, | ||
5310 | 0x82040580, 0x0000000c, 0x02020800, 0x001005d8, | ||
5311 | 0x4a038805, 0x04000000, 0x5c00b000, 0x1c01f000, | ||
5312 | 0x4803c856, 0x4c580000, 0x4ce80000, 0x42000000, | ||
5313 | 0x0010b845, 0x0201f800, 0x0010aa47, 0x59c41008, | ||
5314 | 0x4c080000, 0x82080500, 0xffffff7f, 0x48038808, | ||
5315 | 0x59c40004, 0x82000500, 0x00003e02, 0x04000005, | ||
5316 | 0x4201d000, 0x00000014, 0x0201f800, 0x0010608e, | ||
5317 | 0x59c40006, 0x82000500, 0xffffff0f, 0x48038806, | ||
5318 | 0x4a038805, 0x00000010, 0x4a038808, 0x00000004, | ||
5319 | 0x4200b000, 0x00000065, 0x59c40005, 0x8c000508, | ||
5320 | 0x04020012, 0x4201d000, 0x000003e8, 0x0201f800, | ||
5321 | 0x0010608e, 0x8058b040, 0x040207f8, 0x0201f800, | ||
5322 | 0x00106ede, 0x4a038808, 0x00000008, 0x4a035033, | ||
5323 | 0x00000001, 0x4202d800, 0x00000001, 0x82000540, | ||
5324 | 0x00000001, 0x0401f030, 0x0201f800, 0x00100ae0, | ||
5325 | 0x42000000, 0x0010b8a8, 0x0201f800, 0x0010aa47, | ||
5326 | 0x0201f800, 0x00100ef4, 0x497b8880, 0x59a8002a, | ||
5327 | 0x82000500, 0x0000ffff, 0x4c000000, 0x0201f800, | ||
5328 | 0x00101606, 0x5c000000, 0x48038880, 0x4a038808, | ||
5329 | 0x00000000, 0x4200b000, 0x00000065, 0x4a038805, | ||
5330 | 0x000000f0, 0x0201f800, 0x00101937, 0x42000800, | ||
5331 | 0x000000f0, 0x59c40005, 0x80040d00, 0x04000008, | ||
5332 | 0x4201d000, 0x000003e8, 0x0201f800, 0x0010608e, | ||
5333 | 0x8058b040, 0x040207f2, 0x0401f7d1, 0x59c40006, | ||
5334 | 0x82000540, 0x000000f0, 0x48038806, 0x59a8001e, | ||
5335 | 0x80000540, 0x04020002, 0x80000000, 0x48038893, | ||
5336 | 0x80000580, 0x5c001000, 0x4df00000, 0x0201f800, | ||
5337 | 0x0010195d, 0x5c03e000, 0x480b8808, 0x5c01d000, | ||
5338 | 0x5c00b000, 0x1c01f000, 0x4803c856, 0x4c580000, | ||
5339 | 0x4ce80000, 0x59c41008, 0x82080500, 0xffffff7f, | ||
5340 | 0x48038808, 0x4c080000, 0x59c40004, 0x82000500, | ||
5341 | 0x00003e02, 0x04000005, 0x4201d000, 0x00000014, | ||
5342 | 0x0201f800, 0x0010608e, 0x0201f800, 0x00100ae0, | ||
5343 | 0x42000000, 0x0010b8a9, 0x0201f800, 0x0010aa47, | ||
5344 | 0x0201f800, 0x00100ef4, 0x4a038808, 0x00000002, | ||
5345 | 0x80000580, 0x48038880, 0x48038893, 0x0201f800, | ||
5346 | 0x00101606, 0x4200b000, 0x00000384, 0x4a038805, | ||
5347 | 0x000000f0, 0x0201f800, 0x00101937, 0x42000800, | ||
5348 | 0x000000f0, 0x59c40005, 0x80040d00, 0x04000015, | ||
5349 | 0x82000500, 0x000000d0, 0x04020012, 0x4201d000, | ||
5350 | 0x00000067, 0x0201f800, 0x0010608e, 0x8058b040, | ||
5351 | 0x040207ef, 0x0201f800, 0x00106ede, 0x4a038808, | ||
5352 | 0x00000008, 0x4a035033, 0x00000001, 0x4202d800, | ||
5353 | 0x00000001, 0x82000540, 0x00000001, 0x0401f010, | ||
5354 | 0x497b8880, 0x59a8001e, 0x80000540, 0x04020002, | ||
5355 | 0x80000000, 0x48038893, 0x59a8002a, 0x82000500, | ||
5356 | 0x0000ffff, 0x4c000000, 0x0201f800, 0x00101606, | ||
5357 | 0x5c000000, 0x48038880, 0x80000580, 0x5c001000, | ||
5358 | 0x4df00000, 0x0201f800, 0x0010195d, 0x5c03e000, | ||
5359 | 0x480b8808, 0x5c01d000, 0x5c00b000, 0x1c01f000, | ||
5360 | 0x4803c856, 0x59c40004, 0x82000500, 0x00003e02, | ||
5361 | 0x0400000a, 0x0201f800, 0x00106ede, 0x4a038808, | ||
5362 | 0x00000008, 0x4a035033, 0x00000001, 0x4202d800, | ||
5363 | 0x00000001, 0x0401f052, 0x0201f800, 0x00100ae0, | ||
5364 | 0x42000000, 0x0010b8aa, 0x0201f800, 0x0010aa47, | ||
5365 | 0x0201f800, 0x00100ef4, 0x59c40006, 0x84000508, | ||
5366 | 0x48038806, 0x4a038805, 0x00000010, 0x59a80805, | ||
5367 | 0x84040d4c, 0x48075005, 0x42000800, 0x00000064, | ||
5368 | 0x42001000, 0x00105058, 0x0201f800, 0x0010606e, | ||
5369 | 0x4a038808, 0x00000000, 0x497b8880, 0x4a038805, | ||
5370 | 0x000000f0, 0x0201f800, 0x00101937, 0x42000800, | ||
5371 | 0x000000f0, 0x59c40005, 0x80040d00, 0x0400000e, | ||
5372 | 0x82000500, 0x000000e0, 0x0402000b, 0x4201d000, | ||
5373 | 0x000003e8, 0x0201f800, 0x0010608e, 0x0201f800, | ||
5374 | 0x00105f48, 0x59940004, 0x80000540, 0x040207ec, | ||
5375 | 0x0401f023, 0x4c080000, 0x42001000, 0x00105065, | ||
5376 | 0x0201f800, 0x00105f90, 0x42001000, 0x00105058, | ||
5377 | 0x0201f800, 0x00106084, 0x5c001000, 0x497b8880, | ||
5378 | 0x59a8001e, 0x80000540, 0x04020002, 0x80000000, | ||
5379 | 0x48038893, 0x59a8002a, 0x82000500, 0x0000ffff, | ||
5380 | 0x4c000000, 0x0201f800, 0x00101606, 0x5c000000, | ||
5381 | 0x48038880, 0x59a80805, 0x84040d0c, 0x48075005, | ||
5382 | 0x59c40006, 0x84000548, 0x48038806, 0x0201f800, | ||
5383 | 0x0010195d, 0x4a038808, 0x00000080, 0x1c01f000, | ||
5384 | 0x4803c856, 0x4d400000, 0x4d3c0000, 0x0201f800, | ||
5385 | 0x00106ede, 0x0201f800, 0x0010ab33, 0x04020025, | ||
5386 | 0x599c1017, 0x59a80805, 0x8c040d00, 0x0402000c, | ||
5387 | 0x8c08151a, 0x0400001f, 0x84040d42, 0x48075005, | ||
5388 | 0x42028000, 0x00000004, 0x42027800, 0x0000000c, | ||
5389 | 0x8c081508, 0x04020008, 0x0401f012, 0x42028000, | ||
5390 | 0x00000004, 0x42027800, 0x00000004, 0x8c081508, | ||
5391 | 0x0400000c, 0x4d400000, 0x42028000, 0x0000000e, | ||
5392 | 0x42028800, 0x0000ffff, 0x0201f800, 0x0010a446, | ||
5393 | 0x5c028000, 0x599c0817, 0x8c040d0a, 0x04020005, | ||
5394 | 0x4943c857, 0x493fc857, 0x0201f800, 0x00101fe5, | ||
5395 | 0x497b8880, 0x4202d800, 0x00000001, 0x0401fcfb, | ||
5396 | 0x5c027800, 0x5c028000, 0x1c01f000, 0x0201f800, | ||
5397 | 0x00100ae0, 0x42000000, 0x0010b8ab, 0x0201f800, | ||
5398 | 0x0010aa47, 0x0201f800, 0x00100ef4, 0x42000000, | ||
5399 | 0x00000001, 0x0201f800, 0x00101606, 0x4a038880, | ||
5400 | 0x00000001, 0x0201f000, 0x0010195d, 0x4202e000, | ||
5401 | 0x00000000, 0x4a033015, 0x00000001, 0x497b301d, | ||
5402 | 0x497b3006, 0x4a03b004, 0x60000001, 0x59d80005, | ||
5403 | 0x4a03b004, 0x90000001, 0x4a03a804, 0x60000001, | ||
5404 | 0x59d40005, 0x4a03a804, 0x90000001, 0x0201f000, | ||
5405 | 0x00105983, 0x4a03c825, 0x00000004, 0x4a03c827, | ||
5406 | 0x00000004, 0x599c0409, 0x80000d40, 0x04000020, | ||
5407 | 0x599c0407, 0x80000540, 0x04000007, 0x800000cc, | ||
5408 | 0x599c100b, 0x80080400, 0x4803b000, 0x497bb002, | ||
5409 | 0x59d80001, 0x599c000b, 0x4803b000, 0x599c000c, | ||
5410 | 0x4803b001, 0x599c0407, 0x80000540, 0x04020002, | ||
5411 | 0x497bb002, 0x599c0c09, 0x82040540, 0x00400000, | ||
5412 | 0x4803b003, 0x4a03b009, 0x00000004, 0x4a03b004, | ||
5413 | 0x10000001, 0x59e00803, 0x82040d00, 0xfffffeff, | ||
5414 | 0x82040d40, 0x00008000, 0x4807c003, 0x599c040a, | ||
5415 | 0x80000540, 0x04000020, 0x599c0408, 0x80000540, | ||
5416 | 0x04000007, 0x800000cc, 0x599c100f, 0x80080400, | ||
5417 | 0x4803a800, 0x497ba802, 0x59d40001, 0x599c000f, | ||
5418 | 0x4803a800, 0x599c0010, 0x4803a801, 0x599c0408, | ||
5419 | 0x80000540, 0x04020002, 0x497ba802, 0x599c0c0a, | ||
5420 | 0x82040540, 0x00400000, 0x4803a803, 0x4a03a809, | ||
5421 | 0x00000004, 0x4a03a804, 0x10000001, 0x59e00803, | ||
5422 | 0x82040d00, 0xfffffbff, 0x82040d40, 0x00008000, | ||
5423 | 0x4807c003, 0x800409c0, 0x04000007, 0x4202e000, | ||
5424 | 0x00000001, 0x0200b800, 0x00020551, 0x0200f000, | ||
5425 | 0x00020566, 0x1c01f000, 0x0201f800, 0x001005d8, | ||
5426 | 0x1c01f000, 0x4df00000, 0x4203e000, 0x50000000, | ||
5427 | 0x59981005, 0x800811c0, 0x0400001e, 0x58080005, | ||
5428 | 0x82000d00, 0x43018780, 0x02020000, 0x00105846, | ||
5429 | 0x8c000508, 0x04000015, 0x580a5808, 0x592c0204, | ||
5430 | 0x497a5800, 0x497a5801, 0x82000500, 0x000000ff, | ||
5431 | 0x82000c80, 0x0000004b, 0x0402100b, 0x0c01f80f, | ||
5432 | 0x5c03e000, 0x83700580, 0x00000003, 0x040007e6, | ||
5433 | 0x0200f800, 0x00020566, 0x0200b000, 0x00020551, | ||
5434 | 0x1c01f000, 0x0401f850, 0x5c03e000, 0x0401f7f9, | ||
5435 | 0x0401f8de, 0x0401f7fd, 0x00105491, 0x00105491, | ||
5436 | 0x00105491, 0x00105491, 0x001054a1, 0x00105491, | ||
5437 | 0x00105491, 0x00105491, 0x00105491, 0x00105491, | ||
5438 | 0x00105519, 0x00105491, 0x00105491, 0x001054a1, | ||
5439 | 0x001054a1, 0x00105491, 0x00105491, 0x00105491, | ||
5440 | 0x00105491, 0x00105491, 0x00105491, 0x00105491, | ||
5441 | 0x00105491, 0x00105491, 0x00105491, 0x00105491, | ||
5442 | 0x00105491, 0x00105491, 0x00105491, 0x00105491, | ||
5443 | 0x00105491, 0x00105491, 0x00105491, 0x00105491, | ||
5444 | 0x00105491, 0x00105491, 0x00105491, 0x00105491, | ||
5445 | 0x00105491, 0x00105491, 0x00105491, 0x00105491, | ||
5446 | 0x00105491, 0x00105491, 0x00105491, 0x00105491, | ||
5447 | 0x00105491, 0x00105491, 0x00105491, 0x00105491, | ||
5448 | 0x00105491, 0x00105491, 0x00105491, 0x00105491, | ||
5449 | 0x00105491, 0x00105491, 0x00105491, 0x00105491, | ||
5450 | 0x00105491, 0x00105491, 0x00105491, 0x00105491, | ||
5451 | 0x00105491, 0x00105491, 0x00105491, 0x00105491, | ||
5452 | 0x00105491, 0x00105491, 0x00105491, 0x00105491, | ||
5453 | 0x00105491, 0x00105491, 0x00105491, 0x00105491, | ||
5454 | 0x00105491, 0x492fc857, 0x42000000, 0x0010b85e, | ||
5455 | 0x0201f800, 0x0010aa47, 0x42000000, 0x00000400, | ||
5456 | 0x0401f019, 0x492fc857, 0x42000000, 0x0010b85d, | ||
5457 | 0x0201f800, 0x0010aa47, 0x42000000, 0x00001000, | ||
5458 | 0x0401f011, 0x492fc857, 0x42000000, 0x0010b85c, | ||
5459 | 0x0201f800, 0x0010aa47, 0x42000000, 0x00002000, | ||
5460 | 0x0401f009, 0x492fc857, 0x42000000, 0x0010b85f, | ||
5461 | 0x0201f800, 0x0010aa47, 0x42000000, 0x00000800, | ||
5462 | 0x0401f001, 0x4803c857, 0x4202e000, 0x00000001, | ||
5463 | 0x592c0c04, 0x82040d00, 0xffff80ff, 0x80040540, | ||
5464 | 0x48025c04, 0x0201f000, 0x000202da, 0x592c0204, | ||
5465 | 0x492fc857, 0x80000110, 0x040007db, 0x80000040, | ||
5466 | 0x04000025, 0x48033002, 0x492f3003, 0x492f3004, | ||
5467 | 0x4a033008, 0x001054e5, 0x4202e000, 0x00000003, | ||
5468 | 0x1c01f000, 0x592c0204, 0x492fc857, 0x80000110, | ||
5469 | 0x040007cd, 0x80000040, 0x04000033, 0x48033002, | ||
5470 | 0x492f3003, 0x492f3004, 0x4a033008, 0x00105501, | ||
5471 | 0x4202e000, 0x00000003, 0x1c01f000, 0x0201f800, | ||
5472 | 0x0010ab33, 0x02020000, 0x000204d9, 0x42028000, | ||
5473 | 0x00000028, 0x41780800, 0x417a6000, 0x0201f800, | ||
5474 | 0x00104e70, 0x0201f800, 0x001091c6, 0x0201f000, | ||
5475 | 0x000202da, 0x592c0a0a, 0x8c040d02, 0x04020016, | ||
5476 | 0x59a80021, 0x492fc857, 0x80000540, 0x0402000f, | ||
5477 | 0x592c0207, 0x80000540, 0x04000005, 0x0201f800, | ||
5478 | 0x00104326, 0x04020004, 0x1c01f000, 0x42000000, | ||
5479 | 0x00000000, 0x592c0a06, 0x48065c06, 0x48025a06, | ||
5480 | 0x0201f000, 0x000202da, 0x42000000, 0x00000028, | ||
5481 | 0x0401f7f9, 0x42000800, 0x00000009, 0x0201f000, | ||
5482 | 0x0010665b, 0x592c0208, 0x492fc857, 0x82000c80, | ||
5483 | 0x0000199a, 0x040217a4, 0x592c0408, 0x80000540, | ||
5484 | 0x040207a1, 0x59a80821, 0x800409c0, 0x04020009, | ||
5485 | 0x592c0207, 0x80000540, 0x0400079b, 0x497a5a06, | ||
5486 | 0x0201f800, 0x00104385, 0x04020004, 0x1c01f000, | ||
5487 | 0x42000000, 0x00000028, 0x48025a06, 0x0201f000, | ||
5488 | 0x000202da, 0x59980804, 0x59980002, 0x48065800, | ||
5489 | 0x492c0801, 0x492f3004, 0x80000040, 0x48033002, | ||
5490 | 0x04000002, 0x1c01f000, 0x599a5803, 0x59980008, | ||
5491 | 0x4202e000, 0x00000001, 0x0801f000, 0x592e8a06, | ||
5492 | 0x592c0406, 0x4803c856, 0x82000500, 0x000000ff, | ||
5493 | 0x4200b800, 0x00000001, 0x82000d80, 0x00000001, | ||
5494 | 0x04000015, 0x417a8800, 0x4200b800, 0x000007f0, | ||
5495 | 0x82000d80, 0x00000002, 0x0400000f, 0x80000540, | ||
5496 | 0x02020000, 0x000202da, 0x592e8a06, 0x0201f800, | ||
5497 | 0x00020245, 0x02020000, 0x000202da, 0x592e9008, | ||
5498 | 0x592e9809, 0x0201f800, 0x00104713, 0x0201f000, | ||
5499 | 0x000202da, 0x59a80805, 0x84040d00, 0x48075005, | ||
5500 | 0x0201f800, 0x00020245, 0x02000800, 0x0010482c, | ||
5501 | 0x81468800, 0x805cb840, 0x040207fa, 0x0201f000, | ||
5502 | 0x000202da, 0x592c0a08, 0x4807c857, 0x82040580, | ||
5503 | 0x0000000e, 0x04000045, 0x82040580, 0x00000046, | ||
5504 | 0x04000046, 0x82040580, 0x00000045, 0x04000020, | ||
5505 | 0x82040580, 0x00000029, 0x04000010, 0x82040580, | ||
5506 | 0x0000002a, 0x04000009, 0x82040580, 0x0000000f, | ||
5507 | 0x040001fc, 0x82040580, 0x0000002e, 0x040001f9, | ||
5508 | 0x4807c856, 0x0401f1f2, 0x59a80805, 0x84040d04, | ||
5509 | 0x48075005, 0x0401f1f3, 0x592e8a06, 0x0201f800, | ||
5510 | 0x00020245, 0x040201ef, 0x59340200, 0x84000518, | ||
5511 | 0x48026a00, 0x592e6009, 0x4933c857, 0x83300580, | ||
5512 | 0xffffffff, 0x0402002a, 0x0401f1e6, 0x592c1407, | ||
5513 | 0x480bc857, 0x0201f800, 0x00109410, 0x411e6000, | ||
5514 | 0x04020003, 0x4803c856, 0x0401f1d9, 0x592e3809, | ||
5515 | 0x591c1414, 0x84081516, 0x84081554, 0x480a3c14, | ||
5516 | 0x4a026403, 0x0000003a, 0x592c040b, 0x80000540, | ||
5517 | 0x04000007, 0x4a026403, 0x0000003b, 0x592c020c, | ||
5518 | 0x4802641a, 0x592c040c, 0x4802621a, 0x4a026203, | ||
5519 | 0x00000001, 0x42000800, 0x80000040, 0x0201f800, | ||
5520 | 0x00020721, 0x0401f1c7, 0x59a80068, 0x84000510, | ||
5521 | 0x48035068, 0x0401f1c3, 0x592c1207, 0x8c081500, | ||
5522 | 0x040201c0, 0x592e8a06, 0x592e6009, 0x0201f800, | ||
5523 | 0x0010941a, 0x04020003, 0x4803c856, 0x0401f1b4, | ||
5524 | 0x59300c06, 0x82040580, 0x00000004, 0x04000003, | ||
5525 | 0x4803c856, 0x0401f1ae, 0x59300a03, 0x82040580, | ||
5526 | 0x00000007, 0x04000003, 0x4803c856, 0x0401f1a8, | ||
5527 | 0x59300c03, 0x82040580, 0x00000001, 0x04000021, | ||
5528 | 0x82040580, 0x00000003, 0x04000016, 0x82040580, | ||
5529 | 0x00000006, 0x04000020, 0x82040580, 0x00000008, | ||
5530 | 0x04000015, 0x82040580, 0x0000000a, 0x0400000a, | ||
5531 | 0x82040580, 0x0000000c, 0x04000004, 0x82040580, | ||
5532 | 0x0000002e, 0x04020018, 0x42000800, 0x00000009, | ||
5533 | 0x0401f013, 0x42000800, 0x00000005, 0x0401f010, | ||
5534 | 0x417a7800, 0x0201f800, 0x0010203c, 0x4a026406, | ||
5535 | 0x00000001, 0x42000800, 0x00000003, 0x0401f008, | ||
5536 | 0x417a7800, 0x0201f800, 0x0010203c, 0x4a026406, | ||
5537 | 0x00000001, 0x42000800, 0x0000000b, 0x0201f800, | ||
5538 | 0x00104571, 0x4a026203, 0x00000001, 0x0201f800, | ||
5539 | 0x0010672b, 0x0401f17b, 0x40000800, 0x58040000, | ||
5540 | 0x80000540, 0x040207fd, 0x492c0800, 0x1c01f000, | ||
5541 | 0x492fc857, 0x59300c06, 0x82040580, 0x00000006, | ||
5542 | 0x04020094, 0x0201f800, 0x001049e7, 0x04020005, | ||
5543 | 0x59340200, 0x8c00051a, 0x02000000, 0x00020533, | ||
5544 | 0x59340200, 0x8c00050e, 0x0400008a, 0x59300203, | ||
5545 | 0x42027800, 0x00000001, 0x82000580, 0x00000007, | ||
5546 | 0x02020000, 0x00020533, 0x4a026203, 0x00000002, | ||
5547 | 0x0201f000, 0x00020533, 0x42028000, 0x00000002, | ||
5548 | 0x4a026206, 0x00000014, 0x4d2c0000, 0x0201f800, | ||
5549 | 0x0010a1d1, 0x5c025800, 0x59300c06, 0x4807c857, | ||
5550 | 0x82040580, 0x00000007, 0x04020063, 0x492fc857, | ||
5551 | 0x4a025a06, 0x00000001, 0x0201f000, 0x000202da, | ||
5552 | 0x592c240a, 0x492fc857, 0x4813c857, 0x8c10251c, | ||
5553 | 0x04020016, 0x8c10251a, 0x04000003, 0x8c10250a, | ||
5554 | 0x04000069, 0x59340a00, 0x8c040d0e, 0x04000003, | ||
5555 | 0x8c10251e, 0x04000064, 0x0201f800, 0x0002075a, | ||
5556 | 0x0400006b, 0x592c240a, 0x49366009, 0x49325809, | ||
5557 | 0x4a026406, 0x00000006, 0x4a026203, 0x00000007, | ||
5558 | 0x0201f000, 0x0002052f, 0x592c0a0c, 0x5934000f, | ||
5559 | 0x41784000, 0x80001540, 0x0400006d, 0x58080204, | ||
5560 | 0x82000500, 0x000000ff, 0x82000580, 0x00000012, | ||
5561 | 0x04020004, 0x5808020c, 0x80040580, 0x04000004, | ||
5562 | 0x58080000, 0x40084000, 0x0401f7f3, 0x58080000, | ||
5563 | 0x49781000, 0x802041c0, 0x04000006, 0x48004000, | ||
5564 | 0x80000540, 0x04020007, 0x48226810, 0x0401f005, | ||
5565 | 0x4802680f, 0x80000540, 0x04020002, 0x497a6810, | ||
5566 | 0x4d2c0000, 0x400a5800, 0x4a025a06, 0x00000002, | ||
5567 | 0x0201f800, 0x000202da, 0x5c025800, 0x0401f7bc, | ||
5568 | 0x592c040a, 0x8c00051c, 0x04000016, 0x592c0206, | ||
5569 | 0x82000580, 0x0000ffff, 0x04020012, 0x592e6009, | ||
5570 | 0x83300580, 0xffffffff, 0x040007b1, 0x83300480, | ||
5571 | 0x0010d1c0, 0x04001010, 0x59a8000b, 0x81300480, | ||
5572 | 0x0402100d, 0x59300008, 0x800001c0, 0x04020005, | ||
5573 | 0x59300203, 0x82000580, 0x00000007, 0x04000797, | ||
5574 | 0x492fc857, 0x4a025a06, 0x00000029, 0x0201f000, | ||
5575 | 0x000202da, 0x492fc857, 0x4a025a06, 0x00000008, | ||
5576 | 0x0201f000, 0x000202da, 0x492fc857, 0x4a025a06, | ||
5577 | 0x00000045, 0x0201f000, 0x000202da, 0x492fc857, | ||
5578 | 0x4a025a06, 0x0000002a, 0x0201f000, 0x000202da, | ||
5579 | 0x492fc857, 0x4a025a06, 0x00000028, 0x0201f000, | ||
5580 | 0x000202da, 0x492fc857, 0x4a025a06, 0x00000006, | ||
5581 | 0x0201f000, 0x000202da, 0x492fc857, 0x4a025a06, | ||
5582 | 0x0000000e, 0x0201f000, 0x000202da, 0x59340010, | ||
5583 | 0x492e6810, 0x492fc857, 0x80000d40, 0x04000003, | ||
5584 | 0x492c0800, 0x1c01f000, 0x5934040b, 0x492e680f, | ||
5585 | 0x492fc857, 0x4803c857, 0x80000540, 0x04020003, | ||
5586 | 0x4a026a03, 0x00000001, 0x1c01f000, 0x59a8000e, | ||
5587 | 0x81640480, 0x0402176e, 0x42026000, 0x0010d1c0, | ||
5588 | 0x59300009, 0x81340580, 0x04020004, 0x59300202, | ||
5589 | 0x80040580, 0x04000759, 0x83326400, 0x00000024, | ||
5590 | 0x41580000, 0x81300480, 0x040017f6, 0x0401f760, | ||
5591 | 0x492fc857, 0x592c0407, 0x82000c80, 0x0000199a, | ||
5592 | 0x040215f1, 0x592c0204, 0x80000112, 0x040205de, | ||
5593 | 0x592e8a06, 0x0201f800, 0x00020245, 0x04020059, | ||
5594 | 0x0201f800, 0x001049e7, 0x04020059, 0x592e780a, | ||
5595 | 0x493fc857, 0x8d3e7d3e, 0x04020007, 0x59a80021, | ||
5596 | 0x80000540, 0x0402004f, 0x0201f800, 0x00104838, | ||
5597 | 0x040005dd, 0x833c1d00, 0x0000001f, 0x040005da, | ||
5598 | 0x592c0207, 0x82000c80, 0x00001000, 0x040215d6, | ||
5599 | 0x800000c2, 0x800008c4, 0x8005d400, 0x592e9008, | ||
5600 | 0x592e9809, 0x5934080d, 0x800409c0, 0x0402002e, | ||
5601 | 0x833c1d00, 0x0000001f, 0x81780040, 0x80000000, | ||
5602 | 0x800c1902, 0x040217fe, 0x040205c7, 0x0c01f001, | ||
5603 | 0x001056e9, 0x001056ec, 0x001056f9, 0x001056fc, | ||
5604 | 0x001056ff, 0x0201f800, 0x0010903e, 0x0401f01a, | ||
5605 | 0x0201f800, 0x0010480b, 0x04000027, 0x80e9d1c0, | ||
5606 | 0x02020800, 0x00105fae, 0x42028000, 0x00000005, | ||
5607 | 0x417a9000, 0x417a9800, 0x0201f800, 0x0010904e, | ||
5608 | 0x0401f00d, 0x42027000, 0x0000004d, 0x0401f006, | ||
5609 | 0x42027000, 0x0000004e, 0x0401f003, 0x42027000, | ||
5610 | 0x00000052, 0x0201f800, 0x001046c9, 0x02020800, | ||
5611 | 0x0010907e, 0x04000010, 0x8d3e7d3e, 0x04020017, | ||
5612 | 0x1c01f000, 0x58040002, 0x80000540, 0x04020007, | ||
5613 | 0x4d3c0000, 0x40067800, 0x0201f800, 0x001047eb, | ||
5614 | 0x5c027800, 0x040207cb, 0x4a025a06, 0x00000030, | ||
5615 | 0x0401f00d, 0x4a025a06, 0x0000002c, 0x0401f00a, | ||
5616 | 0x4a025a06, 0x00000028, 0x0401f007, 0x4a025a06, | ||
5617 | 0x00000029, 0x0401f004, 0x497a5c09, 0x4a025a06, | ||
5618 | 0x00000000, 0x4a025a04, 0x00000103, 0x0201f000, | ||
5619 | 0x000202da, 0x492fc857, 0x592c0204, 0x80000110, | ||
5620 | 0x80000040, 0x04000002, 0x0401f56f, 0x592c0207, | ||
5621 | 0x82000500, 0x000003ff, 0x48025a07, 0x8c000506, | ||
5622 | 0x04000004, 0x82000500, 0x00000070, 0x04020004, | ||
5623 | 0x59a80821, 0x800409c0, 0x04020018, 0x4a025a06, | ||
5624 | 0x0000dead, 0x592c0408, 0x82000500, 0x0000f0ff, | ||
5625 | 0x48025c08, 0x0201f800, 0x001043b4, 0x04020002, | ||
5626 | 0x1c01f000, 0x49425a06, 0x8058b1c0, 0x04000009, | ||
5627 | 0x0201f800, 0x0010955f, 0x0401f80f, 0x44042800, | ||
5628 | 0x82580580, 0x00000002, 0x04020002, 0x48082801, | ||
5629 | 0x0201f000, 0x000202da, 0x42028000, 0x00000031, | ||
5630 | 0x42000800, 0x00000001, 0x4200b000, 0x00000001, | ||
5631 | 0x0401f7ed, 0x592c0408, 0x80000118, 0x832c2c00, | ||
5632 | 0x00000009, 0x80142c00, 0x1c01f000, 0x492fc857, | ||
5633 | 0x4a025a08, 0x00000006, 0x0201f000, 0x000202da, | ||
5634 | 0x492fc857, 0x4a025a08, 0x00000001, 0x0201f000, | ||
5635 | 0x000202da, 0x492fc857, 0x592c040a, 0x82000500, | ||
5636 | 0x00000003, 0x04000020, 0x0201f800, 0x0002075a, | ||
5637 | 0x04000021, 0x592c0204, 0x492e6008, 0x82000500, | ||
5638 | 0x000000ff, 0x82000580, 0x00000045, 0x0400000e, | ||
5639 | 0x592c000b, 0x0201f800, 0x00105c9a, 0x02000800, | ||
5640 | 0x00020245, 0x04020018, 0x42027000, 0x00000041, | ||
5641 | 0x49366009, 0x4a026406, 0x00000001, 0x0201f000, | ||
5642 | 0x000207a1, 0x59300015, 0x8400055e, 0x48026015, | ||
5643 | 0x42026800, 0x0010b524, 0x42027000, 0x00000040, | ||
5644 | 0x0401f7f4, 0x4a025a06, 0x00000101, 0x0201f000, | ||
5645 | 0x000202da, 0x4a025a06, 0x0000002c, 0x0201f000, | ||
5646 | 0x000202da, 0x4a025a06, 0x00000028, 0x0201f800, | ||
5647 | 0x000202da, 0x0201f000, 0x0002077d, 0x492fc857, | ||
5648 | 0x0201f800, 0x001062e1, 0x0400000b, 0x592c0204, | ||
5649 | 0x80000110, 0x80000040, 0x040204fb, 0x592c0c06, | ||
5650 | 0x800409c0, 0x04000009, 0x42000000, 0x00000102, | ||
5651 | 0x0401f003, 0x42000000, 0x00000104, 0x48025a06, | ||
5652 | 0x0201f000, 0x000202da, 0x592c0c07, 0x800409c0, | ||
5653 | 0x04000024, 0x82040480, 0x00000005, 0x04021021, | ||
5654 | 0x4c040000, 0x80040800, 0x0201f800, 0x00106306, | ||
5655 | 0x5c001000, 0x04020018, 0x832c0400, 0x00000008, | ||
5656 | 0x4000a000, 0x0201f800, 0x0010632f, 0x04020012, | ||
5657 | 0x592c1207, 0x82cc0580, 0x0010b50e, 0x04020009, | ||
5658 | 0x58c80c0b, 0x84040d00, 0x84040d02, 0x8c081500, | ||
5659 | 0x04000002, 0x84040d5e, 0x4805940b, 0x0401f001, | ||
5660 | 0x42000000, 0x00000000, 0x48025a06, 0x0201f000, | ||
5661 | 0x000202da, 0x42000000, 0x00000103, 0x0401f7fb, | ||
5662 | 0x42000000, 0x00000102, 0x0401f7f8, 0x492fc857, | ||
5663 | 0x592e7c06, 0x833c0500, 0xfffffffe, 0x04020043, | ||
5664 | 0x592c4007, 0x42026000, 0x0010d1c0, 0x41581800, | ||
5665 | 0x400c0000, 0x81300480, 0x04021023, 0x59300203, | ||
5666 | 0x82000580, 0x00000000, 0x04000007, 0x59300008, | ||
5667 | 0x80000d40, 0x04000004, 0x58040005, 0x80200580, | ||
5668 | 0x04000004, 0x83326400, 0x00000024, 0x0401f7f1, | ||
5669 | 0x58040204, 0x82000500, 0x000000ff, 0x82000d80, | ||
5670 | 0x00000053, 0x04000007, 0x82000d80, 0x00000048, | ||
5671 | 0x04000004, 0x82000580, 0x00000018, 0x04020023, | ||
5672 | 0x4d2c0000, 0x0201f800, 0x00108be3, 0x5c025800, | ||
5673 | 0x0400001e, 0x4a025a06, 0x00000000, 0x0201f000, | ||
5674 | 0x000202da, 0x592e8a06, 0x83440480, 0x000007f0, | ||
5675 | 0x04021016, 0x83440400, 0x0010ac00, 0x50000000, | ||
5676 | 0x80026d40, 0x04000011, 0x4d2c0000, 0x0201f800, | ||
5677 | 0x001047cb, 0x0400000c, 0x42028000, 0x00000005, | ||
5678 | 0x592c0a08, 0x0201f800, 0x00104e70, 0x0201f800, | ||
5679 | 0x001091cc, 0x0201f800, 0x000202da, 0x5c025800, | ||
5680 | 0x0401f7e5, 0x5c025800, 0x4a025a06, 0x00000031, | ||
5681 | 0x0201f000, 0x000202da, 0x492fc857, 0x4d2c0000, | ||
5682 | 0x0201f800, 0x001007e4, 0x04000016, 0x492fc857, | ||
5683 | 0x412f4000, 0x0201f800, 0x001007e4, 0x0400000e, | ||
5684 | 0x492fc857, 0x412dd800, 0x0201f800, 0x00103b28, | ||
5685 | 0x0201f800, 0x00103b32, 0x49a1d80b, 0x5c025800, | ||
5686 | 0x492dd80a, 0x0201f800, 0x00102214, 0x0201f000, | ||
5687 | 0x00102233, 0x41a25800, 0x0201f800, 0x001007f4, | ||
5688 | 0x5c025800, 0x4a025a06, 0x00004005, 0x4a025c06, | ||
5689 | 0x00000002, 0x0201f000, 0x000202da, 0x4807c857, | ||
5690 | 0x485fc857, 0x4200b800, 0x00000001, 0x5c000800, | ||
5691 | 0x4c5c0000, 0x0401f005, 0x4807c857, 0x485fc857, | ||
5692 | 0x5c000800, 0x4d780000, 0x4803c857, 0x492fc857, | ||
5693 | 0x8c00050e, 0x02020800, 0x001005d0, 0x4203e000, | ||
5694 | 0x50000000, 0x4200b800, 0x00008003, 0x0201f000, | ||
5695 | 0x001005dd, 0x592c0204, 0x80000110, 0x80000040, | ||
5696 | 0x04020441, 0x0201f800, 0x00104a34, 0x04020002, | ||
5697 | 0x1c01f000, 0x49425a06, 0x4806580d, 0x480a580e, | ||
5698 | 0x4943c857, 0x4807c857, 0x480bc857, 0x0201f000, | ||
5699 | 0x000202da, 0x592c0204, 0x80000110, 0x80000040, | ||
5700 | 0x04020431, 0x0201f800, 0x00104b8b, 0x04020002, | ||
5701 | 0x1c01f000, 0x49425a06, 0x48065811, 0x480a5812, | ||
5702 | 0x0201f000, 0x000202da, 0x592c0204, 0x80000110, | ||
5703 | 0x04000425, 0x80000040, 0x0402000c, 0x4202e000, | ||
5704 | 0x00000001, 0x592c020a, 0x8c000504, 0x02000000, | ||
5705 | 0x000204d0, 0x592c0207, 0x82000c80, 0x00001001, | ||
5706 | 0x04021429, 0x0401f009, 0x4202e000, 0x00000003, | ||
5707 | 0x48033002, 0x492f3003, 0x492f3004, 0x4a033008, | ||
5708 | 0x000204d0, 0x1c01f000, 0x4202e000, 0x00000002, | ||
5709 | 0x42000000, 0x0010beda, 0x50007000, 0x492c700b, | ||
5710 | 0x4978700e, 0x4978700c, 0x592c0011, 0x592c0812, | ||
5711 | 0x48007007, 0x48047008, 0x592c1013, 0x82080500, | ||
5712 | 0xffff0000, 0x04000003, 0x0201f800, 0x001005d8, | ||
5713 | 0x4978700d, 0x82080480, 0x00000180, 0x4803c857, | ||
5714 | 0x04001007, 0x4800700f, 0x4a007005, 0x00000180, | ||
5715 | 0x4a007004, 0x00000060, 0x0401f005, 0x4978700f, | ||
5716 | 0x48087005, 0x80081104, 0x48087004, 0x5838000a, | ||
5717 | 0x48007003, 0x40381000, 0x0201f000, 0x00100858, | ||
5718 | 0x0201f800, 0x001007d3, 0x04000003, 0x59980007, | ||
5719 | 0x0801f000, 0x1c01f000, 0x40307000, 0x5838000b, | ||
5720 | 0x80025d40, 0x0400001b, 0x58380002, 0x82000580, | ||
5721 | 0x00000100, 0x0400001d, 0x4c380000, 0x592c0204, | ||
5722 | 0x82000500, 0x000000ff, 0x82000580, 0x00000012, | ||
5723 | 0x0400000b, 0x592c0208, 0x8400054e, 0x48025a08, | ||
5724 | 0x4a025a06, 0x00000002, 0x4a025a04, 0x00000103, | ||
5725 | 0x0201f800, 0x000202c1, 0x0401f005, 0x4a025a06, | ||
5726 | 0x00000010, 0x0201f800, 0x000202da, 0x5c007000, | ||
5727 | 0x4202e000, 0x00000001, 0x4a007002, 0x00000100, | ||
5728 | 0x49787010, 0x1c01f000, 0x58380004, 0x82000480, | ||
5729 | 0x00000003, 0x04000087, 0x58380010, 0x8c000500, | ||
5730 | 0x04020019, 0x4200b000, 0x00000003, 0x832cac00, | ||
5731 | 0x00000011, 0x5838000a, 0x5838100d, 0x8008a400, | ||
5732 | 0x4c380000, 0x0201f800, 0x0010ab17, 0x5c007000, | ||
5733 | 0x5838000d, 0x82000400, 0x00000003, 0x4800700d, | ||
5734 | 0x4a007010, 0x00000001, 0x58380004, 0x82000480, | ||
5735 | 0x00000003, 0x48007004, 0x82000580, 0x00000003, | ||
5736 | 0x0400006c, 0x5838000e, 0x80001d40, 0x04020020, | ||
5737 | 0x4c380000, 0x0201f800, 0x001007d3, 0x5c007000, | ||
5738 | 0x04000010, 0x4a025a04, 0x0000010a, 0x42001800, | ||
5739 | 0x00000005, 0x480c700e, 0x5838000c, 0x80000540, | ||
5740 | 0x04020002, 0x5838000b, 0x40000800, 0x492c0801, | ||
5741 | 0x492c700c, 0x42000800, 0x0000000f, 0x0401f011, | ||
5742 | 0x4202e000, 0x00000008, 0x4a033007, 0x00105915, | ||
5743 | 0x1c01f000, 0x4202e000, 0x00000002, 0x42000000, | ||
5744 | 0x0010beda, 0x50007000, 0x0401f7e7, 0x583a580c, | ||
5745 | 0x400c0000, 0x42000800, 0x00000014, 0x80040c80, | ||
5746 | 0x58381004, 0x5838000f, 0x41783000, 0x80000540, | ||
5747 | 0x04020005, 0x84183540, 0x82081480, 0x00000003, | ||
5748 | 0x0400003c, 0x40080000, 0x80040480, 0x04001002, | ||
5749 | 0x40080800, 0x4004b000, 0x412c0000, 0x800c0400, | ||
5750 | 0x4000a800, 0x5838000a, 0x5838100d, 0x8008a400, | ||
5751 | 0x4c080000, 0x4c040000, 0x4c0c0000, 0x4c380000, | ||
5752 | 0x0201f800, 0x0010ab17, 0x5c007000, 0x5c001800, | ||
5753 | 0x5c000800, 0x40040000, 0x58381004, 0x80080480, | ||
5754 | 0x48007004, 0x82000580, 0x00000003, 0x04000002, | ||
5755 | 0x84183500, 0x5c000000, 0x80041400, 0x82080480, | ||
5756 | 0x00000060, 0x04020003, 0x84183542, 0x41781000, | ||
5757 | 0x400c0000, 0x80041c00, 0x820c0480, 0x00000014, | ||
5758 | 0x04020003, 0x84183544, 0x40001800, 0x40080800, | ||
5759 | 0x4804700d, 0x480c700e, 0x40180000, 0x0c01f001, | ||
5760 | 0x00105960, 0x00105964, 0x00105962, 0x00105960, | ||
5761 | 0x001058fc, 0x00105964, 0x00105962, 0x00105960, | ||
5762 | 0x0201f800, 0x001005d8, 0x5838100f, 0x0401f739, | ||
5763 | 0x5838080d, 0x82040400, 0x00000002, 0x5838100a, | ||
5764 | 0x80080400, 0x50001000, 0x800811c0, 0x0402000f, | ||
5765 | 0x4202e000, 0x00000001, 0x583a580b, 0x4978700b, | ||
5766 | 0x49787010, 0x592c0204, 0x82000500, 0x000000ff, | ||
5767 | 0x82000580, 0x00000012, 0x02000000, 0x00020507, | ||
5768 | 0x0201f000, 0x000204d0, 0x5838000a, 0x80040c00, | ||
5769 | 0x82381c00, 0x00000007, 0x54041800, 0x80040800, | ||
5770 | 0x800c1800, 0x54041800, 0x0401f71a, 0x0201f800, | ||
5771 | 0x001007d3, 0x02000800, 0x001005d8, 0x4a02580a, | ||
5772 | 0x0010be79, 0x42000800, 0x0010beda, 0x452c0800, | ||
5773 | 0x497a580b, 0x497a580c, 0x497a580d, 0x497a580e, | ||
5774 | 0x497a580f, 0x4a025809, 0x001058b6, 0x497a5810, | ||
5775 | 0x4a025802, 0x00000100, 0x4a025801, 0x00000001, | ||
5776 | 0x1c01f000, 0x59c80007, 0x8c000502, 0x04000070, | ||
5777 | 0x835c2c80, 0x00000005, 0x02001000, 0x00105f23, | ||
5778 | 0x59c82817, 0x497b9005, 0x82140500, 0x00e00000, | ||
5779 | 0x0402004f, 0x82140500, 0x000003ff, 0x82001c00, | ||
5780 | 0x00000006, 0x41cc2000, 0x42003000, 0x00006080, | ||
5781 | 0x820c0480, 0x00000040, 0x04001006, 0x42001000, | ||
5782 | 0x00000040, 0x820c1c80, 0x00000040, 0x0401f003, | ||
5783 | 0x400c1000, 0x41781800, 0x54182000, 0x80102000, | ||
5784 | 0x80183000, 0x80081040, 0x040207fc, 0x800c19c0, | ||
5785 | 0x04000005, 0x59c80005, 0x80000000, 0x48039005, | ||
5786 | 0x0401f7ea, 0x82140500, 0x01f60000, 0x04020029, | ||
5787 | 0x82140500, 0x0000f000, 0x0400000b, 0x82000c80, | ||
5788 | 0x00002000, 0x0402100f, 0x82140500, 0x0e000000, | ||
5789 | 0x80000132, 0x0c01f840, 0x4a039005, 0x00000140, | ||
5790 | 0x1c01f000, 0x59cc0400, 0x82000500, 0x0000ff00, | ||
5791 | 0x82000580, 0x00008100, 0x040007f4, 0x0401f01c, | ||
5792 | 0x4817c857, 0x82140500, 0x000003ff, 0x04020007, | ||
5793 | 0x59cc0400, 0x82000500, 0x0000ff00, 0x82000580, | ||
5794 | 0x00008100, 0x04020012, 0x42000000, 0x0010b8bd, | ||
5795 | 0x0201f800, 0x0010aa47, 0x0201f800, 0x00105dfa, | ||
5796 | 0x4803c856, 0x4a039005, 0x00000140, 0x0401f020, | ||
5797 | 0x4817c857, 0x82140500, 0x00f60000, 0x04020004, | ||
5798 | 0x0201f800, 0x00105e35, 0x040207d2, 0x0201f800, | ||
5799 | 0x0010513b, 0x04000010, 0x59c400a4, 0x4803c857, | ||
5800 | 0x82000500, 0x0000000f, 0x82000580, 0x0000000a, | ||
5801 | 0x04020009, 0x497b5016, 0x59c400a3, 0x82000540, | ||
5802 | 0x00080000, 0x480388a3, 0x82000500, 0xfff7ffff, | ||
5803 | 0x480388a3, 0x4817c856, 0x0201f800, 0x0010a978, | ||
5804 | 0x4a039005, 0x00000140, 0x0401f842, 0x4803c856, | ||
5805 | 0x1c01f000, 0x00105a1d, 0x00105cf4, 0x00105a15, | ||
5806 | 0x00105a15, 0x00105a15, 0x00105a15, 0x00105a15, | ||
5807 | 0x00105a15, 0x4803c857, 0x42000000, 0x0010b85a, | ||
5808 | 0x0201f800, 0x0010aa47, 0x4a039005, 0x00000140, | ||
5809 | 0x1c01f000, 0x4817c857, 0x59cc0400, 0x4803c857, | ||
5810 | 0x82000d00, 0x0000ff00, 0x82041500, 0x0000f000, | ||
5811 | 0x840409c0, 0x82140500, 0x000003ff, 0x800018c4, | ||
5812 | 0x8c142d14, 0x04000005, 0x59cc0002, 0x82000500, | ||
5813 | 0x00000003, 0x800c1c80, 0x480f5016, 0x82080580, | ||
5814 | 0x00002000, 0x04020011, 0x836c0580, 0x00000001, | ||
5815 | 0x0402000c, 0x59cc0006, 0x82000500, 0xff000000, | ||
5816 | 0x82000580, 0x11000000, 0x04020011, 0x0201f800, | ||
5817 | 0x00103b38, 0x0201f800, 0x00105f48, 0x0401f00c, | ||
5818 | 0x0401f81f, 0x0401f00a, 0x82080580, 0x00003000, | ||
5819 | 0x04020003, 0x0401fa06, 0x0401f005, 0x82080580, | ||
5820 | 0x00008000, 0x04020002, 0x0401fafc, 0x1c01f000, | ||
5821 | 0x4817c857, 0x42000000, 0x0010b859, 0x0201f800, | ||
5822 | 0x0010aa47, 0x836c0580, 0x00000003, 0x0402000b, | ||
5823 | 0x4c080000, 0x4c0c0000, 0x42001000, 0x00008048, | ||
5824 | 0x40141800, 0x80142120, 0x0201f800, 0x00103a3e, | ||
5825 | 0x5c001800, 0x5c001000, 0x1c01f000, 0x4807c857, | ||
5826 | 0x59cc0002, 0x82000500, 0xff000000, 0x82001580, | ||
5827 | 0x01000000, 0x04000004, 0x82001580, 0x23000000, | ||
5828 | 0x04020192, 0x82040580, 0x00000023, 0x0402003f, | ||
5829 | 0x0401fb6a, 0x0400018d, 0x59300c06, 0x82040580, | ||
5830 | 0x00000010, 0x04000013, 0x82040580, 0x00000011, | ||
5831 | 0x04000010, 0x82040580, 0x00000001, 0x0400000d, | ||
5832 | 0x82040580, 0x00000004, 0x0400000a, 0x82040580, | ||
5833 | 0x00000008, 0x04000007, 0x82040580, 0x0000000a, | ||
5834 | 0x04000004, 0x4933c857, 0x4807c857, 0x0401f177, | ||
5835 | 0x59300004, 0x82000500, 0x80010000, 0x04000004, | ||
5836 | 0x0201f800, 0x00106f60, 0x04020170, 0x59cc0a04, | ||
5837 | 0x48066202, 0x59cc0006, 0x82000500, 0xffff0000, | ||
5838 | 0x82000d80, 0x02000000, 0x04020005, 0x42027000, | ||
5839 | 0x00000015, 0x0201f000, 0x000207a1, 0x82000d80, | ||
5840 | 0x02140000, 0x040007fa, 0x82000d80, 0x02100000, | ||
5841 | 0x040007f7, 0x82000d80, 0x02100000, 0x040007f4, | ||
5842 | 0x82000d80, 0x01000000, 0x04020158, 0x59cc0006, | ||
5843 | 0x82000500, 0x0000ffff, 0x04020154, 0x42027000, | ||
5844 | 0x00000016, 0x0401f7ec, 0x82040580, 0x00000022, | ||
5845 | 0x0402014e, 0x59a80806, 0x8c040d14, 0x04000011, | ||
5846 | 0x0401f967, 0x0402000f, 0x0401f97d, 0x0400000d, | ||
5847 | 0x42027000, 0x0000004c, 0x59cc0001, 0x82000500, | ||
5848 | 0x00ffffff, 0x0201f800, 0x00105eec, 0x0400012a, | ||
5849 | 0x42028800, 0x0000ffff, 0x417a6800, 0x0401f126, | ||
5850 | 0x59cc0006, 0x82000500, 0xffff0000, 0x82000d80, | ||
5851 | 0x03000000, 0x04020021, 0x59a80026, 0x8c000508, | ||
5852 | 0x04000017, 0x8400054c, 0x48035026, 0x59cc0800, | ||
5853 | 0x82040d00, 0x00ffffff, 0x48075010, 0x497b8830, | ||
5854 | 0x84040d70, 0x48078832, 0x59c40802, 0x84040d4c, | ||
5855 | 0x48078802, 0x59cc0007, 0x82000500, 0x0000ffff, | ||
5856 | 0x48038893, 0x4803501e, 0x42000800, 0x00000003, | ||
5857 | 0x59a81010, 0x0201f800, 0x00106c78, 0x59cc0006, | ||
5858 | 0x82000500, 0x0000ffff, 0x04020118, 0x42027000, | ||
5859 | 0x00000017, 0x0401f0d9, 0x82000d80, 0x04000000, | ||
5860 | 0x04020011, 0x59cc0006, 0x82000500, 0x0000ffff, | ||
5861 | 0x0402010e, 0x0201f800, 0x0010513b, 0x04000004, | ||
5862 | 0x42027000, 0x0000001d, 0x0401f0cc, 0x59a80026, | ||
5863 | 0x84000548, 0x48035026, 0x42027000, 0x00000030, | ||
5864 | 0x0401f0c6, 0x82000d80, 0x05000000, 0x04020008, | ||
5865 | 0x59cc0006, 0x82000500, 0x0000ffff, 0x040200fb, | ||
5866 | 0x42027000, 0x00000018, 0x0401f0bc, 0x82000d80, | ||
5867 | 0x20100000, 0x04020004, 0x42027000, 0x00000019, | ||
5868 | 0x0401f0b6, 0x82000d80, 0x21100000, 0x04020004, | ||
5869 | 0x42027000, 0x0000001a, 0x0401f0b0, 0x82000d80, | ||
5870 | 0x52000000, 0x04020008, 0x59cc0006, 0x82000500, | ||
5871 | 0x0000ffff, 0x040200e5, 0x42027000, 0x0000001b, | ||
5872 | 0x0401f0a6, 0x82000d80, 0x50000000, 0x04020008, | ||
5873 | 0x59cc0006, 0x82000500, 0x0000ffff, 0x040200db, | ||
5874 | 0x42027000, 0x0000001c, 0x0401f09c, 0x82000d80, | ||
5875 | 0x13000000, 0x04020004, 0x42027000, 0x00000034, | ||
5876 | 0x0401f096, 0x82000d80, 0x12000000, 0x04020008, | ||
5877 | 0x59cc0006, 0x82000500, 0x0000ffff, 0x040200cb, | ||
5878 | 0x42027000, 0x00000024, 0x0401f08c, 0x82000d00, | ||
5879 | 0xff000000, 0x82040d80, 0x24000000, 0x04020004, | ||
5880 | 0x42027000, 0x0000002d, 0x0401f084, 0x82000d00, | ||
5881 | 0xff000000, 0x82040d80, 0x53000000, 0x04020004, | ||
5882 | 0x42027000, 0x0000002a, 0x0401f07c, 0x82000d80, | ||
5883 | 0x0f000000, 0x04020004, 0x42027000, 0x00000020, | ||
5884 | 0x0401f076, 0x82000d80, 0x61040000, 0x04020036, | ||
5885 | 0x83cc1400, 0x00000006, 0x80080800, 0x50080000, | ||
5886 | 0x82000500, 0x0000ffff, 0x82000480, 0x00000004, | ||
5887 | 0x4c580000, 0x8000b104, 0x8058b1c0, 0x04000026, | ||
5888 | 0x4c100000, 0x50041800, 0x820c1500, 0x03000000, | ||
5889 | 0x80081130, 0x42000000, 0x0010b817, 0x82082580, | ||
5890 | 0x00000000, 0x04020004, 0x42000000, 0x0010b814, | ||
5891 | 0x0401f00c, 0x82082580, 0x00000001, 0x04020004, | ||
5892 | 0x42000000, 0x0010b815, 0x0401f006, 0x82082580, | ||
5893 | 0x00000002, 0x04020003, 0x42000000, 0x0010b816, | ||
5894 | 0x0201f800, 0x0010aa47, 0x42001000, 0x00008015, | ||
5895 | 0x820c2500, 0x0000ffff, 0x800c1920, 0x0201f800, | ||
5896 | 0x00103a3e, 0x5c002000, 0x80040800, 0x8058b040, | ||
5897 | 0x040207da, 0x5c00b000, 0x42027000, 0x00000023, | ||
5898 | 0x0401f03e, 0x82000d80, 0x60000000, 0x04020004, | ||
5899 | 0x42027000, 0x0000003f, 0x0401f038, 0x82000d80, | ||
5900 | 0x54000000, 0x04020006, 0x0401fb12, 0x0402006f, | ||
5901 | 0x42027000, 0x00000046, 0x0401f030, 0x82000d80, | ||
5902 | 0x55000000, 0x04020009, 0x0401fb32, 0x04020004, | ||
5903 | 0x42027000, 0x00000041, 0x0401f028, 0x42027000, | ||
5904 | 0x00000042, 0x0401f025, 0x82000d80, 0x78000000, | ||
5905 | 0x04020004, 0x42027000, 0x00000045, 0x0401f01f, | ||
5906 | 0x82000d80, 0x10000000, 0x04020004, 0x42027000, | ||
5907 | 0x0000004e, 0x0401f019, 0x82000d80, 0x63000000, | ||
5908 | 0x04020004, 0x42027000, 0x0000004a, 0x0401f013, | ||
5909 | 0x82000d00, 0xff000000, 0x82040d80, 0x56000000, | ||
5910 | 0x04020004, 0x42027000, 0x0000004f, 0x0401f00b, | ||
5911 | 0x82000d00, 0xff000000, 0x82040d80, 0x57000000, | ||
5912 | 0x04020004, 0x42027000, 0x00000050, 0x0401f003, | ||
5913 | 0x42027000, 0x0000001d, 0x59cc3800, 0x821c3d00, | ||
5914 | 0x00ffffff, 0x821c0580, 0x00fffffe, 0x59cc0001, | ||
5915 | 0x04020005, 0x40003000, 0x42028800, 0x000007fe, | ||
5916 | 0x0401f003, 0x0401f8d1, 0x04020030, 0x0201f800, | ||
5917 | 0x001045a6, 0x0402002d, 0x83380580, 0x00000046, | ||
5918 | 0x04020004, 0x59a80010, 0x80180580, 0x04000027, | ||
5919 | 0x59340200, 0x8c000514, 0x0400000f, 0x83380580, | ||
5920 | 0x00000030, 0x0400000c, 0x83380580, 0x0000003f, | ||
5921 | 0x04000009, 0x83380580, 0x00000034, 0x04000006, | ||
5922 | 0x83380580, 0x00000024, 0x04000003, 0x42027000, | ||
5923 | 0x0000004c, 0x0201f800, 0x0002075a, 0x04000018, | ||
5924 | 0x49366009, 0x4a026406, 0x00000004, 0x59cc0c04, | ||
5925 | 0x48066202, 0x83380580, 0x0000004c, 0x04020009, | ||
5926 | 0x4a026406, 0x00000011, 0x813669c0, 0x04020005, | ||
5927 | 0x59cc0001, 0x82000500, 0x00ffffff, 0x4802601e, | ||
5928 | 0x0201f000, 0x000207a1, 0x59880052, 0x4803c857, | ||
5929 | 0x80000000, 0x48031052, 0x1c01f000, 0x42001000, | ||
5930 | 0x00008049, 0x59cc1806, 0x800c1930, 0x0201f800, | ||
5931 | 0x00103a3e, 0x0201f800, 0x00107942, 0x040007f3, | ||
5932 | 0x49366009, 0x4a026406, 0x00000004, 0x59cc0c04, | ||
5933 | 0x48066202, 0x4a026403, 0x00000009, 0x4a02641a, | ||
5934 | 0x00000009, 0x4a02621a, 0x00002900, 0x4a026203, | ||
5935 | 0x00000001, 0x0201f000, 0x0010672b, 0x59a80026, | ||
5936 | 0x4803c857, 0x8c000508, 0x04000010, 0x59cc0006, | ||
5937 | 0x82000500, 0xff000000, 0x82000d80, 0x03000000, | ||
5938 | 0x0400000c, 0x82000d80, 0x20000000, 0x04000009, | ||
5939 | 0x82000d80, 0x05000000, 0x04000006, 0x82000d80, | ||
5940 | 0x21000000, 0x04000003, 0x80000580, 0x1c01f000, | ||
5941 | 0x82000540, 0x00000001, 0x0401f7fd, 0x59cc2006, | ||
5942 | 0x82102500, 0xff000000, 0x9c1021c0, 0x0401f807, | ||
5943 | 0x820c1c00, 0x0010b4e3, 0x500c1800, 0x800c0500, | ||
5944 | 0x4803c857, 0x1c01f000, 0x40100800, 0x41781800, | ||
5945 | 0x82040480, 0x00000020, 0x04001004, 0x800c1800, | ||
5946 | 0x40000800, 0x0401f7fb, 0x82040500, 0x0000000f, | ||
5947 | 0x82000400, 0x0010ab38, 0x50000000, 0x8c040d08, | ||
5948 | 0x04000002, 0x900001c0, 0x1c01f000, 0x4803c856, | ||
5949 | 0x0401fac3, 0x0402000a, 0x0201f800, 0x0010210a, | ||
5950 | 0x04020007, 0x59cc0002, 0x82000500, 0xff000000, | ||
5951 | 0x82000d80, 0x08000000, 0x04000802, 0x1c01f000, | ||
5952 | 0x4803c856, 0x59cc0400, 0x82000d00, 0x0000ff00, | ||
5953 | 0x840409c0, 0x82040580, 0x00000033, 0x0402001f, | ||
5954 | 0x0401f976, 0x04000038, 0x59cc0a04, 0x48066202, | ||
5955 | 0x59cc0006, 0x4803c857, 0x82000500, 0xffff0000, | ||
5956 | 0x82000d80, 0x02000000, 0x04020009, 0x59cc0006, | ||
5957 | 0x82000500, 0x0000ffff, 0x0402002b, 0x42027000, | ||
5958 | 0x00000015, 0x0201f000, 0x000207a1, 0x82000d80, | ||
5959 | 0x01000000, 0x04020024, 0x59cc0006, 0x82000500, | ||
5960 | 0x0000ffff, 0x04020020, 0x42027000, 0x00000016, | ||
5961 | 0x0201f000, 0x000207a1, 0x82040580, 0x00000032, | ||
5962 | 0x04020019, 0x59cc0006, 0x82000500, 0xffff0000, | ||
5963 | 0x82000d80, 0x14000000, 0x04020013, 0x42027000, | ||
5964 | 0x00000038, 0x59cc0001, 0x0401f810, 0x0402000e, | ||
5965 | 0x0201f800, 0x001045a6, 0x0402000b, 0x0201f800, | ||
5966 | 0x0002075a, 0x04000008, 0x49366009, 0x4a026406, | ||
5967 | 0x00000004, 0x59cc0c04, 0x48066202, 0x0201f000, | ||
5968 | 0x000207a1, 0x1c01f000, 0x4803c857, 0x4c580000, | ||
5969 | 0x4c100000, 0x4c380000, 0x4c340000, 0x82003500, | ||
5970 | 0x00ffffff, 0x82181500, 0x00ff0000, 0x82081580, | ||
5971 | 0x00ff0000, 0x04020016, 0x82181480, 0x00fffffc, | ||
5972 | 0x04001013, 0x82181580, 0x00fffffd, 0x04020004, | ||
5973 | 0x42028800, 0x000007fd, 0x0401f040, 0x82181580, | ||
5974 | 0x00fffffe, 0x04020004, 0x42028800, 0x000007fe, | ||
5975 | 0x0401f03a, 0x82181580, 0x00fffffc, 0x04020004, | ||
5976 | 0x42028800, 0x000007fc, 0x0401f034, 0x41781000, | ||
5977 | 0x42002000, 0x00000000, 0x4200b000, 0x000007f0, | ||
5978 | 0x41ac7000, 0x50380000, 0x80006d40, 0x04020005, | ||
5979 | 0x800811c0, 0x0402001e, 0x8410155e, 0x0401f01c, | ||
5980 | 0x58340212, 0x82000500, 0x0000ff00, 0x04000011, | ||
5981 | 0x59a84010, 0x82204500, 0x00ffff00, 0x82180500, | ||
5982 | 0x00ffff00, 0x04000002, 0x80200580, 0x58340002, | ||
5983 | 0x0402000f, 0x82000500, 0x000000ff, 0x82184500, | ||
5984 | 0x000000ff, 0x80204580, 0x04020009, 0x0401f006, | ||
5985 | 0x58340002, 0x82000500, 0x00ffffff, 0x80184580, | ||
5986 | 0x04020003, 0x40128800, 0x0401f00c, 0x80102000, | ||
5987 | 0x80387000, 0x8058b040, 0x040207db, 0x800811c0, | ||
5988 | 0x04020005, 0x481bc857, 0x82000540, 0x00000001, | ||
5989 | 0x0401f003, 0x840a8d1e, 0x80000580, 0x5c006800, | ||
5990 | 0x5c007000, 0x5c002000, 0x5c00b000, 0x1c01f000, | ||
5991 | 0x59a80026, 0x8c00050e, 0x04000003, 0x8c000502, | ||
5992 | 0x04000006, 0x59cc0c00, 0x80040910, 0x82040500, | ||
5993 | 0x0000000f, 0x0c01f002, 0x1c01f000, 0x00105d0f, | ||
5994 | 0x00105d0f, 0x00105d0f, 0x00105de5, 0x00105d0f, | ||
5995 | 0x00105d11, 0x00105d29, 0x00105d2c, 0x00105d0f, | ||
5996 | 0x00105d0f, 0x00105d0f, 0x00105d0f, 0x00105d0f, | ||
5997 | 0x00105d0f, 0x00105d0f, 0x00105d0f, 0x4803c856, | ||
5998 | 0x1c01f000, 0x0401f8c5, 0x04000014, 0x82140500, | ||
5999 | 0x000003ff, 0x800000c4, 0x82000480, 0x00000008, | ||
6000 | 0x0400100e, 0x59cc0001, 0x59326809, 0x59340802, | ||
6001 | 0x80040580, 0x82000500, 0x00ffffff, 0x04020007, | ||
6002 | 0x59cc0a04, 0x48066202, 0x42027000, 0x00000046, | ||
6003 | 0x0201f000, 0x000207a1, 0x59cc0004, 0x4803c857, | ||
6004 | 0x1c01f000, 0x59cc0004, 0x4803c857, 0x1c01f000, | ||
6005 | 0x0401f8aa, 0x04000016, 0x82140500, 0x000003ff, | ||
6006 | 0x800000c4, 0x82000480, 0x0000000c, 0x04001010, | ||
6007 | 0x59cc0001, 0x82000500, 0x00ffffff, 0x59326809, | ||
6008 | 0x59340802, 0x82040d00, 0x00ffffff, 0x80040580, | ||
6009 | 0x04020007, 0x59cc0a04, 0x48066202, 0x42027000, | ||
6010 | 0x00000045, 0x0201f000, 0x000207a1, 0x59cc0004, | ||
6011 | 0x4803c857, 0x1c01f000, 0x4817c857, 0x0401f9c8, | ||
6012 | 0x04020011, 0x0201f800, 0x0010210a, 0x0402000e, | ||
6013 | 0x59cc0002, 0x82000500, 0xff000000, 0x82000580, | ||
6014 | 0x00000000, 0x04020008, 0x82040500, 0x0000000f, | ||
6015 | 0x82000c80, 0x00000006, 0x04021003, 0x4803c857, | ||
6016 | 0x0c01f002, 0x1c01f000, 0x00105d60, 0x00105d64, | ||
6017 | 0x00105d60, 0x00105d60, 0x00105db2, 0x00105dc3, | ||
6018 | 0x4803c857, 0x59cc0004, 0x4803c857, 0x1c01f000, | ||
6019 | 0x59cc0004, 0x4803c857, 0x59a80016, 0x800001c0, | ||
6020 | 0x040207f8, 0x59cc0802, 0x8c040d2e, 0x0402001d, | ||
6021 | 0x0201f800, 0x00107942, 0x02000800, 0x001005d8, | ||
6022 | 0x59cc0001, 0x4803c857, 0x0401ff28, 0x0402000d, | ||
6023 | 0x0201f800, 0x00020245, 0x0402000a, 0x4a026406, | ||
6024 | 0x00000005, 0x49366009, 0x59cc0c04, 0x48066202, | ||
6025 | 0x42027000, 0x00000088, 0x0201f000, 0x000207a1, | ||
6026 | 0x42028800, 0x0000ffff, 0x417a6800, 0x59cc0001, | ||
6027 | 0x82000500, 0x00ffffff, 0x4802601e, 0x0401f7f0, | ||
6028 | 0x59cc0001, 0x4803c857, 0x0401ff10, 0x040207d5, | ||
6029 | 0x0201f800, 0x001045a6, 0x040207d2, 0x59cc0005, | ||
6030 | 0x8c000500, 0x04020004, 0x59340200, 0x8c00050e, | ||
6031 | 0x040207cc, 0x0201f800, 0x001049f3, 0x0402000f, | ||
6032 | 0x0401f83e, 0x040007c7, 0x0201f800, 0x0002075a, | ||
6033 | 0x040007c4, 0x49366009, 0x4a026406, 0x00000002, | ||
6034 | 0x59cc0c04, 0x48066202, 0x42027000, 0x00000088, | ||
6035 | 0x0201f000, 0x000207a1, 0x0201f800, 0x0002075a, | ||
6036 | 0x040007b8, 0x49366009, 0x4a026406, 0x00000004, | ||
6037 | 0x59cc0c04, 0x48066202, 0x42027000, 0x00000001, | ||
6038 | 0x0201f000, 0x000207a1, 0x59cc0004, 0x4803c857, | ||
6039 | 0x59cc0802, 0x8c040d2e, 0x0400000b, 0x0401f81f, | ||
6040 | 0x04000009, 0x0401f960, 0x04020007, 0x59cc0a04, | ||
6041 | 0x48066202, 0x42027000, 0x00000089, 0x0201f000, | ||
6042 | 0x000207a1, 0x4933c857, 0x1c01f000, 0x59cc0004, | ||
6043 | 0x4803c857, 0x59cc0802, 0x8c040d2e, 0x0400000b, | ||
6044 | 0x0401f80e, 0x04000009, 0x0401f94f, 0x04020007, | ||
6045 | 0x59cc0a04, 0x48066202, 0x42027000, 0x0000008a, | ||
6046 | 0x0201f000, 0x000207a1, 0x4933c857, 0x1c01f000, | ||
6047 | 0x59cc0a04, 0x0401f002, 0x59cc0c04, 0x59a8000e, | ||
6048 | 0x59a81067, 0x80080400, 0x80040480, 0x04021008, | ||
6049 | 0x40040000, 0x800000c4, 0x800408ca, 0x80040c00, | ||
6050 | 0x82066400, 0x0010d1c0, 0x1c01f000, 0x80000580, | ||
6051 | 0x0401f7fe, 0x59cc0802, 0x8c040d2e, 0x04020010, | ||
6052 | 0x0401ffec, 0x0400000e, 0x59cc0001, 0x82000500, | ||
6053 | 0x00ffffff, 0x59326809, 0x59340802, 0x82040d00, | ||
6054 | 0x00ffffff, 0x80040580, 0x04020005, 0x42027000, | ||
6055 | 0x00000051, 0x0201f000, 0x000207a1, 0x59cc0004, | ||
6056 | 0x4803c857, 0x1c01f000, 0x4803c856, 0x42003000, | ||
6057 | 0x00000105, 0x0401f001, 0x4803c856, 0x4c3c0000, | ||
6058 | 0x41cc7800, 0x0401f803, 0x5c007800, 0x1c01f000, | ||
6059 | 0x4803c856, 0x4c580000, 0x583c0400, 0x82000500, | ||
6060 | 0x0000f000, 0x82000580, 0x0000c000, 0x04000024, | ||
6061 | 0x0201f800, 0x0002075a, 0x04000021, 0x4c180000, | ||
6062 | 0x583c0001, 0x0401fe89, 0x0402001f, 0x0201f800, | ||
6063 | 0x001045a6, 0x0402001c, 0x49366009, 0x0201f800, | ||
6064 | 0x001007e4, 0x04000018, 0x492e6017, 0x497a5800, | ||
6065 | 0x497a5a04, 0x48125c04, 0x832cac00, 0x00000005, | ||
6066 | 0x4200b000, 0x00000007, 0x403ca000, 0x0201f800, | ||
6067 | 0x0010ab17, 0x5c003000, 0x481a641a, 0x4a026403, | ||
6068 | 0x0000003e, 0x4a026406, 0x00000001, 0x4a026203, | ||
6069 | 0x00000001, 0x0201f800, 0x0010672b, 0x5c00b000, | ||
6070 | 0x1c01f000, 0x0201f800, 0x0002077d, 0x5c003000, | ||
6071 | 0x0401f7fb, 0x4803c856, 0x59cc0400, 0x82000d00, | ||
6072 | 0x0000ff00, 0x82040500, 0x0000f000, 0x840409c0, | ||
6073 | 0x82000580, 0x00002000, 0x04020049, 0x82040580, | ||
6074 | 0x00000022, 0x0402003a, 0x59c400a4, 0x82000500, | ||
6075 | 0x0000000f, 0x82000c80, 0x00000007, 0x04001004, | ||
6076 | 0x82000480, 0x0000000c, 0x0400103f, 0x59cc0006, | ||
6077 | 0x82000500, 0xffff0000, 0x82000d80, 0x04000000, | ||
6078 | 0x04000039, 0x82000d80, 0x60000000, 0x04000036, | ||
6079 | 0x82000d80, 0x54000000, 0x04000033, 0x82000d80, | ||
6080 | 0x03000000, 0x04020015, 0x59a80826, 0x8c040d02, | ||
6081 | 0x0402002d, 0x8c040d08, 0x0402002b, 0x0201f800, | ||
6082 | 0x001048ec, 0x0400002b, 0x59a8001d, 0x800000d0, | ||
6083 | 0x59a80810, 0x82040d00, 0x000000ff, 0x80040540, | ||
6084 | 0x59cc0800, 0x82040d00, 0x00ffffff, 0x80040580, | ||
6085 | 0x0402001b, 0x0401f01c, 0x59c40802, 0x8c040d0c, | ||
6086 | 0x04020017, 0x82000d80, 0x52000000, 0x040007ec, | ||
6087 | 0x82000d80, 0x05000000, 0x040007e9, 0x82000d80, | ||
6088 | 0x50000000, 0x040007e6, 0x0401f00d, 0x82040580, | ||
6089 | 0x00000023, 0x0402000a, 0x0401ff58, 0x04000008, | ||
6090 | 0x59300c03, 0x82040580, 0x00000002, 0x04000006, | ||
6091 | 0x82040580, 0x00000051, 0x04000003, 0x80000580, | ||
6092 | 0x0401f003, 0x82000540, 0x00000001, 0x1c01f000, | ||
6093 | 0x59cc0006, 0x82000500, 0xffff0000, 0x82000d80, | ||
6094 | 0x03000000, 0x04000004, 0x82000d80, 0x52000000, | ||
6095 | 0x040207f3, 0x59a80026, 0x82000500, 0x00000009, | ||
6096 | 0x82000580, 0x00000008, 0x040007ef, 0x0401f7ec, | ||
6097 | 0x4803c856, 0x4c5c0000, 0x4c580000, 0x59a80016, | ||
6098 | 0x82000580, 0x0000004c, 0x0402001f, 0x59ccb807, | ||
6099 | 0x9c5cb9c0, 0x825cbd00, 0x00000007, 0x8c5cbd00, | ||
6100 | 0x0400000a, 0x4200b000, 0x00000002, 0x83a81c00, | ||
6101 | 0x00000002, 0x83cc1400, 0x0000000d, 0x0201f800, | ||
6102 | 0x0010855a, 0x04020010, 0x8c5cbd02, 0x0400000a, | ||
6103 | 0x4200b000, 0x00000002, 0x83a81c00, 0x00000000, | ||
6104 | 0x83cc1400, 0x0000000f, 0x0201f800, 0x0010855a, | ||
6105 | 0x04020005, 0x8c5cbd04, 0x04000003, 0x82000540, | ||
6106 | 0x00000001, 0x5c00b000, 0x5c00b800, 0x1c01f000, | ||
6107 | 0x4803c856, 0x4c5c0000, 0x4c580000, 0x59a80016, | ||
6108 | 0x82000580, 0x0000004c, 0x0402001f, 0x59ccb807, | ||
6109 | 0x9c5cb9c0, 0x825cbd00, 0x00000007, 0x8c5cbd00, | ||
6110 | 0x0400000a, 0x4200b000, 0x00000002, 0x83a81c00, | ||
6111 | 0x00000002, 0x83cc1400, 0x00000009, 0x0201f800, | ||
6112 | 0x0010855a, 0x04020010, 0x8c5cbd02, 0x0400000a, | ||
6113 | 0x4200b000, 0x00000002, 0x83a81c00, 0x00000000, | ||
6114 | 0x83cc1400, 0x0000000b, 0x0201f800, 0x0010855a, | ||
6115 | 0x04020005, 0x8c5cbd04, 0x04000003, 0x82000540, | ||
6116 | 0x00000001, 0x5c00b000, 0x5c00b800, 0x1c01f000, | ||
6117 | 0x4803c857, 0x4c580000, 0x40003000, 0x42002000, | ||
6118 | 0x000007f0, 0x4200b000, 0x00000010, 0x83ac7400, | ||
6119 | 0x000007f0, 0x50380000, 0x80026d40, 0x04000006, | ||
6120 | 0x59340002, 0x82000500, 0x00ffffff, 0x80180580, | ||
6121 | 0x04000010, 0x80102000, 0x80387000, 0x8058b040, | ||
6122 | 0x040207f5, 0x82100480, 0x00000800, 0x42002000, | ||
6123 | 0x00000000, 0x4200b000, 0x000007f0, 0x41ac7000, | ||
6124 | 0x040217ed, 0x82000540, 0x00000001, 0x0401f002, | ||
6125 | 0x40128800, 0x5c00b000, 0x1c01f000, 0x59a80026, | ||
6126 | 0x8c00050e, 0x04000004, 0x8c000502, 0x04000003, | ||
6127 | 0x80000580, 0x1c01f000, 0x82000540, 0x00000001, | ||
6128 | 0x0401f7fd, 0x59300c06, 0x82040580, 0x00000002, | ||
6129 | 0x04000006, 0x82040580, 0x00000005, 0x04000003, | ||
6130 | 0x82000540, 0x00000001, 0x1c01f000, 0x59c80000, | ||
6131 | 0x84000558, 0x84000512, 0x48039000, 0x1c01f000, | ||
6132 | 0x4a03281a, 0x000003e8, 0x4a032802, 0x0010d1c0, | ||
6133 | 0x4a032800, 0x00000000, 0x4a032808, 0x00107049, | ||
6134 | 0x42000000, 0x00000005, 0x83947c00, 0x00000009, | ||
6135 | 0x49787801, 0x4a007802, 0x00106fff, 0x823c7c00, | ||
6136 | 0x00000003, 0x80000040, 0x040207fa, 0x4a032819, | ||
6137 | 0xffff0000, 0x4201d000, 0x00000064, 0x0401f96e, | ||
6138 | 0x4201d000, 0x000186a0, 0x0401f184, 0x00000000, | ||
6139 | 0x00000003, 0x00000006, 0x00000009, 0x0000000c, | ||
6140 | 0x4d300000, 0x4d2c0000, 0x4d340000, 0x4d400000, | ||
6141 | 0x4cfc0000, 0x4d380000, 0x4d3c0000, 0x4d440000, | ||
6142 | 0x4d4c0000, 0x4d480000, 0x4c5c0000, 0x4c600000, | ||
6143 | 0x4c640000, 0x4cc80000, 0x4ccc0000, 0x0201f800, | ||
6144 | 0x0002057b, 0x5c019800, 0x5c019000, 0x5c00c800, | ||
6145 | 0x5c00c000, 0x5c00b800, 0x5c029000, 0x5c029800, | ||
6146 | 0x5c028800, 0x5c027800, 0x5c027000, 0x5c01f800, | ||
6147 | 0x5c028000, 0x5c026800, 0x5c025800, 0x5c026000, | ||
6148 | 0x1c01f000, 0x59940004, 0x80000540, 0x0402000a, | ||
6149 | 0x59940025, 0x80040400, 0x02001800, 0x001005d8, | ||
6150 | 0x48032804, 0x480b2805, 0x4a032803, 0x0000000a, | ||
6151 | 0x80000580, 0x1c01f000, 0x5994001f, 0x80000540, | ||
6152 | 0x0402000a, 0x59940025, 0x80040400, 0x02001800, | ||
6153 | 0x001005d8, 0x4803281f, 0x480b2820, 0x4a03281e, | ||
6154 | 0x00000001, 0x80000580, 0x1c01f000, 0x59940022, | ||
6155 | 0x80000540, 0x0402000a, 0x59940025, 0x80040400, | ||
6156 | 0x02001800, 0x001005d8, 0x48032822, 0x480b2823, | ||
6157 | 0x4a032821, 0x0000000a, 0x80000580, 0x1c01f000, | ||
6158 | 0x4c000000, 0x59940005, 0x4803c857, 0x480bc857, | ||
6159 | 0x80080580, 0x04020003, 0x497b2804, 0x497b2805, | ||
6160 | 0x5c000000, 0x1c01f000, 0x4c000000, 0x59940020, | ||
6161 | 0x4803c857, 0x480bc857, 0x80080580, 0x04020003, | ||
6162 | 0x497b281f, 0x497b2820, 0x5c000000, 0x1c01f000, | ||
6163 | 0x4c000000, 0x59940023, 0x4803c857, 0x480bc857, | ||
6164 | 0x80080580, 0x04020003, 0x497b2822, 0x497b2823, | ||
6165 | 0x5c000000, 0x1c01f000, 0x4937c857, 0x48ebc857, | ||
6166 | 0x59340203, 0x80e80480, 0x04001002, 0x48ea6a03, | ||
6167 | 0x1c01f000, 0x5c03e000, 0x1c01f000, 0x4d440000, | ||
6168 | 0x42007800, 0x00000010, 0x59968801, 0x0201f800, | ||
6169 | 0x00020245, 0x04020012, 0x59341a03, 0x800c1840, | ||
6170 | 0x0400100f, 0x59940027, 0x800c0480, 0x04000003, | ||
6171 | 0x48026a03, 0x0402100a, 0x5934000f, 0x497a6a03, | ||
6172 | 0x80000540, 0x04000006, 0x4c3c0000, 0x5934140b, | ||
6173 | 0x0201f800, 0x00020253, 0x5c007800, 0x81468800, | ||
6174 | 0x83440480, 0x00000800, 0x04021007, 0x803c7840, | ||
6175 | 0x040207e7, 0x49472801, 0x5c028800, 0x5c03e000, | ||
6176 | 0x1c01f000, 0x4a032800, 0x00000002, 0x497b2801, | ||
6177 | 0x0401f7fa, 0x42007800, 0x00000010, 0x59966002, | ||
6178 | 0x59300205, 0x80000d40, 0x04000006, 0x59940027, | ||
6179 | 0x80040480, 0x48026205, 0x0400102d, 0x0400002c, | ||
6180 | 0x59300206, 0x80000d40, 0x04000014, 0x59b800e4, | ||
6181 | 0x8c000524, 0x04020011, 0x4a0370e4, 0x00030000, | ||
6182 | 0x40000000, 0x59b800e4, 0x8c000524, 0x04000004, | ||
6183 | 0x4a0370e4, 0x00020000, 0x0401f008, 0x59940027, | ||
6184 | 0x80040480, 0x48026206, 0x4a0370e4, 0x00020000, | ||
6185 | 0x0400101c, 0x0400001b, 0x83326400, 0x00000024, | ||
6186 | 0x49332802, 0x41540000, 0x81300480, 0x04021005, | ||
6187 | 0x803c7840, 0x040207db, 0x5c03e000, 0x1c01f000, | ||
6188 | 0x59940026, 0x48032827, 0x4a032802, 0x0010d1c0, | ||
6189 | 0x497b2826, 0x80000540, 0x0400000f, 0x4a032800, | ||
6190 | 0x00000001, 0x5c03e000, 0x1c01f000, 0x4c3c0000, | ||
6191 | 0x0201f800, 0x001091db, 0x5c007800, 0x0401f7d1, | ||
6192 | 0x4c3c0000, 0x0201f800, 0x00108d5d, 0x5c007800, | ||
6193 | 0x0401f7e2, 0x4a032800, 0x00000000, 0x5c03e000, | ||
6194 | 0x1c01f000, 0x59a8086b, 0x8c040d30, 0x04020029, | ||
6195 | 0x8c040d32, 0x0400000f, 0x59a80069, 0x81640480, | ||
6196 | 0x04001019, 0x59a8000b, 0x81500580, 0x04000005, | ||
6197 | 0x59a8006a, 0x59a81066, 0x80080580, 0x04020012, | ||
6198 | 0x900411c0, 0x82081500, 0x00007000, 0x0401f012, | ||
6199 | 0x82040500, 0x0000001f, 0x04000016, 0x80040840, | ||
6200 | 0x82040500, 0x0000001f, 0x04000003, 0x4807506b, | ||
6201 | 0x0401f010, 0x900401c0, 0x82000500, 0x0000001f, | ||
6202 | 0x80040d40, 0x900401c0, 0x80040580, 0x82001500, | ||
6203 | 0x00007000, 0x82040500, 0xffff8fff, 0x80080540, | ||
6204 | 0x4803506b, 0x80081114, 0x0201f800, 0x001006e2, | ||
6205 | 0x1c01f000, 0x4a032807, 0x000007d0, 0x4a032806, | ||
6206 | 0x0000000a, 0x1c01f000, 0x42000800, 0x000007d0, | ||
6207 | 0x83180480, 0x00000005, 0x02021800, 0x001005d8, | ||
6208 | 0x83947c00, 0x00000009, 0x83180400, 0x00105f43, | ||
6209 | 0x50000000, 0x803c7c00, 0x48047801, 0x4a007800, | ||
6210 | 0x0000000a, 0x1c01f000, 0x83180480, 0x00000005, | ||
6211 | 0x02021800, 0x001005d8, 0x83947c00, 0x00000009, | ||
6212 | 0x83180400, 0x00105f43, 0x50000000, 0x803c7c00, | ||
6213 | 0x49787801, 0x1c01f000, 0x4807c857, 0x480bc857, | ||
6214 | 0x59940025, 0x80040400, 0x02001800, 0x001005d8, | ||
6215 | 0x48032804, 0x480b2805, 0x4a032803, 0x0000000a, | ||
6216 | 0x1c01f000, 0x4807c857, 0x480bc857, 0x59940025, | ||
6217 | 0x80040400, 0x02001800, 0x001005d8, 0x4803281c, | ||
6218 | 0x480b281d, 0x4a03281b, 0x0000000a, 0x1c01f000, | ||
6219 | 0x4c000000, 0x5994001d, 0x4803c857, 0x480bc857, | ||
6220 | 0x80080580, 0x04020003, 0x4803281c, 0x4803281d, | ||
6221 | 0x5c000000, 0x1c01f000, 0x80e9d1c0, 0x0400000e, | ||
6222 | 0x0401f836, 0x04025000, 0x4203e000, 0x80000000, | ||
6223 | 0x40e81000, 0x41780800, 0x42000000, 0x00000064, | ||
6224 | 0x0201f800, 0x001066a0, 0x59940024, 0x80080400, | ||
6225 | 0x48032824, 0x1c01f000, 0x42001000, 0x00105065, | ||
6226 | 0x0401fef0, 0x42001000, 0x00105058, 0x0401ffe1, | ||
6227 | 0x42001000, 0x00104148, 0x0401feea, 0x42001000, | ||
6228 | 0x001041bc, 0x0401fee7, 0x42001000, 0x001041f3, | ||
6229 | 0x0401f6f8, 0x4203e000, 0x70000000, 0x4203e000, | ||
6230 | 0xb0300000, 0x41fc0000, 0x40ebf800, 0x80e80480, | ||
6231 | 0x04001011, 0x04000004, 0x82000480, 0x00000003, | ||
6232 | 0x0402100d, 0x42000000, 0x0000000f, 0x04004004, | ||
6233 | 0x80000040, 0x040207fe, 0x0401f007, 0x4203e000, | ||
6234 | 0x70000000, 0x42000000, 0x0010b87e, 0x0201f800, | ||
6235 | 0x0010aa47, 0x1c01f000, 0x4203e000, 0x80000000, | ||
6236 | 0x4203e000, 0xb0400000, 0x41fc0000, 0x40ebf800, | ||
6237 | 0x80e80480, 0x04001011, 0x04000004, 0x82000480, | ||
6238 | 0x00000003, 0x0402100d, 0x42000000, 0x0000000f, | ||
6239 | 0x04005004, 0x80000040, 0x040207fe, 0x0401f007, | ||
6240 | 0x4203e000, 0x80000000, 0x42000000, 0x0010b87f, | ||
6241 | 0x0201f800, 0x0010aa47, 0x1c01f000, 0x59a8000e, | ||
6242 | 0x82000480, 0x00000100, 0x599c0a02, 0x800409c0, | ||
6243 | 0x04020002, 0x80040800, 0x80041480, 0x04001002, | ||
6244 | 0x40000800, 0x48075067, 0x59a8100e, 0x40040000, | ||
6245 | 0x800acc80, 0x4967500e, 0x49675069, 0x59aaa80b, | ||
6246 | 0x41640800, 0x42001000, 0x00000024, 0x0201f800, | ||
6247 | 0x00106681, 0x8206a400, 0x0010d1c0, 0x49535065, | ||
6248 | 0x4152b000, 0x42006000, 0x0010be65, 0x4a006004, | ||
6249 | 0x0000012c, 0x4a006005, 0xda10da10, 0x4a006008, | ||
6250 | 0x00000011, 0x4a006009, 0x0010be65, 0x4a00600a, | ||
6251 | 0x001010b8, 0x599c0014, 0x48006011, 0x599c0015, | ||
6252 | 0x48006012, 0x42006000, 0x0010be41, 0x4a006203, | ||
6253 | 0x00000008, 0x4a006406, 0x00000006, 0x4a006002, | ||
6254 | 0xffff0000, 0x4a006008, 0x0010be65, 0x4a006014, | ||
6255 | 0x0010be65, 0x599c0014, 0x48006015, 0x599c0015, | ||
6256 | 0x48006016, 0x599c0413, 0x48006017, 0x49506018, | ||
6257 | 0x49546019, 0x59a80067, 0x4800601a, 0x4a00601b, | ||
6258 | 0x0010b465, 0x4a00601c, 0x0010b466, 0x4a00601d, | ||
6259 | 0x0010b46a, 0x42000000, 0xb0000000, 0x42000800, | ||
6260 | 0x0010be41, 0x0201f800, 0x00100b68, 0x1c01f000, | ||
6261 | 0x82000d00, 0x000000c0, 0x04000004, 0x82040d80, | ||
6262 | 0x000000c0, 0x04020055, 0x82000d00, 0x00002020, | ||
6263 | 0x59300414, 0x84000512, 0x82040d80, 0x00002020, | ||
6264 | 0x0400000b, 0x8c000514, 0x0402000f, 0x48026414, | ||
6265 | 0x813e79c0, 0x02020000, 0x000206d0, 0x42027000, | ||
6266 | 0x00000043, 0x0201f000, 0x000207a1, 0x59326809, | ||
6267 | 0x59340a00, 0x8c040d0a, 0x040007f3, 0x84000552, | ||
6268 | 0x0401f7f1, 0x84000514, 0x592c080d, 0x48066015, | ||
6269 | 0x0401f7ef, 0x59326809, 0x59340a00, 0x8c040d0a, | ||
6270 | 0x02000000, 0x000206e3, 0x59300c14, 0x84040d52, | ||
6271 | 0x48066414, 0x0201f000, 0x000206e3, 0x0201f800, | ||
6272 | 0x00020086, 0x813e79c0, 0x02020000, 0x000206d0, | ||
6273 | 0x0201f000, 0x000206f1, 0x8c00051e, 0x02000000, | ||
6274 | 0x000206fd, 0x82000d00, 0x00002020, 0x82040d80, | ||
6275 | 0x00002020, 0x04000014, 0x82000500, 0x000000c0, | ||
6276 | 0x82000d80, 0x00000080, 0x04000008, 0x813e79c0, | ||
6277 | 0x02020000, 0x000206d0, 0x42027000, 0x00000041, | ||
6278 | 0x0201f000, 0x000207a1, 0x813e79c0, 0x02020000, | ||
6279 | 0x000206d0, 0x42027000, 0x00000043, 0x0201f000, | ||
6280 | 0x000207a1, 0x59326809, 0x59340a00, 0x8c040d0a, | ||
6281 | 0x040007ea, 0x59300c14, 0x84040d52, 0x48066414, | ||
6282 | 0x0401f7e6, 0x492fc857, 0x42000800, 0x00000006, | ||
6283 | 0x0201f000, 0x000206f8, 0x492fc857, 0x42000800, | ||
6284 | 0x00000004, 0x0201f000, 0x000206f8, 0x4807c856, | ||
6285 | 0x59a80068, 0x800409c0, 0x04000003, 0x80080540, | ||
6286 | 0x0401f002, 0x80080500, 0x48035068, 0x1c01f000, | ||
6287 | 0x4a030800, 0x00000000, 0x4a030802, 0x00000001, | ||
6288 | 0x497b0803, 0x497b0804, 0x1c01f000, 0x59840002, | ||
6289 | 0x8c000500, 0x04000004, 0x84000500, 0x4a030800, | ||
6290 | 0x00000001, 0x84000544, 0x84000506, 0x48030802, | ||
6291 | 0x82000d00, 0x0fffffff, 0x42000000, 0x90000000, | ||
6292 | 0x0201f800, 0x00100b94, 0x59a80069, 0x82000480, | ||
6293 | 0x00000007, 0x48035069, 0x80000580, 0x42000800, | ||
6294 | 0x0010b519, 0x48000800, 0x48000801, 0x1c01f000, | ||
6295 | 0x59a80069, 0x82000480, 0x00000007, 0x48035069, | ||
6296 | 0x1c01f000, 0x83640480, 0x00000008, 0x0400101b, | ||
6297 | 0x58c80a03, 0x80000580, 0x82000400, 0x00000008, | ||
6298 | 0x80040840, 0x040207fd, 0x815c0480, 0x04001013, | ||
6299 | 0x4200b000, 0x00000007, 0x0201f800, 0x0002075a, | ||
6300 | 0x4a026203, 0x00000004, 0x4a026406, 0x00000009, | ||
6301 | 0x4a026203, 0x00000004, 0x4a026007, 0x00000101, | ||
6302 | 0x0401f809, 0x0401f880, 0x8058b040, 0x040207f3, | ||
6303 | 0x80000580, 0x1c01f000, 0x82000540, 0x00000001, | ||
6304 | 0x0401f7fd, 0x0201f800, 0x001007e4, 0x492e6008, | ||
6305 | 0x58c80a03, 0x4a025a04, 0x0000002c, 0x497a5800, | ||
6306 | 0x497a5801, 0x497a5c04, 0x497a5c06, 0x497a5805, | ||
6307 | 0x4a025a08, 0x00000005, 0x4a025a07, 0x00000002, | ||
6308 | 0x58c80201, 0x48025c04, 0x58c80202, 0x48025c07, | ||
6309 | 0x58c80204, 0x48025c08, 0x4a02580d, 0x0000ffff, | ||
6310 | 0x80040840, 0x0400000c, 0x412c2000, 0x0201f800, | ||
6311 | 0x001007e4, 0x4a025a04, 0x0000000a, 0x497a5c04, | ||
6312 | 0x48125800, 0x492c2001, 0x412c2000, 0x80040840, | ||
6313 | 0x040207f7, 0x1c01f000, 0x4d7c0000, 0x4202f800, | ||
6314 | 0x00000010, 0x4df00000, 0x4203e000, 0x50000000, | ||
6315 | 0x59847803, 0x803c79c0, 0x0400001e, 0x4c5c0000, | ||
6316 | 0x583cb808, 0x585c3408, 0x801831c0, 0x0400000b, | ||
6317 | 0x0401f84a, 0x04000016, 0x42001000, 0x0010b519, | ||
6318 | 0x0401f87f, 0x04000012, 0x0201f800, 0x001007d3, | ||
6319 | 0x0400000f, 0x492cb805, 0x585c0005, 0x80000540, | ||
6320 | 0x02000800, 0x001005d8, 0x0401f830, 0x585c5408, | ||
6321 | 0x0401f80b, 0x5c00b800, 0x5c03e000, 0x817ef840, | ||
6322 | 0x040207e1, 0x5c02f800, 0x1c01f000, 0x5c00b800, | ||
6323 | 0x5c03e000, 0x5c02f800, 0x1c01f000, 0x4803c856, | ||
6324 | 0x405c6000, 0x802851c0, 0x04000018, 0x585c0204, | ||
6325 | 0x82000d00, 0x0000000f, 0x82040c00, 0x001010bd, | ||
6326 | 0x50044000, 0x4cf00000, 0x4d000000, 0x4d040000, | ||
6327 | 0x4021e000, 0x40320800, 0x59860004, 0x4c280000, | ||
6328 | 0x0401f934, 0x5c005000, 0x40f04000, 0x41046000, | ||
6329 | 0x0201f800, 0x0010109b, 0x040207f6, 0x5c020800, | ||
6330 | 0x5c020000, 0x5c01e000, 0x58c80204, 0x4800bc08, | ||
6331 | 0x0201f800, 0x00020086, 0x4a026007, 0x00000101, | ||
6332 | 0x497a6009, 0x0401f055, 0x4803c856, 0x59840003, | ||
6333 | 0x80026540, 0x04000003, 0x59300000, 0x48030803, | ||
6334 | 0x1c01f000, 0x4803c856, 0x59840003, 0x48026000, | ||
6335 | 0x49330803, 0x1c01f000, 0x58cc0805, 0x40180000, | ||
6336 | 0x80040480, 0x0400100d, 0x82cc0580, 0x0010b50e, | ||
6337 | 0x02020800, 0x001005d8, 0x58c80205, 0x80040480, | ||
6338 | 0x0400101d, 0x82000540, 0x00000001, 0x1c01f000, | ||
6339 | 0x80003580, 0x0401f7fe, 0x82cc0580, 0x0010b50e, | ||
6340 | 0x02020800, 0x001005d8, 0x58c80400, 0x8c000504, | ||
6341 | 0x040007f8, 0x58c8040b, 0x8c00051e, 0x040007f5, | ||
6342 | 0x8c000500, 0x040207f3, 0x84000540, 0x4801940b, | ||
6343 | 0x42000000, 0x0010b839, 0x0201f800, 0x0010aa47, | ||
6344 | 0x42001000, 0x00008026, 0x0201f800, 0x00103a3e, | ||
6345 | 0x0401f7e8, 0x58c8040b, 0x8c00051e, 0x040007e2, | ||
6346 | 0x8c000502, 0x040207e0, 0x84000542, 0x4801940b, | ||
6347 | 0x42000000, 0x0010b838, 0x0201f800, 0x0010aa47, | ||
6348 | 0x42001000, 0x00008025, 0x42001800, 0x00000000, | ||
6349 | 0x0201f800, 0x00103a3e, 0x0401f7d3, 0x4803c856, | ||
6350 | 0x58080000, 0x42001800, 0x00000007, 0x58080801, | ||
6351 | 0x80040480, 0x04020004, 0x400c0000, 0x80000540, | ||
6352 | 0x0401f005, 0x04001003, 0x800c0480, 0x0401f002, | ||
6353 | 0x80000080, 0x1c01f000, 0x4803c856, 0x59300008, | ||
6354 | 0x80000d40, 0x02000800, 0x001005d8, 0x58040005, | ||
6355 | 0x80000540, 0x02000800, 0x001005d8, 0x59300007, | ||
6356 | 0x82000500, 0x00000101, 0x82000580, 0x00000101, | ||
6357 | 0x02020800, 0x001005d8, 0x42001000, 0x0010b519, | ||
6358 | 0x58080801, 0x82040400, 0x0010b51b, 0x497a6414, | ||
6359 | 0x4a026015, 0x0000ffff, 0x45300000, 0x80040800, | ||
6360 | 0x82040480, 0x00000008, 0x04001002, 0x80000d80, | ||
6361 | 0x48041001, 0x82040400, 0x0010b51b, 0x45780000, | ||
6362 | 0x1c01f000, 0x4933c857, 0x59300808, 0x800409c0, | ||
6363 | 0x02000800, 0x001005d8, 0x4d2c0000, 0x58065805, | ||
6364 | 0x812e59c0, 0x02020800, 0x001007f4, 0x49780805, | ||
6365 | 0x40065800, 0x0201f800, 0x001007fd, 0x5c025800, | ||
6366 | 0x4d300000, 0x0201f800, 0x0002077d, 0x5c026000, | ||
6367 | 0x1c01f000, 0x59300406, 0x82000580, 0x00000009, | ||
6368 | 0x04020006, 0x59300007, 0x8c000510, 0x04000003, | ||
6369 | 0x80000580, 0x1c01f000, 0x82000540, 0x00000001, | ||
6370 | 0x1c01f000, 0x59840802, 0x8c040d04, 0x1c01f000, | ||
6371 | 0x4803c856, 0x59840802, 0x84040d04, 0x84040d40, | ||
6372 | 0x4a030800, 0x00000000, 0x48070802, 0x82040d00, | ||
6373 | 0x0fffffff, 0x42000000, 0x90000000, 0x0201f000, | ||
6374 | 0x00100b94, 0x4807c857, 0x4805980a, 0x49799801, | ||
6375 | 0x49799803, 0x49799806, 0x49799807, 0x49799808, | ||
6376 | 0x49799805, 0x49799809, 0x0401f8c9, 0x0400000a, | ||
6377 | 0x0401f8eb, 0x04000008, 0x48359800, 0x48359802, | ||
6378 | 0x48359806, 0x4a019804, 0x00000001, 0x4a019807, | ||
6379 | 0x00000005, 0x1c01f000, 0x4807c857, 0x58cc1007, | ||
6380 | 0x40040000, 0x80080480, 0x04021020, 0x4c040000, | ||
6381 | 0x4c080000, 0x0401f8da, 0x5c001000, 0x5c000800, | ||
6382 | 0x0400001c, 0x58cc0006, 0x80006540, 0x0402000b, | ||
6383 | 0x48359800, 0x48359802, 0x48359806, 0x49799801, | ||
6384 | 0x49799803, 0x49786801, 0x49786800, 0x49799804, | ||
6385 | 0x49799807, 0x0401f005, 0x48306801, 0x48346000, | ||
6386 | 0x48359806, 0x49786800, 0x58cc0004, 0x58cc1007, | ||
6387 | 0x80000000, 0x82081400, 0x00000005, 0x48019804, | ||
6388 | 0x48099807, 0x0401f7df, 0x80000580, 0x1c01f000, | ||
6389 | 0x82000540, 0x00000001, 0x1c01f000, 0x480bc857, | ||
6390 | 0x4c500000, 0x4c540000, 0x4c580000, 0x40083000, | ||
6391 | 0x58cc0801, 0x82040480, 0x00000005, 0x02021800, | ||
6392 | 0x001005d8, 0x82040400, 0x00106418, 0x50000000, | ||
6393 | 0x58cca800, 0x8054ac00, 0x42001800, 0x00000005, | ||
6394 | 0x40040000, 0x800c0480, 0x80082480, 0x04021002, | ||
6395 | 0x40080000, 0x8000b0c2, 0x8058b400, 0x5450a800, | ||
6396 | 0x8050a000, 0x8054a800, 0x8058b040, 0x040207fc, | ||
6397 | 0x40001000, 0x58cc2805, 0x58cc0807, 0x58cc2001, | ||
6398 | 0x80142c00, 0x80040c80, 0x80102400, 0x48159805, | ||
6399 | 0x48059807, 0x48119801, 0x82100580, 0x00000005, | ||
6400 | 0x0400000c, 0x48119801, 0x40080000, 0x80181480, | ||
6401 | 0x40083000, 0x04000003, 0x040217d6, 0x80000580, | ||
6402 | 0x5c00b000, 0x5c00a800, 0x5c00a000, 0x1c01f000, | ||
6403 | 0x58cc0800, 0x800409c0, 0x02000800, 0x001005d8, | ||
6404 | 0x58040800, 0x48059800, 0x41782000, 0x0401f7ee, | ||
6405 | 0x0401f813, 0x50f00000, 0x81040400, 0x40001800, | ||
6406 | 0x585c0204, 0x4803c857, 0x82000580, 0x0000002c, | ||
6407 | 0x02020800, 0x001005d8, 0x58040202, 0x800000e0, | ||
6408 | 0x81000540, 0x48001802, 0x58040000, 0x48001800, | ||
6409 | 0x58040001, 0x48001801, 0x1c01f000, 0x4807c856, | ||
6410 | 0x58cc0005, 0x80000040, 0x02001800, 0x001005d8, | ||
6411 | 0x48019805, 0x58cc1003, 0x82080480, 0x00000005, | ||
6412 | 0x02021800, 0x001005d8, 0x82080400, 0x00106418, | ||
6413 | 0x50000000, 0x58cc0802, 0x80040c00, 0x80081000, | ||
6414 | 0x82080480, 0x00000005, 0x0402000f, 0x58cc2002, | ||
6415 | 0x58100000, 0x80006d40, 0x04000009, 0x4c340000, | ||
6416 | 0x0401f858, 0x5c006800, 0x49786801, 0x48359802, | ||
6417 | 0x58cc0004, 0x80000040, 0x48019804, 0x49799803, | ||
6418 | 0x0401f002, 0x48099803, 0x1c01f000, 0x4807c856, | ||
6419 | 0x41781800, 0x58c80201, 0x80000540, 0x04000002, | ||
6420 | 0x800c1800, 0x58c80c01, 0x80040c80, 0x0400100a, | ||
6421 | 0x04000009, 0x800c1800, 0x58c80202, 0x80041480, | ||
6422 | 0x04001005, 0x04000004, 0x800c1800, 0x40080800, | ||
6423 | 0x0401f7fb, 0x480d9204, 0x400c0000, 0x42002000, | ||
6424 | 0x00000001, 0x80000040, 0x04000007, 0x04001006, | ||
6425 | 0x80102000, 0x82000480, 0x00000005, 0x04000002, | ||
6426 | 0x040217fc, 0x48119203, 0x1c01f000, 0x4807c856, | ||
6427 | 0x4d2c0000, 0x58cc000a, 0x80000540, 0x02000800, | ||
6428 | 0x001005d8, 0x82002400, 0x00000005, 0x0201f800, | ||
6429 | 0x001007d3, 0x04000012, 0x492d9809, 0x497a5800, | ||
6430 | 0x497a5801, 0x0201f800, 0x001007d3, 0x0400000c, | ||
6431 | 0x58cc0009, 0x48025800, 0x497a5801, 0x492d9809, | ||
6432 | 0x82102480, 0x00000005, 0x040217f7, 0x82000540, | ||
6433 | 0x00000001, 0x5c025800, 0x1c01f000, 0x58cc0009, | ||
6434 | 0x80025d40, 0x040007fc, 0x592c2000, 0x0201f800, | ||
6435 | 0x001007f4, 0x40100000, 0x0401f7fa, 0x58cc0009, | ||
6436 | 0x48cfc857, 0x80006d40, 0x04000005, 0x50340000, | ||
6437 | 0x48019809, 0x49786800, 0x49786801, 0x1c01f000, | ||
6438 | 0x4813c857, 0x58cc0009, 0x48002000, 0x48119809, | ||
6439 | 0x1c01f000, 0x4807c856, 0x4d2c0000, 0x58cc0009, | ||
6440 | 0x80025d40, 0x04000007, 0x592c0000, 0x4c000000, | ||
6441 | 0x0201f800, 0x001007f4, 0x5c000000, 0x0401f7f9, | ||
6442 | 0x5c025800, 0x1c01f000, 0x4807c856, 0x4d2c0000, | ||
6443 | 0x58cc0002, 0x80025d40, 0x04000007, 0x592c0000, | ||
6444 | 0x4c000000, 0x0201f800, 0x001007f4, 0x5c000000, | ||
6445 | 0x0401f7f9, 0x49799800, 0x49799802, 0x49799801, | ||
6446 | 0x49799803, 0x49799806, 0x49799807, 0x49799808, | ||
6447 | 0x49799809, 0x4979980a, 0x5c025800, 0x1c01f000, | ||
6448 | 0x00000003, 0x00000006, 0x00000009, 0x0000000c, | ||
6449 | 0x0000000f, 0x00000012, 0x4803c856, 0x0401f857, | ||
6450 | 0x4a00c204, 0x0000003c, 0x59301009, 0x82080580, | ||
6451 | 0x0010b524, 0x04000013, 0x58080802, 0x82040d00, | ||
6452 | 0x00ffffff, 0x58080403, 0x4804c005, 0x4800c406, | ||
6453 | 0x4a00c207, 0x00000003, 0x59300811, 0x585c0404, | ||
6454 | 0x4978c206, 0x4804c407, 0x80000540, 0x0400000d, | ||
6455 | 0x58600206, 0x84000540, 0x4800c206, 0x0401f009, | ||
6456 | 0x585c080a, 0x82040d00, 0x00ffffff, 0x4804c005, | ||
6457 | 0x4a00c406, 0x000007ff, 0x4978c207, 0x0401f7ef, | ||
6458 | 0x82603c00, 0x00000008, 0x58605404, 0x40282000, | ||
6459 | 0x405c6000, 0x585c0a04, 0x82040d00, 0x0000000f, | ||
6460 | 0x82040c00, 0x001010bd, 0x50044000, 0x80004d80, | ||
6461 | 0x50200000, 0x80307400, 0x58380402, 0x8c244d00, | ||
6462 | 0x04020003, 0x48003a00, 0x0401f003, 0x48003c00, | ||
6463 | 0x801c3800, 0x80244800, 0x80102040, 0x04000006, | ||
6464 | 0x0201f800, 0x0010109b, 0x02000800, 0x001005d8, | ||
6465 | 0x0401f7f0, 0x1c01f000, 0x4803c856, 0x4d340000, | ||
6466 | 0x59300009, 0x80026d40, 0x02000800, 0x001005d8, | ||
6467 | 0x59340401, 0x80000540, 0x0400000e, 0x59840000, | ||
6468 | 0x80000540, 0x0400000b, 0x836c0580, 0x00000003, | ||
6469 | 0x04020008, 0x59341c03, 0x42002000, 0x00000004, | ||
6470 | 0x42003000, 0x00000004, 0x0201f800, 0x00103aae, | ||
6471 | 0x5c026800, 0x1c01f000, 0x4803c856, 0x80001580, | ||
6472 | 0x58c80c01, 0x59300011, 0x80040c80, 0x48066011, | ||
6473 | 0x58c80201, 0x80000540, 0x04000005, 0x80081000, | ||
6474 | 0x80040c80, 0x04001007, 0x04000006, 0x58c80202, | ||
6475 | 0x80081000, 0x80040c80, 0x04001002, 0x040207fd, | ||
6476 | 0x4808bc08, 0x4808c404, 0x1c01f000, 0x4803c856, | ||
6477 | 0x4a0370e5, 0x00020000, 0x59b800e5, 0x8c000524, | ||
6478 | 0x040207fc, 0x4a0370e5, 0x00030000, 0x40000000, | ||
6479 | 0x40000000, 0x59b800e5, 0x8c000524, 0x040207f5, | ||
6480 | 0x5934000e, 0x80006d40, 0x04000010, 0x81300580, | ||
6481 | 0x04020004, 0x58340000, 0x4802680e, 0x0401f00a, | ||
6482 | 0x40347800, 0x58340000, 0x80006d40, 0x02000800, | ||
6483 | 0x001005d8, 0x81300580, 0x040207fa, 0x58340000, | ||
6484 | 0x48007800, 0x497a6000, 0x4a0370e5, 0x00020000, | ||
6485 | 0x1c01f000, 0x4803c856, 0x4d300000, 0x4d2c0000, | ||
6486 | 0x42000800, 0x000003ff, 0x4a0370e5, 0x00020000, | ||
6487 | 0x59b800e5, 0x8c000524, 0x04000005, 0x80040840, | ||
6488 | 0x040207fa, 0x0201f800, 0x001005d8, 0x4a0370e5, | ||
6489 | 0x00030000, 0x40000000, 0x40000000, 0x59b800e5, | ||
6490 | 0x8c000524, 0x040207f1, 0x5934000e, 0x80026540, | ||
6491 | 0x0400000e, 0x4933c857, 0x59300000, 0x4802680e, | ||
6492 | 0x4a026203, 0x00000004, 0x497a6206, 0x497a6009, | ||
6493 | 0x4a026007, 0x00000101, 0x59325808, 0x497a5c08, | ||
6494 | 0x0401fd81, 0x0401f7f1, 0x4a0370e5, 0x00020000, | ||
6495 | 0x5c025800, 0x5c026000, 0x1c01f000, 0x4803c856, | ||
6496 | 0x4c000000, 0x0201f800, 0x00105c9a, 0x04020011, | ||
6497 | 0x0201f800, 0x001045a6, 0x02020800, 0x001005d8, | ||
6498 | 0x5c000000, 0x48026802, 0x0201f800, 0x0002075a, | ||
6499 | 0x04000009, 0x49366009, 0x4a026406, 0x00000001, | ||
6500 | 0x42027000, 0x00000001, 0x0201f000, 0x000207a1, | ||
6501 | 0x5c000000, 0x1c01f000, 0x59300203, 0x82000c80, | ||
6502 | 0x0000000e, 0x02021800, 0x001005d8, 0x4803c857, | ||
6503 | 0x0c01f001, 0x00106503, 0x00106503, 0x00106503, | ||
6504 | 0x00106505, 0x00106565, 0x00106503, 0x00106503, | ||
6505 | 0x001065b7, 0x001065b8, 0x00106503, 0x00106503, | ||
6506 | 0x00106503, 0x00106503, 0x00106503, 0x0201f800, | ||
6507 | 0x001005d8, 0x493bc857, 0x83380480, 0x00000050, | ||
6508 | 0x02021800, 0x001005d8, 0x83380480, 0x00000049, | ||
6509 | 0x02001800, 0x001005d8, 0x0c01f001, 0x00106518, | ||
6510 | 0x0010653a, 0x00106516, 0x00106516, 0x00106516, | ||
6511 | 0x00106516, 0x00106549, 0x0201f800, 0x001005d8, | ||
6512 | 0x4d2c0000, 0x59325808, 0x592c0206, 0x48025c06, | ||
6513 | 0x4a025a06, 0x00000000, 0x4c5c0000, 0x592cbc0a, | ||
6514 | 0x592c0000, 0x48026008, 0x0201f800, 0x00104cde, | ||
6515 | 0x59300008, 0x80000540, 0x04000008, 0x4a026203, | ||
6516 | 0x00000007, 0x42027000, 0x00000043, 0x5c00b800, | ||
6517 | 0x5c025800, 0x0401f08a, 0x8c5cbd08, 0x04020006, | ||
6518 | 0x4a026203, 0x00000007, 0x497a6206, 0x497a6008, | ||
6519 | 0x0401f003, 0x0201f800, 0x0002077d, 0x5c00b800, | ||
6520 | 0x5c025800, 0x1c01f000, 0x0201f800, 0x00106b8a, | ||
6521 | 0x4d2c0000, 0x59325808, 0x0201f800, 0x00109037, | ||
6522 | 0x04000006, 0x4d400000, 0x42028000, 0x00000001, | ||
6523 | 0x0401f8f8, 0x5c028000, 0x5c025800, 0x0201f000, | ||
6524 | 0x0002077d, 0x0201f800, 0x00106b8a, 0x4d3c0000, | ||
6525 | 0x417a7800, 0x0201f800, 0x0010203c, 0x5c027800, | ||
6526 | 0x42003000, 0x00000014, 0x0201f800, 0x0010a942, | ||
6527 | 0x42000000, 0x0010b864, 0x0201f800, 0x0010aa47, | ||
6528 | 0x4d2c0000, 0x59325808, 0x0201f800, 0x00109037, | ||
6529 | 0x04000006, 0x4d400000, 0x42028000, 0x00000029, | ||
6530 | 0x0401f8dc, 0x5c028000, 0x5c025800, 0x0201f000, | ||
6531 | 0x0002077d, 0x493bc857, 0x497a6206, 0x83380480, | ||
6532 | 0x00000054, 0x02021800, 0x001005d8, 0x83380480, | ||
6533 | 0x00000047, 0x02001800, 0x001005d8, 0x0c01f001, | ||
6534 | 0x001065b6, 0x0010657f, 0x0010657d, 0x0010657d, | ||
6535 | 0x0010657d, 0x0010657d, 0x0010657d, 0x0010657d, | ||
6536 | 0x0010657d, 0x0010657d, 0x0010657d, 0x0010657d, | ||
6537 | 0x00106583, 0x0201f800, 0x001005d8, 0x59300011, | ||
6538 | 0x82000500, 0xffff0000, 0x04020034, 0x59840802, | ||
6539 | 0x8c040d04, 0x04000025, 0x59300009, 0x80026d40, | ||
6540 | 0x0400001f, 0x4c5c0000, 0x4c600000, 0x497a6206, | ||
6541 | 0x5930b808, 0x585c0005, 0x8000c540, 0x02000800, | ||
6542 | 0x001005d8, 0x0401fe8d, 0x40625800, 0x0201f800, | ||
6543 | 0x00104cde, 0x4978b805, 0x0401fef5, 0x497a6009, | ||
6544 | 0x585c3408, 0x0401fcbd, 0x0400000e, 0x42001000, | ||
6545 | 0x0010b519, 0x0401fcf2, 0x0400000a, 0x0201f800, | ||
6546 | 0x001007e4, 0x04000007, 0x492cb805, 0x585c5408, | ||
6547 | 0x0401fc83, 0x5c00c000, 0x5c00b800, 0x1c01f000, | ||
6548 | 0x0401fca9, 0x0401f7fc, 0x8c040d06, 0x040207fc, | ||
6549 | 0x59300009, 0x80026d40, 0x04000006, 0x5934000e, | ||
6550 | 0x80000540, 0x02020800, 0x001005d8, 0x497a6009, | ||
6551 | 0x0401fd0d, 0x0401f7f2, 0x0401f06f, 0x4803c856, | ||
6552 | 0x4803c856, 0x83380580, 0x00000043, 0x02020800, | ||
6553 | 0x001005d8, 0x4a026203, 0x00000003, 0x493a6403, | ||
6554 | 0x59325808, 0x592c000f, 0x48026011, 0x497a6013, | ||
6555 | 0x592c0406, 0x800000c2, 0x800010c4, 0x80081400, | ||
6556 | 0x480a6206, 0x0201f800, 0x00100f4e, 0x42000800, | ||
6557 | 0x80000060, 0x0401f154, 0x42000000, 0x0010b875, | ||
6558 | 0x0201f800, 0x0010aa47, 0x59300203, 0x82000c80, | ||
6559 | 0x0000000e, 0x02021800, 0x001005d8, 0x4803c857, | ||
6560 | 0x82000d80, 0x00000003, 0x04000006, 0x82000d80, | ||
6561 | 0x00000004, 0x04000045, 0x0201f800, 0x001005d8, | ||
6562 | 0x0201f800, 0x00106c55, 0x59300004, 0x8c00053e, | ||
6563 | 0x04020007, 0x0201f800, 0x00106b6c, 0x02020800, | ||
6564 | 0x001005d8, 0x0201f000, 0x00106c4b, 0x0401f9c3, | ||
6565 | 0x0201f800, 0x00106c4b, 0x59325808, 0x42028000, | ||
6566 | 0x00000006, 0x0401f84b, 0x0201f000, 0x0002077d, | ||
6567 | 0x4803c856, 0x59300203, 0x82000c80, 0x0000000e, | ||
6568 | 0x02021800, 0x001005d8, 0x82000d80, 0x00000003, | ||
6569 | 0x04000006, 0x82000d80, 0x00000004, 0x04000023, | ||
6570 | 0x0201f800, 0x001005d8, 0x4803c856, 0x0201f800, | ||
6571 | 0x00106c55, 0x4df00000, 0x59300004, 0x8c00053e, | ||
6572 | 0x04020006, 0x0201f800, 0x00106f60, 0x02020800, | ||
6573 | 0x001005d8, 0x0401f010, 0x0201f800, 0x00108cd6, | ||
6574 | 0x04020004, 0x0201f800, 0x00106e62, 0x0402000a, | ||
6575 | 0x0401f99a, 0x02020800, 0x001005d8, 0x5c03e000, | ||
6576 | 0x02000800, 0x00106c4b, 0x82000540, 0x00000001, | ||
6577 | 0x1c01f000, 0x5c03e000, 0x02000800, 0x00106c4b, | ||
6578 | 0x80000580, 0x1c01f000, 0x4933c857, 0x0201f800, | ||
6579 | 0x00100e99, 0x4933c857, 0x4c5c0000, 0x4d340000, | ||
6580 | 0x497a6206, 0x5930b808, 0x59300009, 0x80026d40, | ||
6581 | 0x04020e5f, 0x42001000, 0x0010b519, 0x0401fc60, | ||
6582 | 0x04000009, 0x58c80204, 0x4800bc08, 0x41785000, | ||
6583 | 0x0201f800, 0x00106227, 0x5c026800, 0x5c00b800, | ||
6584 | 0x1c01f000, 0x4978bc08, 0x0401fc17, 0x0401f7fb, | ||
6585 | 0x4803c856, 0x0201f800, 0x00109037, 0x0400000f, | ||
6586 | 0x592c0000, 0x80000d40, 0x04000009, 0x497a5800, | ||
6587 | 0x49425a06, 0x4c040000, 0x0201f800, 0x000202da, | ||
6588 | 0x5c000800, 0x40065800, 0x0401f7f6, 0x49425a06, | ||
6589 | 0x0201f800, 0x000202da, 0x1c01f000, 0x4933c857, | ||
6590 | 0x59300c06, 0x82040580, 0x0000000e, 0x04000004, | ||
6591 | 0x82040580, 0x00000009, 0x04020004, 0x0401ffe5, | ||
6592 | 0x497a6008, 0x80000580, 0x1c01f000, 0x592e6009, | ||
6593 | 0x83300480, 0x0010d1c0, 0x04001016, 0x41580000, | ||
6594 | 0x81300480, 0x04021013, 0x40040000, 0x59300c06, | ||
6595 | 0x80040580, 0x04020012, 0x59300a03, 0x82040580, | ||
6596 | 0x00000007, 0x02020800, 0x001005d8, 0x59300008, | ||
6597 | 0x80000540, 0x02020800, 0x001005d8, 0x0201f800, | ||
6598 | 0x0002077d, 0x42000000, 0x00000000, 0x0401f009, | ||
6599 | 0x42000000, 0x00000008, 0x0401f006, 0x82040580, | ||
6600 | 0x00000007, 0x040207fb, 0x42000000, 0x00000005, | ||
6601 | 0x592c0a06, 0x48065c06, 0x48025a06, 0x0201f000, | ||
6602 | 0x000202da, 0x4c0c0000, 0x4c100000, 0x4c140000, | ||
6603 | 0x4c180000, 0x80001d80, 0x80002580, 0x42003000, | ||
6604 | 0x00000020, 0x82040500, 0x00000001, 0x04000003, | ||
6605 | 0x40080000, 0x800c1c00, 0x400c2800, 0x800c1902, | ||
6606 | 0x80102102, 0x82140500, 0x00000001, 0x04000003, | ||
6607 | 0x82102540, 0x80000000, 0x80040902, 0x80183040, | ||
6608 | 0x040207f1, 0x40100800, 0x400c0000, 0x5c003000, | ||
6609 | 0x5c002800, 0x5c002000, 0x5c001800, 0x1c01f000, | ||
6610 | 0x4c580000, 0x4200b000, 0x00000020, 0x80000540, | ||
6611 | 0x04000018, 0x80041c80, 0x04021016, 0x800810c2, | ||
6612 | 0x80040982, 0x04001006, 0x80041c80, 0x04021005, | ||
6613 | 0x8058b040, 0x040207fa, 0x0401f006, 0x80041c80, | ||
6614 | 0x400c0800, 0x80081000, 0x8058b040, 0x040207f4, | ||
6615 | 0x4c000000, 0x41f00000, 0x82000500, 0xf7ffffff, | ||
6616 | 0x4003e000, 0x5c000000, 0x5c00b000, 0x1c01f000, | ||
6617 | 0x4c000000, 0x41f00000, 0x82000540, 0x08000000, | ||
6618 | 0x0401f7f8, 0x4a0378e8, 0x00000000, 0x4a03c821, | ||
6619 | 0x00000010, 0x4a03c823, 0x00000004, 0x0401f82c, | ||
6620 | 0x4a0378e9, 0x00003a0d, 0x4a0378e8, 0x00000001, | ||
6621 | 0x42000000, 0x00001000, 0x50000000, 0x82000480, | ||
6622 | 0x24220001, 0x04000004, 0x59e00002, 0x84000548, | ||
6623 | 0x4803c002, 0x42000800, 0x00000005, 0x4203a000, | ||
6624 | 0x00007600, 0x42000000, 0x00001000, 0x50000000, | ||
6625 | 0x82000480, 0x24320001, 0x04021003, 0x4a03a005, | ||
6626 | 0xd0000001, 0x59d00006, 0x4a03a005, 0x90000001, | ||
6627 | 0x83d3a400, 0x00000020, 0x80040840, 0x040207fa, | ||
6628 | 0x59e00003, 0x82000500, 0xffffffe0, 0x82000540, | ||
6629 | 0x00008000, 0x4803c003, 0x59c40006, 0x82000500, | ||
6630 | 0xfffcffff, 0x48038806, 0x1c01f000, 0x4d900000, | ||
6631 | 0x4d180000, 0x4a0378e7, 0xaaaaaaaa, 0x4a0378e6, | ||
6632 | 0xaaaaaaaa, 0x4a0378e5, 0xaaaaaaaa, 0x4a0378e4, | ||
6633 | 0xaaaaaaaa, 0x42000800, 0x0000bf00, 0x4a00081a, | ||
6634 | 0x0010b7d4, 0x4a00081b, 0x001010bd, 0x4a00081c, | ||
6635 | 0x001010cd, 0x4a031800, 0x00000000, 0x4a031801, | ||
6636 | 0x0010b544, 0x4a031802, 0x0010b54b, 0x42000800, | ||
6637 | 0x0010b7d7, 0x417a3000, 0x811b20c8, 0x83932400, | ||
6638 | 0x0000bf32, 0x48072000, 0x4a032001, 0x00000000, | ||
6639 | 0x83180400, 0x001070ea, 0x50000000, 0x48032002, | ||
6640 | 0x82040c00, 0x00000003, 0x811a3000, 0x83180480, | ||
6641 | 0x00000005, 0x040017f1, 0x5c023000, 0x5c032000, | ||
6642 | 0x1c01f000, 0x48066004, 0x497a6000, 0x497a6001, | ||
6643 | 0x59bc00ea, 0x8c000516, 0x040207fe, 0x83300400, | ||
6644 | 0xa0000000, 0x480378e1, 0x1c01f000, 0x4933c857, | ||
6645 | 0x42000800, 0x80000040, 0x48066004, 0x497a6000, | ||
6646 | 0x59bc00ea, 0x8c000516, 0x040207fe, 0x83300400, | ||
6647 | 0x60000000, 0x480378e1, 0x1c01f000, 0x0201f800, | ||
6648 | 0x00106c55, 0x4df00000, 0x4d300000, 0x4d340000, | ||
6649 | 0x4d2c0000, 0x4d180000, 0x4c5c0000, 0x4c600000, | ||
6650 | 0x4d900000, 0x4dd00000, 0x4da40000, 0x4d140000, | ||
6651 | 0x42003000, 0x0000bf2e, 0x581a6001, 0x813261c0, | ||
6652 | 0x0400002c, 0x41302800, 0x4178c000, 0x59300000, | ||
6653 | 0x4c000000, 0x59326809, 0x5930b801, 0x59300406, | ||
6654 | 0x82000d80, 0x00000006, 0x04020003, 0x8d3e7d18, | ||
6655 | 0x04000010, 0x8d3e7d06, 0x04000007, 0x82000580, | ||
6656 | 0x00000003, 0x04020004, 0x59340200, 0x8c00050e, | ||
6657 | 0x04020008, 0x0401f92f, 0x4c0c0000, 0x4c140000, | ||
6658 | 0x0401fb5f, 0x5c002800, 0x5c001800, 0x0401f005, | ||
6659 | 0x41301800, 0x8060c1c0, 0x04020002, 0x400cc000, | ||
6660 | 0x805cb9c0, 0x04000003, 0x405e6000, 0x0401f7e3, | ||
6661 | 0x5c026000, 0x813261c0, 0x04000006, 0x8060c1c0, | ||
6662 | 0x04000002, 0x40602800, 0x4178c000, 0x0401f7d8, | ||
6663 | 0x417a3000, 0x0201f800, 0x001070d8, 0x59926004, | ||
6664 | 0x813261c0, 0x04000023, 0x59326809, 0x4130c000, | ||
6665 | 0x59300001, 0x8000bd40, 0x04000016, 0x40026000, | ||
6666 | 0x40602800, 0x5930b801, 0x59300406, 0x82000d80, | ||
6667 | 0x00000006, 0x0400000e, 0x8d3e7d06, 0x04000007, | ||
6668 | 0x82000580, 0x00000003, 0x04020004, 0x59340200, | ||
6669 | 0x8c00050e, 0x04020006, 0x0401f8dc, 0x4c140000, | ||
6670 | 0x0401fb2f, 0x5c002800, 0x0401f002, 0x41302800, | ||
6671 | 0x405e6000, 0x813261c0, 0x040207eb, 0x8060c1c0, | ||
6672 | 0x04000004, 0x40626000, 0x4178c000, 0x0401f7e7, | ||
6673 | 0x811a3000, 0x83180480, 0x00000005, 0x040017d6, | ||
6674 | 0x5c022800, 0x5c034800, 0x5c03a000, 0x5c032000, | ||
6675 | 0x5c00c000, 0x5c00b800, 0x5c023000, 0x5c025800, | ||
6676 | 0x5c026800, 0x5c026000, 0x5c03e000, 0x02000800, | ||
6677 | 0x00106c4b, 0x1c01f000, 0x4933c857, 0x0201f800, | ||
6678 | 0x00106c55, 0x4df00000, 0x4d340000, 0x4d180000, | ||
6679 | 0x4d900000, 0x42003000, 0x0000bf2e, 0x59326809, | ||
6680 | 0x58182001, 0x40102800, 0x801021c0, 0x04000016, | ||
6681 | 0x41300000, 0x80100580, 0x04000011, 0x58100009, | ||
6682 | 0x81340580, 0x0402000b, 0x40101800, 0x58102001, | ||
6683 | 0x41300000, 0x801021c0, 0x0400000b, 0x80100d80, | ||
6684 | 0x04000007, 0x40101800, 0x58102001, 0x0401f7fa, | ||
6685 | 0x40102800, 0x58102000, 0x0401f7ec, 0x0401f8bd, | ||
6686 | 0x0401f01a, 0x42032000, 0x0000bf32, 0x417a3000, | ||
6687 | 0x59902004, 0x40102800, 0x801021c0, 0x0400000b, | ||
6688 | 0x58100009, 0x81340580, 0x04020008, 0x41300000, | ||
6689 | 0x80100580, 0x0400000c, 0x40102800, 0x58102001, | ||
6690 | 0x801021c0, 0x040207fa, 0x811a3000, 0x83180480, | ||
6691 | 0x00000005, 0x0402100d, 0x83932400, 0x00000010, | ||
6692 | 0x0401f7ec, 0x0401f881, 0x5c032000, 0x5c023000, | ||
6693 | 0x5c026800, 0x5c03e000, 0x02000800, 0x00106c4b, | ||
6694 | 0x80000580, 0x1c01f000, 0x0401fb6f, 0x040007f7, | ||
6695 | 0x5c032000, 0x5c023000, 0x5c026800, 0x5c03e000, | ||
6696 | 0x02000800, 0x00106c4b, 0x82000540, 0x00000001, | ||
6697 | 0x1c01f000, 0x0201f800, 0x00106c55, 0x4df00000, | ||
6698 | 0x4d300000, 0x4d340000, 0x4d180000, 0x4d2c0000, | ||
6699 | 0x4c5c0000, 0x4c600000, 0x4d900000, 0x4dd00000, | ||
6700 | 0x4da40000, 0x4d140000, 0x42003000, 0x0000bf2e, | ||
6701 | 0x581a6001, 0x813261c0, 0x04000023, 0x41302800, | ||
6702 | 0x5930b800, 0x59326809, 0x59340403, 0x81440580, | ||
6703 | 0x04000006, 0x805cb9c0, 0x0400001b, 0x41302800, | ||
6704 | 0x405e6000, 0x0401f7f7, 0x5930b801, 0x8d3e7d00, | ||
6705 | 0x04000003, 0x0401fb67, 0x0402000e, 0x59300406, | ||
6706 | 0x82000580, 0x00000006, 0x04020003, 0x8d3e7d18, | ||
6707 | 0x04000008, 0x0401f867, 0x4c0c0000, 0x4c140000, | ||
6708 | 0x0401fa97, 0x5c002800, 0x5c001800, 0x0401f002, | ||
6709 | 0x41301800, 0x405e6000, 0x813261c0, 0x040207eb, | ||
6710 | 0x0401f02d, 0x417a3000, 0x0201f800, 0x001070d8, | ||
6711 | 0x59926004, 0x813261c0, 0x04000005, 0x59326809, | ||
6712 | 0x59340403, 0x81440580, 0x04000006, 0x811a3000, | ||
6713 | 0x83180480, 0x00000005, 0x040017f4, 0x0401f01e, | ||
6714 | 0x4130c000, 0x59300001, 0x8000bd40, 0x04000012, | ||
6715 | 0x40026000, 0x40602800, 0x5930b801, 0x8d3e7d00, | ||
6716 | 0x04000003, 0x0401fb3b, 0x0402000a, 0x59300406, | ||
6717 | 0x82000580, 0x00000006, 0x04000006, 0x0401f81b, | ||
6718 | 0x4c140000, 0x0401fa6e, 0x5c002800, 0x0401f002, | ||
6719 | 0x41302800, 0x405e6000, 0x813261c0, 0x040207ef, | ||
6720 | 0x8060c1c0, 0x04000004, 0x40626000, 0x4178c000, | ||
6721 | 0x0401f7eb, 0x5c022800, 0x5c034800, 0x5c03a000, | ||
6722 | 0x5c032000, 0x5c00c000, 0x5c00b800, 0x5c025800, | ||
6723 | 0x5c023000, 0x5c026800, 0x5c026000, 0x5c03e000, | ||
6724 | 0x04000be3, 0x1c01f000, 0x0401fbc8, 0x59900004, | ||
6725 | 0x81300580, 0x04020018, 0x4c140000, 0x0201f800, | ||
6726 | 0x00106dc3, 0x0401fbb8, 0x5c002800, 0x59300001, | ||
6727 | 0x800001c0, 0x04020003, 0x497a680c, 0x1c01f000, | ||
6728 | 0x42003000, 0x0000bf2e, 0x497a6001, 0x58180801, | ||
6729 | 0x800409c0, 0x04020004, 0x48003000, 0x48003001, | ||
6730 | 0x1c01f000, 0x58180800, 0x48000800, 0x48003000, | ||
6731 | 0x1c01f000, 0x59300001, 0x48002801, 0x800001c0, | ||
6732 | 0x04020002, 0x4816680c, 0x497a6001, 0x1c01f000, | ||
6733 | 0x0401fba6, 0x42003000, 0x0000bf2e, 0x58180001, | ||
6734 | 0x81300580, 0x0402001c, 0x59300801, 0x800409c0, | ||
6735 | 0x0400000e, 0x59300000, 0x800001c0, 0x04020005, | ||
6736 | 0x48043001, 0x48043000, 0x497a6001, 0x1c01f000, | ||
6737 | 0x59300000, 0x48000800, 0x48043001, 0x497a6000, | ||
6738 | 0x497a6001, 0x1c01f000, 0x59300800, 0x800409c0, | ||
6739 | 0x04020005, 0x49783001, 0x49783000, 0x497a680c, | ||
6740 | 0x1c01f000, 0x48043001, 0x497a6000, 0x497a680c, | ||
6741 | 0x1c01f000, 0x58180000, 0x81300580, 0x0402000c, | ||
6742 | 0x59300001, 0x800001c0, 0x04020005, 0x48143000, | ||
6743 | 0x49782800, 0x497a680c, 0x1c01f000, 0x48003000, | ||
6744 | 0x48002800, 0x497a6001, 0x1c01f000, 0x59300000, | ||
6745 | 0x800001c0, 0x04020008, 0x59300001, 0x48001801, | ||
6746 | 0x800001c0, 0x04020002, 0x480e680c, 0x497a6001, | ||
6747 | 0x1c01f000, 0x59300801, 0x800409c0, 0x04020006, | ||
6748 | 0x59300800, 0x48042800, 0x497a6000, 0x497a680c, | ||
6749 | 0x1c01f000, 0x59300000, 0x48000800, 0x48042800, | ||
6750 | 0x497a6000, 0x497a6001, 0x1c01f000, 0x0401fb82, | ||
6751 | 0x4df00000, 0x0401f839, 0x040208c4, 0x04020945, | ||
6752 | 0x04020a89, 0x04020005, 0x5c03e000, 0x04000b70, | ||
6753 | 0x80000580, 0x1c01f000, 0x5c03e000, 0x04000b6c, | ||
6754 | 0x82000540, 0x00000001, 0x1c01f000, 0x4d2c0000, | ||
6755 | 0x4d340000, 0x4d300000, 0x41783000, 0x598e6009, | ||
6756 | 0x813261c0, 0x04000021, 0x59300406, 0x82000580, | ||
6757 | 0x00000006, 0x04020004, 0x8d3e7d18, 0x0402000a, | ||
6758 | 0x0401f017, 0x82040580, 0x00000005, 0x04020006, | ||
6759 | 0x8d3e7d16, 0x04000004, 0x59300420, 0x8c000500, | ||
6760 | 0x0402000f, 0x0401fa4e, 0x59300000, 0x4c000000, | ||
6761 | 0x8d3e7d06, 0x04000004, 0x0201f800, 0x001092d7, | ||
6762 | 0x04000005, 0x0401f867, 0x4c180000, 0x0401f9bc, | ||
6763 | 0x5c003000, 0x5c026000, 0x0401f7e2, 0x41303000, | ||
6764 | 0x59326000, 0x0401f7df, 0x5c026000, 0x5c026800, | ||
6765 | 0x5c025800, 0x1c01f000, 0x4933c857, 0x4c5c0000, | ||
6766 | 0x813261c0, 0x02000800, 0x001005d8, 0x41300000, | ||
6767 | 0x598cb809, 0x41783000, 0x805cb9c0, 0x04000013, | ||
6768 | 0x805c0d80, 0x04000004, 0x405c3000, 0x5818b800, | ||
6769 | 0x0401f7fa, 0x0401f84b, 0x598c000d, 0x81300580, | ||
6770 | 0x02000800, 0x001070b9, 0x59300403, 0x82000580, | ||
6771 | 0x00000042, 0x04020002, 0x497a6007, 0x80000580, | ||
6772 | 0x5c00b800, 0x1c01f000, 0x82000540, 0x00000001, | ||
6773 | 0x5c00b800, 0x1c01f000, 0x0401fb27, 0x4df00000, | ||
6774 | 0x4d2c0000, 0x4d340000, 0x4d300000, 0x41783000, | ||
6775 | 0x598e6009, 0x813261c0, 0x0400002c, 0x59300c06, | ||
6776 | 0x82040580, 0x00000006, 0x04020004, 0x8d3e7d18, | ||
6777 | 0x0402000a, 0x0401f022, 0x82040580, 0x00000005, | ||
6778 | 0x04020006, 0x8d3e7d18, 0x04000004, 0x59300420, | ||
6779 | 0x8c000500, 0x0402001a, 0x59326809, 0x59340403, | ||
6780 | 0x81440580, 0x04020016, 0x8d3e7d00, 0x04000006, | ||
6781 | 0x82040580, 0x00000003, 0x04020011, 0x0401fa35, | ||
6782 | 0x0402000f, 0x0401f9f6, 0x59300000, 0x4c000000, | ||
6783 | 0x8d3e7d06, 0x04000004, 0x0201f800, 0x001092d7, | ||
6784 | 0x04000005, 0x0401f80f, 0x4c180000, 0x0401f964, | ||
6785 | 0x5c003000, 0x5c026000, 0x0401f7d7, 0x41303000, | ||
6786 | 0x59326000, 0x0401f7d4, 0x5c026000, 0x5c026800, | ||
6787 | 0x5c025800, 0x5c03e000, 0x04000ae5, 0x1c01f000, | ||
6788 | 0x59300800, 0x497a6000, 0x0401fac8, 0x801831c0, | ||
6789 | 0x04020009, 0x598c0008, 0x81300580, 0x04020004, | ||
6790 | 0x48031808, 0x48031809, 0x0401f008, 0x48071809, | ||
6791 | 0x0401f006, 0x48043000, 0x598c0008, 0x81300580, | ||
6792 | 0x04020002, 0x481b1808, 0x0401f2ca, 0x4d2c0000, | ||
6793 | 0x4d300000, 0x4d340000, 0x41783000, 0x598e600b, | ||
6794 | 0x813261c0, 0x04000013, 0x8d3e7d06, 0x04000005, | ||
6795 | 0x59326809, 0x59340200, 0x8c00050e, 0x0402000a, | ||
6796 | 0x0401f9bf, 0x59300000, 0x4c000000, 0x0401f853, | ||
6797 | 0x4c180000, 0x0401f932, 0x5c003000, 0x5c026000, | ||
6798 | 0x0401f7f0, 0x41303000, 0x59326000, 0x0401f7ed, | ||
6799 | 0x0201f800, 0x00104773, 0x5c026800, 0x5c026000, | ||
6800 | 0x5c025800, 0x1c01f000, 0x4933c857, 0x4c5c0000, | ||
6801 | 0x813261c0, 0x02000800, 0x001005d8, 0x41300000, | ||
6802 | 0x598cb80b, 0x41783000, 0x805cb9c0, 0x0400000f, | ||
6803 | 0x805c0d80, 0x04000004, 0x405c3000, 0x5818b800, | ||
6804 | 0x0401f7fa, 0x0401f835, 0x598c000d, 0x81300580, | ||
6805 | 0x02000800, 0x001070b9, 0x497a6007, 0x80000580, | ||
6806 | 0x5c00b800, 0x1c01f000, 0x82000540, 0x00000001, | ||
6807 | 0x5c00b800, 0x1c01f000, 0x0401fa9f, 0x4df00000, | ||
6808 | 0x4d340000, 0x4d300000, 0x4d2c0000, 0x0201f800, | ||
6809 | 0x00020245, 0x02020800, 0x001005d8, 0x41783000, | ||
6810 | 0x598e600b, 0x813261c0, 0x04000014, 0x59300009, | ||
6811 | 0x81340580, 0x0402000e, 0x8d3e7d00, 0x04000003, | ||
6812 | 0x0401f9bc, 0x0402000a, 0x0401f97d, 0x59300000, | ||
6813 | 0x4c000000, 0x0401f811, 0x4c180000, 0x0401f8f0, | ||
6814 | 0x5c003000, 0x5c026000, 0x0401f7ef, 0x41303000, | ||
6815 | 0x59326000, 0x0401f7ec, 0x0201f800, 0x0010479c, | ||
6816 | 0x5c025800, 0x5c026000, 0x5c026800, 0x5c03e000, | ||
6817 | 0x04000a6f, 0x1c01f000, 0x59300800, 0x497a6000, | ||
6818 | 0x0401fa52, 0x801831c0, 0x04020009, 0x598c000a, | ||
6819 | 0x81300580, 0x04020004, 0x4803180a, 0x4803180b, | ||
6820 | 0x0401f008, 0x4807180b, 0x0401f006, 0x48043000, | ||
6821 | 0x598c000a, 0x81300580, 0x04020002, 0x481b180a, | ||
6822 | 0x0401f254, 0x0401fa64, 0x4df00000, 0x4d300000, | ||
6823 | 0x598e6005, 0x813261c0, 0x04000020, 0x59300000, | ||
6824 | 0x4c000000, 0x59300c06, 0x82040580, 0x00000011, | ||
6825 | 0x04020007, 0x833c0500, 0x00001800, 0x04000015, | ||
6826 | 0x8d3e7d16, 0x04020013, 0x0401f009, 0x82040580, | ||
6827 | 0x00000004, 0x04020006, 0x8d3e7d16, 0x04000004, | ||
6828 | 0x59300420, 0x8c000500, 0x0402000a, 0x0201f800, | ||
6829 | 0x0010914e, 0x02000800, 0x0010801c, 0x0201f800, | ||
6830 | 0x00109326, 0x0201f800, 0x0002077d, 0x0401fa31, | ||
6831 | 0x5c026000, 0x0401f7e0, 0x497b1805, 0x497b1804, | ||
6832 | 0x5c026000, 0x5c03e000, 0x04000a31, 0x1c01f000, | ||
6833 | 0x4933c857, 0x4c5c0000, 0x4c600000, 0x813261c0, | ||
6834 | 0x02000800, 0x001005d8, 0x41300000, 0x598cb805, | ||
6835 | 0x405cc000, 0x805cb9c0, 0x04000025, 0x805c0d80, | ||
6836 | 0x04000004, 0x405cc000, 0x5860b800, 0x0401f7fa, | ||
6837 | 0x598c000d, 0x81300580, 0x02000800, 0x001070b9, | ||
6838 | 0x0401fa02, 0x598c0005, 0x805c0580, 0x04020009, | ||
6839 | 0x585c0000, 0x48031805, 0x4978b800, 0x598c0004, | ||
6840 | 0x805c0580, 0x0402000d, 0x497b1804, 0x0401f00b, | ||
6841 | 0x598c0004, 0x805c0580, 0x04020005, 0x48631804, | ||
6842 | 0x4978b800, 0x4978c000, 0x0401f004, 0x585c0000, | ||
6843 | 0x4800c000, 0x4978b800, 0x0401f9fe, 0x80000580, | ||
6844 | 0x5c00c000, 0x5c00b800, 0x1c01f000, 0x82000540, | ||
6845 | 0x00000001, 0x5c00c000, 0x5c00b800, 0x1c01f000, | ||
6846 | 0x4933c857, 0x0401fa04, 0x4df00000, 0x4d2c0000, | ||
6847 | 0x4d340000, 0x4d300000, 0x4c5c0000, 0x4178b800, | ||
6848 | 0x8d3e7d18, 0x0400000d, 0x8d3e7d16, 0x0402000b, | ||
6849 | 0x0201f800, 0x00109037, 0x04000008, 0x0201f800, | ||
6850 | 0x00109597, 0x04020005, 0x592c0207, 0x492fc857, | ||
6851 | 0x8200bd00, 0x0000000f, 0x41783000, 0x598e6005, | ||
6852 | 0x813261c0, 0x04000029, 0x59326809, 0x813669c0, | ||
6853 | 0x04000023, 0x59340403, 0x81440580, 0x04020020, | ||
6854 | 0x59300c06, 0x82040580, 0x00000011, 0x0400001a, | ||
6855 | 0x82040580, 0x00000004, 0x04020004, 0x59300420, | ||
6856 | 0x8c000500, 0x04020016, 0x0201f800, 0x00109037, | ||
6857 | 0x04000008, 0x0201f800, 0x00109597, 0x04020005, | ||
6858 | 0x59300403, 0x82000580, 0x00000043, 0x0400000c, | ||
6859 | 0x0401f8c3, 0x59300000, 0x4c000000, 0x0401f812, | ||
6860 | 0x4c180000, 0x0401f836, 0x5c003000, 0x5c026000, | ||
6861 | 0x0401f7dc, 0x805cb9c0, 0x040207ec, 0x41303000, | ||
6862 | 0x59326000, 0x0401f7d7, 0x5c00b800, 0x5c026000, | ||
6863 | 0x5c026800, 0x5c025800, 0x5c03e000, 0x040009b4, | ||
6864 | 0x1c01f000, 0x59300800, 0x497a6000, 0x0401f997, | ||
6865 | 0x801831c0, 0x04020009, 0x598c0004, 0x81300580, | ||
6866 | 0x04020004, 0x48031804, 0x48031805, 0x0401f008, | ||
6867 | 0x48071805, 0x0401f006, 0x48043000, 0x598c0004, | ||
6868 | 0x81300580, 0x04020002, 0x481b1804, 0x0401f199, | ||
6869 | 0x4943c857, 0x0401f9a8, 0x4df00000, 0x0401fe34, | ||
6870 | 0x0401fecb, 0x5c03e000, 0x04000999, 0x1c01f000, | ||
6871 | 0x4947c857, 0x0401f9a0, 0x4df00000, 0x4d3c0000, | ||
6872 | 0x853e7d00, 0x0401fe75, 0x0401fefc, 0x5c027800, | ||
6873 | 0x5c03e000, 0x0400098e, 0x1c01f000, 0x5c000000, | ||
6874 | 0x4c000000, 0x4803c857, 0x4d340000, 0x4d2c0000, | ||
6875 | 0x59326809, 0x59325808, 0x59300406, 0x82000c80, | ||
6876 | 0x00000012, 0x02021800, 0x001005d8, 0x4933c857, | ||
6877 | 0x4943c857, 0x493fc857, 0x4803c857, 0x0c01f804, | ||
6878 | 0x5c025800, 0x5c026800, 0x1c01f000, 0x00106ae5, | ||
6879 | 0x00106ae7, 0x00106af1, 0x00106b0b, 0x00106ae7, | ||
6880 | 0x00106afb, 0x00106b23, 0x00106ae5, 0x00106ae5, | ||
6881 | 0x00106b36, 0x00106b2d, 0x00106ae5, 0x00106ae5, | ||
6882 | 0x00106ae5, 0x00106ae5, 0x00106ae5, 0x00106b3c, | ||
6883 | 0x00106b3c, 0x0201f800, 0x001005d8, 0x0201f800, | ||
6884 | 0x00109134, 0x02000800, 0x00102074, 0x0201f800, | ||
6885 | 0x00109326, 0x0201f800, 0x0010801c, 0x0201f000, | ||
6886 | 0x00107911, 0x812e59c0, 0x02020800, 0x001005d8, | ||
6887 | 0x5930021d, 0x82000580, 0x00000003, 0x02000800, | ||
6888 | 0x0010912a, 0x0201f000, 0x00107911, 0x0201f800, | ||
6889 | 0x00109037, 0x02000000, 0x00107911, 0x592c1204, | ||
6890 | 0x82081500, 0x000000ff, 0x82080580, 0x00000055, | ||
6891 | 0x02020800, 0x001005d8, 0x49425a06, 0x0201f800, | ||
6892 | 0x000202da, 0x0201f000, 0x00107911, 0x59300004, | ||
6893 | 0x8400055c, 0x48026004, 0x59300007, 0x8c000500, | ||
6894 | 0x02020800, 0x00100e99, 0x0201f800, 0x00109037, | ||
6895 | 0x0400000d, 0x4a025a04, 0x00000103, 0x49425a06, | ||
6896 | 0x497a5c09, 0x0201f800, 0x001091c6, 0x0201f800, | ||
6897 | 0x0010a693, 0x0201f800, 0x000202da, 0x0201f800, | ||
6898 | 0x0010912a, 0x0201f000, 0x00107911, 0x59300007, | ||
6899 | 0x8c000500, 0x02020800, 0x00100e99, 0x0201f800, | ||
6900 | 0x00109037, 0x02020800, 0x0010a3ef, 0x0201f000, | ||
6901 | 0x00107911, 0x0201f800, 0x00109037, 0x04000005, | ||
6902 | 0x49425a06, 0x497a5c09, 0x0201f800, 0x000202da, | ||
6903 | 0x0201f000, 0x00107911, 0x0201f800, 0x00109037, | ||
6904 | 0x02020800, 0x0010664f, 0x0201f000, 0x00107911, | ||
6905 | 0x0201f800, 0x00109037, 0x04000004, 0x49425a06, | ||
6906 | 0x0201f800, 0x000202da, 0x59325817, 0x0201f800, | ||
6907 | 0x001007fd, 0x0201f000, 0x00107911, 0x598c000d, | ||
6908 | 0x81300580, 0x04000003, 0x497a6007, 0x1c01f000, | ||
6909 | 0x59c40004, 0x82000500, 0x0000000c, 0x04000005, | ||
6910 | 0x4a038804, 0x0000000c, 0x497b2807, 0x0401f00a, | ||
6911 | 0x0401facd, 0x59300403, 0x82000d80, 0x00000040, | ||
6912 | 0x04000004, 0x82000580, 0x00000042, 0x04020002, | ||
6913 | 0x497a6007, 0x0201f800, 0x001070b9, 0x80000580, | ||
6914 | 0x1c01f000, 0x59300804, 0x8c040d3e, 0x04020004, | ||
6915 | 0x82000540, 0x00000001, 0x0401f005, 0x4933c857, | ||
6916 | 0x84040d3e, 0x48066004, 0x80000580, 0x1c01f000, | ||
6917 | 0x59300804, 0x8c040d20, 0x04020004, 0x82000540, | ||
6918 | 0x00000001, 0x1c01f000, 0x4933c857, 0x4d380000, | ||
6919 | 0x59300804, 0x84040d20, 0x48066004, 0x42027000, | ||
6920 | 0x00000049, 0x59300203, 0x82000580, 0x00000003, | ||
6921 | 0x04000003, 0x42027000, 0x00000013, 0x0201f800, | ||
6922 | 0x000207a1, 0x80000580, 0x5c027000, 0x1c01f000, | ||
6923 | 0x59300017, 0x81480580, 0x04020003, 0x59300018, | ||
6924 | 0x814c0580, 0x1c01f000, 0x4d2c0000, 0x4d300000, | ||
6925 | 0x0401f8c9, 0x4df00000, 0x0201f800, 0x00106062, | ||
6926 | 0x59900001, 0x82000500, 0x00000003, 0x0c01f001, | ||
6927 | 0x00106bba, 0x00106b9a, 0x00106b98, 0x00106b98, | ||
6928 | 0x0201f800, 0x001005d8, 0x59926004, 0x0401f88e, | ||
6929 | 0x813261c0, 0x0400001d, 0x59300004, 0x8c000516, | ||
6930 | 0x04000004, 0x59325808, 0x497a5808, 0x497a5809, | ||
6931 | 0x0401f88e, 0x59300001, 0x800001c0, 0x0400000e, | ||
6932 | 0x497a6001, 0x42003000, 0x0000bf2e, 0x58180801, | ||
6933 | 0x800409c0, 0x04020004, 0x48003001, 0x48003000, | ||
6934 | 0x0401f00a, 0x58180800, 0x48000800, 0x48003000, | ||
6935 | 0x0401f006, 0x59300809, 0x800409c0, 0x02000800, | ||
6936 | 0x001005d8, 0x4978080c, 0x5c03e000, 0x04000890, | ||
6937 | 0x5c026000, 0x5c025800, 0x1c01f000, 0x4d300000, | ||
6938 | 0x497b2807, 0x0401f894, 0x4df00000, 0x598c0000, | ||
6939 | 0x82000500, 0x00000007, 0x4803c857, 0x0c01f001, | ||
6940 | 0x00106bef, 0x00106bd2, 0x00106bdb, 0x00106bdf, | ||
6941 | 0x00106bea, 0x00106bef, 0x00106bd0, 0x00106bd0, | ||
6942 | 0x0201f800, 0x001005d8, 0x598c000d, 0x80026540, | ||
6943 | 0x04000004, 0x0401f81e, 0x02020800, 0x001005d8, | ||
6944 | 0x0201f800, 0x001070b9, 0x0401f015, 0x0401f827, | ||
6945 | 0x0201f800, 0x001070b9, 0x0401f011, 0x598c000d, | ||
6946 | 0x80026540, 0x0400000e, 0x0401f838, 0x04000004, | ||
6947 | 0x0401f80f, 0x04000002, 0x0401f81c, 0x0201f800, | ||
6948 | 0x001070b9, 0x0401f006, 0x0401f830, 0x02020800, | ||
6949 | 0x001005d8, 0x0201f800, 0x001070b9, 0x5c03e000, | ||
6950 | 0x0400085b, 0x5c026000, 0x1c01f000, 0x598c0009, | ||
6951 | 0x81300580, 0x0402000c, 0x0401f84e, 0x0401f83b, | ||
6952 | 0x59300000, 0x800001c0, 0x04000004, 0x48031809, | ||
6953 | 0x497a6000, 0x0401f003, 0x497b1809, 0x497b1808, | ||
6954 | 0x80000580, 0x1c01f000, 0x4d2c0000, 0x59300406, | ||
6955 | 0x82000580, 0x00000003, 0x04020012, 0x598c000b, | ||
6956 | 0x81300580, 0x0402000f, 0x0401f83a, 0x59325808, | ||
6957 | 0x497a5808, 0x497a5809, 0x0401f824, 0x59300000, | ||
6958 | 0x800001c0, 0x04000004, 0x4803180b, 0x497a6000, | ||
6959 | 0x0401f003, 0x497b180a, 0x497b180b, 0x80000580, | ||
6960 | 0x5c025800, 0x1c01f000, 0x598c0005, 0x81300580, | ||
6961 | 0x0402000c, 0x0401f827, 0x0401f814, 0x59300000, | ||
6962 | 0x800001c0, 0x04000004, 0x48031805, 0x497a6000, | ||
6963 | 0x0401f003, 0x497b1805, 0x497b1804, 0x80000580, | ||
6964 | 0x1c01f000, 0x4a032001, 0x00000000, 0x497b2004, | ||
6965 | 0x497b2005, 0x59900006, 0x82000500, 0x0000ffff, | ||
6966 | 0x48032006, 0x1c01f000, 0x4c040000, 0x59300004, | ||
6967 | 0x82000500, 0x7ffeffff, 0x48026004, 0x59bc00e4, | ||
6968 | 0x8c000514, 0x04000009, 0x42000800, 0x0000bf00, | ||
6969 | 0x58040012, 0x81300580, 0x04020004, 0x49780812, | ||
6970 | 0x4a0378e4, 0x00000800, 0x5c000800, 0x1c01f000, | ||
6971 | 0x4803c856, 0x598c000c, 0x80000540, 0x04000003, | ||
6972 | 0x80000040, 0x4803180c, 0x1c01f000, 0x59bc00ea, | ||
6973 | 0x82000500, 0x00000007, 0x82000580, 0x00000003, | ||
6974 | 0x04020004, 0x4803c856, 0x4a0378e8, 0x00000001, | ||
6975 | 0x1c01f000, 0x59bc00ea, 0x82000500, 0x00000007, | ||
6976 | 0x82000580, 0x00000001, 0x04020011, 0x4803c856, | ||
6977 | 0x42000800, 0x00000000, 0x0401f80e, 0x42000800, | ||
6978 | 0x00001000, 0x59bc00ea, 0x82000500, 0x00000007, | ||
6979 | 0x82000580, 0x00000003, 0x04000005, 0x80040840, | ||
6980 | 0x040207f9, 0x0201f800, 0x001005d8, 0x1c01f000, | ||
6981 | 0x59bc00ea, 0x82000500, 0x00000007, 0x82000580, | ||
6982 | 0x00000001, 0x02020800, 0x001005d8, 0x59bc00ea, | ||
6983 | 0x8c000516, 0x040207fe, 0x480778e1, 0x1c01f000, | ||
6984 | 0x59bc00ea, 0x8c000516, 0x040207fe, 0x480778e1, | ||
6985 | 0x59bc00ea, 0x8c000516, 0x040207fe, 0x480b78e1, | ||
6986 | 0x1c01f000, 0x82000d00, 0x80000018, 0x02020800, | ||
6987 | 0x001005d0, 0x0201f800, 0x001005d8, 0x00106c97, | ||
6988 | 0x00106d3b, 0x00106d55, 0x00106c97, 0x00106c99, | ||
6989 | 0x00106cba, 0x00106cd9, 0x00106d0d, 0x00106c97, | ||
6990 | 0x00106d39, 0x00106c97, 0x00106c97, 0x00106c97, | ||
6991 | 0x00106c97, 0x00106c97, 0x00106c97, 0x0201f800, | ||
6992 | 0x001005d8, 0x4d300000, 0x4d900000, 0x4dd00000, | ||
6993 | 0x4da40000, 0x4d140000, 0x0201f800, 0x001070d8, | ||
6994 | 0x59bc00ea, 0x8c000510, 0x040007fe, 0x59be60e0, | ||
6995 | 0x59300004, 0x8c000520, 0x04000011, 0x82000500, | ||
6996 | 0xfffefeff, 0x48026004, 0x4a026203, 0x00000003, | ||
6997 | 0x0401ffa9, 0x0201f800, 0x00100fd0, 0x5c022800, | ||
6998 | 0x5c034800, 0x5c03a000, 0x5c032000, 0x5c026000, | ||
6999 | 0x4a0378e4, 0x00000008, 0x0401f795, 0x84000510, | ||
7000 | 0x48026004, 0x0401f7f6, 0x4d300000, 0x4d900000, | ||
7001 | 0x4dd00000, 0x4da40000, 0x4d140000, 0x0201f800, | ||
7002 | 0x001070d8, 0x59bc00ea, 0x8c000510, 0x040007fe, | ||
7003 | 0x59be60e0, 0x59300004, 0x8c000520, 0x0400000f, | ||
7004 | 0x82000500, 0xfffefeff, 0x48026004, 0x0401ff8a, | ||
7005 | 0x0201f800, 0x0010100e, 0x5c022800, 0x5c034800, | ||
7006 | 0x5c03a000, 0x5c032000, 0x5c026000, 0x4a0378e4, | ||
7007 | 0x00000008, 0x0401f776, 0x84000510, 0x48026004, | ||
7008 | 0x0401f7f6, 0x4d300000, 0x4d2c0000, 0x4d340000, | ||
7009 | 0x4da40000, 0x4cd00000, 0x59bc00ea, 0x8c000510, | ||
7010 | 0x040007fe, 0x59be60e0, 0x813261c0, 0x02000800, | ||
7011 | 0x001005d8, 0x59300004, 0x8c000520, 0x0400001d, | ||
7012 | 0x82000500, 0xfffefeff, 0x48026004, 0x59326809, | ||
7013 | 0x42034800, 0x0010b544, 0x04011000, 0x4a03c840, | ||
7014 | 0x0010b54b, 0x4a03c842, 0x00000012, 0x04011000, | ||
7015 | 0x4a03c840, 0x0010b55d, 0x4a03c842, 0x000000ff, | ||
7016 | 0x04011000, 0x4a03c840, 0x0010b65c, 0x4a03c842, | ||
7017 | 0x000000ff, 0x0401fbf2, 0x5c01a000, 0x5c034800, | ||
7018 | 0x5c026800, 0x5c025800, 0x5c026000, 0x1c01f000, | ||
7019 | 0x84000510, 0x48026004, 0x5c01a000, 0x5c034800, | ||
7020 | 0x5c026800, 0x5c025800, 0x5c026000, 0x1c01f000, | ||
7021 | 0x1c01f000, 0x4d300000, 0x4d2c0000, 0x4d340000, | ||
7022 | 0x4cd00000, 0x4d900000, 0x4dd00000, 0x4da40000, | ||
7023 | 0x4d140000, 0x0401fbc3, 0x59bc00ea, 0x8c000510, | ||
7024 | 0x040007fe, 0x59be60e0, 0x813261c0, 0x02000800, | ||
7025 | 0x001005d8, 0x59300004, 0x8c000520, 0x0400000f, | ||
7026 | 0x82000500, 0xfffefeff, 0x48026004, 0x0201f800, | ||
7027 | 0x0010783a, 0x5c022800, 0x5c034800, 0x5c03a000, | ||
7028 | 0x5c032000, 0x5c01a000, 0x5c026800, 0x5c025800, | ||
7029 | 0x5c026000, 0x1c01f000, 0x84000510, 0x48026004, | ||
7030 | 0x5c022800, 0x5c034800, 0x5c03a000, 0x5c032000, | ||
7031 | 0x5c01a000, 0x5c026800, 0x5c025800, 0x5c026000, | ||
7032 | 0x1c01f000, 0x0201f800, 0x001005d8, 0x4d300000, | ||
7033 | 0x4d380000, 0x42000000, 0x0010b8c4, 0x0201f800, | ||
7034 | 0x0010aa47, 0x0401ff14, 0x598e600d, 0x59c40004, | ||
7035 | 0x8c000506, 0x04000004, 0x0401f8db, 0x4a038804, | ||
7036 | 0x00000008, 0x813261c0, 0x04000006, 0x0401fb87, | ||
7037 | 0x42027000, 0x00000014, 0x0201f800, 0x000207a1, | ||
7038 | 0x4a0378e4, 0x00000002, 0x5c027000, 0x5c026000, | ||
7039 | 0x0401f6f7, 0x4d180000, 0x4d300000, 0x4d380000, | ||
7040 | 0x4d900000, 0x4dd00000, 0x4da40000, 0x4d140000, | ||
7041 | 0x0401fef9, 0x417a3000, 0x59c40804, 0x83180400, | ||
7042 | 0x0010709f, 0x50000000, 0x80040500, 0x0400001b, | ||
7043 | 0x42000000, 0x0010b8c5, 0x0201f800, 0x0010aa47, | ||
7044 | 0x0401fb70, 0x59926004, 0x0401f859, 0x83180400, | ||
7045 | 0x0010709f, 0x50000000, 0x48038804, 0x813261c0, | ||
7046 | 0x0400000a, 0x59300004, 0x8c00050c, 0x04020003, | ||
7047 | 0x4a026203, 0x00000003, 0x42027000, 0x0000004a, | ||
7048 | 0x0201f800, 0x000207a1, 0x59c40004, 0x82000500, | ||
7049 | 0x00f80000, 0x04000005, 0x811a3000, 0x83180480, | ||
7050 | 0x00000005, 0x040017dd, 0x4a0378e4, 0x00000008, | ||
7051 | 0x5c022800, 0x5c034800, 0x5c03a000, 0x5c032000, | ||
7052 | 0x5c027000, 0x5c026000, 0x5c023000, 0x0401f6c0, | ||
7053 | 0x4d2c0000, 0x4d340000, 0x59326809, 0x598c0800, | ||
7054 | 0x82040580, 0x00000004, 0x04020004, 0x838c1400, | ||
7055 | 0x00000005, 0x0401f00c, 0x82040580, 0x00000001, | ||
7056 | 0x04020004, 0x838c1400, 0x00000009, 0x0401f006, | ||
7057 | 0x82040580, 0x00000002, 0x04020022, 0x838c1400, | ||
7058 | 0x0000000b, 0x41306800, 0x58340000, 0x80007d40, | ||
7059 | 0x0400001c, 0x583c0009, 0x81340580, 0x04020006, | ||
7060 | 0x403c6800, 0x583c0000, 0x80007d40, 0x040207fa, | ||
7061 | 0x0401f014, 0x4933c857, 0x483fc857, 0x583c0000, | ||
7062 | 0x48006800, 0x49307800, 0x443c1000, 0x80000580, | ||
7063 | 0x4803180d, 0x4803180f, 0x598c0000, 0x82000580, | ||
7064 | 0x00000003, 0x04000003, 0x4a031800, 0x00000000, | ||
7065 | 0x80000580, 0x5c026800, 0x5c025800, 0x1c01f000, | ||
7066 | 0x82000540, 0x00000001, 0x0401f7fb, 0x491bc857, | ||
7067 | 0x59c80840, 0x82040540, 0x00000010, 0x48039040, | ||
7068 | 0x59c41008, 0x82080500, 0xffffff7f, 0x48038808, | ||
7069 | 0x4c040000, 0x4c080000, 0x0401fabb, 0x04020007, | ||
7070 | 0x0401fabf, 0x04000022, 0x48038804, 0x0201f800, | ||
7071 | 0x0010107a, 0x0401f042, 0x4a038803, 0x00000008, | ||
7072 | 0x59c40003, 0x82000500, 0x00000003, 0x040007fd, | ||
7073 | 0x8c000502, 0x04020007, 0x0401fab1, 0x04000014, | ||
7074 | 0x48038804, 0x0201f800, 0x0010107a, 0x0401f034, | ||
7075 | 0x59c80040, 0x8400056a, 0x48039040, 0x59c80040, | ||
7076 | 0x8c00052a, 0x040207fe, 0x59c40005, 0x82000500, | ||
7077 | 0xc0000000, 0x04000006, 0x59c400a3, 0x84000540, | ||
7078 | 0x480388a3, 0x4a038805, 0xc0000000, 0x0201f800, | ||
7079 | 0x0010101d, 0x4a03a005, 0x30000000, 0x59d00006, | ||
7080 | 0x4a03a005, 0x30000000, 0x59900006, 0x82000500, | ||
7081 | 0xffff0000, 0x48032006, 0x59d00005, 0x8c000504, | ||
7082 | 0x040207fe, 0x42000800, 0x00007600, 0x83180540, | ||
7083 | 0x60000000, 0x480008a1, 0x811800dc, 0x59c80840, | ||
7084 | 0x80040540, 0x48039040, 0x82000540, 0x00003000, | ||
7085 | 0x48039040, 0x59c80040, 0x82000500, 0x00003000, | ||
7086 | 0x040207fd, 0x0201f800, 0x00101068, 0x83180400, | ||
7087 | 0x0010709f, 0x50000000, 0x48038804, 0x80000580, | ||
7088 | 0x4df00000, 0x0201f800, 0x00106062, 0x5c03e000, | ||
7089 | 0x5c001000, 0x5c000800, 0x480b8808, 0x48079040, | ||
7090 | 0x1c01f000, 0x4803c856, 0x59c80840, 0x82040540, | ||
7091 | 0x00000010, 0x48039040, 0x59c41008, 0x82080500, | ||
7092 | 0xffffff7f, 0x48038808, 0x4c040000, 0x4c080000, | ||
7093 | 0x59c40004, 0x82000500, 0x00000003, 0x04020010, | ||
7094 | 0x59c40004, 0x82000500, 0x0000000c, 0x04000005, | ||
7095 | 0x4a038804, 0x0000000c, 0x8c000504, 0x0401f025, | ||
7096 | 0x59c80040, 0x8400056e, 0x48039040, 0x59c80040, | ||
7097 | 0x8c00052e, 0x040207fe, 0x0401f01e, 0x4a038803, | ||
7098 | 0x00000008, 0x59c40003, 0x82000500, 0x00000003, | ||
7099 | 0x040007fd, 0x8c000502, 0x04020006, 0x59c40004, | ||
7100 | 0x4a038804, 0x0000000c, 0x8c000504, 0x0401f011, | ||
7101 | 0x59c80040, 0x8400056a, 0x48039040, 0x59c80040, | ||
7102 | 0x8c00052a, 0x040207fe, 0x59c40005, 0x82000500, | ||
7103 | 0xc0000000, 0x04000007, 0x59c400a3, 0x84000540, | ||
7104 | 0x480388a3, 0x4a038805, 0xc0000000, 0x80000580, | ||
7105 | 0x497b2807, 0x5c001000, 0x5c000800, 0x480b8808, | ||
7106 | 0x48079040, 0x1c01f000, 0x4933c857, 0x4d900000, | ||
7107 | 0x4dd00000, 0x4da40000, 0x4d140000, 0x0401fdee, | ||
7108 | 0x4df00000, 0x0401fa6f, 0x59900004, 0x800001c0, | ||
7109 | 0x04000011, 0x81300580, 0x0402000f, 0x59300004, | ||
7110 | 0x84000520, 0x48026004, 0x0401ff51, 0x04020009, | ||
7111 | 0x5c03e000, 0x04000dd6, 0x80000580, 0x5c022800, | ||
7112 | 0x5c034800, 0x5c03a000, 0x5c032000, 0x1c01f000, | ||
7113 | 0x0401fd0e, 0x42027000, 0x00000049, 0x59300004, | ||
7114 | 0x84000520, 0x48026004, 0x8c00050c, 0x02020800, | ||
7115 | 0x000207a1, 0x5c03e000, 0x04000dc5, 0x82000540, | ||
7116 | 0x00000001, 0x5c022800, 0x5c034800, 0x5c03a000, | ||
7117 | 0x5c032000, 0x1c01f000, 0x4933c857, 0x0401fdc6, | ||
7118 | 0x4df00000, 0x598c000d, 0x80026540, 0x04000012, | ||
7119 | 0x59300004, 0x84000520, 0x48026004, 0x0401ff8a, | ||
7120 | 0x04000017, 0x0401fd26, 0x42027000, 0x00000013, | ||
7121 | 0x59300004, 0x8c00050c, 0x02020800, 0x000207a1, | ||
7122 | 0x5c03e000, 0x04000daa, 0x82000540, 0x00000001, | ||
7123 | 0x1c01f000, 0x836c1580, 0x00000001, 0x040007f9, | ||
7124 | 0x836c1580, 0x00000004, 0x040007f6, 0x42001000, | ||
7125 | 0x00104148, 0x0201f800, 0x00105f90, 0x5c03e000, | ||
7126 | 0x04000d9b, 0x80000580, 0x1c01f000, 0x4d300000, | ||
7127 | 0x4d180000, 0x4d3c0000, 0x0401fd9f, 0x4df00000, | ||
7128 | 0x4a0378e4, 0x0000000f, 0x0401f9ff, 0x417a3000, | ||
7129 | 0x59926004, 0x813261c0, 0x04000010, 0x417a7800, | ||
7130 | 0x0201f800, 0x001048d9, 0x0400000a, 0x59300c06, | ||
7131 | 0x82040580, 0x00000003, 0x04000004, 0x82040580, | ||
7132 | 0x00000006, 0x04020003, 0x42027800, 0x00000002, | ||
7133 | 0x0201f800, 0x00108be3, 0x811a3000, 0x83180480, | ||
7134 | 0x00000005, 0x040017eb, 0x42000800, 0x00000040, | ||
7135 | 0x0201f800, 0x00101345, 0x4a0378e4, 0x0000000a, | ||
7136 | 0x5c03e000, 0x04000d72, 0x5c027800, 0x5c023000, | ||
7137 | 0x5c026000, 0x1c01f000, 0x4803c856, 0x4d300000, | ||
7138 | 0x0401fd75, 0x4df00000, 0x59c80840, 0x82040540, | ||
7139 | 0x00000010, 0x48039040, 0x59c41008, 0x82080500, | ||
7140 | 0xffffff7f, 0x48038808, 0x4c040000, 0x4c080000, | ||
7141 | 0x42001000, 0x00000003, 0x0401f9c2, 0x598e600d, | ||
7142 | 0x813261c0, 0x04020f9d, 0x040009c7, 0x497b2807, | ||
7143 | 0x0401f80a, 0x5c001000, 0x5c000800, 0x480b8808, | ||
7144 | 0x84040d74, 0x48079040, 0x5c03e000, 0x04000d50, | ||
7145 | 0x5c026000, 0x1c01f000, 0x4d380000, 0x4d180000, | ||
7146 | 0x4d300000, 0x4d900000, 0x4dd00000, 0x4da40000, | ||
7147 | 0x4d140000, 0x59c41004, 0x480bc857, 0x82080500, | ||
7148 | 0x00003ff0, 0x04000025, 0x417a3000, 0x4c080000, | ||
7149 | 0x0201f800, 0x00106062, 0x5c001000, 0x82080500, | ||
7150 | 0x00000210, 0x04020004, 0x811a3000, 0x80081102, | ||
7151 | 0x0401f7f7, 0x0401f9c3, 0x59926004, 0x4933c857, | ||
7152 | 0x813261c0, 0x04020005, 0x59c400a3, 0x8c00051a, | ||
7153 | 0x02000800, 0x001005d8, 0x0401fea5, 0x04000009, | ||
7154 | 0x0401fc6a, 0x42027000, 0x00000049, 0x59300004, | ||
7155 | 0x8c00050c, 0x02020800, 0x000207a1, 0x0401f007, | ||
7156 | 0x42027000, 0x0000004a, 0x4a026203, 0x00000003, | ||
7157 | 0x0201f800, 0x000207a1, 0x5c022800, 0x5c034800, | ||
7158 | 0x5c03a000, 0x5c032000, 0x5c026000, 0x5c023000, | ||
7159 | 0x5c027000, 0x1c01f000, 0x4d300000, 0x4d180000, | ||
7160 | 0x4d900000, 0x0401fd1c, 0x42001000, 0x00000000, | ||
7161 | 0x598c0000, 0x82000580, 0x00000005, 0x04000971, | ||
7162 | 0x417a3000, 0x811b20c8, 0x83932400, 0x0000bf32, | ||
7163 | 0x59900001, 0x82000580, 0x00000001, 0x0402000d, | ||
7164 | 0x42000800, 0x000007d0, 0x59926004, 0x59300011, | ||
7165 | 0x82000500, 0xfff00000, 0x80000540, 0x04000003, | ||
7166 | 0x42000800, 0x00001b58, 0x0201f800, 0x00106054, | ||
7167 | 0x811a3000, 0x83180480, 0x00000005, 0x040017ea, | ||
7168 | 0x59c81040, 0x84081534, 0x480b9040, 0x0401fcf0, | ||
7169 | 0x5c032000, 0x5c023000, 0x5c026000, 0x1c01f000, | ||
7170 | 0x4933c857, 0x4d900000, 0x4dd00000, 0x4da40000, | ||
7171 | 0x4d140000, 0x4d380000, 0x0401fcef, 0x4df00000, | ||
7172 | 0x59300004, 0x8c00053e, 0x04020007, 0x8c000520, | ||
7173 | 0x04000025, 0x0201f800, 0x00106b6c, 0x04000022, | ||
7174 | 0x0401f02a, 0x598c000d, 0x81300580, 0x04000011, | ||
7175 | 0x0201f800, 0x00108cd6, 0x04020024, 0x0401f918, | ||
7176 | 0x04000022, 0x48038804, 0x0401f95e, 0x0201f800, | ||
7177 | 0x0010107a, 0x0401fc0d, 0x42027000, 0x00000049, | ||
7178 | 0x59300004, 0x8c00050c, 0x0402000d, 0x0401f00e, | ||
7179 | 0x59c40004, 0x8c000504, 0x04000014, 0x4a038804, | ||
7180 | 0x00000004, 0x0401fc36, 0x42027000, 0x00000013, | ||
7181 | 0x59300004, 0x8c00050c, 0x04000003, 0x0201f800, | ||
7182 | 0x000207a1, 0x5c03e000, 0x04000cb9, 0x5c027000, | ||
7183 | 0x5c022800, 0x5c034800, 0x5c03a000, 0x5c032000, | ||
7184 | 0x80000580, 0x1c01f000, 0x5c03e000, 0x04000cb0, | ||
7185 | 0x5c027000, 0x5c022800, 0x5c034800, 0x5c03a000, | ||
7186 | 0x5c032000, 0x82000540, 0x00000001, 0x1c01f000, | ||
7187 | 0x497b2807, 0x0401fcb0, 0x59c400af, 0x800001c0, | ||
7188 | 0x04020004, 0x0401fca2, 0x0201f000, 0x001014fb, | ||
7189 | 0x598c000f, 0x82001480, 0x00000002, 0x04021007, | ||
7190 | 0x80000000, 0x4803180f, 0x80000580, 0x0201f800, | ||
7191 | 0x0010604d, 0x0400000e, 0x0401fed8, 0x0402000c, | ||
7192 | 0x0401fdd4, 0x0400000a, 0x0201f800, 0x0010a9c7, | ||
7193 | 0x0401f916, 0x4d380000, 0x42027000, 0x00000014, | ||
7194 | 0x0201f800, 0x000207a1, 0x5c027000, 0x0401fc88, | ||
7195 | 0x0201f000, 0x001014fb, 0x4d900000, 0x4dd00000, | ||
7196 | 0x4da40000, 0x4d140000, 0x4d300000, 0x0201f800, | ||
7197 | 0x00106062, 0x0401fc88, 0x59c400af, 0x800001c0, | ||
7198 | 0x04000027, 0x0401f907, 0x59926004, 0x4933c857, | ||
7199 | 0x59300004, 0x8c000516, 0x0400000b, 0x0401fe8b, | ||
7200 | 0x0402001f, 0x0201f800, 0x00106b8a, 0x0401fc70, | ||
7201 | 0x42000800, 0x80000804, 0x0201f800, 0x00106721, | ||
7202 | 0x0401f017, 0x42001800, 0x00007530, 0x0401f8c1, | ||
7203 | 0x04020004, 0x0201f800, 0x00106052, 0x0401f010, | ||
7204 | 0x0401fe7a, 0x0402000e, 0x0201f800, 0x0010a9c7, | ||
7205 | 0x59300004, 0x8c00050c, 0x04020003, 0x4a026203, | ||
7206 | 0x00000003, 0x4d380000, 0x42027000, 0x0000004a, | ||
7207 | 0x0201f800, 0x000207a1, 0x5c027000, 0x0401fc54, | ||
7208 | 0x5c026000, 0x5c022800, 0x5c034800, 0x5c03a000, | ||
7209 | 0x5c032000, 0x0201f000, 0x001014fb, 0x4d900000, | ||
7210 | 0x4dd00000, 0x4da40000, 0x4d140000, 0x4d300000, | ||
7211 | 0x4d2c0000, 0x0401fc50, 0x0401f8d2, 0x59926004, | ||
7212 | 0x4933c857, 0x0401f880, 0x04000016, 0x0201f800, | ||
7213 | 0x00106062, 0x813261c0, 0x04000034, 0x59325808, | ||
7214 | 0x812e59c0, 0x02000800, 0x001005d8, 0x0201f800, | ||
7215 | 0x0010513b, 0x0402001d, 0x592c0208, 0x84000550, | ||
7216 | 0x48025a08, 0x0201f800, 0x00105258, 0x04020027, | ||
7217 | 0x592c0208, 0x84000510, 0x48025a08, 0x0401f023, | ||
7218 | 0x0201f800, 0x00106052, 0x0401f020, 0x0201f800, | ||
7219 | 0x0010a9c7, 0x0401fd9e, 0x592c0208, 0x84000550, | ||
7220 | 0x48025a08, 0x4d380000, 0x42027000, 0x0000004a, | ||
7221 | 0x4a026203, 0x00000003, 0x0201f800, 0x000207a1, | ||
7222 | 0x5c027000, 0x0401f011, 0x59900006, 0x82000500, | ||
7223 | 0xffff0000, 0x040207ee, 0x59c408af, 0x82040480, | ||
7224 | 0x000003e8, 0x040217ea, 0x59900006, 0x82000400, | ||
7225 | 0x00010000, 0x48032006, 0x0201f800, 0x00106052, | ||
7226 | 0x0201f800, 0x0010411d, 0x5c025800, 0x5c026000, | ||
7227 | 0x5c022800, 0x5c034800, 0x5c03a000, 0x5c032000, | ||
7228 | 0x0401f403, 0x4d300000, 0x4d2c0000, 0x0401fc0a, | ||
7229 | 0x598e600d, 0x4933c857, 0x59c41004, 0x8c081500, | ||
7230 | 0x04000007, 0x0201f800, 0x0010513b, 0x04020007, | ||
7231 | 0x0201f800, 0x00105258, 0x0402002f, 0x0201f800, | ||
7232 | 0x0010604d, 0x0401f02c, 0x598c000f, 0x80000540, | ||
7233 | 0x04020011, 0x59c408af, 0x82040480, 0x000003e8, | ||
7234 | 0x0402100d, 0x598c080f, 0x80040800, 0x4807180f, | ||
7235 | 0x0201f800, 0x0010604d, 0x42000000, 0x0010b852, | ||
7236 | 0x0201f800, 0x0010aa47, 0x0201f800, 0x0010411d, | ||
7237 | 0x0401f019, 0x0401fdb4, 0x813261c0, 0x04020003, | ||
7238 | 0x0401f849, 0x0401f014, 0x0201f800, 0x0010a9c7, | ||
7239 | 0x59300406, 0x82000580, 0x00000003, 0x04020007, | ||
7240 | 0x59325808, 0x812e59c0, 0x04000004, 0x592c0208, | ||
7241 | 0x84000550, 0x48025a08, 0x0401f854, 0x4d380000, | ||
7242 | 0x42027000, 0x00000014, 0x0201f800, 0x000207a1, | ||
7243 | 0x5c027000, 0x5c025800, 0x5c026000, 0x0201f000, | ||
7244 | 0x00106c4b, 0x59c40804, 0x83180400, 0x00107095, | ||
7245 | 0x50000000, 0x80040500, 0x1c01f000, 0x59c40804, | ||
7246 | 0x83180400, 0x0010709a, 0x50000000, 0x80040500, | ||
7247 | 0x1c01f000, 0x00000210, 0x00000420, 0x00000840, | ||
7248 | 0x00001080, 0x00002100, 0x00004000, 0x00008000, | ||
7249 | 0x00010000, 0x00020000, 0x00040000, 0x00080000, | ||
7250 | 0x00100000, 0x00200000, 0x00400000, 0x00800000, | ||
7251 | 0x59900806, 0x80040120, 0x800c0480, 0x04021004, | ||
7252 | 0x82000540, 0x00000001, 0x0401f005, 0x82040c00, | ||
7253 | 0x00010000, 0x48072006, 0x80000580, 0x1c01f000, | ||
7254 | 0x480bc857, 0x0201f800, 0x00106c55, 0x4df00000, | ||
7255 | 0x480b1800, 0x5c03e000, 0x02000800, 0x00106c4b, | ||
7256 | 0x1c01f000, 0x4803c856, 0x0201f800, 0x00106c55, | ||
7257 | 0x4df00000, 0x497b180d, 0x497b1803, 0x497b180e, | ||
7258 | 0x497b180f, 0x497b1810, 0x598c0000, 0x82000580, | ||
7259 | 0x00000003, 0x04000009, 0x836c0580, 0x00000002, | ||
7260 | 0x04020004, 0x4a031800, 0x00000005, 0x0401f003, | ||
7261 | 0x4a031800, 0x00000000, 0x5c03e000, 0x02000800, | ||
7262 | 0x00106c4b, 0x1c01f000, 0x59300004, 0x8c00050c, | ||
7263 | 0x04020003, 0x4a026203, 0x00000001, 0x1c01f000, | ||
7264 | 0x83180480, 0x00000005, 0x02021800, 0x001005d8, | ||
7265 | 0x491bc857, 0x811b20c8, 0x83932400, 0x0000bf32, | ||
7266 | 0x811ba0ca, 0x83d3a400, 0x00007600, 0x83180400, | ||
7267 | 0x001070ea, 0x50034800, 0x811a28c2, 0x83162c00, | ||
7268 | 0x00006100, 0x1c01f000, 0x0010b75b, 0x0010b772, | ||
7269 | 0x0010b789, 0x0010b7a0, 0x0010b7b7, 0x4933c857, | ||
7270 | 0x59300406, 0x82000c80, 0x00000012, 0x04021016, | ||
7271 | 0x4803c857, 0x04011000, 0x0c01f001, 0x00107109, | ||
7272 | 0x00107198, 0x001074d1, 0x00107556, 0x00107198, | ||
7273 | 0x001074d1, 0x00107556, 0x00107109, 0x00107198, | ||
7274 | 0x00107109, 0x00107109, 0x00107109, 0x00107109, | ||
7275 | 0x00107109, 0x00107109, 0x00107109, 0x0010710f, | ||
7276 | 0x0010710f, 0x0201f800, 0x00106c55, 0x0201f800, | ||
7277 | 0x00106bbf, 0x0201f000, 0x00106c4b, 0x42001000, | ||
7278 | 0x0010b7f6, 0x50081000, 0x4930100c, 0x58080002, | ||
7279 | 0x82000580, 0x00000100, 0x04020032, 0x59325808, | ||
7280 | 0x812e59c0, 0x02000800, 0x001005d8, 0x59326809, | ||
7281 | 0x813669c0, 0x04000019, 0x592c040b, 0x82000500, | ||
7282 | 0x0000e000, 0x04000003, 0x0401fba8, 0x0401f002, | ||
7283 | 0x0401fb98, 0x42001000, 0x0010b7f6, 0x50081000, | ||
7284 | 0x4930100b, 0x492c100a, 0x82d00400, 0x00000006, | ||
7285 | 0x48001003, 0x592c000d, 0x80000104, 0x48001004, | ||
7286 | 0x592c000e, 0x48001007, 0x592c000f, 0x48001008, | ||
7287 | 0x0201f000, 0x00100858, 0x42026800, 0x0010be0d, | ||
7288 | 0x592c080a, 0x48066802, 0x82040500, 0x00ffff00, | ||
7289 | 0x04000007, 0x497a6a12, 0x59a81010, 0x82081500, | ||
7290 | 0x00ffff00, 0x80080580, 0x040207dc, 0x82040d00, | ||
7291 | 0x000000ff, 0x800408d0, 0x48066a12, 0x0401f7d7, | ||
7292 | 0x1c01f000, 0x4d2c0000, 0x4d300000, 0x4c580000, | ||
7293 | 0x4c540000, 0x4c500000, 0x5832580a, 0x812e59c0, | ||
7294 | 0x02000800, 0x001005d8, 0x58300002, 0x4a006002, | ||
7295 | 0x00000100, 0x82000580, 0x00000100, 0x0402001c, | ||
7296 | 0x5830000b, 0x5832600c, 0x81300580, 0x04020010, | ||
7297 | 0x0401f828, 0x04020010, 0x592c080d, 0x80040904, | ||
7298 | 0x4004b000, 0x4200a000, 0x0010b54b, 0x4050a800, | ||
7299 | 0x0201f800, 0x0010ab28, 0x42001000, 0x0000dc00, | ||
7300 | 0x0201f800, 0x001078bc, 0x0401f003, 0x0401f819, | ||
7301 | 0x04000fa3, 0x5c00a000, 0x5c00a800, 0x5c00b000, | ||
7302 | 0x5c026000, 0x5c025800, 0x1c01f000, 0x5830000b, | ||
7303 | 0x5832600c, 0x81300580, 0x040207f5, 0x0401f80d, | ||
7304 | 0x040207f5, 0x0201f800, 0x001068d3, 0x02020800, | ||
7305 | 0x001005d8, 0x4a025a06, 0x00000002, 0x0201f800, | ||
7306 | 0x000202da, 0x0201f800, 0x00107911, 0x0401f7ea, | ||
7307 | 0x0201f800, 0x00106c55, 0x4df00000, 0x598c000d, | ||
7308 | 0x81300580, 0x04020009, 0x598c0005, 0x81300580, | ||
7309 | 0x04020006, 0x5c03e000, 0x02000800, 0x00106c4b, | ||
7310 | 0x80000580, 0x1c01f000, 0x5c03e000, 0x02000800, | ||
7311 | 0x00106c4b, 0x82000540, 0x00000001, 0x1c01f000, | ||
7312 | 0x59300403, 0x82000c80, 0x00000056, 0x02021800, | ||
7313 | 0x001005d8, 0x4803c857, 0x0c01f001, 0x00107302, | ||
7314 | 0x0010731d, 0x0010732e, 0x00107431, 0x001073f1, | ||
7315 | 0x001073f5, 0x00107406, 0x0010741a, 0x0010740f, | ||
7316 | 0x0010741a, 0x00107455, 0x0010741a, 0x00107497, | ||
7317 | 0x0010741a, 0x001074a5, 0x0010741a, 0x0010740f, | ||
7318 | 0x0010741a, 0x001074a9, 0x001071f5, 0x001071f5, | ||
7319 | 0x001071f5, 0x001071f5, 0x001071f5, 0x001071f5, | ||
7320 | 0x001071f5, 0x001071f5, 0x001071f5, 0x001071f5, | ||
7321 | 0x001071f5, 0x00107574, 0x00107593, 0x0010759d, | ||
7322 | 0x001071f5, 0x001075b3, 0x00107406, 0x001071f5, | ||
7323 | 0x00107406, 0x0010741a, 0x001071f5, 0x0010732e, | ||
7324 | 0x00107431, 0x001071f5, 0x00107603, 0x0010741a, | ||
7325 | 0x001071f5, 0x00107613, 0x0010741a, 0x001071f5, | ||
7326 | 0x0010740f, 0x001072f3, 0x001071f7, 0x001071f5, | ||
7327 | 0x0010762a, 0x0010765d, 0x001076d7, 0x001071f5, | ||
7328 | 0x001076e7, 0x00107404, 0x001076da, 0x001071f5, | ||
7329 | 0x001075bf, 0x00107700, 0x001071f5, 0x00107735, | ||
7330 | 0x00107788, 0x001071f5, 0x0010720c, 0x00107265, | ||
7331 | 0x00107272, 0x001071f5, 0x00107406, 0x001071f5, | ||
7332 | 0x001072b9, 0x001072c4, 0x001071f5, 0x001071f5, | ||
7333 | 0x00107220, 0x00107245, 0x001077c7, 0x00107808, | ||
7334 | 0x0010782e, 0x001071f5, 0x001071f5, 0x001071f5, | ||
7335 | 0x001077fc, 0x0201f800, 0x001005d8, 0x0401fac5, | ||
7336 | 0x59325808, 0x592c0009, 0x4801a006, 0x592c000a, | ||
7337 | 0x4801a007, 0x592c000b, 0x4801a008, 0x592c000c, | ||
7338 | 0x4801a009, 0x592c000d, 0x4801a00a, 0x4979a00b, | ||
7339 | 0x592c0809, 0x82040d00, 0x00000fff, 0x80040904, | ||
7340 | 0x42001000, 0x0000dc00, 0x0201f000, 0x001078bc, | ||
7341 | 0x4a026202, 0x0000ffff, 0x0401faae, 0x4d2c0000, | ||
7342 | 0x4a01a006, 0x05000000, 0x59325808, 0x592c0009, | ||
7343 | 0x4801a007, 0x592c000a, 0x4801a008, 0x592c000b, | ||
7344 | 0x4801a009, 0x42000800, 0x00000004, 0x42001000, | ||
7345 | 0x0000dc00, 0x5c025800, 0x0201f000, 0x001078bc, | ||
7346 | 0x4c580000, 0x4c500000, 0x4c540000, 0x4d2c0000, | ||
7347 | 0x0401fa98, 0x59325808, 0x5930040b, 0x800000c2, | ||
7348 | 0x4200a800, 0x0010b54b, 0x592cb205, 0x832ca400, | ||
7349 | 0x00000006, 0x0201f800, 0x0010ab17, 0x40580000, | ||
7350 | 0x8054ac00, 0x592c0001, 0x80000540, 0x04000003, | ||
7351 | 0x40025800, 0x0401f7f5, 0x4200a000, 0x0010b54b, | ||
7352 | 0x4050a800, 0x5930b40b, 0x0201f800, 0x0010ab28, | ||
7353 | 0x59300c0b, 0x42001000, 0x0000dc00, 0x5c025800, | ||
7354 | 0x5c00a800, 0x5c00b000, 0x5c00a000, 0x0201f000, | ||
7355 | 0x001078bc, 0x4c580000, 0x4c500000, 0x4c540000, | ||
7356 | 0x4d2c0000, 0x42034800, 0x0010b544, 0x0401fa7f, | ||
7357 | 0x59325808, 0x4a025805, 0x02000000, 0x592c0802, | ||
7358 | 0x82d0ac00, 0x00000006, 0x592cb011, 0x832ca400, | ||
7359 | 0x00000005, 0x0201f800, 0x0010ab17, 0x40580000, | ||
7360 | 0x8054ac00, 0x592e5801, 0x41780000, 0x812e5d40, | ||
7361 | 0x040207f6, 0x42001000, 0x0000dc00, 0x5c025800, | ||
7362 | 0x5c00a800, 0x5c00b000, 0x5c00a000, 0x0201f000, | ||
7363 | 0x001078bc, 0x0401fa57, 0x4a01a006, 0x78000000, | ||
7364 | 0x5930001c, 0x840001c0, 0x4801a407, 0x4979a207, | ||
7365 | 0x42000800, 0x00000002, 0x42001000, 0x0000dc00, | ||
7366 | 0x0201f000, 0x001078bc, 0x4c580000, 0x4c540000, | ||
7367 | 0x4c500000, 0x0401fa55, 0x4a01a006, 0x02000000, | ||
7368 | 0x59a80002, 0x4801a008, 0x59a80003, 0x4801a009, | ||
7369 | 0x59a80000, 0x4801a00a, 0x59a80001, 0x4801a00b, | ||
7370 | 0x5930001c, 0x82000d80, 0x0000e000, 0x04000016, | ||
7371 | 0x82000d80, 0x0000df00, 0x04000006, 0x4a01a407, | ||
7372 | 0x00000010, 0x42000800, 0x00000006, 0x0401f027, | ||
7373 | 0x4a03c840, 0x0010b4eb, 0x4a03c842, 0x0000000d, | ||
7374 | 0x42001800, 0x0010b4eb, 0x0201f800, 0x001007af, | ||
7375 | 0x42000000, 0x0000df00, 0x4200a000, 0x0010b4eb, | ||
7376 | 0x0401f00d, 0x4a03c840, 0x0010b4f8, 0x4a03c842, | ||
7377 | 0x0000000d, 0x42001800, 0x0010b4f8, 0x0201f800, | ||
7378 | 0x001007af, 0x42000000, 0x0000e000, 0x4200a000, | ||
7379 | 0x0010b4f8, 0x82000540, 0x00000010, 0x4801a407, | ||
7380 | 0x4a01a207, 0x00000034, 0x4200b000, 0x0000000d, | ||
7381 | 0x82d0ac00, 0x0000000c, 0x0201f800, 0x0010ab17, | ||
7382 | 0x42000800, 0x00000013, 0x42001000, 0x0000dc00, | ||
7383 | 0x5c00a000, 0x5c00a800, 0x5c00b000, 0x0201f000, | ||
7384 | 0x001078bc, 0x0401fa03, 0x4a01a006, 0x63000028, | ||
7385 | 0x5930001c, 0x4801a007, 0x42000800, 0x00000002, | ||
7386 | 0x42001000, 0x0000dc00, 0x0201f000, 0x001078bc, | ||
7387 | 0x0401fa06, 0x41780000, 0x41780800, 0x42002000, | ||
7388 | 0x00080000, 0x0c01f81b, 0x80000000, 0x80040800, | ||
7389 | 0x42001000, 0x0000000c, 0x59841802, 0x8c0c1d00, | ||
7390 | 0x04020008, 0x42002000, 0x00050000, 0x0c01f811, | ||
7391 | 0x80000000, 0x80040800, 0x82081400, 0x00000004, | ||
7392 | 0x82080540, 0x02000000, 0x4801a006, 0x800408e0, | ||
7393 | 0x5930001c, 0x80040540, 0x4801a007, 0x80080904, | ||
7394 | 0x42001000, 0x0000dc00, 0x0201f000, 0x001078bc, | ||
7395 | 0x001072e9, 0x001072eb, 0x001072ed, 0x001072ef, | ||
7396 | 0x001072f1, 0x4811a008, 0x1c01f000, 0x4811a009, | ||
7397 | 0x1c01f000, 0x4811a00a, 0x1c01f000, 0x4811a00b, | ||
7398 | 0x1c01f000, 0x4811a00c, 0x1c01f000, 0x4a026009, | ||
7399 | 0x0010be0d, 0x59a80010, 0x82000500, 0x000000ff, | ||
7400 | 0x800000d0, 0x42026800, 0x0010be0d, 0x48026a12, | ||
7401 | 0x0401fa3b, 0x41780800, 0x42001000, 0x00005c00, | ||
7402 | 0x0201f000, 0x001078bc, 0x0401f9ba, 0x4a01a006, | ||
7403 | 0x52000000, 0x4979a007, 0x599c0017, 0x8c000500, | ||
7404 | 0x04000005, 0x599c0402, 0x0201f800, 0x001015da, | ||
7405 | 0x4805a007, 0x59a80002, 0x4801a008, 0x59a80003, | ||
7406 | 0x4801a009, 0x59a80000, 0x4801a00a, 0x59a80001, | ||
7407 | 0x4801a00b, 0x59a80010, 0x4801a00c, 0x42000800, | ||
7408 | 0x00000007, 0x42001000, 0x0000dc00, 0x0201f000, | ||
7409 | 0x001078bc, 0x4a026202, 0x0000ffff, 0x0401f99d, | ||
7410 | 0x4a01a006, 0x05000000, 0x59a80010, 0x4801a007, | ||
7411 | 0x59a80002, 0x59a80803, 0x4801a008, 0x4805a009, | ||
7412 | 0x42000800, 0x00000004, 0x42001000, 0x0000dc00, | ||
7413 | 0x0201f000, 0x001078bc, 0x4a026202, 0x0000ffff, | ||
7414 | 0x0401f98c, 0x4d3c0000, 0x417a7800, 0x0201f800, | ||
7415 | 0x001048f6, 0x5c027800, 0x4a01a006, 0x03000000, | ||
7416 | 0x59340403, 0x82000580, 0x000007fe, 0x0402006e, | ||
7417 | 0x4a01a006, 0x04000000, 0x81a40800, 0x4a000800, | ||
7418 | 0x22fffffe, 0x5934000a, 0x84000500, 0x4802680a, | ||
7419 | 0x59c41002, 0x8408150c, 0x480b8802, 0x59a80026, | ||
7420 | 0x8c000508, 0x04000010, 0x59a8002a, 0x4801a007, | ||
7421 | 0x59a8002b, 0x82000500, 0xffff2000, 0x599c0818, | ||
7422 | 0x8c040d16, 0x04000002, 0x8400056a, 0x4801a008, | ||
7423 | 0x4a01a009, 0x00002710, 0x59a8002d, 0x4801a00a, | ||
7424 | 0x0401f039, 0x59a8002a, 0x4801a007, 0x0201f800, | ||
7425 | 0x0010513b, 0x04020009, 0x497b8880, 0x82000500, | ||
7426 | 0x0000ffff, 0x4c000000, 0x0201f800, 0x00101606, | ||
7427 | 0x5c000000, 0x48038880, 0x59a8002b, 0x0201f800, | ||
7428 | 0x0010513b, 0x04020004, 0x82000500, 0x37ffffff, | ||
7429 | 0x0401f003, 0x82000500, 0x3fffffff, 0x599c0818, | ||
7430 | 0x8c040d16, 0x04000002, 0x8400056a, 0x59a80805, | ||
7431 | 0x8c040d10, 0x04000019, 0x59300c03, 0x82041580, | ||
7432 | 0x00000051, 0x04000015, 0x82041580, 0x00000031, | ||
7433 | 0x04000012, 0x4c580000, 0x4c500000, 0x4c540000, | ||
7434 | 0x4200b000, 0x00000004, 0x4200a000, 0x0010b8fa, | ||
7435 | 0x82d0ac00, 0x0000001f, 0x4c000000, 0x0201f800, | ||
7436 | 0x0010ab17, 0x5c000000, 0x5c00a800, 0x5c00a000, | ||
7437 | 0x5c00b000, 0x8400057a, 0x4801a008, 0x4979a009, | ||
7438 | 0x4979a00a, 0x59a80002, 0x59a80803, 0x4801a00b, | ||
7439 | 0x4805a00c, 0x59a80000, 0x59a80801, 0x4801a00d, | ||
7440 | 0x4805a00e, 0x4979a00f, 0x4979a010, 0x4979a011, | ||
7441 | 0x4979a012, 0x4979a013, 0x4979a014, 0x4979a015, | ||
7442 | 0x4979a016, 0x59a8002e, 0x84000576, 0x4801a017, | ||
7443 | 0x59a8002f, 0x4801a018, 0x4979a019, 0x4979a01a, | ||
7444 | 0x0401f043, 0x59a80026, 0x8c000508, 0x0400000d, | ||
7445 | 0x59a8002a, 0x82000500, 0x0000ffff, 0x59c40880, | ||
7446 | 0x80040d80, 0x04000007, 0x497b8880, 0x4c000000, | ||
7447 | 0x0201f800, 0x00101606, 0x5c000000, 0x48038880, | ||
7448 | 0x59a8002a, 0x4801a007, 0x4c640000, 0x4d2c0000, | ||
7449 | 0x59a8c82b, 0x0201f800, 0x00109037, 0x0400000d, | ||
7450 | 0x0201f800, 0x00109597, 0x0402000a, 0x592c0207, | ||
7451 | 0x8c00050e, 0x04000007, 0x8264cd00, 0x0000ffff, | ||
7452 | 0x592c0009, 0x82000500, 0xffff0000, 0x8064cd40, | ||
7453 | 0x4865a008, 0x5c025800, 0x5c00c800, 0x59a8002c, | ||
7454 | 0x4801a009, 0x59a8002d, 0x4801a00a, 0x59a80002, | ||
7455 | 0x59a80803, 0x4801a00b, 0x4805a00c, 0x59a80000, | ||
7456 | 0x59a80801, 0x4801a00d, 0x4805a00e, 0x4979a00f, | ||
7457 | 0x4979a010, 0x4979a011, 0x4979a012, 0x4979a013, | ||
7458 | 0x4979a014, 0x4979a015, 0x4979a016, 0x59a8002e, | ||
7459 | 0x4801a017, 0x59a8002f, 0x4801a018, 0x59a80030, | ||
7460 | 0x4801a019, 0x59a80031, 0x4801a01a, 0x42000800, | ||
7461 | 0x0000001d, 0x42001000, 0x0000dc00, 0x0201f000, | ||
7462 | 0x001078bc, 0x0401f8cb, 0x4a01a006, 0x50000000, | ||
7463 | 0x0401f7b5, 0x0401f8c7, 0x4a01a406, 0x21000010, | ||
7464 | 0x4a01a206, 0x00000014, 0x4979a007, 0x4979a008, | ||
7465 | 0x4979a009, 0x4979a00a, 0x42000800, 0x00000005, | ||
7466 | 0x42001000, 0x0000dc00, 0x0201f000, 0x001078bc, | ||
7467 | 0x0401f8bf, 0x0401f002, 0x0401f8c4, 0x4a01a006, | ||
7468 | 0x02000000, 0x42000800, 0x00000001, 0x42001000, | ||
7469 | 0x0000dc00, 0x0201f000, 0x001078bc, 0x0401f8bb, | ||
7470 | 0x4a01a006, 0x02000000, 0x59300403, 0x82000580, | ||
7471 | 0x00000031, 0x04020794, 0x81a40800, 0x4a000801, | ||
7472 | 0x00fffffe, 0x0401f72b, 0x0401f8b0, 0x4a01a006, | ||
7473 | 0x01000000, 0x5930041a, 0x80000540, 0x04000003, | ||
7474 | 0x4801a407, 0x0401f003, 0x4a01a407, 0x00000003, | ||
7475 | 0x5930021a, 0x80000540, 0x04000003, 0x4801a207, | ||
7476 | 0x0401f003, 0x4a01a207, 0x00002a00, 0x42000800, | ||
7477 | 0x00000002, 0x42001000, 0x0000dc00, 0x0201f000, | ||
7478 | 0x001078bc, 0x4a026202, 0x0000ffff, 0x0401f889, | ||
7479 | 0x4a01a406, 0x00002010, 0x4a01a206, 0x00000014, | ||
7480 | 0x4a01a407, 0x00000800, 0x4a01a207, 0x00002000, | ||
7481 | 0x80000580, 0x599c0817, 0x8c040d0a, 0x04020003, | ||
7482 | 0x82000540, 0x00000020, 0x8c040d08, 0x04000003, | ||
7483 | 0x82000540, 0x00000010, 0x82000540, 0x00000002, | ||
7484 | 0x5934080a, 0x8c040d14, 0x04000005, 0x82040d00, | ||
7485 | 0x00000380, 0x80040540, 0x0401f006, 0x599c0818, | ||
7486 | 0x8c040d18, 0x04000003, 0x82000540, 0x00000380, | ||
7487 | 0x0401f03c, 0x0401f875, 0x4a01a406, 0x00000210, | ||
7488 | 0x4a01a206, 0x00000014, 0x4a01a407, 0x00000800, | ||
7489 | 0x5934000a, 0x8c000516, 0x04000014, 0x59340c05, | ||
7490 | 0x82040500, 0x00000030, 0x04000013, 0x59340a05, | ||
7491 | 0x82040500, 0x0000c000, 0x04020009, 0x8c040d1a, | ||
7492 | 0x04000004, 0x4a01a207, 0x00002100, 0x0401f00c, | ||
7493 | 0x4a01a207, 0x00000100, 0x0401f009, 0x4a01a207, | ||
7494 | 0x00000400, 0x0401f006, 0x4a01a207, 0x00000700, | ||
7495 | 0x0401f003, 0x4a01a207, 0x00000800, 0x80000580, | ||
7496 | 0x599c0817, 0x8c040d0a, 0x04020003, 0x82000540, | ||
7497 | 0x00000020, 0x8c040d08, 0x04000003, 0x82000540, | ||
7498 | 0x00000010, 0x82000540, 0x00000002, 0x59340a00, | ||
7499 | 0x8c040d0e, 0x0400000b, 0x84000550, 0x599c1017, | ||
7500 | 0x8c08150a, 0x04020004, 0x8c040d0a, 0x04000002, | ||
7501 | 0x8400054e, 0x8c040d1c, 0x04000002, 0x84000552, | ||
7502 | 0x4801a20a, 0x42000800, 0x00000005, 0x42001000, | ||
7503 | 0x0000dc00, 0x0201f000, 0x001078bc, 0x0401f833, | ||
7504 | 0x4a01a006, 0x02100014, 0x4a01a007, 0x01000000, | ||
7505 | 0x4979a008, 0x4979a009, 0x4979a00a, 0x42000800, | ||
7506 | 0x00000005, 0x42001000, 0x0000dc00, 0x0201f000, | ||
7507 | 0x001078bc, 0x0401f825, 0x4a01a006, 0x02000000, | ||
7508 | 0x0401f65d, 0x4933c857, 0x0401f820, 0x4a01a006, | ||
7509 | 0x01000000, 0x4a01a407, 0x0000000b, 0x42000800, | ||
7510 | 0x00000002, 0x42001000, 0x0000dc00, 0x0201f000, | ||
7511 | 0x001078bc, 0x42005000, 0x32000000, 0x42006000, | ||
7512 | 0x08290000, 0x41786800, 0x41787800, 0x0401f3df, | ||
7513 | 0x42005000, 0x22000000, 0x42006000, 0x01290000, | ||
7514 | 0x41786800, 0x41787800, 0x0401f3d8, 0x42005000, | ||
7515 | 0x33000000, 0x42006000, 0x08980000, 0x41786800, | ||
7516 | 0x41787800, 0x0401f3d1, 0x42005000, 0x23000000, | ||
7517 | 0x42006000, 0x01980000, 0x41786800, 0x41787800, | ||
7518 | 0x0401f3ca, 0x59300403, 0x82000c80, 0x00000085, | ||
7519 | 0x02001800, 0x001005d8, 0x82000c80, 0x00000093, | ||
7520 | 0x02021800, 0x001005d8, 0x82000480, 0x00000085, | ||
7521 | 0x0c01f001, 0x001074eb, 0x001074ed, 0x001074fb, | ||
7522 | 0x001074eb, 0x001074eb, 0x001074eb, 0x001074eb, | ||
7523 | 0x001074eb, 0x001074eb, 0x001074eb, 0x001074eb, | ||
7524 | 0x001074eb, 0x001074eb, 0x00107506, 0x0201f800, | ||
7525 | 0x001005d8, 0x4933c857, 0x0401f850, 0x59300402, | ||
7526 | 0x4801a407, 0x5930001c, 0x4801a207, 0x4979a408, | ||
7527 | 0x4a01a208, 0x0000ffff, 0x42000800, 0x00000003, | ||
7528 | 0x42001000, 0x0000dc00, 0x0401f3c2, 0x4933c857, | ||
7529 | 0x0401f84e, 0x4a01a406, 0x00000003, 0x4a01a206, | ||
7530 | 0x00000300, 0x42000800, 0x00000001, 0x42001000, | ||
7531 | 0x0000dc00, 0x0401f3b7, 0x4d2c0000, 0x59325808, | ||
7532 | 0x4933c857, 0x492fc857, 0x812e59c0, 0x02000800, | ||
7533 | 0x001005d8, 0x59340a12, 0x82040d00, 0x0000ff00, | ||
7534 | 0x592c000a, 0x82000500, 0x000000ff, 0x900001c0, | ||
7535 | 0x80040540, 0x82000540, 0x00000011, 0x44034800, | ||
7536 | 0x81a5a000, 0x42001000, 0x00000009, 0x42000800, | ||
7537 | 0x00000003, 0x592c0009, 0x82000500, 0xff000000, | ||
7538 | 0x82001d80, 0x84000000, 0x04000009, 0x82001d80, | ||
7539 | 0x85000000, 0x02020800, 0x001005d8, 0x42001000, | ||
7540 | 0x00000007, 0x42000800, 0x00000001, 0x832c1c00, | ||
7541 | 0x00000009, 0x500c0000, 0x4401a000, 0x800c1800, | ||
7542 | 0x80d1a000, 0x80081040, 0x040207fb, 0x42001000, | ||
7543 | 0x0000dc00, 0x5c025800, 0x0401f386, 0x42005000, | ||
7544 | 0x81000000, 0x42006000, 0x00090000, 0x41786800, | ||
7545 | 0x41787800, 0x0401f35d, 0x42005000, 0x84000000, | ||
7546 | 0x42006000, 0x00990000, 0x59300406, 0x82000580, | ||
7547 | 0x00000005, 0x04000002, 0x8430652e, 0x41786800, | ||
7548 | 0x41787800, 0x0401f351, 0x42005000, 0x85000000, | ||
7549 | 0x42006000, 0x00990000, 0x59300406, 0x82000580, | ||
7550 | 0x00000005, 0x04000002, 0x8430652e, 0x41786800, | ||
7551 | 0x41787800, 0x0401f345, 0x59300403, 0x82000c80, | ||
7552 | 0x00000053, 0x02021800, 0x001005d8, 0x82000480, | ||
7553 | 0x0000004b, 0x02001800, 0x001005d8, 0x59326809, | ||
7554 | 0x59368c03, 0x4803c857, 0x0c01f001, 0x001075da, | ||
7555 | 0x001075e2, 0x001075ea, 0x001075f2, 0x0010756b, | ||
7556 | 0x0010756b, 0x0010756b, 0x001075d2, 0x0201f800, | ||
7557 | 0x001005d8, 0x42005000, 0x06000000, 0x42006000, | ||
7558 | 0x08290000, 0x41786800, 0x41787800, 0x0401f327, | ||
7559 | 0x4933c857, 0x0401ff47, 0x4a01a006, 0x12000000, | ||
7560 | 0x59300406, 0x82000580, 0x00000004, 0x04020003, | ||
7561 | 0x59340002, 0x0401f002, 0x59a80010, 0x82000500, | ||
7562 | 0x00ffffff, 0x4801a007, 0x59300419, 0x4801a408, | ||
7563 | 0x59300219, 0x4801a208, 0x4979a009, 0x4979a00a, | ||
7564 | 0x4979a00b, 0x4979a00c, 0x4979a00d, 0x4979a00e, | ||
7565 | 0x4979a00f, 0x4979a010, 0x42000800, 0x0000000b, | ||
7566 | 0x42001000, 0x0000dc00, 0x0401f32a, 0x0401ff29, | ||
7567 | 0x4a01a006, 0x0f000000, 0x5930001c, 0x4801a007, | ||
7568 | 0x42000800, 0x00000002, 0x42001000, 0x0000dc00, | ||
7569 | 0x0401f320, 0x0401ff2d, 0x4a01a006, 0x02000000, | ||
7570 | 0x59c40085, 0x48031004, 0x59880000, 0x4801a007, | ||
7571 | 0x59880001, 0x4801a008, 0x59880002, 0x4801a009, | ||
7572 | 0x59880003, 0x4801a00a, 0x59880004, 0x4801a00b, | ||
7573 | 0x59880005, 0x4801a00c, 0x42000800, 0x00000007, | ||
7574 | 0x42001000, 0x0000dc00, 0x0401f30a, 0x4a026202, | ||
7575 | 0x0000ffff, 0x0401ff07, 0x4a01a006, 0x62000000, | ||
7576 | 0x5930001c, 0x4801a007, 0x42000800, 0x00000002, | ||
7577 | 0x42001000, 0x0000dc00, 0x0401f2fe, 0x0401fefd, | ||
7578 | 0x59300808, 0x4c500000, 0x4c540000, 0x4c580000, | ||
7579 | 0x8204a400, 0x0000000a, 0x5930b01c, 0x82d0ac00, | ||
7580 | 0x00000006, 0x0201f800, 0x0010ab17, 0x5930081c, | ||
7581 | 0x42001000, 0x0000dc00, 0x5c00b000, 0x5c00a800, | ||
7582 | 0x5c00a000, 0x0401f2eb, 0x0401ff9b, 0x59300017, | ||
7583 | 0x4801a006, 0x59300018, 0x4801a007, 0x4a01a008, | ||
7584 | 0x00001000, 0x0401f020, 0x0401ff93, 0x59300017, | ||
7585 | 0x4801a006, 0x59300018, 0x4801a007, 0x4a01a008, | ||
7586 | 0x00004000, 0x0401f018, 0x0401ff8b, 0x59300017, | ||
7587 | 0x4801a006, 0x59300018, 0x4801a007, 0x4a01a008, | ||
7588 | 0x00002000, 0x0401f010, 0x0401ff83, 0x59300017, | ||
7589 | 0x4801a006, 0x59300018, 0x4801a007, 0x4a01a008, | ||
7590 | 0x00000400, 0x0401f008, 0x0401ff7b, 0x59300017, | ||
7591 | 0x4801a006, 0x59300018, 0x4801a007, 0x4a01a008, | ||
7592 | 0x00000200, 0x4979a009, 0x4979a00a, 0x4979a00b, | ||
7593 | 0x4979a00c, 0x4979a00d, 0x42000800, 0x00000008, | ||
7594 | 0x42001000, 0x0000dc00, 0x0401f2ba, 0x0401fec7, | ||
7595 | 0x4a01a006, 0x02000014, 0x4979a407, 0x4979a207, | ||
7596 | 0x59a8003a, 0x4801a008, 0x59a8003b, 0x4801a009, | ||
7597 | 0x4a01a00a, 0x00047878, 0x42000800, 0x00000005, | ||
7598 | 0x42001000, 0x0000dc00, 0x0401f2aa, 0x0401feb7, | ||
7599 | 0x4a01a006, 0x02140018, 0x4a01a407, 0x00000800, | ||
7600 | 0x5930001c, 0x82000d00, 0xff000000, 0x900409c0, | ||
7601 | 0x4805a207, 0x82000500, 0x00ffffff, 0x4801a00a, | ||
7602 | 0x4979a408, 0x4979a208, 0x4979a409, 0x4979a209, | ||
7603 | 0x4979a00b, 0x42000800, 0x00000006, 0x42001000, | ||
7604 | 0x0000dc00, 0x0401f293, 0x4803c856, 0x4d380000, | ||
7605 | 0x4d1c0000, 0x42027000, 0x00000035, 0x0201f800, | ||
7606 | 0x001093ba, 0x0402001e, 0x0401fe8a, 0x4a01a006, | ||
7607 | 0x13000000, 0x5932381e, 0x591c0019, 0x4801a005, | ||
7608 | 0x591c0406, 0x82000580, 0x00000003, 0x04000007, | ||
7609 | 0x59300809, 0x58040002, 0x82000500, 0x00ffffff, | ||
7610 | 0x4801a007, 0x0401f003, 0x59a80010, 0x4801a007, | ||
7611 | 0x59300419, 0x4801a408, 0x59300219, 0x4801a208, | ||
7612 | 0x42000800, 0x00000003, 0x42001000, 0x0000dc00, | ||
7613 | 0x5c023800, 0x5c027000, 0x0401f26e, 0x0201f800, | ||
7614 | 0x00106c55, 0x598c000d, 0x81300580, 0x02020800, | ||
7615 | 0x001005d8, 0x0201f800, 0x00106bbf, 0x0201f800, | ||
7616 | 0x0002077d, 0x5c023800, 0x5c027000, 0x0201f000, | ||
7617 | 0x00106c4b, 0x4803c856, 0x4d2c0000, 0x4d1c0000, | ||
7618 | 0x5932381e, 0x811e39c0, 0x02000800, 0x001005d8, | ||
7619 | 0x591c0c06, 0x82040580, 0x00000006, 0x0400000d, | ||
7620 | 0x82040580, 0x00000003, 0x04000036, 0x4a026403, | ||
7621 | 0x00000037, 0x4a02641a, 0x00000003, 0x4a02621a, | ||
7622 | 0x00001700, 0x5c023800, 0x5c025800, 0x0401f064, | ||
7623 | 0x0401f84b, 0x42001000, 0x40000000, 0x591c0203, | ||
7624 | 0x591c0804, 0x8c040d3e, 0x04020023, 0x82000c80, | ||
7625 | 0x0000000e, 0x0c001003, 0x0201f800, 0x001005d8, | ||
7626 | 0x00107691, 0x0010769d, 0x00107693, 0x0010769d, | ||
7627 | 0x00107699, 0x00107691, 0x00107691, 0x0010769d, | ||
7628 | 0x0010769d, 0x00107691, 0x00107691, 0x00107691, | ||
7629 | 0x00107691, 0x00107691, 0x0010769d, 0x00107691, | ||
7630 | 0x0010769d, 0x0201f800, 0x001005d8, 0x591c0414, | ||
7631 | 0x4803c857, 0x8c000518, 0x04000003, 0x8c000512, | ||
7632 | 0x04000003, 0x80001580, 0x0401f003, 0x42001000, | ||
7633 | 0x20000000, 0x591c0015, 0x4801a00a, 0x0401f018, | ||
7634 | 0x0401f81f, 0x591e5808, 0x812e59c0, 0x02000800, | ||
7635 | 0x001005d8, 0x592c100f, 0x591c0011, 0x80080480, | ||
7636 | 0x4801a00a, 0x591c0203, 0x591c0804, 0x8c040d3e, | ||
7637 | 0x04020007, 0x82000d80, 0x00000002, 0x04000007, | ||
7638 | 0x82000d80, 0x00000004, 0x04000004, 0x42001000, | ||
7639 | 0x40000000, 0x0401f002, 0x80001580, 0x4809a00b, | ||
7640 | 0x42000800, 0x00000006, 0x42001000, 0x0000dc00, | ||
7641 | 0x5c023800, 0x5c025800, 0x0401f1fe, 0x4803c856, | ||
7642 | 0x0401fe0a, 0x4a01a006, 0x02000000, 0x59300c19, | ||
7643 | 0x4805a407, 0x59300a19, 0x4805a207, 0x59a81010, | ||
7644 | 0x59300809, 0x58041802, 0x820c1d00, 0x00ffffff, | ||
7645 | 0x5930081e, 0x58040406, 0x82000580, 0x00000003, | ||
7646 | 0x04020004, 0x4809a008, 0x480da009, 0x0401f003, | ||
7647 | 0x480da008, 0x4809a009, 0x1c01f000, 0x4803c856, | ||
7648 | 0x0401fdf2, 0x0401f003, 0x4803c856, 0x0401fde8, | ||
7649 | 0x4a01a006, 0x01000000, 0x5930041a, 0x4801a407, | ||
7650 | 0x5930021a, 0x4801a207, 0x42000800, 0x00000002, | ||
7651 | 0x42001000, 0x0000dc00, 0x0401f1d6, 0x4803c856, | ||
7652 | 0x4d1c0000, 0x0401fdcc, 0x4a01a006, 0x14000000, | ||
7653 | 0x5932381e, 0x591c0019, 0x4801a005, 0x59300419, | ||
7654 | 0x4801a407, 0x59300219, 0x4801a207, 0x59300015, | ||
7655 | 0x4801a008, 0x59300216, 0x82000500, 0x000000ff, | ||
7656 | 0x840001c0, 0x4801a409, 0x42000800, 0x00000004, | ||
7657 | 0x42001000, 0x0000dc00, 0x5c023800, 0x0401f1bd, | ||
7658 | 0x4803c856, 0x0401f80b, 0x5930041a, 0x900001c0, | ||
7659 | 0x4801a005, 0x0401f9ec, 0x41780800, 0x42001000, | ||
7660 | 0x00005c00, 0x0401f9b3, 0x0201f000, 0x0010604d, | ||
7661 | 0x4803c856, 0x59300817, 0x82041c00, 0x00000005, | ||
7662 | 0x46034800, 0x00000021, 0x58040404, 0x82000500, | ||
7663 | 0x0000f000, 0x82000580, 0x00003000, 0x04000003, | ||
7664 | 0x46034800, 0x00000041, 0x81a5a000, 0x580c0001, | ||
7665 | 0x82000d00, 0x00ffffff, 0x82040d40, 0xc2000000, | ||
7666 | 0x4805a000, 0x580c0800, 0x82041500, 0x00ffffff, | ||
7667 | 0x82000500, 0xff000000, 0x80080540, 0x4801a001, | ||
7668 | 0x580c0002, 0x82000580, 0x00c00000, 0x82000500, | ||
7669 | 0x00fd0300, 0x4801a002, 0x580c0003, 0x4801a003, | ||
7670 | 0x580c0404, 0x4801a404, 0x580c0204, 0x4801a204, | ||
7671 | 0x1c01f000, 0x4803c856, 0x59a80026, 0x82000500, | ||
7672 | 0x00000028, 0x04020009, 0x59a80026, 0x82000500, | ||
7673 | 0x00000028, 0x04000003, 0x497a6a12, 0x0401f003, | ||
7674 | 0x4a026a12, 0x0000ff00, 0x42005000, 0x22000000, | ||
7675 | 0x42006000, 0x01380000, 0x41786800, 0x41787800, | ||
7676 | 0x0401f952, 0x59301008, 0x4a01a006, 0x54000000, | ||
7677 | 0x59a80010, 0x82000500, 0x00ffffff, 0x58080c0a, | ||
7678 | 0x800408f0, 0x80040540, 0x4801a007, 0x5808000a, | ||
7679 | 0x82000500, 0xff000000, 0x4801a008, 0x59a80002, | ||
7680 | 0x4801a009, 0x59a80003, 0x4801a00a, 0x59a80000, | ||
7681 | 0x4801a00b, 0x59a80001, 0x4801a00c, 0x5808000c, | ||
7682 | 0x9c0001c0, 0x4801a00d, 0x5808000d, 0x9c0001c0, | ||
7683 | 0x4801a00e, 0x5808000e, 0x9c0001c0, 0x4801a00f, | ||
7684 | 0x5808000f, 0x9c0001c0, 0x4801a010, 0x58080010, | ||
7685 | 0x9c0001c0, 0x4801a011, 0x58080011, 0x9c0001c0, | ||
7686 | 0x4801a012, 0x58080012, 0x9c0001c0, 0x4801a013, | ||
7687 | 0x58080013, 0x9c0001c0, 0x4801a014, 0x58080010, | ||
7688 | 0x9c0001c0, 0x4801a015, 0x58080011, 0x9c0001c0, | ||
7689 | 0x4801a016, 0x58080012, 0x9c0001c0, 0x4801a017, | ||
7690 | 0x58080013, 0x9c0001c0, 0x4801a018, 0x42000800, | ||
7691 | 0x00000013, 0x42001000, 0x0000dc00, 0x0401f135, | ||
7692 | 0x4803c856, 0x42005000, 0x22000000, 0x42006000, | ||
7693 | 0x01290000, 0x41786800, 0x41787800, 0x0401f90b, | ||
7694 | 0x59301008, 0x4a01a006, 0x55000000, 0x5808000b, | ||
7695 | 0x82000500, 0x00ffffff, 0x58080c0a, 0x800408f0, | ||
7696 | 0x80040540, 0x4801a007, 0x5808080a, 0x82040d00, | ||
7697 | 0xff000000, 0x59a80010, 0x82000500, 0x00ffffff, | ||
7698 | 0x80040540, 0x4801a008, 0x5808000c, 0x9c0001c0, | ||
7699 | 0x4801a009, 0x5808000d, 0x9c0001c0, 0x4801a00a, | ||
7700 | 0x5808000e, 0x9c0001c0, 0x4801a00b, 0x5808000f, | ||
7701 | 0x9c0001c0, 0x4801a00c, 0x59a80002, 0x4801a00d, | ||
7702 | 0x59a80003, 0x4801a00e, 0x59a80000, 0x4801a00f, | ||
7703 | 0x59a80001, 0x4801a010, 0x58080010, 0x4801a011, | ||
7704 | 0x58080011, 0x4801a012, 0x58080012, 0x4801a013, | ||
7705 | 0x58080013, 0x4801a014, 0x4979a015, 0x4979a016, | ||
7706 | 0x4979a017, 0x4979a018, 0x42000800, 0x00000013, | ||
7707 | 0x42001000, 0x0000dc00, 0x0401f0f6, 0x0401fd03, | ||
7708 | 0x5930001c, 0x800001c0, 0x04000008, 0x4a01a006, | ||
7709 | 0x01000000, 0x4a01a407, 0x00000003, 0x42000800, | ||
7710 | 0x00000002, 0x0401f028, 0x4a01a006, 0x02000000, | ||
7711 | 0x41780800, 0x836c0580, 0x00000004, 0x04020003, | ||
7712 | 0x84040d42, 0x0401f00d, 0x0201f800, 0x0010513b, | ||
7713 | 0x04020003, 0x84040d4a, 0x0401f002, 0x84040d48, | ||
7714 | 0x59a80026, 0x8c000506, 0x04020003, 0x8c00050a, | ||
7715 | 0x04000002, 0x84040d46, 0x4805a207, 0x59c40085, | ||
7716 | 0x48031004, 0x4c580000, 0x4c500000, 0x4c540000, | ||
7717 | 0x4200b000, 0x00000006, 0x8388a400, 0x00000000, | ||
7718 | 0x82d0ac00, 0x00000008, 0x0201f800, 0x0010ab17, | ||
7719 | 0x5c00a800, 0x5c00a000, 0x5c00b000, 0x42000800, | ||
7720 | 0x00000008, 0x42001000, 0x0000dc00, 0x0401f0c1, | ||
7721 | 0x0401fcc0, 0x4a01a006, 0x56000000, 0x59340006, | ||
7722 | 0x4801a007, 0x59340007, 0x4801a008, 0x42000800, | ||
7723 | 0x00000003, 0x42001000, 0x0000dc00, 0x0401f0b5, | ||
7724 | 0x4803c856, 0x0401fcc1, 0x5930081c, 0x800409c0, | ||
7725 | 0x0400000e, 0x82040580, 0x0000ffff, 0x04000004, | ||
7726 | 0x82040480, 0x00000007, 0x04021008, 0x4a01a006, | ||
7727 | 0x01000000, 0x4a01a407, 0x00000003, 0x42000800, | ||
7728 | 0x00000002, 0x0401f012, 0x4a01a006, 0x0200001c, | ||
7729 | 0x4a01a007, 0x00000001, 0x42001000, 0x0010b4f0, | ||
7730 | 0x50080000, 0x9c0001c0, 0x4801a009, 0x59a80010, | ||
7731 | 0x4801a00a, 0x59a80002, 0x59a80803, 0x4801a00b, | ||
7732 | 0x4805a00c, 0x42000800, 0x00000007, 0x42001000, | ||
7733 | 0x0000dc00, 0x0401f08f, 0x4d2c0000, 0x0401fc8d, | ||
7734 | 0x59325808, 0x592c0008, 0x82000500, 0x00ffffff, | ||
7735 | 0x4801a001, 0x4a01a006, 0x51000000, 0x5c025800, | ||
7736 | 0x0201f000, 0x00107344, 0x4803c856, 0x59a80810, | ||
7737 | 0x82040d00, 0x000000ff, 0x59325808, 0x59326809, | ||
7738 | 0x59a83026, 0x8c18350a, 0x04020008, 0x8c00050e, | ||
7739 | 0x04020006, 0x80001d80, 0x59a82010, 0x82102500, | ||
7740 | 0x000000ff, 0x0401f001, 0x59300406, 0x4803c857, | ||
7741 | 0x82000d80, 0x00000009, 0x04000006, 0x82000d80, | ||
7742 | 0x0000000a, 0x0400002e, 0x0201f800, 0x001005d8, | ||
7743 | 0x59300015, 0x8c00051e, 0x04020020, 0x42005000, | ||
7744 | 0x04000000, 0x42006000, 0x05000000, 0x592c040a, | ||
7745 | 0x82000500, 0x00000030, 0x800000e0, 0x80306540, | ||
7746 | 0x5934000a, 0x8c000508, 0x04000002, 0x84306546, | ||
7747 | 0x41786800, 0x41787800, 0x0401f831, 0x59300c14, | ||
7748 | 0x80040000, 0x48026414, 0x40040000, 0x800000d0, | ||
7749 | 0x82000540, 0x00000020, 0x4801a403, 0x83180d40, | ||
7750 | 0x00000038, 0x42001000, 0x0000c920, 0x0401f860, | ||
7751 | 0x0201f000, 0x00106052, 0x59a80026, 0x82000500, | ||
7752 | 0x00000028, 0x04000003, 0x497a6a12, 0x0401f7dc, | ||
7753 | 0x4a026a12, 0x0000ff00, 0x0401f7d9, 0x42005000, | ||
7754 | 0x02000000, 0x42006000, 0x20290000, 0x41786800, | ||
7755 | 0x41787800, 0x0401f812, 0x83180d40, 0x00000038, | ||
7756 | 0x42001000, 0x0000c9a0, 0x0401f849, 0x42000800, | ||
7757 | 0x000007d0, 0x59300011, 0x82000500, 0xfff00000, | ||
7758 | 0x80000540, 0x04000003, 0x42000800, 0x00001b58, | ||
7759 | 0x41781000, 0x0201f000, 0x00106054, 0x4201a000, | ||
7760 | 0x00000000, 0x0401f003, 0x4201a000, 0x00000011, | ||
7761 | 0x59340a12, 0x82040d00, 0x0000ff00, 0x59a80010, | ||
7762 | 0x82000500, 0x000000ff, 0x900001c0, 0x80040540, | ||
7763 | 0x80d00540, 0x44034800, 0x81a5a000, 0x59340002, | ||
7764 | 0x82000500, 0x00ffffff, 0x80280540, 0x4801a000, | ||
7765 | 0x59a80010, 0x4801a001, 0x4831a002, 0x82340540, | ||
7766 | 0x00000000, 0x4801a003, 0x59300402, 0x4801a404, | ||
7767 | 0x59300a02, 0x4805a204, 0x8c30652e, 0x04000003, | ||
7768 | 0x4805a404, 0x4801a204, 0x483da005, 0x1c01f000, | ||
7769 | 0x4803c856, 0x4c040000, 0x0401f822, 0x5c000800, | ||
7770 | 0x40040000, 0x80081540, 0x800000c4, 0x82000540, | ||
7771 | 0x00002000, 0x4803910a, 0x59b400f6, 0x82000500, | ||
7772 | 0x00000018, 0x040207fd, 0x4a0368f0, 0x0010b544, | ||
7773 | 0x4a0368f1, 0x0010b54b, 0x480b68f3, 0x4a0378e4, | ||
7774 | 0x00008000, 0x0201f000, 0x0010604d, 0x4807c857, | ||
7775 | 0x480a2800, 0x4c040000, 0x0401f80a, 0x5c000800, | ||
7776 | 0x59b400f6, 0x8c00050a, 0x040207fe, 0x49a768f2, | ||
7777 | 0x480768f4, 0x4a0378e4, 0x00008000, 0x1c01f000, | ||
7778 | 0x4a0378e4, 0x0000c000, 0x59bc00e4, 0x8c000520, | ||
7779 | 0x0400000c, 0x4a0378e4, 0x00008000, 0x42007000, | ||
7780 | 0x000003e8, 0x59bc00e4, 0x8c000520, 0x040007f5, | ||
7781 | 0x80387040, 0x02000800, 0x001005d8, 0x0401f7fa, | ||
7782 | 0x1c01f000, 0x82000500, 0xffff0000, 0x82000580, | ||
7783 | 0x01050000, 0x0402000d, 0x599c0818, 0x8c040d10, | ||
7784 | 0x0400000a, 0x59a80807, 0x8c040d0a, 0x04000007, | ||
7785 | 0x42001000, 0x0000804f, 0x41781800, 0x41782000, | ||
7786 | 0x0201f800, 0x00103a3e, 0x1c01f000, 0x41781000, | ||
7787 | 0x42026000, 0x0010d1c0, 0x59a8180e, 0x480a6402, | ||
7788 | 0x4a026202, 0x0000ffff, 0x80081000, 0x800c1840, | ||
7789 | 0x04000004, 0x83326400, 0x00000024, 0x0401f7f8, | ||
7790 | 0x1c01f000, 0x4933c857, 0x59300203, 0x82000580, | ||
7791 | 0x00000000, 0x0400002c, 0x59300406, 0x4803c857, | ||
7792 | 0x82000d80, 0x00000004, 0x04000011, 0x82000d80, | ||
7793 | 0x00000001, 0x0400000e, 0x82000d80, 0x00000003, | ||
7794 | 0x04000006, 0x82000d80, 0x00000006, 0x04020011, | ||
7795 | 0x0201f800, 0x0010a5df, 0x5930001c, 0x800001c0, | ||
7796 | 0x02020800, 0x0010984e, 0x0401f00a, 0x5930081e, | ||
7797 | 0x4807c857, 0x800409c0, 0x04000006, 0x5804001c, | ||
7798 | 0x4803c857, 0x81300580, 0x04020002, 0x4978081c, | ||
7799 | 0x497a6008, 0x4a026004, 0x00004000, 0x59a80037, | ||
7800 | 0x82000c80, 0x00000051, 0x04001002, 0x80000102, | ||
7801 | 0x48026206, 0x497a6205, 0x497a6009, 0x4a026406, | ||
7802 | 0x00000007, 0x1c01f000, 0x8166c9c0, 0x0400001c, | ||
7803 | 0x41626000, 0x41580000, 0x59300a03, 0x82040d80, | ||
7804 | 0x00000000, 0x04000008, 0x83326400, 0x00000024, | ||
7805 | 0x81300c80, 0x040017f9, 0x42026000, 0x0010d1c0, | ||
7806 | 0x0401f7f6, 0x4933c857, 0x8166c840, 0x83300c00, | ||
7807 | 0x00000024, 0x80040480, 0x04021006, 0x4006c000, | ||
7808 | 0x4a026203, 0x00000008, 0x813261c0, 0x1c01f000, | ||
7809 | 0x4202c000, 0x0010d1c0, 0x0401f7fa, 0x42000000, | ||
7810 | 0x0010b854, 0x0201f800, 0x0010aa47, 0x4933c856, | ||
7811 | 0x417a6000, 0x0401f7f5, 0x4933c857, 0x83380580, | ||
7812 | 0x00000013, 0x0402000b, 0x59300004, 0x8c00053e, | ||
7813 | 0x04000007, 0x0201f800, 0x00106c55, 0x0201f800, | ||
7814 | 0x00106bbf, 0x0201f800, 0x00106c4b, 0x1c01f000, | ||
7815 | 0x4933c857, 0x59880052, 0x80000000, 0x48031052, | ||
7816 | 0x1c01f000, 0x4933c857, 0x59300203, 0x82003480, | ||
7817 | 0x0000000e, 0x02021800, 0x001005d8, 0x4d2c0000, | ||
7818 | 0x0c01f803, 0x5c025800, 0x1c01f000, 0x00107991, | ||
7819 | 0x00107efd, 0x0010804a, 0x00107991, 0x001080b0, | ||
7820 | 0x00107af5, 0x00107991, 0x00107991, 0x00107e93, | ||
7821 | 0x00107991, 0x00107991, 0x00107991, 0x00107991, | ||
7822 | 0x00107991, 0x0201f800, 0x001005d8, 0x4933c857, | ||
7823 | 0x59300203, 0x82003480, 0x0000000e, 0x02021800, | ||
7824 | 0x001005d8, 0x0c01f001, 0x001079a8, 0x00108a3d, | ||
7825 | 0x001079a8, 0x001079a8, 0x001079a8, 0x001079a8, | ||
7826 | 0x001079a8, 0x001079a8, 0x001089e5, 0x00108a58, | ||
7827 | 0x00108ac6, 0x00108a58, 0x00108ac6, 0x001079a8, | ||
7828 | 0x0201f800, 0x001005d8, 0x0201f800, 0x001005d8, | ||
7829 | 0x4933c857, 0x4d2c0000, 0x59325808, 0x59300203, | ||
7830 | 0x82003480, 0x0000000e, 0x02021800, 0x001005d8, | ||
7831 | 0x0c01f803, 0x5c025800, 0x1c01f000, 0x001079c5, | ||
7832 | 0x001079c5, 0x001079c5, 0x001079e1, 0x00107a2d, | ||
7833 | 0x001079c5, 0x001079c5, 0x001079c5, 0x001079c7, | ||
7834 | 0x001079c5, 0x001079c5, 0x001079c5, 0x001079c5, | ||
7835 | 0x001079c5, 0x0201f800, 0x001005d8, 0x4933c857, | ||
7836 | 0x83380580, 0x00000040, 0x02020800, 0x001005d8, | ||
7837 | 0x4a026007, 0x00082000, 0x4a026203, 0x00000003, | ||
7838 | 0x493a6403, 0x4a025c08, 0x00000001, 0x592c000d, | ||
7839 | 0x48026011, 0x497a6013, 0x592c0208, 0x800000c2, | ||
7840 | 0x800010c4, 0x80081400, 0x480a6206, 0x0201f800, | ||
7841 | 0x00100f4e, 0x42000800, 0x80000060, 0x0201f000, | ||
7842 | 0x00106721, 0x4933c857, 0x83380480, 0x00000050, | ||
7843 | 0x02021800, 0x001005d8, 0x83380480, 0x00000049, | ||
7844 | 0x02001800, 0x001005d8, 0x0c01f001, 0x001079f4, | ||
7845 | 0x001079ff, 0x001079f2, 0x001079f2, 0x001079f2, | ||
7846 | 0x001079f2, 0x00107a0a, 0x0201f800, 0x001005d8, | ||
7847 | 0x4a026203, 0x00000004, 0x4a025c08, 0x00000002, | ||
7848 | 0x592c0207, 0x48025c09, 0x592c0209, 0x48025a07, | ||
7849 | 0x592c000c, 0x4802580d, 0x1c01f000, 0x0201f800, | ||
7850 | 0x00106b8a, 0x0201f800, 0x00109037, 0x04000005, | ||
7851 | 0x4a025a06, 0x00000006, 0x0201f800, 0x000202da, | ||
7852 | 0x0201f000, 0x0002077d, 0x0201f800, 0x00106b8a, | ||
7853 | 0x4d3c0000, 0x417a7800, 0x0201f800, 0x0010203c, | ||
7854 | 0x5c027800, 0x42003000, 0x00000014, 0x41782800, | ||
7855 | 0x42002000, 0x00000002, 0x4d400000, 0x4d440000, | ||
7856 | 0x59368c03, 0x42028000, 0x00000029, 0x0201f800, | ||
7857 | 0x0010985e, 0x5c028800, 0x5c028000, 0x42000000, | ||
7858 | 0x0010b864, 0x0201f800, 0x0010aa47, 0x0201f800, | ||
7859 | 0x00109037, 0x02000000, 0x0002077d, 0x4a025a06, | ||
7860 | 0x00000029, 0x0201f800, 0x000202da, 0x0201f000, | ||
7861 | 0x0002077d, 0x4933c857, 0x83380580, 0x00000048, | ||
7862 | 0x04000005, 0x83380580, 0x00000053, 0x02020800, | ||
7863 | 0x001005d8, 0x592c0206, 0x82000580, 0x00000007, | ||
7864 | 0x04000009, 0x59300011, 0x80000540, 0x04000006, | ||
7865 | 0x592c080c, 0x80040480, 0x4802580c, 0x4a025a06, | ||
7866 | 0x00000015, 0x592c0206, 0x80000540, 0x04020003, | ||
7867 | 0x4a025a06, 0x00000000, 0x0201f800, 0x000202da, | ||
7868 | 0x0201f000, 0x0002077d, 0x4933c857, 0x4d2c0000, | ||
7869 | 0x4c500000, 0x4c540000, 0x4c580000, 0x0201f800, | ||
7870 | 0x001007e4, 0x02000800, 0x001005d8, 0x497a5a06, | ||
7871 | 0x59c80017, 0x82000500, 0x0000f000, 0x48025c07, | ||
7872 | 0x59a80816, 0x82040c00, 0x00000018, 0x48065a07, | ||
7873 | 0x412c7800, 0x4d2c0000, 0x41cca000, 0x42002800, | ||
7874 | 0x00000001, 0x42001000, 0x0000002c, 0x82040480, | ||
7875 | 0x0000002d, 0x04021006, 0x832cac00, 0x00000009, | ||
7876 | 0x0201f800, 0x00108b96, 0x0401f02e, 0x40043000, | ||
7877 | 0x42000800, 0x0000002c, 0x832cac00, 0x00000009, | ||
7878 | 0x0201f800, 0x00108b96, 0x82183480, 0x0000002c, | ||
7879 | 0x0201f800, 0x001007e4, 0x0400001a, 0x80142800, | ||
7880 | 0x4a025804, 0x00000110, 0x492c7801, 0x82180c80, | ||
7881 | 0x0000003d, 0x04021007, 0x40180800, 0x832cac00, | ||
7882 | 0x00000005, 0x0201f800, 0x00108b96, 0x0401f015, | ||
7883 | 0x82081400, 0x0000003c, 0x82183480, 0x0000003c, | ||
7884 | 0x42000800, 0x0000003c, 0x412c7800, 0x832cac00, | ||
7885 | 0x00000005, 0x0201f800, 0x00108b96, 0x0401f7e5, | ||
7886 | 0x5c025800, 0x592c0206, 0x8400055e, 0x48025a06, | ||
7887 | 0x592c0407, 0x80080540, 0x48025c07, 0x0401f002, | ||
7888 | 0x5c025800, 0x813669c0, 0x04000003, 0x59343403, | ||
7889 | 0x0401f003, 0x42003000, 0x0000ffff, 0x49325808, | ||
7890 | 0x481a5c06, 0x82100580, 0x00000054, 0x04020002, | ||
7891 | 0x491e5813, 0x841401c0, 0x80100540, 0x48025804, | ||
7892 | 0x592c0001, 0x497a5801, 0x4c000000, 0x0201f800, | ||
7893 | 0x000202da, 0x5c025800, 0x812e59c0, 0x040207f9, | ||
7894 | 0x5c00b000, 0x5c00a800, 0x5c00a000, 0x5c025800, | ||
7895 | 0x1c01f000, 0x4803c856, 0x4c5c0000, 0x4d2c0000, | ||
7896 | 0x4c500000, 0x4c540000, 0x4c580000, 0x412cb800, | ||
7897 | 0x592c040b, 0x8c000516, 0x04000003, 0x41cca000, | ||
7898 | 0x0401f003, 0x83cca400, 0x00000006, 0x4008b000, | ||
7899 | 0x41781000, 0x82580480, 0x00000012, 0x04001004, | ||
7900 | 0x4200b000, 0x00000012, 0x40001000, 0x4c080000, | ||
7901 | 0x4d2c0000, 0x0201f800, 0x001007e4, 0x04000023, | ||
7902 | 0x5c001800, 0x492c1801, 0x485a5800, 0x832cac00, | ||
7903 | 0x00000002, 0x0201f800, 0x0010ab28, 0x585c040b, | ||
7904 | 0x8c000500, 0x0400000e, 0x832c1400, 0x00000002, | ||
7905 | 0x8c000516, 0x04000003, 0x82081400, 0x00000006, | ||
7906 | 0x46001000, 0x00000001, 0x80081000, 0x46001000, | ||
7907 | 0x00000900, 0x84000500, 0x4800bc0b, 0x5c001000, | ||
7908 | 0x800811c0, 0x040207da, 0x82000540, 0x00000001, | ||
7909 | 0x5c00b000, 0x5c00a800, 0x5c00a000, 0x5c025800, | ||
7910 | 0x5c00b800, 0x1c01f000, 0x5c025800, 0x5c001000, | ||
7911 | 0x0401f7f8, 0x4933c857, 0x83380d80, 0x00000015, | ||
7912 | 0x04020003, 0x0201f000, 0x0002077d, 0x83380d80, | ||
7913 | 0x00000016, 0x02020800, 0x001005d8, 0x0201f000, | ||
7914 | 0x0002077d, 0x4933c857, 0x4d2c0000, 0x4c500000, | ||
7915 | 0x4c540000, 0x4c580000, 0x59325808, 0x83cca400, | ||
7916 | 0x00000006, 0x59cc1806, 0x820c0580, 0x01000000, | ||
7917 | 0x04020004, 0x4200b000, 0x00000002, 0x0401f00f, | ||
7918 | 0x4200b000, 0x00000008, 0x832cac00, 0x00000005, | ||
7919 | 0x0201f800, 0x0010ab17, 0x8c0c1d00, 0x0400000b, | ||
7920 | 0x4200b000, 0x00000008, 0x592e5801, 0x812e59c0, | ||
7921 | 0x02000800, 0x001005d8, 0x832cac00, 0x00000005, | ||
7922 | 0x0201f800, 0x0010ab17, 0x0401f816, 0x5c00b000, | ||
7923 | 0x5c00a800, 0x5c00a000, 0x5c025800, 0x1c01f000, | ||
7924 | 0x4933c857, 0x4c500000, 0x4c540000, 0x4c580000, | ||
7925 | 0x83cca400, 0x00000006, 0x5930a808, 0x8254ac00, | ||
7926 | 0x00000005, 0x4200b000, 0x00000007, 0x0201f800, | ||
7927 | 0x0010ab17, 0x5c00b000, 0x5c00a800, 0x5c00a000, | ||
7928 | 0x4933c857, 0x0201f800, 0x00109037, 0x02000000, | ||
7929 | 0x0002077d, 0x4d2c0000, 0x0201f800, 0x00109597, | ||
7930 | 0x0402000b, 0x41780800, 0x4d400000, 0x42028000, | ||
7931 | 0x00000000, 0x0201f800, 0x0010943b, 0x5c028000, | ||
7932 | 0x5c025800, 0x0201f000, 0x0002077d, 0x5931d821, | ||
7933 | 0x58ef400b, 0x58ee580d, 0x4a025a04, 0x00000103, | ||
7934 | 0x58ec0009, 0x0801f800, 0x5c025800, 0x0201f000, | ||
7935 | 0x0002077d, 0x4933c857, 0x59cc1806, 0x820c0580, | ||
7936 | 0x02000000, 0x04020014, 0x4a026802, 0x00fffffd, | ||
7937 | 0x5934000a, 0x84000504, 0x4802680a, 0x59300808, | ||
7938 | 0x800409c0, 0x02000000, 0x0002077d, 0x4a000a04, | ||
7939 | 0x00000103, 0x480c0805, 0x5931d821, 0x58ef400b, | ||
7940 | 0x58ee580d, 0x58ec0009, 0x0801f800, 0x0201f000, | ||
7941 | 0x0002077d, 0x42000000, 0x0010b86c, 0x0201f800, | ||
7942 | 0x0010aa47, 0x4c0c0000, 0x0401f804, 0x5c001800, | ||
7943 | 0x040207eb, 0x1c01f000, 0x4933c857, 0x4d2c0000, | ||
7944 | 0x59325808, 0x812e59c0, 0x04020009, 0x497a6206, | ||
7945 | 0x497a6205, 0x4d380000, 0x42027000, 0x00000022, | ||
7946 | 0x0401fb77, 0x5c027000, 0x80000580, 0x5c025800, | ||
7947 | 0x1c01f000, 0x4933c857, 0x4d2c0000, 0x4c500000, | ||
7948 | 0x4c540000, 0x4c580000, 0x59325808, 0x592e5801, | ||
7949 | 0x832cac00, 0x00000005, 0x83cca400, 0x00000006, | ||
7950 | 0x59c80817, 0x82040d00, 0x000003ff, 0x82041480, | ||
7951 | 0x0000000f, 0x0400101b, 0x4200b000, 0x0000000f, | ||
7952 | 0x0201f800, 0x0010ab17, 0x592e5801, 0x832cac00, | ||
7953 | 0x00000005, 0x82080c80, 0x0000000f, 0x0400100d, | ||
7954 | 0x4200b000, 0x0000000f, 0x0201f800, 0x0010ab17, | ||
7955 | 0x592e5801, 0x832cac00, 0x00000005, 0x82041480, | ||
7956 | 0x0000000f, 0x04001007, 0x42001000, 0x0000000f, | ||
7957 | 0x4008b000, 0x0201f800, 0x0010ab17, 0x0401f004, | ||
7958 | 0x4004b000, 0x0201f800, 0x0010ab17, 0x5931d821, | ||
7959 | 0x58ef400b, 0x58ee580d, 0x4a025a04, 0x00000103, | ||
7960 | 0x592e5801, 0x58ec0009, 0x0801f800, 0x0201f800, | ||
7961 | 0x0002077d, 0x5c00b000, 0x5c00a800, 0x5c00a000, | ||
7962 | 0x5c025800, 0x1c01f000, 0x4933c857, 0x4d2c0000, | ||
7963 | 0x4c500000, 0x4c540000, 0x4c580000, 0x59cc0006, | ||
7964 | 0x82000d80, 0x01000000, 0x0400002c, 0x59cc0007, | ||
7965 | 0x9000b1c0, 0x8258b500, 0x000000ff, 0x8058b104, | ||
7966 | 0x8258b400, 0x00000002, 0x82580c80, 0x00000007, | ||
7967 | 0x04001003, 0x4200b000, 0x00000006, 0x83cca400, | ||
7968 | 0x00000006, 0x59301008, 0x800811c0, 0x02000800, | ||
7969 | 0x001005d8, 0x8208ac00, 0x00000005, 0x0201f800, | ||
7970 | 0x0010ab17, 0x82000d00, 0xff000000, 0x800409c0, | ||
7971 | 0x04000019, 0x8200b500, 0x000000ff, 0x8058b104, | ||
7972 | 0x82580c80, 0x0000000e, 0x04001003, 0x4200b000, | ||
7973 | 0x0000000d, 0x58081001, 0x800811c0, 0x02000800, | ||
7974 | 0x001005d8, 0x8208ac00, 0x00000005, 0x0201f800, | ||
7975 | 0x0010ab17, 0x0401f008, 0x59301008, 0x800811c0, | ||
7976 | 0x02000800, 0x001005d8, 0x48001005, 0x59cc0007, | ||
7977 | 0x48001006, 0x0401ff3b, 0x5c00b000, 0x5c00a800, | ||
7978 | 0x5c00a000, 0x5c025800, 0x1c01f000, 0x4933c857, | ||
7979 | 0x42000800, 0x00000000, 0x59cc0006, 0x82000580, | ||
7980 | 0x02000000, 0x04000003, 0x42000800, 0x00000001, | ||
7981 | 0x4d2c0000, 0x59325808, 0x812e59c0, 0x02000800, | ||
7982 | 0x001005d8, 0x48065a06, 0x0201f800, 0x000202da, | ||
7983 | 0x5c025800, 0x0201f000, 0x0002077d, 0x4933c857, | ||
7984 | 0x4d2c0000, 0x4c500000, 0x4c540000, 0x4c580000, | ||
7985 | 0x4200b000, 0x00000002, 0x59cc0806, 0x82040580, | ||
7986 | 0x01000000, 0x04000004, 0x8204b500, 0x0000ffff, | ||
7987 | 0x8058b104, 0x83cca400, 0x00000006, 0x59300008, | ||
7988 | 0x8200ac00, 0x00000005, 0x0201f800, 0x0010ab17, | ||
7989 | 0x0401ff0c, 0x5c00b000, 0x5c00a800, 0x5c00a000, | ||
7990 | 0x5c025800, 0x1c01f000, 0x4933c857, 0x4803c857, | ||
7991 | 0x4807c857, 0x480bc857, 0x480fc857, 0x4813c857, | ||
7992 | 0x481bc857, 0x492fc857, 0x4d2c0000, 0x4c000000, | ||
7993 | 0x0201f800, 0x001007d3, 0x5c000000, 0x0400000f, | ||
7994 | 0x48025803, 0x5c000000, 0x4802580a, 0x4c000000, | ||
7995 | 0x481a5801, 0x48125809, 0x48065804, 0x480a5807, | ||
7996 | 0x480e5808, 0x412c1000, 0x0201f800, 0x00100858, | ||
7997 | 0x82000540, 0x00000001, 0x5c025800, 0x1c01f000, | ||
7998 | 0x4933c857, 0x4d1c0000, 0x59cc0001, 0x82000500, | ||
7999 | 0x00ffffff, 0x59341002, 0x82081500, 0x00ffffff, | ||
8000 | 0x80080580, 0x0402001f, 0x497a6205, 0x4d380000, | ||
8001 | 0x42027000, 0x00000035, 0x0201f800, 0x001093ba, | ||
8002 | 0x5c027000, 0x04020012, 0x591c001c, 0x800001c0, | ||
8003 | 0x0400000f, 0x497a381c, 0x591c0414, 0x8c000502, | ||
8004 | 0x02000800, 0x001005d8, 0x84000502, 0x48023c14, | ||
8005 | 0x591c1406, 0x82080580, 0x00000003, 0x04000006, | ||
8006 | 0x82080580, 0x00000006, 0x04000005, 0x0401fc9e, | ||
8007 | 0x0401f004, 0x0401f805, 0x0401f002, 0x0401f8c0, | ||
8008 | 0x5c023800, 0x1c01f000, 0x4d2c0000, 0x591e5808, | ||
8009 | 0x4933c857, 0x491fc857, 0x493bc857, 0x492fc857, | ||
8010 | 0x83380580, 0x00000015, 0x040000b3, 0x83380580, | ||
8011 | 0x00000016, 0x040200ae, 0x4d300000, 0x411e6000, | ||
8012 | 0x59cc0207, 0x4803c857, 0x82000d00, 0x0000ff00, | ||
8013 | 0x82040580, 0x00001700, 0x04000004, 0x82040580, | ||
8014 | 0x00000300, 0x0402005b, 0x591c0203, 0x4803c857, | ||
8015 | 0x82000580, 0x0000000d, 0x0400003f, 0x812e59c0, | ||
8016 | 0x0400009a, 0x591c0202, 0x4803c857, 0x82000580, | ||
8017 | 0x0000ffff, 0x0402007e, 0x592c020a, 0x4803c857, | ||
8018 | 0x82000500, 0x00000003, 0x82000580, 0x00000002, | ||
8019 | 0x04020007, 0x592c080f, 0x591c0011, 0x4803c857, | ||
8020 | 0x4807c857, 0x80040580, 0x04020071, 0x591c0414, | ||
8021 | 0x4803c857, 0x8c000500, 0x0402006d, 0x41780800, | ||
8022 | 0x591c1206, 0x42000000, 0x0000000a, 0x0201f800, | ||
8023 | 0x001066a0, 0x592c0406, 0x4803c857, 0x800001c0, | ||
8024 | 0x0400000c, 0x80080c80, 0x04001004, 0x02020800, | ||
8025 | 0x001005d8, 0x80001040, 0x480a5c06, 0x800811c0, | ||
8026 | 0x04020004, 0x0201f800, 0x00108d88, 0x0401f06b, | ||
8027 | 0x0201f800, 0x0010912a, 0x591c0817, 0x591c0018, | ||
8028 | 0x48065808, 0x48025809, 0x59300007, 0x8c000500, | ||
8029 | 0x02020800, 0x00100e99, 0x497a3808, 0x0201f800, | ||
8030 | 0x000201ba, 0x0402004a, 0x411e6000, 0x0401fc3e, | ||
8031 | 0x0401f05a, 0x0401fc6d, 0x04000013, 0x49366009, | ||
8032 | 0x4a026406, 0x00000003, 0x492e6008, 0x591c0817, | ||
8033 | 0x591c1018, 0x48066017, 0x480a6018, 0x4d380000, | ||
8034 | 0x591e7403, 0x4d300000, 0x411e6000, 0x0401fc2e, | ||
8035 | 0x5c026000, 0x0201f800, 0x000207a1, 0x5c027000, | ||
8036 | 0x0401f046, 0x59a80039, 0x48023a05, 0x0401f043, | ||
8037 | 0x59cc0407, 0x82000580, 0x0000000b, 0x04020025, | ||
8038 | 0x59340a00, 0x84040d0e, 0x48066a00, 0x592c0a04, | ||
8039 | 0x82040d00, 0x000000ff, 0x82040d80, 0x00000014, | ||
8040 | 0x04000003, 0x4a02621d, 0x00000003, 0x59300007, | ||
8041 | 0x8c000500, 0x02020800, 0x00100e99, 0x4d400000, | ||
8042 | 0x42028000, 0x00000003, 0x592c0a08, 0x0201f800, | ||
8043 | 0x00104e70, 0x0201f800, 0x000202da, 0x5c028000, | ||
8044 | 0x497a6008, 0x4a026403, 0x00000085, 0x4a026203, | ||
8045 | 0x00000009, 0x4a026406, 0x00000002, 0x42000800, | ||
8046 | 0x8000404b, 0x0201f800, 0x00020721, 0x0401f01b, | ||
8047 | 0x59cc0207, 0x82000580, 0x00002a00, 0x04020004, | ||
8048 | 0x59a80039, 0x48023a05, 0x0401f014, 0x812e59c0, | ||
8049 | 0x02000800, 0x001005d8, 0x4a025a04, 0x00000103, | ||
8050 | 0x591c0007, 0x8c000500, 0x02020800, 0x00100e99, | ||
8051 | 0x591c0402, 0x48025c06, 0x4a025a06, 0x00000003, | ||
8052 | 0x0201f800, 0x000202c1, 0x0201f800, 0x00107911, | ||
8053 | 0x0201f800, 0x001049b2, 0x5c026000, 0x0201f800, | ||
8054 | 0x0002077d, 0x0401f002, 0x5c026000, 0x5c025800, | ||
8055 | 0x1c01f000, 0x0401f819, 0x0401f7fd, 0x4933c857, | ||
8056 | 0x83380580, 0x00000015, 0x04020004, 0x59a80039, | ||
8057 | 0x48023a05, 0x0401f00d, 0x83380580, 0x00000016, | ||
8058 | 0x0402000d, 0x4d300000, 0x411e6000, 0x0201f800, | ||
8059 | 0x0010a5df, 0x0201f800, 0x000206fd, 0x0201f800, | ||
8060 | 0x0002077d, 0x5c026000, 0x497a381c, 0x0201f800, | ||
8061 | 0x0002077d, 0x1c01f000, 0x591c0414, 0x84000540, | ||
8062 | 0x48023c14, 0x59cc100b, 0x4933c857, 0x491fc857, | ||
8063 | 0x492fc857, 0x4803c857, 0x480bc857, 0x8c08153c, | ||
8064 | 0x04000006, 0x59a80039, 0x48023a05, 0x497a381c, | ||
8065 | 0x0201f000, 0x0002077d, 0x4d300000, 0x411e6000, | ||
8066 | 0x0201f800, 0x00108bd7, 0x5c026000, 0x591c0406, | ||
8067 | 0x82000580, 0x00000000, 0x02000000, 0x0002077d, | ||
8068 | 0x591c0403, 0x82000580, 0x00000050, 0x0402000d, | ||
8069 | 0x4d300000, 0x411e6000, 0x4a026203, 0x00000001, | ||
8070 | 0x42000800, 0x80000043, 0x0201f800, 0x00020721, | ||
8071 | 0x5c026000, 0x497a381c, 0x0201f000, 0x0002077d, | ||
8072 | 0x591c0203, 0x82000580, 0x0000000d, 0x04000014, | ||
8073 | 0x812e59c0, 0x02000800, 0x001005d8, 0x591c0203, | ||
8074 | 0x82000580, 0x00000004, 0x04020011, 0x592c020a, | ||
8075 | 0x8c000502, 0x0400000e, 0x4a023812, 0x0fffffff, | ||
8076 | 0x592c0208, 0x8400051e, 0x48025a08, 0x42000000, | ||
8077 | 0x00000001, 0x48023a14, 0x0401f021, 0x42000000, | ||
8078 | 0x00000007, 0x48023a14, 0x0401f01d, 0x592c020a, | ||
8079 | 0x4803c857, 0x8c000500, 0x0402000b, 0x8c000502, | ||
8080 | 0x040007f7, 0x591c0414, 0x8c00051c, 0x040207eb, | ||
8081 | 0x591c0011, 0x4803c857, 0x800001c0, 0x040007f0, | ||
8082 | 0x0401f7e6, 0x8c08153a, 0x040207ed, 0x59cc000a, | ||
8083 | 0x592c180f, 0x4803c857, 0x480fc857, 0x800c0580, | ||
8084 | 0x040007e7, 0x59cc000a, 0x4803c857, 0x48023816, | ||
8085 | 0x42000000, 0x00000005, 0x48023a14, 0x0201f000, | ||
8086 | 0x00109259, 0x4933c857, 0x4d1c0000, 0x59cc0001, | ||
8087 | 0x59341002, 0x80080580, 0x82000500, 0x00ffffff, | ||
8088 | 0x04020041, 0x59301419, 0x0201f800, 0x00109410, | ||
8089 | 0x02000800, 0x001005d8, 0x591c1406, 0x82080580, | ||
8090 | 0x00000007, 0x04000038, 0x82080580, 0x00000002, | ||
8091 | 0x04000035, 0x82080580, 0x00000000, 0x04000032, | ||
8092 | 0x591c0202, 0x82000d80, 0x0000ffff, 0x04000004, | ||
8093 | 0x59301a19, 0x800c0580, 0x0402002b, 0x83380580, | ||
8094 | 0x00000015, 0x04000026, 0x4d300000, 0x4d2c0000, | ||
8095 | 0x411e6000, 0x59325808, 0x0201f800, 0x00109037, | ||
8096 | 0x02000800, 0x001005d8, 0x592c0204, 0x82000500, | ||
8097 | 0x000000ff, 0x82000580, 0x00000014, 0x04000003, | ||
8098 | 0x4a02621d, 0x00000003, 0x42028000, 0x00000003, | ||
8099 | 0x592c0a08, 0x0201f800, 0x00104e70, 0x0201f800, | ||
8100 | 0x000202da, 0x5c025800, 0x497a6008, 0x4a026403, | ||
8101 | 0x00000085, 0x4a026203, 0x00000009, 0x4a026406, | ||
8102 | 0x00000002, 0x42000800, 0x8000404b, 0x0201f800, | ||
8103 | 0x00020721, 0x5c026000, 0x0401f003, 0x59a80039, | ||
8104 | 0x48023a05, 0x497a381c, 0x0201f800, 0x0002077d, | ||
8105 | 0x5c023800, 0x1c01f000, 0x4933c857, 0x4c580000, | ||
8106 | 0x4d2c0000, 0x59325808, 0x83383580, 0x00000015, | ||
8107 | 0x04000010, 0x59342200, 0x84102502, 0x48126a00, | ||
8108 | 0x0201f800, 0x00109037, 0x04000066, 0x0201f800, | ||
8109 | 0x00109597, 0x04020005, 0x4200b000, 0x00000002, | ||
8110 | 0x0201f800, 0x0010957d, 0x0401fa0a, 0x0401f079, | ||
8111 | 0x83cc1400, 0x00000008, 0x4200b000, 0x00000002, | ||
8112 | 0x83341c00, 0x00000006, 0x0201f800, 0x0010855a, | ||
8113 | 0x04020015, 0x83cc1400, 0x0000000a, 0x4200b000, | ||
8114 | 0x00000002, 0x83341c00, 0x00000008, 0x0201f800, | ||
8115 | 0x0010855a, 0x0402000c, 0x0201f800, 0x00102074, | ||
8116 | 0x59342200, 0x59cc1007, 0x800811c0, 0x04000003, | ||
8117 | 0x480a6801, 0x84102542, 0x8410251a, 0x48126a00, | ||
8118 | 0x0401f05f, 0x4d3c0000, 0x417a7800, 0x0201f800, | ||
8119 | 0x0010203c, 0x5c027800, 0x42000000, 0x0010b864, | ||
8120 | 0x0201f800, 0x0010aa47, 0x59340200, 0x84000558, | ||
8121 | 0x48026a00, 0x4d300000, 0x0201f800, 0x0002075a, | ||
8122 | 0x02000800, 0x001005d8, 0x49366009, 0x497a6008, | ||
8123 | 0x4a026406, 0x00000001, 0x4a026403, 0x00000001, | ||
8124 | 0x42003000, 0x00000003, 0x0201f800, 0x0010a942, | ||
8125 | 0x0201f800, 0x00103b25, 0x04000011, 0x41782800, | ||
8126 | 0x42003000, 0x00000001, 0x4d400000, 0x42028000, | ||
8127 | 0x00000029, 0x0201f800, 0x0010a43e, 0x5c028000, | ||
8128 | 0x4a026406, 0x00000004, 0x4a026203, 0x00000007, | ||
8129 | 0x4a026420, 0x00000001, 0x0401f009, 0x4a026203, | ||
8130 | 0x00000001, 0x42000800, 0x0000000b, 0x0201f800, | ||
8131 | 0x00104571, 0x0201f800, 0x0010672b, 0x5c026000, | ||
8132 | 0x0201f800, 0x00109037, 0x04000022, 0x0201f800, | ||
8133 | 0x00109597, 0x04020022, 0x0401f9ae, 0x0401f01d, | ||
8134 | 0x4d3c0000, 0x417a7800, 0x0201f800, 0x0010203c, | ||
8135 | 0x42000000, 0x0010b864, 0x0201f800, 0x0010aa47, | ||
8136 | 0x59340200, 0x84000558, 0x48026a00, 0x42003000, | ||
8137 | 0x00000003, 0x41782800, 0x42002000, 0x00000005, | ||
8138 | 0x4d400000, 0x4d440000, 0x59368c03, 0x42028000, | ||
8139 | 0x00000029, 0x0201f800, 0x0010985e, 0x5c028800, | ||
8140 | 0x5c028000, 0x5c027800, 0x0201f800, 0x00102074, | ||
8141 | 0x0201f800, 0x0002077d, 0x0401f002, 0x0401fca9, | ||
8142 | 0x5c025800, 0x5c00b000, 0x1c01f000, 0x4933c857, | ||
8143 | 0x41380000, 0x83383480, 0x00000056, 0x02021800, | ||
8144 | 0x001005d8, 0x0c01f001, 0x00107ef7, 0x00107ef2, | ||
8145 | 0x00107ef7, 0x00107ef7, 0x00107ef7, 0x00107ef7, | ||
8146 | 0x00107ef0, 0x00107ef0, 0x00107ef0, 0x00107ef0, | ||
8147 | 0x00107ef0, 0x00107ef0, 0x00107ef0, 0x00107ef0, | ||
8148 | 0x00107ef0, 0x00107ef0, 0x00107ef0, 0x00107ef0, | ||
8149 | 0x00107ef0, 0x00107ef0, 0x00107ef0, 0x00107ef0, | ||
8150 | 0x00107ef0, 0x00107ef0, 0x00107ef0, 0x00107ef0, | ||
8151 | 0x00107ef0, 0x00107ef0, 0x00107ef0, 0x00107ef0, | ||
8152 | 0x00107ef0, 0x00107ef7, 0x00107ef0, 0x00107ef7, | ||
8153 | 0x00107ef7, 0x00107ef0, 0x00107ef0, 0x00107ef0, | ||
8154 | 0x00107ef0, 0x00107ef0, 0x00107ef7, 0x00107ef0, | ||
8155 | 0x00107ef0, 0x00107ef0, 0x00107ef0, 0x00107ef0, | ||
8156 | 0x00107ef0, 0x00107ef0, 0x00107ef0, 0x00107ef0, | ||
8157 | 0x00107ef7, 0x00107ef7, 0x00107ef0, 0x00107ef0, | ||
8158 | 0x00107ef0, 0x00107ef0, 0x00107ef0, 0x00107ef0, | ||
8159 | 0x00107ef0, 0x00107ef0, 0x00107ef0, 0x00107ef7, | ||
8160 | 0x00107ef0, 0x00107ef0, 0x00107ef7, 0x00107ef7, | ||
8161 | 0x00107ef0, 0x00107ef7, 0x00107ef7, 0x00107ef0, | ||
8162 | 0x00107ef0, 0x00107ef0, 0x00107ef0, 0x00107ef7, | ||
8163 | 0x00107ef0, 0x00107ef0, 0x00107ef0, 0x00107ef7, | ||
8164 | 0x00107ef0, 0x00107ef0, 0x00107ef0, 0x00107ef7, | ||
8165 | 0x00107ef0, 0x00107ef0, 0x00107ef0, 0x00107ef7, | ||
8166 | 0x0201f800, 0x001005d8, 0x4a026203, 0x00000001, | ||
8167 | 0x493a6403, 0x0201f000, 0x0010672b, 0x4933c857, | ||
8168 | 0x4a026203, 0x00000001, 0x493a6403, 0x0201f000, | ||
8169 | 0x0010672b, 0x4933c857, 0x59300403, 0x82003480, | ||
8170 | 0x00000056, 0x02021800, 0x001005d8, 0x83383580, | ||
8171 | 0x00000013, 0x04000093, 0x83383580, 0x00000027, | ||
8172 | 0x0402004b, 0x0201f800, 0x00106bbf, 0x0201f800, | ||
8173 | 0x00109134, 0x0400000b, 0x0201f800, 0x0010914e, | ||
8174 | 0x04000041, 0x59300403, 0x82000d80, 0x00000022, | ||
8175 | 0x04020038, 0x0401fc61, 0x0400003a, 0x0401f03a, | ||
8176 | 0x0201f800, 0x00102074, 0x42000800, 0x00000007, | ||
8177 | 0x0201f800, 0x00104571, 0x0401f8fe, 0x4d440000, | ||
8178 | 0x59368c03, 0x83440580, 0x000007fe, 0x04020008, | ||
8179 | 0x59a81026, 0x84081540, 0x0201f800, 0x0010513b, | ||
8180 | 0x04020002, 0x8408154a, 0x480b5026, 0x42028000, | ||
8181 | 0x00000029, 0x4d3c0000, 0x417a7800, 0x0201f800, | ||
8182 | 0x0010203c, 0x5c027800, 0x836c0580, 0x00000003, | ||
8183 | 0x0400000c, 0x59326809, 0x59340008, 0x800001c0, | ||
8184 | 0x04020008, 0x59368c03, 0x4933c857, 0x4937c857, | ||
8185 | 0x4947c857, 0x0201f800, 0x001045fb, 0x0401f00c, | ||
8186 | 0x42000000, 0x0010b864, 0x0201f800, 0x0010aa47, | ||
8187 | 0x42003000, 0x00000015, 0x41782800, 0x42002000, | ||
8188 | 0x00000003, 0x0201f800, 0x0010985e, 0x5c028800, | ||
8189 | 0x0201f800, 0x00109326, 0x0201f000, 0x0002077d, | ||
8190 | 0x1c01f000, 0x0401f8cb, 0x0401f7fa, 0x83380580, | ||
8191 | 0x00000014, 0x0400000b, 0x0201f800, 0x00106f60, | ||
8192 | 0x02020000, 0x00107974, 0x59300203, 0x82000580, | ||
8193 | 0x00000002, 0x040000ed, 0x0201f800, 0x001005d8, | ||
8194 | 0x0201f800, 0x00106bbf, 0x4d3c0000, 0x417a7800, | ||
8195 | 0x0201f800, 0x0010203c, 0x5c027800, 0x42003000, | ||
8196 | 0x00000016, 0x41782800, 0x4d400000, 0x4d440000, | ||
8197 | 0x59368c03, 0x42002000, 0x00000009, 0x42028000, | ||
8198 | 0x00000029, 0x0201f800, 0x0010985e, 0x5c028800, | ||
8199 | 0x5c028000, 0x42000000, 0x0010b864, 0x0201f800, | ||
8200 | 0x0010aa47, 0x0201f800, 0x00109134, 0x0402000c, | ||
8201 | 0x0201f800, 0x00102074, 0x0401f89e, 0x59340c03, | ||
8202 | 0x82040580, 0x000007fe, 0x040207ca, 0x59a80826, | ||
8203 | 0x84040d40, 0x48075026, 0x0401f7c6, 0x0201f800, | ||
8204 | 0x0010914e, 0x04020003, 0x0401f892, 0x0401f7c1, | ||
8205 | 0x59300403, 0x82000d80, 0x00000032, 0x04020004, | ||
8206 | 0x0201f800, 0x0010230c, 0x0401f7ba, 0x59300403, | ||
8207 | 0x82000d80, 0x00000022, 0x04000886, 0x0401f7b5, | ||
8208 | 0x4803c857, 0x0c01f001, 0x00108016, 0x00108016, | ||
8209 | 0x00108016, 0x00108016, 0x00108016, 0x00108016, | ||
8210 | 0x00107ff0, 0x00107ff0, 0x00107ff0, 0x00107ff0, | ||
8211 | 0x00107ff0, 0x00107ff0, 0x00107ff0, 0x00107ff0, | ||
8212 | 0x00107ff0, 0x00107ff0, 0x00107ff0, 0x00107ff0, | ||
8213 | 0x00107ff0, 0x00107ff0, 0x00107ff0, 0x00107ff0, | ||
8214 | 0x00107ff0, 0x00107ff0, 0x00107ff0, 0x00107ff0, | ||
8215 | 0x00107ff0, 0x00107ff0, 0x00107ff0, 0x00107ff0, | ||
8216 | 0x00107ff9, 0x00108016, 0x00107ff0, 0x00108016, | ||
8217 | 0x00108016, 0x00107ff0, 0x00107ff0, 0x00107ff0, | ||
8218 | 0x00107ff0, 0x00107ff0, 0x00108016, 0x00108016, | ||
8219 | 0x00107ff0, 0x00107ff0, 0x00107ff0, 0x00107ff0, | ||
8220 | 0x00107ff0, 0x00107ff0, 0x00107ff0, 0x00107ff0, | ||
8221 | 0x00108007, 0x00108016, 0x00107ff0, 0x00108000, | ||
8222 | 0x00107ff0, 0x00107ff0, 0x00107ff0, 0x00108000, | ||
8223 | 0x00107ff0, 0x00107ff0, 0x00107ff0, 0x00108016, | ||
8224 | 0x00108003, 0x00107ff0, 0x00107ff2, 0x00108016, | ||
8225 | 0x00107ff0, 0x00108016, 0x00108016, 0x00107ff0, | ||
8226 | 0x00107ff0, 0x00107ff0, 0x00107ff0, 0x00108016, | ||
8227 | 0x00107ff0, 0x00107ff0, 0x00107ff0, 0x00108016, | ||
8228 | 0x00107ff0, 0x00107ff0, 0x00107ff0, 0x00108016, | ||
8229 | 0x00107ff0, 0x00107ff0, 0x00107ff0, 0x00108016, | ||
8230 | 0x0201f800, 0x001005d8, 0x4d2c0000, 0x59325808, | ||
8231 | 0x0201f800, 0x000202da, 0x5c025800, 0x0201f000, | ||
8232 | 0x0002077d, 0x4a026203, 0x00000005, 0x59a80039, | ||
8233 | 0x48026205, 0x59a80037, 0x48026206, 0x1c01f000, | ||
8234 | 0x5930081e, 0x49780a05, 0x0401f014, 0x0201f800, | ||
8235 | 0x00109326, 0x0201f000, 0x0002077d, 0x0201f800, | ||
8236 | 0x0010230c, 0x0201f800, 0x00106c55, 0x04000005, | ||
8237 | 0x0201f800, 0x00106bbf, 0x0201f000, 0x0002077d, | ||
8238 | 0x0201f800, 0x00106bbf, 0x0201f800, 0x0002077d, | ||
8239 | 0x0201f000, 0x00106c4b, 0x4933c857, 0x4a026203, | ||
8240 | 0x00000002, 0x59a80037, 0x48026206, 0x1c01f000, | ||
8241 | 0x4933c857, 0x0201f800, 0x00109037, 0x0400002a, | ||
8242 | 0x4d2c0000, 0x0201f800, 0x00109597, 0x0402000a, | ||
8243 | 0x4d400000, 0x42028000, 0x00000031, 0x42000800, | ||
8244 | 0x00000004, 0x0201f800, 0x0010943b, 0x5c028000, | ||
8245 | 0x0401f01c, 0x59300c06, 0x82040580, 0x00000010, | ||
8246 | 0x04000004, 0x82040580, 0x00000011, 0x0402000a, | ||
8247 | 0x4a025a06, 0x00000031, 0x4a02580d, 0x00000004, | ||
8248 | 0x4a02580e, 0x000000ff, 0x0201f800, 0x000202da, | ||
8249 | 0x0401f00c, 0x592c0404, 0x8c00051e, 0x04000009, | ||
8250 | 0x4a025a04, 0x00000103, 0x4a025805, 0x01000000, | ||
8251 | 0x5931d821, 0x58ef400b, 0x58ec0009, 0x0801f800, | ||
8252 | 0x5c025800, 0x1c01f000, 0x4933c857, 0x59340400, | ||
8253 | 0x82000500, 0x000000ff, 0x82003480, 0x0000000c, | ||
8254 | 0x02021800, 0x001005d8, 0x59303403, 0x82180d80, | ||
8255 | 0x0000004d, 0x02000000, 0x0010938b, 0x82180d80, | ||
8256 | 0x00000033, 0x02000000, 0x00109349, 0x82180d80, | ||
8257 | 0x00000028, 0x02000000, 0x0010918f, 0x82180d80, | ||
8258 | 0x00000029, 0x02000000, 0x001091a3, 0x82180d80, | ||
8259 | 0x0000001f, 0x02000000, 0x00107b28, 0x82180d80, | ||
8260 | 0x00000055, 0x02000000, 0x00107b01, 0x82180d80, | ||
8261 | 0x00000000, 0x04000591, 0x82180d80, 0x00000022, | ||
8262 | 0x02000000, 0x00107b55, 0x82180d80, 0x00000035, | ||
8263 | 0x02000000, 0x00107c50, 0x82180d80, 0x00000039, | ||
8264 | 0x04000539, 0x82180d80, 0x0000003d, 0x02000000, | ||
8265 | 0x00107b85, 0x82180d80, 0x00000044, 0x02000000, | ||
8266 | 0x00107bc2, 0x82180d80, 0x00000049, 0x02000000, | ||
8267 | 0x00107c17, 0x82180d80, 0x00000041, 0x02000000, | ||
8268 | 0x00107c03, 0x82180d80, 0x00000043, 0x02000000, | ||
8269 | 0x001094dc, 0x82180d80, 0x00000051, 0x02000000, | ||
8270 | 0x00109542, 0x82180d80, 0x00000004, 0x04020003, | ||
8271 | 0x42000000, 0x00000001, 0x83380d80, 0x00000015, | ||
8272 | 0x04000006, 0x83380d80, 0x00000016, 0x02020000, | ||
8273 | 0x00107974, 0x0401f20f, 0x4d2c0000, 0x4d3c0000, | ||
8274 | 0x0c01f804, 0x5c027800, 0x5c025800, 0x1c01f000, | ||
8275 | 0x001080b8, 0x001080bc, 0x001080b8, 0x00108131, | ||
8276 | 0x001080b8, 0x00108226, 0x001082bf, 0x001080b8, | ||
8277 | 0x001080b8, 0x00108288, 0x001080b8, 0x0010829a, | ||
8278 | 0x4933c857, 0x497a6007, 0x59300808, 0x58040000, | ||
8279 | 0x4a000a04, 0x00000103, 0x0201f000, 0x0002077d, | ||
8280 | 0x4933c857, 0x40000000, 0x40000000, 0x1c01f000, | ||
8281 | 0x4933c857, 0x59a80016, 0x82000580, 0x00000074, | ||
8282 | 0x0402005c, 0x0201f800, 0x0010a2c8, 0x04020016, | ||
8283 | 0x0401f85c, 0x0201f800, 0x00109037, 0x0400000c, | ||
8284 | 0x0201f800, 0x00109597, 0x04020009, 0x41780800, | ||
8285 | 0x4d400000, 0x42028000, 0x00000000, 0x0201f800, | ||
8286 | 0x0010943b, 0x5c028000, 0x0401f003, 0x0201f800, | ||
8287 | 0x00102074, 0x0201f800, 0x001048c1, 0x0201f000, | ||
8288 | 0x0002077d, 0x0201f800, 0x00109037, 0x04000007, | ||
8289 | 0x0201f800, 0x00109597, 0x04020004, 0x0401ff3d, | ||
8290 | 0x0201f000, 0x0002077d, 0x417a7800, 0x0201f800, | ||
8291 | 0x0010203c, 0x42000000, 0x0010b864, 0x0201f800, | ||
8292 | 0x0010aa47, 0x59340200, 0x84000558, 0x48026a00, | ||
8293 | 0x42003000, 0x00000003, 0x0201f800, 0x0010a942, | ||
8294 | 0x4d300000, 0x0201f800, 0x0002075a, 0x02000800, | ||
8295 | 0x001005d8, 0x49366009, 0x497a6008, 0x4a026406, | ||
8296 | 0x00000001, 0x4a026403, 0x00000001, 0x0201f800, | ||
8297 | 0x00103b25, 0x04000011, 0x4a026406, 0x00000004, | ||
8298 | 0x4a026203, 0x00000007, 0x4a026420, 0x00000001, | ||
8299 | 0x42003000, 0x00000001, 0x4d400000, 0x42028000, | ||
8300 | 0x00000029, 0x41782800, 0x0201f800, 0x0010a43e, | ||
8301 | 0x5c028000, 0x0401f009, 0x42000800, 0x0000000b, | ||
8302 | 0x0201f800, 0x00104571, 0x4a026203, 0x00000001, | ||
8303 | 0x0201f800, 0x0010672b, 0x5c026000, 0x0401ff05, | ||
8304 | 0x0201f800, 0x00102074, 0x0201f000, 0x0002077d, | ||
8305 | 0x0401ff00, 0x42000000, 0x00000001, 0x0401f0c7, | ||
8306 | 0x4933c857, 0x59340200, 0x8c000500, 0x0400000d, | ||
8307 | 0x4d3c0000, 0x417a7800, 0x0201f800, 0x00104567, | ||
8308 | 0x5c027800, 0x0201f800, 0x00103b25, 0x04000005, | ||
8309 | 0x42000800, 0x00000006, 0x0201f800, 0x00104571, | ||
8310 | 0x1c01f000, 0x4933c857, 0x59a80816, 0x82040580, | ||
8311 | 0x00000074, 0x0400000e, 0x4807c857, 0x82040580, | ||
8312 | 0x00000100, 0x040200a0, 0x59cc0408, 0x4803c857, | ||
8313 | 0x8c000500, 0x0400009c, 0x59341403, 0x82080580, | ||
8314 | 0x000007fe, 0x04000006, 0x0401f097, 0x59341403, | ||
8315 | 0x82080580, 0x000007fe, 0x04020003, 0x0401fa9c, | ||
8316 | 0x0401f04c, 0x0201f800, 0x0010462a, 0x59341403, | ||
8317 | 0x82080580, 0x000007fc, 0x0402001f, 0x4a026802, | ||
8318 | 0x00fffffc, 0x0201f800, 0x00109037, 0x04000012, | ||
8319 | 0x0201f800, 0x00109597, 0x0402000f, 0x0401f8a9, | ||
8320 | 0x41780800, 0x4d400000, 0x42028000, 0x00000000, | ||
8321 | 0x0201f800, 0x0010943b, 0x5c028000, 0x42000800, | ||
8322 | 0x00000004, 0x0201f800, 0x00104571, 0x0201f000, | ||
8323 | 0x0002077d, 0x42000800, 0x00000004, 0x0201f800, | ||
8324 | 0x00104571, 0x0201f800, 0x00102074, 0x0201f000, | ||
8325 | 0x0002077d, 0x59a80005, 0x8c000514, 0x04000011, | ||
8326 | 0x0201f800, 0x0010513b, 0x42001000, 0x00000010, | ||
8327 | 0x04020009, 0x59340002, 0x82000500, 0x00ff0000, | ||
8328 | 0x82000580, 0x00ff0000, 0x04000006, 0x42001000, | ||
8329 | 0x00000008, 0x0201f800, 0x00104c6d, 0x0402005a, | ||
8330 | 0x0201f800, 0x00109037, 0x0400005b, 0x0201f800, | ||
8331 | 0x00109597, 0x04020005, 0x592c0404, 0x8c00051c, | ||
8332 | 0x040207c9, 0x0401f877, 0x42000800, 0x00000005, | ||
8333 | 0x0201f800, 0x00104571, 0x4a026203, 0x00000001, | ||
8334 | 0x4a026403, 0x00000003, 0x0201f000, 0x0010672b, | ||
8335 | 0x59cc0408, 0x8c000518, 0x04000010, 0x0201f800, | ||
8336 | 0x001092e5, 0x0201f800, 0x0010513b, 0x04000004, | ||
8337 | 0x59cc0408, 0x8c000516, 0x040207b3, 0x59a80026, | ||
8338 | 0x8400054a, 0x48035026, 0x59a80010, 0x84000570, | ||
8339 | 0x48038832, 0x0401f7ac, 0x42001000, 0x000000ef, | ||
8340 | 0x480b5010, 0x497b8830, 0x84081570, 0x480b8832, | ||
8341 | 0x59c40802, 0x84040d4c, 0x48078802, 0x0201f800, | ||
8342 | 0x0010930f, 0x59a80026, 0x84000548, 0x48035026, | ||
8343 | 0x0201f800, 0x0010a3da, 0x0402079b, 0x59a80026, | ||
8344 | 0x8400054c, 0x48035026, 0x42000800, 0x00000006, | ||
8345 | 0x0201f800, 0x00104571, 0x417a7800, 0x0201f800, | ||
8346 | 0x00104567, 0x42000000, 0x000000e8, 0x0201f800, | ||
8347 | 0x00105c9a, 0x02000800, 0x001045a6, 0x02020800, | ||
8348 | 0x001005d8, 0x49366009, 0x59340200, 0x8400051a, | ||
8349 | 0x48026a00, 0x42000800, 0x00000003, 0x0201f800, | ||
8350 | 0x00104571, 0x4a026406, 0x00000001, 0x4a026203, | ||
8351 | 0x00000001, 0x4a026403, 0x00000002, 0x0201f000, | ||
8352 | 0x0010672b, 0x0401fe43, 0x42000000, 0x00000001, | ||
8353 | 0x0401f00a, 0x599c0017, 0x8c00050a, 0x040007ab, | ||
8354 | 0x42000800, 0x00000004, 0x0201f800, 0x00104571, | ||
8355 | 0x0201f000, 0x0002077d, 0x4933c857, 0x80003540, | ||
8356 | 0x04000005, 0x42000800, 0x00000007, 0x0201f800, | ||
8357 | 0x00104571, 0x801831c0, 0x0402000e, 0x59302008, | ||
8358 | 0x801021c0, 0x04000004, 0x58100404, 0x8c00051e, | ||
8359 | 0x04020008, 0x59341c03, 0x42002000, 0x00000004, | ||
8360 | 0x42003000, 0x00000012, 0x0201f800, 0x00103aae, | ||
8361 | 0x0201f800, 0x00102074, 0x0201f000, 0x0002077d, | ||
8362 | 0x4c5c0000, 0x4d2c0000, 0x59325808, 0x0201f800, | ||
8363 | 0x00105755, 0x5c025800, 0x59cc0008, 0x48002805, | ||
8364 | 0x59cc0009, 0x48002806, 0x49782807, 0x49782808, | ||
8365 | 0x49782809, 0x4978280a, 0x59cc0013, 0x8c00053e, | ||
8366 | 0x04000009, 0x59cc0414, 0x900001c0, 0x59ccbc15, | ||
8367 | 0x805c0540, 0x48002807, 0x59cc0416, 0x900001c0, | ||
8368 | 0x48002808, 0x59cc0017, 0x8c00053e, 0x04000009, | ||
8369 | 0x59cc0418, 0x900001c0, 0x59ccbc19, 0x805c0540, | ||
8370 | 0x48002809, 0x59cc041a, 0x900001c0, 0x4800280a, | ||
8371 | 0x5c00b800, 0x1c01f000, 0x4933c857, 0x59a80016, | ||
8372 | 0x82000580, 0x00000014, 0x04020048, 0x59a80005, | ||
8373 | 0x8c000514, 0x04000015, 0x0201f800, 0x0010513b, | ||
8374 | 0x42001000, 0x00000010, 0x04020009, 0x59340002, | ||
8375 | 0x82000500, 0x00ff0000, 0x82000580, 0x00ff0000, | ||
8376 | 0x0400000a, 0x42001000, 0x00000008, 0x0201f800, | ||
8377 | 0x00104c6d, 0x04000005, 0x59a80005, 0x84000556, | ||
8378 | 0x48035005, 0x0401f031, 0x836c0580, 0x00000003, | ||
8379 | 0x0402000b, 0x59300008, 0x80000540, 0x04020008, | ||
8380 | 0x59341c03, 0x42002000, 0x00000006, 0x42003000, | ||
8381 | 0x00000013, 0x0201f800, 0x00103aae, 0x0201f800, | ||
8382 | 0x0010468d, 0x0401fecf, 0x0401fa1d, 0x0402001f, | ||
8383 | 0x59340404, 0x80000540, 0x0400001c, 0x42000800, | ||
8384 | 0x00000006, 0x0201f800, 0x00104571, 0x0201f800, | ||
8385 | 0x00109037, 0x04000011, 0x0201f800, 0x00109597, | ||
8386 | 0x0402000a, 0x41780800, 0x4d400000, 0x42028000, | ||
8387 | 0x00000000, 0x0201f800, 0x0010943b, 0x5c028000, | ||
8388 | 0x0201f000, 0x0002077d, 0x4a025a04, 0x00000103, | ||
8389 | 0x4a025805, 0x02000000, 0x0201f800, 0x00102074, | ||
8390 | 0x0201f000, 0x0002077d, 0x0201f800, 0x00104c19, | ||
8391 | 0x0201f800, 0x00109037, 0x04000007, 0x0201f800, | ||
8392 | 0x00109597, 0x04020004, 0x0401fda2, 0x0201f000, | ||
8393 | 0x0002077d, 0x0401fd9f, 0x80000580, 0x59a80005, | ||
8394 | 0x8c000516, 0x04000005, 0x84000516, 0x48035005, | ||
8395 | 0x82000540, 0x00000001, 0x0401ff60, 0x1c01f000, | ||
8396 | 0x4933c857, 0x59a80016, 0x82000580, 0x00000014, | ||
8397 | 0x0402000b, 0x42000800, 0x0000000b, 0x0201f800, | ||
8398 | 0x00104571, 0x4a026203, 0x00000001, 0x4a026403, | ||
8399 | 0x00000001, 0x0201f000, 0x0010672b, 0x42000000, | ||
8400 | 0x00000001, 0x0401f74d, 0x4933c857, 0x40003000, | ||
8401 | 0x59a80016, 0x82000580, 0x00000004, 0x0402000a, | ||
8402 | 0x82183580, 0x0000000b, 0x04020005, 0x42000800, | ||
8403 | 0x00000007, 0x0201f800, 0x00104571, 0x0201f000, | ||
8404 | 0x0002077d, 0x42000000, 0x00000001, 0x0401f73b, | ||
8405 | 0x4803c857, 0x4d2c0000, 0x4d3c0000, 0x0c01f804, | ||
8406 | 0x5c027800, 0x5c025800, 0x1c01f000, 0x001080b8, | ||
8407 | 0x001082ce, 0x001080b8, 0x00108323, 0x001080b8, | ||
8408 | 0x00108391, 0x001082bf, 0x001080b8, 0x001080b8, | ||
8409 | 0x001083b1, 0x001080b8, 0x001083c1, 0x4933c857, | ||
8410 | 0x4d1c0000, 0x59301403, 0x82080580, 0x00000003, | ||
8411 | 0x04000008, 0x82081580, 0x0000001e, 0x04020003, | ||
8412 | 0x0201f800, 0x0002077d, 0x5c023800, 0x1c01f000, | ||
8413 | 0x0401ff5a, 0x0401f7fd, 0x4933c857, 0x0201f800, | ||
8414 | 0x00109037, 0x0400000b, 0x0201f800, 0x00109597, | ||
8415 | 0x04020008, 0x4200b000, 0x00000002, 0x0201f800, | ||
8416 | 0x0010957d, 0x0401fd43, 0x0201f000, 0x0002077d, | ||
8417 | 0x0401f8f5, 0x04020030, 0x417a7800, 0x0201f800, | ||
8418 | 0x00104567, 0x417a7800, 0x0201f800, 0x0010203c, | ||
8419 | 0x42000000, 0x0010b864, 0x0201f800, 0x0010aa47, | ||
8420 | 0x59340200, 0x84000558, 0x48026a00, 0x4a026403, | ||
8421 | 0x00000002, 0x42003000, 0x00000003, 0x0201f800, | ||
8422 | 0x0010a942, 0x0201f800, 0x00103b25, 0x04000011, | ||
8423 | 0x4d400000, 0x41782800, 0x42003000, 0x00000005, | ||
8424 | 0x42028000, 0x00000029, 0x0201f800, 0x0010a43e, | ||
8425 | 0x5c028000, 0x4a026203, 0x00000007, 0x4a026406, | ||
8426 | 0x00000004, 0x4a026420, 0x00000001, 0x1c01f000, | ||
8427 | 0x42000800, 0x00000003, 0x0201f800, 0x00104571, | ||
8428 | 0x4a026203, 0x00000001, 0x0201f800, 0x0010672b, | ||
8429 | 0x0401f7f7, 0x59cc0407, 0x82000580, 0x00000009, | ||
8430 | 0x0402000a, 0x59340412, 0x82000500, 0x000000ff, | ||
8431 | 0x0400000c, 0x80000040, 0x48026c12, 0x4a026206, | ||
8432 | 0x0000000a, 0x0401f7ea, 0x59cc0207, 0x82000500, | ||
8433 | 0x0000ff00, 0x82000580, 0x00001900, 0x040007c2, | ||
8434 | 0x0401fcfc, 0x80000580, 0x0401f6c4, 0x4933c857, | ||
8435 | 0x59a80032, 0x80000540, 0x04000015, 0x59340403, | ||
8436 | 0x82000580, 0x000007fe, 0x04020011, 0x59a80010, | ||
8437 | 0x80000000, 0x48035010, 0x417a7800, 0x0201f800, | ||
8438 | 0x00104567, 0x42000800, 0x00000003, 0x0201f800, | ||
8439 | 0x00104571, 0x4a026203, 0x00000001, 0x4a026403, | ||
8440 | 0x00000002, 0x0201f000, 0x0010672b, 0x0201f800, | ||
8441 | 0x00109037, 0x04000011, 0x0201f800, 0x00109597, | ||
8442 | 0x0402000e, 0x4c580000, 0x4200b000, 0x00000002, | ||
8443 | 0x0201f800, 0x0010957d, 0x5c00b000, 0x0401fcd5, | ||
8444 | 0x42000800, 0x00000007, 0x0201f800, 0x00104571, | ||
8445 | 0x0201f000, 0x0002077d, 0x0401fcce, 0x59cc3407, | ||
8446 | 0x82183500, 0x000000ff, 0x82180580, 0x00000005, | ||
8447 | 0x0400001c, 0x82180580, 0x0000000b, 0x04000016, | ||
8448 | 0x59cc0207, 0x82000500, 0x0000ff00, 0x04020004, | ||
8449 | 0x82180580, 0x00000009, 0x04000012, 0x82000580, | ||
8450 | 0x00001900, 0x0402000c, 0x82180580, 0x00000009, | ||
8451 | 0x0400000c, 0x42000800, 0x00000004, 0x0201f800, | ||
8452 | 0x00104571, 0x0201f800, 0x00102074, 0x0201f000, | ||
8453 | 0x0002077d, 0x42000000, 0x00000001, 0x0401f677, | ||
8454 | 0x0201f800, 0x00109037, 0x59325808, 0x04000008, | ||
8455 | 0x592c0204, 0x82000580, 0x00000139, 0x040007f6, | ||
8456 | 0x592c0404, 0x8c00051e, 0x040207f3, 0x59340403, | ||
8457 | 0x82000580, 0x000007fe, 0x04020007, 0x59a80026, | ||
8458 | 0x84000540, 0x48035026, 0x0201f800, 0x00104229, | ||
8459 | 0x0401f7e9, 0x417a7800, 0x0201f800, 0x0010203c, | ||
8460 | 0x42003000, 0x00000005, 0x0201f800, 0x0010a942, | ||
8461 | 0x42000000, 0x0010b864, 0x0201f800, 0x0010aa47, | ||
8462 | 0x0401f7dd, 0x4933c857, 0x0401f84d, 0x0402000b, | ||
8463 | 0x42000800, 0x00000005, 0x0201f800, 0x00104571, | ||
8464 | 0x4a026203, 0x00000001, 0x4a026403, 0x00000003, | ||
8465 | 0x0201f000, 0x0010672b, 0x42000800, 0x00000004, | ||
8466 | 0x0201f800, 0x00104571, 0x0201f800, 0x00109597, | ||
8467 | 0x0402000a, 0x4c580000, 0x4200b000, 0x00000002, | ||
8468 | 0x0201f800, 0x0010957d, 0x5c00b000, 0x0401fc71, | ||
8469 | 0x0201f000, 0x0002077d, 0x0401fc6e, 0x80000580, | ||
8470 | 0x0401f636, 0x4933c857, 0x0401f82d, 0x0402000b, | ||
8471 | 0x42000800, 0x00000009, 0x0201f800, 0x00104571, | ||
8472 | 0x4a026203, 0x00000001, 0x4a026403, 0x00000005, | ||
8473 | 0x0201f000, 0x0010672b, 0x42000000, 0x00000001, | ||
8474 | 0x0401f626, 0x4933c857, 0x0401f81d, 0x0402000b, | ||
8475 | 0x42000800, 0x0000000b, 0x0201f800, 0x00104571, | ||
8476 | 0x4a026203, 0x00000001, 0x4a026403, 0x00000001, | ||
8477 | 0x0201f000, 0x0010672b, 0x42000000, 0x00000001, | ||
8478 | 0x0401f616, 0x4933c857, 0x59cc0407, 0x82000580, | ||
8479 | 0x00000003, 0x04020009, 0x59cc0207, 0x82000500, | ||
8480 | 0x0000ff00, 0x82000d80, 0x00002a00, 0x04000003, | ||
8481 | 0x82000d80, 0x00001e00, 0x1c01f000, 0x4933c857, | ||
8482 | 0x82000540, 0x00000001, 0x1c01f000, 0x4933c857, | ||
8483 | 0x4d400000, 0x4c580000, 0x59a80026, 0x82000540, | ||
8484 | 0x00000003, 0x48035026, 0x0401f85c, 0x04000038, | ||
8485 | 0x4d340000, 0x4d440000, 0x59a80026, 0x84000552, | ||
8486 | 0x48035026, 0x0201f800, 0x00103b25, 0x0400000c, | ||
8487 | 0x42028000, 0x0000002a, 0x42028800, 0x0000ffff, | ||
8488 | 0x42003000, 0x00000002, 0x0201f800, 0x0010a446, | ||
8489 | 0x59a80805, 0x84040d44, 0x48075005, 0x42028000, | ||
8490 | 0x0000002a, 0x4d3c0000, 0x42027800, 0x00000204, | ||
8491 | 0x0201f800, 0x00101fe5, 0x5c027800, 0x42000000, | ||
8492 | 0x0010b864, 0x0201f800, 0x0010aa47, 0x0201f800, | ||
8493 | 0x00101e45, 0x4200b000, 0x00000010, 0x42028800, | ||
8494 | 0x000007f0, 0x4d2c0000, 0x83440580, 0x000007fe, | ||
8495 | 0x04000003, 0x0201f800, 0x001045fb, 0x81468800, | ||
8496 | 0x8058b040, 0x040207f9, 0x5c025800, 0x59cc0408, | ||
8497 | 0x8c00051e, 0x04000004, 0x59a80026, 0x84000512, | ||
8498 | 0x48035026, 0x5c028800, 0x5c026800, 0x0201f800, | ||
8499 | 0x0010462a, 0x4a026802, 0x00fffffe, 0x59a80826, | ||
8500 | 0x84040d50, 0x59cc0013, 0x8c00053e, 0x04000003, | ||
8501 | 0x8c000536, 0x04000004, 0x59cc0017, 0x8c000536, | ||
8502 | 0x04020002, 0x84040d10, 0x48075026, 0x59cc0800, | ||
8503 | 0x82040d00, 0x00ffffff, 0x48075010, 0x80040110, | ||
8504 | 0x4803501d, 0x48038881, 0x0201f800, 0x0010513b, | ||
8505 | 0x04000007, 0x59cc0009, 0x48035035, 0x59cc000a, | ||
8506 | 0x48035036, 0x0201f800, 0x001092e5, 0x5c00b000, | ||
8507 | 0x5c028000, 0x1c01f000, 0x4933c857, 0x4c580000, | ||
8508 | 0x59a80010, 0x82000500, 0x00ffff00, 0x04000022, | ||
8509 | 0x59cc1000, 0x82081500, 0x00ffff00, 0x80080580, | ||
8510 | 0x04000004, 0x42000000, 0x0010b83b, 0x0401f016, | ||
8511 | 0x83cc1400, 0x0000000b, 0x4200b000, 0x00000002, | ||
8512 | 0x83341c00, 0x00000006, 0x0401f900, 0x04000004, | ||
8513 | 0x42000000, 0x0010b83c, 0x0401f00b, 0x83cc1400, | ||
8514 | 0x0000000d, 0x4200b000, 0x00000002, 0x83341c00, | ||
8515 | 0x00000008, 0x0401f8f5, 0x04000007, 0x42000000, | ||
8516 | 0x0010b83d, 0x0201f800, 0x0010aa47, 0x82000540, | ||
8517 | 0x00000001, 0x5c00b000, 0x1c01f000, 0x4933c857, | ||
8518 | 0x59cc0206, 0x82000580, 0x00000014, 0x04020016, | ||
8519 | 0x59cc0407, 0x82000580, 0x00000800, 0x04020012, | ||
8520 | 0x59cc0207, 0x8c00051a, 0x0400000d, 0x82000500, | ||
8521 | 0x00000f00, 0x82000580, 0x00000100, 0x04020008, | ||
8522 | 0x59cc020a, 0x8c000508, 0x04020003, 0x8c00050a, | ||
8523 | 0x04000003, 0x80000580, 0x1c01f000, 0x82000540, | ||
8524 | 0x00000001, 0x1c01f000, 0x4933c857, 0x4943c857, | ||
8525 | 0x493fc857, 0x4c5c0000, 0x4d300000, 0x4d340000, | ||
8526 | 0x4d2c0000, 0x4d380000, 0x4130b800, 0x42026000, | ||
8527 | 0x0010d1c0, 0x59a8000e, 0x81640480, 0x040210bd, | ||
8528 | 0x8d3e7d12, 0x04000004, 0x405c0000, 0x81300580, | ||
8529 | 0x040000b3, 0x59300406, 0x82000c80, 0x00000012, | ||
8530 | 0x04021015, 0x59326809, 0x0c01f001, 0x0010854f, | ||
8531 | 0x001084bc, 0x001084d3, 0x001084de, 0x001084b7, | ||
8532 | 0x001084ce, 0x00108507, 0x0010854f, 0x001084b5, | ||
8533 | 0x0010851b, 0x0010852a, 0x001084b5, 0x001084b5, | ||
8534 | 0x001084b5, 0x001084b5, 0x0010854f, 0x00108540, | ||
8535 | 0x00108538, 0x0201f800, 0x001005d8, 0x8d3e7d18, | ||
8536 | 0x04000004, 0x59300420, 0x8c000500, 0x04020094, | ||
8537 | 0x59300403, 0x82000580, 0x00000043, 0x04000090, | ||
8538 | 0x0201f800, 0x00109134, 0x02000800, 0x00102074, | ||
8539 | 0x0201f800, 0x0010914e, 0x02000800, 0x0010801c, | ||
8540 | 0x8d3e7d06, 0x04000084, 0x0201f800, 0x001092d7, | ||
8541 | 0x04000083, 0x0401f080, 0x8d3e7d16, 0x04000004, | ||
8542 | 0x59300420, 0x8c000500, 0x0402007d, 0x59325808, | ||
8543 | 0x0201f800, 0x00109037, 0x04000077, 0x49425a06, | ||
8544 | 0x497a5c09, 0x0201f800, 0x000202da, 0x0201f800, | ||
8545 | 0x0010912a, 0x0401f070, 0x813669c0, 0x02000800, | ||
8546 | 0x001005d8, 0x8d3e7d06, 0x04000004, 0x59340200, | ||
8547 | 0x8c00050e, 0x0402006a, 0x59300004, 0x8400055c, | ||
8548 | 0x48026004, 0x59300203, 0x82000580, 0x00000004, | ||
8549 | 0x02000800, 0x00100e99, 0x59325808, 0x0201f800, | ||
8550 | 0x00109037, 0x0400005c, 0x4a025a04, 0x00000103, | ||
8551 | 0x59300402, 0x48025c06, 0x592c0408, 0x8c000512, | ||
8552 | 0x04000006, 0x4d2c0000, 0x592e5809, 0x0201f800, | ||
8553 | 0x001007fd, 0x5c025800, 0x49425a06, 0x497a5c09, | ||
8554 | 0x0201f800, 0x0010959c, 0x0201f800, 0x000202da, | ||
8555 | 0x0201f800, 0x0010912a, 0x0401f047, 0x8c000518, | ||
8556 | 0x04000047, 0x59300203, 0x82000580, 0x00000004, | ||
8557 | 0x02000800, 0x00100e99, 0x59325808, 0x0201f800, | ||
8558 | 0x00109037, 0x0400003c, 0x49425a06, 0x497a5c09, | ||
8559 | 0x0201f800, 0x0010a693, 0x0201f800, 0x0010959c, | ||
8560 | 0x0201f800, 0x000202da, 0x0401f033, 0x0201f800, | ||
8561 | 0x001062d5, 0x04000032, 0x59300203, 0x82000580, | ||
8562 | 0x00000004, 0x04020004, 0x0201f800, 0x00100e99, | ||
8563 | 0x0401f02b, 0x42027000, 0x00000047, 0x0201f800, | ||
8564 | 0x000207a1, 0x0401f026, 0x59300203, 0x82000580, | ||
8565 | 0x00000004, 0x02000800, 0x00100e99, 0x59325808, | ||
8566 | 0x0201f800, 0x00109037, 0x0400001b, 0x49425a06, | ||
8567 | 0x497a5c09, 0x0201f800, 0x000202da, 0x0401f016, | ||
8568 | 0x833c0500, 0x00001800, 0x04000015, 0x8d3e7d16, | ||
8569 | 0x04020013, 0x59325817, 0x0201f800, 0x001007fd, | ||
8570 | 0x59300203, 0x82000580, 0x00000004, 0x02000800, | ||
8571 | 0x00100e99, 0x59325808, 0x0201f800, 0x00109037, | ||
8572 | 0x04000005, 0x49425a06, 0x497a5c09, 0x0201f800, | ||
8573 | 0x000202da, 0x0201f800, 0x00107911, 0x83326400, | ||
8574 | 0x00000024, 0x41580000, 0x81300480, 0x04001742, | ||
8575 | 0x5c027000, 0x5c025800, 0x5c026800, 0x5c026000, | ||
8576 | 0x5c00b800, 0x1c01f000, 0x5c000000, 0x4c000000, | ||
8577 | 0x4803c857, 0x480bc857, 0x480fc857, 0x485bc857, | ||
8578 | 0x50080800, 0x500c0000, 0x80042580, 0x04020007, | ||
8579 | 0x80081000, 0x800c1800, 0x8058b040, 0x040207f9, | ||
8580 | 0x80000580, 0x1c01f000, 0x4803c857, 0x4807c857, | ||
8581 | 0x480bc857, 0x480fc857, 0x80040480, 0x04001006, | ||
8582 | 0x42000000, 0x00000001, 0x82040d40, 0x00000001, | ||
8583 | 0x1c01f000, 0x41780000, 0x0401f7fc, 0x83380480, | ||
8584 | 0x00000053, 0x02021800, 0x001005d8, 0x83380480, | ||
8585 | 0x0000004b, 0x02001800, 0x001005d8, 0x0c01f001, | ||
8586 | 0x0010858a, 0x0010858a, 0x0010858a, 0x0010858a, | ||
8587 | 0x00108588, 0x00108588, 0x00108588, 0x0010858a, | ||
8588 | 0x0201f800, 0x001005d8, 0x493bc857, 0x4a026203, | ||
8589 | 0x0000000d, 0x493a6403, 0x42000800, 0x80000000, | ||
8590 | 0x0201f000, 0x00020721, 0x83380580, 0x00000013, | ||
8591 | 0x04020008, 0x59300403, 0x82000580, 0x00000050, | ||
8592 | 0x02020800, 0x001005d8, 0x0201f000, 0x0002077d, | ||
8593 | 0x4933c857, 0x83380580, 0x00000027, 0x04020030, | ||
8594 | 0x4933c857, 0x0201f800, 0x00106bbf, 0x4d3c0000, | ||
8595 | 0x417a7800, 0x0201f800, 0x0010203c, 0x5c027800, | ||
8596 | 0x42000000, 0x0010b864, 0x0201f800, 0x0010aa47, | ||
8597 | 0x4d2c0000, 0x59325808, 0x0201f800, 0x00109037, | ||
8598 | 0x492fc857, 0x0400000d, 0x4a025a04, 0x00000103, | ||
8599 | 0x59300c02, 0x48065c06, 0x4a025a06, 0x00000029, | ||
8600 | 0x497a5c09, 0x592c0c08, 0x84040d50, 0x48065c08, | ||
8601 | 0x0201f800, 0x000202da, 0x5c025800, 0x42003000, | ||
8602 | 0x00000015, 0x41782800, 0x42002000, 0x00000003, | ||
8603 | 0x4d400000, 0x4d440000, 0x59368c03, 0x42028000, | ||
8604 | 0x00000029, 0x0201f800, 0x0010985e, 0x5c028800, | ||
8605 | 0x5c028000, 0x0201f000, 0x0002077d, 0x83380580, | ||
8606 | 0x00000014, 0x0402000c, 0x59300403, 0x82000c80, | ||
8607 | 0x00000053, 0x02021800, 0x001005d8, 0x82000480, | ||
8608 | 0x00000040, 0x02001800, 0x001005d8, 0x4803c857, | ||
8609 | 0x0c01f00e, 0x83380580, 0x00000053, 0x0400000a, | ||
8610 | 0x83380580, 0x00000048, 0x02020800, 0x001005d8, | ||
8611 | 0x59300403, 0x82000580, 0x00000050, 0x02020800, | ||
8612 | 0x001005d8, 0x1c01f000, 0x001085ff, 0x001085fd, | ||
8613 | 0x001085fd, 0x001085fd, 0x001085fd, 0x001085fd, | ||
8614 | 0x001085fd, 0x001085fd, 0x001085fd, 0x001085fd, | ||
8615 | 0x001085fd, 0x00108616, 0x00108616, 0x00108616, | ||
8616 | 0x00108616, 0x001085fd, 0x00108616, 0x001085fd, | ||
8617 | 0x00108616, 0x0201f800, 0x001005d8, 0x4933c857, | ||
8618 | 0x0201f800, 0x00106bbf, 0x0201f800, 0x00109037, | ||
8619 | 0x02000000, 0x0002077d, 0x4d2c0000, 0x59325808, | ||
8620 | 0x4a025a04, 0x00000103, 0x59300402, 0x48025c06, | ||
8621 | 0x4a025a06, 0x00000006, 0x497a5c09, 0x0201f800, | ||
8622 | 0x000202da, 0x5c025800, 0x0201f800, 0x0010912a, | ||
8623 | 0x0201f000, 0x0002077d, 0x4933c857, 0x0201f800, | ||
8624 | 0x00106bbf, 0x0201f000, 0x0002077d, 0x0201f800, | ||
8625 | 0x001005d8, 0x5930001c, 0x800001c0, 0x02020800, | ||
8626 | 0x0010984e, 0x59300004, 0x8c00053e, 0x04020029, | ||
8627 | 0x59325808, 0x592c0c08, 0x59cc2a08, 0x82141d00, | ||
8628 | 0x00000c00, 0x04000002, 0x59cc1809, 0x84040d58, | ||
8629 | 0x48065c08, 0x82143500, 0x00000fff, 0x04020027, | ||
8630 | 0x59340200, 0x8c00050e, 0x04020080, 0x0201f800, | ||
8631 | 0x0002082b, 0x04020006, 0x4a025a06, 0x00000000, | ||
8632 | 0x59300811, 0x800409c0, 0x0402094b, 0x4a025a04, | ||
8633 | 0x00000103, 0x48065807, 0x480e580a, 0x48165c09, | ||
8634 | 0x59300c02, 0x48065c06, 0x0201f800, 0x000202c1, | ||
8635 | 0x0201f800, 0x001049b2, 0x59cc0208, 0x8c000518, | ||
8636 | 0x02020000, 0x001091d1, 0x0201f000, 0x0002077d, | ||
8637 | 0x0201f800, 0x00106f60, 0x040007d6, 0x4d3c0000, | ||
8638 | 0x42027800, 0x00000002, 0x0201f800, 0x00108be3, | ||
8639 | 0x5c027800, 0x0401f7cf, 0x4817c857, 0x480fc857, | ||
8640 | 0x82180500, 0x000000ff, 0x0400000e, 0x592c0204, | ||
8641 | 0x82000500, 0x000000ff, 0x82000580, 0x00000048, | ||
8642 | 0x04020008, 0x592c0407, 0x800001c0, 0x04000005, | ||
8643 | 0x0201f800, 0x0010973f, 0x0201f000, 0x00109787, | ||
8644 | 0x82180d00, 0x00000c00, 0x04000004, 0x59340200, | ||
8645 | 0x8c00050e, 0x04020032, 0x4a025a06, 0x00000000, | ||
8646 | 0x41782000, 0x8c183510, 0x04000007, 0x59cc000c, | ||
8647 | 0x82000500, 0x000000ff, 0x04000002, 0x4803c857, | ||
8648 | 0x59cc200b, 0x4812580c, 0x41780000, 0x8c183512, | ||
8649 | 0x04000002, 0x59cc000a, 0x4802580b, 0x80100c00, | ||
8650 | 0x040007b8, 0x82041480, 0x0000001d, 0x04001006, | ||
8651 | 0x592c0404, 0x8c00051e, 0x0400000e, 0x42000800, | ||
8652 | 0x0000001c, 0x4c500000, 0x4c540000, 0x83cca400, | ||
8653 | 0x0000000c, 0x832cac00, 0x0000000d, 0x0201f800, | ||
8654 | 0x00108b9f, 0x5c00a800, 0x5c00a000, 0x0401f7a5, | ||
8655 | 0x59300011, 0x59301402, 0x480a5c06, 0x48025807, | ||
8656 | 0x480e580a, 0x48165c09, 0x0201f800, 0x00108b48, | ||
8657 | 0x0201f800, 0x00108b84, 0x0401f7a6, 0x592c020a, | ||
8658 | 0x8c000502, 0x040007cd, 0x592c0208, 0x8c00050e, | ||
8659 | 0x040207ca, 0x59300011, 0x800c0d80, 0x040007c7, | ||
8660 | 0x4803c857, 0x480fc857, 0x8c183514, 0x02000000, | ||
8661 | 0x0010920f, 0x80000540, 0x040007c0, 0x4807c856, | ||
8662 | 0x0201f000, 0x0010920f, 0x592c020a, 0x8c000502, | ||
8663 | 0x04000782, 0x59300011, 0x800001c0, 0x0400077f, | ||
8664 | 0x592c0208, 0x8c00050e, 0x0402077c, 0x0201f000, | ||
8665 | 0x0010920f, 0x59cc2006, 0x59cc2807, 0x0401f035, | ||
8666 | 0x0401f034, 0x1c01f000, 0x4933c857, 0x5930001c, | ||
8667 | 0x800001c0, 0x02020800, 0x0010984e, 0x59325808, | ||
8668 | 0x592c0c08, 0x41782800, 0x41781800, 0x84040d58, | ||
8669 | 0x48065c08, 0x41783000, 0x59340200, 0x8c00050e, | ||
8670 | 0x04020018, 0x0201f800, 0x0002082b, 0x04020007, | ||
8671 | 0x4a025a06, 0x00000000, 0x59300811, 0x4807c857, | ||
8672 | 0x800409c0, 0x040208ac, 0x4a025a04, 0x00000103, | ||
8673 | 0x48065807, 0x480e580a, 0x48165c09, 0x4933c857, | ||
8674 | 0x59300c02, 0x48065c06, 0x0201f800, 0x000202c1, | ||
8675 | 0x0201f800, 0x001049b2, 0x0201f000, 0x0002077d, | ||
8676 | 0x592c020a, 0x8c000502, 0x040007ea, 0x59300011, | ||
8677 | 0x4803c857, 0x800001c0, 0x040007e6, 0x592c0208, | ||
8678 | 0x8c00050e, 0x040207e3, 0x0201f000, 0x0010920f, | ||
8679 | 0x5930001c, 0x800001c0, 0x4c100000, 0x4c140000, | ||
8680 | 0x02020800, 0x0010984e, 0x5c002800, 0x5c002000, | ||
8681 | 0x4a026203, 0x00000002, 0x4a026403, 0x00000043, | ||
8682 | 0x59325808, 0x592c020a, 0x8c000502, 0x04020018, | ||
8683 | 0x40100000, 0x592c080f, 0x80040c80, 0x40140000, | ||
8684 | 0x80040480, 0x04001014, 0x48126013, 0x48166011, | ||
8685 | 0x59300004, 0x8c00053e, 0x04020008, 0x497a6205, | ||
8686 | 0x0201f800, 0x00100f93, 0x04020009, 0x59300804, | ||
8687 | 0x0201f000, 0x00106721, 0x0201f800, 0x00106f60, | ||
8688 | 0x040007f7, 0x0201f000, 0x00107974, 0x4933c857, | ||
8689 | 0x1c01f000, 0x4807c857, 0x40042800, 0x0401f7eb, | ||
8690 | 0x83380480, 0x00000058, 0x04021005, 0x83380480, | ||
8691 | 0x00000040, 0x04001002, 0x0c01f002, 0x1c01f000, | ||
8692 | 0x00108740, 0x00108740, 0x00108740, 0x00108740, | ||
8693 | 0x00108740, 0x00108740, 0x00108740, 0x00108740, | ||
8694 | 0x00108740, 0x00108740, 0x00108742, 0x00108740, | ||
8695 | 0x00108740, 0x00108740, 0x00108740, 0x0010874f, | ||
8696 | 0x00108740, 0x00108740, 0x00108740, 0x00108740, | ||
8697 | 0x0010877d, 0x00108740, 0x00108740, 0x00108740, | ||
8698 | 0x0201f800, 0x001005d8, 0x4933c857, 0x0201f800, | ||
8699 | 0x00106dc3, 0x4a026203, 0x00000002, 0x59a80039, | ||
8700 | 0x48026205, 0x59300011, 0x59300815, 0x80040c80, | ||
8701 | 0x48066015, 0x0201f000, 0x00106b8a, 0x4933c857, | ||
8702 | 0x0201f800, 0x00106b8a, 0x4d3c0000, 0x417a7800, | ||
8703 | 0x0201f800, 0x0010203c, 0x5c027800, 0x42000000, | ||
8704 | 0x0010b864, 0x0201f800, 0x0010aa47, 0x0201f800, | ||
8705 | 0x00109037, 0x04000010, 0x4d2c0000, 0x59325808, | ||
8706 | 0x4a025a04, 0x00000103, 0x59300402, 0x48025c06, | ||
8707 | 0x4a025a06, 0x00000029, 0x497a5c09, 0x592c0c08, | ||
8708 | 0x84040d50, 0x48065c08, 0x0201f800, 0x000202da, | ||
8709 | 0x5c025800, 0x42003000, 0x00000014, 0x41782800, | ||
8710 | 0x4d400000, 0x4d440000, 0x59368c03, 0x42002000, | ||
8711 | 0x00000002, 0x42028000, 0x00000029, 0x0201f800, | ||
8712 | 0x0010985e, 0x5c028800, 0x5c028000, 0x0201f000, | ||
8713 | 0x0002077d, 0x4933c857, 0x59300808, 0x49780c09, | ||
8714 | 0x4978080a, 0x58041408, 0x84081558, 0x48080c08, | ||
8715 | 0x1c01f000, 0x4807c857, 0x8c040d3e, 0x04020023, | ||
8716 | 0x497a5a06, 0x5930001f, 0x80000540, 0x04000017, | ||
8717 | 0x497a5a06, 0x4c040000, 0x4c080000, 0x4c0c0000, | ||
8718 | 0x4c100000, 0x4c140000, 0x58f41003, 0x40040000, | ||
8719 | 0x80081480, 0x5930001f, 0x4809e803, 0x0201f800, | ||
8720 | 0x00100d56, 0x5c002800, 0x5c002000, 0x5c001800, | ||
8721 | 0x5c001000, 0x5c000800, 0x592c0206, 0x80000540, | ||
8722 | 0x04020009, 0x0401f005, 0x592c0408, 0x8c00051c, | ||
8723 | 0x04000002, 0x592c0803, 0x4807c857, 0x4a025a06, | ||
8724 | 0x00000015, 0x1c01f000, 0x5930001f, 0x80000540, | ||
8725 | 0x04000009, 0x4a025a06, 0x00000011, 0x5930001f, | ||
8726 | 0x4c040000, 0x0201f800, 0x00100d56, 0x5c000800, | ||
8727 | 0x0401f7f5, 0x4807c856, 0x4a025a06, 0x00000007, | ||
8728 | 0x1c01f000, 0x83380480, 0x00000058, 0x04021007, | ||
8729 | 0x83380480, 0x00000040, 0x04001004, 0x4d2c0000, | ||
8730 | 0x0c01f803, 0x5c025800, 0x1c01f000, 0x001087db, | ||
8731 | 0x001087db, 0x001087db, 0x001087db, 0x001087db, | ||
8732 | 0x001087dd, 0x001087db, 0x001087db, 0x00108860, | ||
8733 | 0x001087db, 0x001087db, 0x001087db, 0x001087db, | ||
8734 | 0x001087db, 0x001087db, 0x001087db, 0x001087db, | ||
8735 | 0x001087db, 0x001087db, 0x00108910, 0x00108939, | ||
8736 | 0x00108918, 0x001087db, 0x00108945, 0x0201f800, | ||
8737 | 0x001005d8, 0x5930001c, 0x800001c0, 0x02020800, | ||
8738 | 0x0010984e, 0x59300007, 0x8c00050e, 0x0400007c, | ||
8739 | 0x8c000500, 0x0400006e, 0x8c00051c, 0x04000009, | ||
8740 | 0x84000500, 0x48026007, 0x59325808, 0x592c3c08, | ||
8741 | 0x841c3d58, 0x481e5c08, 0x0201f000, 0x000207dd, | ||
8742 | 0x59325808, 0x592c3c08, 0x841c3d58, 0x59300007, | ||
8743 | 0x8c00051c, 0x040207f3, 0x481e5c08, 0x42000000, | ||
8744 | 0x00000005, 0x40000000, 0x80000040, 0x040207fe, | ||
8745 | 0x59300007, 0x8c00051c, 0x040207ea, 0x59cc0a08, | ||
8746 | 0x592c0204, 0x82000500, 0x000000ff, 0x82000580, | ||
8747 | 0x00000048, 0x0402000c, 0x497a580b, 0x82040500, | ||
8748 | 0x000000ff, 0x04000008, 0x592c0407, 0x800001c0, | ||
8749 | 0x04000005, 0x0201f800, 0x0010973f, 0x0201f000, | ||
8750 | 0x00100e56, 0x48065c09, 0x41782000, 0x82040500, | ||
8751 | 0x00000c00, 0x04000002, 0x59cc2009, 0x82043500, | ||
8752 | 0x00000fff, 0x04020027, 0x481e5c08, 0x4a025a06, | ||
8753 | 0x00000000, 0x801831c0, 0x02000000, 0x00100e56, | ||
8754 | 0x41782000, 0x8c183510, 0x04000002, 0x59cc200b, | ||
8755 | 0x4812580c, 0x41780000, 0x8c183512, 0x04000002, | ||
8756 | 0x59cc000a, 0x4802580b, 0x80100c00, 0x02001800, | ||
8757 | 0x001005d8, 0x02000000, 0x00100e56, 0x82041480, | ||
8758 | 0x0000001d, 0x0402100c, 0x4c500000, 0x4c540000, | ||
8759 | 0x83cca400, 0x0000000c, 0x832cac00, 0x0000000d, | ||
8760 | 0x0401fb67, 0x5c00a800, 0x5c00a000, 0x0201f000, | ||
8761 | 0x00100e56, 0x0401fb0b, 0x0201f000, 0x00100e56, | ||
8762 | 0x412c7800, 0x0201f800, 0x001007e4, 0x02000800, | ||
8763 | 0x001005d8, 0x492c7809, 0x841c3d52, 0x481c7c08, | ||
8764 | 0x4a025a04, 0x00000103, 0x4812580a, 0x48065c09, | ||
8765 | 0x583c0404, 0x583c1005, 0x583c2208, 0x48025c04, | ||
8766 | 0x480a5805, 0x48125a08, 0x0401f7c8, 0x8c000524, | ||
8767 | 0x04000794, 0x59325808, 0x4c000000, 0x592c0408, | ||
8768 | 0x8c00051c, 0x5c000000, 0x04020003, 0x4a026011, | ||
8769 | 0xffffffff, 0x84000524, 0x0401f78a, 0x1c01f000, | ||
8770 | 0x59a80039, 0x48026205, 0x59325808, 0x4a026203, | ||
8771 | 0x00000002, 0x592c2408, 0x59300807, 0x4933c857, | ||
8772 | 0x4807c857, 0x592c0204, 0x82000500, 0x000000ff, | ||
8773 | 0x82000580, 0x00000048, 0x04020004, 0x8c102500, | ||
8774 | 0x02020000, 0x00109787, 0x4a025a06, 0x00000000, | ||
8775 | 0x8c040d1e, 0x04000027, 0x41780800, 0x497a5c09, | ||
8776 | 0x592c1c09, 0x59300011, 0x59341200, 0x497a6205, | ||
8777 | 0x8c08150e, 0x0402006e, 0x4807c857, 0x4806580a, | ||
8778 | 0x80000d40, 0x04020f04, 0x59300402, 0x48025c06, | ||
8779 | 0x48065807, 0x4a025a04, 0x00000103, 0x4c040000, | ||
8780 | 0x4c0c0000, 0x4c100000, 0x0201f800, 0x0010959c, | ||
8781 | 0x5c002000, 0x5c001800, 0x5c000800, 0x8c102512, | ||
8782 | 0x0402001a, 0x4c0c0000, 0x0201f800, 0x000202c1, | ||
8783 | 0x0201f800, 0x001049b2, 0x5c001800, 0x8c0c1d18, | ||
8784 | 0x02000000, 0x0002077d, 0x0201f000, 0x001091d1, | ||
8785 | 0x4813c857, 0x8c102518, 0x0400004b, 0x41780800, | ||
8786 | 0x592c1c09, 0x820c0580, 0x00001000, 0x040007d6, | ||
8787 | 0x8c102512, 0x040007d4, 0x592c7809, 0x583c080a, | ||
8788 | 0x583c1c09, 0x0401f7d0, 0x4807c857, 0x592c7809, | ||
8789 | 0x59300402, 0x592c1404, 0x8c08151e, 0x0402000d, | ||
8790 | 0x592c1206, 0x48007c06, 0x48047807, 0x48087a06, | ||
8791 | 0x84102512, 0x48107c08, 0x4c0c0000, 0x0201f800, | ||
8792 | 0x001007fd, 0x403e5800, 0x0401faca, 0x0401f7d9, | ||
8793 | 0x48025c06, 0x48065807, 0x583c080c, 0x583c000b, | ||
8794 | 0x80040c00, 0x82041480, 0x0000001d, 0x04001006, | ||
8795 | 0x583c1001, 0x480a5801, 0x49787801, 0x42000800, | ||
8796 | 0x0000001c, 0x82040c00, 0x00000014, 0x4c0c0000, | ||
8797 | 0x4c500000, 0x4c540000, 0x823ca400, 0x00000008, | ||
8798 | 0x832cac00, 0x00000008, 0x4c100000, 0x4c3c0000, | ||
8799 | 0x0401facb, 0x5c007800, 0x5c002000, 0x5c00a800, | ||
8800 | 0x5c00a000, 0x84102512, 0x48125c08, 0x403e5800, | ||
8801 | 0x0201f800, 0x001007fd, 0x42034000, 0x0010b4a4, | ||
8802 | 0x59a1d81e, 0x80edd9c0, 0x02000800, 0x001005d8, | ||
8803 | 0x48efc857, 0x58ec0009, 0x4803c857, 0x0801f800, | ||
8804 | 0x0401f7ac, 0x4933c857, 0x1c01f000, 0x59301414, | ||
8805 | 0x480bc857, 0x8c08151c, 0x0402000e, 0x80000540, | ||
8806 | 0x4803c857, 0x0400078d, 0x80042c80, 0x0402178b, | ||
8807 | 0x8c081514, 0x04020005, 0x592c080f, 0x4807c857, | ||
8808 | 0x80040480, 0x48026016, 0x8408155c, 0x480a6414, | ||
8809 | 0x59301007, 0x8408151e, 0x480a6007, 0x4a025c09, | ||
8810 | 0x00000001, 0x0201f800, 0x0010959c, 0x497a5c09, | ||
8811 | 0x8c102512, 0x04000006, 0x4d2c0000, 0x403e5800, | ||
8812 | 0x0201f800, 0x001007fd, 0x5c025800, 0x82102500, | ||
8813 | 0xffffedff, 0x48125c08, 0x0201f000, 0x0010920f, | ||
8814 | 0x59325808, 0x592c0408, 0x8c000518, 0x04000004, | ||
8815 | 0x412df800, 0x0201f000, 0x00100e6f, 0x1c01f000, | ||
8816 | 0x4933c857, 0x59325808, 0x497a5c09, 0x4a025a06, | ||
8817 | 0x00000000, 0x4a025a04, 0x00000103, 0x59300811, | ||
8818 | 0x4807c857, 0x800409c0, 0x0402000a, 0x48065807, | ||
8819 | 0x59300c02, 0x48065c06, 0x0201f800, 0x000202c1, | ||
8820 | 0x0201f800, 0x001049b2, 0x0201f000, 0x0002077d, | ||
8821 | 0x59340200, 0x8c00050e, 0x04020005, 0x59300811, | ||
8822 | 0x0401fe55, 0x48065807, 0x0401f7f2, 0x592c0208, | ||
8823 | 0x8c00050e, 0x040207fa, 0x4933c857, 0x0201f000, | ||
8824 | 0x0010920f, 0x4933c857, 0x59325808, 0x812e59c0, | ||
8825 | 0x02000800, 0x001005d8, 0x592c020a, 0x8c000502, | ||
8826 | 0x02000800, 0x001005d8, 0x4a026206, 0x00000002, | ||
8827 | 0x1c01f000, 0x5930001c, 0x800001c0, 0x02020800, | ||
8828 | 0x0010984e, 0x59300007, 0x4933c857, 0x4803c857, | ||
8829 | 0x8c00050e, 0x04000037, 0x8c000500, 0x04000029, | ||
8830 | 0x8c00051c, 0x0400000a, 0x84000500, 0x48026007, | ||
8831 | 0x59325808, 0x592c3c08, 0x481fc857, 0x841c3d58, | ||
8832 | 0x481e5c08, 0x0201f000, 0x000207dd, 0x59325808, | ||
8833 | 0x592c3c08, 0x841c3d58, 0x59300007, 0x8c00051c, | ||
8834 | 0x040207f2, 0x481e5c08, 0x42000000, 0x00000005, | ||
8835 | 0x40000000, 0x80000040, 0x040207fe, 0x59300007, | ||
8836 | 0x8c00051c, 0x040207e9, 0x592c0204, 0x82000500, | ||
8837 | 0x000000ff, 0x82000580, 0x00000048, 0x04020003, | ||
8838 | 0x497a580b, 0x0401f002, 0x497a5c09, 0x481e5c08, | ||
8839 | 0x4a025a06, 0x00000000, 0x0201f000, 0x00100e56, | ||
8840 | 0x8c000524, 0x040007d9, 0x59325808, 0x4c000000, | ||
8841 | 0x592c0408, 0x8c00051c, 0x5c000000, 0x04020003, | ||
8842 | 0x4a026011, 0xffffffff, 0x84000524, 0x0401f7cf, | ||
8843 | 0x1c01f000, 0x4933c857, 0x41780800, 0x83380480, | ||
8844 | 0x00000058, 0x0402100b, 0x83380480, 0x00000040, | ||
8845 | 0x04001008, 0x4d2c0000, 0x59325808, 0x812e59c0, | ||
8846 | 0x0c020806, 0x5c025800, 0x0201f000, 0x0002077d, | ||
8847 | 0x493bc857, 0x1c01f000, 0x001089ae, 0x001089ae, | ||
8848 | 0x001089ae, 0x001089ae, 0x001089ae, 0x001089b0, | ||
8849 | 0x001089ae, 0x001089ae, 0x001089ae, 0x001089ae, | ||
8850 | 0x001089ae, 0x001089ae, 0x001089ae, 0x001089ae, | ||
8851 | 0x001089ae, 0x001089ae, 0x001089ae, 0x001089ae, | ||
8852 | 0x001089ae, 0x001089ae, 0x001089b5, 0x001089ae, | ||
8853 | 0x001089ae, 0x001089ae, 0x0201f800, 0x001005d8, | ||
8854 | 0x59cc0a08, 0x497a5807, 0x4807c857, 0x82040d00, | ||
8855 | 0x00000fff, 0x59300402, 0x48025c06, 0x4a025a04, | ||
8856 | 0x00000103, 0x48065c09, 0x4a025a06, 0x00000000, | ||
8857 | 0x800409c0, 0x02000000, 0x000202c1, 0x59cc0009, | ||
8858 | 0x4802580a, 0x82042500, 0x00000100, 0x04000002, | ||
8859 | 0x59cc200b, 0x4812580c, 0x82040500, 0x00000200, | ||
8860 | 0x04000002, 0x59cc000a, 0x4802580b, 0x80100c00, | ||
8861 | 0x02001800, 0x001005d8, 0x02000000, 0x000202da, | ||
8862 | 0x82041480, 0x0000001d, 0x04001006, 0x592c0404, | ||
8863 | 0x8c00051e, 0x0400000e, 0x42000800, 0x0000001c, | ||
8864 | 0x4c500000, 0x4c540000, 0x83cca400, 0x0000000c, | ||
8865 | 0x832cac00, 0x0000000d, 0x0401f9c1, 0x5c00a800, | ||
8866 | 0x5c00a000, 0x0201f000, 0x000202da, 0x0401f965, | ||
8867 | 0x0401f1a0, 0x83380480, 0x00000093, 0x02021800, | ||
8868 | 0x001005d8, 0x83380480, 0x00000085, 0x02001800, | ||
8869 | 0x001005d8, 0x0c01f001, 0x001089fd, 0x001089fb, | ||
8870 | 0x001089fb, 0x00108a04, 0x001089fb, 0x001089fb, | ||
8871 | 0x001089fb, 0x001089fb, 0x001089fb, 0x001089fb, | ||
8872 | 0x001089fb, 0x001089fb, 0x001089fb, 0x0201f800, | ||
8873 | 0x001005d8, 0x4a026203, 0x00000001, 0x493a6403, | ||
8874 | 0x42000800, 0x80000040, 0x0201f000, 0x00020721, | ||
8875 | 0x4933c857, 0x59cc1204, 0x480a601c, 0x59cc1404, | ||
8876 | 0x0201f800, 0x00109410, 0x0400001b, 0x591c0203, | ||
8877 | 0x82000580, 0x00000000, 0x04000017, 0x591c0009, | ||
8878 | 0x81340580, 0x04020014, 0x4d300000, 0x4d1c0000, | ||
8879 | 0x411e6000, 0x0401f9c2, 0x5c023800, 0x5c026000, | ||
8880 | 0x0400000b, 0x59cc0005, 0x8c000500, 0x04020003, | ||
8881 | 0x0401f98c, 0x0401f003, 0x4a023a03, 0x00000002, | ||
8882 | 0x4a026403, 0x00000086, 0x0401f005, 0x0401f9a6, | ||
8883 | 0x040007f5, 0x4a026403, 0x00000087, 0x4a026203, | ||
8884 | 0x00000001, 0x42000800, 0x80000040, 0x0201f800, | ||
8885 | 0x00020721, 0x59340200, 0x8c00050e, 0x0400000d, | ||
8886 | 0x59cc1404, 0x0201f800, 0x00109410, 0x04000009, | ||
8887 | 0x591c0414, 0x8c00051a, 0x04000006, 0x4d300000, | ||
8888 | 0x411e6000, 0x0201f800, 0x0010921e, 0x5c026000, | ||
8889 | 0x1c01f000, 0x83380580, 0x00000013, 0x0402000a, | ||
8890 | 0x59300403, 0x82000d80, 0x00000086, 0x04000012, | ||
8891 | 0x82000d80, 0x00000087, 0x02020800, 0x001005d8, | ||
8892 | 0x0401f00d, 0x83380580, 0x00000027, 0x04000005, | ||
8893 | 0x83380580, 0x00000014, 0x02020800, 0x001005d8, | ||
8894 | 0x493bc857, 0x0201f800, 0x00106bbf, 0x0201f000, | ||
8895 | 0x00107911, 0x4933c857, 0x0201f000, 0x00107911, | ||
8896 | 0x83380580, 0x00000013, 0x04020005, 0x59300403, | ||
8897 | 0x82000480, 0x00000085, 0x0c01f04d, 0x83380580, | ||
8898 | 0x00000027, 0x04020041, 0x4933c857, 0x0201f800, | ||
8899 | 0x00106bbf, 0x4d3c0000, 0x417a7800, 0x0201f800, | ||
8900 | 0x0010203c, 0x5c027800, 0x42003000, 0x00000015, | ||
8901 | 0x41782800, 0x42002000, 0x00000003, 0x42028000, | ||
8902 | 0x00000029, 0x4d400000, 0x4d440000, 0x59368c03, | ||
8903 | 0x0201f800, 0x0010985e, 0x5c028800, 0x5c028000, | ||
8904 | 0x42000000, 0x0010b864, 0x0201f800, 0x0010aa47, | ||
8905 | 0x0201f800, 0x00109037, 0x0400000c, 0x4d2c0000, | ||
8906 | 0x59325808, 0x4a025a04, 0x00000103, 0x59300402, | ||
8907 | 0x48025c06, 0x497a5c09, 0x49425a06, 0x0201f800, | ||
8908 | 0x000202da, 0x5c025800, 0x0201f800, 0x0010912a, | ||
8909 | 0x0201f000, 0x0002077d, 0x83380580, 0x00000089, | ||
8910 | 0x04000005, 0x83380580, 0x0000008a, 0x02020000, | ||
8911 | 0x00107974, 0x0201f800, 0x00106f60, 0x02020000, | ||
8912 | 0x00107974, 0x59300a03, 0x82040580, 0x0000000a, | ||
8913 | 0x0400002a, 0x82040580, 0x0000000c, 0x04000027, | ||
8914 | 0x0201f800, 0x001005d8, 0x83380580, 0x00000014, | ||
8915 | 0x040207ea, 0x4933c857, 0x0201f800, 0x00106bbf, | ||
8916 | 0x42028000, 0x00000006, 0x0401f7d2, 0x00108aba, | ||
8917 | 0x00108ab8, 0x00108ab8, 0x00108ab8, 0x00108ab8, | ||
8918 | 0x00108ab8, 0x00108ac0, 0x00108ab8, 0x00108ab8, | ||
8919 | 0x00108ab8, 0x00108ab8, 0x00108ab8, 0x00108ab8, | ||
8920 | 0x0201f800, 0x001005d8, 0x4933c857, 0x59a80037, | ||
8921 | 0x48026206, 0x4a026203, 0x0000000a, 0x1c01f000, | ||
8922 | 0x4933c857, 0x59a80037, 0x48026206, 0x4a026203, | ||
8923 | 0x0000000c, 0x1c01f000, 0x83380580, 0x00000089, | ||
8924 | 0x04000008, 0x83380580, 0x0000008a, 0x04000032, | ||
8925 | 0x4933c857, 0x493bc857, 0x0201f000, 0x00107974, | ||
8926 | 0x4933c857, 0x59325808, 0x59300a1d, 0x82040580, | ||
8927 | 0x00000003, 0x04020004, 0x0201f800, 0x001049b2, | ||
8928 | 0x0401f00c, 0x5930021d, 0x82000580, 0x00000001, | ||
8929 | 0x04020008, 0x59300c16, 0x82040580, 0x00000039, | ||
8930 | 0x0400002c, 0x82040580, 0x00000035, 0x04000029, | ||
8931 | 0x4c340000, 0x41306800, 0x0201f800, 0x0002075a, | ||
8932 | 0x04000010, 0x4a026203, 0x00000001, 0x4a026403, | ||
8933 | 0x0000001e, 0x59cc0c07, 0x48066419, 0x59cc0a07, | ||
8934 | 0x48066219, 0x49366009, 0x4a026406, 0x00000001, | ||
8935 | 0x42000800, 0x80000040, 0x0201f800, 0x00020721, | ||
8936 | 0x40366000, 0x0201f800, 0x0002077d, 0x5c006800, | ||
8937 | 0x1c01f000, 0x4933c857, 0x5930021d, 0x82000580, | ||
8938 | 0x00000001, 0x04020040, 0x59300c16, 0x82040580, | ||
8939 | 0x00000035, 0x04000007, 0x82040580, 0x0000001e, | ||
8940 | 0x04000004, 0x82040580, 0x00000039, 0x04020036, | ||
8941 | 0x4933c857, 0x4c500000, 0x4d1c0000, 0x4130a000, | ||
8942 | 0x40067000, 0x0201f800, 0x001093ba, 0x04020029, | ||
8943 | 0x0201f800, 0x0002075a, 0x04000026, 0x491fc857, | ||
8944 | 0x4933c857, 0x83380580, 0x00000035, 0x04000004, | ||
8945 | 0x83380580, 0x00000039, 0x04020002, 0x4932381c, | ||
8946 | 0x493a6403, 0x4a026203, 0x00000001, 0x4a026406, | ||
8947 | 0x00000001, 0x58500809, 0x4807c857, 0x48066009, | ||
8948 | 0x58500c15, 0x4807c857, 0x48066415, 0x58500a15, | ||
8949 | 0x4807c857, 0x48066215, 0x58500a16, 0x4807c857, | ||
8950 | 0x48066216, 0x58500c19, 0x4807c857, 0x48066419, | ||
8951 | 0x58500a19, 0x4807c857, 0x48066219, 0x491e601e, | ||
8952 | 0x42000800, 0x80000040, 0x0201f800, 0x00020721, | ||
8953 | 0x40526000, 0x5c023800, 0x5c00a000, 0x0201f000, | ||
8954 | 0x0002077d, 0x5930021d, 0x82000580, 0x00000003, | ||
8955 | 0x02000800, 0x001049b2, 0x0201f000, 0x0002077d, | ||
8956 | 0x4803c856, 0x4c500000, 0x4c540000, 0x412c7800, | ||
8957 | 0x4c3c0000, 0x42002800, 0x00000001, 0x82040480, | ||
8958 | 0x00000101, 0x04001003, 0x42000800, 0x00000100, | ||
8959 | 0x40043000, 0x42000800, 0x0000001c, 0x83cca400, | ||
8960 | 0x0000000c, 0x832cac00, 0x0000000d, 0x0401f844, | ||
8961 | 0x82183480, 0x0000001c, 0x592e5801, 0x812e59c0, | ||
8962 | 0x02020800, 0x001007fd, 0x0201f800, 0x001007e4, | ||
8963 | 0x04000017, 0x80142800, 0x4a025a04, 0x00000110, | ||
8964 | 0x497a5c04, 0x492c7801, 0x82180c80, 0x0000003d, | ||
8965 | 0x04021006, 0x40180800, 0x832cac00, 0x00000005, | ||
8966 | 0x0401f82f, 0x0401f00a, 0x82183480, 0x0000003c, | ||
8967 | 0x42000800, 0x0000003c, 0x412c7800, 0x832cac00, | ||
8968 | 0x00000005, 0x0401f826, 0x0401f7e8, 0x5c007800, | ||
8969 | 0x841429c0, 0x82142d40, 0x00000003, 0x48147a04, | ||
8970 | 0x403e5800, 0x5c00a800, 0x5c00a000, 0x1c01f000, | ||
8971 | 0x492fc857, 0x812e59c0, 0x0400000f, 0x4d2c0000, | ||
8972 | 0x4c3c0000, 0x592c7801, 0x803c79c0, 0x04000006, | ||
8973 | 0x497a5801, 0x0201f800, 0x000202da, 0x403e5800, | ||
8974 | 0x0401f7f9, 0x5c007800, 0x0201f800, 0x000202da, | ||
8975 | 0x5c025800, 0x1c01f000, 0x4803c856, 0x4c580000, | ||
8976 | 0x82040c00, 0x00000003, 0x8004b104, 0x0201f800, | ||
8977 | 0x0010ab17, 0x5c00b000, 0x1c01f000, 0x4803c856, | ||
8978 | 0x4c580000, 0x82040c00, 0x00000003, 0x8004b104, | ||
8979 | 0x0201f800, 0x0010ab17, 0x5c00b000, 0x1c01f000, | ||
8980 | 0x591c0c06, 0x82040580, 0x00000003, 0x04000004, | ||
8981 | 0x82040580, 0x00000002, 0x0402001a, 0x4d300000, | ||
8982 | 0x4d2c0000, 0x411e6000, 0x59325808, 0x0201f800, | ||
8983 | 0x00109037, 0x0400000f, 0x4d400000, 0x42028000, | ||
8984 | 0x00000013, 0x592c0a08, 0x84040d54, 0x0201f800, | ||
8985 | 0x00104e70, 0x5c028000, 0x0201f800, 0x0010959c, | ||
8986 | 0x0201f800, 0x000202da, 0x0201f800, 0x0010912a, | ||
8987 | 0x0201f800, 0x00107911, 0x5c025800, 0x5c026000, | ||
8988 | 0x1c01f000, 0x59cc0005, 0x8c000500, 0x0402000b, | ||
8989 | 0x591c0406, 0x82000580, 0x00000002, 0x04020007, | ||
8990 | 0x591c0c03, 0x82040580, 0x00000085, 0x04000003, | ||
8991 | 0x82040580, 0x0000008b, 0x1c01f000, 0x4933c857, | ||
8992 | 0x4d3c0000, 0x42027800, 0x00000002, 0x59300406, | ||
8993 | 0x82000c80, 0x00000012, 0x02021800, 0x001005d8, | ||
8994 | 0x0c01f80a, 0x5c027800, 0x1c01f000, 0x4933c857, | ||
8995 | 0x59300406, 0x82000c80, 0x00000012, 0x02021800, | ||
8996 | 0x001005d8, 0x0c01f001, 0x00108c01, 0x00108bfe, | ||
8997 | 0x00108bfe, 0x00108c29, 0x00108bfc, 0x00108bfe, | ||
8998 | 0x00108c1a, 0x00108bfe, 0x00108bfc, 0x001065f4, | ||
8999 | 0x00108bfe, 0x00108bfe, 0x00108bfe, 0x00108bfc, | ||
9000 | 0x00108bfc, 0x00108bfc, 0x00108cf9, 0x00108bfe, | ||
9001 | 0x0201f800, 0x001005d8, 0x4803c856, 0x80000580, | ||
9002 | 0x1c01f000, 0x4803c856, 0x8d3e7d02, 0x04020016, | ||
9003 | 0x0201f800, 0x00109037, 0x0400000f, 0x59325808, | ||
9004 | 0x41780800, 0x4d400000, 0x42028000, 0x00000005, | ||
9005 | 0x0201f800, 0x00104e70, 0x5c028000, 0x0201f800, | ||
9006 | 0x0010959c, 0x0201f800, 0x001091cc, 0x0201f800, | ||
9007 | 0x000202da, 0x0201f800, 0x00107911, 0x82000540, | ||
9008 | 0x00000001, 0x1c01f000, 0x4933c857, 0x0201f800, | ||
9009 | 0x001048d9, 0x0402000c, 0x4d400000, 0x42028000, | ||
9010 | 0x00000010, 0x0201f800, 0x0010a1d1, 0x4a026406, | ||
9011 | 0x00000006, 0x4a026203, 0x00000007, 0x5c028000, | ||
9012 | 0x1c01f000, 0x4933c857, 0x0201f800, 0x00106c55, | ||
9013 | 0x4df00000, 0x0401f8b8, 0x82000c80, 0x0000000e, | ||
9014 | 0x02021800, 0x001005d8, 0x0c01f001, 0x00108c43, | ||
9015 | 0x00108cb0, 0x00108c5a, 0x00108cc3, 0x00108cab, | ||
9016 | 0x00108c41, 0x00108c43, 0x00108c43, 0x00108c47, | ||
9017 | 0x00108c43, 0x00108c43, 0x00108c43, 0x00108c43, | ||
9018 | 0x00108c5a, 0x0201f800, 0x001005d8, 0x5c03e000, | ||
9019 | 0x02000800, 0x00106c4b, 0x0401f7b8, 0x5c03e000, | ||
9020 | 0x02000800, 0x00106c4b, 0x59300406, 0x82000580, | ||
9021 | 0x00000003, 0x040207b4, 0x59300203, 0x82000580, | ||
9022 | 0x0000000d, 0x040007b0, 0x8d3e7d02, 0x040207ae, | ||
9023 | 0x4d340000, 0x59326809, 0x0201f800, 0x001049b2, | ||
9024 | 0x5c026800, 0x0401f7a8, 0x59300004, 0x8400055c, | ||
9025 | 0x48026004, 0x0201f800, 0x00106c4b, 0x59300406, | ||
9026 | 0x82000580, 0x00000006, 0x04000043, 0x8d3e7d02, | ||
9027 | 0x04020041, 0x497a621d, 0x59300203, 0x82000580, | ||
9028 | 0x0000000d, 0x04000003, 0x4a02621d, 0x00000003, | ||
9029 | 0x0401fbcb, 0x04000024, 0x4d2c0000, 0x4d400000, | ||
9030 | 0x59325808, 0x0201f800, 0x001091cc, 0x592c0408, | ||
9031 | 0x8c000512, 0x04000009, 0x4d2c0000, 0x84000512, | ||
9032 | 0x48025c08, 0x592c0809, 0x40065800, 0x0201f800, | ||
9033 | 0x001007fd, 0x5c025800, 0x4d400000, 0x42028000, | ||
9034 | 0x00000005, 0x592c0a08, 0x8c040d0e, 0x04000004, | ||
9035 | 0x42028000, 0x00000002, 0x0401f001, 0x0201f800, | ||
9036 | 0x00104e70, 0x5c028000, 0x0201f800, 0x0010959c, | ||
9037 | 0x0201f800, 0x000202da, 0x497a6008, 0x5c028000, | ||
9038 | 0x5c025800, 0x8d3e7d00, 0x04000009, 0x4d340000, | ||
9039 | 0x59326809, 0x0201f800, 0x001049b2, 0x5c026800, | ||
9040 | 0x0201f800, 0x00107911, 0x0401f00b, 0x4a026403, | ||
9041 | 0x00000085, 0x4a026203, 0x00000009, 0x4a026406, | ||
9042 | 0x00000002, 0x42000800, 0x8000404b, 0x0201f800, | ||
9043 | 0x00020721, 0x5c03e000, 0x02020800, 0x00106c55, | ||
9044 | 0x82000540, 0x00000001, 0x1c01f000, 0x0201f800, | ||
9045 | 0x00106c4b, 0x0201f800, 0x00100e99, 0x0401f7ab, | ||
9046 | 0x598c000d, 0x81300580, 0x04020004, 0x0201f800, | ||
9047 | 0x00106e8e, 0x0402001b, 0x0201f800, 0x001068d3, | ||
9048 | 0x04020006, 0x59300c03, 0x82040580, 0x00000040, | ||
9049 | 0x0400078b, 0x0401f79d, 0x0201f800, 0x00106b6c, | ||
9050 | 0x04000010, 0x0201f800, 0x001005d8, 0x0401f813, | ||
9051 | 0x04020004, 0x0201f800, 0x00106e62, 0x04020009, | ||
9052 | 0x0201f800, 0x001067ae, 0x040207f4, 0x59300c03, | ||
9053 | 0x82040580, 0x00000040, 0x04000779, 0x0401f78b, | ||
9054 | 0x59300203, 0x82000c80, 0x0000000e, 0x02021800, | ||
9055 | 0x001005d8, 0x0c01f75e, 0x417a3000, 0x42032000, | ||
9056 | 0x0000bf32, 0x59900004, 0x81300580, 0x04000009, | ||
9057 | 0x83932400, 0x00000010, 0x811a3000, 0x83180480, | ||
9058 | 0x00000005, 0x040017f8, 0x82000540, 0x00000001, | ||
9059 | 0x1c01f000, 0x59300004, 0x8c00053e, 0x04000010, | ||
9060 | 0x8c00050c, 0x0402000e, 0x8c000516, 0x04020006, | ||
9061 | 0x82000d00, 0x0000001f, 0x82040580, 0x00000005, | ||
9062 | 0x04020004, 0x42000000, 0x00000003, 0x0401f005, | ||
9063 | 0x42000000, 0x00000001, 0x0401f002, 0x59300203, | ||
9064 | 0x1c01f000, 0x4933c857, 0x0201f800, 0x00106c55, | ||
9065 | 0x4df00000, 0x59300203, 0x82000c80, 0x0000000e, | ||
9066 | 0x02021800, 0x001005d8, 0x0c01f001, 0x00108d13, | ||
9067 | 0x00108d30, 0x00108d17, 0x00108d11, 0x00108d11, | ||
9068 | 0x00108d11, 0x00108d11, 0x00108d11, 0x00108d11, | ||
9069 | 0x00108d11, 0x00108d11, 0x00108d11, 0x00108d11, | ||
9070 | 0x00108d11, 0x0201f800, 0x001005d8, 0x5c03e000, | ||
9071 | 0x02000800, 0x00106c4b, 0x0401f6e8, 0x5c03e000, | ||
9072 | 0x02000800, 0x00106c4b, 0x4d2c0000, 0x59325808, | ||
9073 | 0x59300403, 0x82000580, 0x00000052, 0x02000800, | ||
9074 | 0x00101231, 0x0401fb16, 0x02000800, 0x001005d8, | ||
9075 | 0x4a025a06, 0x00000005, 0x0201f800, 0x000202da, | ||
9076 | 0x0201f800, 0x00104c19, 0x0201f800, 0x00107911, | ||
9077 | 0x5c025800, 0x82000540, 0x00000001, 0x1c01f000, | ||
9078 | 0x598c000d, 0x81300580, 0x0402001a, 0x59300004, | ||
9079 | 0x8c000520, 0x04000004, 0x84000520, 0x48026004, | ||
9080 | 0x0401f01a, 0x42001000, 0x0010b7f6, 0x50081000, | ||
9081 | 0x58080002, 0x82000580, 0x00000100, 0x0400000a, | ||
9082 | 0x5808000c, 0x81300580, 0x02020800, 0x001005d8, | ||
9083 | 0x0201f800, 0x001068d3, 0x02020800, 0x001005d8, | ||
9084 | 0x0401f7cf, 0x0201f800, 0x00106e8e, 0x0402000c, | ||
9085 | 0x59300004, 0x8c000520, 0x04000004, 0x84000520, | ||
9086 | 0x48026004, 0x0401f7c6, 0x0201f800, 0x001068d3, | ||
9087 | 0x040007c3, 0x0201f800, 0x001005d8, 0x59300203, | ||
9088 | 0x82000c80, 0x0000000e, 0x02021800, 0x001005d8, | ||
9089 | 0x0c01f7a7, 0x59300406, 0x4933c857, 0x4803c857, | ||
9090 | 0x82000c80, 0x00000012, 0x02021800, 0x001005d8, | ||
9091 | 0x0c01f001, 0x00108d7c, 0x00108e41, 0x00108f79, | ||
9092 | 0x00108d88, 0x00107911, 0x00108d7c, 0x0010a1c0, | ||
9093 | 0x0002077d, 0x00108e41, 0x001065ce, 0x00108fda, | ||
9094 | 0x00108d77, 0x00108d77, 0x00108d77, 0x00108d77, | ||
9095 | 0x00108d77, 0x001096eb, 0x001096eb, 0x0201f800, | ||
9096 | 0x001005d8, 0x0401fbd5, 0x02000000, 0x0010801c, | ||
9097 | 0x1c01f000, 0x0201f800, 0x00106c55, 0x0201f800, | ||
9098 | 0x00106bbf, 0x0201f800, 0x00106c4b, 0x0201f000, | ||
9099 | 0x0002077d, 0x4a026206, 0x00000001, 0x1c01f000, | ||
9100 | 0x42000000, 0x0010b872, 0x0201f800, 0x0010aa47, | ||
9101 | 0x4d2c0000, 0x4d400000, 0x417a5800, 0x0401faa8, | ||
9102 | 0x04000007, 0x59325808, 0x592c0208, 0x8400054c, | ||
9103 | 0x48025a08, 0x42028000, 0x00000006, 0x0201f800, | ||
9104 | 0x00106c55, 0x0401ff4c, 0x4803c857, 0x82000c80, | ||
9105 | 0x0000000e, 0x02021800, 0x001005d8, 0x0c01f806, | ||
9106 | 0x0201f800, 0x00106c4b, 0x5c028000, 0x5c025800, | ||
9107 | 0x1c01f000, 0x00108e40, 0x00108db5, 0x00108dc3, | ||
9108 | 0x00108de5, 0x00108e11, 0x00108db3, 0x00108d7c, | ||
9109 | 0x00108d7c, 0x00108d7c, 0x00108db3, 0x00108db3, | ||
9110 | 0x00108db3, 0x00108db3, 0x00108dc3, 0x0201f800, | ||
9111 | 0x001005d8, 0x598c000d, 0x81300580, 0x04020004, | ||
9112 | 0x0201f800, 0x00106e8e, 0x04020038, 0x0201f800, | ||
9113 | 0x001068d3, 0x0400003b, 0x0201f800, 0x00106b6c, | ||
9114 | 0x04000032, 0x0201f800, 0x001005d8, 0x497a621d, | ||
9115 | 0x812e59c0, 0x02000800, 0x001005d8, 0x592c0204, | ||
9116 | 0x82000500, 0x000000ff, 0x82000580, 0x00000014, | ||
9117 | 0x04000003, 0x4a02621d, 0x00000003, 0x592c0a08, | ||
9118 | 0x0201f800, 0x00104e70, 0x0201f800, 0x0010959c, | ||
9119 | 0x0201f800, 0x000202da, 0x497a6008, 0x4a026403, | ||
9120 | 0x00000085, 0x4a026203, 0x00000009, 0x4a026406, | ||
9121 | 0x00000002, 0x4a026004, 0x8000404b, 0x0201f800, | ||
9122 | 0x00106c4b, 0x42000800, 0x8000404b, 0x0201f000, | ||
9123 | 0x00020721, 0x0401fef1, 0x04020004, 0x0201f800, | ||
9124 | 0x00106e62, 0x04020009, 0x0201f800, 0x001067ae, | ||
9125 | 0x040207d2, 0x59300c03, 0x82040580, 0x00000040, | ||
9126 | 0x04000008, 0x0401f7d2, 0x59300203, 0x82000c80, | ||
9127 | 0x0000000e, 0x02021800, 0x001005d8, 0x0c01f7ae, | ||
9128 | 0x0201f800, 0x00106c4b, 0x812e59c0, 0x04000013, | ||
9129 | 0x592c0a08, 0x0201f800, 0x00104e70, 0x0201f800, | ||
9130 | 0x0010959c, 0x0201f800, 0x000202da, 0x59300203, | ||
9131 | 0x82000580, 0x0000000d, 0x04000008, 0x0201f800, | ||
9132 | 0x00106c4b, 0x4d340000, 0x59326809, 0x0201f800, | ||
9133 | 0x001049b2, 0x5c026800, 0x0201f800, 0x00107911, | ||
9134 | 0x0401f030, 0x812e59c0, 0x02000800, 0x001005d8, | ||
9135 | 0x0201f800, 0x0010940a, 0x04020004, 0x0201f800, | ||
9136 | 0x00100e99, 0x0401f7aa, 0x0201f800, 0x00106c4b, | ||
9137 | 0x592c0208, 0x8400050c, 0x48025a08, 0x592c0406, | ||
9138 | 0x800000c2, 0x800008c4, 0x80040c00, 0x48066206, | ||
9139 | 0x42000000, 0x10000000, 0x41300800, 0x0201f800, | ||
9140 | 0x00100b94, 0x0400000d, 0x592c0208, 0x8c00051c, | ||
9141 | 0x04020006, 0x8400055c, 0x48025a08, 0x4a026206, | ||
9142 | 0x00000002, 0x0401f00f, 0x4d300000, 0x0201f800, | ||
9143 | 0x001012e5, 0x5c026000, 0x59300203, 0x82000580, | ||
9144 | 0x00000004, 0x04020007, 0x4d380000, 0x42027000, | ||
9145 | 0x00000048, 0x0201f800, 0x000207a1, 0x5c027000, | ||
9146 | 0x1c01f000, 0x42000000, 0x0010b86e, 0x0201f800, | ||
9147 | 0x0010aa47, 0x59300203, 0x82000c80, 0x0000000e, | ||
9148 | 0x02021800, 0x001005d8, 0x4803c857, 0x0c01f001, | ||
9149 | 0x00108e5a, 0x00108d85, 0x00108e5c, 0x00108e5a, | ||
9150 | 0x00108e5c, 0x00108e5c, 0x00108d7d, 0x00108e5a, | ||
9151 | 0x00108d79, 0x00108e5a, 0x00108e5a, 0x00108e5a, | ||
9152 | 0x00108e5a, 0x00108e5a, 0x0201f800, 0x001005d8, | ||
9153 | 0x4d340000, 0x4d2c0000, 0x59326809, 0x59340400, | ||
9154 | 0x82000500, 0x000000ff, 0x82000c80, 0x0000000c, | ||
9155 | 0x02021800, 0x001005d8, 0x59303403, 0x82180d80, | ||
9156 | 0x00000004, 0x04020004, 0x42000000, 0x00000001, | ||
9157 | 0x0401f006, 0x82180d80, 0x00000000, 0x04020003, | ||
9158 | 0x42000000, 0x00000001, 0x4803c857, 0x0c01f804, | ||
9159 | 0x5c025800, 0x5c026800, 0x1c01f000, 0x00108e83, | ||
9160 | 0x00108f22, 0x00108e85, 0x00108eba, 0x00108e85, | ||
9161 | 0x00108f3f, 0x00108e85, 0x00108e8f, 0x00108e83, | ||
9162 | 0x00108f3f, 0x00108e83, 0x00108e9e, 0x0201f800, | ||
9163 | 0x001005d8, 0x59300403, 0x82000d80, 0x00000016, | ||
9164 | 0x0400002e, 0x82000d80, 0x00000004, 0x0400002b, | ||
9165 | 0x82000d80, 0x00000002, 0x04000028, 0x0401fabf, | ||
9166 | 0x04000079, 0x59300403, 0x82000d80, 0x00000022, | ||
9167 | 0x040000ae, 0x82000d80, 0x00000039, 0x040000b3, | ||
9168 | 0x82000d80, 0x00000035, 0x040000b0, 0x82000d80, | ||
9169 | 0x0000001e, 0x0400001b, 0x0401f999, 0x04000007, | ||
9170 | 0x0201f800, 0x00109597, 0x04020004, 0x0201f800, | ||
9171 | 0x00104a14, 0x0401f011, 0x59300403, 0x82000d80, | ||
9172 | 0x00000001, 0x04020004, 0x0201f800, 0x001049e7, | ||
9173 | 0x0400000a, 0x4d3c0000, 0x417a7800, 0x0201f800, | ||
9174 | 0x0010203c, 0x5c027800, 0x42000000, 0x0010b864, | ||
9175 | 0x0201f800, 0x0010aa47, 0x0201f800, 0x0010801c, | ||
9176 | 0x0201f000, 0x00107911, 0x0401f97d, 0x04000004, | ||
9177 | 0x0201f800, 0x00109597, 0x040000a9, 0x59300c03, | ||
9178 | 0x82040580, 0x00000016, 0x04000056, 0x82040580, | ||
9179 | 0x00000002, 0x04020034, 0x59a80026, 0x8c000502, | ||
9180 | 0x04020013, 0x0201f800, 0x0010513b, 0x04020010, | ||
9181 | 0x0201f800, 0x00105151, 0x04020006, 0x42000000, | ||
9182 | 0x00000001, 0x0201f800, 0x00105113, 0x0401f094, | ||
9183 | 0x4a035033, 0x00000001, 0x4202d800, 0x00000001, | ||
9184 | 0x0201f800, 0x001050a2, 0x0401f08d, 0x59340403, | ||
9185 | 0x82000580, 0x000007fc, 0x04000008, 0x59a80026, | ||
9186 | 0x8c00050a, 0x04020084, 0x59340212, 0x82000500, | ||
9187 | 0x0000ff00, 0x04000082, 0x59340412, 0x82000500, | ||
9188 | 0x000000ff, 0x04000010, 0x80000040, 0x48026c12, | ||
9189 | 0x497a6008, 0x4a026406, 0x00000007, 0x4a026206, | ||
9190 | 0x00000398, 0x497a6205, 0x0201f800, 0x0002075a, | ||
9191 | 0x04000005, 0x49366009, 0x4a026406, 0x00000001, | ||
9192 | 0x0401f020, 0x59300403, 0x82000d80, 0x00000002, | ||
9193 | 0x0402000d, 0x59340403, 0x82000580, 0x000007fe, | ||
9194 | 0x04020009, 0x59a80026, 0x84000540, 0x48035026, | ||
9195 | 0x0201f800, 0x00104237, 0x0201f800, 0x0010801c, | ||
9196 | 0x0401f00c, 0x0201f800, 0x0010801c, 0x4d3c0000, | ||
9197 | 0x417a7800, 0x0201f800, 0x0010203c, 0x5c027800, | ||
9198 | 0x42000000, 0x0010b864, 0x0201f800, 0x0010aa47, | ||
9199 | 0x0201f800, 0x00102074, 0x0201f000, 0x00107911, | ||
9200 | 0x42000800, 0x00000003, 0x0201f800, 0x00104571, | ||
9201 | 0x4a026203, 0x00000001, 0x4a026403, 0x00000002, | ||
9202 | 0x0201f000, 0x0010672b, 0x0401f915, 0x04020793, | ||
9203 | 0x0201f800, 0x00102074, 0x4d3c0000, 0x417a7800, | ||
9204 | 0x0201f800, 0x0010203c, 0x5c027800, 0x42000000, | ||
9205 | 0x0010b864, 0x0201f800, 0x0010aa47, 0x42003000, | ||
9206 | 0x00000018, 0x41782800, 0x42002000, 0x00000000, | ||
9207 | 0x4d400000, 0x4d440000, 0x59368c03, 0x42028000, | ||
9208 | 0x00000029, 0x0201f800, 0x0010985e, 0x5c028800, | ||
9209 | 0x5c028000, 0x0201f000, 0x00107911, 0x0201f800, | ||
9210 | 0x00104a14, 0x0401f7c8, 0x42000000, 0x0010b86d, | ||
9211 | 0x0201f800, 0x0010aa47, 0x0201f800, 0x00107b76, | ||
9212 | 0x040207c1, 0x1c01f000, 0x4d380000, 0x59327403, | ||
9213 | 0x0201f800, 0x001093ba, 0x5c027000, 0x02020000, | ||
9214 | 0x0002077d, 0x836c0580, 0x00000003, 0x04000004, | ||
9215 | 0x4a026206, 0x00000002, 0x1c01f000, 0x59300403, | ||
9216 | 0x48026416, 0x4a02621d, 0x00000001, 0x4a026403, | ||
9217 | 0x00000085, 0x4a026203, 0x00000009, 0x4a026406, | ||
9218 | 0x00000002, 0x42000800, 0x8000004b, 0x0201f000, | ||
9219 | 0x00020721, 0x0201f800, 0x00102074, 0x0201f800, | ||
9220 | 0x0010801c, 0x4d3c0000, 0x417a7800, 0x0201f800, | ||
9221 | 0x0010203c, 0x5c027800, 0x42000000, 0x0010b864, | ||
9222 | 0x0201f800, 0x0010aa47, 0x497a6008, 0x4a026406, | ||
9223 | 0x00000007, 0x4a026206, 0x00000398, 0x497a6205, | ||
9224 | 0x1c01f000, 0x42000000, 0x0010b870, 0x0201f800, | ||
9225 | 0x0010aa47, 0x4d340000, 0x59326809, 0x59300203, | ||
9226 | 0x82000c80, 0x0000000e, 0x02021800, 0x001005d8, | ||
9227 | 0x4803c857, 0x0c01f803, 0x5c026800, 0x1c01f000, | ||
9228 | 0x00108f96, 0x00108d85, 0x00108f96, 0x00108f96, | ||
9229 | 0x00108f96, 0x00108f96, 0x00108f96, 0x00108f96, | ||
9230 | 0x00108f96, 0x00108d85, 0x00108f98, 0x00108d85, | ||
9231 | 0x00108fa0, 0x00108f96, 0x0201f800, 0x001005d8, | ||
9232 | 0x4a026403, 0x0000008b, 0x4a026203, 0x0000000b, | ||
9233 | 0x42000800, 0x8000404b, 0x0201f000, 0x00020721, | ||
9234 | 0x59300a1d, 0x4d3c0000, 0x417a7800, 0x0201f800, | ||
9235 | 0x0010203c, 0x5c027800, 0x42003000, 0x00000011, | ||
9236 | 0x0201f800, 0x0010a942, 0x42000000, 0x0010b864, | ||
9237 | 0x0201f800, 0x0010aa47, 0x41306800, 0x0201f800, | ||
9238 | 0x0002075a, 0x04000008, 0x49366009, 0x4d300000, | ||
9239 | 0x40366000, 0x0201f800, 0x00107911, 0x5c026000, | ||
9240 | 0x0401f002, 0x40366000, 0x497a6008, 0x4a026406, | ||
9241 | 0x00000001, 0x4a026403, 0x00000001, 0x0201f800, | ||
9242 | 0x00103b25, 0x04000011, 0x4a026406, 0x00000004, | ||
9243 | 0x4a026203, 0x00000007, 0x4a026420, 0x00000001, | ||
9244 | 0x42003000, 0x00000004, 0x4d400000, 0x42028000, | ||
9245 | 0x00000029, 0x41782800, 0x0201f800, 0x0010a43e, | ||
9246 | 0x5c028000, 0x1c01f000, 0x42000800, 0x0000000b, | ||
9247 | 0x0201f800, 0x00104571, 0x4a026203, 0x00000001, | ||
9248 | 0x0201f000, 0x0010672b, 0x42000000, 0x0010b876, | ||
9249 | 0x0201f800, 0x0010aa47, 0x59300203, 0x82000c80, | ||
9250 | 0x0000000e, 0x02021800, 0x001005d8, 0x4803c857, | ||
9251 | 0x0c01f001, 0x0010900b, 0x00108ff3, 0x00108ff7, | ||
9252 | 0x0010900c, 0x00108ff5, 0x00108ff3, 0x00108ff3, | ||
9253 | 0x00108ff3, 0x00108ff3, 0x00108ff3, 0x00108ff3, | ||
9254 | 0x00108ff3, 0x00108ff3, 0x00108ff3, 0x0201f800, | ||
9255 | 0x001005d8, 0x0201f800, 0x00100e99, 0x4d2c0000, | ||
9256 | 0x59325808, 0x4a025a06, 0x00000006, 0x0201f800, | ||
9257 | 0x000202da, 0x5c025800, 0x497a6008, 0x4a02621d, | ||
9258 | 0x0000000a, 0x4a026403, 0x00000085, 0x4a026203, | ||
9259 | 0x00000009, 0x4a026406, 0x00000002, 0x42000800, | ||
9260 | 0x8000404b, 0x0201f000, 0x00020721, 0x1c01f000, | ||
9261 | 0x0201f800, 0x00106c55, 0x4df00000, 0x0401fcc7, | ||
9262 | 0x04020004, 0x0201f800, 0x00106e62, 0x0402000c, | ||
9263 | 0x0201f800, 0x001067ae, 0x04020005, 0x5c03e000, | ||
9264 | 0x0201f800, 0x00106c4b, 0x0401f7dd, 0x0201f800, | ||
9265 | 0x00106b6c, 0x02020800, 0x001005d8, 0x5c03e000, | ||
9266 | 0x0201f800, 0x00106c4b, 0x59300203, 0x82000d80, | ||
9267 | 0x00000003, 0x02000800, 0x001005d8, 0x82000c80, | ||
9268 | 0x0000000e, 0x02021800, 0x001005d8, 0x0c01f7ba, | ||
9269 | 0x4803c856, 0x59a8000e, 0x59a80867, 0x80040400, | ||
9270 | 0x80080480, 0x04021004, 0x82000540, 0x00000001, | ||
9271 | 0x1c01f000, 0x80000580, 0x1c01f000, 0x4803c856, | ||
9272 | 0x4c080000, 0x59301008, 0x82081500, 0xfff00000, | ||
9273 | 0x5c001000, 0x1c01f000, 0x4803c856, 0x4d300000, | ||
9274 | 0x0201f800, 0x0002075a, 0x0400000a, 0x0401f82f, | ||
9275 | 0x4d380000, 0x42027000, 0x0000004b, 0x0201f800, | ||
9276 | 0x000207a1, 0x5c027000, 0x82000540, 0x00000001, | ||
9277 | 0x5c026000, 0x1c01f000, 0x4803c856, 0x4d300000, | ||
9278 | 0x0201f800, 0x00107942, 0x0400001b, 0x0401f81f, | ||
9279 | 0x4d300000, 0x0201f800, 0x00106c55, 0x4d3c0000, | ||
9280 | 0x417a7800, 0x0201f800, 0x00106ab4, 0x0201f800, | ||
9281 | 0x001067fd, 0x5c027800, 0x0201f800, 0x0010a2ff, | ||
9282 | 0x0201f800, 0x00106c4b, 0x5c026000, 0x8d3e7d3e, | ||
9283 | 0x0402000b, 0x4d380000, 0x42027000, 0x0000004c, | ||
9284 | 0x0201f800, 0x000207a1, 0x5c027000, 0x82000540, | ||
9285 | 0x00000001, 0x5c026000, 0x1c01f000, 0x0201f800, | ||
9286 | 0x0002077d, 0x0401f7fa, 0x592c0407, 0x494a6017, | ||
9287 | 0x494e6018, 0x49366009, 0x492e6008, 0x4a026406, | ||
9288 | 0x00000003, 0x800000c2, 0x800008c4, 0x80040400, | ||
9289 | 0x48026206, 0x1c01f000, 0x493bc857, 0x4d300000, | ||
9290 | 0x0201f800, 0x0002075a, 0x0400000d, 0x0401ffef, | ||
9291 | 0x4d400000, 0x42028000, 0x00000005, 0x0401f80d, | ||
9292 | 0x5c028000, 0x8d3e7d3e, 0x04020007, 0x0201f800, | ||
9293 | 0x000207a1, 0x82000540, 0x00000001, 0x5c026000, | ||
9294 | 0x1c01f000, 0x0201f800, 0x0002077d, 0x0401f7fa, | ||
9295 | 0x4803c856, 0x0201f800, 0x00106c55, 0x4d3c0000, | ||
9296 | 0x4d440000, 0x59368c03, 0x42027800, 0x00000001, | ||
9297 | 0x0201f800, 0x001069b6, 0x0201f800, 0x0010692e, | ||
9298 | 0x0201f800, 0x001067fd, 0x0201f800, 0x0010a2ff, | ||
9299 | 0x5c028800, 0x5c027800, 0x0201f000, 0x00106c4b, | ||
9300 | 0x4803c856, 0x4d300000, 0x0201f800, 0x0002075a, | ||
9301 | 0x0400000f, 0x481a601c, 0x48ee6021, 0x49366009, | ||
9302 | 0x4a026406, 0x00000001, 0x492e6008, 0x4d380000, | ||
9303 | 0x42027000, 0x0000001f, 0x0201f800, 0x000207a1, | ||
9304 | 0x5c027000, 0x82000540, 0x00000001, 0x5c026000, | ||
9305 | 0x1c01f000, 0x4803c856, 0x4d300000, 0x0201f800, | ||
9306 | 0x0002075a, 0x0400000e, 0x48ee6021, 0x49366009, | ||
9307 | 0x4a026406, 0x00000001, 0x492e6008, 0x4d380000, | ||
9308 | 0x42027000, 0x00000055, 0x0201f800, 0x000207a1, | ||
9309 | 0x5c027000, 0x82000540, 0x00000001, 0x5c026000, | ||
9310 | 0x1c01f000, 0x4803c856, 0x4d300000, 0x0201f800, | ||
9311 | 0x0002075a, 0x0400000f, 0x481a601c, 0x48ee6021, | ||
9312 | 0x49366009, 0x4a026406, 0x00000001, 0x492e6008, | ||
9313 | 0x4d380000, 0x42027000, 0x0000003d, 0x0201f800, | ||
9314 | 0x000207a1, 0x5c027000, 0x82000540, 0x00000001, | ||
9315 | 0x5c026000, 0x1c01f000, 0x4803c856, 0x4d300000, | ||
9316 | 0x0201f800, 0x00107942, 0x04000014, 0x49366009, | ||
9317 | 0x492fc857, 0x4933c857, 0x592c0404, 0x8c00051e, | ||
9318 | 0x04000003, 0x48efc857, 0x48ee6021, 0x4a026406, | ||
9319 | 0x00000001, 0x492e6008, 0x4d380000, 0x42027000, | ||
9320 | 0x00000000, 0x0201f800, 0x000207a1, 0x5c027000, | ||
9321 | 0x82000540, 0x00000001, 0x5c026000, 0x1c01f000, | ||
9322 | 0x4803c856, 0x4d300000, 0x0201f800, 0x0002075a, | ||
9323 | 0x0400000f, 0x48ee6021, 0x481a601c, 0x49366009, | ||
9324 | 0x4a026406, 0x00000001, 0x492e6008, 0x4d380000, | ||
9325 | 0x42027000, 0x00000044, 0x0201f800, 0x000207a1, | ||
9326 | 0x5c027000, 0x82000540, 0x00000001, 0x5c026000, | ||
9327 | 0x1c01f000, 0x4803c856, 0x4d300000, 0x0201f800, | ||
9328 | 0x0002075a, 0x0400000f, 0x481a601c, 0x48ee6021, | ||
9329 | 0x49366009, 0x4a026406, 0x00000001, 0x492e6008, | ||
9330 | 0x4d380000, 0x42027000, 0x00000049, 0x0201f800, | ||
9331 | 0x000207a1, 0x5c027000, 0x82000540, 0x00000001, | ||
9332 | 0x5c026000, 0x1c01f000, 0x59300009, 0x80001540, | ||
9333 | 0x02000800, 0x001005d8, 0x5808040b, 0x4803c856, | ||
9334 | 0x80000040, 0x04001002, 0x4800140b, 0x1c01f000, | ||
9335 | 0x4803c856, 0x59300403, 0x82000d80, 0x00000002, | ||
9336 | 0x04000015, 0x82000d80, 0x00000003, 0x04000012, | ||
9337 | 0x82000d80, 0x00000004, 0x0400000f, 0x82000d80, | ||
9338 | 0x00000008, 0x0400000c, 0x82000d80, 0x0000000a, | ||
9339 | 0x04000009, 0x599c0819, 0x8c040d0e, 0x04000004, | ||
9340 | 0x82000d80, 0x00000000, 0x04000003, 0x82000540, | ||
9341 | 0x00000001, 0x1c01f000, 0x4803c856, 0x4c000000, | ||
9342 | 0x4d2c0000, 0x59300406, 0x82000580, 0x00000004, | ||
9343 | 0x0400001d, 0x59300008, 0x80025d40, 0x800001c0, | ||
9344 | 0x04000019, 0x0201f800, 0x00109597, 0x04000014, | ||
9345 | 0x59300406, 0x82004580, 0x00000010, 0x04000010, | ||
9346 | 0x82004580, 0x00000011, 0x0400000d, 0x82004580, | ||
9347 | 0x00000003, 0x0400000c, 0x82004580, 0x00000002, | ||
9348 | 0x04000009, 0x82004580, 0x0000000a, 0x04000006, | ||
9349 | 0x592c0404, 0x8c00051e, 0x04000003, 0x80000580, | ||
9350 | 0x0401f003, 0x82000540, 0x00000001, 0x5c025800, | ||
9351 | 0x5c000000, 0x1c01f000, 0x4803c856, 0x4d300000, | ||
9352 | 0x0201f800, 0x00107942, 0x04000013, 0x49366009, | ||
9353 | 0x48ee6021, 0x4a026406, 0x00000001, 0x492e6008, | ||
9354 | 0x4d3c0000, 0x417a7800, 0x0201f800, 0x0010203c, | ||
9355 | 0x5c027800, 0x4d380000, 0x42027000, 0x00000028, | ||
9356 | 0x0201f800, 0x000207a1, 0x5c027000, 0x82000540, | ||
9357 | 0x00000001, 0x5c026000, 0x1c01f000, 0x4803c856, | ||
9358 | 0x83380580, 0x00000015, 0x0402000d, 0x59a80016, | ||
9359 | 0x82000580, 0x00000074, 0x04020009, 0x0201f800, | ||
9360 | 0x0010462a, 0x4a026203, 0x00000001, 0x4a026403, | ||
9361 | 0x00000029, 0x0201f000, 0x0010672b, 0x0201f800, | ||
9362 | 0x0010801c, 0x0201f000, 0x0002077d, 0x4803c856, | ||
9363 | 0x83380580, 0x00000016, 0x04020007, 0x42000800, | ||
9364 | 0x00000004, 0x0201f800, 0x00104571, 0x0201f000, | ||
9365 | 0x00107b38, 0x83380580, 0x00000015, 0x04020013, | ||
9366 | 0x59a80016, 0x82000580, 0x00000014, 0x0402000f, | ||
9367 | 0x0201f800, 0x0010468d, 0x0201f800, 0x0010846f, | ||
9368 | 0x0402000a, 0x59340404, 0x80000540, 0x04000007, | ||
9369 | 0x42000800, 0x00000006, 0x0201f800, 0x00104571, | ||
9370 | 0x0201f000, 0x00107b38, 0x0201f800, 0x0010801c, | ||
9371 | 0x0201f000, 0x0002077d, 0x4803c856, 0x592c0206, | ||
9372 | 0x82000580, 0x00000005, 0x04000002, 0x1c01f000, | ||
9373 | 0x4803c856, 0x592c0208, 0x8400054a, 0x48025a08, | ||
9374 | 0x1c01f000, 0x497a6205, 0x497a6008, 0x4a026203, | ||
9375 | 0x00000001, 0x4a026403, 0x00000050, 0x42000800, | ||
9376 | 0x80000043, 0x0201f000, 0x00020721, 0x4933c857, | ||
9377 | 0x4d340000, 0x59326809, 0x59340200, 0x8c00050e, | ||
9378 | 0x04000006, 0x59300406, 0x82000c80, 0x00000012, | ||
9379 | 0x04021004, 0x0c01f806, 0x5c026800, 0x1c01f000, | ||
9380 | 0x0201f800, 0x00108d7c, 0x0401f7fc, 0x00108d7c, | ||
9381 | 0x001091fd, 0x00109201, 0x00109204, 0x0010a49b, | ||
9382 | 0x0010a4b8, 0x0010a4bc, 0x00108d7c, 0x00108d7c, | ||
9383 | 0x00108d7c, 0x00108d7c, 0x00108d7c, 0x00108d7c, | ||
9384 | 0x00108d7c, 0x00108d7c, 0x00108d7c, 0x00108d7c, | ||
9385 | 0x00108d7c, 0x4803c856, 0x40000000, 0x40000000, | ||
9386 | 0x1c01f000, 0x40000000, 0x40000000, 0x1c01f000, | ||
9387 | 0x5930001c, 0x4803c857, 0x59300414, 0x4933c857, | ||
9388 | 0x4803c857, 0x8c000502, 0x04000005, 0x84000502, | ||
9389 | 0x84000540, 0x48026414, 0x1c01f000, 0x42000000, | ||
9390 | 0xd0000000, 0x41300800, 0x0201f800, 0x00100b94, | ||
9391 | 0x0401f80a, 0x04020008, 0x59a80037, 0x82000400, | ||
9392 | 0x0000000a, 0x48026205, 0x59300414, 0x84000542, | ||
9393 | 0x48026414, 0x1c01f000, 0x4933c857, 0x4d340000, | ||
9394 | 0x59326809, 0x59340200, 0x8c00050e, 0x02000800, | ||
9395 | 0x001005d8, 0x5930001c, 0x80000540, 0x0402002f, | ||
9396 | 0x59a80021, 0x80000540, 0x0402002a, 0x4d1c0000, | ||
9397 | 0x41323800, 0x0201f800, 0x0002075a, 0x04000023, | ||
9398 | 0x4932381c, 0x591c0414, 0x84000542, 0x48023c14, | ||
9399 | 0x49366009, 0x591c0406, 0x82000580, 0x00000003, | ||
9400 | 0x04000006, 0x591c0202, 0x48026419, 0x591c0402, | ||
9401 | 0x48026219, 0x0401f005, 0x591c0202, 0x48026219, | ||
9402 | 0x591c0402, 0x48026419, 0x491e601e, 0x4a026406, | ||
9403 | 0x00000001, 0x4a026403, 0x00000035, 0x4a026203, | ||
9404 | 0x00000001, 0x42000800, 0x80000040, 0x0201f800, | ||
9405 | 0x00020721, 0x411e6000, 0x5c023800, 0x80000580, | ||
9406 | 0x5c026800, 0x1c01f000, 0x411e6000, 0x5c023800, | ||
9407 | 0x59a80039, 0x48026205, 0x82000540, 0x00000001, | ||
9408 | 0x0401f7f8, 0x4933c857, 0x4d2c0000, 0x4932381c, | ||
9409 | 0x4a026202, 0x0000ffff, 0x591e5808, 0x591c0007, | ||
9410 | 0x8c00051e, 0x04000005, 0x8400051e, 0x48023807, | ||
9411 | 0x497a5c09, 0x0401f014, 0x592c0408, 0x8c000518, | ||
9412 | 0x04000011, 0x84000518, 0x48025c08, 0x4a025c09, | ||
9413 | 0x00000001, 0x0401fb2f, 0x497a5c09, 0x592c0408, | ||
9414 | 0x8c000512, 0x04000008, 0x4d2c0000, 0x84000512, | ||
9415 | 0x48025c08, 0x592e5809, 0x0201f800, 0x001007fd, | ||
9416 | 0x5c025800, 0x59a80039, 0x48026205, 0x591c0214, | ||
9417 | 0x48026216, 0x82000d80, 0x00000001, 0x04000008, | ||
9418 | 0x4a023a03, 0x00000002, 0x82000580, 0x00000005, | ||
9419 | 0x04000008, 0x497a6015, 0x0401f01e, 0x591c0007, | ||
9420 | 0x84000540, 0x48023807, 0x4a023a03, 0x00000004, | ||
9421 | 0x591c0414, 0x4803c857, 0x8400051c, 0x84000554, | ||
9422 | 0x48023c14, 0x592c000f, 0x40001000, 0x591c0816, | ||
9423 | 0x80040480, 0x040217f0, 0x591c0016, 0x82000500, | ||
9424 | 0xfffffffc, 0x48026015, 0x48023816, 0x591c0a14, | ||
9425 | 0x4807c857, 0x82040d80, 0x00000005, 0x04020005, | ||
9426 | 0x480bc857, 0x4803c857, 0x4a023812, 0xffffffff, | ||
9427 | 0x591c0402, 0x48026419, 0x591c0202, 0x48026219, | ||
9428 | 0x591e6809, 0x49366009, 0x4a026406, 0x00000001, | ||
9429 | 0x4a026403, 0x00000039, 0x4a026203, 0x00000001, | ||
9430 | 0x42000800, 0x80000040, 0x0201f800, 0x00020721, | ||
9431 | 0x5c025800, 0x1c01f000, 0x4933c857, 0x59300414, | ||
9432 | 0x8c000514, 0x04000015, 0x8c00051c, 0x04020012, | ||
9433 | 0x59300016, 0x80100480, 0x04001006, 0x04000005, | ||
9434 | 0x59300414, 0x84000514, 0x8400055c, 0x0401f009, | ||
9435 | 0x48126016, 0x48126012, 0x40100000, 0x592c180f, | ||
9436 | 0x800c0480, 0x48026011, 0x59300414, 0x84000514, | ||
9437 | 0x48026414, 0x1c01f000, 0x4933c857, 0x8c00051c, | ||
9438 | 0x04020006, 0x59300012, 0x48026016, 0x59300414, | ||
9439 | 0x8400055c, 0x48026414, 0x1c01f000, 0x59300c03, | ||
9440 | 0x4933c857, 0x4807c857, 0x82040480, 0x00000034, | ||
9441 | 0x04001006, 0x82040480, 0x0000003c, 0x04021003, | ||
9442 | 0x80000580, 0x1c01f000, 0x82000540, 0x00000001, | ||
9443 | 0x0401f7fd, 0x41780800, 0x59a81035, 0x42000000, | ||
9444 | 0x00000032, 0x0201f800, 0x001066a0, 0x800811c0, | ||
9445 | 0x04020003, 0x42001000, 0x00000014, 0x480b5037, | ||
9446 | 0x59a81036, 0x480b502d, 0x41780800, 0x42000000, | ||
9447 | 0x00000064, 0x0201f800, 0x001066a0, 0x800811c0, | ||
9448 | 0x04020003, 0x42001000, 0x00000014, 0x480b5038, | ||
9449 | 0x82081400, 0x0000000a, 0x480b5039, 0x42000800, | ||
9450 | 0x00000001, 0x0201f800, 0x00106c78, 0x42000000, | ||
9451 | 0x30000000, 0x40080800, 0x0201f800, 0x00100b68, | ||
9452 | 0x42000800, 0x00000003, 0x59a81010, 0x0201f800, | ||
9453 | 0x00106c78, 0x0201f000, 0x00104906, 0x4a035037, | ||
9454 | 0x00000028, 0x4a035038, 0x00000014, 0x4a03502d, | ||
9455 | 0x000007d0, 0x42001000, 0x0000001e, 0x480b5039, | ||
9456 | 0x42000800, 0x00000001, 0x0201f800, 0x00106c78, | ||
9457 | 0x42000000, 0x30000000, 0x40080800, 0x0201f800, | ||
9458 | 0x00100b68, 0x42000800, 0x00000003, 0x59a81010, | ||
9459 | 0x0201f000, 0x00106c78, 0x4933c857, 0x4d2c0000, | ||
9460 | 0x59300403, 0x82000580, 0x0000003e, 0x04020005, | ||
9461 | 0x59325817, 0x812e59c0, 0x02020800, 0x001007f4, | ||
9462 | 0x5c025800, 0x1c01f000, 0x4937c857, 0x4d300000, | ||
9463 | 0x0201f800, 0x0002075a, 0x04000011, 0x49366009, | ||
9464 | 0x4a026406, 0x00000001, 0x492e6008, 0x42000800, | ||
9465 | 0x00000009, 0x0201f800, 0x00104571, 0x4d380000, | ||
9466 | 0x42027000, 0x00000033, 0x0201f800, 0x000207a1, | ||
9467 | 0x5c027000, 0x82000540, 0x00000001, 0x5c026000, | ||
9468 | 0x1c01f000, 0x4933c857, 0x4d2c0000, 0x4c580000, | ||
9469 | 0x4d3c0000, 0x59325808, 0x83380580, 0x00000015, | ||
9470 | 0x04020022, 0x59a8b016, 0x82580c80, 0x00000019, | ||
9471 | 0x04001003, 0x4200b000, 0x00000018, 0x8058b104, | ||
9472 | 0x0401fa07, 0x80000580, 0x0401fa17, 0x832cac00, | ||
9473 | 0x00000009, 0x83cca400, 0x00000006, 0x0201f800, | ||
9474 | 0x0010ab17, 0x42027800, 0x00000001, 0x592c100a, | ||
9475 | 0x8c081518, 0x04020006, 0x59a80010, 0x592c100d, | ||
9476 | 0x80080580, 0x04020006, 0x417a7800, 0x59301009, | ||
9477 | 0x58081403, 0x0201f800, 0x001020a1, 0x0201f800, | ||
9478 | 0x00107b38, 0x0401f008, 0x4200b000, 0x00000002, | ||
9479 | 0x0401fa09, 0x0201f800, 0x0010801c, 0x0201f800, | ||
9480 | 0x0002077d, 0x5c027800, 0x5c00b000, 0x5c025800, | ||
9481 | 0x1c01f000, 0x4933c856, 0x49366009, 0x4a026406, | ||
9482 | 0x00000001, 0x492e6008, 0x4d380000, 0x42027000, | ||
9483 | 0x0000004d, 0x0201f800, 0x000207a1, 0x5c027000, | ||
9484 | 0x82000540, 0x00000001, 0x1c01f000, 0x4803c856, | ||
9485 | 0x4d2c0000, 0x83380580, 0x00000015, 0x04020027, | ||
9486 | 0x59a80816, 0x59325808, 0x5930040b, 0x800000c4, | ||
9487 | 0x80040580, 0x04020021, 0x4c500000, 0x4c540000, | ||
9488 | 0x4c580000, 0x83cca400, 0x00000006, 0x4050a800, | ||
9489 | 0x5930b40b, 0x0201f800, 0x0010ab28, 0x83cca400, | ||
9490 | 0x00000006, 0x592cb205, 0x832cac00, 0x00000006, | ||
9491 | 0x0201f800, 0x0010ab17, 0x592e5801, 0x812e59c0, | ||
9492 | 0x040207f9, 0x5931d821, 0x58ef400b, 0x58ee580d, | ||
9493 | 0x4a025a04, 0x00000103, 0x58ec0009, 0x0801f800, | ||
9494 | 0x59300402, 0x5c00b000, 0x5c00a800, 0x5c00a000, | ||
9495 | 0x5c025800, 0x1c01f000, 0x0201f800, 0x0010801c, | ||
9496 | 0x5c025800, 0x1c01f000, 0x4933c857, 0x83380580, | ||
9497 | 0x00000035, 0x04000005, 0x59301419, 0x0401f851, | ||
9498 | 0x04000027, 0x0401f006, 0x4d300000, 0x5932601e, | ||
9499 | 0x0401f856, 0x5c026000, 0x04000020, 0x591c0c06, | ||
9500 | 0x82040580, 0x00000003, 0x04000004, 0x82040580, | ||
9501 | 0x00000006, 0x0402001c, 0x591c0c02, 0x59300419, | ||
9502 | 0x80040580, 0x04000009, 0x59300219, 0x80040580, | ||
9503 | 0x04020015, 0x591c0a02, 0x59300419, 0x80040580, | ||
9504 | 0x04020011, 0x0401f009, 0x59300a19, 0x82040580, | ||
9505 | 0x0000ffff, 0x04000005, 0x591c0202, 0x59300a19, | ||
9506 | 0x80040580, 0x04020008, 0x591c0009, 0x59300809, | ||
9507 | 0x80040580, 0x1c01f000, 0x417a3800, 0x82000540, | ||
9508 | 0x00000001, 0x1c01f000, 0x4803c856, 0x59b800e4, | ||
9509 | 0x8c000538, 0x02020800, 0x001005d8, 0x42000800, | ||
9510 | 0x0000012c, 0x4a0370e4, 0x20000000, 0x59b800e4, | ||
9511 | 0x80040840, 0x02000800, 0x001005d8, 0x8c00053c, | ||
9512 | 0x040207f9, 0x4a0370e4, 0x30000000, 0x40000000, | ||
9513 | 0x40000000, 0x40000000, 0x59b800e4, 0x8c00053c, | ||
9514 | 0x040207f1, 0x1c01f000, 0x4803c856, 0x4a0370e4, | ||
9515 | 0x20000000, 0x40000000, 0x59b800e4, 0x8c000538, | ||
9516 | 0x040207fb, 0x1c01f000, 0x59300807, 0x8c040d1e, | ||
9517 | 0x592c0c08, 0x04020002, 0x8c040d18, 0x1c01f000, | ||
9518 | 0x0401fc1c, 0x04000008, 0x42000800, 0x00000024, | ||
9519 | 0x0201f800, 0x00106681, 0x82063c00, 0x0010d1c0, | ||
9520 | 0x491fc857, 0x1c01f000, 0x83300480, 0x0010d1c0, | ||
9521 | 0x0400100a, 0x59a8000b, 0x81300480, 0x04021007, | ||
9522 | 0x59301402, 0x0401ffef, 0x04000007, 0x411c0000, | ||
9523 | 0x81300580, 0x04000003, 0x81780500, 0x0401f002, | ||
9524 | 0x81300540, 0x1c01f000, 0x4947c857, 0x4d300000, | ||
9525 | 0x0201f800, 0x00020245, 0x0402000a, 0x42026000, | ||
9526 | 0x0010bde9, 0x49366009, 0x492e6008, 0x0201f800, | ||
9527 | 0x0010203c, 0x80000580, 0x5c026000, 0x1c01f000, | ||
9528 | 0x82000540, 0x00000001, 0x0401f7fc, 0x4933c857, | ||
9529 | 0x0201f800, 0x00109037, 0x02000800, 0x001005d8, | ||
9530 | 0x4d2c0000, 0x4d340000, 0x4d440000, 0x4c580000, | ||
9531 | 0x59325808, 0x59326809, 0x49425a06, 0x0201f800, | ||
9532 | 0x00105755, 0x592e8c06, 0x592c4207, 0x82200500, | ||
9533 | 0x0000000f, 0x0c01f806, 0x5c00b000, 0x5c028800, | ||
9534 | 0x5c026800, 0x5c025800, 0x1c01f000, 0x00109466, | ||
9535 | 0x00109488, 0x0010948f, 0x00109493, 0x0010949c, | ||
9536 | 0x00109463, 0x00109463, 0x00109463, 0x001094a0, | ||
9537 | 0x001094ac, 0x001094ac, 0x00109463, 0x00109463, | ||
9538 | 0x00109463, 0x00109463, 0x00109463, 0x4803c857, | ||
9539 | 0x0201f800, 0x001005d8, 0x814281c0, 0x04020012, | ||
9540 | 0x41785800, 0x592c0404, 0x8c00051c, 0x04020002, | ||
9541 | 0x59345c05, 0x442c2800, 0x59340008, 0x48002802, | ||
9542 | 0x59340009, 0x48002801, 0x59340006, 0x48002804, | ||
9543 | 0x59340007, 0x48002803, 0x4200b000, 0x0000000b, | ||
9544 | 0x0401f037, 0x592c0207, 0x8c00051e, 0x4200b000, | ||
9545 | 0x00000002, 0x04020032, 0x8204b540, 0x00000000, | ||
9546 | 0x0400002f, 0x44042800, 0x59326809, 0x59340400, | ||
9547 | 0x48002801, 0x4200b000, 0x00000002, 0x0401f028, | ||
9548 | 0x814281c0, 0x04020030, 0x59345c05, 0x442c2800, | ||
9549 | 0x4200b000, 0x00000001, 0x0401f021, 0x8340b540, | ||
9550 | 0x00000000, 0x0400001e, 0x0401f027, 0x814281c0, | ||
9551 | 0x04020025, 0x59340200, 0x44002800, 0x59340001, | ||
9552 | 0x48002801, 0x4200b000, 0x00000002, 0x0401f014, | ||
9553 | 0x8340b540, 0x00000000, 0x0402001b, 0x0401f010, | ||
9554 | 0x8340b540, 0x00000000, 0x0400000d, 0x0201f800, | ||
9555 | 0x00104a1f, 0x04000014, 0x8c20450e, 0x04000002, | ||
9556 | 0x497a6009, 0x4178b000, 0x497a5a06, 0x0401f004, | ||
9557 | 0x8340b540, 0x00000000, 0x0402000b, 0x592c0404, | ||
9558 | 0x8400051c, 0x48025c04, 0x592c0207, 0x8400051e, | ||
9559 | 0x48025a07, 0x0401f8aa, 0x497a6008, 0x0201f000, | ||
9560 | 0x000202da, 0x592c0207, 0x8c00051e, 0x4200b000, | ||
9561 | 0x00000002, 0x040207f2, 0x8204b540, 0x00000000, | ||
9562 | 0x040007ef, 0x44042800, 0x4200b000, 0x00000001, | ||
9563 | 0x0401f7eb, 0x4937c857, 0x4d300000, 0x0201f800, | ||
9564 | 0x0002075a, 0x04000011, 0x49366009, 0x4a026406, | ||
9565 | 0x00000001, 0x492e6008, 0x42000800, 0x0000000b, | ||
9566 | 0x0201f800, 0x00104571, 0x4d380000, 0x42027000, | ||
9567 | 0x00000043, 0x0201f800, 0x000207a1, 0x5c027000, | ||
9568 | 0x82000540, 0x00000001, 0x5c026000, 0x1c01f000, | ||
9569 | 0x4937c857, 0x4d2c0000, 0x59325808, 0x83380580, | ||
9570 | 0x00000015, 0x04020025, 0x59a80016, 0x82000580, | ||
9571 | 0x00000004, 0x04020021, 0x59a80010, 0x592c1009, | ||
9572 | 0x80080580, 0x04020010, 0x4d440000, 0x592e8c06, | ||
9573 | 0x592c0207, 0x4803c856, 0x82000500, 0x00000080, | ||
9574 | 0x84000548, 0x4d3c0000, 0x42027800, 0x00001000, | ||
9575 | 0x0201f800, 0x001049bb, 0x5c027800, 0x5c028800, | ||
9576 | 0x0401f004, 0x4803c856, 0x0201f800, 0x00104a1f, | ||
9577 | 0x0201f800, 0x00109037, 0x04000017, 0x4d400000, | ||
9578 | 0x42028000, 0x00000000, 0x41780800, 0x0401ff38, | ||
9579 | 0x5c028000, 0x0401f00e, 0x0201f800, 0x00104a1f, | ||
9580 | 0x040207f4, 0x0201f800, 0x00109037, 0x0400000a, | ||
9581 | 0x4c580000, 0x4200b000, 0x00000002, 0x0401f86e, | ||
9582 | 0x5c00b000, 0x0201f800, 0x0010801c, 0x0201f800, | ||
9583 | 0x0002077d, 0x5c025800, 0x1c01f000, 0x4937c857, | ||
9584 | 0x4d300000, 0x0201f800, 0x0002075a, 0x04000012, | ||
9585 | 0x49366009, 0x4a026406, 0x00000001, 0x4d3c0000, | ||
9586 | 0x4d380000, 0x417a7800, 0x0201f800, 0x00104567, | ||
9587 | 0x492e6008, 0x42027000, 0x00000004, 0x0201f800, | ||
9588 | 0x000207a1, 0x5c027000, 0x5c027800, 0x82000540, | ||
9589 | 0x00000001, 0x5c026000, 0x1c01f000, 0x4937c857, | ||
9590 | 0x4d300000, 0x0201f800, 0x00107942, 0x0400000d, | ||
9591 | 0x49366009, 0x4a026406, 0x00000001, 0x492e6008, | ||
9592 | 0x4d380000, 0x42027000, 0x00000051, 0x0201f800, | ||
9593 | 0x000207a1, 0x5c027000, 0x82000540, 0x00000001, | ||
9594 | 0x5c026000, 0x1c01f000, 0x4933c857, 0x4c580000, | ||
9595 | 0x59325808, 0x83383580, 0x00000015, 0x04020011, | ||
9596 | 0x592c0008, 0x82000500, 0x00ffffff, 0x0402000a, | ||
9597 | 0x0201f800, 0x00105755, 0x59cc0000, 0x82000500, | ||
9598 | 0x00ffffff, 0x44002800, 0x4200b000, 0x00000001, | ||
9599 | 0x0401f80b, 0x0201f800, 0x00107b38, 0x0401f006, | ||
9600 | 0x4200b000, 0x00000002, 0x0401f823, 0x0201f800, | ||
9601 | 0x0010801c, 0x5c00b000, 0x1c01f000, 0x492fc857, | ||
9602 | 0x4c580000, 0x4c000000, 0x8058b1c0, 0x0400000b, | ||
9603 | 0x82580500, 0xfffffff0, 0x02020800, 0x001005d8, | ||
9604 | 0x8058b0d0, 0x592c0408, 0x82000500, 0xfffff0ff, | ||
9605 | 0x80580540, 0x48025c08, 0x5c000000, 0x5c00b000, | ||
9606 | 0x1c01f000, 0x492fc857, 0x4c000000, 0x4c040000, | ||
9607 | 0x800000d8, 0x592c0c08, 0x82040d00, 0xffff0fff, | ||
9608 | 0x80040540, 0x48025c08, 0x5c000800, 0x5c000000, | ||
9609 | 0x1c01f000, 0x4933c857, 0x4d2c0000, 0x59325808, | ||
9610 | 0x592c0207, 0x8400055e, 0x48025a07, 0x4c500000, | ||
9611 | 0x4c540000, 0x4c580000, 0x0401ffd9, 0x0201f800, | ||
9612 | 0x00105755, 0x46002800, 0x00000018, 0x80142800, | ||
9613 | 0x8058b040, 0x83cca400, 0x00000007, 0x4014a800, | ||
9614 | 0x0201f800, 0x0010ab17, 0x5c00b000, 0x5c00a800, | ||
9615 | 0x5c00a000, 0x5c025800, 0x1c01f000, 0x59325808, | ||
9616 | 0x592c0204, 0x82000580, 0x00000152, 0x1c01f000, | ||
9617 | 0x5930001f, 0x80000540, 0x02020800, 0x00100d56, | ||
9618 | 0x1c01f000, 0x4d2c0000, 0x59325808, 0x59300203, | ||
9619 | 0x4933c857, 0x492fc857, 0x493bc857, 0x4803c857, | ||
9620 | 0x82003480, 0x0000000e, 0x02021800, 0x001005d8, | ||
9621 | 0x0c01f803, 0x5c025800, 0x1c01f000, 0x001095bd, | ||
9622 | 0x001095c8, 0x00109603, 0x001095bd, 0x001095bd, | ||
9623 | 0x001095bd, 0x001095bd, 0x001095bd, 0x001095bf, | ||
9624 | 0x001095bd, 0x001095bd, 0x001095bd, 0x001095bd, | ||
9625 | 0x001095bd, 0x0201f800, 0x001005d8, 0x83383480, | ||
9626 | 0x00000056, 0x02021800, 0x001005d8, 0x493a6403, | ||
9627 | 0x4a026203, 0x00000001, 0x0201f000, 0x0010672b, | ||
9628 | 0x83380580, 0x00000013, 0x0402000f, 0x592c000c, | ||
9629 | 0x800001c0, 0x04000006, 0x4a026203, 0x00000002, | ||
9630 | 0x59a80037, 0x48026206, 0x1c01f000, 0x4a025a06, | ||
9631 | 0x00000000, 0x0201f800, 0x000202da, 0x0201f000, | ||
9632 | 0x0002077d, 0x83380580, 0x00000027, 0x0400001a, | ||
9633 | 0x83380580, 0x00000014, 0x04000012, 0x83380580, | ||
9634 | 0x00000015, 0x04000005, 0x83380580, 0x00000016, | ||
9635 | 0x02020800, 0x001005d8, 0x0201f800, 0x00106f60, | ||
9636 | 0x02020000, 0x00107974, 0x59300203, 0x82000580, | ||
9637 | 0x00000002, 0x02020800, 0x001005d8, 0x0401f014, | ||
9638 | 0x0201f800, 0x00106bbf, 0x4a02580e, 0x00000011, | ||
9639 | 0x0401f005, 0x0201f800, 0x00106bbf, 0x4a02580e, | ||
9640 | 0x00000010, 0x4a025a06, 0x00000031, 0x4a02580d, | ||
9641 | 0x00000004, 0x0201f800, 0x000202da, 0x0201f800, | ||
9642 | 0x00104c19, 0x0201f000, 0x00107911, 0x59341400, | ||
9643 | 0x82081d00, 0x000000ff, 0x59300c03, 0x480bc857, | ||
9644 | 0x4807c857, 0x82040580, 0x00000053, 0x0400002e, | ||
9645 | 0x82040580, 0x00000002, 0x04000016, 0x82040580, | ||
9646 | 0x00000001, 0x04000017, 0x82040580, 0x00000003, | ||
9647 | 0x0400001c, 0x82040580, 0x00000005, 0x0400001d, | ||
9648 | 0x82040580, 0x00000033, 0x0400001a, 0x82040580, | ||
9649 | 0x00000000, 0x0400001b, 0x82040580, 0x00000004, | ||
9650 | 0x02020800, 0x001005d8, 0x0401f8a1, 0x0401f016, | ||
9651 | 0x820c0580, 0x00000003, 0x0400084c, 0x0401f012, | ||
9652 | 0x820c0580, 0x0000000b, 0x0402000f, 0x42000800, | ||
9653 | 0x00000007, 0x0201f800, 0x00104571, 0x0401f00a, | ||
9654 | 0x820c0580, 0x00000005, 0x04000864, 0x0401f006, | ||
9655 | 0x820c0580, 0x00000009, 0x04000889, 0x0401f002, | ||
9656 | 0x0401f893, 0x4a026403, 0x00000052, 0x59a81016, | ||
9657 | 0x592c040b, 0x8c000500, 0x04000003, 0x42001000, | ||
9658 | 0x00000008, 0x592c040b, 0x8c000516, 0x04000003, | ||
9659 | 0x82081400, 0x00000018, 0x592c000c, 0x497a580d, | ||
9660 | 0x497a580e, 0x80080c80, 0x04000009, 0x04001005, | ||
9661 | 0x4a025a06, 0x00000007, 0x40001000, 0x0401f006, | ||
9662 | 0x4a025a06, 0x00000015, 0x0401f003, 0x4a025a06, | ||
9663 | 0x00000000, 0x480a580c, 0x82081400, 0x00000003, | ||
9664 | 0x80081104, 0x0201f800, 0x00107ab5, 0x04000010, | ||
9665 | 0x592c1001, 0x480a600b, 0x58080800, 0x82080400, | ||
9666 | 0x00000002, 0x592c1011, 0x592c1812, 0x42003000, | ||
9667 | 0x00000000, 0x42002000, 0x00101200, 0x0201f800, | ||
9668 | 0x00107c32, 0x04000002, 0x1c01f000, 0x4a025a06, | ||
9669 | 0x0000002c, 0x497a580c, 0x0201f800, 0x000202da, | ||
9670 | 0x0201f000, 0x0002077d, 0x83380580, 0x00000015, | ||
9671 | 0x0402000a, 0x59a80005, 0x8c000514, 0x0402000b, | ||
9672 | 0x0201f800, 0x0010462a, 0x42000800, 0x00000004, | ||
9673 | 0x0201f000, 0x00104571, 0x42000800, 0x00000007, | ||
9674 | 0x0201f000, 0x00104571, 0x0201f800, 0x0010513b, | ||
9675 | 0x42001000, 0x00000010, 0x04020009, 0x59340002, | ||
9676 | 0x82000500, 0x00ff0000, 0x82000580, 0x00ff0000, | ||
9677 | 0x040007ec, 0x42001000, 0x00000008, 0x0201f800, | ||
9678 | 0x00104c6d, 0x040007e7, 0x592c040b, 0x84000540, | ||
9679 | 0x48025c0b, 0x0401f7e9, 0x83380580, 0x00000015, | ||
9680 | 0x0402000f, 0x59a80005, 0x8c000514, 0x04020010, | ||
9681 | 0x0201f800, 0x0010468d, 0x4d3c0000, 0x417a7800, | ||
9682 | 0x0201f800, 0x00104567, 0x5c027800, 0x42000800, | ||
9683 | 0x00000006, 0x0201f000, 0x00104571, 0x42000800, | ||
9684 | 0x00000004, 0x0201f000, 0x00104571, 0x0201f800, | ||
9685 | 0x0010513b, 0x42001000, 0x00000010, 0x04020009, | ||
9686 | 0x59340002, 0x82000500, 0x00ff0000, 0x82000580, | ||
9687 | 0x00ff0000, 0x040007e7, 0x42001000, 0x00000008, | ||
9688 | 0x0201f800, 0x00104c6d, 0x040007e2, 0x592c040b, | ||
9689 | 0x84000540, 0x48025c0b, 0x0401f7e9, 0x42000800, | ||
9690 | 0x00000004, 0x0201f000, 0x00104571, 0x83380580, | ||
9691 | 0x00000015, 0x04020005, 0x0201f800, 0x0010a2c8, | ||
9692 | 0x02000800, 0x001048c1, 0x1c01f000, 0x83380580, | ||
9693 | 0x00000015, 0x0402001d, 0x4c580000, 0x83cc1400, | ||
9694 | 0x00000008, 0x4200b000, 0x00000002, 0x83341c00, | ||
9695 | 0x00000006, 0x0201f800, 0x0010855a, 0x04020012, | ||
9696 | 0x83cc1400, 0x0000000a, 0x4200b000, 0x00000002, | ||
9697 | 0x83341c00, 0x00000008, 0x0201f800, 0x0010855a, | ||
9698 | 0x04020009, 0x59342200, 0x59cc1007, 0x800811c0, | ||
9699 | 0x04000003, 0x480a6801, 0x84102542, 0x8410251a, | ||
9700 | 0x48126a00, 0x5c00b000, 0x1c01f000, 0x42000000, | ||
9701 | 0x0010b87b, 0x0201f800, 0x0010aa47, 0x0201f800, | ||
9702 | 0x00106c55, 0x59300203, 0x4933c857, 0x4803c857, | ||
9703 | 0x82000c80, 0x0000000e, 0x02021800, 0x001005d8, | ||
9704 | 0x0c01f803, 0x0201f000, 0x00106c4b, 0x0010970b, | ||
9705 | 0x0010971a, 0x0010970c, 0x00109709, 0x00109709, | ||
9706 | 0x00109709, 0x00109709, 0x00109709, 0x00109709, | ||
9707 | 0x00109709, 0x00109709, 0x00109709, 0x00109709, | ||
9708 | 0x00109709, 0x0201f800, 0x001005d8, 0x1c01f000, | ||
9709 | 0x59300403, 0x82000580, 0x00000052, 0x02000000, | ||
9710 | 0x00108d85, 0x0201f800, 0x00104c19, 0x59325808, | ||
9711 | 0x4a025a06, 0x00000006, 0x0201f800, 0x000202da, | ||
9712 | 0x0201f000, 0x00107911, 0x59301804, 0x840c0520, | ||
9713 | 0x48026004, 0x598c000d, 0x81300580, 0x04020010, | ||
9714 | 0x8c0c1d20, 0x04020010, 0x42001000, 0x0010b7f6, | ||
9715 | 0x50081000, 0x58080002, 0x82000580, 0x00000100, | ||
9716 | 0x0400000e, 0x5808000c, 0x81300580, 0x02020800, | ||
9717 | 0x001005d8, 0x4978100c, 0x0401f003, 0x8c0c1d20, | ||
9718 | 0x040207dc, 0x0201f800, 0x001068d3, 0x040007d9, | ||
9719 | 0x0201f800, 0x001005d8, 0x0201f800, 0x00106e8e, | ||
9720 | 0x040007f9, 0x59300203, 0x82000c80, 0x0000000e, | ||
9721 | 0x02021800, 0x001005d8, 0x0c01f7bd, 0x4933c857, | ||
9722 | 0x4c500000, 0x4c540000, 0x4c580000, 0x592c0c07, | ||
9723 | 0x4806580a, 0x59cc0809, 0x48065807, 0x59cc0a08, | ||
9724 | 0x4806580b, 0x59c80817, 0x82040500, 0x000003ff, | ||
9725 | 0x800010c4, 0x8c040d14, 0x04000005, 0x59cc0002, | ||
9726 | 0x82000500, 0x00000003, 0x80081480, 0x82080480, | ||
9727 | 0x000000f1, 0x02021800, 0x001005d8, 0x480a621a, | ||
9728 | 0x412c0800, 0x0201f800, 0x001007d3, 0x02000800, | ||
9729 | 0x001005d8, 0x492c0809, 0x58040408, 0x84000552, | ||
9730 | 0x84000540, 0x48000c08, 0x82081400, 0x00000003, | ||
9731 | 0x80081104, 0x83cca400, 0x00000006, 0x832cac00, | ||
9732 | 0x00000004, 0x42000800, 0x00000010, 0x82080480, | ||
9733 | 0x00000010, 0x04021003, 0x40080800, 0x80000580, | ||
9734 | 0x4004b000, 0x4c000000, 0x0201f800, 0x0010ab28, | ||
9735 | 0x5c000000, 0x800001c0, 0x0400000d, 0x412c1000, | ||
9736 | 0x4c000000, 0x0201f800, 0x001007d3, 0x02000800, | ||
9737 | 0x001005d8, 0x492c1001, 0x832cac00, 0x00000004, | ||
9738 | 0x5c000000, 0x40001000, 0x0401f7e9, 0x5c00b000, | ||
9739 | 0x5c00a800, 0x5c00a000, 0x1c01f000, 0x4933c857, | ||
9740 | 0x4d2c0000, 0x4c380000, 0x59325808, 0x5930021a, | ||
9741 | 0x48025a08, 0x59301011, 0x800811c0, 0x04020008, | ||
9742 | 0x4a025a06, 0x00000000, 0x592c000b, 0x82000500, | ||
9743 | 0x00000c00, 0x0400000b, 0x0401f00b, 0x8c08153e, | ||
9744 | 0x04000006, 0x4a025a06, 0x00000007, 0x80081080, | ||
9745 | 0x80081000, 0x0401f003, 0x4a025a06, 0x00000015, | ||
9746 | 0x480a5807, 0x42000000, 0x0010bed9, 0x50007000, | ||
9747 | 0x5838000b, 0x80000540, 0x04020008, 0x4930700c, | ||
9748 | 0x4930700b, 0x58380002, 0x82000580, 0x00000000, | ||
9749 | 0x04020809, 0x0401f005, 0x82001400, 0x00000000, | ||
9750 | 0x45301000, 0x4930700b, 0x5c007000, 0x5c025800, | ||
9751 | 0x1c01f000, 0x4933c857, 0x592c0009, 0x40001000, | ||
9752 | 0x4800700a, 0x82080400, 0x00000004, 0x48007003, | ||
9753 | 0x592c000d, 0x592c100e, 0x48007007, 0x48087008, | ||
9754 | 0x592c000a, 0x592c1208, 0x80080c80, 0x04001002, | ||
9755 | 0x40001000, 0x82081400, 0x00000003, 0x80081104, | ||
9756 | 0x82080480, 0x00000010, 0x04021003, 0x80000580, | ||
9757 | 0x0401f003, 0x42001000, 0x00000010, 0x4800700d, | ||
9758 | 0x48087004, 0x800810c4, 0x48087005, 0x40381000, | ||
9759 | 0x0201f800, 0x00100858, 0x1c01f000, 0x4d2c0000, | ||
9760 | 0x0201f800, 0x001007d3, 0x02000800, 0x001005d8, | ||
9761 | 0x42000800, 0x0010bed9, 0x452c0800, 0x497a580b, | ||
9762 | 0x497a580c, 0x497a580d, 0x4a025809, 0x001097ea, | ||
9763 | 0x4a025802, 0x00000100, 0x4a025801, 0x00000000, | ||
9764 | 0x5c025800, 0x1c01f000, 0x4833c857, 0x4d300000, | ||
9765 | 0x4d2c0000, 0x4c5c0000, 0x4030b800, 0x585c000a, | ||
9766 | 0x80025d40, 0x04020004, 0x585c000c, 0x4c000000, | ||
9767 | 0x0401f044, 0x585c0002, 0x82000580, 0x00000100, | ||
9768 | 0x04020022, 0x592c0801, 0x4c040000, 0x0201f800, | ||
9769 | 0x001007f4, 0x5c000800, 0x800409c0, 0x0400001c, | ||
9770 | 0x4804b80a, 0x585c100d, 0x800811c0, 0x04020005, | ||
9771 | 0x40065800, 0x0201f800, 0x001007fd, 0x0401f014, | ||
9772 | 0x82080480, 0x00000010, 0x04021003, 0x80000580, | ||
9773 | 0x0401f003, 0x42001000, 0x00000010, 0x4800b80d, | ||
9774 | 0x4808b804, 0x800810c4, 0x4808b805, 0x82040400, | ||
9775 | 0x00000004, 0x4800b803, 0x405c1000, 0x0201f800, | ||
9776 | 0x00100858, 0x0401f025, 0x0401f828, 0x585c000c, | ||
9777 | 0x80026540, 0x59300000, 0x80000d40, 0x04020002, | ||
9778 | 0x4800b80b, 0x4800b80c, 0x497a6000, 0x4c000000, | ||
9779 | 0x4978b80a, 0x59325808, 0x4a025a04, 0x00000103, | ||
9780 | 0x59300402, 0x48025c06, 0x592c100b, 0x4c080000, | ||
9781 | 0x0201f800, 0x000202c1, 0x0201f800, 0x0010912a, | ||
9782 | 0x5c001000, 0x8c081518, 0x04000004, 0x0201f800, | ||
9783 | 0x001091d1, 0x0401f003, 0x0201f800, 0x0002077d, | ||
9784 | 0x405c7000, 0x5c000000, 0x80026540, 0x04000003, | ||
9785 | 0x59325808, 0x0401ff78, 0x5c00b800, 0x5c025800, | ||
9786 | 0x5c026000, 0x1c01f000, 0x483bc857, 0x5838000a, | ||
9787 | 0x40025800, 0x0201f800, 0x001007fd, 0x5838000c, | ||
9788 | 0x80026540, 0x59300008, 0x80025d40, 0x4a025a06, | ||
9789 | 0x00000002, 0x1c01f000, 0x4803c857, 0x4d1c0000, | ||
9790 | 0x497a601c, 0x41323800, 0x40026000, 0x4d3c0000, | ||
9791 | 0x42027800, 0x00000005, 0x0401f83c, 0x5c027800, | ||
9792 | 0x411e6000, 0x59300414, 0x84000502, 0x48026414, | ||
9793 | 0x5c023800, 0x1c01f000, 0x481bc857, 0x4933c857, | ||
9794 | 0x4c5c0000, 0x4c600000, 0x4010b800, 0x4014c000, | ||
9795 | 0x0201f800, 0x0010a942, 0x0201f800, 0x00103b25, | ||
9796 | 0x04000008, 0x40602800, 0x405c3000, 0x0201f800, | ||
9797 | 0x0010a446, 0x82000540, 0x00000001, 0x0401f002, | ||
9798 | 0x80000580, 0x5c00c000, 0x5c00b800, 0x1c01f000, | ||
9799 | 0x4803c856, 0x4d300000, 0x42026000, 0x0010d1c0, | ||
9800 | 0x59a8000e, 0x81640580, 0x04000016, 0x59300c06, | ||
9801 | 0x82040580, 0x00000001, 0x04000009, 0x82040580, | ||
9802 | 0x00000004, 0x04000006, 0x82040580, 0x00000010, | ||
9803 | 0x02000800, 0x00108cf9, 0x0401f005, 0x4807c857, | ||
9804 | 0x0201f800, 0x001092d7, 0x04020808, 0x83326400, | ||
9805 | 0x00000024, 0x41580000, 0x81300480, 0x040017e9, | ||
9806 | 0x5c026000, 0x1c01f000, 0x4933c857, 0x59300403, | ||
9807 | 0x4803c857, 0x0201f800, 0x00106c55, 0x4df00000, | ||
9808 | 0x59300406, 0x4803c857, 0x82000d80, 0x00000002, | ||
9809 | 0x04000018, 0x82000d80, 0x00000001, 0x04000009, | ||
9810 | 0x82000d80, 0x00000004, 0x04000006, 0x4933c856, | ||
9811 | 0x5c03e000, 0x02000800, 0x00106c4b, 0x0401f03c, | ||
9812 | 0x59300203, 0x82000d80, 0x00000001, 0x04000018, | ||
9813 | 0x82000d80, 0x00000002, 0x04000026, 0x82000d80, | ||
9814 | 0x00000005, 0x04000023, 0x0201f800, 0x001005d8, | ||
9815 | 0x59300203, 0x82000d80, 0x00000009, 0x0400000c, | ||
9816 | 0x82000d80, 0x0000000b, 0x04000009, 0x82000d80, | ||
9817 | 0x0000000a, 0x04000017, 0x82000d80, 0x0000000c, | ||
9818 | 0x04000014, 0x0201f800, 0x001005d8, 0x598c000d, | ||
9819 | 0x81300580, 0x04020004, 0x0201f800, 0x00106e8e, | ||
9820 | 0x0402000c, 0x59300004, 0x4803c857, 0x8c000520, | ||
9821 | 0x04000004, 0x84000520, 0x48026004, 0x0401f005, | ||
9822 | 0x0201f800, 0x001068d3, 0x02020800, 0x001005d8, | ||
9823 | 0x5c03e000, 0x02000800, 0x00106c4b, 0x59300406, | ||
9824 | 0x82000d80, 0x00000002, 0x04000009, 0x0201f800, | ||
9825 | 0x00104c19, 0x0201f800, 0x0010914e, 0x02000800, | ||
9826 | 0x0010801c, 0x8d3e7d00, 0x04000003, 0x0201f000, | ||
9827 | 0x00107911, 0x4a02621d, 0x00000001, 0x4a026403, | ||
9828 | 0x00000085, 0x4a026203, 0x00000009, 0x4a026406, | ||
9829 | 0x00000002, 0x42000800, 0x8000004b, 0x0201f000, | ||
9830 | 0x00020721, 0x4933c857, 0x59368c03, 0x4c180000, | ||
9831 | 0x59300203, 0x82003480, 0x0000000e, 0x02021800, | ||
9832 | 0x001005d8, 0x0c01f803, 0x5c003000, 0x1c01f000, | ||
9833 | 0x0010990a, 0x00109dcf, 0x00109edb, 0x0010990a, | ||
9834 | 0x0010990a, 0x0010990a, 0x0010990a, 0x0010990a, | ||
9835 | 0x0010992d, 0x0010990a, 0x0010990a, 0x0010990a, | ||
9836 | 0x0010990a, 0x0010990a, 0x0201f800, 0x001005d8, | ||
9837 | 0x4933c857, 0x42028800, 0x0000ffff, 0x813669c0, | ||
9838 | 0x04000002, 0x59368c03, 0x4c180000, 0x59300203, | ||
9839 | 0x82003480, 0x0000000e, 0x02021800, 0x001005d8, | ||
9840 | 0x0c01f803, 0x5c003000, 0x1c01f000, 0x00109929, | ||
9841 | 0x0010a180, 0x00109929, 0x00109929, 0x00109929, | ||
9842 | 0x00109929, 0x00109929, 0x0010a952, 0x0010a0ed, | ||
9843 | 0x0010a52c, 0x0010a562, 0x0010a52c, 0x0010a562, | ||
9844 | 0x00109929, 0x0201f800, 0x001005d8, 0x0201f800, | ||
9845 | 0x001005d8, 0x83383480, 0x00000051, 0x02021800, | ||
9846 | 0x001005d8, 0x41380000, 0x493bc857, 0x4d1c0000, | ||
9847 | 0x4d400000, 0x0c01f804, 0x5c028000, 0x5c023800, | ||
9848 | 0x1c01f000, 0x0010998a, 0x00109b69, 0x0010998a, | ||
9849 | 0x0010998a, 0x0010998a, 0x00109b74, 0x0010998a, | ||
9850 | 0x0010998a, 0x0010998a, 0x0010998a, 0x0010998a, | ||
9851 | 0x0010998a, 0x0010998a, 0x0010998a, 0x0010998a, | ||
9852 | 0x0010998a, 0x0010998a, 0x0010998a, 0x0010998a, | ||
9853 | 0x0010998a, 0x0010998a, 0x0010998a, 0x0010998a, | ||
9854 | 0x001099ac, 0x001099f5, 0x00109a0c, 0x00109a62, | ||
9855 | 0x00109ac6, 0x00109b04, 0x00109b34, 0x0010998a, | ||
9856 | 0x0010998a, 0x00109b7c, 0x0010998a, 0x0010998a, | ||
9857 | 0x00109b8a, 0x00109b93, 0x0010998a, 0x0010998a, | ||
9858 | 0x0010998a, 0x0010998a, 0x0010998a, 0x00109c15, | ||
9859 | 0x0010998a, 0x0010998a, 0x00109a9a, 0x0010998a, | ||
9860 | 0x0010998a, 0x00109bec, 0x0010998a, 0x0010998a, | ||
9861 | 0x0010998a, 0x00109c23, 0x0010998a, 0x0010998a, | ||
9862 | 0x0010998a, 0x00109c6c, 0x0010998a, 0x0010998a, | ||
9863 | 0x0010998a, 0x0010998a, 0x0010998a, 0x0010998a, | ||
9864 | 0x00109cb9, 0x0010998a, 0x00109ce5, 0x00109cf0, | ||
9865 | 0x0010998a, 0x0010998a, 0x0010998c, 0x00109cfb, | ||
9866 | 0x0010998a, 0x0010998a, 0x0010998a, 0x0010999b, | ||
9867 | 0x0010998a, 0x0010998a, 0x0010998a, 0x00109d02, | ||
9868 | 0x00109d0a, 0x00109d28, 0x0201f800, 0x001005d8, | ||
9869 | 0x4933c857, 0x0201f800, 0x0010a592, 0x040203a4, | ||
9870 | 0x0201f800, 0x0010210a, 0x040203a1, 0x59cc0407, | ||
9871 | 0x4802601c, 0x4a026403, 0x00000045, 0x4a026203, | ||
9872 | 0x00000001, 0x0201f000, 0x0010672b, 0x4933c857, | ||
9873 | 0x0201f800, 0x0010a592, 0x04020395, 0x0201f800, | ||
9874 | 0x0010210a, 0x04020392, 0x0401fbce, 0x040201a0, | ||
9875 | 0x59cc0007, 0x4802601c, 0x4a026403, 0x0000004a, | ||
9876 | 0x4a026203, 0x00000001, 0x0201f000, 0x0010672b, | ||
9877 | 0x4933c857, 0x0201f800, 0x0010210a, 0x04020009, | ||
9878 | 0x0201f800, 0x001048ec, 0x04020006, 0x82000500, | ||
9879 | 0x00000009, 0x82000580, 0x00000008, 0x04020008, | ||
9880 | 0x4a026403, 0x00000009, 0x4a02641a, 0x00000009, | ||
9881 | 0x4a02621a, 0x00000000, 0x0401f1b2, 0x0201f800, | ||
9882 | 0x001048c1, 0x0201f800, 0x00104a09, 0x04000021, | ||
9883 | 0x0201f800, 0x001049ed, 0x0400001e, 0x0201f800, | ||
9884 | 0x0010a252, 0x04020025, 0x42028000, 0x00000029, | ||
9885 | 0x4d3c0000, 0x417a7800, 0x0201f800, 0x0010203c, | ||
9886 | 0x5c027800, 0x0201f800, 0x0010462a, 0x836c0580, | ||
9887 | 0x00000002, 0x04020004, 0x59a8001b, 0x80000000, | ||
9888 | 0x4803501b, 0x4a026403, 0x00000008, 0x42003000, | ||
9889 | 0x00000003, 0x0201f800, 0x00103b25, 0x04000191, | ||
9890 | 0x4a026203, 0x00000007, 0x41782800, 0x0401f180, | ||
9891 | 0x0201f800, 0x0010a3da, 0x040207e1, 0x4a026403, | ||
9892 | 0x00000009, 0x4a02641a, 0x0000000e, 0x4a02621a, | ||
9893 | 0x00001900, 0x0401f183, 0x4a026403, 0x00000009, | ||
9894 | 0x4a02641a, 0x00000003, 0x4a02621a, 0x00000f00, | ||
9895 | 0x0401f17c, 0x4933c857, 0x0201f800, 0x0010210a, | ||
9896 | 0x0402033b, 0x0201f800, 0x001048ec, 0x04020338, | ||
9897 | 0x493a6403, 0x0201f800, 0x0010a22d, 0x04020006, | ||
9898 | 0x42003000, 0x00000005, 0x4a026403, 0x00000006, | ||
9899 | 0x0401f7d9, 0x4a026403, 0x00000007, 0x4a02641a, | ||
9900 | 0x00000009, 0x4a02621a, 0x00000000, 0x0401f165, | ||
9901 | 0x4933c857, 0x0201f800, 0x001048ec, 0x04020324, | ||
9902 | 0x0201f800, 0x0010a592, 0x02000800, 0x0010210a, | ||
9903 | 0x0402031f, 0x0201f800, 0x00104a09, 0x04020005, | ||
9904 | 0x42027800, 0x00000001, 0x0201f800, 0x00104567, | ||
9905 | 0x0201f800, 0x001049fc, 0x0402002b, 0x59cc0206, | ||
9906 | 0x82003500, 0x00000003, 0x0402002e, 0x82003480, | ||
9907 | 0x00000014, 0x0400102b, 0x5934300a, 0x84183516, | ||
9908 | 0x82000580, 0x00000014, 0x04020002, 0x84183556, | ||
9909 | 0x481a680a, 0x59cc0406, 0x82000500, 0x00000003, | ||
9910 | 0x04020020, 0x0201f800, 0x0010a29f, 0x04020028, | ||
9911 | 0x0201f800, 0x001049e7, 0x0402000c, 0x417a7800, | ||
9912 | 0x0201f800, 0x001020a1, 0x42003000, 0x00000006, | ||
9913 | 0x0201f800, 0x0010a93a, 0x42000000, 0x0010b865, | ||
9914 | 0x0201f800, 0x0010aa47, 0x0201f800, 0x0010468d, | ||
9915 | 0x4a026403, 0x0000000a, 0x42003000, 0x00000020, | ||
9916 | 0x0401f795, 0x4a026403, 0x0000000b, 0x4a02641a, | ||
9917 | 0x00000009, 0x4a02621a, 0x00001e00, 0x0401f121, | ||
9918 | 0x42000000, 0x0010b860, 0x0201f800, 0x0010aa47, | ||
9919 | 0x4a026403, 0x0000000b, 0x4a02641a, 0x00000007, | ||
9920 | 0x4a02621a, 0x00000000, 0x0401f116, 0x4a026403, | ||
9921 | 0x0000000b, 0x4a02641a, 0x00000003, 0x4a02621a, | ||
9922 | 0x00000000, 0x0401f10f, 0x4933c857, 0x0201f800, | ||
9923 | 0x001048ec, 0x040202ce, 0x0201f800, 0x0010a592, | ||
9924 | 0x040202cb, 0x0201f800, 0x0010210a, 0x040202c8, | ||
9925 | 0x59cc0206, 0x82003500, 0x00000003, 0x0402001d, | ||
9926 | 0x82003480, 0x00000014, 0x0400101a, 0x59cc0406, | ||
9927 | 0x82000500, 0x00000003, 0x04020016, 0x59340400, | ||
9928 | 0x82000580, 0x00000707, 0x04000019, 0x417a7800, | ||
9929 | 0x0201f800, 0x001020a1, 0x42003000, 0x0000000a, | ||
9930 | 0x0201f800, 0x0010a93a, 0x42000000, 0x0010b862, | ||
9931 | 0x0201f800, 0x0010aa47, 0x4a026403, 0x0000000c, | ||
9932 | 0x41782800, 0x42003000, 0x00000021, 0x0401f752, | ||
9933 | 0x4a026403, 0x0000000d, 0x4a02641a, 0x00000007, | ||
9934 | 0x4a02621a, 0x00000000, 0x0401f0de, 0x4a026403, | ||
9935 | 0x0000000d, 0x4a02641a, 0x00000009, 0x4a02621a, | ||
9936 | 0x00001e00, 0x0401f0d7, 0x4933c857, 0x0201f800, | ||
9937 | 0x001048ec, 0x04020296, 0x0201f800, 0x0010a592, | ||
9938 | 0x04020293, 0x0201f800, 0x0010210a, 0x04020290, | ||
9939 | 0x0401facc, 0x0402001a, 0x493a6403, 0x4c5c0000, | ||
9940 | 0x0401fad2, 0x0402000e, 0x4a026403, 0x0000002e, | ||
9941 | 0x405c2800, 0x42003000, 0x00000024, 0x0201f800, | ||
9942 | 0x00103b25, 0x0400000c, 0x4a026203, 0x00000007, | ||
9943 | 0x405c2800, 0x5c00b800, 0x0401f0ad, 0x4a026403, | ||
9944 | 0x0000000d, 0x4a02641a, 0x00000007, 0x4a02621a, | ||
9945 | 0x00000000, 0x5c00b800, 0x0401f0b2, 0x4a026403, | ||
9946 | 0x0000000d, 0x4a02641a, 0x00000009, 0x4a02621a, | ||
9947 | 0x00001e00, 0x0401f0ab, 0x4933c857, 0x0201f800, | ||
9948 | 0x001048ec, 0x040206ef, 0x59a80026, 0x82000500, | ||
9949 | 0x00000009, 0x82000580, 0x00000008, 0x040006e9, | ||
9950 | 0x0201f800, 0x001049fc, 0x0402002d, 0x0201f800, | ||
9951 | 0x0010a2a7, 0x04020007, 0x4a026403, 0x0000000e, | ||
9952 | 0x41782800, 0x42003000, 0x00000052, 0x0401f702, | ||
9953 | 0x4933c857, 0x42003000, 0x00000003, 0x0201f800, | ||
9954 | 0x0010a942, 0x4d3c0000, 0x417a7800, 0x0201f800, | ||
9955 | 0x0010203c, 0x5c027800, 0x42000000, 0x0010b864, | ||
9956 | 0x0201f800, 0x0010aa47, 0x59340200, 0x84000558, | ||
9957 | 0x48026a00, 0x42000800, 0x0000000b, 0x0201f800, | ||
9958 | 0x00104571, 0x0201f800, 0x00103b25, 0x04000076, | ||
9959 | 0x42003000, 0x00000007, 0x0401f062, 0x4933c857, | ||
9960 | 0x4a026403, 0x0000000f, 0x4a02641a, 0x00000003, | ||
9961 | 0x4a02621a, 0x00001e00, 0x0401f072, 0x59340400, | ||
9962 | 0x82000580, 0x00000703, 0x040007f5, 0x0401f040, | ||
9963 | 0x4933c857, 0x0201f800, 0x001048ec, 0x0402022c, | ||
9964 | 0x59a80026, 0x82000500, 0x00000009, 0x82000580, | ||
9965 | 0x00000008, 0x04000226, 0x0201f800, 0x001049f3, | ||
9966 | 0x0402002f, 0x0201f800, 0x0010a2c8, 0x02000800, | ||
9967 | 0x0010a252, 0x04020007, 0x4a026403, 0x00000010, | ||
9968 | 0x41782800, 0x42003000, 0x00000050, 0x0401f6c2, | ||
9969 | 0x4d3c0000, 0x417a7800, 0x0201f800, 0x0010203c, | ||
9970 | 0x5c027800, 0x42003000, 0x00000003, 0x0201f800, | ||
9971 | 0x0010a942, 0x42000000, 0x0010b864, 0x0201f800, | ||
9972 | 0x0010aa47, 0x59340200, 0x84000558, 0x48026a00, | ||
9973 | 0x0401f7c5, 0x4a026403, 0x00000011, 0x4a02641a, | ||
9974 | 0x00000003, 0x4a02621a, 0x00001e00, 0x0401f03d, | ||
9975 | 0x4933c857, 0x0201f800, 0x0010210a, 0x02000800, | ||
9976 | 0x0010a592, 0x040201fa, 0x0401fa36, 0x04020008, | ||
9977 | 0x4a026403, 0x00000012, 0x0401f032, 0x59340400, | ||
9978 | 0x82000580, 0x00000703, 0x040007eb, 0x4d3c0000, | ||
9979 | 0x417a7800, 0x42028000, 0x00000029, 0x0201f800, | ||
9980 | 0x0010203c, 0x5c027800, 0x42003000, 0x00000017, | ||
9981 | 0x0201f800, 0x0010a942, 0x42000000, 0x0010b864, | ||
9982 | 0x0201f800, 0x0010aa47, 0x0201f800, 0x00103b25, | ||
9983 | 0x04000015, 0x42003000, 0x00000006, 0x41782800, | ||
9984 | 0x42028000, 0x00000029, 0x4933c857, 0x4a026403, | ||
9985 | 0x00000001, 0x4a026203, 0x00000007, 0x0201f800, | ||
9986 | 0x0010a974, 0x0201f000, 0x0010a43e, 0x42028000, | ||
9987 | 0x00000046, 0x0201f800, 0x0010a974, 0x0201f000, | ||
9988 | 0x0010a43e, 0x4933c857, 0x4a026403, 0x00000001, | ||
9989 | 0x42000800, 0x0000000b, 0x0201f800, 0x00104571, | ||
9990 | 0x4a026203, 0x00000001, 0x0201f000, 0x0010672b, | ||
9991 | 0x4933c857, 0x42000800, 0x00000009, 0x0201f800, | ||
9992 | 0x00104571, 0x4a026403, 0x00000005, 0x0401f7f5, | ||
9993 | 0x0201f800, 0x0010a592, 0x040201b5, 0x0201f800, | ||
9994 | 0x0010210a, 0x040201b2, 0x0401f9ee, 0x040207c0, | ||
9995 | 0x4a026403, 0x00000020, 0x4a026203, 0x00000001, | ||
9996 | 0x0201f000, 0x0010672b, 0x0201f800, 0x0010210a, | ||
9997 | 0x040201a7, 0x4a026403, 0x00000023, 0x4a026203, | ||
9998 | 0x00000001, 0x0201f000, 0x0010672b, 0x0201f800, | ||
9999 | 0x0010a592, 0x02000800, 0x0010210a, 0x0402019c, | ||
10000 | 0x0401f9d8, 0x040207aa, 0x40300800, 0x59a81010, | ||
10001 | 0x59cc0007, 0x82000500, 0x00ffffff, 0x80080580, | ||
10002 | 0x04000019, 0x59cc1408, 0x0201f800, 0x0010902c, | ||
10003 | 0x0400002d, 0x59cc0c08, 0x4d300000, 0x0201f800, | ||
10004 | 0x00105dd7, 0x41323800, 0x5c026000, 0x04000026, | ||
10005 | 0x591c0202, 0x82000580, 0x0000ffff, 0x04000005, | ||
10006 | 0x59cc1208, 0x591c0202, 0x80080580, 0x0402001e, | ||
10007 | 0x591c0406, 0x82000580, 0x00000007, 0x0402001a, | ||
10008 | 0x0401f02c, 0x59cc1208, 0x82080580, 0x0000ffff, | ||
10009 | 0x0400000c, 0x0201f800, 0x00109410, 0x04000012, | ||
10010 | 0x59cc1408, 0x591c0202, 0x80080580, 0x0402000e, | ||
10011 | 0x591c0009, 0x81340580, 0x04000016, 0x0401f00a, | ||
10012 | 0x59cc1408, 0x417a7800, 0x0201f800, 0x0010a405, | ||
10013 | 0x04020010, 0x59cc1208, 0x82080580, 0x0000ffff, | ||
10014 | 0x04000019, 0x4a026403, 0x00000026, 0x4a02621a, | ||
10015 | 0x00001700, 0x59cc1204, 0x82081580, 0x0000ffff, | ||
10016 | 0x04020798, 0x4a026403, 0x00000025, 0x0401f795, | ||
10017 | 0x591c0406, 0x82000580, 0x00000007, 0x040207f2, | ||
10018 | 0x591c0403, 0x82000580, 0x00000024, 0x04020006, | ||
10019 | 0x4d300000, 0x411e6000, 0x0201f800, 0x0002077d, | ||
10020 | 0x5c026000, 0x4a026403, 0x00000025, 0x0401f785, | ||
10021 | 0x4933c857, 0x4d3c0000, 0x42027800, 0x00000001, | ||
10022 | 0x0201f800, 0x00104567, 0x5c027800, 0x4c580000, | ||
10023 | 0x4200b000, 0x00000002, 0x83a81c00, 0x00000002, | ||
10024 | 0x83cc1400, 0x0000000b, 0x0201f800, 0x0010855a, | ||
10025 | 0x5c00b000, 0x04000004, 0x4a026403, 0x00000031, | ||
10026 | 0x0401f770, 0x0201f800, 0x00107911, 0x0201f800, | ||
10027 | 0x0010513b, 0x0402000f, 0x0201f800, 0x00105149, | ||
10028 | 0x04020008, 0x4a035033, 0x00000001, 0x4202d800, | ||
10029 | 0x00000001, 0x0201f800, 0x001050a2, 0x0401f005, | ||
10030 | 0x42000000, 0x00000001, 0x0201f800, 0x00105113, | ||
10031 | 0x1c01f000, 0x0201f800, 0x0010210a, 0x0402011c, | ||
10032 | 0x0401f958, 0x0402072a, 0x493a6403, 0x0401f996, | ||
10033 | 0x04020004, 0x4a026403, 0x0000002b, 0x0401f751, | ||
10034 | 0x4a026403, 0x0000002c, 0x0401f74e, 0x4933c857, | ||
10035 | 0x0201f800, 0x0010210a, 0x0402010d, 0x0201f800, | ||
10036 | 0x001049e7, 0x04020740, 0x0201f800, 0x001048d9, | ||
10037 | 0x0400003c, 0x59cc0408, 0x48026419, 0x59cc0208, | ||
10038 | 0x48026219, 0x59cc0807, 0x59340002, 0x82000500, | ||
10039 | 0x00ffffff, 0x80040580, 0x04000012, 0x59a80010, | ||
10040 | 0x80040580, 0x04020021, 0x59cc1408, 0x0201f800, | ||
10041 | 0x00109410, 0x04000023, 0x0201f800, 0x0010a4ca, | ||
10042 | 0x04000020, 0x0201f800, 0x0010a921, 0x0400001d, | ||
10043 | 0x491e601e, 0x4a026403, 0x00000036, 0x0401f0e6, | ||
10044 | 0x59cc1208, 0x82080580, 0x0000ffff, 0x04000009, | ||
10045 | 0x0201f800, 0x00109410, 0x04000012, 0x591c0202, | ||
10046 | 0x59cc0c08, 0x80040580, 0x0402000e, 0x0401f7eb, | ||
10047 | 0x59cc1408, 0x41327800, 0x0201f800, 0x0010a405, | ||
10048 | 0x04000008, 0x0401f7e5, 0x4803c856, 0x4a02641a, | ||
10049 | 0x00000009, 0x4a02621a, 0x00001500, 0x0401f006, | ||
10050 | 0x4803c856, 0x4a02641a, 0x00000003, 0x4a02621a, | ||
10051 | 0x00001700, 0x4a026403, 0x00000037, 0x0401f0c6, | ||
10052 | 0x4803c856, 0x4a026403, 0x00000012, 0x0401f0c2, | ||
10053 | 0x4933c857, 0x0201f800, 0x0010210a, 0x040200c4, | ||
10054 | 0x0201f800, 0x001049e7, 0x040206f7, 0x0201f800, | ||
10055 | 0x001048d9, 0x0400003e, 0x59cc0407, 0x48026419, | ||
10056 | 0x59cc1207, 0x480a6219, 0x82080580, 0x0000ffff, | ||
10057 | 0x04000005, 0x0201f800, 0x00109410, 0x0400002c, | ||
10058 | 0x0401f006, 0x59cc1407, 0x41327800, 0x0201f800, | ||
10059 | 0x0010a405, 0x04000026, 0x59cc0c07, 0x591c0202, | ||
10060 | 0x80040580, 0x04020022, 0x4d300000, 0x411e6000, | ||
10061 | 0x0201f800, 0x00108bd7, 0x5c026000, 0x59cc0c09, | ||
10062 | 0x82040d00, 0x0000ff00, 0x840409c0, 0x0201f800, | ||
10063 | 0x0010a921, 0x04000016, 0x82040580, 0x00000001, | ||
10064 | 0x0400000a, 0x82040580, 0x00000005, 0x04000004, | ||
10065 | 0x82040580, 0x00000007, 0x04020007, 0x591c0008, | ||
10066 | 0x80000540, 0x04000004, 0x59cc2808, 0x0201f000, | ||
10067 | 0x0010a4de, 0x4803c856, 0x4a02641a, 0x00000009, | ||
10068 | 0x4a02621a, 0x00002a00, 0x0401f006, 0x4803c856, | ||
10069 | 0x4a02641a, 0x00000003, 0x4a02621a, 0x00000300, | ||
10070 | 0x4a026403, 0x0000003b, 0x0401f07b, 0x4803c856, | ||
10071 | 0x4a02641a, 0x0000000b, 0x4a02621a, 0x00000000, | ||
10072 | 0x0401f7f8, 0x4c080000, 0x0201f800, 0x001048ec, | ||
10073 | 0x04000026, 0x0201f800, 0x001048c1, 0x0201f800, | ||
10074 | 0x0010a601, 0x0402001e, 0x59a80026, 0x82000540, | ||
10075 | 0x00000003, 0x48035026, 0x59a8001d, 0x800000d0, | ||
10076 | 0x59a80810, 0x82040d00, 0x000000ff, 0x80041540, | ||
10077 | 0x480b5010, 0x42000800, 0x00000003, 0x0201f800, | ||
10078 | 0x00106c78, 0x497b5028, 0x0201f800, 0x00103b25, | ||
10079 | 0x04000003, 0x4a032804, 0x000007d0, 0x8c00050a, | ||
10080 | 0x0402000a, 0x0201f800, 0x0002077d, 0x0201f800, | ||
10081 | 0x00101e45, 0x5c001000, 0x1c01f000, 0x0201f800, | ||
10082 | 0x0010a623, 0x0401f7fc, 0x5c001000, 0x0201f000, | ||
10083 | 0x0002077d, 0x0201f800, 0x0010210a, 0x0402004c, | ||
10084 | 0x0201f800, 0x0010a628, 0x4a026403, 0x00000047, | ||
10085 | 0x4a026203, 0x00000001, 0x0201f000, 0x0010672b, | ||
10086 | 0x0201f800, 0x0010210a, 0x04020041, 0x0201f800, | ||
10087 | 0x0010a628, 0x4a026403, 0x00000047, 0x4a026203, | ||
10088 | 0x00000001, 0x0201f000, 0x0010672b, 0x0201f800, | ||
10089 | 0x0010210a, 0x04020036, 0x0201f800, 0x0010a628, | ||
10090 | 0x0201f000, 0x0002077d, 0x0401f834, 0x04000030, | ||
10091 | 0x4a026403, 0x0000004e, 0x4a026203, 0x00000001, | ||
10092 | 0x0201f000, 0x0010672b, 0x4a026403, 0x0000004f, | ||
10093 | 0x497a601c, 0x59cc0a06, 0x82040d00, 0x000000ff, | ||
10094 | 0x800409c0, 0x0400065f, 0x82040580, 0x00000001, | ||
10095 | 0x04020005, 0x59cc0808, 0x59a80005, 0x80040580, | ||
10096 | 0x04000658, 0x82040580, 0x00000002, 0x0402000a, | ||
10097 | 0x83cc1400, 0x0000000b, 0x4200b000, 0x00000002, | ||
10098 | 0x83341c00, 0x00000006, 0x0201f800, 0x0010855a, | ||
10099 | 0x0400064c, 0x4a02601c, 0x00000001, 0x0401f649, | ||
10100 | 0x4a026403, 0x00000050, 0x59cc0207, 0x4802601c, | ||
10101 | 0x0401f644, 0x4a026203, 0x00000001, 0x42000800, | ||
10102 | 0x80000040, 0x0201f000, 0x00020721, 0x4803c857, | ||
10103 | 0x0201f000, 0x0002077d, 0x4d2c0000, 0x4c500000, | ||
10104 | 0x4c580000, 0x4c540000, 0x59a80016, 0x82000c80, | ||
10105 | 0x00000829, 0x04021029, 0x0201f800, 0x001007d3, | ||
10106 | 0x04000026, 0x492e6008, 0x59a80016, 0x80000104, | ||
10107 | 0x48025802, 0x83cca400, 0x00000006, 0x82000c80, | ||
10108 | 0x0000000b, 0x04001013, 0x4a025811, 0x0000000b, | ||
10109 | 0x4200b000, 0x0000000b, 0x832c0400, 0x00000005, | ||
10110 | 0x4000a800, 0x0201f800, 0x0010ab17, 0x412c7000, | ||
10111 | 0x0201f800, 0x001007d3, 0x04000010, 0x492c7001, | ||
10112 | 0x40040000, 0x800409c0, 0x04000009, 0x0401f7ec, | ||
10113 | 0x48025811, 0x4000b000, 0x832c0400, 0x00000005, | ||
10114 | 0x4000a800, 0x0201f800, 0x0010ab17, 0x82000540, | ||
10115 | 0x00000001, 0x0401f006, 0x497b5016, 0x59325808, | ||
10116 | 0x0201f800, 0x001007fd, 0x80000580, 0x5c00a800, | ||
10117 | 0x5c00b000, 0x5c00a000, 0x5c025800, 0x1c01f000, | ||
10118 | 0x4d340000, 0x59326809, 0x59343400, 0x4933c857, | ||
10119 | 0x4937c857, 0x481bc857, 0x0201f800, 0x001049f3, | ||
10120 | 0x5c026800, 0x1c01f000, 0x4933c857, 0x4c5c0000, | ||
10121 | 0x4d3c0000, 0x0401f840, 0x0402002c, 0x59cc0207, | ||
10122 | 0x82000d00, 0x0000ff00, 0x900411c0, 0x59cc000a, | ||
10123 | 0x82000500, 0x00ffffff, 0x80081540, 0x480a601c, | ||
10124 | 0x8c040d18, 0x0400000e, 0x42003000, 0x00000008, | ||
10125 | 0x0201f800, 0x0010a932, 0x42000000, 0x0010b863, | ||
10126 | 0x0201f800, 0x0010aa47, 0x4200b800, 0x00000002, | ||
10127 | 0x42027800, 0x00000001, 0x0401f011, 0x4178b800, | ||
10128 | 0x8c040d1a, 0x04000011, 0x59cc000a, 0x0201f800, | ||
10129 | 0x00105c9a, 0x0402000d, 0x42003000, 0x00000009, | ||
10130 | 0x0201f800, 0x0010a93a, 0x42000000, 0x0010b863, | ||
10131 | 0x0201f800, 0x0010aa47, 0x417a7800, 0x0201f800, | ||
10132 | 0x001020a1, 0x0401f004, 0x82000540, 0x00000001, | ||
10133 | 0x0401f002, 0x80000580, 0x5c027800, 0x5c00b800, | ||
10134 | 0x1c01f000, 0x4933c857, 0x59cc0206, 0x82000480, | ||
10135 | 0x00000010, 0x04021006, 0x4a02621a, 0x00000000, | ||
10136 | 0x82000540, 0x00000001, 0x0401f002, 0x80000580, | ||
10137 | 0x1c01f000, 0x4933c857, 0x4a02621a, 0x00000000, | ||
10138 | 0x59cc0407, 0x82000500, 0x0000ff00, 0x82000580, | ||
10139 | 0x00000800, 0x04020009, 0x59cc0006, 0x82000500, | ||
10140 | 0x00ff0000, 0x82000d80, 0x00140000, 0x04000003, | ||
10141 | 0x82000d80, 0x00100000, 0x1c01f000, 0x4933c857, | ||
10142 | 0x59300403, 0x82003480, 0x00000051, 0x02021800, | ||
10143 | 0x001005d8, 0x83383580, 0x00000013, 0x04020003, | ||
10144 | 0x4803c857, 0x0c01f012, 0x83383580, 0x00000027, | ||
10145 | 0x04000005, 0x83383580, 0x00000014, 0x02020800, | ||
10146 | 0x001005d8, 0x0201f800, 0x001048c1, 0x42000800, | ||
10147 | 0x00000007, 0x0201f800, 0x00104571, 0x0201f800, | ||
10148 | 0x00106bbf, 0x0201f000, 0x00107911, 0x00109e3c, | ||
10149 | 0x00109e45, 0x00109e3c, 0x00109e3c, 0x00109e3c, | ||
10150 | 0x00109e45, 0x00109e50, 0x00109ecd, 0x00109e95, | ||
10151 | 0x00109ecd, 0x00109ead, 0x00109ecd, 0x00109ebe, | ||
10152 | 0x00109ecd, 0x00109ec6, 0x00109ecd, 0x00109ec6, | ||
10153 | 0x00109ecd, 0x00109ecd, 0x00109e3c, 0x00109e3c, | ||
10154 | 0x00109e3c, 0x00109e3c, 0x00109e3c, 0x00109e3c, | ||
10155 | 0x00109e3c, 0x00109e3c, 0x00109e3c, 0x00109e3c, | ||
10156 | 0x00109e3c, 0x00109e45, 0x00109e3c, 0x00109ecd, | ||
10157 | 0x00109e3c, 0x00109e3c, 0x00109ecd, 0x00109e3c, | ||
10158 | 0x00109eca, 0x00109ecd, 0x00109e3c, 0x00109e3c, | ||
10159 | 0x00109e3c, 0x00109e3c, 0x00109ecd, 0x00109ecd, | ||
10160 | 0x00109e3c, 0x00109ec3, 0x00109ecd, 0x00109e3c, | ||
10161 | 0x00109e4a, 0x00109e3c, 0x00109e3c, 0x00109e3c, | ||
10162 | 0x00109e3c, 0x00109ec9, 0x00109ecd, 0x00109e3c, | ||
10163 | 0x00109e3c, 0x00109ecd, 0x00109ecd, 0x00109e3c, | ||
10164 | 0x00109e3c, 0x00109e3c, 0x00109e3c, 0x00109e3c, | ||
10165 | 0x00109e3c, 0x00109e3c, 0x00109e3c, 0x00109e3c, | ||
10166 | 0x00109e3e, 0x00109e3c, 0x00109e3e, 0x00109e3c, | ||
10167 | 0x00109e3c, 0x00109e3e, 0x00109e3c, 0x00109e3c, | ||
10168 | 0x00109e3c, 0x00109e3e, 0x00109e3e, 0x00109e3e, | ||
10169 | 0x0201f800, 0x001005d8, 0x4d2c0000, 0x59325808, | ||
10170 | 0x0201f800, 0x001007fd, 0x5c025800, 0x0201f000, | ||
10171 | 0x0002077d, 0x59a80037, 0x48026206, 0x4a026203, | ||
10172 | 0x00000002, 0x1c01f000, 0x4d3c0000, 0x417a7800, | ||
10173 | 0x0201f800, 0x00104567, 0x5c027800, 0x0401f07e, | ||
10174 | 0x42000800, 0x00000007, 0x0201f800, 0x00104571, | ||
10175 | 0x59a80026, 0x8c000508, 0x04000012, 0x59326809, | ||
10176 | 0x4c580000, 0x4200b000, 0x00000002, 0x83a81c00, | ||
10177 | 0x00000002, 0x83341400, 0x00000006, 0x0201f800, | ||
10178 | 0x0010855a, 0x80000540, 0x5c00b000, 0x0402006a, | ||
10179 | 0x59340200, 0x8400051a, 0x48026a00, 0x0401f01b, | ||
10180 | 0x599c0017, 0x8c00050a, 0x04020063, 0x4d3c0000, | ||
10181 | 0x417a7800, 0x0201f800, 0x00104567, 0x5c027800, | ||
10182 | 0x42000800, 0x00000007, 0x0201f800, 0x00104571, | ||
10183 | 0x59340212, 0x82000500, 0x0000ff00, 0x04000056, | ||
10184 | 0x599c0019, 0x8c00050e, 0x04020053, 0x416c0000, | ||
10185 | 0x82000580, 0x00000002, 0x04020004, 0x59a8001b, | ||
10186 | 0x80000000, 0x4803501b, 0x42000800, 0x00000003, | ||
10187 | 0x0201f800, 0x00104571, 0x4a026406, 0x00000001, | ||
10188 | 0x4a026203, 0x00000001, 0x4a026403, 0x00000002, | ||
10189 | 0x0201f800, 0x0010672b, 0x4ce80000, 0x4201d000, | ||
10190 | 0x00000001, 0x0201f800, 0x00105fae, 0x5c01d000, | ||
10191 | 0x1c01f000, 0x0201f800, 0x001049f3, 0x04000036, | ||
10192 | 0x0201f800, 0x0010645e, 0x42000800, 0x00000004, | ||
10193 | 0x0201f800, 0x00104571, 0x0201f800, 0x0010a96a, | ||
10194 | 0x0402002d, 0x42000800, 0x00000005, 0x0201f800, | ||
10195 | 0x00104571, 0x4a026406, 0x00000001, 0x4a026203, | ||
10196 | 0x00000001, 0x4a026403, 0x00000003, 0x0201f000, | ||
10197 | 0x0010672b, 0x42000800, 0x00000006, 0x0401f820, | ||
10198 | 0x59303009, 0x599c0017, 0x8c00050a, 0x0402001a, | ||
10199 | 0x59a80026, 0x8c000508, 0x04000017, 0x0201f800, | ||
10200 | 0x001049e7, 0x04000014, 0x59a8001b, 0x80000000, | ||
10201 | 0x4803501b, 0x0401f7c5, 0x42000800, 0x00000004, | ||
10202 | 0x0201f800, 0x00104571, 0x0401f792, 0x42000800, | ||
10203 | 0x00000004, 0x0401f006, 0x0201f800, 0x001048c1, | ||
10204 | 0x0401f005, 0x0401f004, 0x0401f003, 0x0201f800, | ||
10205 | 0x00104571, 0x0201f000, 0x0002077d, 0x4933c857, | ||
10206 | 0x4807c857, 0x0201f800, 0x00104571, 0x4d3c0000, | ||
10207 | 0x417a7800, 0x0201f800, 0x00104567, 0x5c027800, | ||
10208 | 0x0201f800, 0x00102074, 0x1c01f000, 0x4933c857, | ||
10209 | 0x59340400, 0x80000110, 0x82003480, 0x0000000c, | ||
10210 | 0x02021800, 0x001005d8, 0x83383580, 0x00000015, | ||
10211 | 0x04020002, 0x0c01f006, 0x83383580, 0x00000016, | ||
10212 | 0x02020800, 0x001005d8, 0x0c01f00d, 0x001080b8, | ||
10213 | 0x001080b8, 0x001080b8, 0x001080b8, 0x001080b8, | ||
10214 | 0x001080b8, 0x00109f30, 0x00109f03, 0x001080b8, | ||
10215 | 0x001080b8, 0x001080b8, 0x001080b8, 0x001080b8, | ||
10216 | 0x001080b8, 0x001080b8, 0x001080b8, 0x001080b8, | ||
10217 | 0x001080b8, 0x00109f30, 0x00109f37, 0x001080b8, | ||
10218 | 0x001080b8, 0x001080b8, 0x001080b8, 0x4933c857, | ||
10219 | 0x599c0017, 0x8c00050a, 0x0402001b, 0x813669c0, | ||
10220 | 0x04000019, 0x59340212, 0x82000500, 0x0000ff00, | ||
10221 | 0x04000015, 0x599c0019, 0x8c00050e, 0x04020012, | ||
10222 | 0x4d3c0000, 0x417a7800, 0x0201f800, 0x00104567, | ||
10223 | 0x5c027800, 0x42000800, 0x00000003, 0x0201f800, | ||
10224 | 0x00104571, 0x4a026406, 0x00000001, 0x4a026203, | ||
10225 | 0x00000001, 0x4a026403, 0x00000002, 0x0201f000, | ||
10226 | 0x0010672b, 0x59cc0001, 0x0201f800, 0x00105c9a, | ||
10227 | 0x0402000b, 0x0201f800, 0x00020245, 0x02020000, | ||
10228 | 0x0002077d, 0x59345002, 0x0201f800, 0x001042b4, | ||
10229 | 0x482a6802, 0x0201f000, 0x0002077d, 0x1c01f000, | ||
10230 | 0x4933c857, 0x59303403, 0x82183580, 0x0000001e, | ||
10231 | 0x02000000, 0x0002077d, 0x1c01f000, 0x4933c857, | ||
10232 | 0x0201f800, 0x001083df, 0x02020000, 0x0002077d, | ||
10233 | 0x4a026203, 0x00000001, 0x4a026403, 0x00000001, | ||
10234 | 0x0201f000, 0x0010672b, 0x493bc857, 0x83380580, | ||
10235 | 0x00000051, 0x0402000b, 0x0201f800, 0x00106f60, | ||
10236 | 0x02020000, 0x00107974, 0x59300203, 0x82000580, | ||
10237 | 0x00000002, 0x0400006d, 0x0201f800, 0x001005d8, | ||
10238 | 0x83380580, 0x00000027, 0x04000014, 0x83380580, | ||
10239 | 0x00000048, 0x04000006, 0x83380580, 0x00000014, | ||
10240 | 0x0400000e, 0x02020800, 0x001005d8, 0x0201f800, | ||
10241 | 0x00106f60, 0x02020000, 0x00107974, 0x59300203, | ||
10242 | 0x82000580, 0x00000004, 0x02000000, 0x0002086e, | ||
10243 | 0x0201f800, 0x001005d8, 0x59300403, 0x82000c80, | ||
10244 | 0x00000044, 0x02021800, 0x001005d8, 0x82000480, | ||
10245 | 0x00000040, 0x02001800, 0x001005d8, 0x40027000, | ||
10246 | 0x4803c857, 0x0c01f001, 0x00109f76, 0x00109f78, | ||
10247 | 0x00109f78, 0x00109f93, 0x0201f800, 0x001005d8, | ||
10248 | 0x0201f800, 0x00106bbf, 0x59325808, 0x812e59c0, | ||
10249 | 0x04000016, 0x832c0500, 0x00ff0000, 0x04000013, | ||
10250 | 0x4a026203, 0x00000002, 0x59326809, 0x59340200, | ||
10251 | 0x8c00050e, 0x0402000d, 0x42028000, 0x00000004, | ||
10252 | 0x0201f800, 0x0010a3ef, 0x497a6008, 0x59300206, | ||
10253 | 0x80000540, 0x04020003, 0x59a80038, 0x48026206, | ||
10254 | 0x4a026203, 0x00000007, 0x1c01f000, 0x0201f800, | ||
10255 | 0x00106bbf, 0x0201f800, 0x00109037, 0x02000000, | ||
10256 | 0x00107911, 0x59325808, 0x0201f800, 0x001007f4, | ||
10257 | 0x0201f000, 0x00107911, 0x0201f800, 0x001005d8, | ||
10258 | 0x59325808, 0x592c040a, 0x8c000502, 0x04000007, | ||
10259 | 0x4a026203, 0x00000007, 0x42027000, 0x00000043, | ||
10260 | 0x0201f000, 0x000207a1, 0x4a026203, 0x00000004, | ||
10261 | 0x1c01f000, 0x0201f800, 0x0010a597, 0x02000000, | ||
10262 | 0x0002086c, 0x1c01f000, 0x4a026203, 0x00000001, | ||
10263 | 0x4a026403, 0x00000041, 0x42027800, 0x80002042, | ||
10264 | 0x0201f000, 0x00020721, 0x83380580, 0x00000051, | ||
10265 | 0x04000006, 0x83380580, 0x00000041, 0x02020800, | ||
10266 | 0x001005d8, 0x1c01f000, 0x0201f800, 0x000206fd, | ||
10267 | 0x0201f800, 0x0010a5df, 0x0201f000, 0x0002077d, | ||
10268 | 0x83380480, 0x00000050, 0x02021800, 0x001005d8, | ||
10269 | 0x83380480, 0x00000049, 0x02001800, 0x001005d8, | ||
10270 | 0x0c01f001, 0x00109fda, 0x00109ffb, 0x00109fd8, | ||
10271 | 0x00109fd8, 0x00109fd8, 0x00109fd8, 0x00109ffb, | ||
10272 | 0x0201f800, 0x001005d8, 0x59325808, 0x592c040a, | ||
10273 | 0x8c00051e, 0x0400000d, 0x82000d00, 0x000000c0, | ||
10274 | 0x82040d80, 0x00000080, 0x0400000d, 0x59300804, | ||
10275 | 0x8c040d18, 0x0402000a, 0x42027000, 0x00000041, | ||
10276 | 0x0201f000, 0x0002088d, 0x4a026203, 0x00000007, | ||
10277 | 0x497a6206, 0x0201f000, 0x000206fd, 0x59325808, | ||
10278 | 0x592c0c0a, 0x8c040d1a, 0x04020005, 0x0201f800, | ||
10279 | 0x000206fd, 0x0201f000, 0x0002077d, 0x0201f800, | ||
10280 | 0x0010a597, 0x040007fa, 0x1c01f000, 0x0201f800, | ||
10281 | 0x00106b8a, 0x59325808, 0x59326809, 0x59340200, | ||
10282 | 0x8c00050e, 0x0400000e, 0x592c040a, 0x82000500, | ||
10283 | 0x000000c0, 0x82000580, 0x00000080, 0x04000005, | ||
10284 | 0x592c000f, 0x59301815, 0x800c1c80, 0x480e6015, | ||
10285 | 0x4a026203, 0x00000002, 0x0401f00d, 0x42028000, | ||
10286 | 0x00000004, 0x0401fbde, 0x59300206, 0x80000540, | ||
10287 | 0x04020004, 0x59a80038, 0x800000c2, 0x48026206, | ||
10288 | 0x497a6008, 0x4a026203, 0x00000007, 0x1c01f000, | ||
10289 | 0x4a026203, 0x00000007, 0x497a6206, 0x0201f000, | ||
10290 | 0x000206fd, 0x4a026203, 0x00000007, 0x497a6206, | ||
10291 | 0x0201f000, 0x000206f8, 0x59300414, 0x8c00051c, | ||
10292 | 0x02020000, 0x0002087e, 0x59325808, 0x592c200f, | ||
10293 | 0x40080000, 0x80102480, 0x59300015, 0x80102400, | ||
10294 | 0x48126015, 0x0201f000, 0x0002087e, 0x8c040d0e, | ||
10295 | 0x0402000a, 0x4a026203, 0x00000006, 0x0401f823, | ||
10296 | 0x5930001f, 0x80000540, 0x02020800, 0x00100d7c, | ||
10297 | 0x0201f000, 0x000206f8, 0x4a026203, 0x00000002, | ||
10298 | 0x1c01f000, 0x42000800, 0x00000001, 0x0201f800, | ||
10299 | 0x00100d7c, 0x82040580, 0x00000001, 0x02000000, | ||
10300 | 0x00020885, 0x0401f7d8, 0x59300414, 0x8c00051c, | ||
10301 | 0x04000006, 0x0201f800, 0x00100b63, 0x02000000, | ||
10302 | 0x00020877, 0x1c01f000, 0x59300011, 0x80000540, | ||
10303 | 0x04020005, 0x0201f800, 0x00100b63, 0x02000000, | ||
10304 | 0x00020877, 0x1c01f000, 0x492fc857, 0x480bc857, | ||
10305 | 0x8c08153e, 0x04000006, 0x80081080, 0x80081000, | ||
10306 | 0x42000800, 0x00000009, 0x0401f003, 0x42000800, | ||
10307 | 0x00000015, 0x480a580b, 0x1c01f000, 0x83380580, | ||
10308 | 0x00000013, 0x04000005, 0x83380580, 0x00000014, | ||
10309 | 0x02020800, 0x001005d8, 0x59300414, 0x8c000516, | ||
10310 | 0x02000800, 0x001005d8, 0x1c01f000, 0x0201f800, | ||
10311 | 0x001005d8, 0x59300008, 0x80000540, 0x02020800, | ||
10312 | 0x001005d8, 0x1c01f000, 0x59300414, 0x8c000516, | ||
10313 | 0x02000800, 0x001005d8, 0x1c01f000, 0x4a026203, | ||
10314 | 0x00000004, 0x493a6403, 0x42000800, 0x80002001, | ||
10315 | 0x0201f000, 0x00020721, 0x4a026203, 0x00000003, | ||
10316 | 0x493a6403, 0x0201f800, 0x000200c9, 0x59325808, | ||
10317 | 0x592c040a, 0x8c00051e, 0x04000012, 0x82000500, | ||
10318 | 0x000000c0, 0x82000580, 0x00000080, 0x04000011, | ||
10319 | 0x59300414, 0x8c000512, 0x0402000a, 0x8c000510, | ||
10320 | 0x04020008, 0x592c040c, 0x80000540, 0x04020005, | ||
10321 | 0x82080d40, 0x80003065, 0x0201f000, 0x00106721, | ||
10322 | 0x82080d40, 0x80002065, 0x0201f000, 0x00106721, | ||
10323 | 0x82080d40, 0x80002042, 0x0201f000, 0x00106721, | ||
10324 | 0x4933c857, 0x493bc857, 0x83380480, 0x00000044, | ||
10325 | 0x02021800, 0x001005d8, 0x83380480, 0x00000041, | ||
10326 | 0x02001800, 0x001005d8, 0x0c01f001, 0x0010a0b6, | ||
10327 | 0x0010a0c6, 0x0010a0db, 0x59325808, 0x592c040a, | ||
10328 | 0x8c00051e, 0x0400001d, 0x82001d00, 0x000000c0, | ||
10329 | 0x820c1d80, 0x000000c0, 0x04000018, 0x4a026203, | ||
10330 | 0x00000001, 0x493a6403, 0x42000800, 0x80002042, | ||
10331 | 0x0201f000, 0x00020721, 0x59325808, 0x592c040a, | ||
10332 | 0x8c00051e, 0x0400000d, 0x82001d00, 0x000000c0, | ||
10333 | 0x820c1d80, 0x000000c0, 0x04000008, 0x4a026203, | ||
10334 | 0x00000001, 0x493a6403, 0x42000800, 0x80002001, | ||
10335 | 0x0201f000, 0x00020721, 0x497a6008, 0x497a6206, | ||
10336 | 0x42028000, 0x00000004, 0x0401f315, 0x59325808, | ||
10337 | 0x592c040a, 0x8c00051e, 0x040007f8, 0x82001d00, | ||
10338 | 0x000000c0, 0x820c1d80, 0x000000c0, 0x040007f3, | ||
10339 | 0x4a026203, 0x00000003, 0x493a6403, 0x0201f800, | ||
10340 | 0x000200c9, 0x82080d40, 0x80002065, 0x0201f000, | ||
10341 | 0x00106721, 0x4933c857, 0x493bc857, 0x83380580, | ||
10342 | 0x00000085, 0x04000006, 0x83380580, 0x00000088, | ||
10343 | 0x0400000a, 0x0201f800, 0x001005d8, 0x4a026203, | ||
10344 | 0x00000009, 0x493a6403, 0x42000800, 0x8000004b, | ||
10345 | 0x0201f000, 0x00020721, 0x4d1c0000, 0x813669c0, | ||
10346 | 0x04000004, 0x0201f800, 0x0010a592, 0x04020044, | ||
10347 | 0x59cc1404, 0x0401f846, 0x04000018, 0x591c0406, | ||
10348 | 0x82000500, 0x0000001f, 0x82002580, 0x00000006, | ||
10349 | 0x04000007, 0x82002580, 0x00000004, 0x0400002e, | ||
10350 | 0x82002580, 0x00000011, 0x0402000c, 0x497a3a05, | ||
10351 | 0x42002000, 0x00000054, 0x0201f800, 0x00107a4a, | ||
10352 | 0x4a026203, 0x00000007, 0x493a6403, 0x0201f800, | ||
10353 | 0x0010a974, 0x0401f02c, 0x0201f800, 0x00103b25, | ||
10354 | 0x04000004, 0x42023800, 0xffffffff, 0x0401f7f1, | ||
10355 | 0x813669c0, 0x04020009, 0x59cc0001, 0x0201f800, | ||
10356 | 0x00105c9a, 0x0402001e, 0x0201f800, 0x001045a6, | ||
10357 | 0x0402001b, 0x49366009, 0x4a026403, 0x00000087, | ||
10358 | 0x59cc1204, 0x82081580, 0x0000ffff, 0x04020003, | ||
10359 | 0x4a026403, 0x00000086, 0x4a026203, 0x00000001, | ||
10360 | 0x42000800, 0x80000040, 0x0201f800, 0x00020721, | ||
10361 | 0x0401f00d, 0x591c0203, 0x82000580, 0x00000007, | ||
10362 | 0x040207de, 0x4d300000, 0x411e6000, 0x0201f800, | ||
10363 | 0x00107911, 0x5c026000, 0x0401f7d8, 0x0201f800, | ||
10364 | 0x00107911, 0x5c023800, 0x1c01f000, 0x4933c857, | ||
10365 | 0x480bc857, 0x42002800, 0x0010d1c0, 0x41300000, | ||
10366 | 0x80140580, 0x04000017, 0x58140203, 0x82000580, | ||
10367 | 0x00000000, 0x04000013, 0x58140202, 0x80080580, | ||
10368 | 0x04020010, 0x58141c06, 0x820c0580, 0x00000005, | ||
10369 | 0x0400000c, 0x820c0580, 0x00000009, 0x0400001d, | ||
10370 | 0x59302009, 0x58140009, 0x800001c0, 0x0400000b, | ||
10371 | 0x801021c0, 0x04000003, 0x80100580, 0x04000010, | ||
10372 | 0x82142c00, 0x00000024, 0x41540000, 0x80140480, | ||
10373 | 0x0402100e, 0x0401f7e2, 0x5814001e, 0x801021c0, | ||
10374 | 0x04000005, 0x58102002, 0x82102500, 0x00ffffff, | ||
10375 | 0x0401f7f2, 0x5810201e, 0x0401f7f0, 0x40163800, | ||
10376 | 0x81300540, 0x0401f002, 0x80000580, 0x1c01f000, | ||
10377 | 0x58141807, 0x8c0c1d10, 0x040207ea, 0x0401f7e1, | ||
10378 | 0x4933c857, 0x493bc857, 0x83380580, 0x00000013, | ||
10379 | 0x0402000e, 0x59300403, 0x82000c80, 0x00000085, | ||
10380 | 0x02001800, 0x001005d8, 0x82000c80, 0x00000093, | ||
10381 | 0x02021800, 0x001005d8, 0x82000480, 0x00000085, | ||
10382 | 0x4803c857, 0x0c01f018, 0x83380580, 0x00000027, | ||
10383 | 0x04000005, 0x83380580, 0x00000014, 0x02020000, | ||
10384 | 0x00107974, 0x0201f800, 0x00106bbf, 0x59325808, | ||
10385 | 0x812e59c0, 0x02000000, 0x00107911, 0x4a025a06, | ||
10386 | 0x00000031, 0x4a025811, 0x00000004, 0x4a025812, | ||
10387 | 0x000000ff, 0x0201f800, 0x000202da, 0x0201f000, | ||
10388 | 0x00107911, 0x0010a1b7, 0x0010a1be, 0x0010a1be, | ||
10389 | 0x0010a1b7, 0x0010a1b7, 0x0010a1b7, 0x0010a1b7, | ||
10390 | 0x0010a1b7, 0x0010a1b7, 0x0010a1b7, 0x0010a1b7, | ||
10391 | 0x0010a1b7, 0x0010a1b7, 0x0010a1b9, 0x0201f800, | ||
10392 | 0x001005d8, 0x59325808, 0x4a025a06, 0x00000000, | ||
10393 | 0x0201f800, 0x000202da, 0x0201f000, 0x00107911, | ||
10394 | 0x4933c857, 0x42000000, 0x0010b873, 0x0201f800, | ||
10395 | 0x0010aa47, 0x0201f800, 0x0010a5df, 0x497a6205, | ||
10396 | 0x42028000, 0x0000000b, 0x0401f807, 0x4a026406, | ||
10397 | 0x00000006, 0x4a026203, 0x00000007, 0x497a6206, | ||
10398 | 0x1c01f000, 0x4933c857, 0x4943c857, 0x59300406, | ||
10399 | 0x82000580, 0x00000007, 0x04020002, 0x1c01f000, | ||
10400 | 0x0201f800, 0x00106c55, 0x4df00000, 0x0201f800, | ||
10401 | 0x00108ce5, 0x82000c80, 0x0000000e, 0x02021800, | ||
10402 | 0x001005d8, 0x0c01f001, 0x0010a205, 0x0010a209, | ||
10403 | 0x0010a1f0, 0x0010a217, 0x0010a22a, 0x0010a1f0, | ||
10404 | 0x0010a1f0, 0x0010a1f0, 0x0010a1f0, 0x0010a1f0, | ||
10405 | 0x0010a1f0, 0x0010a1f0, 0x0010a1f0, 0x0010a1f0, | ||
10406 | 0x4d400000, 0x5930001f, 0x80000540, 0x04000005, | ||
10407 | 0x41400800, 0x0201f800, 0x00100d7c, 0x40068000, | ||
10408 | 0x4d2c0000, 0x59325808, 0x0201f800, 0x00109037, | ||
10409 | 0x040209f3, 0x4c5c0000, 0x5930b809, 0x0201f800, | ||
10410 | 0x00107911, 0x485e6009, 0x5c00b800, 0x5c025800, | ||
10411 | 0x5c028000, 0x5c03e000, 0x02000000, 0x00106c4b, | ||
10412 | 0x1c01f000, 0x598c000d, 0x81300580, 0x04020004, | ||
10413 | 0x0201f800, 0x00106e8e, 0x04020016, 0x0201f800, | ||
10414 | 0x001068d3, 0x040007df, 0x0201f800, 0x00106b6c, | ||
10415 | 0x04000010, 0x0201f800, 0x001005d8, 0x0201f800, | ||
10416 | 0x00108cd6, 0x04020004, 0x0201f800, 0x00106e62, | ||
10417 | 0x04020008, 0x0201f800, 0x001067ae, 0x040007d1, | ||
10418 | 0x0201f800, 0x00106b6c, 0x02020800, 0x001005d8, | ||
10419 | 0x59300203, 0x82000c80, 0x0000000e, 0x02021800, | ||
10420 | 0x001005d8, 0x0c01f7b9, 0x0201f800, 0x00100e99, | ||
10421 | 0x0401f7c4, 0x4933c857, 0x4d440000, 0x4d340000, | ||
10422 | 0x59cc0007, 0x0201f800, 0x00105c9a, 0x02000800, | ||
10423 | 0x00020245, 0x0402001a, 0x59300009, 0x4c000000, | ||
10424 | 0x49366009, 0x42003000, 0x0000000b, 0x0201f800, | ||
10425 | 0x0010a942, 0x42000000, 0x0010b861, 0x0201f800, | ||
10426 | 0x0010aa47, 0x4d3c0000, 0x4d400000, 0x42028000, | ||
10427 | 0x00000029, 0x417a7800, 0x0201f800, 0x0010203c, | ||
10428 | 0x5c028000, 0x5c027800, 0x5c000000, 0x48026009, | ||
10429 | 0x59cc0007, 0x48026802, 0x80000580, 0x5c026800, | ||
10430 | 0x5c028800, 0x1c01f000, 0x4933c857, 0x4c040000, | ||
10431 | 0x59a80016, 0x82000580, 0x00000074, 0x04020040, | ||
10432 | 0x59cc0a08, 0x82040480, 0x00000100, 0x04001033, | ||
10433 | 0x59cc0c08, 0x82040500, 0x00008000, 0x04000035, | ||
10434 | 0x59a80032, 0x80000540, 0x04020009, 0x59301009, | ||
10435 | 0x58080212, 0x82000500, 0x0000ff00, 0x04000004, | ||
10436 | 0x82040500, 0x00000800, 0x0400002a, 0x59cc0c09, | ||
10437 | 0x80040840, 0x04001024, 0x59a80826, 0x8c040d06, | ||
10438 | 0x04000004, 0x59cc0c0f, 0x8c040d1e, 0x04020012, | ||
10439 | 0x59cc0a17, 0x800409c0, 0x04020012, 0x59cc0a18, | ||
10440 | 0x82040480, 0x00000100, 0x04001014, 0x59cc0c18, | ||
10441 | 0x800409c0, 0x0402000e, 0x59cc0c19, 0x80040840, | ||
10442 | 0x04001011, 0x59cc0c1a, 0x80040840, 0x04001011, | ||
10443 | 0x0401f018, 0x4a02621a, 0x00000100, 0x0401f012, | ||
10444 | 0x4a02621a, 0x00000300, 0x0401f00f, 0x4a02621a, | ||
10445 | 0x00000500, 0x0401f00c, 0x4a02621a, 0x00000700, | ||
10446 | 0x0401f009, 0x4a02621a, 0x00000900, 0x0401f006, | ||
10447 | 0x4a02621a, 0x00000f00, 0x0401f003, 0x4a02621a, | ||
10448 | 0x00002d00, 0x82000540, 0x00000001, 0x0401f002, | ||
10449 | 0x80000580, 0x5c000800, 0x1c01f000, 0x59cc0407, | ||
10450 | 0x4803c857, 0x82000580, 0x00000800, 0x04000003, | ||
10451 | 0x4a02621a, 0x00000000, 0x1c01f000, 0x4933c857, | ||
10452 | 0x4c040000, 0x4c080000, 0x4c0c0000, 0x4c580000, | ||
10453 | 0x59cc000c, 0x0201f800, 0x00105c9a, 0x02000800, | ||
10454 | 0x00020245, 0x04020012, 0x83cc1400, 0x00000008, | ||
10455 | 0x4200b000, 0x00000002, 0x83341c00, 0x00000006, | ||
10456 | 0x0201f800, 0x0010855a, 0x04020009, 0x83cc1400, | ||
10457 | 0x0000000a, 0x4200b000, 0x00000002, 0x83341c00, | ||
10458 | 0x00000008, 0x0201f800, 0x0010855a, 0x5c00b000, | ||
10459 | 0x5c001800, 0x5c001000, 0x5c000800, 0x1c01f000, | ||
10460 | 0x4933c857, 0x4c000000, 0x4c040000, 0x4c080000, | ||
10461 | 0x4c0c0000, 0x4c580000, 0x59cc0001, 0x0201f800, | ||
10462 | 0x00105c9a, 0x02000800, 0x00020245, 0x04020014, | ||
10463 | 0x83cc1400, 0x0000000b, 0x4200b000, 0x00000002, | ||
10464 | 0x83341c00, 0x00000006, 0x0201f800, 0x0010855a, | ||
10465 | 0x0402000c, 0x83cc1400, 0x0000000d, 0x4200b000, | ||
10466 | 0x00000002, 0x83341c00, 0x00000008, 0x0201f800, | ||
10467 | 0x0010855a, 0x04000014, 0x4933c856, 0x4933c856, | ||
10468 | 0x4933c857, 0x59340009, 0x4803c857, 0x5934000e, | ||
10469 | 0x4803c857, 0x59340008, 0x4803c857, 0x5934000d, | ||
10470 | 0x4803c857, 0x59340007, 0x4803c857, 0x5934000c, | ||
10471 | 0x4803c857, 0x59340006, 0x4803c857, 0x5934000b, | ||
10472 | 0x4803c857, 0x5c00b000, 0x5c001800, 0x5c001000, | ||
10473 | 0x5c000800, 0x5c000000, 0x1c01f000, 0x4933c857, | ||
10474 | 0x4947c857, 0x4943c857, 0x4c600000, 0x0201f800, | ||
10475 | 0x00106c55, 0x4df00000, 0x4d2c0000, 0x4d300000, | ||
10476 | 0x4d340000, 0x4130c000, 0x42026000, 0x0010d1c0, | ||
10477 | 0x59a8000e, 0x8060c1c0, 0x04000005, 0x82601580, | ||
10478 | 0x0010bde9, 0x04000002, 0x80000040, 0x81640480, | ||
10479 | 0x040210be, 0x40600000, 0x81300580, 0x040000b6, | ||
10480 | 0x0401f97a, 0x040200b4, 0x59326809, 0x59300406, | ||
10481 | 0x82000c80, 0x00000012, 0x02021800, 0x001005d8, | ||
10482 | 0x0c01f001, 0x0010a3cd, 0x0010a338, 0x0010a351, | ||
10483 | 0x0010a35c, 0x0010a335, 0x0010a34c, 0x0010a387, | ||
10484 | 0x0010a3cd, 0x0010a333, 0x0010a39a, 0x0010a3ae, | ||
10485 | 0x0010a333, 0x0010a333, 0x0010a333, 0x0010a333, | ||
10486 | 0x0010a3cd, 0x0010a3c4, 0x0010a3bc, 0x0201f800, | ||
10487 | 0x001005d8, 0x59300420, 0x8c000500, 0x04020096, | ||
10488 | 0x59300403, 0x82000580, 0x00000043, 0x04000092, | ||
10489 | 0x0201f800, 0x00109134, 0x04000007, 0x0201f800, | ||
10490 | 0x0010914e, 0x0402008a, 0x0201f800, 0x0010801c, | ||
10491 | 0x0401f087, 0x0201f800, 0x00102074, 0x0201f800, | ||
10492 | 0x0010914e, 0x02000800, 0x0010801c, 0x0401f080, | ||
10493 | 0x8d3e7d18, 0x04000004, 0x59300420, 0x8c000500, | ||
10494 | 0x0402007d, 0x59325808, 0x0201f800, 0x00109037, | ||
10495 | 0x04000077, 0x49425a06, 0x497a5c09, 0x0201f800, | ||
10496 | 0x000202da, 0x0201f800, 0x0010912a, 0x0401f070, | ||
10497 | 0x8d3e7d00, 0x04000007, 0x59300017, 0x81480580, | ||
10498 | 0x0402006d, 0x59300018, 0x814c0580, 0x0402006a, | ||
10499 | 0x59300203, 0x82000580, 0x00000004, 0x02000800, | ||
10500 | 0x00100e99, 0x59325808, 0x0201f800, 0x00109037, | ||
10501 | 0x0400005f, 0x4a025a04, 0x00000103, 0x59300004, | ||
10502 | 0x8400055c, 0x48026004, 0x592c0408, 0x8c000512, | ||
10503 | 0x04000007, 0x4d2c0000, 0x592c0009, 0x40025800, | ||
10504 | 0x0201f800, 0x001007fd, 0x5c025800, 0x49425a06, | ||
10505 | 0x497a5c09, 0x0401fb16, 0x0201f800, 0x0010959c, | ||
10506 | 0x0201f800, 0x001091c6, 0x0201f800, 0x000202da, | ||
10507 | 0x0201f800, 0x0010912a, 0x0401f045, 0x8d3e7d18, | ||
10508 | 0x04000045, 0x59300203, 0x82000580, 0x00000004, | ||
10509 | 0x02000800, 0x00100e99, 0x59325808, 0x0201f800, | ||
10510 | 0x00109037, 0x0400003a, 0x49425a06, 0x497a5c09, | ||
10511 | 0x0401faff, 0x0201f800, 0x0010959c, 0x0201f800, | ||
10512 | 0x000202da, 0x0401f032, 0x0201f800, 0x001062d5, | ||
10513 | 0x04000031, 0x59300203, 0x82000580, 0x00000004, | ||
10514 | 0x0400002d, 0x59300203, 0x82000580, 0x00000003, | ||
10515 | 0x04020029, 0x0201f800, 0x00106b8a, 0x59325808, | ||
10516 | 0x0201f800, 0x00109037, 0x04000021, 0x0201f800, | ||
10517 | 0x000202da, 0x0401f01e, 0x59300203, 0x82000580, | ||
10518 | 0x00000004, 0x02000800, 0x00100e99, 0x59325808, | ||
10519 | 0x0201f800, 0x00109037, 0x04000015, 0x49425a06, | ||
10520 | 0x497a5c09, 0x0201f800, 0x000202da, 0x0401f010, | ||
10521 | 0x833c0500, 0x00001800, 0x0400000f, 0x8d3e7d16, | ||
10522 | 0x0402000d, 0x59325817, 0x0201f800, 0x001007fd, | ||
10523 | 0x59325808, 0x0201f800, 0x00109037, 0x04000004, | ||
10524 | 0x49425a06, 0x0201f800, 0x000202da, 0x0201f800, | ||
10525 | 0x00107911, 0x83326400, 0x00000024, 0x41580000, | ||
10526 | 0x81300480, 0x0400173b, 0x5c026800, 0x5c026000, | ||
10527 | 0x5c025800, 0x5c03e000, 0x02000800, 0x00106c4b, | ||
10528 | 0x5c00c000, 0x1c01f000, 0x5c000000, 0x4c000000, | ||
10529 | 0x4803c857, 0x4d3c0000, 0x42027800, 0x00000001, | ||
10530 | 0x0201f800, 0x00104567, 0x5c027800, 0x4c580000, | ||
10531 | 0x4200b000, 0x00000002, 0x83a81c00, 0x00000002, | ||
10532 | 0x83cc1400, 0x0000000b, 0x0201f800, 0x0010855a, | ||
10533 | 0x5c00b000, 0x80000540, 0x1c01f000, 0x492fc857, | ||
10534 | 0x4943c857, 0x59a8000c, 0x812c0480, 0x04001011, | ||
10535 | 0x59a8000d, 0x812c0480, 0x0402100e, 0x592c0000, | ||
10536 | 0x80005d40, 0x04000008, 0x497a5800, 0x49425a06, | ||
10537 | 0x4c2c0000, 0x0201f800, 0x000202da, 0x5c025800, | ||
10538 | 0x0401f7f7, 0x49425a06, 0x0201f000, 0x000202da, | ||
10539 | 0x1c01f000, 0x493fc857, 0x4933c857, 0x480bc857, | ||
10540 | 0x0201f800, 0x00103b25, 0x0400002e, 0x41502800, | ||
10541 | 0x813e79c0, 0x04020006, 0x59a80066, 0x80000000, | ||
10542 | 0x59a8086a, 0x80040580, 0x04000026, 0x41300000, | ||
10543 | 0x80140580, 0x0400001a, 0x58140203, 0x82000580, | ||
10544 | 0x00000000, 0x04000016, 0x58140202, 0x80080580, | ||
10545 | 0x04020013, 0x58141c06, 0x820c0580, 0x00000005, | ||
10546 | 0x0400000f, 0x820c0580, 0x00000009, 0x04000017, | ||
10547 | 0x59300009, 0x58142009, 0x801021c0, 0x04020006, | ||
10548 | 0x5814201e, 0x59301809, 0x580c0002, 0x82000500, | ||
10549 | 0x00ffffff, 0x80100580, 0x04000007, 0x82142c00, | ||
10550 | 0x00000024, 0x41540000, 0x80140480, 0x04021005, | ||
10551 | 0x0401f7df, 0x40163800, 0x81300540, 0x0401f002, | ||
10552 | 0x80000580, 0x1c01f000, 0x58141807, 0x8c0c1d10, | ||
10553 | 0x040207f3, 0x0401f7e7, 0x42002000, 0x0000ffff, | ||
10554 | 0x59301009, 0x800811c0, 0x04000002, 0x58082403, | ||
10555 | 0x41301000, 0x0401f007, 0x41781000, 0x41442000, | ||
10556 | 0x0401f004, 0x41781000, 0x42002000, 0x0000ffff, | ||
10557 | 0x5c000000, 0x4c000000, 0x4803c857, 0x480bc857, | ||
10558 | 0x4813c857, 0x492fc857, 0x4943c857, 0x4d2c0000, | ||
10559 | 0x0201f800, 0x001007e4, 0x02000800, 0x001005d8, | ||
10560 | 0x4a025a04, 0x0000010d, 0x800811c0, 0x04000017, | ||
10561 | 0x83400580, 0x00000029, 0x04020010, 0x82180580, | ||
10562 | 0x00000002, 0x0400000a, 0x82180580, 0x00000003, | ||
10563 | 0x04000007, 0x82180580, 0x00000008, 0x04000004, | ||
10564 | 0x82180580, 0x00000009, 0x04020004, 0x4a025809, | ||
10565 | 0xffffffff, 0x0401f002, 0x480a5809, 0x58080202, | ||
10566 | 0x48025c13, 0x0401f005, 0x4a025809, 0xffffffff, | ||
10567 | 0x4a025c13, 0x0000ffff, 0x49425a08, 0x48125a06, | ||
10568 | 0x82100580, 0x0000ffff, 0x0400000e, 0x4d440000, | ||
10569 | 0x4d340000, 0x40128800, 0x0201f800, 0x00020245, | ||
10570 | 0x02020800, 0x001005d8, 0x59340002, 0x82000500, | ||
10571 | 0x00ffffff, 0x48025812, 0x5c026800, 0x5c028800, | ||
10572 | 0x497a5800, 0x497a5c04, 0x83400580, 0x00000046, | ||
10573 | 0x04020002, 0x48165a07, 0x481a5c08, 0x0401fbed, | ||
10574 | 0x5c025800, 0x1c01f000, 0x59300809, 0x800409c0, | ||
10575 | 0x04000004, 0x58040403, 0x81440580, 0x1c01f000, | ||
10576 | 0x82000540, 0x00000001, 0x0401f7fd, 0x4933c857, | ||
10577 | 0x4c040000, 0x59300403, 0x82000d80, 0x0000001e, | ||
10578 | 0x04020016, 0x800000d0, 0x59300a16, 0x82040d00, | ||
10579 | 0x000000ff, 0x80040540, 0x4803c857, 0x48026416, | ||
10580 | 0x4a026403, 0x00000085, 0x4a026203, 0x00000009, | ||
10581 | 0x4a026406, 0x00000005, 0x4a02621d, 0x00000004, | ||
10582 | 0x59a80038, 0x48026206, 0x42000800, 0x8000004b, | ||
10583 | 0x0201f800, 0x00020721, 0x5c000800, 0x1c01f000, | ||
10584 | 0x4933c857, 0x40000000, 0x40000000, 0x1c01f000, | ||
10585 | 0x59300414, 0x4933c857, 0x4803c857, 0x8c000518, | ||
10586 | 0x04000009, 0x8c000512, 0x02020000, 0x0010921e, | ||
10587 | 0x0401f91b, 0x0201f800, 0x000206fd, 0x0201f800, | ||
10588 | 0x0002077d, 0x1c01f000, 0x591c0406, 0x4803c857, | ||
10589 | 0x82000c80, 0x00000009, 0x0402100b, 0x0c01f001, | ||
10590 | 0x0010a4d9, 0x0010a4d9, 0x0010a4d9, 0x0010a4db, | ||
10591 | 0x0010a4d9, 0x0010a4db, 0x0010a4db, 0x0010a4d9, | ||
10592 | 0x0010a4db, 0x80000580, 0x1c01f000, 0x82000540, | ||
10593 | 0x00000001, 0x1c01f000, 0x591c0406, 0x82000500, | ||
10594 | 0x0000001f, 0x82000580, 0x00000006, 0x0400000e, | ||
10595 | 0x4803c857, 0x4a026403, 0x0000003b, 0x4a02641a, | ||
10596 | 0x00000009, 0x4a02621a, 0x00002a00, 0x4a026203, | ||
10597 | 0x00000001, 0x42000800, 0x80000040, 0x0201f000, | ||
10598 | 0x00020721, 0x4803c856, 0x4c040000, 0x4c140000, | ||
10599 | 0x4d300000, 0x411e6000, 0x0401f8e9, 0x497a6205, | ||
10600 | 0x59300414, 0x4803c857, 0x82000500, 0xffffadff, | ||
10601 | 0x48026414, 0x497a6405, 0x5c026000, 0x0201f800, | ||
10602 | 0x001007e4, 0x02000800, 0x001005d8, 0x5c002800, | ||
10603 | 0x5c000800, 0x4a025a04, 0x0000010d, 0x497a5800, | ||
10604 | 0x497a5c04, 0x4a025a08, 0x00000045, 0x491e5809, | ||
10605 | 0x59300402, 0x48025c07, 0x59300419, 0x48025c0b, | ||
10606 | 0x591c0414, 0x84000556, 0x48023c14, 0x591c1809, | ||
10607 | 0x580c0403, 0x48025a06, 0x4816580a, 0x48065a0b, | ||
10608 | 0x0401f99d, 0x4d400000, 0x42028000, 0x00000045, | ||
10609 | 0x591c0202, 0x4c000000, 0x4d300000, 0x411e6000, | ||
10610 | 0x0401fcb1, 0x5c026000, 0x5c000000, 0x48023a02, | ||
10611 | 0x5c028000, 0x4a023c06, 0x00000006, 0x4a023a03, | ||
10612 | 0x00000007, 0x497a3a06, 0x497a3a05, 0x1c01f000, | ||
10613 | 0x4933c857, 0x83380580, 0x00000013, 0x0402000b, | ||
10614 | 0x59300403, 0x4803c857, 0x82000d80, 0x00000085, | ||
10615 | 0x0400002b, 0x82000d80, 0x0000008b, 0x04000028, | ||
10616 | 0x0201f800, 0x001005d8, 0x83380580, 0x00000027, | ||
10617 | 0x0402000c, 0x0201f800, 0x00106bbf, 0x4d2c0000, | ||
10618 | 0x4d400000, 0x59325808, 0x42028000, 0x00000004, | ||
10619 | 0x0401feab, 0x5c028000, 0x5c025800, 0x1c01f000, | ||
10620 | 0x83380580, 0x00000014, 0x040007f3, 0x83380580, | ||
10621 | 0x00000089, 0x04000005, 0x83380580, 0x0000008a, | ||
10622 | 0x02020000, 0x00107974, 0x0201f800, 0x00106f60, | ||
10623 | 0x02020000, 0x00107974, 0x59300a03, 0x82040580, | ||
10624 | 0x0000000a, 0x04000009, 0x82040580, 0x0000000c, | ||
10625 | 0x04000006, 0x0201f800, 0x001005d8, 0x4a026203, | ||
10626 | 0x0000000a, 0x1c01f000, 0x83380480, 0x00000093, | ||
10627 | 0x0402100c, 0x83380480, 0x00000085, 0x04001009, | ||
10628 | 0x83380580, 0x00000089, 0x0400000a, 0x83380580, | ||
10629 | 0x0000008a, 0x04000022, 0x0201f800, 0x001005d8, | ||
10630 | 0x493bc857, 0x4933c857, 0x0201f000, 0x00107974, | ||
10631 | 0x4933c857, 0x4c340000, 0x41306800, 0x0201f800, | ||
10632 | 0x0002075a, 0x04000011, 0x4a026203, 0x00000001, | ||
10633 | 0x4a026403, 0x0000001e, 0x59cc0c07, 0x48066419, | ||
10634 | 0x59cc0a07, 0x48066219, 0x58340809, 0x48066009, | ||
10635 | 0x4a026406, 0x00000004, 0x42000800, 0x80000040, | ||
10636 | 0x0201f800, 0x00020721, 0x40366000, 0x0201f800, | ||
10637 | 0x0002077d, 0x5c006800, 0x1c01f000, 0x4933c857, | ||
10638 | 0x0201f000, 0x0002077d, 0x4933c857, 0x59300809, | ||
10639 | 0x58040200, 0x8c00051a, 0x1c01f000, 0x0201f800, | ||
10640 | 0x001048df, 0x0400001e, 0x4a026203, 0x00000002, | ||
10641 | 0x59300414, 0x84000558, 0x48026414, 0x8c000512, | ||
10642 | 0x04000004, 0x59a80039, 0x48026205, 0x0401f007, | ||
10643 | 0x59a80839, 0x59a80037, 0x80040400, 0x82000400, | ||
10644 | 0x0000000a, 0x48026205, 0x59300009, 0x82000c00, | ||
10645 | 0x00000011, 0x50040000, 0x80000540, 0x04000004, | ||
10646 | 0x82000c00, 0x00000000, 0x0401f7fb, 0x45300800, | ||
10647 | 0x497a6000, 0x82000540, 0x00000001, 0x1c01f000, | ||
10648 | 0x82100500, 0xfffffeef, 0x04020020, 0x4d2c0000, | ||
10649 | 0x4937c857, 0x59340811, 0x83341400, 0x00000011, | ||
10650 | 0x800409c0, 0x0400000e, 0x40040000, 0x81300580, | ||
10651 | 0x04000005, 0x58040800, 0x82041400, 0x00000000, | ||
10652 | 0x0401f7f8, 0x59300800, 0x497a6000, 0x44041000, | ||
10653 | 0x0201f800, 0x000206fd, 0x0401f002, 0x4933c857, | ||
10654 | 0x592c0000, 0x80000540, 0x02020800, 0x001005d8, | ||
10655 | 0x5c025800, 0x492e6008, 0x0201f800, 0x000206fd, | ||
10656 | 0x0201f000, 0x0002077d, 0x492fc857, 0x4a025a06, | ||
10657 | 0x00000006, 0x0201f000, 0x000202da, 0x4c340000, | ||
10658 | 0x59300009, 0x800001c0, 0x04000010, 0x82006c00, | ||
10659 | 0x00000011, 0x50340000, 0x80000540, 0x04000009, | ||
10660 | 0x81300580, 0x04000005, 0x50340000, 0x82006c00, | ||
10661 | 0x00000000, 0x0401f7f8, 0x59300000, 0x44006800, | ||
10662 | 0x5c006800, 0x1c01f000, 0x59300c06, 0x82040580, | ||
10663 | 0x00000005, 0x040007fb, 0x82040580, 0x00000011, | ||
10664 | 0x040007f8, 0x82040580, 0x00000006, 0x040007f5, | ||
10665 | 0x82040580, 0x00000001, 0x040007f2, 0x0201f800, | ||
10666 | 0x001005d8, 0x4933c857, 0x4c080000, 0x4c0c0000, | ||
10667 | 0x4c580000, 0x59a8101d, 0x59cc1807, 0x820c1d00, | ||
10668 | 0x00ffffff, 0x800c0110, 0x80083580, 0x04020014, | ||
10669 | 0x83cc1400, 0x00000008, 0x4200b000, 0x00000002, | ||
10670 | 0x59300009, 0x82001c00, 0x00000006, 0x0201f800, | ||
10671 | 0x0010855a, 0x0402000a, 0x83cc1400, 0x0000000a, | ||
10672 | 0x4200b000, 0x00000002, 0x59300009, 0x82001c00, | ||
10673 | 0x00000008, 0x0201f800, 0x0010855a, 0x5c00b000, | ||
10674 | 0x5c001800, 0x5c001000, 0x1c01f000, 0x4933c856, | ||
10675 | 0x0201f800, 0x0010421b, 0x0201f000, 0x00101e45, | ||
10676 | 0x493bc857, 0x4d2c0000, 0x0201f800, 0x001007e4, | ||
10677 | 0x02000800, 0x001005d8, 0x832cac00, 0x00000005, | ||
10678 | 0x4c580000, 0x4c540000, 0x4200b000, 0x00000006, | ||
10679 | 0x4578a800, 0x8054a800, 0x8058b040, 0x040207fd, | ||
10680 | 0x83380580, 0x00000046, 0x04020004, 0x4a025a04, | ||
10681 | 0x00000144, 0x0401f008, 0x4a025a04, 0x00000146, | ||
10682 | 0x83380580, 0x00000041, 0x04000003, 0x4a025a06, | ||
10683 | 0x00000001, 0x59cc0007, 0x82000500, 0xff000000, | ||
10684 | 0x80000110, 0x59cc1008, 0x82081500, 0xff000000, | ||
10685 | 0x80081540, 0x480a580a, 0x83380580, 0x00000046, | ||
10686 | 0x04020006, 0x59cc0007, 0x82000500, 0x00ffffff, | ||
10687 | 0x4802580b, 0x0401f005, 0x59cc0008, 0x82000500, | ||
10688 | 0x00ffffff, 0x4802580b, 0x83380580, 0x00000046, | ||
10689 | 0x04020004, 0x83cc1400, 0x00000009, 0x0401f003, | ||
10690 | 0x83cc1400, 0x0000000d, 0x50080000, 0x9c0001c0, | ||
10691 | 0x4802580c, 0x80081000, 0x50080000, 0x9c0001c0, | ||
10692 | 0x4802580d, 0x83380580, 0x00000046, 0x04020008, | ||
10693 | 0x59cc000b, 0x9c0001c0, 0x4802580e, 0x59cc000c, | ||
10694 | 0x9c0001c0, 0x4802580f, 0x0401f007, 0x59cc000f, | ||
10695 | 0x9c0001c0, 0x4802580e, 0x59cc0010, 0x9c0001c0, | ||
10696 | 0x4802580f, 0x83380580, 0x00000046, 0x04020004, | ||
10697 | 0x83cc1400, 0x00000011, 0x0401f003, 0x83cc1400, | ||
10698 | 0x00000015, 0x412c3000, 0x82183400, 0x00000010, | ||
10699 | 0x4200b000, 0x00000004, 0x50080000, 0x9c0001c0, | ||
10700 | 0x44003000, 0x80081000, 0x80183000, 0x8058b040, | ||
10701 | 0x040207fa, 0x5c00a800, 0x5c00b000, 0x0201f800, | ||
10702 | 0x000202da, 0x5c025800, 0x1c01f000, 0x4933c857, | ||
10703 | 0x492fc857, 0x59300809, 0x58040200, 0x8c00051e, | ||
10704 | 0x04000004, 0x592c0208, 0x84000558, 0x48025a08, | ||
10705 | 0x1c01f000, 0x59e0180f, 0x599c0413, 0x800c1000, | ||
10706 | 0x80080580, 0x04020002, 0x41781000, 0x59e00010, | ||
10707 | 0x59e00810, 0x80040d80, 0x040207fd, 0x80080580, | ||
10708 | 0x0400000b, 0x4c080000, 0x599c0814, 0x599c1015, | ||
10709 | 0x800c00cc, 0x80040c00, 0x82081440, 0x00000000, | ||
10710 | 0x5c001800, 0x82000540, 0x00000001, 0x4803c857, | ||
10711 | 0x1c01f000, 0x492fc857, 0x42007000, 0x0010b7f8, | ||
10712 | 0x58380807, 0x800409c0, 0x04020005, 0x492c7008, | ||
10713 | 0x492c7007, 0x0201f000, 0x00100875, 0x492c0800, | ||
10714 | 0x492c7007, 0x1c01f000, 0x59300203, 0x4933c857, | ||
10715 | 0x4937c857, 0x493bc857, 0x4803c857, 0x82003480, | ||
10716 | 0x0000000e, 0x02021800, 0x001005d8, 0x0c01f001, | ||
10717 | 0x0010a6da, 0x0010a82c, 0x0010a6da, 0x0010a6da, | ||
10718 | 0x0010a6da, 0x0010a6da, 0x0010a6da, 0x0010a791, | ||
10719 | 0x0010a6dc, 0x0010a6da, 0x0010a6da, 0x0010a6da, | ||
10720 | 0x0010a6da, 0x0010a6da, 0x0201f800, 0x001005d8, | ||
10721 | 0x83380580, 0x0000004c, 0x02020800, 0x001005d8, | ||
10722 | 0x0201f800, 0x001048ec, 0x04020020, 0x59a80826, | ||
10723 | 0x82040500, 0x00000009, 0x82000580, 0x00000008, | ||
10724 | 0x0400001a, 0x8c040d12, 0x0400003d, 0x59cc0806, | ||
10725 | 0x82040d00, 0xff000000, 0x82040580, 0x03000000, | ||
10726 | 0x0400001f, 0x82040580, 0x50000000, 0x04000005, | ||
10727 | 0x82040580, 0x52000000, 0x02020000, 0x0002077d, | ||
10728 | 0x813669c0, 0x04000006, 0x4d3c0000, 0x417a7800, | ||
10729 | 0x0201f800, 0x0010203c, 0x5c027800, 0x4a026403, | ||
10730 | 0x00000001, 0x0401f014, 0x59cc0806, 0x82040d00, | ||
10731 | 0xff000000, 0x82040580, 0x03000000, 0x04000008, | ||
10732 | 0x82040580, 0x50000000, 0x04000005, 0x82040580, | ||
10733 | 0x52000000, 0x02020000, 0x0002077d, 0x4a026403, | ||
10734 | 0x00000009, 0x4a02641a, 0x00000009, 0x4a02621a, | ||
10735 | 0x00000000, 0x813669c0, 0x0402000b, 0x59cc0001, | ||
10736 | 0x0201f800, 0x00105c9a, 0x02020000, 0x0002077d, | ||
10737 | 0x0201f800, 0x001045a6, 0x02020000, 0x0002077d, | ||
10738 | 0x49366009, 0x4a026406, 0x00000004, 0x4a026203, | ||
10739 | 0x00000001, 0x0201f000, 0x0010672b, 0x0201f800, | ||
10740 | 0x00103b25, 0x04000023, 0x59cc0806, 0x4807c857, | ||
10741 | 0x82040d00, 0xff000000, 0x82040580, 0x03000000, | ||
10742 | 0x04000033, 0x82040580, 0x20000000, 0x04000041, | ||
10743 | 0x82040580, 0x21000000, 0x04000052, 0x82040580, | ||
10744 | 0x24000000, 0x0400004f, 0x82040580, 0x50000000, | ||
10745 | 0x0400004c, 0x82040580, 0x52000000, 0x04000049, | ||
10746 | 0x82040580, 0x05000000, 0x0402000d, 0x59cc0806, | ||
10747 | 0x82040d00, 0xff000000, 0x9c0431c0, 0x42028000, | ||
10748 | 0x00000046, 0x42002800, 0x00000001, 0x0401fcf3, | ||
10749 | 0x0401f93c, 0x02000800, 0x001005d8, 0x42002000, | ||
10750 | 0x00000051, 0x0201f800, 0x00107a4a, 0x59cc0000, | ||
10751 | 0x82000500, 0x00ffffff, 0x82000580, 0x00ffffff, | ||
10752 | 0x04000005, 0x4a026203, 0x00000007, 0x493a6403, | ||
10753 | 0x1c01f000, 0x59325817, 0x812e59c0, 0x02020800, | ||
10754 | 0x001007fd, 0x0201f000, 0x0002077d, 0x813669c0, | ||
10755 | 0x040007df, 0x59340400, 0x82000500, 0x000000ff, | ||
10756 | 0x82000580, 0x00000003, 0x040207d9, 0x0401fc6f, | ||
10757 | 0x040207d7, 0x4a026403, 0x00000009, 0x4a02641a, | ||
10758 | 0x0000000e, 0x4a02621a, 0x00001900, 0x0401f7a2, | ||
10759 | 0x813669c0, 0x0400000c, 0x59340c00, 0x82040500, | ||
10760 | 0x000000ff, 0x82000580, 0x00000009, 0x04000794, | ||
10761 | 0x82040500, 0x0000ff00, 0x82000580, 0x00000700, | ||
10762 | 0x040207c3, 0x4a026403, 0x00000009, 0x4a02641a, | ||
10763 | 0x00000009, 0x4a02621a, 0x00001e00, 0x0401f78e, | ||
10764 | 0x813669c0, 0x040007f8, 0x59340c00, 0x82040500, | ||
10765 | 0x0000ff00, 0x82000580, 0x00000700, 0x040007f2, | ||
10766 | 0x0401f7b3, 0x4d2c0000, 0x4c580000, 0x4c500000, | ||
10767 | 0x4c540000, 0x41385000, 0x83380580, 0x00000054, | ||
10768 | 0x02020800, 0x001005d8, 0x59325808, 0x592c0c0b, | ||
10769 | 0x82040d00, 0x0000e000, 0x82040580, 0x00002000, | ||
10770 | 0x04020076, 0x59300817, 0x800409c0, 0x04000014, | ||
10771 | 0x58041404, 0x41cca800, 0x8204a400, 0x00000005, | ||
10772 | 0x82080480, 0x00000010, 0x04021004, 0x4008b000, | ||
10773 | 0x0401fb6b, 0x0401f00a, 0x40001000, 0x4200b000, | ||
10774 | 0x0000000f, 0x0401fb66, 0x58040801, 0x800409c0, | ||
10775 | 0x040207f2, 0x0201f800, 0x001005d8, 0x813669c0, | ||
10776 | 0x0400005e, 0x59344c00, 0x592c0c09, 0x4807c857, | ||
10777 | 0x4827c857, 0x82040d00, 0x000000ff, 0x82040580, | ||
10778 | 0x00000003, 0x0400002a, 0x82040580, 0x00000005, | ||
10779 | 0x04000032, 0x82040580, 0x00000020, 0x04000036, | ||
10780 | 0x82040580, 0x00000052, 0x04000042, 0x82040580, | ||
10781 | 0x00000050, 0x04000042, 0x82040580, 0x00000021, | ||
10782 | 0x04000004, 0x82040580, 0x00000024, 0x04020043, | ||
10783 | 0x82240500, 0x0000ff00, 0x82000580, 0x00000007, | ||
10784 | 0x04000008, 0x42000800, 0x00000009, 0x0201f800, | ||
10785 | 0x00104571, 0x42005000, 0x0000000c, 0x0401f037, | ||
10786 | 0x4a025a06, 0x00000031, 0x4a02580d, 0x00000009, | ||
10787 | 0x59340400, 0x4802580e, 0x0201f800, 0x000202da, | ||
10788 | 0x0201f800, 0x00107911, 0x0401f03d, 0x0201f800, | ||
10789 | 0x001042b4, 0x0201f800, 0x0010462a, 0x42000800, | ||
10790 | 0x00000003, 0x0201f800, 0x00104571, 0x42005000, | ||
10791 | 0x00000008, 0x0401f021, 0x59cc0007, 0x0201f800, | ||
10792 | 0x00105eec, 0x0402001d, 0x0201f800, 0x001042b4, | ||
10793 | 0x0401f01a, 0x82240500, 0x0000ff00, 0x82000580, | ||
10794 | 0x00000007, 0x040007df, 0x82240500, 0x000000ff, | ||
10795 | 0x82000580, 0x00000009, 0x040007da, 0x0201f800, | ||
10796 | 0x0010468d, 0x42005000, 0x0000000a, 0x0401f00b, | ||
10797 | 0x42005000, 0x0000000e, 0x0401f003, 0x42005000, | ||
10798 | 0x00000010, 0x82240500, 0x0000ff00, 0x82000580, | ||
10799 | 0x00000007, 0x040007cb, 0x482a6403, 0x4a026203, | ||
10800 | 0x00000001, 0x592c000d, 0x48026011, 0x497a6013, | ||
10801 | 0x59a80038, 0x48026206, 0x417a7800, 0x0201f800, | ||
10802 | 0x0010672b, 0x59325817, 0x812e59c0, 0x04000004, | ||
10803 | 0x0201f800, 0x001007fd, 0x497a6017, 0x5c00a800, | ||
10804 | 0x5c00a000, 0x5c00b000, 0x5c025800, 0x1c01f000, | ||
10805 | 0x4d2c0000, 0x59325808, 0x83380580, 0x00000013, | ||
10806 | 0x04020029, 0x59300c03, 0x82040580, 0x00000054, | ||
10807 | 0x0400001e, 0x82040580, 0x00000010, 0x04000018, | ||
10808 | 0x82040580, 0x0000000e, 0x04000015, 0x82040580, | ||
10809 | 0x00000008, 0x0400000d, 0x82040580, 0x0000000c, | ||
10810 | 0x0400000a, 0x82040580, 0x0000000a, 0x02020800, | ||
10811 | 0x001005d8, 0x42000800, 0x00000006, 0x0201f800, | ||
10812 | 0x00104571, 0x0401f009, 0x42000800, 0x00000004, | ||
10813 | 0x0201f800, 0x00104571, 0x0401f004, 0x59340200, | ||
10814 | 0x8400051a, 0x48026a00, 0x4a025a06, 0x00000000, | ||
10815 | 0x0201f800, 0x000202da, 0x0201f800, 0x0002077d, | ||
10816 | 0x0401f022, 0x83380580, 0x00000027, 0x0400000e, | ||
10817 | 0x83380580, 0x00000014, 0x02020800, 0x001005d8, | ||
10818 | 0x0201f800, 0x00106bbf, 0x42028000, 0x00000031, | ||
10819 | 0x42000800, 0x00000004, 0x42001000, 0x000000ff, | ||
10820 | 0x0401f009, 0x0201f800, 0x00106bbf, 0x42028000, | ||
10821 | 0x00000031, 0x42000800, 0x00000004, 0x42001000, | ||
10822 | 0x00000010, 0x49425a06, 0x4806580d, 0x480a580e, | ||
10823 | 0x0201f800, 0x000202da, 0x0201f800, 0x00104c19, | ||
10824 | 0x0201f800, 0x00107911, 0x5c025800, 0x1c01f000, | ||
10825 | 0x42007000, 0x0010b7f8, 0x58380807, 0x800409c0, | ||
10826 | 0x04020005, 0x492c7008, 0x492c7007, 0x0201f000, | ||
10827 | 0x00100875, 0x492c0800, 0x492c7007, 0x1c01f000, | ||
10828 | 0x4d2c0000, 0x4c580000, 0x4c500000, 0x4c540000, | ||
10829 | 0x4933c857, 0x4937c857, 0x59cc0806, 0x4807c857, | ||
10830 | 0x82040d00, 0xff000000, 0x82040580, 0x03000000, | ||
10831 | 0x0400000d, 0x82040580, 0x05000000, 0x0400000a, | ||
10832 | 0x82040580, 0x21000000, 0x04000030, 0x82040580, | ||
10833 | 0x24000000, 0x0400002d, 0x82040580, 0x20000000, | ||
10834 | 0x0402002f, 0x0201f800, 0x001007e4, 0x0400002c, | ||
10835 | 0x492fc857, 0x492e6017, 0x59a8b016, 0x8258b400, | ||
10836 | 0x0000001b, 0x8258b500, 0xfffffffc, 0x8058b104, | ||
10837 | 0x485a5c04, 0x412c7800, 0x41cca000, 0x82580480, | ||
10838 | 0x00000010, 0x04021005, 0x832cac00, 0x00000005, | ||
10839 | 0x0401fa63, 0x0401f015, 0x40580800, 0x4200b000, | ||
10840 | 0x0000000f, 0x832cac00, 0x00000005, 0x0401fa5c, | ||
10841 | 0x8204b480, 0x0000000f, 0x0201f800, 0x001007e4, | ||
10842 | 0x04000004, 0x492c7801, 0x412c7800, 0x0401f7ec, | ||
10843 | 0x59325817, 0x0201f800, 0x001007fd, 0x497a6017, | ||
10844 | 0x80000580, 0x0401f006, 0x59340200, 0x84000554, | ||
10845 | 0x48026a00, 0x82000540, 0x00000001, 0x5c00a800, | ||
10846 | 0x5c00a000, 0x5c00b000, 0x5c025800, 0x1c01f000, | ||
10847 | 0x4933c857, 0x492fc857, 0x4d2c0000, 0x59300a03, | ||
10848 | 0x82040580, 0x00000007, 0x04000036, 0x82040580, | ||
10849 | 0x00000001, 0x02020800, 0x001005d8, 0x0201f800, | ||
10850 | 0x00106c55, 0x4df00000, 0x598c000d, 0x81300580, | ||
10851 | 0x04020016, 0x59300004, 0x8c000520, 0x04000004, | ||
10852 | 0x84000520, 0x48026004, 0x0401f016, 0x42001000, | ||
10853 | 0x0010b7f6, 0x50081000, 0x58080002, 0x82000580, | ||
10854 | 0x00000100, 0x04000006, 0x5808000c, 0x81300580, | ||
10855 | 0x02020800, 0x001005d8, 0x0401f00a, 0x0201f800, | ||
10856 | 0x00106e8e, 0x04020020, 0x59300004, 0x8c000520, | ||
10857 | 0x04000004, 0x84000520, 0x48026004, 0x0401f003, | ||
10858 | 0x0201f800, 0x001068d3, 0x5c03e000, 0x02000800, | ||
10859 | 0x00106c4b, 0x0201f800, 0x00109037, 0x02000800, | ||
10860 | 0x001005d8, 0x59325808, 0x4a025a06, 0x00000005, | ||
10861 | 0x0201f800, 0x000202da, 0x0201f800, 0x00104c19, | ||
10862 | 0x59325817, 0x812e59c0, 0x02020800, 0x001007fd, | ||
10863 | 0x0201f800, 0x00107911, 0x80000580, 0x5c025800, | ||
10864 | 0x1c01f000, 0x5c03e000, 0x02000800, 0x00106c4b, | ||
10865 | 0x59300406, 0x82000580, 0x00000011, 0x040007b8, | ||
10866 | 0x0401f7f7, 0x4c040000, 0x59340200, 0x4803c857, | ||
10867 | 0x8c00051c, 0x04000009, 0x59cc0805, 0x591c0019, | ||
10868 | 0x4803c857, 0x80040580, 0x04000004, 0x80000580, | ||
10869 | 0x4803c856, 0x0401f003, 0x82000540, 0x00000001, | ||
10870 | 0x5c000800, 0x1c01f000, 0x4c000000, 0x4c0c0000, | ||
10871 | 0x4c100000, 0x42001800, 0x0000ffff, 0x42002000, | ||
10872 | 0x00000004, 0x0401f010, 0x4c000000, 0x4c0c0000, | ||
10873 | 0x4c100000, 0x59302009, 0x58101c03, 0x42002000, | ||
10874 | 0x00000004, 0x0401f008, 0x4c000000, 0x4c0c0000, | ||
10875 | 0x4c100000, 0x59302009, 0x58101c03, 0x42002000, | ||
10876 | 0x00000007, 0x480fc857, 0x4813c857, 0x481bc857, | ||
10877 | 0x0201f800, 0x00103aae, 0x5c002000, 0x5c001800, | ||
10878 | 0x5c000000, 0x1c01f000, 0x83380580, 0x00000092, | ||
10879 | 0x02020800, 0x001005d8, 0x42000800, 0x80000040, | ||
10880 | 0x4a026203, 0x00000001, 0x493a6403, 0x0201f000, | ||
10881 | 0x00020721, 0x4d400000, 0x0201f800, 0x00103b25, | ||
10882 | 0x04000008, 0x59a80005, 0x84000544, 0x48035005, | ||
10883 | 0x42028000, 0x0000002a, 0x0201f800, 0x0010a449, | ||
10884 | 0x5c028000, 0x1c01f000, 0x59a80026, 0x8c000508, | ||
10885 | 0x04000005, 0x599c0017, 0x8c00050a, 0x04020002, | ||
10886 | 0x1c01f000, 0x82000540, 0x00000001, 0x1c01f000, | ||
10887 | 0x59300420, 0x84000540, 0x48026420, 0x1c01f000, | ||
10888 | 0x4817c857, 0x4c000000, 0x4c040000, 0x8c142d2a, | ||
10889 | 0x04000004, 0x598800b8, 0x80000000, 0x480310b8, | ||
10890 | 0x8c142d2e, 0x04000004, 0x598800b9, 0x80000000, | ||
10891 | 0x480310b9, 0x8c142d2c, 0x04000013, 0x40140000, | ||
10892 | 0x82000500, 0x00070000, 0x82000d80, 0x00030000, | ||
10893 | 0x0400000d, 0x82000d80, 0x00040000, 0x0400000a, | ||
10894 | 0x82000d80, 0x00050000, 0x04000007, 0x59880005, | ||
10895 | 0x80000000, 0x48031005, 0x598800ba, 0x80000000, | ||
10896 | 0x480310ba, 0x5c000800, 0x5c000000, 0x1c01f000, | ||
10897 | 0x4817c857, 0x4c000000, 0x4c040000, 0x8c142d2a, | ||
10898 | 0x04000004, 0x598800bb, 0x80000000, 0x480310bb, | ||
10899 | 0x8c142d2e, 0x04000004, 0x598800bc, 0x80000000, | ||
10900 | 0x480310bc, 0x8c142d2c, 0x04000013, 0x40140000, | ||
10901 | 0x82000500, 0x00070000, 0x82000d80, 0x00030000, | ||
10902 | 0x0400000d, 0x82000d80, 0x00040000, 0x0400000a, | ||
10903 | 0x82000d80, 0x00050000, 0x04000007, 0x59880005, | ||
10904 | 0x80000000, 0x48031005, 0x598800bd, 0x80000000, | ||
10905 | 0x480310bd, 0x5c000800, 0x5c000000, 0x1c01f000, | ||
10906 | 0x4c000000, 0x59880001, 0x80000000, 0x4803c857, | ||
10907 | 0x48031001, 0x5c000000, 0x1c01f000, 0x4c000000, | ||
10908 | 0x59880000, 0x80000000, 0x4803c857, 0x48031000, | ||
10909 | 0x5c000000, 0x1c01f000, 0x4c000000, 0x59880002, | ||
10910 | 0x80000000, 0x4803c857, 0x48031002, 0x5c000000, | ||
10911 | 0x1c01f000, 0x4807c857, 0x4c000000, 0x8c040d2c, | ||
10912 | 0x04000004, 0x598800a6, 0x80000000, 0x480310a6, | ||
10913 | 0x8c040d2a, 0x04000004, 0x598800a7, 0x80000000, | ||
10914 | 0x480310a7, 0x8c040d28, 0x04000004, 0x598800a8, | ||
10915 | 0x80000000, 0x480310a8, 0x8c040d26, 0x04000004, | ||
10916 | 0x598800a9, 0x80000000, 0x480310a9, 0x8c040d24, | ||
10917 | 0x04000004, 0x598800aa, 0x80000000, 0x480310aa, | ||
10918 | 0x8c040d22, 0x04000004, 0x598800ab, 0x80000000, | ||
10919 | 0x480310ab, 0x8c040d20, 0x04000004, 0x598800ac, | ||
10920 | 0x80000000, 0x480310ac, 0x5c000000, 0x1c01f000, | ||
10921 | 0x4807c857, 0x4c000000, 0x598800ad, 0x80000000, | ||
10922 | 0x480310ad, 0x5c000000, 0x1c01f000, 0x4807c857, | ||
10923 | 0x4c000000, 0x8c040d1c, 0x04000004, 0x598800ae, | ||
10924 | 0x80000000, 0x480310ae, 0x8c040d1a, 0x04000004, | ||
10925 | 0x598800af, 0x80000000, 0x480310af, 0x5c000000, | ||
10926 | 0x1c01f000, 0x4807c857, 0x4c000000, 0x8c040d18, | ||
10927 | 0x04000004, 0x598800b0, 0x80000000, 0x480310b0, | ||
10928 | 0x8c040d16, 0x04000004, 0x598800b1, 0x80000000, | ||
10929 | 0x480310b1, 0x8c040d14, 0x04000004, 0x598800b2, | ||
10930 | 0x80000000, 0x480310b2, 0x5c000000, 0x1c01f000, | ||
10931 | 0x4807c857, 0x4c000000, 0x8c040d10, 0x04000004, | ||
10932 | 0x598800b3, 0x80000000, 0x480310b3, 0x8c040d0c, | ||
10933 | 0x04000004, 0x598800b4, 0x80000000, 0x480310b4, | ||
10934 | 0x5c000000, 0x1c01f000, 0x4807c857, 0x4c000000, | ||
10935 | 0x8c040d08, 0x04000004, 0x598800b5, 0x80000000, | ||
10936 | 0x480310b5, 0x8c040d04, 0x04000004, 0x598800b6, | ||
10937 | 0x80000000, 0x480310b6, 0x5c000000, 0x1c01f000, | ||
10938 | 0x4807c856, 0x4c000000, 0x5988007f, 0x80000000, | ||
10939 | 0x4803107f, 0x5c000000, 0x1c01f000, 0x4803c857, | ||
10940 | 0x4c040000, 0x50000800, 0x80040800, 0x4807c857, | ||
10941 | 0x44040000, 0x5c000800, 0x1c01f000, 0x480fc857, | ||
10942 | 0x4c000000, 0x820c0580, 0x00000000, 0x04020004, | ||
10943 | 0x42000000, 0x0010b819, 0x0401f014, 0x820c0580, | ||
10944 | 0x00001001, 0x04020004, 0x42000000, 0x0010b81a, | ||
10945 | 0x0401f00e, 0x820c0580, 0x00001002, 0x04020004, | ||
10946 | 0x42000000, 0x0010b81b, 0x0401f008, 0x820c0c80, | ||
10947 | 0x0000201c, 0x02021800, 0x001005d8, 0x820c0500, | ||
10948 | 0x0000001f, 0x0c01f804, 0x0401ffdd, 0x5c000000, | ||
10949 | 0x1c01f000, 0x0010aa89, 0x0010aa8c, 0x0010aa8f, | ||
10950 | 0x0010aa92, 0x0010aa95, 0x0010aa98, 0x0010aa9b, | ||
10951 | 0x0010aa9e, 0x0010aaa1, 0x0010aaa4, 0x0010aaa7, | ||
10952 | 0x0010aaaa, 0x0010aaad, 0x0010aab0, 0x0010aab3, | ||
10953 | 0x0010aab6, 0x0010aab9, 0x0010aabc, 0x0010aabf, | ||
10954 | 0x0010aac2, 0x0010aac5, 0x0010aac8, 0x0010aacb, | ||
10955 | 0x0010aace, 0x0010aad1, 0x0010aad4, 0x0010aad7, | ||
10956 | 0x0010aada, 0x42000000, 0x0010b81c, 0x1c01f000, | ||
10957 | 0x42000000, 0x0010b81d, 0x1c01f000, 0x42000000, | ||
10958 | 0x0010b81e, 0x1c01f000, 0x42000000, 0x0010b81f, | ||
10959 | 0x1c01f000, 0x42000000, 0x0010b820, 0x1c01f000, | ||
10960 | 0x42000000, 0x0010b821, 0x1c01f000, 0x42000000, | ||
10961 | 0x0010b822, 0x1c01f000, 0x42000000, 0x0010b823, | ||
10962 | 0x1c01f000, 0x42000000, 0x0010b824, 0x1c01f000, | ||
10963 | 0x42000000, 0x0010b825, 0x1c01f000, 0x42000000, | ||
10964 | 0x0010b826, 0x1c01f000, 0x42000000, 0x0010b827, | ||
10965 | 0x1c01f000, 0x42000000, 0x0010b828, 0x1c01f000, | ||
10966 | 0x42000000, 0x0010b829, 0x1c01f000, 0x42000000, | ||
10967 | 0x0010b82a, 0x1c01f000, 0x42000000, 0x0010b82b, | ||
10968 | 0x1c01f000, 0x42000000, 0x0010b82c, 0x1c01f000, | ||
10969 | 0x42000000, 0x0010b82d, 0x1c01f000, 0x42000000, | ||
10970 | 0x0010b82e, 0x1c01f000, 0x42000000, 0x0010b82f, | ||
10971 | 0x1c01f000, 0x42000000, 0x0010b830, 0x1c01f000, | ||
10972 | 0x42000000, 0x0010b831, 0x1c01f000, 0x42000000, | ||
10973 | 0x0010b832, 0x1c01f000, 0x42000000, 0x0010b833, | ||
10974 | 0x1c01f000, 0x42000000, 0x0010b834, 0x1c01f000, | ||
10975 | 0x42000000, 0x0010b835, 0x1c01f000, 0x42000000, | ||
10976 | 0x0010b836, 0x1c01f000, 0x42000000, 0x0010b837, | ||
10977 | 0x1c01f000, 0x480fc857, 0x4c000000, 0x820c0580, | ||
10978 | 0x00000001, 0x04020004, 0x42000000, 0x0010b80e, | ||
10979 | 0x0401f012, 0x820c0580, 0x00000002, 0x04020004, | ||
10980 | 0x42000000, 0x0010b80f, 0x0401f00c, 0x820c0580, | ||
10981 | 0x00000003, 0x04020004, 0x42000000, 0x0010b810, | ||
10982 | 0x0401f006, 0x820c0580, 0x00000004, 0x04020004, | ||
10983 | 0x42000000, 0x0010b811, 0x0401ff51, 0x5c000000, | ||
10984 | 0x1c01f000, 0x4c000000, 0x59a80026, 0x4803c857, | ||
10985 | 0x8c000502, 0x04000010, 0x8c000506, 0x04000004, | ||
10986 | 0x42000000, 0x0010b841, 0x0401f012, 0x8c00050a, | ||
10987 | 0x04000004, 0x42000000, 0x0010b840, 0x0401f00d, | ||
10988 | 0x8c000508, 0x04000004, 0x42000000, 0x0010b843, | ||
10989 | 0x0401f008, 0x0201f800, 0x0010513b, 0x04000006, | ||
10990 | 0x8c000506, 0x04020004, 0x42000000, 0x0010b842, | ||
10991 | 0x0401ff33, 0x5c000000, 0x1c01f000, 0x8058b1c0, | ||
10992 | 0x02000800, 0x001005d8, 0x5450a800, 0x8050a000, | ||
10993 | 0x8054a800, 0x8058b040, 0x040207fc, 0x1c01f000, | ||
10994 | 0x8058b1c0, 0x02000800, 0x001005d8, 0x4450a800, | ||
10995 | 0x8054a800, 0x8058b040, 0x040207fd, 0x1c01f000, | ||
10996 | 0x8058b1c0, 0x02000800, 0x001005d8, 0x50500000, | ||
10997 | 0x9c0001c0, 0x4400a800, 0x8050a000, 0x8054a800, | ||
10998 | 0x8058b040, 0x040207fa, 0x1c01f000, 0x4c000000, | ||
10999 | 0x59a80008, 0x8c00051c, 0x5c000000, 0x1c01f000, | ||
11000 | 0x00000001, 0x00000002, 0x00000004, 0x00000008, | ||
11001 | 0x00000010, 0x00000020, 0x00000040, 0x00000080, | ||
11002 | 0x00000100, 0x00000200, 0x00000400, 0x00000800, | ||
11003 | 0x00001000, 0x00002000, 0x00004000, 0x00008000, | ||
11004 | 0x00010000, 0xa5f2b3ac | ||
11005 | }; | ||
11006 | |||
11007 | #ifdef UNIQUE_FW_NAME | ||
11008 | uint32_t fw2400_length01 = 0x0000ab4a ; | ||
11009 | #else | ||
11010 | uint32_t risc_code_length01 = 0x0000ab4a ; | ||
11011 | #endif | ||
11012 | |||
11013 | |||
11014 | #ifdef UNIQUE_FW_NAME | ||
11015 | uint32_t fw2400_addr02 = 0x0010e000 ; | ||
11016 | #else | ||
11017 | uint32_t risc_code_addr02 = 0x0010e000 ; | ||
11018 | #endif | ||
11019 | |||
11020 | #ifdef UNIQUE_FW_NAME | ||
11021 | uint32_t fw2400_code02[] = { | ||
11022 | #else | ||
11023 | uint32_t risc_code02[] = { | ||
11024 | #endif | ||
11025 | 0x00000000, 0x00000000, 0x0010e000, 0x000014ff, | ||
11026 | 0x00000000, 0x00000000, 0x00020000, 0x000008c0, | ||
11027 | 0x836c0580, 0x00000003, 0x02020000, 0x001002e3, | ||
11028 | 0x42000000, 0x0010b4bb, 0x50000000, 0x800001c0, | ||
11029 | 0x04020956, 0x0401f923, 0x0401fbe3, 0x0401fb5c, | ||
11030 | 0x0201f800, 0x00020718, 0x0201f800, 0x0002057b, | ||
11031 | 0x0401f7f0, 0x59b800ea, 0x82000d00, 0xf0000038, | ||
11032 | 0x02020000, 0x00100a7a, 0x8c000510, 0x02000000, | ||
11033 | 0x00100a79, 0x59ba60e0, 0x81300182, 0x0402104e, | ||
11034 | 0x04002030, 0x8532653e, 0x59300406, 0x82000580, | ||
11035 | 0x00000003, 0x04020028, 0x59300203, 0x82000580, | ||
11036 | 0x00000004, 0x04020024, 0x59325808, 0x59300402, | ||
11037 | 0x4a025a04, 0x00000103, 0x900001c0, 0x48025806, | ||
11038 | 0x497a5807, 0x497a5c09, 0x5930001f, 0x80000540, | ||
11039 | 0x02020800, 0x00100d56, 0x59300004, 0x8c00053e, | ||
11040 | 0x04020010, 0x0401fa88, 0x59326809, 0x0201f800, | ||
11041 | 0x0002077d, 0x5934000f, 0x5934140b, 0x80081040, | ||
11042 | 0x04001002, 0x480a6c0b, 0x80000540, 0x04020a10, | ||
11043 | 0x59b800ea, 0x8c000510, 0x040207d7, 0x1c01f000, | ||
11044 | 0x0201f800, 0x00106f60, 0x040007ef, 0x0201f000, | ||
11045 | 0x00100a65, 0x42027000, 0x00000055, 0x0401f027, | ||
11046 | 0x83326500, 0x3fffffff, 0x59300406, 0x82000580, | ||
11047 | 0x00000003, 0x04020015, 0x59325808, 0x59326809, | ||
11048 | 0x59301402, 0x4a025a04, 0x00000103, 0x900811c0, | ||
11049 | 0x480a5806, 0x497a5c09, 0x497a5807, 0x0401fa62, | ||
11050 | 0x0201f800, 0x0002077d, 0x5934000f, 0x5934140b, | ||
11051 | 0x80081040, 0x04001002, 0x480a6c0b, 0x80000540, | ||
11052 | 0x040209eb, 0x0401f7db, 0x42027000, 0x00000054, | ||
11053 | 0x0401f00a, 0x83300500, 0x60000000, 0x02000000, | ||
11054 | 0x00100a68, 0x81326580, 0x8000013a, 0x82000400, | ||
11055 | 0x00100a80, 0x50027000, 0x59300c06, 0x82040580, | ||
11056 | 0x00000002, 0x02000000, 0x00100a65, 0x59300004, | ||
11057 | 0x8c00053e, 0x04020004, 0x0201f800, 0x000207a1, | ||
11058 | 0x0401f7c4, 0x0201f800, 0x00106f60, 0x040007fb, | ||
11059 | 0x0201f000, 0x00100a65, 0x59325808, 0x412c7000, | ||
11060 | 0x58380a04, 0x82040500, 0x0000000f, 0x82000c00, | ||
11061 | 0x001010bd, 0x50044000, 0x0c01f001, 0x00100dd9, | ||
11062 | 0x00100dd9, 0x0002009f, 0x00100dd9, 0x00100dd9, | ||
11063 | 0x00100dd9, 0x00100dd9, 0x00100dd9, 0x000200af, | ||
11064 | 0x00100ded, 0x00100dd9, 0x00100dd9, 0x00100ddb, | ||
11065 | 0x00100dd9, 0x00100dd9, 0x00100dd9, 0x5838040a, | ||
11066 | 0x8c000500, 0x02000800, 0x001005d8, 0x50200000, | ||
11067 | 0x80387c00, 0x583c1002, 0x583c2800, 0x583c2001, | ||
11068 | 0x58380a07, 0x5838300f, 0x59303807, 0x58384c08, | ||
11069 | 0x5838000d, 0x48026012, 0x0401f010, 0x5838020a, | ||
11070 | 0x8c000502, 0x02000000, 0x00100dd9, 0x50200000, | ||
11071 | 0x80387c00, 0x583c2800, 0x583c2001, 0x583c1002, | ||
11072 | 0x592c0a07, 0x592c4c08, 0x592c300f, 0x59303807, | ||
11073 | 0x497a6012, 0x497a6013, 0x4816600e, 0x4812600f, | ||
11074 | 0x480a6010, 0x481a6011, 0x80040840, 0x4806600d, | ||
11075 | 0x02020000, 0x00100e1a, 0x841c3d40, 0x481e6007, | ||
11076 | 0x1c01f000, 0x41787800, 0x59325808, 0x592c0c0a, | ||
11077 | 0x8c040d02, 0x02000000, 0x00100f8c, 0x592c000d, | ||
11078 | 0x592c100f, 0x592c0a04, 0x480a6011, 0x48026012, | ||
11079 | 0x48026013, 0x412c3000, 0x82040500, 0x0000000f, | ||
11080 | 0x82000400, 0x001010bd, 0x50003800, 0x501c0000, | ||
11081 | 0x401c1000, 0x592c1a07, 0x4802600a, 0x481a600b, | ||
11082 | 0x480a600c, 0x480e600d, 0x843c7d4a, 0x403c1000, | ||
11083 | 0x1c01f000, 0x41787800, 0x497a6012, 0x592c0a04, | ||
11084 | 0x412c3000, 0x592c1a07, 0x82040500, 0x0000000f, | ||
11085 | 0x82000400, 0x001010bd, 0x50004000, 0x50200000, | ||
11086 | 0x40201000, 0x4802600a, 0x481a600b, 0x480a600c, | ||
11087 | 0x480e600d, 0x80000580, 0x483e6004, 0x1c01f000, | ||
11088 | 0x4c000000, 0x4df00000, 0x0201f800, 0x00020729, | ||
11089 | 0x0401f005, 0x4c000000, 0x4df00000, 0x0401ff16, | ||
11090 | 0x0401f001, 0x5c03e000, 0x5c000000, 0x1801f000, | ||
11091 | 0x4203e000, 0xb0100000, 0x41fc0000, 0x82000500, | ||
11092 | 0x00000011, 0x0c01f001, 0x0002012a, 0x00020697, | ||
11093 | 0x0002012a, 0x0002012a, 0x0002012a, 0x0002012a, | ||
11094 | 0x0002012a, 0x0002012a, 0x0002012a, 0x0002012a, | ||
11095 | 0x0002012a, 0x0002012a, 0x0002012a, 0x0002012a, | ||
11096 | 0x0002012a, 0x0002012a, 0x0010115a, 0x0002012c, | ||
11097 | 0x0002012a, 0x0002012a, 0x0002012a, 0x0002012a, | ||
11098 | 0x0002012a, 0x0002012a, 0x0002012a, 0x0002012a, | ||
11099 | 0x0002012a, 0x0002012a, 0x0002012a, 0x0002012a, | ||
11100 | 0x0002012a, 0x0002012a, 0x0201f800, 0x001005d8, | ||
11101 | 0x0201f800, 0x00020697, 0x0201f000, 0x0010115a, | ||
11102 | 0x42000000, 0x0010b4c1, 0x50000000, 0x8c000504, | ||
11103 | 0x04000014, 0x42000000, 0x0010b4c1, 0x50000000, | ||
11104 | 0x8c000502, 0x04020002, 0x1c01f000, 0x4df00000, | ||
11105 | 0x4203e000, 0x50000000, 0x42034000, 0x0010b4a4, | ||
11106 | 0x59a0001d, 0x59a1d81e, 0x84000502, 0x4803401d, | ||
11107 | 0x58ec0009, 0x0801f800, 0x5c03e000, 0x1c01f000, | ||
11108 | 0x04027002, 0x04026002, 0x1c01f000, 0x4df00000, | ||
11109 | 0x4203e000, 0x50000000, 0x0201f800, 0x001007e4, | ||
11110 | 0x04000010, 0x412dd800, 0x48efc857, 0x0201f800, | ||
11111 | 0x00103b28, 0x42034000, 0x0010b4a4, 0x49a1d80b, | ||
11112 | 0x48ef401e, 0x59a0001d, 0x84000544, 0x4803401d, | ||
11113 | 0x0201f800, 0x00102214, 0x0201f800, 0x00102233, | ||
11114 | 0x5c03e000, 0x1c01f000, 0x4da00000, 0x4df00000, | ||
11115 | 0x4203e000, 0x50000000, 0x04006051, 0x40001000, | ||
11116 | 0x42034000, 0x0010b4a4, 0x59a01818, 0x800c19c0, | ||
11117 | 0x04020008, 0x59a0381b, 0x801c39c0, 0x02000800, | ||
11118 | 0x001005d8, 0x59a0041c, 0x801c3c00, 0x0401f00c, | ||
11119 | 0x59a00419, 0x82000400, 0x00000002, 0x48034419, | ||
11120 | 0x82000c80, 0x00000013, 0x04001003, 0x497b4419, | ||
11121 | 0x41780000, 0x59a03816, 0x801c3c00, 0x80081040, | ||
11122 | 0x480b4017, 0x581c0200, 0x4803c021, 0x581c0401, | ||
11123 | 0x4803c022, 0x581c0201, 0x4803c023, 0x581c0400, | ||
11124 | 0x4803c020, 0x900001c0, 0x82000540, 0x00000012, | ||
11125 | 0x4803c011, 0x59e00017, 0x8c000508, 0x04000003, | ||
11126 | 0x4a03c017, 0x00000002, 0x4203e000, 0x30000001, | ||
11127 | 0x800c19c0, 0x04000007, 0x800c1840, 0x480f4018, | ||
11128 | 0x0402001f, 0x497b4419, 0x497b4219, 0x0401f01c, | ||
11129 | 0x800811c0, 0x0402000b, 0x4d2c0000, 0x59a2581b, | ||
11130 | 0x0201f800, 0x001007f4, 0x5c025800, 0x497b401b, | ||
11131 | 0x497b401a, 0x497b441c, 0x497b421c, 0x0401f010, | ||
11132 | 0x59a0041c, 0x82000400, 0x00000002, 0x82000c80, | ||
11133 | 0x00000012, 0x4803441c, 0x04001009, 0x4d2c0000, | ||
11134 | 0x59a2581b, 0x592c3813, 0x481f401b, 0x497b441c, | ||
11135 | 0x0201f800, 0x001007f4, 0x5c025800, 0x5c03e000, | ||
11136 | 0x5c034000, 0x1c01f000, 0x59a80005, 0x82000500, | ||
11137 | 0x00000003, 0x02020000, 0x00104315, 0x59340400, | ||
11138 | 0x82000580, 0x00000606, 0x02020000, 0x001042e6, | ||
11139 | 0x5934000d, 0x80027d40, 0x02020000, 0x00104321, | ||
11140 | 0x0401f803, 0x80000580, 0x1c01f000, 0x5934000f, | ||
11141 | 0x59341203, 0x80080540, 0x0402006f, 0x5934020b, | ||
11142 | 0x5934140b, 0x80080480, 0x0402106b, 0x0201f800, | ||
11143 | 0x0002075a, 0x04000064, 0x80081000, 0x592c0406, | ||
11144 | 0x480a6c0b, 0x49366009, 0x492e6008, 0x4a026406, | ||
11145 | 0x00000003, 0x4a026403, 0x00000040, 0x800000c2, | ||
11146 | 0x800018c4, 0x800c0400, 0x48026206, 0x592c0808, | ||
11147 | 0x592c1809, 0x592c020a, 0x48066017, 0x480e6018, | ||
11148 | 0x8c000502, 0x04000030, 0x4a026203, 0x00000004, | ||
11149 | 0x592c0207, 0x80000040, 0x04020020, 0x59a80005, | ||
11150 | 0x8c000514, 0x42000000, 0x00000055, 0x04020003, | ||
11151 | 0x42000000, 0x00000033, 0x80000040, 0x040207ff, | ||
11152 | 0x592c0204, 0x82000500, 0x000000ff, 0x82000580, | ||
11153 | 0x00000018, 0x04020011, 0x592c180f, 0x59300007, | ||
11154 | 0x82000540, 0x00000091, 0x480e6011, 0x48026007, | ||
11155 | 0x42000000, 0x80000004, 0x48026004, 0x59bc00ea, | ||
11156 | 0x8c000516, 0x040207fe, 0x83300400, 0x20000000, | ||
11157 | 0x480378e1, 0x1c01f000, 0x0401fe78, 0x59300007, | ||
11158 | 0x8400054e, 0x48026007, 0x592c1a04, 0x820c1d00, | ||
11159 | 0x000000ff, 0x820c0580, 0x00000048, 0x04000017, | ||
11160 | 0x0401f7ec, 0x8c000500, 0x04020ecb, 0x4a026203, | ||
11161 | 0x00000002, 0x59a80805, 0x82040500, 0x00000600, | ||
11162 | 0x04020012, 0x42000000, 0x00000030, 0x80000040, | ||
11163 | 0x040207ff, 0x592c1a04, 0x820c1d00, 0x000000ff, | ||
11164 | 0x820c0580, 0x00000018, 0x040007da, 0x820c0580, | ||
11165 | 0x00000048, 0x040207d7, 0x42000800, 0x80000804, | ||
11166 | 0x0201f000, 0x00106721, 0x8c040d12, 0x42000000, | ||
11167 | 0x00000010, 0x040207ee, 0x42000000, 0x00000051, | ||
11168 | 0x0401f7eb, 0x800811c0, 0x04020003, 0x4a026a03, | ||
11169 | 0x00000001, 0x59340010, 0x492e6810, 0x80000d40, | ||
11170 | 0x04020003, 0x492e680f, 0x1c01f000, 0x492c0800, | ||
11171 | 0x1c01f000, 0x83440c80, 0x00000800, 0x04021009, | ||
11172 | 0x83440400, 0x0010ac00, 0x50000000, 0x80000540, | ||
11173 | 0x04000004, 0x40026800, 0x80000580, 0x1c01f000, | ||
11174 | 0x82000540, 0x00000001, 0x1c01f000, 0x59340203, | ||
11175 | 0x80000540, 0x0402004b, 0x4d300000, 0x4d2c0000, | ||
11176 | 0x5934000f, 0x80025d40, 0x04000044, 0x0201f800, | ||
11177 | 0x0002075a, 0x0400003f, 0x592c0000, 0x4802680f, | ||
11178 | 0x80000540, 0x04020002, 0x48026810, 0x592c2a04, | ||
11179 | 0x80081000, 0x480a6c0b, 0x49366009, 0x492e6008, | ||
11180 | 0x82142d00, 0x000000ff, 0x82140580, 0x00000012, | ||
11181 | 0x04000035, 0x4a026406, 0x00000003, 0x4a026403, | ||
11182 | 0x00000040, 0x592c0406, 0x800000c2, 0x800018c4, | ||
11183 | 0x800c0400, 0x48026206, 0x592c0808, 0x592c1809, | ||
11184 | 0x592c020a, 0x48066017, 0x480e6018, 0x8c000502, | ||
11185 | 0x02000000, 0x0010474d, 0x4a026203, 0x00000004, | ||
11186 | 0x592c0207, 0x80000040, 0x02020000, 0x00104740, | ||
11187 | 0x82140580, 0x00000018, 0x02020000, 0x00104740, | ||
11188 | 0x592c180f, 0x59300007, 0x82000540, 0x00000091, | ||
11189 | 0x480e6011, 0x48026007, 0x42000000, 0x80000004, | ||
11190 | 0x48026004, 0x59bc00ea, 0x8c000516, 0x040207fe, | ||
11191 | 0x83300400, 0x20000000, 0x480378e1, 0x5934020b, | ||
11192 | 0x5934140b, 0x80080480, 0x040017be, 0x0401f003, | ||
11193 | 0x4a026a03, 0x00000001, 0x5c025800, 0x5c026000, | ||
11194 | 0x1c01f000, 0x497a5800, 0x49325809, 0x4a026406, | ||
11195 | 0x00000006, 0x4a026203, 0x00000007, 0x0401f802, | ||
11196 | 0x0401f7ef, 0x59a80021, 0x800001c0, 0x02020000, | ||
11197 | 0x0010476f, 0x59a80005, 0x8c000504, 0x02020000, | ||
11198 | 0x0010476b, 0x59340200, 0x8c000518, 0x02020000, | ||
11199 | 0x00104767, 0x592c0a0c, 0x48066202, 0x4a025a06, | ||
11200 | 0x00000000, 0x8c000508, 0x02020000, 0x00104763, | ||
11201 | 0x4d3c0000, 0x417a7800, 0x0401fbdf, 0x5c027800, | ||
11202 | 0x1c01f000, 0x592c0404, 0x8c00051e, 0x02020000, | ||
11203 | 0x00104ce4, 0x59980022, 0x80000540, 0x04000017, | ||
11204 | 0x592c0a06, 0x592c0409, 0x80040540, 0x04020013, | ||
11205 | 0x0201f000, 0x00104cfa, 0x592c0404, 0x8c00051e, | ||
11206 | 0x02020000, 0x00104cf3, 0x59980022, 0x80000540, | ||
11207 | 0x0400000a, 0x82040580, 0x00000001, 0x04020007, | ||
11208 | 0x0201f000, 0x00104cfa, 0x592c0404, 0x8c00051e, | ||
11209 | 0x02020000, 0x00104dca, 0x59980026, 0x497a5800, | ||
11210 | 0x80000540, 0x02020000, 0x00104e1d, 0x59d80105, | ||
11211 | 0x82000d00, 0x00018780, 0x02020000, 0x00104edb, | ||
11212 | 0x80000106, 0x82000500, 0x00000003, 0x0c01f001, | ||
11213 | 0x000202f0, 0x00104e1d, 0x000202f6, 0x00020341, | ||
11214 | 0x592c0001, 0x492fb107, 0x80000d40, 0x02020000, | ||
11215 | 0x00104ddb, 0x1c01f000, 0x592c0001, 0x492fb107, | ||
11216 | 0x80000d40, 0x02020000, 0x00104de8, 0x59da5908, | ||
11217 | 0x835c0480, 0x00000020, 0x0400102c, 0x0402b034, | ||
11218 | 0x492fb007, 0x0400e7fa, 0x59d80105, 0x82000500, | ||
11219 | 0x00018780, 0x02020000, 0x00104edb, 0x0400601f, | ||
11220 | 0x59d8010a, 0x59d8090a, 0x80040580, 0x040207fd, | ||
11221 | 0x800408e0, 0x599c1017, 0x8c081508, 0x04020028, | ||
11222 | 0x82040d40, 0x00000013, 0x5998002b, 0x4807c011, | ||
11223 | 0x84000500, 0x4803302b, 0x59e00017, 0x8c000508, | ||
11224 | 0x04020004, 0x4203e000, 0x30000001, 0x1c01f000, | ||
11225 | 0x4a03c017, 0x00000003, 0x82040500, 0x000000ff, | ||
11226 | 0x82000580, 0x0000001d, 0x040207f7, 0x4a03c017, | ||
11227 | 0x0000000d, 0x0401f7f4, 0x5998082b, 0x84040d40, | ||
11228 | 0x4807302b, 0x1c01f000, 0x496a5800, 0x412ed000, | ||
11229 | 0x815eb800, 0x59c80000, 0x82000540, 0x00001200, | ||
11230 | 0x48039000, 0x0400e7ca, 0x0401f7d0, 0x0402f7f7, | ||
11231 | 0x492fa807, 0x0400e7c6, 0x0401f7cc, 0x59e0000f, | ||
11232 | 0x59e0100f, 0x80081580, 0x040207fd, 0x81281580, | ||
11233 | 0x040007d4, 0x40025000, 0x82040d40, 0x0000001d, | ||
11234 | 0x0401f7d2, 0x59d80908, 0x45680800, 0x4006d000, | ||
11235 | 0x815eb800, 0x0400e7fc, 0x59c80000, 0x82000540, | ||
11236 | 0x00001200, 0x48039000, 0x02006000, 0x00104df8, | ||
11237 | 0x59d8010a, 0x59d8090a, 0x80040d80, 0x040207fd, | ||
11238 | 0x900001c0, 0x82000540, 0x00000013, 0x4803c011, | ||
11239 | 0x5998002b, 0x84000500, 0x4803302b, 0x59e00017, | ||
11240 | 0x8c000508, 0x04000003, 0x4a03c017, 0x00000003, | ||
11241 | 0x4203e000, 0x30000001, 0x59d80105, 0x82000500, | ||
11242 | 0x00018780, 0x02020000, 0x00104edb, 0x0202d000, | ||
11243 | 0x00104dfd, 0x592c0001, 0x492fb107, 0x80000d40, | ||
11244 | 0x02020000, 0x00104e10, 0x1c01f000, 0x59980020, | ||
11245 | 0x0c01f001, 0x00020370, 0x00020371, 0x00104e88, | ||
11246 | 0x1c01f000, 0x4df00000, 0x4203e000, 0x50000000, | ||
11247 | 0x0402681e, 0x04006004, 0x599c0017, 0x8c000508, | ||
11248 | 0x04020865, 0x59980029, 0x80025d40, 0x0400000a, | ||
11249 | 0x0402d00b, 0x59980026, 0x80000040, 0x48033026, | ||
11250 | 0x592c0000, 0x492fb107, 0x48033029, 0x04020002, | ||
11251 | 0x48033028, 0x5c03e000, 0x1c01f000, 0x59d80105, | ||
11252 | 0x82000500, 0x00018780, 0x02020000, 0x00104edb, | ||
11253 | 0x42000000, 0x0010b855, 0x0201f800, 0x0010aa47, | ||
11254 | 0x5c03e000, 0x1c01f000, 0x5998002b, 0x8c000500, | ||
11255 | 0x0402003b, 0x0400e007, 0x59d80105, 0x82000500, | ||
11256 | 0x00018780, 0x02020000, 0x00104edb, 0x1c01f000, | ||
11257 | 0x59da5908, 0x835c0c80, 0x00000020, 0x04001003, | ||
11258 | 0x0400b029, 0x0400f02b, 0x496a5800, 0x412ed000, | ||
11259 | 0x815eb800, 0x59c80000, 0x82000540, 0x00001200, | ||
11260 | 0x48039000, 0x0400e7f3, 0x59d8010a, 0x59d8090a, | ||
11261 | 0x80040580, 0x040207fd, 0x800408e0, 0x599c1017, | ||
11262 | 0x8c081508, 0x04020022, 0x82040d40, 0x00000013, | ||
11263 | 0x4807c011, 0x59e00017, 0x8c000508, 0x0400000a, | ||
11264 | 0x4a03c017, 0x00000003, 0x82040500, 0x000000ff, | ||
11265 | 0x82000580, 0x0000001d, 0x04020003, 0x4a03c017, | ||
11266 | 0x0000000d, 0x4203e000, 0x30000001, 0x59d80105, | ||
11267 | 0x82000500, 0x00018780, 0x02020000, 0x00104edb, | ||
11268 | 0x1c01f000, 0x492fb007, 0x0400e7d2, 0x0401f7df, | ||
11269 | 0x492fa807, 0x0400e7cf, 0x0401f7dc, 0x84000500, | ||
11270 | 0x4803302b, 0x0400e7cb, 0x0401f7d8, 0x59e0000f, | ||
11271 | 0x59e0100f, 0x80081580, 0x040207fd, 0x81281580, | ||
11272 | 0x040007da, 0x40025000, 0x82040d40, 0x0000001d, | ||
11273 | 0x0401f7d8, 0x59e0000f, 0x59e0100f, 0x80080d80, | ||
11274 | 0x040207fd, 0x81280580, 0x04020002, 0x1c01f000, | ||
11275 | 0x400a5000, 0x900811c0, 0x82081540, 0x0000001c, | ||
11276 | 0x480bc011, 0x59e00017, 0x8c000508, 0x04000003, | ||
11277 | 0x4a03c017, 0x0000000c, 0x4203e000, 0x30000001, | ||
11278 | 0x1c01f000, 0x41700000, 0x0c01f001, 0x00105420, | ||
11279 | 0x000203fc, 0x00105420, 0x00105421, 0x0010541e, | ||
11280 | 0x0010541e, 0x0010541e, 0x0010541e, 0x001058b0, | ||
11281 | 0x04010037, 0x59980006, 0x80000540, 0x0402003c, | ||
11282 | 0x0402c01c, 0x4202f800, 0x00000010, 0x4df00000, | ||
11283 | 0x4203e000, 0x50000000, 0x49db3005, 0x59da5808, | ||
11284 | 0x592c0204, 0x497a5800, 0x497a5801, 0x82000500, | ||
11285 | 0x000000ff, 0x82000c80, 0x00000079, 0x04021036, | ||
11286 | 0x0c01f839, 0x5c03e000, 0x817ef840, 0x04000009, | ||
11287 | 0x836c0580, 0x00000003, 0x04020006, 0x83700580, | ||
11288 | 0x00000001, 0x04020010, 0x0401001b, 0x0400c7e8, | ||
11289 | 0x0400f94a, 0x0400b134, 0x59d40005, 0x82000500, | ||
11290 | 0x43018780, 0x02020000, 0x0010583f, 0x59d80005, | ||
11291 | 0x82000500, 0x43018780, 0x02020000, 0x00105846, | ||
11292 | 0x1c01f000, 0x83700580, 0x00000003, 0x02000800, | ||
11293 | 0x00105421, 0x83700580, 0x00000001, 0x040207ed, | ||
11294 | 0x04010005, 0x0400c7d2, 0x0401f7ea, 0x4202f800, | ||
11295 | 0x00000010, 0x4df00000, 0x4203e000, 0x50000000, | ||
11296 | 0x49d73005, 0x59d65808, 0x0401f7ce, 0x4df00000, | ||
11297 | 0x4203e000, 0x50000000, 0x40025800, 0x592c0204, | ||
11298 | 0x497b3005, 0x497b3006, 0x4202f800, 0x00000010, | ||
11299 | 0x0401f7c7, 0x0201f800, 0x00105491, 0x5c03e000, | ||
11300 | 0x0401f7d4, 0x00105491, 0x00105491, 0x00105491, | ||
11301 | 0x00105491, 0x00105527, 0x00105491, 0x00105491, | ||
11302 | 0x00105491, 0x00105491, 0x00105491, 0x001054a1, | ||
11303 | 0x00105491, 0x00105491, 0x00105491, 0x00105551, | ||
11304 | 0x00105491, 0x00105491, 0x00105491, 0x000204ef, | ||
11305 | 0x00105491, 0x001056b4, 0x00105491, 0x00105491, | ||
11306 | 0x00105491, 0x000204c2, 0x00105491, 0x00105491, | ||
11307 | 0x00105491, 0x00105491, 0x00105491, 0x00105491, | ||
11308 | 0x00105491, 0x00105491, 0x00105491, 0x00105491, | ||
11309 | 0x00105491, 0x00105491, 0x00105491, 0x00105491, | ||
11310 | 0x00105491, 0x00105491, 0x001054c9, 0x00105491, | ||
11311 | 0x00105491, 0x00105491, 0x00105491, 0x00105491, | ||
11312 | 0x00105491, 0x00105491, 0x00105491, 0x00105491, | ||
11313 | 0x001057d3, 0x00105491, 0x00105491, 0x00105491, | ||
11314 | 0x00105491, 0x00105491, 0x0010581e, 0x00105491, | ||
11315 | 0x001054bb, 0x00105491, 0x00105797, 0x00105491, | ||
11316 | 0x00105491, 0x00105491, 0x00105491, 0x00105491, | ||
11317 | 0x00105491, 0x00105491, 0x00105765, 0x00105491, | ||
11318 | 0x00105765, 0x00105872, 0x00105491, 0x00105491, | ||
11319 | 0x00105491, 0x00105491, 0x00105491, 0x00105491, | ||
11320 | 0x00105491, 0x00105491, 0x00105491, 0x00105725, | ||
11321 | 0x00105855, 0x00105491, 0x00105865, 0x00105491, | ||
11322 | 0x00105491, 0x00105491, 0x00105491, 0x00105491, | ||
11323 | 0x00105491, 0x00105491, 0x00105491, 0x00105491, | ||
11324 | 0x00105491, 0x00105491, 0x00105491, 0x00105491, | ||
11325 | 0x00105491, 0x00105491, 0x00105491, 0x00105491, | ||
11326 | 0x00105491, 0x00105491, 0x00105491, 0x00105491, | ||
11327 | 0x00105491, 0x00105491, 0x00105491, 0x00105491, | ||
11328 | 0x00105491, 0x00105491, 0x00105491, 0x00105491, | ||
11329 | 0x00105491, 0x00105491, 0x00105491, 0x00105491, | ||
11330 | 0x00105491, 0x00105491, 0x592c0204, 0x80000110, | ||
11331 | 0x02000000, 0x00105499, 0x80000040, 0x04000009, | ||
11332 | 0x48033002, 0x492f3003, 0x492f3004, 0x4a033008, | ||
11333 | 0x000204d0, 0x4202e000, 0x00000003, 0x1c01f000, | ||
11334 | 0x592c0406, 0x82000c80, 0x0000199a, 0x02021000, | ||
11335 | 0x001054a9, 0x59a80021, 0x80000540, 0x02020000, | ||
11336 | 0x001054d7, 0x592e8a06, 0x83440c80, 0x000007f0, | ||
11337 | 0x02021000, 0x001054a9, 0x83440400, 0x0010ac00, | ||
11338 | 0x50000000, 0x80026d40, 0x02000000, 0x001054db, | ||
11339 | 0x59340002, 0x592c0810, 0x80040580, 0x82000500, | ||
11340 | 0x00ffffff, 0x02020000, 0x001054a9, 0x0401fccf, | ||
11341 | 0x02020000, 0x001054de, 0x1c01f000, 0x592c0204, | ||
11342 | 0x80000110, 0x02000000, 0x00105499, 0x80000040, | ||
11343 | 0x0402000b, 0x592c040a, 0x8c000504, 0x04000010, | ||
11344 | 0x592c0207, 0x82000c80, 0x00001001, 0x02021000, | ||
11345 | 0x001054a9, 0x0201f000, 0x0010588a, 0x48033002, | ||
11346 | 0x492f3003, 0x492f3004, 0x4a033008, 0x00020507, | ||
11347 | 0x4202e000, 0x00000003, 0x1c01f000, 0x592c0406, | ||
11348 | 0x82000c80, 0x0000199a, 0x02021000, 0x001054a9, | ||
11349 | 0x592e8a06, 0x417a7800, 0x0401fd37, 0x02020000, | ||
11350 | 0x00105658, 0x59340002, 0x592c0808, 0x80040580, | ||
11351 | 0x82000500, 0x00ffffff, 0x02020000, 0x001054a9, | ||
11352 | 0x497a5808, 0x592e6009, 0x83300580, 0xffffffff, | ||
11353 | 0x02000000, 0x00105618, 0x83300480, 0x0010d1c0, | ||
11354 | 0x02001000, 0x00105675, 0x59a8000b, 0x81300480, | ||
11355 | 0x02021000, 0x00105675, 0x592c240a, 0x49366009, | ||
11356 | 0x8c10251c, 0x02020000, 0x00105606, 0x59a80068, | ||
11357 | 0x8c000510, 0x02020000, 0x0010568e, 0x59a80821, | ||
11358 | 0x800409c0, 0x02020000, 0x001055ec, 0x59a80805, | ||
11359 | 0x8c040d04, 0x02020000, 0x0010567f, 0x59340200, | ||
11360 | 0x8c000518, 0x02020000, 0x00105670, 0x59300c06, | ||
11361 | 0x82040580, 0x00000006, 0x02020000, 0x00105610, | ||
11362 | 0x59300414, 0x8c000516, 0x02020000, 0x0010567a, | ||
11363 | 0x8c102508, 0x02020000, 0x0010a5b8, 0x59300808, | ||
11364 | 0x4a025a06, 0x00000000, 0x800409c0, 0x02020000, | ||
11365 | 0x001055e7, 0x592c0a0c, 0x48066202, 0x492e6008, | ||
11366 | 0x0401f14d, 0x4df00000, 0x4203e000, 0x50000000, | ||
11367 | 0x0402b00b, 0x835c0480, 0x00000020, 0x0400100d, | ||
11368 | 0x815eb840, 0x416a5800, 0x592ed000, 0x492fb007, | ||
11369 | 0x497a5800, 0x497a5801, 0x0400b7f7, 0x59d80005, | ||
11370 | 0x82000500, 0x43018780, 0x02020000, 0x00105846, | ||
11371 | 0x5c03e000, 0x1c01f000, 0x4df00000, 0x4203e000, | ||
11372 | 0x50000000, 0x0402f00b, 0x835c0480, 0x00000020, | ||
11373 | 0x0400100d, 0x815eb840, 0x416a5800, 0x592ed000, | ||
11374 | 0x492fa807, 0x497a5800, 0x497a5801, 0x0400f7f7, | ||
11375 | 0x59d40005, 0x82000500, 0x43018780, 0x02020000, | ||
11376 | 0x0010583f, 0x5c03e000, 0x1c01f000, 0x4df00000, | ||
11377 | 0x4203e000, 0x50000000, 0x59940024, 0x80000540, | ||
11378 | 0x04000112, 0x4c000000, 0x42000000, 0x00001000, | ||
11379 | 0x50000000, 0x82000480, 0x24320001, 0x04020015, | ||
11380 | 0x42000800, 0x00000064, 0x80040840, 0x04000007, | ||
11381 | 0x4a030000, 0x00000001, 0x40000000, 0x59800000, | ||
11382 | 0x8c000500, 0x040007f9, 0x04000008, 0x42000800, | ||
11383 | 0x00007a01, 0x50040000, 0x8c000510, 0x04000003, | ||
11384 | 0x84000510, 0x44000800, 0x4a030000, 0x00000000, | ||
11385 | 0x59e00002, 0x8c00051e, 0x0402001b, 0x42000000, | ||
11386 | 0x00001000, 0x50000000, 0x82000480, 0x24320002, | ||
11387 | 0x04020015, 0x42000800, 0x00000064, 0x80040840, | ||
11388 | 0x04000007, 0x4a030000, 0x00000001, 0x40000000, | ||
11389 | 0x59800000, 0x8c000500, 0x040007f9, 0x04000008, | ||
11390 | 0x42000800, 0x00007a17, 0x50040000, 0x8c00050e, | ||
11391 | 0x04020003, 0x8400054e, 0x44000800, 0x4a030000, | ||
11392 | 0x00000000, 0x5c000000, 0x5994781a, 0x48032825, | ||
11393 | 0x803c0480, 0x04001004, 0x04000003, 0x4803281a, | ||
11394 | 0x0401f022, 0x41787800, 0x803c7800, 0x82000400, | ||
11395 | 0x000003e8, 0x040027fd, 0x4803281a, 0x59a80024, | ||
11396 | 0x803c1400, 0x480b5024, 0x803c0040, 0x04000002, | ||
11397 | 0x483fc857, 0x59e40852, 0x59a80025, 0x80040580, | ||
11398 | 0x04000004, 0x480bc857, 0x59e40052, 0x48035025, | ||
11399 | 0x59940026, 0x803c0400, 0x48032826, 0x0201f800, | ||
11400 | 0x00106021, 0x59940000, 0x82000580, 0x00000000, | ||
11401 | 0x04020006, 0x59940026, 0x48032827, 0x497b2826, | ||
11402 | 0x4a032800, 0x00000001, 0x4c0c0000, 0x59940007, | ||
11403 | 0x80000d40, 0x0400001d, 0x59941006, 0x59940025, | ||
11404 | 0x80081c80, 0x04001004, 0x04000003, 0x480f2806, | ||
11405 | 0x0401f016, 0x80040840, 0x48072807, 0x82040580, | ||
11406 | 0x000003e8, 0x04020007, 0x4c040000, 0x4c0c0000, | ||
11407 | 0x59940008, 0x0801f800, 0x5c001800, 0x5c000800, | ||
11408 | 0x800409c0, 0x04020004, 0x59940008, 0x0801f800, | ||
11409 | 0x0401f006, 0x400c0000, 0x820c1c00, 0x0000000a, | ||
11410 | 0x040027ed, 0x480f2806, 0x5c001800, 0x4d180000, | ||
11411 | 0x59c40008, 0x8c000534, 0x04020025, 0x417a3000, | ||
11412 | 0x83947c00, 0x00000009, 0x583c0001, 0x80000d40, | ||
11413 | 0x04020008, 0x823c7c00, 0x00000003, 0x811a3000, | ||
11414 | 0x83180580, 0x00000005, 0x040207f8, 0x0401f018, | ||
11415 | 0x583c1000, 0x59940025, 0x80080480, 0x04001005, | ||
11416 | 0x04000004, 0x48007800, 0x80000040, 0x04021010, | ||
11417 | 0x80040840, 0x48047801, 0x04000008, 0x82000400, | ||
11418 | 0x0000000a, 0x48007800, 0x040027fa, 0x82040500, | ||
11419 | 0x0000007f, 0x0401f7e8, 0x583c0002, 0x4c3c0000, | ||
11420 | 0x0801f800, 0x5c007800, 0x0401f7e3, 0x5c023000, | ||
11421 | 0x59940019, 0x80001540, 0x04000008, 0x04002007, | ||
11422 | 0x59940025, 0x80080480, 0x497b2819, 0x04001003, | ||
11423 | 0x04000002, 0x48032819, 0x59940004, 0x80000d40, | ||
11424 | 0x0400002a, 0x4c040000, 0x5994001c, 0x80000d40, | ||
11425 | 0x04000013, 0x5994101b, 0x59940025, 0x80080480, | ||
11426 | 0x04001005, 0x04000004, 0x4803281b, 0x80000040, | ||
11427 | 0x0402100b, 0x80040840, 0x4807281c, 0x04020004, | ||
11428 | 0x5994001d, 0x0801f800, 0x0401f005, 0x82000400, | ||
11429 | 0x0000000a, 0x4803281b, 0x040027f7, 0x5c000800, | ||
11430 | 0x59941003, 0x59940025, 0x80080480, 0x04001005, | ||
11431 | 0x04000004, 0x48032803, 0x80000040, 0x0402100b, | ||
11432 | 0x80040840, 0x48072804, 0x04020004, 0x59940005, | ||
11433 | 0x0801f800, 0x0401f005, 0x82000400, 0x0000000a, | ||
11434 | 0x48032803, 0x040027f7, 0x5994001f, 0x80000d40, | ||
11435 | 0x04000013, 0x5994101e, 0x59940025, 0x80080480, | ||
11436 | 0x04001005, 0x04000004, 0x4803281e, 0x80000040, | ||
11437 | 0x0402100b, 0x80040840, 0x4807281f, 0x04020004, | ||
11438 | 0x59940020, 0x0801f800, 0x0401f005, 0x82000400, | ||
11439 | 0x00000001, 0x4803281e, 0x040027f7, 0x59940022, | ||
11440 | 0x80000d40, 0x04000013, 0x59941021, 0x59940025, | ||
11441 | 0x80080480, 0x04001005, 0x04000004, 0x48032821, | ||
11442 | 0x80000040, 0x0402100b, 0x80040840, 0x48072822, | ||
11443 | 0x04020004, 0x59940023, 0x0801f800, 0x0401f005, | ||
11444 | 0x82000400, 0x0000000a, 0x48032821, 0x040027f7, | ||
11445 | 0x59940824, 0x59940025, 0x80040480, 0x02001800, | ||
11446 | 0x001005d8, 0x48032824, 0x59940000, 0x0c01f001, | ||
11447 | 0x00105fb5, 0x00105fb7, 0x00105fdd, 0x59940024, | ||
11448 | 0x80000000, 0x48032824, 0x4203e000, 0x70000000, | ||
11449 | 0x1c01f000, 0x592c0406, 0x800000c2, 0x800008c4, | ||
11450 | 0x80040c00, 0x592c040a, 0x48066206, 0x82000d00, | ||
11451 | 0x00000003, 0x02000000, 0x0010615e, 0x8c000500, | ||
11452 | 0x04020029, 0x8c00051e, 0x02000000, 0x00106139, | ||
11453 | 0x82000d00, 0x000000c0, 0x02020000, 0x0010612f, | ||
11454 | 0x82000d00, 0x00002020, 0x02020000, 0x0010612c, | ||
11455 | 0x813e79c0, 0x02020000, 0x0010612c, 0x592c0c0c, | ||
11456 | 0x800409c0, 0x02020000, 0x0010612c, 0x59300a03, | ||
11457 | 0x82040d80, 0x00000007, 0x02020000, 0x0010612c, | ||
11458 | 0x4a026203, 0x00000003, 0x4a026403, 0x00000043, | ||
11459 | 0x0201f800, 0x000200c9, 0x82080d40, 0x80003465, | ||
11460 | 0x48066004, 0x497a6000, 0x59bc00ea, 0x8c000516, | ||
11461 | 0x040207fe, 0x83300400, 0xa0000000, 0x480378e1, | ||
11462 | 0x1c01f000, 0x8c000502, 0x02020000, 0x00106181, | ||
11463 | 0x8c00051e, 0x0400000e, 0x82000d00, 0x000000c0, | ||
11464 | 0x04000005, 0x82040d80, 0x000000c0, 0x02020000, | ||
11465 | 0x00106186, 0x82000d00, 0x00002020, 0x82040d80, | ||
11466 | 0x00002020, 0x02000000, 0x0010614d, 0x592c0207, | ||
11467 | 0x80000040, 0x02020000, 0x00106157, 0x592c180d, | ||
11468 | 0x800c19c0, 0x02020000, 0x00106157, 0x592c180f, | ||
11469 | 0x59300007, 0x82000540, 0x00000011, 0x480e6011, | ||
11470 | 0x48026007, 0x4a026203, 0x00000004, 0x4a026403, | ||
11471 | 0x00000042, 0x42000800, 0x80002001, 0x0401f02a, | ||
11472 | 0x5c000000, 0x4c000000, 0x4803c857, 0x4807c857, | ||
11473 | 0x0401f003, 0x42000800, 0x00000001, 0x59325808, | ||
11474 | 0x832c0500, 0x00ff0000, 0x0400000d, 0x592c0000, | ||
11475 | 0x48065a06, 0x48026008, 0x592c040a, 0x8c000510, | ||
11476 | 0x04020008, 0x0201f800, 0x000202ce, 0x417a7800, | ||
11477 | 0x59300008, 0x80025d40, 0x0402078f, 0x1c01f000, | ||
11478 | 0x456a5800, 0x412ed000, 0x815eb800, 0x59c80000, | ||
11479 | 0x82000540, 0x00001200, 0x48039000, 0x0401f7f4, | ||
11480 | 0x59840000, 0x80000540, 0x04020002, 0x1c01f000, | ||
11481 | 0x59840003, 0x80000540, 0x02020000, 0x001061fe, | ||
11482 | 0x1c01f000, 0x48066004, 0x59bc00ea, 0x8c000516, | ||
11483 | 0x040207fe, 0x83300400, 0x40000000, 0x480378e1, | ||
11484 | 0x1c01f000, 0x59bc00ea, 0x82001500, 0xb0000018, | ||
11485 | 0x02020000, 0x00106c81, 0x8c000510, 0x0400002a, | ||
11486 | 0x59bc10e0, 0x82080500, 0xfffff000, 0x0402000a, | ||
11487 | 0x80080108, 0x820a3500, 0x0000000f, 0x4803c857, | ||
11488 | 0x1201f000, 0x00106c87, 0x84000510, 0x48026004, | ||
11489 | 0x0401f016, 0x840a653e, 0x59300004, 0x8c000520, | ||
11490 | 0x040007fa, 0x82000500, 0xfffefeff, 0x48026004, | ||
11491 | 0x8c08153e, 0x04020005, 0x42027000, 0x00000013, | ||
11492 | 0x0401f859, 0x0401f009, 0x59300004, 0x8c000514, | ||
11493 | 0x04000003, 0x0401ffb0, 0x0401f02f, 0x42027000, | ||
11494 | 0x00000049, 0x0401f850, 0x59bc00ea, 0x82001500, | ||
11495 | 0xb0000018, 0x02020000, 0x00106c81, 0x8c000510, | ||
11496 | 0x040207d8, 0x1c01f000, 0x83640480, 0x00000010, | ||
11497 | 0x0400101a, 0x41626000, 0x41580000, 0x59300a03, | ||
11498 | 0x82040d80, 0x00000000, 0x04000008, 0x83326400, | ||
11499 | 0x00000024, 0x81300c80, 0x040017f9, 0x42026000, | ||
11500 | 0x0010d1c0, 0x0401f7f6, 0x8166c840, 0x83300c00, | ||
11501 | 0x00000024, 0x80040480, 0x04021005, 0x4006c000, | ||
11502 | 0x4a026203, 0x00000008, 0x1c01f000, 0x837ac540, | ||
11503 | 0x0010d1c0, 0x0401f7fb, 0x42000000, 0x0010b854, | ||
11504 | 0x0201f800, 0x0010aa47, 0x4967c857, 0x80026580, | ||
11505 | 0x1c01f000, 0x83300480, 0x0010d1c0, 0x02001800, | ||
11506 | 0x001005d8, 0x41580000, 0x81300480, 0x0402100c, | ||
11507 | 0x04011000, 0x457a6000, 0x4a026202, 0x0000ffff, | ||
11508 | 0x83300400, 0x00000003, 0x4803c840, 0x4a03c842, | ||
11509 | 0x00000021, 0x8166c800, 0x1c01f000, 0x41540000, | ||
11510 | 0x81300480, 0x02021800, 0x001005d8, 0x04011000, | ||
11511 | 0x457a6000, 0x4a026202, 0x0000ffff, 0x83300400, | ||
11512 | 0x00000003, 0x4803c840, 0x4a03c842, 0x00000021, | ||
11513 | 0x59a80066, 0x49335065, 0x80000000, 0x48035066, | ||
11514 | 0x1c01f000, 0x4d340000, 0x59326809, 0x59300406, | ||
11515 | 0x82000500, 0x0000001f, 0x0c01f803, 0x5c026800, | ||
11516 | 0x1c01f000, 0x00107966, 0x00107979, 0x00107993, | ||
11517 | 0x000207c9, 0x001098f1, 0x0010990c, 0x0002083e, | ||
11518 | 0x00107966, 0x00107979, 0x001064ee, 0x001079ac, | ||
11519 | 0x00107966, 0x00107966, 0x00107966, 0x00107966, | ||
11520 | 0x00107966, 0x001095a1, 0x0010a6c2, 0x00107966, | ||
11521 | 0x00107966, 0x00107966, 0x00107966, 0x00107966, | ||
11522 | 0x00107966, 0x00107966, 0x00107966, 0x00107966, | ||
11523 | 0x00107966, 0x00107966, 0x00107966, 0x00107966, | ||
11524 | 0x00107966, 0x59300203, 0x82000c80, 0x0000000e, | ||
11525 | 0x02021800, 0x001005d8, 0x0c01f001, 0x001079aa, | ||
11526 | 0x00108592, 0x000207dd, 0x00108720, 0x001087b9, | ||
11527 | 0x001079aa, 0x001079aa, 0x001079aa, 0x00108577, | ||
11528 | 0x001079aa, 0x001079aa, 0x001079aa, 0x001079aa, | ||
11529 | 0x00108985, 0x83380480, 0x00000058, 0x04021007, | ||
11530 | 0x83380480, 0x00000040, 0x04001004, 0x4d2c0000, | ||
11531 | 0x0c01f803, 0x5c025800, 0x1c01f000, 0x0010861b, | ||
11532 | 0x0010861b, 0x0010861b, 0x0010861b, 0x0010861b, | ||
11533 | 0x0010861d, 0x001086bd, 0x0010861b, 0x0010861b, | ||
11534 | 0x0010861b, 0x0010861b, 0x0010861b, 0x0010861b, | ||
11535 | 0x0010861b, 0x0010861b, 0x0010861b, 0x0010861b, | ||
11536 | 0x0010861b, 0x0010861b, 0x001086c1, 0x000207ff, | ||
11537 | 0x0010861b, 0x001086c0, 0x001086c2, 0x59325808, | ||
11538 | 0x59300811, 0x59301402, 0x59340200, 0x8c00050e, | ||
11539 | 0x0402001c, 0x0401f826, 0x04000005, 0x4a025a04, | ||
11540 | 0x00000103, 0x497a5c09, 0x0401f009, 0x4a025a04, | ||
11541 | 0x00000103, 0x4a025a06, 0x00000000, 0x497a5c09, | ||
11542 | 0x800409c0, 0x02020800, 0x00108785, 0x48065807, | ||
11543 | 0x480a5c06, 0x0201f800, 0x000202c1, 0x5934000f, | ||
11544 | 0x5934140b, 0x80081040, 0x04001002, 0x480a6c0b, | ||
11545 | 0x80000540, 0x02020800, 0x00020253, 0x0401f75e, | ||
11546 | 0x592c020a, 0x8c000502, 0x040007e9, 0x800409c0, | ||
11547 | 0x040007e7, 0x592c0208, 0x8c00050e, 0x040207e4, | ||
11548 | 0x4933c857, 0x0201f000, 0x0010920f, 0x592c020a, | ||
11549 | 0x8c000500, 0x04000010, 0x59300015, 0x592c380f, | ||
11550 | 0x801c3c80, 0x0400000c, 0x4a025a06, 0x00000015, | ||
11551 | 0x8c1c3d3e, 0x04000005, 0x4a025a06, 0x00000007, | ||
11552 | 0x801c3880, 0x801c3800, 0x481fc857, 0x821c0d40, | ||
11553 | 0x00000000, 0x1c01f000, 0x59300203, 0x82003480, | ||
11554 | 0x0000000e, 0x02021800, 0x001005d8, 0x0c01f001, | ||
11555 | 0x0010992b, 0x00020852, 0x00109fba, 0x00109fc8, | ||
11556 | 0x0002086e, 0x0010992b, 0x0010a0a8, 0x0002088d, | ||
11557 | 0x0010992b, 0x0010992b, 0x0010992b, 0x0010992b, | ||
11558 | 0x0010992b, 0x0010992b, 0x83380580, 0x00000013, | ||
11559 | 0x02020000, 0x00109f42, 0x59300403, 0x82027480, | ||
11560 | 0x00000044, 0x02021800, 0x001005d8, 0x82000480, | ||
11561 | 0x00000040, 0x02001800, 0x001005d8, 0x0c01f001, | ||
11562 | 0x00109f9e, 0x00020864, 0x00109fa0, 0x00109fb2, | ||
11563 | 0x59325808, 0x832c0500, 0x00ff0000, 0x04000005, | ||
11564 | 0x592c0c0a, 0x8c040d1a, 0x02020000, 0x00109fad, | ||
11565 | 0x0401fe91, 0x0401f710, 0x83380580, 0x00000048, | ||
11566 | 0x04000007, 0x83380580, 0x00000053, 0x02000000, | ||
11567 | 0x0010a04a, 0x0201f800, 0x001005d8, 0x5930001f, | ||
11568 | 0x59301011, 0x59300809, 0x58040a00, 0x8c040d0e, | ||
11569 | 0x02020000, 0x0010a026, 0x800811c0, 0x02020000, | ||
11570 | 0x0010a033, 0x5930001f, 0x80000540, 0x02020000, | ||
11571 | 0x0010a041, 0x59325808, 0x592c040a, 0x8c00051e, | ||
11572 | 0x02000000, 0x0010a01c, 0x42027000, 0x00000041, | ||
11573 | 0x0401f001, 0x83380480, 0x00000054, 0x02021800, | ||
11574 | 0x001005d8, 0x83380480, 0x00000040, 0x02001000, | ||
11575 | 0x0010a067, 0x0c01f001, 0x0010a073, 0x000208aa, | ||
11576 | 0x0010a07f, 0x0010a086, 0x0010a073, 0x0010a073, | ||
11577 | 0x0010a073, 0x0010a073, 0x0010a075, 0x0010a07a, | ||
11578 | 0x0010a07a, 0x0010a073, 0x0010a073, 0x0010a073, | ||
11579 | 0x0010a073, 0x0010a07a, 0x0010a073, 0x0010a07a, | ||
11580 | 0x0010a073, 0x0010a075, 0x4a026203, 0x00000001, | ||
11581 | 0x493a6403, 0x42000800, 0x80002042, 0x0401f672, | ||
11582 | 0x00000000, 0x00000000, 0x00000000, 0x00000000, | ||
11583 | 0x00000000, 0x00000000, 0x00000000, 0x00000000, | ||
11584 | 0x00000000, 0x00000000, 0x00000000, 0x00000000, | ||
11585 | 0x00000000, 0x00000000, 0x00000000, 0x14aa62b1, | ||
11586 | 0x00000000, 0x00000000, 0x00000000, 0x00000005, | ||
11587 | 0xfffffffb, 0x02800004, 0x00000000, 0x0000c000, | ||
11588 | 0x0000071d, 0x073fca5a, 0x0705a5a5, 0x01928009, | ||
11589 | 0x070ff0e1, 0x03800006, 0x04958010, 0x05308000, | ||
11590 | 0x05008000, 0x0600902f, 0x04a004dc, 0x0202f051, | ||
11591 | 0x042e4020, 0x018f021b, 0x033e5000, 0x03020000, | ||
11592 | 0x078d0018, 0x0493041a, 0x0092041c, 0x038a0305, | ||
11593 | 0x078b0303, 0x048e8010, 0x0678aae5, 0x06000001, | ||
11594 | 0x07818174, 0x040010e6, 0x0448e0e6, 0x04818010, | ||
11595 | 0x002fb008, 0x0448e0e6, 0x04818010, 0x060ff0e6, | ||
11596 | 0x00580401, 0x054880ff, 0x04818010, 0x022a5001, | ||
11597 | 0x030430d4, 0x06780043, 0x030e0000, 0x030450ff, | ||
11598 | 0x06780043, 0x03019000, 0x058185c6, 0x027c0045, | ||
11599 | 0x03020000, 0x06810037, 0x027c0045, 0x03040000, | ||
11600 | 0x068100c7, 0x027c0045, 0x03080000, 0x0781061e, | ||
11601 | 0x04908037, 0x029105c4, 0x010410a6, 0x0379ff41, | ||
11602 | 0x037fffff, 0x072d6000, 0x07601241, 0x050f80ff, | ||
11603 | 0x032fa009, 0x05600400, 0x050f80ff, 0x056c04ff, | ||
11604 | 0x068105dc, 0x073fa009, 0x06000001, 0x0279ff02, | ||
11605 | 0x0700ffff, 0x070ff0d1, 0x0179feff, 0x0700ffff, | ||
11606 | 0x045c0402, 0x048185dc, 0x060ff0d0, 0x0179feff, | ||
11607 | 0x0700ffff, 0x057dfeff, 0x0700ffff, 0x078105be, | ||
11608 | 0x05600e41, 0x050f80ff, 0x032fa069, 0x07480000, | ||
11609 | 0x068105d0, 0x06780043, 0x070000f0, 0x0781005f, | ||
11610 | 0x037c00ff, 0x06000010, 0x0781005f, 0x038005cc, | ||
11611 | 0x0379ff00, 0x070fffff, 0x06780043, 0x07f00000, | ||
11612 | 0x075a0000, 0x020ef001, 0x028605ce, 0x05484000, | ||
11613 | 0x02a1819e, 0x062d6001, 0x002fb001, 0x070ff069, | ||
11614 | 0x01868072, 0x060ff079, 0x055c0441, 0x06810010, | ||
11615 | 0x012fb000, 0x060560fb, 0x03800078, 0x060ff079, | ||
11616 | 0x02868198, 0x070ff069, 0x055c0441, 0x06810010, | ||
11617 | 0x060560fb, 0x0400d0d0, 0x062d6002, 0x0648300d, | ||
11618 | 0x06810086, 0x070ff0d1, 0x062d6001, 0x045c040b, | ||
11619 | 0x06810089, 0x05488000, 0x04818086, 0x072e500c, | ||
11620 | 0x00208001, 0x05a004e1, 0x02800010, 0x062d6001, | ||
11621 | 0x07f00000, 0x07f00000, 0x070ff0d1, 0x0179feff, | ||
11622 | 0x070000ff, 0x055c040c, 0x058180bb, 0x0007b001, | ||
11623 | 0x03079041, 0x0307a000, 0x06600a79, 0x050f80ff, | ||
11624 | 0x053fa80a, 0x06000010, 0x072d5003, 0x078d0096, | ||
11625 | 0x0307c003, 0x0007d004, 0x0107e005, 0x0307f006, | ||
11626 | 0x02080007, 0x00081008, 0x01082009, 0x0308300a, | ||
11627 | 0x0008400b, 0x0308500c, 0x068d00a1, 0x0678007a, | ||
11628 | 0x07f00000, 0x010880ff, 0x03386000, 0x03010000, | ||
11629 | 0x072e6300, 0x020ef07f, 0x02860010, 0x070ff07d, | ||
11630 | 0x0450047c, 0x050f80ff, 0x002fa819, 0x068d00ae, | ||
11631 | 0x02080001, 0x00081002, 0x0448807a, 0x068100b5, | ||
11632 | 0x0379ff03, 0x070000ff, 0x01082003, 0x068d00b6, | ||
11633 | 0x02386004, 0x03010000, 0x072e6c00, 0x02800010, | ||
11634 | 0x06780043, 0x070000f0, 0x078105d7, 0x050020ff, | ||
11635 | 0x027c0002, 0x06000010, 0x078100c3, 0x038005d7, | ||
11636 | 0x0700c0d1, 0x0379ff0c, 0x070000ff, 0x0380008e, | ||
11637 | 0x0204a051, 0x06780043, 0x070000f0, 0x037c00ff, | ||
11638 | 0x06000010, 0x0781816a, 0x072d6000, 0x019485c0, | ||
11639 | 0x050fb056, 0x044880e6, 0x04818010, 0x060ff0d0, | ||
11640 | 0x0179feff, 0x0700ffff, 0x057dfeff, 0x0700ffff, | ||
11641 | 0x078105be, 0x05a00212, 0x0349c0e4, 0x0781811d, | ||
11642 | 0x070ff093, 0x050010ff, 0x070ff093, 0x045c0401, | ||
11643 | 0x058180db, 0x02046092, 0x04002046, 0x04600202, | ||
11644 | 0x00540401, 0x048280e6, 0x04500425, 0x070060ff, | ||
11645 | 0x0730ffff, 0x0700000f, 0x0742000f, 0x05810190, | ||
11646 | 0x07a005a6, 0x0648a002, 0x048180e9, 0x00047089, | ||
11647 | 0x070ff047, 0x045c0443, 0x077800ff, 0x07f00000, | ||
11648 | 0x0781818e, 0x07780047, 0x0500e000, 0x048185ad, | ||
11649 | 0x070ff006, 0x01860117, 0x0179fe47, 0x0700000f, | ||
11650 | 0x010480ff, 0x056c7048, 0x06818102, 0x007a0d4a, | ||
11651 | 0x04003801, 0x0220f001, 0x0180010f, 0x07608e48, | ||
11652 | 0x034a60ff, 0x0700f0ff, 0x074b88ff, 0x037000ff, | ||
11653 | 0x07000600, 0x05500448, 0x074d00ff, 0x045a044a, | ||
11654 | 0x0304a0ff, 0x070ff00f, 0x01540406, 0x05820117, | ||
11655 | 0x04950120, 0x05a001bd, 0x02868123, 0x0134bfff, | ||
11656 | 0x070fffff, 0x0104102e, 0x050fd041, 0x00800126, | ||
11657 | 0x0595011d, 0x05a001bd, 0x0186011d, 0x0202f00e, | ||
11658 | 0x052e4030, 0x040fd02f, 0x070fc0ff, 0x05a00218, | ||
11659 | 0x02800010, 0x0400e02f, 0x042e4020, 0x0202f051, | ||
11660 | 0x0004100e, 0x0004b00e, 0x050fd041, 0x024a6c46, | ||
11661 | 0x04500423, 0x050070ff, 0x03620024, 0x050080ff, | ||
11662 | 0x04004046, 0x0700500f, 0x03206000, 0x05601048, | ||
11663 | 0x0700a0ff, 0x0700900a, 0x070ff005, 0x04500446, | ||
11664 | 0x00540425, 0x04820157, 0x05601622, 0x050f80ff, | ||
11665 | 0x063fa032, 0x06000002, 0x03203000, 0x01204000, | ||
11666 | 0x03205000, 0x0120b000, 0x0320c000, 0x07601441, | ||
11667 | 0x050f80ff, 0x043fa852, 0x06000001, 0x070ff056, | ||
11668 | 0x056c02ff, 0x050fb0ff, 0x070560ff, 0x03079041, | ||
11669 | 0x05600e41, 0x050f80ff, 0x073fa011, 0x0600003d, | ||
11670 | 0x06780043, 0x07f00000, 0x065a007a, 0x010880ff, | ||
11671 | 0x04a001b6, 0x058d0150, 0x0208a04a, 0x0108b04b, | ||
11672 | 0x02386001, 0x03010000, 0x072e6300, 0x028000a8, | ||
11673 | 0x0500d00a, 0x05500405, 0x014a68ff, 0x070090ff, | ||
11674 | 0x0154040a, 0x0700c0ff, 0x0600a023, 0x0500b024, | ||
11675 | 0x02206001, 0x05601622, 0x050f80ff, 0x063fa04a, | ||
11676 | 0x06000002, 0x05601022, 0x050f80ff, 0x043fa819, | ||
11677 | 0x06000001, 0x0600a00d, 0x0180013c, 0x06780043, | ||
11678 | 0x070000f0, 0x050010ff, 0x027c0001, 0x07000030, | ||
11679 | 0x078105b4, 0x027c0001, 0x06000020, 0x078105b4, | ||
11680 | 0x038005cc, 0x054880ff, 0x06810010, 0x070ff056, | ||
11681 | 0x050fb0ff, 0x044880e5, 0x0581017d, 0x044880e6, | ||
11682 | 0x04818010, 0x00800183, 0x056c02ff, 0x050fb0ff, | ||
11683 | 0x070560ff, 0x072e5300, 0x044880e6, 0x04818010, | ||
11684 | 0x072d5003, 0x06780043, 0x07f00000, 0x010880ff, | ||
11685 | 0x058d0187, 0x03386005, 0x03010000, 0x033e6000, | ||
11686 | 0x0700000c, 0x052e5200, 0x02800010, 0x0120918e, | ||
11687 | 0x018004e4, 0x01209190, 0x018004e4, 0x00209192, | ||
11688 | 0x018004e4, 0x03209000, 0x018004e4, 0x01209196, | ||
11689 | 0x018004e4, 0x00209198, 0x018004e4, 0x02493075, | ||
11690 | 0x06810510, 0x0120919a, 0x018004e4, 0x06601e01, | ||
11691 | 0x050f80ff, 0x063fa029, 0x06000008, 0x02015010, | ||
11692 | 0x02016051, 0x00017051, 0x00011051, 0x05601a41, | ||
11693 | 0x050f80ff, 0x053fa83a, 0x06000008, 0x05600e41, | ||
11694 | 0x050f80ff, 0x01464000, 0x032fa00a, 0x07006011, | ||
11695 | 0x05007012, 0x04008013, 0x07009014, 0x0600a015, | ||
11696 | 0x0400b016, 0x0700c017, 0x07c00000, 0x072d5003, | ||
11697 | 0x06601479, 0x050f80ff, 0x048d01b9, 0x063fa051, | ||
11698 | 0x0600003e, 0x07c00000, 0x06005051, 0x0400e02c, | ||
11699 | 0x0660060e, 0x050f80ff, 0x032fa009, 0x0379ff00, | ||
11700 | 0x070000ff, 0x076c0000, 0x058101dd, 0x0660480e, | ||
11701 | 0x0500e0ff, 0x034000ff, 0x01540427, 0x0582020a, | ||
11702 | 0x03400005, 0x070ff005, 0x055c0428, 0x0481020e, | ||
11703 | 0x01680e05, 0x056c0405, 0x068181bf, 0x040f8029, | ||
11704 | 0x053fa809, 0x07000024, 0x06600649, 0x050f80ff, | ||
11705 | 0x032fa009, 0x0379ff00, 0x070000ff, 0x076c0000, | ||
11706 | 0x068181bf, 0x0400e049, 0x0340002d, 0x050f802b, | ||
11707 | 0x053fa80a, 0x06000016, 0x0660480e, 0x0302c0ff, | ||
11708 | 0x034000ff, 0x01540427, 0x0582020c, 0x072d6000, | ||
11709 | 0x0460040e, 0x050f80ff, 0x0104e0d1, 0x0379ff4e, | ||
11710 | 0x0700ffff, 0x062d6002, 0x032fa009, 0x0004d0d0, | ||
11711 | 0x074b004d, 0x07780000, 0x07ffff00, 0x055a044d, | ||
11712 | 0x070000ff, 0x00201008, 0x04002051, 0x06003051, | ||
11713 | 0x05304000, 0x07000060, 0x03205009, 0x07006022, | ||
11714 | 0x0460040e, 0x050f80ff, 0x032fa03a, 0x06603c0e, | ||
11715 | 0x050f80ff, 0x073fa00a, 0x07000027, 0x050010d1, | ||
11716 | 0x0460320e, 0x050f80ff, 0x012fa80a, 0x060ff00e, | ||
11717 | 0x055c042e, 0x04810210, 0x07c00000, 0x0400e026, | ||
11718 | 0x008001cb, 0x0202c026, 0x008001e6, 0x0500e02e, | ||
11719 | 0x008001e6, 0x0400e051, 0x01800209, 0x0349c0e4, | ||
11720 | 0x04810215, 0x07c00000, 0x013e4000, 0x070c0000, | ||
11721 | 0x07c00000, 0x013e4000, 0x03080000, 0x07c00000, | ||
11722 | 0x009702f4, 0x022a5002, 0x0790821d, 0x00910291, | ||
11723 | 0x030400a6, 0x0678aae5, 0x06000001, 0x00a1860e, | ||
11724 | 0x06600c40, 0x050f80ff, 0x032fa021, 0x074b0000, | ||
11725 | 0x076c0600, 0x07818293, 0x05600403, 0x050f80ff, | ||
11726 | 0x073fa009, 0x06000002, 0x0279ff04, 0x0700ffff, | ||
11727 | 0x010440d7, 0x0179fe44, 0x0700ffff, 0x045c0404, | ||
11728 | 0x07818295, 0x0349f044, 0x0681829e, 0x02495001, | ||
11729 | 0x06818297, 0x060ff079, 0x045c0440, 0x0781823c, | ||
11730 | 0x0644f07a, 0x002fb008, 0x060ff079, 0x045c0440, | ||
11731 | 0x07818241, 0x0644f07a, 0x002fb008, 0x0648f001, | ||
11732 | 0x07818288, 0x04600e40, 0x050f80ff, 0x06480001, | ||
11733 | 0x04810257, 0x0448e001, 0x04810273, 0x02460001, | ||
11734 | 0x0644f001, 0x012fa80a, 0x04008040, 0x05a004ee, | ||
11735 | 0x0286828c, 0x05a004d8, 0x062da001, 0x013e4000, | ||
11736 | 0x06000080, 0x06930013, 0x02920013, 0x02800010, | ||
11737 | 0x0644f001, 0x012fa80a, 0x020ef002, 0x00860275, | ||
11738 | 0x04600840, 0x050f80ff, 0x053fa809, 0x06000002, | ||
11739 | 0x05780105, 0x00800440, 0x017c0105, 0x05000400, | ||
11740 | 0x06818275, 0x06601e02, 0x050f80ff, 0x053fa809, | ||
11741 | 0x06000002, 0x04602a40, 0x050f80ff, 0x070ff005, | ||
11742 | 0x053fa809, 0x06000002, 0x055c0405, 0x06818275, | ||
11743 | 0x04008040, 0x0045e008, 0x05a004d8, 0x00800251, | ||
11744 | 0x0644f001, 0x012fa80a, 0x050020d8, 0x04600440, | ||
11745 | 0x050f80ff, 0x073fa00a, 0x06000001, 0x06480001, | ||
11746 | 0x07818281, 0x05308000, 0x03040000, 0x06009040, | ||
11747 | 0x04a004dc, 0x00800251, 0x06a0060e, 0x054b0800, | ||
11748 | 0x056a0700, 0x06600c40, 0x050f80ff, 0x032fa00a, | ||
11749 | 0x00800251, 0x013e4000, 0x06000080, 0x01209288, | ||
11750 | 0x018004e4, 0x06009008, 0x05308000, 0x05004000, | ||
11751 | 0x04a004dc, 0x00800251, 0x02209002, 0x008002e5, | ||
11752 | 0x03209000, 0x008002e5, 0x02209004, 0x008002e5, | ||
11753 | 0x04a002fd, 0x062da001, 0x05308000, 0x05002000, | ||
11754 | 0x06009040, 0x04a004dc, 0x02800013, 0x013e4000, | ||
11755 | 0x06000080, 0x02495001, 0x078182db, 0x04600840, | ||
11756 | 0x050f80ff, 0x053fa809, 0x06000001, 0x0721f000, | ||
11757 | 0x0349f003, 0x058102aa, 0x0245f01f, 0x06000002, | ||
11758 | 0x018602db, 0x07601400, 0x050f80ff, 0x012fa809, | ||
11759 | 0x06480001, 0x058102db, 0x06602440, 0x050f80ff, | ||
11760 | 0x012fa809, 0x020ef001, 0x038682db, 0x019b02db, | ||
11761 | 0x050020d8, 0x062da001, 0x06303002, 0x05000430, | ||
11762 | 0x04600440, 0x050f80ff, 0x073fa012, 0x06000001, | ||
11763 | 0x028f82bf, 0x050040d8, 0x062da001, 0x07601e00, | ||
11764 | 0x050f80ff, 0x073fa009, 0x06000001, 0x060ff004, | ||
11765 | 0x00540402, 0x048202d9, 0x06005051, 0x06006051, | ||
11766 | 0x06602240, 0x050f80ff, 0x063fa01a, 0x06000002, | ||
11767 | 0x06600a40, 0x050f80ff, 0x073fa00a, 0x07000003, | ||
11768 | 0x060ff040, 0x045a041f, 0x010eb0ff, 0x06930013, | ||
11769 | 0x02920013, 0x02800010, 0x04004002, 0x018002c9, | ||
11770 | 0x04a002fd, 0x062da001, 0x05308000, 0x07005000, | ||
11771 | 0x06009040, 0x04a004dc, 0x050080d8, 0x05a004e1, | ||
11772 | 0x062da001, 0x02800013, 0x050fd009, 0x050fd041, | ||
11773 | 0x013e4000, 0x06000080, 0x05308000, 0x03013000, | ||
11774 | 0x04a004dc, 0x010440d7, 0x0349f044, 0x048102f2, | ||
11775 | 0x062da001, 0x008f02f2, 0x03e00000, 0x062da001, | ||
11776 | 0x02800013, 0x0249c0e5, 0x06810013, 0x062da001, | ||
11777 | 0x07f00000, 0x07f00000, 0x033e5000, 0x070c0000, | ||
11778 | 0x018f02f6, 0x03800011, 0x050020d8, 0x04600440, | ||
11779 | 0x050f80ff, 0x073fa00a, 0x06000001, 0x07c00000, | ||
11780 | 0x002fb001, 0x03800306, 0x012fb000, 0x03075087, | ||
11781 | 0x068d0307, 0x03386000, 0x03020000, 0x04482075, | ||
11782 | 0x06810352, 0x0648a0e6, 0x07810347, 0x0642007f, | ||
11783 | 0x06810345, 0x0340007e, 0x060ff038, 0x0154047e, | ||
11784 | 0x02d00334, 0x0560027d, 0x050f80ff, 0x032fa009, | ||
11785 | 0x030ef000, 0x02860504, 0x0107d000, 0x05600800, | ||
11786 | 0x050f80ff, 0x032fa009, 0x03681e00, 0x04500420, | ||
11787 | 0x050f80ff, 0x073fa009, 0x0700003f, 0x03800311, | ||
11788 | 0x070ff07d, 0x0450047c, 0x050f80ff, 0x002fa819, | ||
11789 | 0x078d0327, 0x02080001, 0x00081002, 0x0448807a, | ||
11790 | 0x0781032e, 0x0379ff03, 0x070000ff, 0x01082003, | ||
11791 | 0x068d032f, 0x02386004, 0x03010000, 0x072e6c00, | ||
11792 | 0x02800352, 0x0380033a, 0x0380033c, 0x0280033e, | ||
11793 | 0x02800340, 0x03800342, 0x03800344, 0x0727c005, | ||
11794 | 0x02800323, 0x0627c008, 0x02800323, 0x0627c00b, | ||
11795 | 0x02800323, 0x0627c00e, 0x02800323, 0x0727c011, | ||
11796 | 0x02800323, 0x03800314, 0x052e6800, 0x02800352, | ||
11797 | 0x044880e6, 0x07810533, 0x052e6200, 0x070ff088, | ||
11798 | 0x0179feff, 0x070fffff, 0x04818501, 0x060ff083, | ||
11799 | 0x0086836d, 0x033e6000, 0x07000003, 0x068d0352, | ||
11800 | 0x07286000, 0x07f00000, 0x078d0355, 0x038c0306, | ||
11801 | 0x0648c0e6, 0x05818372, 0x0448e0e6, 0x0781036a, | ||
11802 | 0x004920e6, 0x07810365, 0x07a0056f, 0x05001088, | ||
11803 | 0x00700101, 0x03100000, 0x00088001, 0x033e6000, | ||
11804 | 0x07000088, 0x03800560, 0x02386001, 0x07030000, | ||
11805 | 0x033e6000, 0x06000008, 0x028003f1, 0x02799075, | ||
11806 | 0x0500040f, 0x06810010, 0x06601479, 0x050080ff, | ||
11807 | 0x06309052, 0x0600003e, 0x02800376, 0x06602279, | ||
11808 | 0x050080ff, 0x05309812, 0x07000041, 0x0648007a, | ||
11809 | 0x0781037e, 0x04488075, 0x0581837e, 0x040f8008, | ||
11810 | 0x070fa009, 0x0049107a, 0x01a183f3, 0x00798075, | ||
11811 | 0x06000507, 0x05818521, 0x0448b075, 0x06810385, | ||
11812 | 0x02493075, 0x0681050e, 0x0249c0e6, 0x048183e0, | ||
11813 | 0x0648c0e6, 0x0581839a, 0x068d0389, 0x02386001, | ||
11814 | 0x07030000, 0x0049107a, 0x07810390, 0x020ef083, | ||
11815 | 0x0386039a, 0x06483075, 0x068103ef, 0x0678007a, | ||
11816 | 0x07000035, 0x03a184cf, 0x05308000, 0x07060000, | ||
11817 | 0x06009079, 0x04a004dc, 0x028003ef, 0x0448807a, | ||
11818 | 0x0681039e, 0x06483075, 0x058104f9, 0x0448d07a, | ||
11819 | 0x068103a2, 0x06483075, 0x058104f9, 0x068d03a2, | ||
11820 | 0x02386001, 0x07030000, 0x0444e07a, 0x0648307a, | ||
11821 | 0x048183c7, 0x0448707a, 0x068103ea, 0x0648f07a, | ||
11822 | 0x078103b2, 0x05a004cf, 0x04008079, 0x05a004ee, | ||
11823 | 0x008683c2, 0x05a004d8, 0x028003ef, 0x0560107b, | ||
11824 | 0x050f80ff, 0x032fa009, 0x0349c000, 0x058183c0, | ||
11825 | 0x04600e79, 0x050f80ff, 0x073fa00a, 0x0600003d, | ||
11826 | 0x06600a79, 0x050f80ff, 0x053fa80a, 0x06000010, | ||
11827 | 0x028003ef, 0x0046e07a, 0x028003ea, 0x06009008, | ||
11828 | 0x05308000, 0x05004000, 0x04a004dc, 0x028003ef, | ||
11829 | 0x0560167b, 0x050f80ff, 0x032fa011, 0x070ff000, | ||
11830 | 0x04500401, 0x030460ff, 0x060ff025, 0x00540446, | ||
11831 | 0x078203d1, 0x030460ff, 0x04092046, 0x05a00218, | ||
11832 | 0x06600679, 0x050f80ff, 0x00201007, 0x012fa80a, | ||
11833 | 0x0046047a, 0x034630ff, 0x050020ff, 0x06003051, | ||
11834 | 0x04600e79, 0x050f80ff, 0x073fa012, 0x06000001, | ||
11835 | 0x028003ef, 0x033e6a00, 0x0202000e, 0x02079051, | ||
11836 | 0x07000088, 0x078d03e4, 0x0744c000, 0x01088000, | ||
11837 | 0x03386006, 0x03010000, 0x02800010, 0x05a004cf, | ||
11838 | 0x05308000, 0x03020000, 0x06009079, 0x04a004dc, | ||
11839 | 0x033e6a00, 0x0302000a, 0x02079051, 0x02800010, | ||
11840 | 0x04603e79, 0x050f80ff, 0x032fa009, 0x070ff000, | ||
11841 | 0x0186040c, 0x057dfeff, 0x07ffffff, 0x0581040c, | ||
11842 | 0x050f8000, 0x012fa811, 0x0079fe02, 0x070000ff, | ||
11843 | 0x077d66ff, 0x060000dc, 0x0781840c, 0x060ff001, | ||
11844 | 0x0286840d, 0x064b0002, 0x06420002, 0x060ff002, | ||
11845 | 0x05500400, 0x050f80ff, 0x05004084, 0x073fa00a, | ||
11846 | 0x06000002, 0x07c00000, 0x04600201, 0x050f80ff, | ||
11847 | 0x073fa009, 0x06000001, 0x0079fe02, 0x070000ff, | ||
11848 | 0x077d72ff, 0x070000dd, 0x0781840c, 0x064b0002, | ||
11849 | 0x06420002, 0x06000001, 0x01800406, 0x0605004c, | ||
11850 | 0x0180041e, 0x0493041a, 0x04a004d5, 0x054bc450, | ||
11851 | 0x05810421, 0x01d00422, 0x01800421, 0x00800432, | ||
11852 | 0x00800434, 0x00800432, 0x008004a7, 0x0180043f, | ||
11853 | 0x00800434, 0x01800471, 0x00800432, 0x00800432, | ||
11854 | 0x008004ab, 0x00800432, 0x018004af, 0x008004c4, | ||
11855 | 0x01800488, 0x00800432, 0x00800432, 0x00209432, | ||
11856 | 0x018004e4, 0x0379ff50, 0x070fffff, 0x060ff079, | ||
11857 | 0x055c0450, 0x048104a4, 0x002fb008, 0x060ff079, | ||
11858 | 0x055c0450, 0x058104a3, 0x04a004c7, 0x0180049c, | ||
11859 | 0x0179fe50, 0x070fffff, 0x070050ff, 0x060ff079, | ||
11860 | 0x055c0405, 0x04810449, 0x002fb008, 0x060ff079, | ||
11861 | 0x055c0405, 0x078184a0, 0x070ff087, 0x017980ff, | ||
11862 | 0x06000507, 0x06818451, 0x02203040, 0x05002087, | ||
11863 | 0x0049d002, 0x0481046b, 0x04930458, 0x01257000, | ||
11864 | 0x073c3fff, 0x0700000f, 0x052e4003, 0x072e5030, | ||
11865 | 0x0304c050, 0x02400057, 0x06740057, 0x06000002, | ||
11866 | 0x06820016, 0x04002083, 0x07003084, 0x04004085, | ||
11867 | 0x06602279, 0x050f80ff, 0x063fa01a, 0x06000001, | ||
11868 | 0x05a004cf, 0x07a00578, 0x033e6a00, 0x0302000a, | ||
11869 | 0x062e5020, 0x003e4002, 0x07000a00, 0x028003f1, | ||
11870 | 0x07420003, 0x0781844e, 0x00798002, 0x06000507, | ||
11871 | 0x06818451, 0x0180045c, 0x05930478, 0x01257000, | ||
11872 | 0x073c3fff, 0x0700000f, 0x052e4003, 0x072e5030, | ||
11873 | 0x0304c050, 0x067800e6, 0x07000041, 0x0581047d, | ||
11874 | 0x07a00581, 0x04818016, 0x002fb008, 0x067800e6, | ||
11875 | 0x07000041, 0x04810483, 0x07a00581, 0x04818016, | ||
11876 | 0x062e5020, 0x003e4002, 0x07000a00, 0x03e00000, | ||
11877 | 0x02800010, 0x0379ff50, 0x070fffff, 0x060ff079, | ||
11878 | 0x055c0450, 0x0781848e, 0x0245507a, 0x002fb008, | ||
11879 | 0x060ff079, 0x055c0450, 0x07818493, 0x0245507a, | ||
11880 | 0x002fb008, 0x05600e50, 0x050f80ff, 0x012fa809, | ||
11881 | 0x02455001, 0x05600e50, 0x050f80ff, 0x012fa80a, | ||
11882 | 0x0080049d, 0x002fb008, 0x003e4002, 0x07000a00, | ||
11883 | 0x02800016, 0x079384a3, 0x062e5020, 0x042e4002, | ||
11884 | 0x002fb008, 0x013e4000, 0x05000e00, 0x02800016, | ||
11885 | 0x0179fe50, 0x070fffff, 0x010210ff, 0x02800016, | ||
11886 | 0x0179fe50, 0x070fffff, 0x050340ff, 0x0080049d, | ||
11887 | 0x0179fe50, 0x070fffff, 0x0102e0ff, 0x0760282e, | ||
11888 | 0x050f80ff, 0x05222000, 0x07223000, 0x05224000, | ||
11889 | 0x07225000, 0x07226000, 0x05227000, 0x05228000, | ||
11890 | 0x07229000, 0x0722a000, 0x0522b000, 0x063fa051, | ||
11891 | 0x07000011, 0x0202c026, 0x0522d000, 0x052e400c, | ||
11892 | 0x02800016, 0x030430d4, 0x062e5008, 0x00800176, | ||
11893 | 0x05600e50, 0x050f80ff, 0x032fa009, 0x03460000, | ||
11894 | 0x018004d2, 0x0246007a, 0x0045207a, 0x008004d0, | ||
11895 | 0x0246007a, 0x0600007a, 0x04600e79, 0x050f80ff, | ||
11896 | 0x032fa00a, 0x07c00000, 0x029284d5, 0x070500e1, | ||
11897 | 0x07c00000, 0x0245f008, 0x048404d9, 0x020e0008, | ||
11898 | 0x07c00000, 0x070ff009, 0x065a0008, 0x058404de, | ||
11899 | 0x020e0008, 0x07c00000, 0x058404e1, 0x020e0008, | ||
11900 | 0x07c00000, 0x05308000, 0x0500d000, 0x04a004dc, | ||
11901 | 0x04a004e9, 0x02800010, 0x052e4300, 0x072e500c, | ||
11902 | 0x073c3fff, 0x0700000f, 0x07c00000, 0x06602208, | ||
11903 | 0x050f80ff, 0x032fa011, 0x076a0000, 0x068184f7, | ||
11904 | 0x066a0001, 0x048104f7, 0x04002051, 0x07c00000, | ||
11905 | 0x00202001, 0x07c00000, 0x0648307a, 0x00a18608, | ||
11906 | 0x05a004cc, 0x05308000, 0x05001000, 0x06009079, | ||
11907 | 0x04a004dc, 0x03800560, 0x0249c0e6, 0x058104f9, | ||
11908 | 0x0280036d, 0x0648307a, 0x07818196, 0x05a004cf, | ||
11909 | 0x05308000, 0x03013000, 0x03209006, 0x04a004dc, | ||
11910 | 0x033e6000, 0x07030000, 0x02800345, 0x02490075, | ||
11911 | 0x0781051e, 0x04002089, 0x04780102, 0x07f00000, | ||
11912 | 0x05001088, 0x07a0056f, 0x04740101, 0x03100000, | ||
11913 | 0x060ff002, 0x045c0401, 0x0481851f, 0x00088001, | ||
11914 | 0x033e6000, 0x070000c0, 0x0380055c, 0x07f00000, | ||
11915 | 0x0220951f, 0x018004e4, 0x0648307a, 0x07810527, | ||
11916 | 0x06780075, 0x06000007, 0x0581852e, 0x06a00608, | ||
11917 | 0x06486075, 0x06818194, 0x02490075, 0x0781819a, | ||
11918 | 0x04487075, 0x05818536, 0x0280053d, 0x05308000, | ||
11919 | 0x03010000, 0x06009079, 0x04a004dc, 0x02800010, | ||
11920 | 0x0448e0e6, 0x04818352, 0x00800192, 0x05308000, | ||
11921 | 0x0500e000, 0x06009079, 0x04a004dc, 0x04008089, | ||
11922 | 0x05a004e1, 0x0380055c, 0x05a004cc, 0x05308000, | ||
11923 | 0x0700f000, 0x06009079, 0x07000088, 0x06a00545, | ||
11924 | 0x04a004dc, 0x02800010, 0x03386000, 0x07030000, | ||
11925 | 0x07f00000, 0x078d0548, 0x033e6a00, 0x0202000e, | ||
11926 | 0x02079051, 0x0448b075, 0x07810553, 0x02493075, | ||
11927 | 0x07810553, 0x05301005, 0x03010000, 0x03800555, | ||
11928 | 0x05301006, 0x03010000, 0x05002087, 0x06485002, | ||
11929 | 0x05818555, 0x0744c000, 0x01088000, 0x02086001, | ||
11930 | 0x07c00000, 0x05001088, 0x07a0056f, 0x0644c001, | ||
11931 | 0x00088001, 0x033e6a00, 0x0202000e, 0x004920e6, | ||
11932 | 0x05818565, 0x02079051, 0x078d0565, 0x060ff089, | ||
11933 | 0x034990ff, 0x0781056c, 0x03386005, 0x03010000, | ||
11934 | 0x02800010, 0x03386006, 0x03010000, 0x02800010, | ||
11935 | 0x078d056f, 0x03386000, 0x07030000, 0x07f00000, | ||
11936 | 0x068d0573, 0x070ff087, 0x074850ff, 0x05818574, | ||
11937 | 0x07c00000, 0x078d0578, 0x02386001, 0x07030000, | ||
11938 | 0x07f00000, 0x068d057c, 0x070ff087, 0x074850ff, | ||
11939 | 0x0581857d, 0x07c00000, 0x05002087, 0x0049d002, | ||
11940 | 0x05818590, 0x002fb008, 0x067800e6, 0x07000041, | ||
11941 | 0x002fb008, 0x05818590, 0x07a005a6, 0x0448e002, | ||
11942 | 0x07810593, 0x0648a002, 0x0481859d, 0x06486002, | ||
11943 | 0x06810597, 0x02400057, 0x056a02ff, 0x07c00000, | ||
11944 | 0x07a005a6, 0x06788102, 0x06000004, 0x05818590, | ||
11945 | 0x04002089, 0x070ff0d4, 0x045c0402, 0x077800ff, | ||
11946 | 0x07f00000, 0x05818590, 0x00202010, 0x038c0590, | ||
11947 | 0x07f00000, 0x06420002, 0x0481859e, 0x07a00578, | ||
11948 | 0x033e6a00, 0x0302000a, 0x07c00000, 0x07f00000, | ||
11949 | 0x060ff0a2, 0x050020ff, 0x060ff0a2, 0x045c0402, | ||
11950 | 0x048185a7, 0x07c00000, 0x05a00218, 0x03495047, | ||
11951 | 0x078105b2, 0x0320901d, 0x02800604, 0x0220901f, | ||
11952 | 0x02800604, 0x014980e4, 0x04818010, 0x013e4000, | ||
11953 | 0x07003000, 0x05600e35, 0x050f80ff, 0x07a006fc, | ||
11954 | 0x01208003, 0x05a004e1, 0x038005cc, 0x03209009, | ||
11955 | 0x02800604, 0x03209011, 0x02800604, 0x02209007, | ||
11956 | 0x02800604, 0x03209003, 0x02800604, 0x00498043, | ||
11957 | 0x058185be, 0x00497043, 0x048185c2, 0x02209001, | ||
11958 | 0x02800604, 0x0220900d, 0x02800604, 0x0320900f, | ||
11959 | 0x02800604, 0x03493000, 0x068105d5, 0x027c0045, | ||
11960 | 0x070a0000, 0x078105de, 0x0220900b, 0x02800604, | ||
11961 | 0x02209013, 0x05308000, 0x01012000, 0x04a004dc, | ||
11962 | 0x00800183, 0x03209005, 0x02800604, 0x072e500c, | ||
11963 | 0x00208002, 0x05a004e1, 0x02800010, 0x02209015, | ||
11964 | 0x02800604, 0x072d6000, 0x05308000, 0x05007000, | ||
11965 | 0x07f00000, 0x070090d1, 0x0379ff09, 0x0700ffff, | ||
11966 | 0x04a004dc, 0x03209017, 0x02800604, 0x033e5000, | ||
11967 | 0x06000080, 0x02209019, 0x02800604, 0x072d6000, | ||
11968 | 0x033e5000, 0x06000080, 0x07f00000, 0x060ff0d0, | ||
11969 | 0x0179feff, 0x0700ffff, 0x057dfeff, 0x0700ffff, | ||
11970 | 0x04818010, 0x02400058, 0x00642058, 0x06820010, | ||
11971 | 0x033e5000, 0x06000080, 0x04058051, 0x0320901b, | ||
11972 | 0x02800604, 0x05308000, 0x01012000, 0x04a004dc, | ||
11973 | 0x00800176, 0x05a00218, 0x05308000, 0x05008000, | ||
11974 | 0x06009079, 0x04a004dc, 0x07c00000, 0x034900e4, | ||
11975 | 0x05818618, 0x013e4000, 0x070000c0, 0x07f00000, | ||
11976 | 0x034900e4, 0x04818616, 0x07c00000, 0x013e4000, | ||
11977 | 0x06000080, 0x07f00000, 0x07f00000, 0x07f00000, | ||
11978 | 0x034900e4, 0x06810610, 0x03800618, 0x072d6000, | ||
11979 | 0x00498043, 0x06810632, 0x060ff0d0, 0x0179feff, | ||
11980 | 0x0700ffff, 0x057dfeff, 0x0700ffff, 0x058185e2, | ||
11981 | 0x050f8030, 0x032fa009, 0x0379ff00, 0x0700ffff, | ||
11982 | 0x070ff0d1, 0x0179feff, 0x0700ffff, 0x055c0400, | ||
11983 | 0x078105e2, 0x04004051, 0x0280067a, 0x06a006dc, | ||
11984 | 0x062d6001, 0x020ef004, 0x038605e4, 0x06600004, | ||
11985 | 0x050f80ff, 0x032fa009, 0x074b0000, 0x05002000, | ||
11986 | 0x0769ff00, 0x01640800, 0x078205e4, 0x01640e00, | ||
11987 | 0x058285e4, 0x070ff036, 0x045c0404, 0x0581864d, | ||
11988 | 0x072d6000, 0x050f8030, 0x032fa009, 0x0379ff00, | ||
11989 | 0x0700ffff, 0x070ff0d1, 0x0179feff, 0x0700ffff, | ||
11990 | 0x055c0400, 0x078105e2, 0x04482034, 0x078105ff, | ||
11991 | 0x06483034, 0x058185ff, 0x070ff0d4, 0x077800ff, | ||
11992 | 0x070000f0, 0x037c00ff, 0x06000010, 0x0681067a, | ||
11993 | 0x06a006d6, 0x024900e5, 0x0681065d, 0x033e5000, | ||
11994 | 0x06000080, 0x02800010, 0x04601c04, 0x050f80ff, | ||
11995 | 0x053fa809, 0x06000020, 0x030ef041, 0x038605ee, | ||
11996 | 0x062d6002, 0x05602a41, 0x050f80ff, 0x012fa809, | ||
11997 | 0x060ff0d0, 0x074b00ff, 0x045c0401, 0x05818678, | ||
11998 | 0x062d6001, 0x07602841, 0x050f80ff, 0x053fa809, | ||
11999 | 0x06000001, 0x070ff0d1, 0x054b80ff, 0x074b0003, | ||
12000 | 0x055c0403, 0x05818678, 0x033e5000, 0x06000080, | ||
12001 | 0x0080070e, 0x07600041, 0x0280065e, 0x06a006d6, | ||
12002 | 0x024900e5, 0x06810680, 0x033e5000, 0x06000080, | ||
12003 | 0x02800010, 0x06a006c2, 0x030ef041, 0x028605f2, | ||
12004 | 0x04058051, 0x072d6000, 0x05601041, 0x050f80ff, | ||
12005 | 0x012fa809, 0x0600a0d0, 0x0500b0d1, 0x062d6001, | ||
12006 | 0x07f00000, 0x07f00000, 0x0600c0d0, 0x0500d0d1, | ||
12007 | 0x062d6002, 0x0279ff0d, 0x07ff0000, 0x044d800d, | ||
12008 | 0x060ff0d0, 0x074b00ff, 0x065a000d, 0x06601201, | ||
12009 | 0x050f80ff, 0x073fa022, 0x07000005, 0x0079fe0d, | ||
12010 | 0x070000ff, 0x050020ff, 0x05602a41, 0x050f80ff, | ||
12011 | 0x073fa00a, 0x06000001, 0x020ef004, 0x028606bf, | ||
12012 | 0x04601c04, 0x050f80ff, 0x053fa809, 0x06000001, | ||
12013 | 0x050f80ff, 0x053fa80a, 0x06000020, 0x07602841, | ||
12014 | 0x050f80ff, 0x073fa009, 0x06000001, 0x0279ff02, | ||
12015 | 0x070000ff, 0x0678000d, 0x0700ff00, 0x065a0002, | ||
12016 | 0x07602841, 0x050f80ff, 0x073fa00a, 0x06000001, | ||
12017 | 0x07600041, 0x050f80ff, 0x053fa80a, 0x06000001, | ||
12018 | 0x07601241, 0x050f80ff, 0x073fa00a, 0x06000002, | ||
12019 | 0x033e5000, 0x06000080, 0x0080070e, 0x040f8032, | ||
12020 | 0x073fa011, 0x06000001, 0x060ff002, 0x055c0403, | ||
12021 | 0x058186ca, 0x00041051, 0x07c00000, 0x04600402, | ||
12022 | 0x04500432, 0x050f80ff, 0x053fa809, 0x06000020, | ||
12023 | 0x00400402, 0x01680eff, 0x070030ff, 0x040f8032, | ||
12024 | 0x053fa80a, 0x06000001, 0x07c00000, 0x024900e5, | ||
12025 | 0x068106d9, 0x07c00000, 0x033e5000, 0x070000c0, | ||
12026 | 0x07c00000, 0x05004036, 0x060000d0, 0x0179fe00, | ||
12027 | 0x0700ffff, 0x057dfeff, 0x0700ffff, 0x068106fb, | ||
12028 | 0x070000d1, 0x0379ff00, 0x0700ffff, 0x06005051, | ||
12029 | 0x060ff031, 0x05500405, 0x050f80ff, 0x073fa009, | ||
12030 | 0x06000002, 0x020ef004, 0x038606f5, 0x04600404, | ||
12031 | 0x050f80ff, 0x012fa809, 0x0079fe01, 0x0700ffff, | ||
12032 | 0x055c0400, 0x068106fb, 0x01400405, 0x070050ff, | ||
12033 | 0x057de0ff, 0x06000007, 0x058186e7, 0x04004051, | ||
12034 | 0x07c00000, 0x072d6000, 0x07f00000, 0x07f00000, | ||
12035 | 0x000110d0, 0x010120d1, 0x062d6001, 0x07f00000, | ||
12036 | 0x07f00000, 0x020130d0, 0x010140d1, 0x062d6002, | ||
12037 | 0x010170d4, 0x07f00000, 0x020150d0, 0x030160d1, | ||
12038 | 0x053fa83a, 0x06000008, 0x07c00000, 0x07600c41, | ||
12039 | 0x050f80ff, 0x073fa009, 0x06000001, 0x04780102, | ||
12040 | 0x07ffff00, 0x046a0702, 0x050f80ff, 0x073fa00a, | ||
12041 | 0x06000001, 0x05600e41, 0x050f80ff, 0x032fa069, | ||
12042 | 0x03800053, 0xba6b4e34, 0x02800004, 0x00000000, | ||
12043 | 0x00008000, 0x00000518, 0x040f801f, 0x012fa8c9, | ||
12044 | 0x040f801f, 0x073fa081, 0x06000010, 0x03200005, | ||
12045 | 0x07420000, 0x050fb000, 0x040f801f, 0x073fa011, | ||
12046 | 0x06000038, 0x040f801f, 0x053fa859, 0x0700003a, | ||
12047 | 0x050fe000, 0x0581800a, 0x0684003d, 0x04958019, | ||
12048 | 0x030e0011, 0x072e4200, 0x03800014, 0x0291001f, | ||
12049 | 0x050010c0, 0x04482001, 0x058180e8, 0x06483001, | ||
12050 | 0x0781814b, 0x02920029, 0x068b0029, 0x018a0150, | ||
12051 | 0x050010c0, 0x06780001, 0x050007c0, 0x06818223, | ||
12052 | 0x06780001, 0x0500f800, 0x07818263, 0x03910030, | ||
12053 | 0x040fe029, 0x03860030, 0x076c001d, 0x04810294, | ||
12054 | 0x076c0a1d, 0x048102b9, 0x0292003d, 0x040fe02f, | ||
12055 | 0x0286003d, 0x06000013, 0x050fb000, 0x066c0073, | ||
12056 | 0x068103c2, 0x0297003d, 0x014920e4, 0x0481803d, | ||
12057 | 0x03400000, 0x076c0a00, 0x04818034, 0x0796003f, | ||
12058 | 0x03b900b8, 0x05908014, 0x010170e1, 0x07780017, | ||
12059 | 0x03e00000, 0x06810092, 0x050010ff, 0x0179fe17, | ||
12060 | 0x031fffff, 0x070000ff, 0x05600800, 0x050f80ff, | ||
12061 | 0x073fa009, 0x06000001, 0x06780002, 0x02800040, | ||
12062 | 0x037c00ff, 0x03800000, 0x0681005e, 0x0249f002, | ||
12063 | 0x068100ab, 0x0448e002, 0x0681005e, 0x07600c00, | ||
12064 | 0x050f80ff, 0x073fa009, 0x06000001, 0x06780002, | ||
12065 | 0x07ffff00, 0x037c00ff, 0x05000200, 0x048180ab, | ||
12066 | 0x064bd401, 0x03d00060, 0x038000a9, 0x02800068, | ||
12067 | 0x03800072, 0x0280007c, 0x02800086, 0x03800090, | ||
12068 | 0x038000a9, 0x038000a9, 0x050fe027, 0x0186806c, | ||
12069 | 0x01028000, 0x0380006f, 0x07600027, 0x050f80ff, | ||
12070 | 0x032fa00a, 0x01027000, 0x02400029, 0x028000ab, | ||
12071 | 0x040fe025, 0x00868076, 0x03026000, 0x02800079, | ||
12072 | 0x06600025, 0x050f80ff, 0x032fa00a, 0x03025000, | ||
12073 | 0x02400029, 0x028000ab, 0x050fe021, 0x00868080, | ||
12074 | 0x01022000, 0x02800083, 0x07600021, 0x050f80ff, | ||
12075 | 0x032fa00a, 0x01021000, 0x02400029, 0x028000ab, | ||
12076 | 0x040fe023, 0x0086808a, 0x01024000, 0x0380008d, | ||
12077 | 0x06600023, 0x050f80ff, 0x032fa00a, 0x03023000, | ||
12078 | 0x02400029, 0x028000ab, 0x06a000c8, 0x028000ab, | ||
12079 | 0x01640817, 0x058280a9, 0x070ff017, 0x03d00096, | ||
12080 | 0x0280009e, 0x038000a0, 0x038000a3, 0x038000a6, | ||
12081 | 0x038000a9, 0x038000a9, 0x038000a9, 0x038000a9, | ||
12082 | 0x03e00000, 0x03800014, 0x059080a0, 0x030160e1, | ||
12083 | 0x028000ab, 0x059080a3, 0x030150e1, 0x028000ab, | ||
12084 | 0x059080a6, 0x010140e1, 0x028000ab, 0x060fc013, | ||
12085 | 0x06a00510, 0x03800014, 0x072e4800, 0x07000012, | ||
12086 | 0x038000bb, 0x0747f000, 0x05600800, 0x050f80ff, | ||
12087 | 0x012fa809, 0x0249f001, 0x078100bb, 0x01012000, | ||
12088 | 0x052e4c00, 0x07c00000, 0x070000eb, 0x0349f000, | ||
12089 | 0x058180af, 0x05600800, 0x050f80ff, 0x012fa809, | ||
12090 | 0x0448e001, 0x068100c1, 0x07c00000, 0x0079c101, | ||
12091 | 0x07ffffff, 0x027a4b01, 0x03800000, 0x05600800, | ||
12092 | 0x050f80ff, 0x012fa80a, 0x07600c00, 0x050f80ff, | ||
12093 | 0x012fa821, 0x06780001, 0x07ffff00, 0x037c00ff, | ||
12094 | 0x05000700, 0x078100dd, 0x06601804, 0x070030ff, | ||
12095 | 0x050f80ff, 0x012fa809, 0x05002000, 0x050f8003, | ||
12096 | 0x073fa00a, 0x06000001, 0x040fe001, 0x038600de, | ||
12097 | 0x04600201, 0x050f80ff, 0x032fa00a, 0x07c00000, | ||
12098 | 0x050fe02e, 0x008680e3, 0x0102e000, 0x0302f000, | ||
12099 | 0x038000e7, 0x0760002e, 0x050f80ff, 0x032fa00a, | ||
12100 | 0x0102e000, 0x07c00000, 0x022c0004, 0x056c041d, | ||
12101 | 0x078100fc, 0x056c021d, 0x04810113, 0x056c081d, | ||
12102 | 0x04810125, 0x076c061d, 0x0581013f, 0x0521d000, | ||
12103 | 0x0202c013, 0x0202a013, 0x02020013, 0x0460021a, | ||
12104 | 0x050f80ff, 0x053fa80a, 0x07000009, 0x03b600ac, | ||
12105 | 0x0484801f, 0x0280003d, 0x040fe02a, 0x028600f2, | ||
12106 | 0x06000013, 0x04001013, 0x0560102b, 0x050f80ff, | ||
12107 | 0x032fa012, 0x06420029, 0x0660002a, 0x050f80ff, | ||
12108 | 0x053fa809, 0x06000001, 0x050fe003, 0x00860110, | ||
12109 | 0x01028003, 0x0660002a, 0x050f80ff, 0x053fa80a, | ||
12110 | 0x07000009, 0x00800140, 0x00028013, 0x00027013, | ||
12111 | 0x00800140, 0x040fe02a, 0x028600f1, 0x06420029, | ||
12112 | 0x0660002a, 0x050f80ff, 0x053fa809, 0x06000001, | ||
12113 | 0x050fe003, 0x01860122, 0x03026003, 0x0660002a, | ||
12114 | 0x050f80ff, 0x053fa80a, 0x07000009, 0x00800140, | ||
12115 | 0x02026013, 0x02025013, 0x00800140, 0x040fe02a, | ||
12116 | 0x028600f1, 0x06420029, 0x0660002a, 0x050f80ff, | ||
12117 | 0x053fa809, 0x06000001, 0x050fe003, 0x00860134, | ||
12118 | 0x01022003, 0x0660002a, 0x050f80ff, 0x053fa80a, | ||
12119 | 0x07000009, 0x01800136, 0x00022013, 0x00021013, | ||
12120 | 0x0647f020, 0x007a0120, 0x04000101, 0x04a00285, | ||
12121 | 0x0400802a, 0x05a004f5, 0x009480f1, 0x0521d005, | ||
12122 | 0x028000f2, 0x038000fa, 0x0647f020, 0x06486020, | ||
12123 | 0x06818145, 0x04a00285, 0x028000f1, 0x007a0120, | ||
12124 | 0x04000101, 0x04a00285, 0x0400802a, 0x05a004f5, | ||
12125 | 0x028000f1, 0x040fd02a, 0x052e4003, 0x00208010, | ||
12126 | 0x05a004f5, 0x038000fa, 0x00018098, 0x07480018, | ||
12127 | 0x06818161, 0x05481018, 0x0781815f, 0x05482018, | ||
12128 | 0x0681815d, 0x07483018, 0x0681815b, 0x002fb004, | ||
12129 | 0x00800162, 0x012fb003, 0x00800162, 0x002fb002, | ||
12130 | 0x00800162, 0x002fb001, 0x00800162, 0x012fb000, | ||
12131 | 0x0179fe78, 0x070000ff, 0x030190ff, 0x00017086, | ||
12132 | 0x058b0166, 0x03385000, 0x03020000, 0x07780017, | ||
12133 | 0x00430407, 0x078181ee, 0x046c0419, 0x048101a2, | ||
12134 | 0x046c0219, 0x05810172, 0x07219000, 0x00800186, | ||
12135 | 0x07219000, 0x07483017, 0x0481018c, 0x05482017, | ||
12136 | 0x05810193, 0x0448b075, 0x06818186, 0x06601476, | ||
12137 | 0x050f80ff, 0x073fa022, 0x0600003e, 0x06000080, | ||
12138 | 0x05001081, 0x05002082, 0x06003083, 0x05004084, | ||
12139 | 0x04601c76, 0x050f80ff, 0x022fa02a, 0x07219000, | ||
12140 | 0x07780078, 0x07ffff00, 0x045a0419, 0x010780ff, | ||
12141 | 0x0484801f, 0x0280003d, 0x040fe07f, 0x0086019b, | ||
12142 | 0x05a001bb, 0x00920186, 0x040fe07f, 0x07a681bb, | ||
12143 | 0x00800186, 0x0560107b, 0x050f80ff, 0x032fa009, | ||
12144 | 0x0744f000, 0x0560107b, 0x050f80ff, 0x032fa00a, | ||
12145 | 0x00800179, 0x052e400c, 0x040080fb, 0x046aa108, | ||
12146 | 0x06009076, 0x04002075, 0x05a004fc, 0x00800186, | ||
12147 | 0x06219001, 0x05482017, 0x058101af, 0x058b01a5, | ||
12148 | 0x060ff086, 0x0349f0ff, 0x07818165, 0x07483017, | ||
12149 | 0x058101ac, 0x050fd0ff, 0x040fe07f, 0x07a681bb, | ||
12150 | 0x00800186, 0x05004084, 0x05a00205, 0x00920186, | ||
12151 | 0x070ff07d, 0x0450047c, 0x056004ff, 0x050f80ff, | ||
12152 | 0x032fa009, 0x070ff000, 0x00540479, 0x030790ff, | ||
12153 | 0x01800193, 0x060ff079, 0x0054047a, 0x058201e7, | ||
12154 | 0x058101e7, 0x070ff07d, 0x0450047c, 0x050f80ff, | ||
12155 | 0x002fa819, 0x058b01c3, 0x02080001, 0x00081002, | ||
12156 | 0x01082003, 0x048b01c7, 0x03385000, 0x03010000, | ||
12157 | 0x02400019, 0x070ff003, 0x04500479, 0x030790ff, | ||
12158 | 0x0340007e, 0x0642007f, 0x058101e7, 0x070ff07e, | ||
12159 | 0x050f80ff, 0x032fa009, 0x050fe000, 0x028681e6, | ||
12160 | 0x070ff07d, 0x056002ff, 0x050f80ff, 0x032fa009, | ||
12161 | 0x0107d000, 0x018601e8, 0x0560087d, 0x050f80ff, | ||
12162 | 0x032fa009, 0x0569fe00, 0x0550041b, 0x050f80ff, | ||
12163 | 0x032fa009, 0x0107e000, 0x070ff07e, 0x018001d2, | ||
12164 | 0x0307c000, 0x07c00000, 0x052e400c, 0x040080fb, | ||
12165 | 0x046aa108, 0x06009076, 0x04002075, 0x018004fc, | ||
12166 | 0x040fd076, 0x050fd017, 0x060ff086, 0x077800ff, | ||
12167 | 0x07000060, 0x037c00ff, 0x07000060, 0x078181f0, | ||
12168 | 0x07780078, 0x07ffff00, 0x045a0419, 0x010780ff, | ||
12169 | 0x06601476, 0x050f80ff, 0x073fa022, 0x0600003e, | ||
12170 | 0x052e400c, 0x040080fb, 0x066a8108, 0x06009076, | ||
12171 | 0x04002075, 0x05a004fc, 0x02800029, 0x0240007f, | ||
12172 | 0x0742007e, 0x050f807e, 0x032fa009, 0x050fe000, | ||
12173 | 0x0286821f, 0x070ff07d, 0x055c047b, 0x05810214, | ||
12174 | 0x0760007d, 0x050f80ff, 0x032fa009, 0x050fe000, | ||
12175 | 0x03868214, 0x070ff07b, 0x0107d0ff, 0x0560087d, | ||
12176 | 0x050f80ff, 0x032fa009, 0x03681e00, 0x0450041c, | ||
12177 | 0x0107e0ff, 0x050f80ff, 0x032fa009, 0x050fe000, | ||
12178 | 0x01860221, 0x0307c000, 0x07c00000, 0x040fd076, | ||
12179 | 0x02800510, 0x010180c0, 0x0548e018, 0x0781823c, | ||
12180 | 0x0748f018, 0x06818238, 0x03490018, 0x06818234, | ||
12181 | 0x01491018, 0x07818230, 0x073c0000, 0x06000040, | ||
12182 | 0x02200004, 0x0180023f, 0x073c0000, 0x06000020, | ||
12183 | 0x03200003, 0x0180023f, 0x073c0000, 0x06000010, | ||
12184 | 0x02200002, 0x0180023f, 0x073c0000, 0x06000008, | ||
12185 | 0x02200001, 0x0180023f, 0x073c0000, 0x06000004, | ||
12186 | 0x06000013, 0x050fb000, 0x040fe076, 0x00860258, | ||
12187 | 0x046c0273, 0x04810268, 0x066c0073, 0x04810249, | ||
12188 | 0x040fd076, 0x06a00510, 0x03800014, 0x040fd076, | ||
12189 | 0x0080024c, 0x00452075, 0x00077013, 0x0647f075, | ||
12190 | 0x06486075, 0x06818252, 0x05a0028b, 0x00800258, | ||
12191 | 0x007a0175, 0x04000101, 0x05a0028b, 0x04008076, | ||
12192 | 0x0245f008, 0x05a004f5, 0x07273000, 0x05600272, | ||
12193 | 0x050f80ff, 0x053fa80a, 0x07000009, 0x0379ff78, | ||
12194 | 0x070000ff, 0x02076013, 0x02075013, 0x0484801f, | ||
12195 | 0x0280003d, 0x070fc0ff, 0x052e400c, 0x00208020, | ||
12196 | 0x05a004f5, 0x00800261, 0x04600276, 0x050010ff, | ||
12197 | 0x040f8001, 0x032fa009, 0x040f8001, 0x053fa80a, | ||
12198 | 0x07000009, 0x070ff000, 0x0286827a, 0x06601276, | ||
12199 | 0x050f80ff, 0x073fa009, 0x0700000c, 0x07601818, | ||
12200 | 0x050f80ff, 0x053fa80a, 0x07000009, 0x0180027b, | ||
12201 | 0x07a000de, 0x0448b075, 0x0581024b, 0x06000013, | ||
12202 | 0x04001013, 0x0560107b, 0x050f80ff, 0x032fa012, | ||
12203 | 0x0046b075, 0x03b600ac, 0x0080024c, 0x06000020, | ||
12204 | 0x04001016, 0x0460082a, 0x050f80ff, 0x032fa012, | ||
12205 | 0x07c00000, 0x06000075, 0x040010a2, 0x044b0801, | ||
12206 | 0x060ff016, 0x065a0001, 0x04600876, 0x050f80ff, | ||
12207 | 0x032fa012, 0x07c00000, 0x050fe022, 0x0186029a, | ||
12208 | 0x0421d004, 0x0302a022, 0x04a002c1, 0x018002b1, | ||
12209 | 0x040fe026, 0x008602b3, 0x0421d001, 0x0202a026, | ||
12210 | 0x04a002c1, 0x0202c013, 0x00683e20, 0x070060ff, | ||
12211 | 0x056c0206, 0x048102f4, 0x056c0406, 0x0781030a, | ||
12212 | 0x076c0606, 0x06810379, 0x056c1606, 0x078182b1, | ||
12213 | 0x04488020, 0x07810387, 0x040fd02a, 0x0521d000, | ||
12214 | 0x0202a013, 0x02020013, 0x008002b3, 0x04a004ec, | ||
12215 | 0x008002bf, 0x050fe028, 0x008602bf, 0x0302a028, | ||
12216 | 0x0421d002, 0x04a002c1, 0x008002c8, 0x050fe022, | ||
12217 | 0x008602bf, 0x0421d004, 0x0302a022, 0x04a002c1, | ||
12218 | 0x04a004ec, 0x05848030, 0x0280003d, 0x0460082a, | ||
12219 | 0x050f80ff, 0x022fa031, 0x03020000, 0x0002b004, | ||
12220 | 0x01018005, 0x07c00000, 0x0400702a, 0x06a003ba, | ||
12221 | 0x007a0101, 0x07060000, 0x07303000, 0x07008290, | ||
12222 | 0x07600018, 0x050f80ff, 0x053fa809, 0x07000003, | ||
12223 | 0x0448e007, 0x068182d6, 0x06006013, 0x018002dd, | ||
12224 | 0x02400010, 0x048102d6, 0x06006010, 0x0460322a, | ||
12225 | 0x050f80ff, 0x073fa00a, 0x07000003, 0x050f801e, | ||
12226 | 0x032fa03a, 0x063aa020, 0x06000002, 0x013e4000, | ||
12227 | 0x07000030, 0x009802e3, 0x070ff0f6, 0x036830ff, | ||
12228 | 0x078182e4, 0x070f001e, 0x0560102b, 0x050f10ff, | ||
12229 | 0x063f3c08, 0x0600000d, 0x013e4000, 0x06000020, | ||
12230 | 0x040f801a, 0x0320000a, 0x022017d0, 0x032fa012, | ||
12231 | 0x0202c013, 0x008002bf, 0x04007013, 0x06a003ba, | ||
12232 | 0x007a0101, 0x07050000, 0x07303000, 0x07008890, | ||
12233 | 0x074d0005, 0x06006013, 0x050f801e, 0x032fa03a, | ||
12234 | 0x05601a2b, 0x050f80ff, 0x022fa019, 0x04001002, | ||
12235 | 0x04002013, 0x040f801f, 0x022fa01a, 0x073aa00c, | ||
12236 | 0x06000002, 0x07300c03, 0x0600000d, 0x028003a7, | ||
12237 | 0x04007013, 0x06a003ba, 0x007a0101, 0x03070000, | ||
12238 | 0x0660282a, 0x050f80ff, 0x073fa009, 0x06000004, | ||
12239 | 0x02499008, 0x07810317, 0x07303000, 0x07008890, | ||
12240 | 0x02800319, 0x07303000, 0x04008980, 0x05007003, | ||
12241 | 0x074d0005, 0x06006013, 0x050f801e, 0x032fa03a, | ||
12242 | 0x0760142b, 0x050f80ff, 0x032fa021, 0x064b0002, | ||
12243 | 0x02499008, 0x06810325, 0x0644c002, 0x054b0400, | ||
12244 | 0x050040ff, 0x06698104, 0x0581833a, 0x06000013, | ||
12245 | 0x04001013, 0x04780102, 0x06000010, 0x06003013, | ||
12246 | 0x04004013, 0x06005013, 0x06006013, 0x04007013, | ||
12247 | 0x00644015, 0x07820336, 0x04448002, 0x02205008, | ||
12248 | 0x040f801f, 0x032fa042, 0x04008015, 0x03800371, | ||
12249 | 0x046c8004, 0x05818348, 0x01208018, 0x06780002, | ||
12250 | 0x07000003, 0x0581834b, 0x06003001, 0x06000013, | ||
12251 | 0x04001013, 0x04004013, 0x06005013, 0x040f801f, | ||
12252 | 0x022fa032, 0x03800371, 0x040fd02a, 0x06a00510, | ||
12253 | 0x03800014, 0x04488002, 0x07810350, 0x070ff003, | ||
12254 | 0x04500408, 0x050080ff, 0x06489002, 0x06810357, | ||
12255 | 0x0379ff00, 0x070000ff, 0x070ff000, 0x04500408, | ||
12256 | 0x050080ff, 0x07005003, 0x05004000, 0x06003001, | ||
12257 | 0x06000013, 0x04001013, 0x040f801f, 0x022fa032, | ||
12258 | 0x05601c2b, 0x050f80ff, 0x022fa031, 0x06600c1f, | ||
12259 | 0x050f80ff, 0x022fa032, 0x02680608, 0x07810371, | ||
12260 | 0x016408ff, 0x057dfeff, 0x07ffffff, 0x034000ff, | ||
12261 | 0x045a0407, 0x070000ff, 0x0760061e, 0x050f80ff, | ||
12262 | 0x032fa00a, 0x06600908, 0x0669f908, 0x027a0008, | ||
12263 | 0x06000020, 0x070aa0ff, 0x014a20ff, 0x037a00ff, | ||
12264 | 0x060000dc, 0x070000ff, 0x028003a7, 0x04007013, | ||
12265 | 0x06a003ba, 0x007a0101, 0x07030000, 0x07303000, | ||
12266 | 0x07008190, 0x06006013, 0x050f801e, 0x032fa03a, | ||
12267 | 0x073aa000, 0x06000002, 0x07300c00, 0x07000005, | ||
12268 | 0x028003a7, 0x04007013, 0x06a003ba, 0x007a0101, | ||
12269 | 0x07810000, 0x07303000, 0x07000090, 0x06006013, | ||
12270 | 0x06600c2a, 0x050f80ff, 0x053fa809, 0x07000003, | ||
12271 | 0x04780107, 0x07ffff00, 0x007c0107, 0x07000500, | ||
12272 | 0x0581839a, 0x07303000, 0x05000890, 0x074d0005, | ||
12273 | 0x0660282a, 0x050f80ff, 0x053fa809, 0x07000003, | ||
12274 | 0x0049d007, 0x068103a1, 0x02206001, 0x050f801e, | ||
12275 | 0x032fa03a, 0x073aa000, 0x06000002, 0x07300c00, | ||
12276 | 0x07000005, 0x013e4000, 0x07000030, 0x039803a9, | ||
12277 | 0x070ff0f6, 0x036830ff, 0x058183aa, 0x070f001e, | ||
12278 | 0x040f101f, 0x070f3000, 0x013e4000, 0x06000020, | ||
12279 | 0x040f801a, 0x0320000a, 0x022017d0, 0x032fa012, | ||
12280 | 0x008002bf, 0x03200000, 0x06006076, 0x028003bc, | ||
12281 | 0x03200011, 0x0600602a, 0x05a00441, 0x05600406, | ||
12282 | 0x050f80ff, 0x053fa809, 0x06000002, 0x07c00000, | ||
12283 | 0x0207602f, 0x04600876, 0x050f80ff, 0x022fa031, | ||
12284 | 0x03075000, 0x0007b004, 0x01018005, 0x06600076, | ||
12285 | 0x050020ff, 0x050f80ff, 0x012fa809, 0x0202f001, | ||
12286 | 0x008683d0, 0x0002e013, 0x040f8002, 0x053fa80a, | ||
12287 | 0x07000009, 0x06273001, 0x0448b075, 0x048183da, | ||
12288 | 0x04602076, 0x050f80ff, 0x053fa811, 0x0700003c, | ||
12289 | 0x0179fe78, 0x070000ff, 0x030190ff, 0x018683e2, | ||
12290 | 0x07a003f6, 0x00078019, 0x039203f5, 0x0180043a, | ||
12291 | 0x040fd076, 0x040fd019, 0x04600276, 0x050020ff, | ||
12292 | 0x050f80ff, 0x032fa009, 0x040f8002, 0x053fa80a, | ||
12293 | 0x07000009, 0x050fe000, 0x008683f2, 0x07601818, | ||
12294 | 0x050f80ff, 0x053fa80a, 0x07000009, 0x038003f3, | ||
12295 | 0x07a000de, 0x07273000, 0x02076013, 0x0280003d, | ||
12296 | 0x078b03f6, 0x03385000, 0x07030000, 0x05600818, | ||
12297 | 0x050f80ff, 0x032fa009, 0x054b0400, 0x0308a0ff, | ||
12298 | 0x0179fe00, 0x070000ff, 0x010880ff, 0x0448b075, | ||
12299 | 0x04810410, 0x0760147b, 0x050f80ff, 0x002fa819, | ||
12300 | 0x064b0001, 0x02080002, 0x01081003, 0x00082001, | ||
12301 | 0x02083001, 0x02079001, 0x0207a001, 0x00084013, | ||
12302 | 0x0207f013, 0x00800432, 0x06485075, 0x05810428, | ||
12303 | 0x02465075, 0x06601476, 0x050f80ff, 0x073fa021, | ||
12304 | 0x0600003e, 0x070ff07d, 0x0450047c, 0x050f80ff, | ||
12305 | 0x002fa819, 0x058b041b, 0x02080001, 0x00081002, | ||
12306 | 0x01082003, 0x03079003, 0x0208307a, 0x0340007e, | ||
12307 | 0x0642007f, 0x0581042d, 0x070ff07e, 0x05a001d2, | ||
12308 | 0x0392842d, 0x01800439, 0x058b0428, 0x06601476, | ||
12309 | 0x050f80ff, 0x073fa041, 0x0600003e, 0x06602476, | ||
12310 | 0x050f80ff, 0x073fa009, 0x06000007, 0x0008400e, | ||
12311 | 0x048b0432, 0x03385000, 0x03010000, 0x06219001, | ||
12312 | 0x040fe07f, 0x01860439, 0x018001bb, 0x07c00000, | ||
12313 | 0x00683e75, 0x0581043f, 0x0448d075, 0x05810465, | ||
12314 | 0x01800493, 0x05a004f0, 0x038003f5, 0x0297844c, | ||
12315 | 0x07602418, 0x050f80ff, 0x012fa809, 0x06780001, | ||
12316 | 0x070000ff, 0x075a0000, 0x070ff014, 0x0569feff, | ||
12317 | 0x054b08ff, 0x075a0000, 0x05600418, 0x050f80ff, | ||
12318 | 0x012fa809, 0x040fe007, 0x03868453, 0x01204000, | ||
12319 | 0x00800461, 0x00700101, 0x03010000, 0x06780001, | ||
12320 | 0x07ff0000, 0x076c00ff, 0x0681845b, 0x00700101, | ||
12321 | 0x03010000, 0x05600418, 0x050f80ff, 0x012fa80a, | ||
12322 | 0x06780001, 0x07ff0000, 0x050040ff, 0x0279ff01, | ||
12323 | 0x0700ffff, 0x05002014, 0x07c00000, 0x04007076, | ||
12324 | 0x0448b075, 0x0481047f, 0x03200011, 0x06006076, | ||
12325 | 0x06a003bc, 0x007a0101, 0x07060000, 0x07303000, | ||
12326 | 0x07008290, 0x07600018, 0x050f80ff, 0x053fa809, | ||
12327 | 0x07000003, 0x0448e007, 0x07818477, 0x06006013, | ||
12328 | 0x0180048e, 0x02400010, 0x05810477, 0x06006010, | ||
12329 | 0x04603276, 0x050f80ff, 0x073fa00a, 0x07000003, | ||
12330 | 0x0180048e, 0x04602a76, 0x050f80ff, 0x032fa009, | ||
12331 | 0x060ff07a, 0x05500400, 0x070000ff, 0x04602a76, | ||
12332 | 0x050f80ff, 0x032fa00a, 0x07a003b7, 0x007a0101, | ||
12333 | 0x03010000, 0x06303008, 0x05008000, 0x0600600e, | ||
12334 | 0x050f8074, 0x032fa03a, 0x053079a0, 0x0700000c, | ||
12335 | 0x008004d3, 0x00683e75, 0x076c0aff, 0x058104b2, | ||
12336 | 0x04007013, 0x03200011, 0x06006076, 0x06a003bc, | ||
12337 | 0x007a0101, 0x03070000, 0x06602876, 0x050f80ff, | ||
12338 | 0x053fa809, 0x06000001, 0x03499003, 0x048104a7, | ||
12339 | 0x07303000, 0x07008890, 0x053079a0, 0x0700000c, | ||
12340 | 0x008004ab, 0x07303000, 0x04008980, 0x04307920, | ||
12341 | 0x0700000c, 0x074d0005, 0x06006013, 0x050f8074, | ||
12342 | 0x032fa03a, 0x04307920, 0x0700000c, 0x008004d3, | ||
12343 | 0x04602a76, 0x050f80ff, 0x032fa009, 0x060ff07a, | ||
12344 | 0x05500400, 0x070000ff, 0x04602a76, 0x050f80ff, | ||
12345 | 0x032fa00a, 0x04007076, 0x07a003b7, 0x007a0101, | ||
12346 | 0x03010000, 0x06303008, 0x07008800, 0x074d0005, | ||
12347 | 0x06600a76, 0x050f80ff, 0x073fa009, 0x07000003, | ||
12348 | 0x054b0406, 0x045a0404, 0x050040ff, 0x0600600e, | ||
12349 | 0x050f8074, 0x032fa03a, 0x0648c075, 0x058104d1, | ||
12350 | 0x06307d20, 0x0700000c, 0x008004d3, 0x04307920, | ||
12351 | 0x0700000c, 0x013e4000, 0x07000030, 0x009804d5, | ||
12352 | 0x070ff0f6, 0x074850ff, 0x068184d6, 0x050f2074, | ||
12353 | 0x060a0007, 0x040070fb, 0x046a7007, 0x050f40ff, | ||
12354 | 0x013e4000, 0x06000020, 0x0678007a, 0x07fff000, | ||
12355 | 0x068184e6, 0x0320000a, 0x022017d0, 0x008004e9, | ||
12356 | 0x0320000a, 0x06301b58, 0x06000001, 0x050f8072, | ||
12357 | 0x032fa012, 0x038003f5, 0x01208060, 0x0600902a, | ||
12358 | 0x04002020, 0x018004fc, 0x040080fb, 0x066ae108, | ||
12359 | 0x06009076, 0x04002075, 0x018004fc, 0x03201100, | ||
12360 | 0x078484fa, 0x06420001, 0x078184f6, 0x02800513, | ||
12361 | 0x020e0008, 0x07c00000, 0x050fd009, 0x040fd008, | ||
12362 | 0x03201100, 0x05848503, 0x06420001, 0x078184ff, | ||
12363 | 0x02800513, 0x007a0102, 0x04000101, 0x05600809, | ||
12364 | 0x050f80ff, 0x073fa00a, 0x06000001, 0x020e0008, | ||
12365 | 0x0684050d, 0x030e0009, 0x07c00000, 0x01011009, | ||
12366 | 0x052e4300, 0x07c00000, 0x052e400f, 0x01208090, | ||
12367 | 0x018004f5, 0x070fc0ff, 0x040f8013, 0x032fa009, | ||
12368 | 0x02800516, 0x15416ea9, 0xffef0b01 | ||
12369 | }; | ||
12370 | |||
12371 | #ifdef UNIQUE_FW_NAME | ||
12372 | uint32_t fw2400_length02 = 0x000014ff ; | ||
12373 | #else | ||
12374 | uint32_t risc_code_length02 = 0x000014ff ; | ||
12375 | #endif | ||
12376 | |||
diff --git a/drivers/scsi/qla2xxx/qla_attr.c b/drivers/scsi/qla2xxx/qla_attr.c index 48e460eef05a..2efca52dff50 100644 --- a/drivers/scsi/qla2xxx/qla_attr.c +++ b/drivers/scsi/qla2xxx/qla_attr.c | |||
@@ -232,7 +232,7 @@ static ssize_t | |||
232 | qla2x00_isp_name_show(struct class_device *cdev, char *buf) | 232 | qla2x00_isp_name_show(struct class_device *cdev, char *buf) |
233 | { | 233 | { |
234 | scsi_qla_host_t *ha = to_qla_host(class_to_shost(cdev)); | 234 | scsi_qla_host_t *ha = to_qla_host(class_to_shost(cdev)); |
235 | return snprintf(buf, PAGE_SIZE, "%s\n", ha->brd_info->isp_name); | 235 | return snprintf(buf, PAGE_SIZE, "ISP%04X\n", ha->pdev->device); |
236 | } | 236 | } |
237 | 237 | ||
238 | static ssize_t | 238 | static ssize_t |
diff --git a/drivers/scsi/qla2xxx/qla_def.h b/drivers/scsi/qla2xxx/qla_def.h index 7b3efd531297..79d8a914f9d0 100644 --- a/drivers/scsi/qla2xxx/qla_def.h +++ b/drivers/scsi/qla2xxx/qla_def.h | |||
@@ -22,6 +22,7 @@ | |||
22 | #include <linux/completion.h> | 22 | #include <linux/completion.h> |
23 | #include <linux/interrupt.h> | 23 | #include <linux/interrupt.h> |
24 | #include <linux/workqueue.h> | 24 | #include <linux/workqueue.h> |
25 | #include <linux/firmware.h> | ||
25 | #include <asm/semaphore.h> | 26 | #include <asm/semaphore.h> |
26 | 27 | ||
27 | #include <scsi/scsi.h> | 28 | #include <scsi/scsi.h> |
@@ -29,6 +30,7 @@ | |||
29 | #include <scsi/scsi_device.h> | 30 | #include <scsi/scsi_device.h> |
30 | #include <scsi/scsi_cmnd.h> | 31 | #include <scsi/scsi_cmnd.h> |
31 | 32 | ||
33 | #if defined(CONFIG_SCSI_QLA2XXX_EMBEDDED_FIRMWARE) | ||
32 | #if defined(CONFIG_SCSI_QLA21XX) || defined(CONFIG_SCSI_QLA21XX_MODULE) | 34 | #if defined(CONFIG_SCSI_QLA21XX) || defined(CONFIG_SCSI_QLA21XX_MODULE) |
33 | #define IS_QLA2100(ha) ((ha)->pdev->device == PCI_DEVICE_ID_QLOGIC_ISP2100) | 35 | #define IS_QLA2100(ha) ((ha)->pdev->device == PCI_DEVICE_ID_QLOGIC_ISP2100) |
34 | #else | 36 | #else |
@@ -79,9 +81,23 @@ | |||
79 | #define IS_QLA2522(ha) 0 | 81 | #define IS_QLA2522(ha) 0 |
80 | #endif | 82 | #endif |
81 | 83 | ||
84 | #else /* !defined(CONFIG_SCSI_QLA2XXX_EMBEDDED_FIRMWARE) */ | ||
85 | |||
86 | #define IS_QLA2100(ha) ((ha)->pdev->device == PCI_DEVICE_ID_QLOGIC_ISP2100) | ||
87 | #define IS_QLA2200(ha) ((ha)->pdev->device == PCI_DEVICE_ID_QLOGIC_ISP2200) | ||
88 | #define IS_QLA2300(ha) ((ha)->pdev->device == PCI_DEVICE_ID_QLOGIC_ISP2300) | ||
89 | #define IS_QLA2312(ha) ((ha)->pdev->device == PCI_DEVICE_ID_QLOGIC_ISP2312) | ||
90 | #define IS_QLA2322(ha) ((ha)->pdev->device == PCI_DEVICE_ID_QLOGIC_ISP2322) | ||
91 | #define IS_QLA6312(ha) ((ha)->pdev->device == PCI_DEVICE_ID_QLOGIC_ISP6312) | ||
92 | #define IS_QLA6322(ha) ((ha)->pdev->device == PCI_DEVICE_ID_QLOGIC_ISP6322) | ||
93 | #define IS_QLA2422(ha) ((ha)->pdev->device == PCI_DEVICE_ID_QLOGIC_ISP2422) | ||
94 | #define IS_QLA2432(ha) ((ha)->pdev->device == PCI_DEVICE_ID_QLOGIC_ISP2432) | ||
95 | #define IS_QLA2512(ha) ((ha)->pdev->device == PCI_DEVICE_ID_QLOGIC_ISP2512) | ||
96 | #define IS_QLA2522(ha) ((ha)->pdev->device == PCI_DEVICE_ID_QLOGIC_ISP2522) | ||
97 | #endif | ||
98 | |||
82 | #define IS_QLA23XX(ha) (IS_QLA2300(ha) || IS_QLA2312(ha) || IS_QLA2322(ha) || \ | 99 | #define IS_QLA23XX(ha) (IS_QLA2300(ha) || IS_QLA2312(ha) || IS_QLA2322(ha) || \ |
83 | IS_QLA6312(ha) || IS_QLA6322(ha)) | 100 | IS_QLA6312(ha) || IS_QLA6322(ha)) |
84 | |||
85 | #define IS_QLA24XX(ha) (IS_QLA2422(ha) || IS_QLA2432(ha)) | 101 | #define IS_QLA24XX(ha) (IS_QLA2422(ha) || IS_QLA2432(ha)) |
86 | #define IS_QLA25XX(ha) (IS_QLA2512(ha) || IS_QLA2522(ha)) | 102 | #define IS_QLA25XX(ha) (IS_QLA2512(ha) || IS_QLA2522(ha)) |
87 | 103 | ||
@@ -2124,6 +2140,12 @@ struct qla_board_info { | |||
2124 | struct scsi_host_template *sht; | 2140 | struct scsi_host_template *sht; |
2125 | }; | 2141 | }; |
2126 | 2142 | ||
2143 | struct fw_blob { | ||
2144 | char *name; | ||
2145 | uint32_t segs[4]; | ||
2146 | const struct firmware *fw; | ||
2147 | }; | ||
2148 | |||
2127 | /* Return data from MBC_GET_ID_LIST call. */ | 2149 | /* Return data from MBC_GET_ID_LIST call. */ |
2128 | struct gid_list_info { | 2150 | struct gid_list_info { |
2129 | uint8_t al_pa; | 2151 | uint8_t al_pa; |
diff --git a/drivers/scsi/qla2xxx/qla_gbl.h b/drivers/scsi/qla2xxx/qla_gbl.h index fedcb0d3fc72..bec81adcf4fd 100644 --- a/drivers/scsi/qla2xxx/qla_gbl.h +++ b/drivers/scsi/qla2xxx/qla_gbl.h | |||
@@ -33,8 +33,8 @@ extern int qla24xx_nvram_config(struct scsi_qla_host *); | |||
33 | extern void qla2x00_update_fw_options(struct scsi_qla_host *); | 33 | extern void qla2x00_update_fw_options(struct scsi_qla_host *); |
34 | extern void qla24xx_update_fw_options(scsi_qla_host_t *); | 34 | extern void qla24xx_update_fw_options(scsi_qla_host_t *); |
35 | extern int qla2x00_load_risc(struct scsi_qla_host *, uint32_t *); | 35 | extern int qla2x00_load_risc(struct scsi_qla_host *, uint32_t *); |
36 | extern int qla24xx_load_risc(scsi_qla_host_t *, uint32_t *); | ||
36 | extern int qla24xx_load_risc_flash(scsi_qla_host_t *, uint32_t *); | 37 | extern int qla24xx_load_risc_flash(scsi_qla_host_t *, uint32_t *); |
37 | extern int qla24xx_load_risc_hotplug(scsi_qla_host_t *, uint32_t *); | ||
38 | 38 | ||
39 | extern fc_port_t *qla2x00_alloc_fcport(scsi_qla_host_t *, gfp_t); | 39 | extern fc_port_t *qla2x00_alloc_fcport(scsi_qla_host_t *, gfp_t); |
40 | 40 | ||
@@ -76,6 +76,8 @@ extern void qla2x00_blink_led(scsi_qla_host_t *); | |||
76 | 76 | ||
77 | extern int qla2x00_down_timeout(struct semaphore *, unsigned long); | 77 | extern int qla2x00_down_timeout(struct semaphore *, unsigned long); |
78 | 78 | ||
79 | extern struct fw_blob *qla2x00_request_firmware(scsi_qla_host_t *); | ||
80 | |||
79 | /* | 81 | /* |
80 | * Global Function Prototypes in qla_iocb.c source file. | 82 | * Global Function Prototypes in qla_iocb.c source file. |
81 | */ | 83 | */ |
diff --git a/drivers/scsi/qla2xxx/qla_init.c b/drivers/scsi/qla2xxx/qla_init.c index c46d2469b85f..7d973bd9022b 100644 --- a/drivers/scsi/qla2xxx/qla_init.c +++ b/drivers/scsi/qla2xxx/qla_init.c | |||
@@ -8,7 +8,6 @@ | |||
8 | 8 | ||
9 | #include <linux/delay.h> | 9 | #include <linux/delay.h> |
10 | #include <linux/vmalloc.h> | 10 | #include <linux/vmalloc.h> |
11 | #include <linux/firmware.h> | ||
12 | #include <scsi/scsi_transport_fc.h> | 11 | #include <scsi/scsi_transport_fc.h> |
13 | 12 | ||
14 | #include "qla_devtbl.h" | 13 | #include "qla_devtbl.h" |
@@ -3484,17 +3483,16 @@ qla24xx_nvram_config(scsi_qla_host_t *ha) | |||
3484 | return (rval); | 3483 | return (rval); |
3485 | } | 3484 | } |
3486 | 3485 | ||
3486 | #if defined(CONFIG_SCSI_QLA2XXX_EMBEDDED_FIRMWARE) | ||
3487 | |||
3487 | int | 3488 | int |
3488 | qla2x00_load_risc(scsi_qla_host_t *ha, uint32_t *srisc_addr) | 3489 | qla2x00_load_risc(scsi_qla_host_t *ha, uint32_t *srisc_addr) |
3489 | { | 3490 | { |
3490 | int rval; | 3491 | int rval, num, i; |
3491 | uint16_t cnt; | 3492 | uint32_t cnt; |
3492 | uint16_t *risc_code; | 3493 | uint16_t *risc_code; |
3493 | unsigned long risc_address; | 3494 | uint32_t risc_addr, risc_size; |
3494 | unsigned long risc_code_size; | 3495 | uint16_t *req_ring; |
3495 | int num; | ||
3496 | int i; | ||
3497 | uint16_t *req_ring; | ||
3498 | struct qla_fw_info *fw_iter; | 3496 | struct qla_fw_info *fw_iter; |
3499 | 3497 | ||
3500 | rval = QLA_SUCCESS; | 3498 | rval = QLA_SUCCESS; |
@@ -3504,37 +3502,29 @@ qla2x00_load_risc(scsi_qla_host_t *ha, uint32_t *srisc_addr) | |||
3504 | *srisc_addr = *ha->brd_info->fw_info->fwstart; | 3502 | *srisc_addr = *ha->brd_info->fw_info->fwstart; |
3505 | while (fw_iter->addressing != FW_INFO_ADDR_NOMORE) { | 3503 | while (fw_iter->addressing != FW_INFO_ADDR_NOMORE) { |
3506 | risc_code = fw_iter->fwcode; | 3504 | risc_code = fw_iter->fwcode; |
3507 | risc_code_size = *fw_iter->fwlen; | 3505 | risc_size = *fw_iter->fwlen; |
3508 | 3506 | if (fw_iter->addressing == FW_INFO_ADDR_NORMAL) | |
3509 | if (fw_iter->addressing == FW_INFO_ADDR_NORMAL) { | 3507 | risc_addr = *fw_iter->fwstart; |
3510 | risc_address = *fw_iter->fwstart; | 3508 | else |
3511 | } else { | 3509 | risc_addr = *fw_iter->lfwstart; |
3512 | /* Extended address */ | ||
3513 | risc_address = *fw_iter->lfwstart; | ||
3514 | } | ||
3515 | 3510 | ||
3516 | num = 0; | 3511 | num = 0; |
3517 | rval = 0; | 3512 | rval = 0; |
3518 | while (risc_code_size > 0 && !rval) { | 3513 | while (risc_size > 0 && !rval) { |
3519 | cnt = (uint16_t)(ha->fw_transfer_size >> 1); | 3514 | cnt = (uint16_t)(ha->fw_transfer_size >> 1); |
3520 | if (cnt > risc_code_size) | 3515 | if (cnt > risc_size) |
3521 | cnt = risc_code_size; | 3516 | cnt = risc_size; |
3522 | 3517 | ||
3523 | DEBUG7(printk("scsi(%ld): Loading risc segment@ " | 3518 | DEBUG7(printk("scsi(%ld): Loading risc segment@ " |
3524 | "addr %p, number of bytes 0x%x, offset 0x%lx.\n", | 3519 | "addr %p, number of bytes 0x%x, offset 0x%lx.\n", |
3525 | ha->host_no, risc_code, cnt, risc_address)); | 3520 | ha->host_no, risc_code, cnt, risc_addr)); |
3526 | 3521 | ||
3527 | req_ring = (uint16_t *)ha->request_ring; | 3522 | req_ring = (uint16_t *)ha->request_ring; |
3528 | for (i = 0; i < cnt; i++) | 3523 | for (i = 0; i < cnt; i++) |
3529 | req_ring[i] = cpu_to_le16(risc_code[i]); | 3524 | req_ring[i] = cpu_to_le16(risc_code[i]); |
3530 | 3525 | ||
3531 | if (fw_iter->addressing == FW_INFO_ADDR_NORMAL) { | 3526 | rval = qla2x00_load_ram(ha, ha->request_dma, risc_addr, |
3532 | rval = qla2x00_load_ram(ha, ha->request_dma, | 3527 | cnt); |
3533 | risc_address, cnt); | ||
3534 | } else { | ||
3535 | rval = qla2x00_load_ram_ext(ha, | ||
3536 | ha->request_dma, risc_address, cnt); | ||
3537 | } | ||
3538 | if (rval) { | 3528 | if (rval) { |
3539 | DEBUG(printk("scsi(%ld): [ERROR] Failed to " | 3529 | DEBUG(printk("scsi(%ld): [ERROR] Failed to " |
3540 | "load segment %d of firmware\n", | 3530 | "load segment %d of firmware\n", |
@@ -3548,16 +3538,76 @@ qla2x00_load_risc(scsi_qla_host_t *ha, uint32_t *srisc_addr) | |||
3548 | } | 3538 | } |
3549 | 3539 | ||
3550 | risc_code += cnt; | 3540 | risc_code += cnt; |
3551 | risc_address += cnt; | 3541 | risc_addr += cnt; |
3552 | risc_code_size -= cnt; | 3542 | risc_size -= cnt; |
3553 | num++; | 3543 | num++; |
3554 | } | 3544 | } |
3555 | 3545 | ||
3556 | /* Next firmware sequence */ | 3546 | /* Next firmware sequence */ |
3557 | fw_iter++; | 3547 | fw_iter++; |
3558 | } | 3548 | } |
3549 | return rval; | ||
3550 | } | ||
3559 | 3551 | ||
3560 | return (rval); | 3552 | int |
3553 | qla24xx_load_risc(scsi_qla_host_t *ha, uint32_t *srisc_addr) | ||
3554 | { | ||
3555 | int rval, num, i; | ||
3556 | uint32_t cnt; | ||
3557 | uint32_t *risc_code; | ||
3558 | uint32_t risc_addr, risc_size; | ||
3559 | uint32_t *req_ring; | ||
3560 | struct qla_fw_info *fw_iter; | ||
3561 | |||
3562 | rval = QLA_SUCCESS; | ||
3563 | |||
3564 | /* Load firmware sequences */ | ||
3565 | fw_iter = ha->brd_info->fw_info; | ||
3566 | *srisc_addr = *((uint32_t *)fw_iter->lfwstart); | ||
3567 | while (fw_iter->addressing != FW_INFO_ADDR_NOMORE) { | ||
3568 | risc_code = (uint32_t *)fw_iter->fwcode; | ||
3569 | risc_size = *((uint32_t *)fw_iter->fwlen); | ||
3570 | risc_addr = *((uint32_t *)fw_iter->lfwstart); | ||
3571 | |||
3572 | num = 0; | ||
3573 | rval = 0; | ||
3574 | while (risc_size > 0 && !rval) { | ||
3575 | cnt = (uint32_t)(ha->fw_transfer_size >> 2); | ||
3576 | if (cnt > risc_size) | ||
3577 | cnt = risc_size; | ||
3578 | |||
3579 | DEBUG7(printk("scsi(%ld): Loading risc segment@ " | ||
3580 | "addr %p, number of bytes 0x%x, offset 0x%lx.\n", | ||
3581 | ha->host_no, risc_code, cnt, risc_addr)); | ||
3582 | |||
3583 | req_ring = (uint32_t *)ha->request_ring; | ||
3584 | for (i = 0; i < cnt; i++) | ||
3585 | req_ring[i] = cpu_to_le32(risc_code[i]); | ||
3586 | |||
3587 | rval = qla2x00_load_ram(ha, ha->request_dma, risc_addr, | ||
3588 | cnt); | ||
3589 | if (rval) { | ||
3590 | DEBUG(printk("scsi(%ld): [ERROR] Failed to " | ||
3591 | "load segment %d of firmware\n", | ||
3592 | ha->host_no, num)); | ||
3593 | qla_printk(KERN_WARNING, ha, | ||
3594 | "[ERROR] Failed to load segment %d of " | ||
3595 | "firmware\n", num); | ||
3596 | |||
3597 | qla2x00_dump_regs(ha); | ||
3598 | break; | ||
3599 | } | ||
3600 | |||
3601 | risc_code += cnt; | ||
3602 | risc_addr += cnt; | ||
3603 | risc_size -= cnt; | ||
3604 | num++; | ||
3605 | } | ||
3606 | |||
3607 | /* Next firmware sequence */ | ||
3608 | fw_iter++; | ||
3609 | } | ||
3610 | return rval; | ||
3561 | } | 3611 | } |
3562 | 3612 | ||
3563 | int | 3613 | int |
@@ -3642,8 +3692,108 @@ qla24xx_load_risc_flash(scsi_qla_host_t *ha, uint32_t *srisc_addr) | |||
3642 | return rval; | 3692 | return rval; |
3643 | } | 3693 | } |
3644 | 3694 | ||
3695 | #else /* !defined(CONFIG_SCSI_QLA2XXX_EMBEDDED_FIRMWARE) */ | ||
3696 | |||
3645 | int | 3697 | int |
3646 | qla24xx_load_risc_hotplug(scsi_qla_host_t *ha, uint32_t *srisc_addr) | 3698 | qla2x00_load_risc(scsi_qla_host_t *ha, uint32_t *srisc_addr) |
3699 | { | ||
3700 | int rval; | ||
3701 | int i, fragment; | ||
3702 | uint16_t *wcode, *fwcode; | ||
3703 | uint32_t risc_addr, risc_size, fwclen, wlen, *seg; | ||
3704 | struct fw_blob *blob; | ||
3705 | |||
3706 | /* Load firmware blob. */ | ||
3707 | blob = qla2x00_request_firmware(ha); | ||
3708 | if (!blob) { | ||
3709 | qla_printk(KERN_ERR, ha, "Firmware image unavailable.\n"); | ||
3710 | return QLA_FUNCTION_FAILED; | ||
3711 | } | ||
3712 | |||
3713 | rval = QLA_SUCCESS; | ||
3714 | |||
3715 | wcode = (uint16_t *)ha->request_ring; | ||
3716 | *srisc_addr = 0; | ||
3717 | fwcode = (uint16_t *)blob->fw->data; | ||
3718 | fwclen = 0; | ||
3719 | |||
3720 | /* Validate firmware image by checking version. */ | ||
3721 | if (blob->fw->size < 8 * sizeof(uint16_t)) { | ||
3722 | qla_printk(KERN_WARNING, ha, | ||
3723 | "Unable to verify integrity of firmware image (%Zd)!\n", | ||
3724 | blob->fw->size); | ||
3725 | goto fail_fw_integrity; | ||
3726 | } | ||
3727 | for (i = 0; i < 4; i++) | ||
3728 | wcode[i] = be16_to_cpu(fwcode[i + 4]); | ||
3729 | if ((wcode[0] == 0xffff && wcode[1] == 0xffff && wcode[2] == 0xffff && | ||
3730 | wcode[3] == 0xffff) || (wcode[0] == 0 && wcode[1] == 0 && | ||
3731 | wcode[2] == 0 && wcode[3] == 0)) { | ||
3732 | qla_printk(KERN_WARNING, ha, | ||
3733 | "Unable to verify integrity of firmware image!\n"); | ||
3734 | qla_printk(KERN_WARNING, ha, | ||
3735 | "Firmware data: %04x %04x %04x %04x!\n", wcode[0], | ||
3736 | wcode[1], wcode[2], wcode[3]); | ||
3737 | goto fail_fw_integrity; | ||
3738 | } | ||
3739 | |||
3740 | seg = blob->segs; | ||
3741 | while (*seg && rval == QLA_SUCCESS) { | ||
3742 | risc_addr = *seg; | ||
3743 | *srisc_addr = *srisc_addr == 0 ? *seg : *srisc_addr; | ||
3744 | risc_size = be16_to_cpu(fwcode[3]); | ||
3745 | |||
3746 | /* Validate firmware image size. */ | ||
3747 | fwclen += risc_size * sizeof(uint16_t); | ||
3748 | if (blob->fw->size < fwclen) { | ||
3749 | qla_printk(KERN_WARNING, ha, | ||
3750 | "Unable to verify integrity of firmware image " | ||
3751 | "(%Zd)!\n", blob->fw->size); | ||
3752 | goto fail_fw_integrity; | ||
3753 | } | ||
3754 | |||
3755 | fragment = 0; | ||
3756 | while (risc_size > 0 && rval == QLA_SUCCESS) { | ||
3757 | wlen = (uint16_t)(ha->fw_transfer_size >> 1); | ||
3758 | if (wlen > risc_size) | ||
3759 | wlen = risc_size; | ||
3760 | |||
3761 | DEBUG7(printk("scsi(%ld): Loading risc segment@ risc " | ||
3762 | "addr %x, number of words 0x%x.\n", ha->host_no, | ||
3763 | risc_addr, wlen)); | ||
3764 | |||
3765 | for (i = 0; i < wlen; i++) | ||
3766 | wcode[i] = swab16(fwcode[i]); | ||
3767 | |||
3768 | rval = qla2x00_load_ram(ha, ha->request_dma, risc_addr, | ||
3769 | wlen); | ||
3770 | if (rval) { | ||
3771 | DEBUG(printk("scsi(%ld):[ERROR] Failed to load " | ||
3772 | "segment %d of firmware\n", ha->host_no, | ||
3773 | fragment)); | ||
3774 | qla_printk(KERN_WARNING, ha, | ||
3775 | "[ERROR] Failed to load segment %d of " | ||
3776 | "firmware\n", fragment); | ||
3777 | break; | ||
3778 | } | ||
3779 | |||
3780 | fwcode += wlen; | ||
3781 | risc_addr += wlen; | ||
3782 | risc_size -= wlen; | ||
3783 | fragment++; | ||
3784 | } | ||
3785 | |||
3786 | /* Next segment. */ | ||
3787 | seg++; | ||
3788 | } | ||
3789 | return rval; | ||
3790 | |||
3791 | fail_fw_integrity: | ||
3792 | return QLA_FUNCTION_FAILED; | ||
3793 | } | ||
3794 | |||
3795 | int | ||
3796 | qla24xx_load_risc(scsi_qla_host_t *ha, uint32_t *srisc_addr) | ||
3647 | { | 3797 | { |
3648 | int rval; | 3798 | int rval; |
3649 | int segments, fragment; | 3799 | int segments, fragment; |
@@ -3651,14 +3801,13 @@ qla24xx_load_risc_hotplug(scsi_qla_host_t *ha, uint32_t *srisc_addr) | |||
3651 | uint32_t risc_addr; | 3801 | uint32_t risc_addr; |
3652 | uint32_t risc_size; | 3802 | uint32_t risc_size; |
3653 | uint32_t i; | 3803 | uint32_t i; |
3654 | const struct firmware *fw_entry; | 3804 | struct fw_blob *blob; |
3655 | uint32_t *fwcode, fwclen; | 3805 | uint32_t *fwcode, fwclen; |
3656 | 3806 | ||
3657 | if (request_firmware(&fw_entry, ha->brd_info->fw_fname, | 3807 | /* Load firmware blob. */ |
3658 | &ha->pdev->dev)) { | 3808 | blob = qla2x00_request_firmware(ha); |
3659 | qla_printk(KERN_ERR, ha, | 3809 | if (!blob) { |
3660 | "Firmware image file not available: '%s'\n", | 3810 | qla_printk(KERN_ERR, ha, "Firmware image unavailable.\n"); |
3661 | ha->brd_info->fw_fname); | ||
3662 | return QLA_FUNCTION_FAILED; | 3811 | return QLA_FUNCTION_FAILED; |
3663 | } | 3812 | } |
3664 | 3813 | ||
@@ -3667,14 +3816,14 @@ qla24xx_load_risc_hotplug(scsi_qla_host_t *ha, uint32_t *srisc_addr) | |||
3667 | segments = FA_RISC_CODE_SEGMENTS; | 3816 | segments = FA_RISC_CODE_SEGMENTS; |
3668 | dcode = (uint32_t *)ha->request_ring; | 3817 | dcode = (uint32_t *)ha->request_ring; |
3669 | *srisc_addr = 0; | 3818 | *srisc_addr = 0; |
3670 | fwcode = (uint32_t *)fw_entry->data; | 3819 | fwcode = (uint32_t *)blob->fw->data; |
3671 | fwclen = 0; | 3820 | fwclen = 0; |
3672 | 3821 | ||
3673 | /* Validate firmware image by checking version. */ | 3822 | /* Validate firmware image by checking version. */ |
3674 | if (fw_entry->size < 8 * sizeof(uint32_t)) { | 3823 | if (blob->fw->size < 8 * sizeof(uint32_t)) { |
3675 | qla_printk(KERN_WARNING, ha, | 3824 | qla_printk(KERN_WARNING, ha, |
3676 | "Unable to verify integrity of flash firmware image " | 3825 | "Unable to verify integrity of firmware image (%Zd)!\n", |
3677 | "(%Zd)!\n", fw_entry->size); | 3826 | blob->fw->size); |
3678 | goto fail_fw_integrity; | 3827 | goto fail_fw_integrity; |
3679 | } | 3828 | } |
3680 | for (i = 0; i < 4; i++) | 3829 | for (i = 0; i < 4; i++) |
@@ -3684,7 +3833,7 @@ qla24xx_load_risc_hotplug(scsi_qla_host_t *ha, uint32_t *srisc_addr) | |||
3684 | (dcode[0] == 0 && dcode[1] == 0 && dcode[2] == 0 && | 3833 | (dcode[0] == 0 && dcode[1] == 0 && dcode[2] == 0 && |
3685 | dcode[3] == 0)) { | 3834 | dcode[3] == 0)) { |
3686 | qla_printk(KERN_WARNING, ha, | 3835 | qla_printk(KERN_WARNING, ha, |
3687 | "Unable to verify integrity of flash firmware image!\n"); | 3836 | "Unable to verify integrity of firmware image!\n"); |
3688 | qla_printk(KERN_WARNING, ha, | 3837 | qla_printk(KERN_WARNING, ha, |
3689 | "Firmware data: %08x %08x %08x %08x!\n", dcode[0], | 3838 | "Firmware data: %08x %08x %08x %08x!\n", dcode[0], |
3690 | dcode[1], dcode[2], dcode[3]); | 3839 | dcode[1], dcode[2], dcode[3]); |
@@ -3698,10 +3847,11 @@ qla24xx_load_risc_hotplug(scsi_qla_host_t *ha, uint32_t *srisc_addr) | |||
3698 | 3847 | ||
3699 | /* Validate firmware image size. */ | 3848 | /* Validate firmware image size. */ |
3700 | fwclen += risc_size * sizeof(uint32_t); | 3849 | fwclen += risc_size * sizeof(uint32_t); |
3701 | if (fw_entry->size < fwclen) { | 3850 | if (blob->fw->size < fwclen) { |
3702 | qla_printk(KERN_WARNING, ha, | 3851 | qla_printk(KERN_WARNING, ha, |
3703 | "Unable to verify integrity of flash firmware " | 3852 | "Unable to verify integrity of firmware image " |
3704 | "image (%Zd)!\n", fw_entry->size); | 3853 | "(%Zd)!\n", blob->fw->size); |
3854 | |||
3705 | goto fail_fw_integrity; | 3855 | goto fail_fw_integrity; |
3706 | } | 3856 | } |
3707 | 3857 | ||
@@ -3739,13 +3889,9 @@ qla24xx_load_risc_hotplug(scsi_qla_host_t *ha, uint32_t *srisc_addr) | |||
3739 | /* Next segment. */ | 3889 | /* Next segment. */ |
3740 | segments--; | 3890 | segments--; |
3741 | } | 3891 | } |
3742 | |||
3743 | release_firmware(fw_entry); | ||
3744 | return rval; | 3892 | return rval; |
3745 | 3893 | ||
3746 | fail_fw_integrity: | 3894 | fail_fw_integrity: |
3747 | |||
3748 | release_firmware(fw_entry); | ||
3749 | return QLA_FUNCTION_FAILED; | 3895 | return QLA_FUNCTION_FAILED; |
3750 | |||
3751 | } | 3896 | } |
3897 | #endif | ||
diff --git a/drivers/scsi/qla2xxx/qla_os.c b/drivers/scsi/qla2xxx/qla_os.c index c58c9d97b041..24304300d7b5 100644 --- a/drivers/scsi/qla2xxx/qla_os.c +++ b/drivers/scsi/qla2xxx/qla_os.c | |||
@@ -54,10 +54,12 @@ module_param(ql2xloginretrycount, int, S_IRUGO|S_IRUSR); | |||
54 | MODULE_PARM_DESC(ql2xloginretrycount, | 54 | MODULE_PARM_DESC(ql2xloginretrycount, |
55 | "Specify an alternate value for the NVRAM login retry count."); | 55 | "Specify an alternate value for the NVRAM login retry count."); |
56 | 56 | ||
57 | int ql2xfwloadbin=1; | 57 | #if defined(CONFIG_SCSI_QLA2XXX_EMBEDDED_FIRMWARE) |
58 | module_param(ql2xfwloadbin, int, S_IRUGO|S_IRUSR); | 58 | int ql2xfwloadflash; |
59 | MODULE_PARM_DESC(ql2xfwloadbin, | 59 | module_param(ql2xfwloadflash, int, S_IRUGO|S_IRUSR); |
60 | "Load ISP2xxx firmware image via hotplug."); | 60 | MODULE_PARM_DESC(ql2xfwloadflash, |
61 | "Load ISP24xx firmware image from FLASH (onboard memory)."); | ||
62 | #endif | ||
61 | 63 | ||
62 | static void qla2x00_free_device(scsi_qla_host_t *); | 64 | static void qla2x00_free_device(scsi_qla_host_t *); |
63 | 65 | ||
@@ -1261,12 +1263,16 @@ int qla2x00_probe_one(struct pci_dev *pdev, struct qla_board_info *brd_info) | |||
1261 | char pci_info[20]; | 1263 | char pci_info[20]; |
1262 | char fw_str[30]; | 1264 | char fw_str[30]; |
1263 | fc_port_t *fcport; | 1265 | fc_port_t *fcport; |
1266 | struct scsi_host_template *sht; | ||
1264 | 1267 | ||
1265 | if (pci_enable_device(pdev)) | 1268 | if (pci_enable_device(pdev)) |
1266 | goto probe_out; | 1269 | goto probe_out; |
1267 | 1270 | ||
1268 | host = scsi_host_alloc(brd_info->sht ? brd_info->sht: | 1271 | sht = &qla2x00_driver_template; |
1269 | &qla2x00_driver_template, sizeof(scsi_qla_host_t)); | 1272 | if (pdev->device == PCI_DEVICE_ID_QLOGIC_ISP2422 || |
1273 | pdev->device == PCI_DEVICE_ID_QLOGIC_ISP2432) | ||
1274 | sht = &qla24xx_driver_template; | ||
1275 | host = scsi_host_alloc(sht, sizeof(scsi_qla_host_t)); | ||
1270 | if (host == NULL) { | 1276 | if (host == NULL) { |
1271 | printk(KERN_WARNING | 1277 | printk(KERN_WARNING |
1272 | "qla2xxx: Couldn't allocate host from scsi layer!\n"); | 1278 | "qla2xxx: Couldn't allocate host from scsi layer!\n"); |
@@ -1291,8 +1297,8 @@ int qla2x00_probe_one(struct pci_dev *pdev, struct qla_board_info *brd_info) | |||
1291 | goto probe_failed; | 1297 | goto probe_failed; |
1292 | 1298 | ||
1293 | qla_printk(KERN_INFO, ha, | 1299 | qla_printk(KERN_INFO, ha, |
1294 | "Found an %s, irq %d, iobase 0x%p\n", ha->brd_info->isp_name, | 1300 | "Found an ISP%04X, irq %d, iobase 0x%p\n", pdev->device, pdev->irq, |
1295 | pdev->irq, ha->iobase); | 1301 | ha->iobase); |
1296 | 1302 | ||
1297 | spin_lock_init(&ha->hardware_lock); | 1303 | spin_lock_init(&ha->hardware_lock); |
1298 | 1304 | ||
@@ -1368,9 +1374,11 @@ int qla2x00_probe_one(struct pci_dev *pdev, struct qla_board_info *brd_info) | |||
1368 | ha->isp_ops.reset_adapter = qla24xx_reset_adapter; | 1374 | ha->isp_ops.reset_adapter = qla24xx_reset_adapter; |
1369 | ha->isp_ops.nvram_config = qla24xx_nvram_config; | 1375 | ha->isp_ops.nvram_config = qla24xx_nvram_config; |
1370 | ha->isp_ops.update_fw_options = qla24xx_update_fw_options; | 1376 | ha->isp_ops.update_fw_options = qla24xx_update_fw_options; |
1371 | ha->isp_ops.load_risc = qla24xx_load_risc_flash; | 1377 | ha->isp_ops.load_risc = qla24xx_load_risc; |
1372 | if (ql2xfwloadbin) | 1378 | #if defined(CONFIG_SCSI_QLA2XXX_EMBEDDED_FIRMWARE) |
1373 | ha->isp_ops.load_risc = qla24xx_load_risc_hotplug; | 1379 | if (ql2xfwloadflash) |
1380 | ha->isp_ops.load_risc = qla24xx_load_risc_flash; | ||
1381 | #endif | ||
1374 | ha->isp_ops.pci_info_str = qla24xx_pci_info_str; | 1382 | ha->isp_ops.pci_info_str = qla24xx_pci_info_str; |
1375 | ha->isp_ops.fw_version_str = qla24xx_fw_version_str; | 1383 | ha->isp_ops.fw_version_str = qla24xx_fw_version_str; |
1376 | ha->isp_ops.intr_handler = qla24xx_intr_handler; | 1384 | ha->isp_ops.intr_handler = qla24xx_intr_handler; |
@@ -1531,11 +1539,12 @@ int qla2x00_probe_one(struct pci_dev *pdev, struct qla_board_info *brd_info) | |||
1531 | qla_printk(KERN_INFO, ha, "\n" | 1539 | qla_printk(KERN_INFO, ha, "\n" |
1532 | " QLogic Fibre Channel HBA Driver: %s\n" | 1540 | " QLogic Fibre Channel HBA Driver: %s\n" |
1533 | " QLogic %s - %s\n" | 1541 | " QLogic %s - %s\n" |
1534 | " %s: %s @ %s hdma%c, host#=%ld, fw=%s\n", qla2x00_version_str, | 1542 | " ISP%04X: %s @ %s hdma%c, host#=%ld, fw=%s\n", |
1535 | ha->model_number, ha->model_desc ? ha->model_desc: "", | 1543 | qla2x00_version_str, ha->model_number, |
1536 | ha->brd_info->isp_name, ha->isp_ops.pci_info_str(ha, pci_info), | 1544 | ha->model_desc ? ha->model_desc: "", pdev->device, |
1537 | pci_name(pdev), ha->flags.enable_64bit_addressing ? '+': '-', | 1545 | ha->isp_ops.pci_info_str(ha, pci_info), pci_name(pdev), |
1538 | ha->host_no, ha->isp_ops.fw_version_str(ha, fw_str)); | 1546 | ha->flags.enable_64bit_addressing ? '+': '-', ha->host_no, |
1547 | ha->isp_ops.fw_version_str(ha, fw_str)); | ||
1539 | 1548 | ||
1540 | /* Go with fc_rport registration. */ | 1549 | /* Go with fc_rport registration. */ |
1541 | list_for_each_entry(fcport, &ha->fcports, list) | 1550 | list_for_each_entry(fcport, &ha->fcports, list) |
@@ -2483,45 +2492,115 @@ qla2x00_down_timeout(struct semaphore *sema, unsigned long timeout) | |||
2483 | return -ETIMEDOUT; | 2492 | return -ETIMEDOUT; |
2484 | } | 2493 | } |
2485 | 2494 | ||
2486 | static struct qla_board_info qla_board_tbl[] = { | 2495 | #if defined(CONFIG_SCSI_QLA2XXX_EMBEDDED_FIRMWARE) |
2487 | { | 2496 | |
2488 | .drv_name = "qla2400", | 2497 | #define qla2x00_release_firmware() do { } while (0) |
2489 | .isp_name = "ISP2422", | 2498 | #define qla2x00_pci_module_init() (0) |
2490 | .fw_fname = "ql2400_fw.bin", | 2499 | #define qla2x00_pci_module_exit() do { } while (0) |
2491 | .sht = &qla24xx_driver_template, | 2500 | |
2492 | }, | 2501 | #else /* !defined(CONFIG_SCSI_QLA2XXX_EMBEDDED_FIRMWARE) */ |
2493 | { | 2502 | |
2494 | .drv_name = "qla2400", | 2503 | /* Firmware interface routines. */ |
2495 | .isp_name = "ISP2432", | 2504 | |
2496 | .fw_fname = "ql2400_fw.bin", | 2505 | #define FW_BLOBS 6 |
2497 | .sht = &qla24xx_driver_template, | 2506 | #define FW_ISP21XX 0 |
2498 | }, | 2507 | #define FW_ISP22XX 1 |
2508 | #define FW_ISP2300 2 | ||
2509 | #define FW_ISP2322 3 | ||
2510 | #define FW_ISP63XX 4 | ||
2511 | #define FW_ISP24XX 5 | ||
2512 | |||
2513 | static DECLARE_MUTEX(qla_fw_lock); | ||
2514 | |||
2515 | static struct fw_blob qla_fw_blobs[FW_BLOBS] = { | ||
2516 | { .name = "ql2100_fw.bin", .segs = { 0x1000, 0 }, }, | ||
2517 | { .name = "ql2200_fw.bin", .segs = { 0x1000, 0 }, }, | ||
2518 | { .name = "ql2300_fw.bin", .segs = { 0x800, 0 }, }, | ||
2519 | { .name = "ql2322_fw.bin", .segs = { 0x800, 0x1c000, 0x1e000, 0 }, }, | ||
2520 | { .name = "ql6312_fw.bin", .segs = { 0x800, 0 }, }, | ||
2521 | { .name = "ql2400_fw.bin", }, | ||
2522 | }; | ||
2523 | |||
2524 | struct fw_blob * | ||
2525 | qla2x00_request_firmware(scsi_qla_host_t *ha) | ||
2526 | { | ||
2527 | struct fw_blob *blob; | ||
2528 | |||
2529 | blob = NULL; | ||
2530 | if (IS_QLA2100(ha)) { | ||
2531 | blob = &qla_fw_blobs[FW_ISP21XX]; | ||
2532 | } else if (IS_QLA2200(ha)) { | ||
2533 | blob = &qla_fw_blobs[FW_ISP22XX]; | ||
2534 | } else if (IS_QLA2300(ha) || IS_QLA2312(ha)) { | ||
2535 | blob = &qla_fw_blobs[FW_ISP2300]; | ||
2536 | } else if (IS_QLA2322(ha)) { | ||
2537 | blob = &qla_fw_blobs[FW_ISP2322]; | ||
2538 | } else if (IS_QLA6312(ha) || IS_QLA6322(ha)) { | ||
2539 | blob = &qla_fw_blobs[FW_ISP63XX]; | ||
2540 | } else if (IS_QLA24XX(ha)) { | ||
2541 | blob = &qla_fw_blobs[FW_ISP24XX]; | ||
2542 | } | ||
2543 | |||
2544 | down(&qla_fw_lock); | ||
2545 | if (blob->fw) | ||
2546 | goto out; | ||
2547 | |||
2548 | if (request_firmware(&blob->fw, blob->name, &ha->pdev->dev)) { | ||
2549 | DEBUG2(printk("scsi(%ld): Failed to load firmware image " | ||
2550 | "(%s).\n", ha->host_no, blob->name)); | ||
2551 | blob->fw = NULL; | ||
2552 | blob = NULL; | ||
2553 | goto out; | ||
2554 | } | ||
2555 | |||
2556 | out: | ||
2557 | up(&qla_fw_lock); | ||
2558 | return blob; | ||
2559 | } | ||
2560 | |||
2561 | static void | ||
2562 | qla2x00_release_firmware(void) | ||
2563 | { | ||
2564 | int idx; | ||
2565 | |||
2566 | down(&qla_fw_lock); | ||
2567 | for (idx = 0; idx < FW_BLOBS; idx++) | ||
2568 | if (qla_fw_blobs[idx].fw) | ||
2569 | release_firmware(qla_fw_blobs[idx].fw); | ||
2570 | up(&qla_fw_lock); | ||
2571 | } | ||
2572 | |||
2573 | static struct qla_board_info qla_board_tbl = { | ||
2574 | .drv_name = "qla2xxx", | ||
2499 | }; | 2575 | }; |
2500 | 2576 | ||
2501 | static struct pci_device_id qla2xxx_pci_tbl[] = { | 2577 | static struct pci_device_id qla2xxx_pci_tbl[] = { |
2502 | { | 2578 | { PCI_VENDOR_ID_QLOGIC, PCI_DEVICE_ID_QLOGIC_ISP2100, |
2503 | .vendor = PCI_VENDOR_ID_QLOGIC, | 2579 | PCI_ANY_ID, PCI_ANY_ID, }, |
2504 | .device = PCI_DEVICE_ID_QLOGIC_ISP2422, | 2580 | { PCI_VENDOR_ID_QLOGIC, PCI_DEVICE_ID_QLOGIC_ISP2200, |
2505 | .subvendor = PCI_ANY_ID, | 2581 | PCI_ANY_ID, PCI_ANY_ID, }, |
2506 | .subdevice = PCI_ANY_ID, | 2582 | { PCI_VENDOR_ID_QLOGIC, PCI_DEVICE_ID_QLOGIC_ISP2300, |
2507 | .driver_data = (unsigned long)&qla_board_tbl[0], | 2583 | PCI_ANY_ID, PCI_ANY_ID, }, |
2508 | }, | 2584 | { PCI_VENDOR_ID_QLOGIC, PCI_DEVICE_ID_QLOGIC_ISP2312, |
2509 | { | 2585 | PCI_ANY_ID, PCI_ANY_ID, }, |
2510 | .vendor = PCI_VENDOR_ID_QLOGIC, | 2586 | { PCI_VENDOR_ID_QLOGIC, PCI_DEVICE_ID_QLOGIC_ISP2322, |
2511 | .device = PCI_DEVICE_ID_QLOGIC_ISP2432, | 2587 | PCI_ANY_ID, PCI_ANY_ID, }, |
2512 | .subvendor = PCI_ANY_ID, | 2588 | { PCI_VENDOR_ID_QLOGIC, PCI_DEVICE_ID_QLOGIC_ISP6312, |
2513 | .subdevice = PCI_ANY_ID, | 2589 | PCI_ANY_ID, PCI_ANY_ID, }, |
2514 | .driver_data = (unsigned long)&qla_board_tbl[1], | 2590 | { PCI_VENDOR_ID_QLOGIC, PCI_DEVICE_ID_QLOGIC_ISP6322, |
2515 | }, | 2591 | PCI_ANY_ID, PCI_ANY_ID, }, |
2516 | {0, 0}, | 2592 | { PCI_VENDOR_ID_QLOGIC, PCI_DEVICE_ID_QLOGIC_ISP2422, |
2593 | PCI_ANY_ID, PCI_ANY_ID, }, | ||
2594 | { PCI_VENDOR_ID_QLOGIC, PCI_DEVICE_ID_QLOGIC_ISP2432, | ||
2595 | PCI_ANY_ID, PCI_ANY_ID, }, | ||
2596 | { 0 }, | ||
2517 | }; | 2597 | }; |
2518 | MODULE_DEVICE_TABLE(pci, qla2xxx_pci_tbl); | 2598 | MODULE_DEVICE_TABLE(pci, qla2xxx_pci_tbl); |
2519 | 2599 | ||
2520 | static int __devinit | 2600 | static int __devinit |
2521 | qla2xxx_probe_one(struct pci_dev *pdev, const struct pci_device_id *id) | 2601 | qla2xxx_probe_one(struct pci_dev *pdev, const struct pci_device_id *id) |
2522 | { | 2602 | { |
2523 | return qla2x00_probe_one(pdev, | 2603 | return qla2x00_probe_one(pdev, &qla_board_tbl); |
2524 | (struct qla_board_info *)id->driver_data); | ||
2525 | } | 2604 | } |
2526 | 2605 | ||
2527 | static void __devexit | 2606 | static void __devexit |
@@ -2532,11 +2611,28 @@ qla2xxx_remove_one(struct pci_dev *pdev) | |||
2532 | 2611 | ||
2533 | static struct pci_driver qla2xxx_pci_driver = { | 2612 | static struct pci_driver qla2xxx_pci_driver = { |
2534 | .name = "qla2xxx", | 2613 | .name = "qla2xxx", |
2614 | .driver = { | ||
2615 | .owner = THIS_MODULE, | ||
2616 | }, | ||
2535 | .id_table = qla2xxx_pci_tbl, | 2617 | .id_table = qla2xxx_pci_tbl, |
2536 | .probe = qla2xxx_probe_one, | 2618 | .probe = qla2xxx_probe_one, |
2537 | .remove = __devexit_p(qla2xxx_remove_one), | 2619 | .remove = __devexit_p(qla2xxx_remove_one), |
2538 | }; | 2620 | }; |
2539 | 2621 | ||
2622 | static inline int | ||
2623 | qla2x00_pci_module_init(void) | ||
2624 | { | ||
2625 | return pci_module_init(&qla2xxx_pci_driver); | ||
2626 | } | ||
2627 | |||
2628 | static inline void | ||
2629 | qla2x00_pci_module_exit(void) | ||
2630 | { | ||
2631 | pci_unregister_driver(&qla2xxx_pci_driver); | ||
2632 | } | ||
2633 | |||
2634 | #endif | ||
2635 | |||
2540 | /** | 2636 | /** |
2541 | * qla2x00_module_init - Module initialization. | 2637 | * qla2x00_module_init - Module initialization. |
2542 | **/ | 2638 | **/ |
@@ -2556,6 +2652,9 @@ qla2x00_module_init(void) | |||
2556 | 2652 | ||
2557 | /* Derive version string. */ | 2653 | /* Derive version string. */ |
2558 | strcpy(qla2x00_version_str, QLA2XXX_VERSION); | 2654 | strcpy(qla2x00_version_str, QLA2XXX_VERSION); |
2655 | #if defined(CONFIG_SCSI_QLA2XXX_EMBEDDED_FIRMWARE) | ||
2656 | strcat(qla2x00_version_str, "-fw"); | ||
2657 | #endif | ||
2559 | #if DEBUG_QLA2100 | 2658 | #if DEBUG_QLA2100 |
2560 | strcat(qla2x00_version_str, "-debug"); | 2659 | strcat(qla2x00_version_str, "-debug"); |
2561 | #endif | 2660 | #endif |
@@ -2565,7 +2664,7 @@ qla2x00_module_init(void) | |||
2565 | return -ENODEV; | 2664 | return -ENODEV; |
2566 | 2665 | ||
2567 | printk(KERN_INFO "QLogic Fibre Channel HBA Driver\n"); | 2666 | printk(KERN_INFO "QLogic Fibre Channel HBA Driver\n"); |
2568 | ret = pci_module_init(&qla2xxx_pci_driver); | 2667 | ret = qla2x00_pci_module_init(); |
2569 | if (ret) { | 2668 | if (ret) { |
2570 | kmem_cache_destroy(srb_cachep); | 2669 | kmem_cache_destroy(srb_cachep); |
2571 | fc_release_transport(qla2xxx_transport_template); | 2670 | fc_release_transport(qla2xxx_transport_template); |
@@ -2579,7 +2678,8 @@ qla2x00_module_init(void) | |||
2579 | static void __exit | 2678 | static void __exit |
2580 | qla2x00_module_exit(void) | 2679 | qla2x00_module_exit(void) |
2581 | { | 2680 | { |
2582 | pci_unregister_driver(&qla2xxx_pci_driver); | 2681 | qla2x00_pci_module_exit(); |
2682 | qla2x00_release_firmware(); | ||
2583 | kmem_cache_destroy(srb_cachep); | 2683 | kmem_cache_destroy(srb_cachep); |
2584 | fc_release_transport(qla2xxx_transport_template); | 2684 | fc_release_transport(qla2xxx_transport_template); |
2585 | } | 2685 | } |
diff --git a/drivers/scsi/raid_class.c b/drivers/scsi/raid_class.c index 5b1c12041a4f..5ec5f44602ac 100644 --- a/drivers/scsi/raid_class.c +++ b/drivers/scsi/raid_class.c | |||
@@ -115,7 +115,7 @@ static DECLARE_TRANSPORT_CLASS(raid_class, | |||
115 | raid_remove, | 115 | raid_remove, |
116 | NULL); | 116 | NULL); |
117 | 117 | ||
118 | static struct { | 118 | static const struct { |
119 | enum raid_state value; | 119 | enum raid_state value; |
120 | char *name; | 120 | char *name; |
121 | } raid_states[] = { | 121 | } raid_states[] = { |
diff --git a/drivers/scsi/scsi_devinfo.c b/drivers/scsi/scsi_devinfo.c index e69477d1889b..f01ec0a7c506 100644 --- a/drivers/scsi/scsi_devinfo.c +++ b/drivers/scsi/scsi_devinfo.c | |||
@@ -354,8 +354,9 @@ static int scsi_dev_info_list_add_str(char *dev_list) | |||
354 | * @model, if found, return the matching flags value, else return | 354 | * @model, if found, return the matching flags value, else return |
355 | * the host or global default settings. | 355 | * the host or global default settings. |
356 | **/ | 356 | **/ |
357 | int scsi_get_device_flags(struct scsi_device *sdev, unsigned char *vendor, | 357 | int scsi_get_device_flags(struct scsi_device *sdev, |
358 | unsigned char *model) | 358 | const unsigned char *vendor, |
359 | const unsigned char *model) | ||
359 | { | 360 | { |
360 | struct scsi_dev_info_list *devinfo; | 361 | struct scsi_dev_info_list *devinfo; |
361 | unsigned int bflags; | 362 | unsigned int bflags; |
diff --git a/drivers/scsi/scsi_error.c b/drivers/scsi/scsi_error.c index c0ae9e965f6f..a2333d2c7af0 100644 --- a/drivers/scsi/scsi_error.c +++ b/drivers/scsi/scsi_error.c | |||
@@ -1320,23 +1320,6 @@ int scsi_decide_disposition(struct scsi_cmnd *scmd) | |||
1320 | } | 1320 | } |
1321 | 1321 | ||
1322 | /** | 1322 | /** |
1323 | * scsi_eh_lock_done - done function for eh door lock request | ||
1324 | * @scmd: SCSI command block for the door lock request | ||
1325 | * | ||
1326 | * Notes: | ||
1327 | * We completed the asynchronous door lock request, and it has either | ||
1328 | * locked the door or failed. We must free the command structures | ||
1329 | * associated with this request. | ||
1330 | **/ | ||
1331 | static void scsi_eh_lock_done(struct scsi_cmnd *scmd) | ||
1332 | { | ||
1333 | struct scsi_request *sreq = scmd->sc_request; | ||
1334 | |||
1335 | scsi_release_request(sreq); | ||
1336 | } | ||
1337 | |||
1338 | |||
1339 | /** | ||
1340 | * scsi_eh_lock_door - Prevent medium removal for the specified device | 1323 | * scsi_eh_lock_door - Prevent medium removal for the specified device |
1341 | * @sdev: SCSI device to prevent medium removal | 1324 | * @sdev: SCSI device to prevent medium removal |
1342 | * | 1325 | * |
@@ -1358,29 +1341,17 @@ static void scsi_eh_lock_done(struct scsi_cmnd *scmd) | |||
1358 | **/ | 1341 | **/ |
1359 | static void scsi_eh_lock_door(struct scsi_device *sdev) | 1342 | static void scsi_eh_lock_door(struct scsi_device *sdev) |
1360 | { | 1343 | { |
1361 | struct scsi_request *sreq = scsi_allocate_request(sdev, GFP_KERNEL); | 1344 | unsigned char cmnd[MAX_COMMAND_SIZE]; |
1362 | 1345 | ||
1363 | if (unlikely(!sreq)) { | 1346 | cmnd[0] = ALLOW_MEDIUM_REMOVAL; |
1364 | printk(KERN_ERR "%s: request allocate failed," | 1347 | cmnd[1] = 0; |
1365 | "prevent media removal cmd not sent\n", __FUNCTION__); | 1348 | cmnd[2] = 0; |
1366 | return; | 1349 | cmnd[3] = 0; |
1367 | } | 1350 | cmnd[4] = SCSI_REMOVAL_PREVENT; |
1351 | cmnd[5] = 0; | ||
1368 | 1352 | ||
1369 | sreq->sr_cmnd[0] = ALLOW_MEDIUM_REMOVAL; | 1353 | scsi_execute_async(sdev, cmnd, DMA_NONE, NULL, 0, 0, 10 * HZ, |
1370 | sreq->sr_cmnd[1] = 0; | 1354 | 5, NULL, NULL, GFP_KERNEL); |
1371 | sreq->sr_cmnd[2] = 0; | ||
1372 | sreq->sr_cmnd[3] = 0; | ||
1373 | sreq->sr_cmnd[4] = SCSI_REMOVAL_PREVENT; | ||
1374 | sreq->sr_cmnd[5] = 0; | ||
1375 | sreq->sr_data_direction = DMA_NONE; | ||
1376 | sreq->sr_bufflen = 0; | ||
1377 | sreq->sr_buffer = NULL; | ||
1378 | sreq->sr_allowed = 5; | ||
1379 | sreq->sr_done = scsi_eh_lock_done; | ||
1380 | sreq->sr_timeout_per_command = 10 * HZ; | ||
1381 | sreq->sr_cmd_len = COMMAND_SIZE(sreq->sr_cmnd[0]); | ||
1382 | |||
1383 | scsi_insert_special_req(sreq, 1); | ||
1384 | } | 1355 | } |
1385 | 1356 | ||
1386 | 1357 | ||
diff --git a/drivers/scsi/scsi_lib.c b/drivers/scsi/scsi_lib.c index dc249cb970ea..a7f3f0c84db7 100644 --- a/drivers/scsi/scsi_lib.c +++ b/drivers/scsi/scsi_lib.c | |||
@@ -63,39 +63,6 @@ static struct scsi_host_sg_pool scsi_sg_pools[] = { | |||
63 | }; | 63 | }; |
64 | #undef SP | 64 | #undef SP |
65 | 65 | ||
66 | |||
67 | /* | ||
68 | * Function: scsi_insert_special_req() | ||
69 | * | ||
70 | * Purpose: Insert pre-formed request into request queue. | ||
71 | * | ||
72 | * Arguments: sreq - request that is ready to be queued. | ||
73 | * at_head - boolean. True if we should insert at head | ||
74 | * of queue, false if we should insert at tail. | ||
75 | * | ||
76 | * Lock status: Assumed that lock is not held upon entry. | ||
77 | * | ||
78 | * Returns: Nothing | ||
79 | * | ||
80 | * Notes: This function is called from character device and from | ||
81 | * ioctl types of functions where the caller knows exactly | ||
82 | * what SCSI command needs to be issued. The idea is that | ||
83 | * we merely inject the command into the queue (at the head | ||
84 | * for now), and then call the queue request function to actually | ||
85 | * process it. | ||
86 | */ | ||
87 | int scsi_insert_special_req(struct scsi_request *sreq, int at_head) | ||
88 | { | ||
89 | /* | ||
90 | * Because users of this function are apt to reuse requests with no | ||
91 | * modification, we have to sanitise the request flags here | ||
92 | */ | ||
93 | sreq->sr_request->flags &= ~REQ_DONTPREP; | ||
94 | blk_insert_request(sreq->sr_device->request_queue, sreq->sr_request, | ||
95 | at_head, sreq); | ||
96 | return 0; | ||
97 | } | ||
98 | |||
99 | static void scsi_run_queue(struct request_queue *q); | 66 | static void scsi_run_queue(struct request_queue *q); |
100 | 67 | ||
101 | /* | 68 | /* |
@@ -249,8 +216,13 @@ void scsi_do_req(struct scsi_request *sreq, const void *cmnd, | |||
249 | 216 | ||
250 | /* | 217 | /* |
251 | * head injection *required* here otherwise quiesce won't work | 218 | * head injection *required* here otherwise quiesce won't work |
219 | * | ||
220 | * Because users of this function are apt to reuse requests with no | ||
221 | * modification, we have to sanitise the request flags here | ||
252 | */ | 222 | */ |
253 | scsi_insert_special_req(sreq, 1); | 223 | sreq->sr_request->flags &= ~REQ_DONTPREP; |
224 | blk_insert_request(sreq->sr_device->request_queue, sreq->sr_request, | ||
225 | 1, sreq); | ||
254 | } | 226 | } |
255 | EXPORT_SYMBOL(scsi_do_req); | 227 | EXPORT_SYMBOL(scsi_do_req); |
256 | 228 | ||
@@ -287,6 +259,7 @@ int scsi_execute(struct scsi_device *sdev, const unsigned char *cmd, | |||
287 | memcpy(req->cmd, cmd, req->cmd_len); | 259 | memcpy(req->cmd, cmd, req->cmd_len); |
288 | req->sense = sense; | 260 | req->sense = sense; |
289 | req->sense_len = 0; | 261 | req->sense_len = 0; |
262 | req->retries = retries; | ||
290 | req->timeout = timeout; | 263 | req->timeout = timeout; |
291 | req->flags |= flags | REQ_BLOCK_PC | REQ_SPECIAL | REQ_QUIET; | 264 | req->flags |= flags | REQ_BLOCK_PC | REQ_SPECIAL | REQ_QUIET; |
292 | 265 | ||
@@ -327,6 +300,200 @@ int scsi_execute_req(struct scsi_device *sdev, const unsigned char *cmd, | |||
327 | } | 300 | } |
328 | EXPORT_SYMBOL(scsi_execute_req); | 301 | EXPORT_SYMBOL(scsi_execute_req); |
329 | 302 | ||
303 | struct scsi_io_context { | ||
304 | void *data; | ||
305 | void (*done)(void *data, char *sense, int result, int resid); | ||
306 | char sense[SCSI_SENSE_BUFFERSIZE]; | ||
307 | }; | ||
308 | |||
309 | static kmem_cache_t *scsi_io_context_cache; | ||
310 | |||
311 | static void scsi_end_async(struct request *req) | ||
312 | { | ||
313 | struct scsi_io_context *sioc = req->end_io_data; | ||
314 | |||
315 | if (sioc->done) | ||
316 | sioc->done(sioc->data, sioc->sense, req->errors, req->data_len); | ||
317 | |||
318 | kmem_cache_free(scsi_io_context_cache, sioc); | ||
319 | __blk_put_request(req->q, req); | ||
320 | } | ||
321 | |||
322 | static int scsi_merge_bio(struct request *rq, struct bio *bio) | ||
323 | { | ||
324 | struct request_queue *q = rq->q; | ||
325 | |||
326 | bio->bi_flags &= ~(1 << BIO_SEG_VALID); | ||
327 | if (rq_data_dir(rq) == WRITE) | ||
328 | bio->bi_rw |= (1 << BIO_RW); | ||
329 | blk_queue_bounce(q, &bio); | ||
330 | |||
331 | if (!rq->bio) | ||
332 | blk_rq_bio_prep(q, rq, bio); | ||
333 | else if (!q->back_merge_fn(q, rq, bio)) | ||
334 | return -EINVAL; | ||
335 | else { | ||
336 | rq->biotail->bi_next = bio; | ||
337 | rq->biotail = bio; | ||
338 | rq->hard_nr_sectors += bio_sectors(bio); | ||
339 | rq->nr_sectors = rq->hard_nr_sectors; | ||
340 | } | ||
341 | |||
342 | return 0; | ||
343 | } | ||
344 | |||
345 | static int scsi_bi_endio(struct bio *bio, unsigned int bytes_done, int error) | ||
346 | { | ||
347 | if (bio->bi_size) | ||
348 | return 1; | ||
349 | |||
350 | bio_put(bio); | ||
351 | return 0; | ||
352 | } | ||
353 | |||
354 | /** | ||
355 | * scsi_req_map_sg - map a scatterlist into a request | ||
356 | * @rq: request to fill | ||
357 | * @sg: scatterlist | ||
358 | * @nsegs: number of elements | ||
359 | * @bufflen: len of buffer | ||
360 | * @gfp: memory allocation flags | ||
361 | * | ||
362 | * scsi_req_map_sg maps a scatterlist into a request so that the | ||
363 | * request can be sent to the block layer. We do not trust the scatterlist | ||
364 | * sent to use, as some ULDs use that struct to only organize the pages. | ||
365 | */ | ||
366 | static int scsi_req_map_sg(struct request *rq, struct scatterlist *sgl, | ||
367 | int nsegs, unsigned bufflen, gfp_t gfp) | ||
368 | { | ||
369 | struct request_queue *q = rq->q; | ||
370 | int nr_pages = (bufflen + PAGE_SIZE - 1) >> PAGE_SHIFT; | ||
371 | unsigned int data_len = 0, len, bytes, off; | ||
372 | struct page *page; | ||
373 | struct bio *bio = NULL; | ||
374 | int i, err, nr_vecs = 0; | ||
375 | |||
376 | for (i = 0; i < nsegs; i++) { | ||
377 | page = sgl[i].page; | ||
378 | off = sgl[i].offset; | ||
379 | len = sgl[i].length; | ||
380 | data_len += len; | ||
381 | |||
382 | while (len > 0) { | ||
383 | bytes = min_t(unsigned int, len, PAGE_SIZE - off); | ||
384 | |||
385 | if (!bio) { | ||
386 | nr_vecs = min_t(int, BIO_MAX_PAGES, nr_pages); | ||
387 | nr_pages -= nr_vecs; | ||
388 | |||
389 | bio = bio_alloc(gfp, nr_vecs); | ||
390 | if (!bio) { | ||
391 | err = -ENOMEM; | ||
392 | goto free_bios; | ||
393 | } | ||
394 | bio->bi_end_io = scsi_bi_endio; | ||
395 | } | ||
396 | |||
397 | if (bio_add_pc_page(q, bio, page, bytes, off) != | ||
398 | bytes) { | ||
399 | bio_put(bio); | ||
400 | err = -EINVAL; | ||
401 | goto free_bios; | ||
402 | } | ||
403 | |||
404 | if (bio->bi_vcnt >= nr_vecs) { | ||
405 | err = scsi_merge_bio(rq, bio); | ||
406 | if (err) { | ||
407 | bio_endio(bio, bio->bi_size, 0); | ||
408 | goto free_bios; | ||
409 | } | ||
410 | bio = NULL; | ||
411 | } | ||
412 | |||
413 | page++; | ||
414 | len -= bytes; | ||
415 | off = 0; | ||
416 | } | ||
417 | } | ||
418 | |||
419 | rq->buffer = rq->data = NULL; | ||
420 | rq->data_len = data_len; | ||
421 | return 0; | ||
422 | |||
423 | free_bios: | ||
424 | while ((bio = rq->bio) != NULL) { | ||
425 | rq->bio = bio->bi_next; | ||
426 | /* | ||
427 | * call endio instead of bio_put incase it was bounced | ||
428 | */ | ||
429 | bio_endio(bio, bio->bi_size, 0); | ||
430 | } | ||
431 | |||
432 | return err; | ||
433 | } | ||
434 | |||
435 | /** | ||
436 | * scsi_execute_async - insert request | ||
437 | * @sdev: scsi device | ||
438 | * @cmd: scsi command | ||
439 | * @data_direction: data direction | ||
440 | * @buffer: data buffer (this can be a kernel buffer or scatterlist) | ||
441 | * @bufflen: len of buffer | ||
442 | * @use_sg: if buffer is a scatterlist this is the number of elements | ||
443 | * @timeout: request timeout in seconds | ||
444 | * @retries: number of times to retry request | ||
445 | * @flags: or into request flags | ||
446 | **/ | ||
447 | int scsi_execute_async(struct scsi_device *sdev, const unsigned char *cmd, | ||
448 | int data_direction, void *buffer, unsigned bufflen, | ||
449 | int use_sg, int timeout, int retries, void *privdata, | ||
450 | void (*done)(void *, char *, int, int), gfp_t gfp) | ||
451 | { | ||
452 | struct request *req; | ||
453 | struct scsi_io_context *sioc; | ||
454 | int err = 0; | ||
455 | int write = (data_direction == DMA_TO_DEVICE); | ||
456 | |||
457 | sioc = kmem_cache_alloc(scsi_io_context_cache, gfp); | ||
458 | if (!sioc) | ||
459 | return DRIVER_ERROR << 24; | ||
460 | memset(sioc, 0, sizeof(*sioc)); | ||
461 | |||
462 | req = blk_get_request(sdev->request_queue, write, gfp); | ||
463 | if (!req) | ||
464 | goto free_sense; | ||
465 | req->flags |= REQ_BLOCK_PC | REQ_QUIET; | ||
466 | |||
467 | if (use_sg) | ||
468 | err = scsi_req_map_sg(req, buffer, use_sg, bufflen, gfp); | ||
469 | else if (bufflen) | ||
470 | err = blk_rq_map_kern(req->q, req, buffer, bufflen, gfp); | ||
471 | |||
472 | if (err) | ||
473 | goto free_req; | ||
474 | |||
475 | req->cmd_len = COMMAND_SIZE(cmd[0]); | ||
476 | memcpy(req->cmd, cmd, req->cmd_len); | ||
477 | req->sense = sioc->sense; | ||
478 | req->sense_len = 0; | ||
479 | req->timeout = timeout; | ||
480 | req->retries = retries; | ||
481 | req->end_io_data = sioc; | ||
482 | |||
483 | sioc->data = privdata; | ||
484 | sioc->done = done; | ||
485 | |||
486 | blk_execute_rq_nowait(req->q, NULL, req, 1, scsi_end_async); | ||
487 | return 0; | ||
488 | |||
489 | free_req: | ||
490 | blk_put_request(req); | ||
491 | free_sense: | ||
492 | kfree(sioc); | ||
493 | return DRIVER_ERROR << 24; | ||
494 | } | ||
495 | EXPORT_SYMBOL_GPL(scsi_execute_async); | ||
496 | |||
330 | /* | 497 | /* |
331 | * Function: scsi_init_cmd_errh() | 498 | * Function: scsi_init_cmd_errh() |
332 | * | 499 | * |
@@ -884,7 +1051,8 @@ void scsi_io_completion(struct scsi_cmnd *cmd, unsigned int good_bytes, | |||
884 | * system where READ CAPACITY failed, we may have read | 1051 | * system where READ CAPACITY failed, we may have read |
885 | * past the end of the disk. | 1052 | * past the end of the disk. |
886 | */ | 1053 | */ |
887 | if (cmd->device->use_10_for_rw && | 1054 | if ((cmd->device->use_10_for_rw && |
1055 | sshdr.asc == 0x20 && sshdr.ascq == 0x00) && | ||
888 | (cmd->cmnd[0] == READ_10 || | 1056 | (cmd->cmnd[0] == READ_10 || |
889 | cmd->cmnd[0] == WRITE_10)) { | 1057 | cmd->cmnd[0] == WRITE_10)) { |
890 | cmd->device->use_10_for_rw = 0; | 1058 | cmd->device->use_10_for_rw = 0; |
@@ -1082,10 +1250,16 @@ static int scsi_issue_flush_fn(request_queue_t *q, struct gendisk *disk, | |||
1082 | static void scsi_generic_done(struct scsi_cmnd *cmd) | 1250 | static void scsi_generic_done(struct scsi_cmnd *cmd) |
1083 | { | 1251 | { |
1084 | BUG_ON(!blk_pc_request(cmd->request)); | 1252 | BUG_ON(!blk_pc_request(cmd->request)); |
1085 | scsi_io_completion(cmd, cmd->result == 0 ? cmd->bufflen : 0, 0); | 1253 | /* |
1254 | * This will complete the whole command with uptodate=1 so | ||
1255 | * as far as the block layer is concerned the command completed | ||
1256 | * successfully. Since this is a REQ_BLOCK_PC command the | ||
1257 | * caller should check the request's errors value | ||
1258 | */ | ||
1259 | scsi_io_completion(cmd, cmd->bufflen, 0); | ||
1086 | } | 1260 | } |
1087 | 1261 | ||
1088 | void scsi_setup_blk_pc_cmnd(struct scsi_cmnd *cmd, int retries) | 1262 | void scsi_setup_blk_pc_cmnd(struct scsi_cmnd *cmd) |
1089 | { | 1263 | { |
1090 | struct request *req = cmd->request; | 1264 | struct request *req = cmd->request; |
1091 | 1265 | ||
@@ -1100,7 +1274,7 @@ void scsi_setup_blk_pc_cmnd(struct scsi_cmnd *cmd, int retries) | |||
1100 | cmd->sc_data_direction = DMA_FROM_DEVICE; | 1274 | cmd->sc_data_direction = DMA_FROM_DEVICE; |
1101 | 1275 | ||
1102 | cmd->transfersize = req->data_len; | 1276 | cmd->transfersize = req->data_len; |
1103 | cmd->allowed = retries; | 1277 | cmd->allowed = req->retries; |
1104 | cmd->timeout_per_command = req->timeout; | 1278 | cmd->timeout_per_command = req->timeout; |
1105 | } | 1279 | } |
1106 | EXPORT_SYMBOL_GPL(scsi_setup_blk_pc_cmnd); | 1280 | EXPORT_SYMBOL_GPL(scsi_setup_blk_pc_cmnd); |
@@ -1240,7 +1414,7 @@ static int scsi_prep_fn(struct request_queue *q, struct request *req) | |||
1240 | goto kill; | 1414 | goto kill; |
1241 | } | 1415 | } |
1242 | } else { | 1416 | } else { |
1243 | scsi_setup_blk_pc_cmnd(cmd, 3); | 1417 | scsi_setup_blk_pc_cmnd(cmd); |
1244 | cmd->done = scsi_generic_done; | 1418 | cmd->done = scsi_generic_done; |
1245 | } | 1419 | } |
1246 | } | 1420 | } |
@@ -1603,6 +1777,14 @@ int __init scsi_init_queue(void) | |||
1603 | { | 1777 | { |
1604 | int i; | 1778 | int i; |
1605 | 1779 | ||
1780 | scsi_io_context_cache = kmem_cache_create("scsi_io_context", | ||
1781 | sizeof(struct scsi_io_context), | ||
1782 | 0, 0, NULL, NULL); | ||
1783 | if (!scsi_io_context_cache) { | ||
1784 | printk(KERN_ERR "SCSI: can't init scsi io context cache\n"); | ||
1785 | return -ENOMEM; | ||
1786 | } | ||
1787 | |||
1606 | for (i = 0; i < SG_MEMPOOL_NR; i++) { | 1788 | for (i = 0; i < SG_MEMPOOL_NR; i++) { |
1607 | struct scsi_host_sg_pool *sgp = scsi_sg_pools + i; | 1789 | struct scsi_host_sg_pool *sgp = scsi_sg_pools + i; |
1608 | int size = sgp->size * sizeof(struct scatterlist); | 1790 | int size = sgp->size * sizeof(struct scatterlist); |
@@ -1630,6 +1812,8 @@ void scsi_exit_queue(void) | |||
1630 | { | 1812 | { |
1631 | int i; | 1813 | int i; |
1632 | 1814 | ||
1815 | kmem_cache_destroy(scsi_io_context_cache); | ||
1816 | |||
1633 | for (i = 0; i < SG_MEMPOOL_NR; i++) { | 1817 | for (i = 0; i < SG_MEMPOOL_NR; i++) { |
1634 | struct scsi_host_sg_pool *sgp = scsi_sg_pools + i; | 1818 | struct scsi_host_sg_pool *sgp = scsi_sg_pools + i; |
1635 | mempool_destroy(sgp->pool); | 1819 | mempool_destroy(sgp->pool); |
diff --git a/drivers/scsi/scsi_priv.h b/drivers/scsi/scsi_priv.h index d632d9e1493c..f04e7e11f57a 100644 --- a/drivers/scsi/scsi_priv.h +++ b/drivers/scsi/scsi_priv.h | |||
@@ -40,7 +40,6 @@ extern void scsi_exit_hosts(void); | |||
40 | extern int scsi_dispatch_cmd(struct scsi_cmnd *cmd); | 40 | extern int scsi_dispatch_cmd(struct scsi_cmnd *cmd); |
41 | extern int scsi_setup_command_freelist(struct Scsi_Host *shost); | 41 | extern int scsi_setup_command_freelist(struct Scsi_Host *shost); |
42 | extern void scsi_destroy_command_freelist(struct Scsi_Host *shost); | 42 | extern void scsi_destroy_command_freelist(struct Scsi_Host *shost); |
43 | extern int scsi_insert_special_req(struct scsi_request *sreq, int); | ||
44 | extern void scsi_init_cmd_from_req(struct scsi_cmnd *cmd, | 43 | extern void scsi_init_cmd_from_req(struct scsi_cmnd *cmd, |
45 | struct scsi_request *sreq); | 44 | struct scsi_request *sreq); |
46 | extern void __scsi_release_request(struct scsi_request *sreq); | 45 | extern void __scsi_release_request(struct scsi_request *sreq); |
@@ -57,7 +56,8 @@ static inline void scsi_log_completion(struct scsi_cmnd *cmd, int disposition) | |||
57 | 56 | ||
58 | /* scsi_devinfo.c */ | 57 | /* scsi_devinfo.c */ |
59 | extern int scsi_get_device_flags(struct scsi_device *sdev, | 58 | extern int scsi_get_device_flags(struct scsi_device *sdev, |
60 | unsigned char *vendor, unsigned char *model); | 59 | const unsigned char *vendor, |
60 | const unsigned char *model); | ||
61 | extern int __init scsi_init_devinfo(void); | 61 | extern int __init scsi_init_devinfo(void); |
62 | extern void scsi_exit_devinfo(void); | 62 | extern void scsi_exit_devinfo(void); |
63 | 63 | ||
diff --git a/drivers/scsi/scsi_scan.c b/drivers/scsi/scsi_scan.c index 4e6709f448e1..05ebb9cef961 100644 --- a/drivers/scsi/scsi_scan.c +++ b/drivers/scsi/scsi_scan.c | |||
@@ -74,7 +74,7 @@ | |||
74 | #define SCSI_SCAN_TARGET_PRESENT 1 | 74 | #define SCSI_SCAN_TARGET_PRESENT 1 |
75 | #define SCSI_SCAN_LUN_PRESENT 2 | 75 | #define SCSI_SCAN_LUN_PRESENT 2 |
76 | 76 | ||
77 | static char *scsi_null_device_strs = "nullnullnullnull"; | 77 | static const char *scsi_null_device_strs = "nullnullnullnull"; |
78 | 78 | ||
79 | #define MAX_SCSI_LUNS 512 | 79 | #define MAX_SCSI_LUNS 512 |
80 | 80 | ||
diff --git a/drivers/scsi/scsi_sysfs.c b/drivers/scsi/scsi_sysfs.c index 46349293de08..15842b1f0f4a 100644 --- a/drivers/scsi/scsi_sysfs.c +++ b/drivers/scsi/scsi_sysfs.c | |||
@@ -21,7 +21,7 @@ | |||
21 | #include "scsi_priv.h" | 21 | #include "scsi_priv.h" |
22 | #include "scsi_logging.h" | 22 | #include "scsi_logging.h" |
23 | 23 | ||
24 | static struct { | 24 | static const struct { |
25 | enum scsi_device_state value; | 25 | enum scsi_device_state value; |
26 | char *name; | 26 | char *name; |
27 | } sdev_states[] = { | 27 | } sdev_states[] = { |
@@ -48,7 +48,7 @@ const char *scsi_device_state_name(enum scsi_device_state state) | |||
48 | return name; | 48 | return name; |
49 | } | 49 | } |
50 | 50 | ||
51 | static struct { | 51 | static const struct { |
52 | enum scsi_host_state value; | 52 | enum scsi_host_state value; |
53 | char *name; | 53 | char *name; |
54 | } shost_states[] = { | 54 | } shost_states[] = { |
diff --git a/drivers/scsi/scsi_transport_fc.c b/drivers/scsi/scsi_transport_fc.c index 2a1a99a2ef56..685b997306cf 100644 --- a/drivers/scsi/scsi_transport_fc.c +++ b/drivers/scsi/scsi_transport_fc.c | |||
@@ -112,7 +112,7 @@ fc_enum_name_search(port_state, fc_port_state, fc_port_state_names) | |||
112 | 112 | ||
113 | 113 | ||
114 | /* Convert fc_tgtid_binding_type values to ascii string name */ | 114 | /* Convert fc_tgtid_binding_type values to ascii string name */ |
115 | static struct { | 115 | static const struct { |
116 | enum fc_tgtid_binding_type value; | 116 | enum fc_tgtid_binding_type value; |
117 | char *name; | 117 | char *name; |
118 | int matchlen; | 118 | int matchlen; |
@@ -150,7 +150,7 @@ get_fc_##title##_names(u32 table_key, char *buf) \ | |||
150 | 150 | ||
151 | 151 | ||
152 | /* Convert FC_COS bit values to ascii string name */ | 152 | /* Convert FC_COS bit values to ascii string name */ |
153 | static struct { | 153 | static const struct { |
154 | u32 value; | 154 | u32 value; |
155 | char *name; | 155 | char *name; |
156 | } fc_cos_names[] = { | 156 | } fc_cos_names[] = { |
@@ -164,7 +164,7 @@ fc_bitfield_name_search(cos, fc_cos_names) | |||
164 | 164 | ||
165 | 165 | ||
166 | /* Convert FC_PORTSPEED bit values to ascii string name */ | 166 | /* Convert FC_PORTSPEED bit values to ascii string name */ |
167 | static struct { | 167 | static const struct { |
168 | u32 value; | 168 | u32 value; |
169 | char *name; | 169 | char *name; |
170 | } fc_port_speed_names[] = { | 170 | } fc_port_speed_names[] = { |
@@ -190,7 +190,7 @@ show_fc_fc4s (char *buf, u8 *fc4_list) | |||
190 | 190 | ||
191 | 191 | ||
192 | /* Convert FC_RPORT_ROLE bit values to ascii string name */ | 192 | /* Convert FC_RPORT_ROLE bit values to ascii string name */ |
193 | static struct { | 193 | static const struct { |
194 | u32 value; | 194 | u32 value; |
195 | char *name; | 195 | char *name; |
196 | } fc_remote_port_role_names[] = { | 196 | } fc_remote_port_role_names[] = { |
diff --git a/drivers/scsi/scsi_transport_spi.c b/drivers/scsi/scsi_transport_spi.c index 38a53b5f9e9a..46da6fe10ad5 100644 --- a/drivers/scsi/scsi_transport_spi.c +++ b/drivers/scsi/scsi_transport_spi.c | |||
@@ -18,6 +18,7 @@ | |||
18 | * along with this program; if not, write to the Free Software | 18 | * along with this program; if not, write to the Free Software |
19 | * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA | 19 | * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA |
20 | */ | 20 | */ |
21 | #include <linux/config.h> | ||
21 | #include <linux/ctype.h> | 22 | #include <linux/ctype.h> |
22 | #include <linux/init.h> | 23 | #include <linux/init.h> |
23 | #include <linux/module.h> | 24 | #include <linux/module.h> |
@@ -378,9 +379,7 @@ static CLASS_DEVICE_ATTR(revalidate, S_IWUSR, NULL, store_spi_revalidate); | |||
378 | 379 | ||
379 | /* Translate the period into ns according to the current spec | 380 | /* Translate the period into ns according to the current spec |
380 | * for SDTR/PPR messages */ | 381 | * for SDTR/PPR messages */ |
381 | static ssize_t | 382 | static int period_to_str(char *buf, int period) |
382 | show_spi_transport_period_helper(struct class_device *cdev, char *buf, | ||
383 | int period) | ||
384 | { | 383 | { |
385 | int len, picosec; | 384 | int len, picosec; |
386 | 385 | ||
@@ -398,6 +397,14 @@ show_spi_transport_period_helper(struct class_device *cdev, char *buf, | |||
398 | len = sprint_frac(buf, picosec, 1000); | 397 | len = sprint_frac(buf, picosec, 1000); |
399 | } | 398 | } |
400 | 399 | ||
400 | return len; | ||
401 | } | ||
402 | |||
403 | static ssize_t | ||
404 | show_spi_transport_period_helper(struct class_device *cdev, char *buf, | ||
405 | int period) | ||
406 | { | ||
407 | int len = period_to_str(buf, period); | ||
401 | buf[len++] = '\n'; | 408 | buf[len++] = '\n'; |
402 | buf[len] = '\0'; | 409 | buf[len] = '\0'; |
403 | return len; | 410 | return len; |
@@ -1041,12 +1048,133 @@ void spi_display_xfer_agreement(struct scsi_target *starget) | |||
1041 | tp->hold_mcs ? " HMCS" : "", | 1048 | tp->hold_mcs ? " HMCS" : "", |
1042 | tmp, tp->offset); | 1049 | tmp, tp->offset); |
1043 | } else { | 1050 | } else { |
1044 | dev_info(&starget->dev, "%sasynchronous.\n", | 1051 | dev_info(&starget->dev, "%sasynchronous\n", |
1045 | tp->width ? "wide " : ""); | 1052 | tp->width ? "wide " : ""); |
1046 | } | 1053 | } |
1047 | } | 1054 | } |
1048 | EXPORT_SYMBOL(spi_display_xfer_agreement); | 1055 | EXPORT_SYMBOL(spi_display_xfer_agreement); |
1049 | 1056 | ||
1057 | #ifdef CONFIG_SCSI_CONSTANTS | ||
1058 | static const char * const one_byte_msgs[] = { | ||
1059 | /* 0x00 */ "Command Complete", NULL, "Save Pointers", | ||
1060 | /* 0x03 */ "Restore Pointers", "Disconnect", "Initiator Error", | ||
1061 | /* 0x06 */ "Abort", "Message Reject", "Nop", "Message Parity Error", | ||
1062 | /* 0x0a */ "Linked Command Complete", "Linked Command Complete w/flag", | ||
1063 | /* 0x0c */ "Bus device reset", "Abort Tag", "Clear Queue", | ||
1064 | /* 0x0f */ "Initiate Recovery", "Release Recovery" | ||
1065 | }; | ||
1066 | |||
1067 | static const char * const two_byte_msgs[] = { | ||
1068 | /* 0x20 */ "Simple Queue Tag", "Head of Queue Tag", "Ordered Queue Tag", | ||
1069 | /* 0x23 */ "Ignore Wide Residue" | ||
1070 | }; | ||
1071 | |||
1072 | static const char * const extended_msgs[] = { | ||
1073 | /* 0x00 */ "Modify Data Pointer", "Synchronous Data Transfer Request", | ||
1074 | /* 0x02 */ "SCSI-I Extended Identify", "Wide Data Transfer Request", | ||
1075 | /* 0x04 */ "Parallel Protocol Request" | ||
1076 | }; | ||
1077 | |||
1078 | void print_nego(const unsigned char *msg, int per, int off, int width) | ||
1079 | { | ||
1080 | if (per) { | ||
1081 | char buf[20]; | ||
1082 | period_to_str(buf, msg[per]); | ||
1083 | printk("period = %s ns ", buf); | ||
1084 | } | ||
1085 | |||
1086 | if (off) | ||
1087 | printk("offset = %d ", msg[off]); | ||
1088 | if (width) | ||
1089 | printk("width = %d ", 8 << msg[width]); | ||
1090 | } | ||
1091 | |||
1092 | int spi_print_msg(const unsigned char *msg) | ||
1093 | { | ||
1094 | int len = 0, i; | ||
1095 | if (msg[0] == EXTENDED_MESSAGE) { | ||
1096 | len = 3 + msg[1]; | ||
1097 | if (msg[2] < ARRAY_SIZE(extended_msgs)) | ||
1098 | printk ("%s ", extended_msgs[msg[2]]); | ||
1099 | else | ||
1100 | printk ("Extended Message, reserved code (0x%02x) ", | ||
1101 | (int) msg[2]); | ||
1102 | switch (msg[2]) { | ||
1103 | case EXTENDED_MODIFY_DATA_POINTER: | ||
1104 | printk("pointer = %d", (int) (msg[3] << 24) | | ||
1105 | (msg[4] << 16) | (msg[5] << 8) | msg[6]); | ||
1106 | break; | ||
1107 | case EXTENDED_SDTR: | ||
1108 | print_nego(msg, 3, 4, 0); | ||
1109 | break; | ||
1110 | case EXTENDED_WDTR: | ||
1111 | print_nego(msg, 0, 0, 3); | ||
1112 | break; | ||
1113 | case EXTENDED_PPR: | ||
1114 | print_nego(msg, 3, 5, 6); | ||
1115 | break; | ||
1116 | default: | ||
1117 | for (i = 2; i < len; ++i) | ||
1118 | printk("%02x ", msg[i]); | ||
1119 | } | ||
1120 | /* Identify */ | ||
1121 | } else if (msg[0] & 0x80) { | ||
1122 | printk("Identify disconnect %sallowed %s %d ", | ||
1123 | (msg[0] & 0x40) ? "" : "not ", | ||
1124 | (msg[0] & 0x20) ? "target routine" : "lun", | ||
1125 | msg[0] & 0x7); | ||
1126 | len = 1; | ||
1127 | /* Normal One byte */ | ||
1128 | } else if (msg[0] < 0x1f) { | ||
1129 | if (msg[0] < ARRAY_SIZE(one_byte_msgs)) | ||
1130 | printk(one_byte_msgs[msg[0]]); | ||
1131 | else | ||
1132 | printk("reserved (%02x) ", msg[0]); | ||
1133 | len = 1; | ||
1134 | /* Two byte */ | ||
1135 | } else if (msg[0] <= 0x2f) { | ||
1136 | if ((msg[0] - 0x20) < ARRAY_SIZE(two_byte_msgs)) | ||
1137 | printk("%s %02x ", two_byte_msgs[msg[0] - 0x20], | ||
1138 | msg[1]); | ||
1139 | else | ||
1140 | printk("reserved two byte (%02x %02x) ", | ||
1141 | msg[0], msg[1]); | ||
1142 | len = 2; | ||
1143 | } else | ||
1144 | printk("reserved"); | ||
1145 | return len; | ||
1146 | } | ||
1147 | EXPORT_SYMBOL(spi_print_msg); | ||
1148 | |||
1149 | #else /* ifndef CONFIG_SCSI_CONSTANTS */ | ||
1150 | |||
1151 | int spi_print_msg(const unsigned char *msg) | ||
1152 | { | ||
1153 | int len = 0, i; | ||
1154 | |||
1155 | if (msg[0] == EXTENDED_MESSAGE) { | ||
1156 | len = 3 + msg[1]; | ||
1157 | for (i = 0; i < len; ++i) | ||
1158 | printk("%02x ", msg[i]); | ||
1159 | /* Identify */ | ||
1160 | } else if (msg[0] & 0x80) { | ||
1161 | printk("%02x ", msg[0]); | ||
1162 | len = 1; | ||
1163 | /* Normal One byte */ | ||
1164 | } else if (msg[0] < 0x1f) { | ||
1165 | printk("%02x ", msg[0]); | ||
1166 | len = 1; | ||
1167 | /* Two byte */ | ||
1168 | } else if (msg[0] <= 0x2f) { | ||
1169 | printk("%02x %02x", msg[0], msg[1]); | ||
1170 | len = 2; | ||
1171 | } else | ||
1172 | printk("%02x ", msg[0]); | ||
1173 | return len; | ||
1174 | } | ||
1175 | EXPORT_SYMBOL(spi_print_msg); | ||
1176 | #endif /* ! CONFIG_SCSI_CONSTANTS */ | ||
1177 | |||
1050 | #define SETUP_ATTRIBUTE(field) \ | 1178 | #define SETUP_ATTRIBUTE(field) \ |
1051 | i->private_attrs[count] = class_device_attr_##field; \ | 1179 | i->private_attrs[count] = class_device_attr_##field; \ |
1052 | if (!i->f->set_##field) { \ | 1180 | if (!i->f->set_##field) { \ |
diff --git a/drivers/scsi/sd.c b/drivers/scsi/sd.c index 03fcbab30033..3d3ad7d1b779 100644 --- a/drivers/scsi/sd.c +++ b/drivers/scsi/sd.c | |||
@@ -245,7 +245,7 @@ static int sd_init_command(struct scsi_cmnd * SCpnt) | |||
245 | * SG_IO from block layer already setup, just copy cdb basically | 245 | * SG_IO from block layer already setup, just copy cdb basically |
246 | */ | 246 | */ |
247 | if (blk_pc_request(rq)) { | 247 | if (blk_pc_request(rq)) { |
248 | scsi_setup_blk_pc_cmnd(SCpnt, SD_PASSTHROUGH_RETRIES); | 248 | scsi_setup_blk_pc_cmnd(SCpnt); |
249 | if (rq->timeout) | 249 | if (rq->timeout) |
250 | timeout = rq->timeout; | 250 | timeout = rq->timeout; |
251 | 251 | ||
@@ -1495,9 +1495,7 @@ static int sd_revalidate_disk(struct gendisk *disk) | |||
1495 | */ | 1495 | */ |
1496 | if (sdkp->media_present) { | 1496 | if (sdkp->media_present) { |
1497 | sd_read_capacity(sdkp, disk->disk_name, buffer); | 1497 | sd_read_capacity(sdkp, disk->disk_name, buffer); |
1498 | if (sdp->removable) | 1498 | sd_read_write_protect_flag(sdkp, disk->disk_name, buffer); |
1499 | sd_read_write_protect_flag(sdkp, disk->disk_name, | ||
1500 | buffer); | ||
1501 | sd_read_cache_type(sdkp, disk->disk_name, buffer); | 1499 | sd_read_cache_type(sdkp, disk->disk_name, buffer); |
1502 | } | 1500 | } |
1503 | 1501 | ||
diff --git a/drivers/scsi/sg.c b/drivers/scsi/sg.c index b55c2a8a547c..221e96e2620a 100644 --- a/drivers/scsi/sg.c +++ b/drivers/scsi/sg.c | |||
@@ -104,8 +104,6 @@ static int sg_allow_dio = SG_ALLOW_DIO_DEF; | |||
104 | static int sg_add(struct class_device *, struct class_interface *); | 104 | static int sg_add(struct class_device *, struct class_interface *); |
105 | static void sg_remove(struct class_device *, struct class_interface *); | 105 | static void sg_remove(struct class_device *, struct class_interface *); |
106 | 106 | ||
107 | static Scsi_Request *dummy_cmdp; /* only used for sizeof */ | ||
108 | |||
109 | static DEFINE_RWLOCK(sg_dev_arr_lock); /* Also used to lock | 107 | static DEFINE_RWLOCK(sg_dev_arr_lock); /* Also used to lock |
110 | file descriptor list for device */ | 108 | file descriptor list for device */ |
111 | 109 | ||
@@ -119,7 +117,7 @@ typedef struct sg_scatter_hold { /* holding area for scsi scatter gather info */ | |||
119 | unsigned short sglist_len; /* size of malloc'd scatter-gather list ++ */ | 117 | unsigned short sglist_len; /* size of malloc'd scatter-gather list ++ */ |
120 | unsigned bufflen; /* Size of (aggregate) data buffer */ | 118 | unsigned bufflen; /* Size of (aggregate) data buffer */ |
121 | unsigned b_malloc_len; /* actual len malloc'ed in buffer */ | 119 | unsigned b_malloc_len; /* actual len malloc'ed in buffer */ |
122 | void *buffer; /* Data buffer or scatter list (k_use_sg>0) */ | 120 | struct scatterlist *buffer;/* scatter list */ |
123 | char dio_in_use; /* 0->indirect IO (or mmap), 1->dio */ | 121 | char dio_in_use; /* 0->indirect IO (or mmap), 1->dio */ |
124 | unsigned char cmd_opcode; /* first byte of command */ | 122 | unsigned char cmd_opcode; /* first byte of command */ |
125 | } Sg_scatter_hold; | 123 | } Sg_scatter_hold; |
@@ -128,12 +126,11 @@ struct sg_device; /* forward declarations */ | |||
128 | struct sg_fd; | 126 | struct sg_fd; |
129 | 127 | ||
130 | typedef struct sg_request { /* SG_MAX_QUEUE requests outstanding per file */ | 128 | typedef struct sg_request { /* SG_MAX_QUEUE requests outstanding per file */ |
131 | Scsi_Request *my_cmdp; /* != 0 when request with lower levels */ | ||
132 | struct sg_request *nextrp; /* NULL -> tail request (slist) */ | 129 | struct sg_request *nextrp; /* NULL -> tail request (slist) */ |
133 | struct sg_fd *parentfp; /* NULL -> not in use */ | 130 | struct sg_fd *parentfp; /* NULL -> not in use */ |
134 | Sg_scatter_hold data; /* hold buffer, perhaps scatter list */ | 131 | Sg_scatter_hold data; /* hold buffer, perhaps scatter list */ |
135 | sg_io_hdr_t header; /* scsi command+info, see <scsi/sg.h> */ | 132 | sg_io_hdr_t header; /* scsi command+info, see <scsi/sg.h> */ |
136 | unsigned char sense_b[sizeof (dummy_cmdp->sr_sense_buffer)]; | 133 | unsigned char sense_b[SCSI_SENSE_BUFFERSIZE]; |
137 | char res_used; /* 1 -> using reserve buffer, 0 -> not ... */ | 134 | char res_used; /* 1 -> using reserve buffer, 0 -> not ... */ |
138 | char orphan; /* 1 -> drop on sight, 0 -> normal */ | 135 | char orphan; /* 1 -> drop on sight, 0 -> normal */ |
139 | char sg_io_owned; /* 1 -> packet belongs to SG_IO */ | 136 | char sg_io_owned; /* 1 -> packet belongs to SG_IO */ |
@@ -174,7 +171,8 @@ typedef struct sg_device { /* holds the state of each scsi generic device */ | |||
174 | } Sg_device; | 171 | } Sg_device; |
175 | 172 | ||
176 | static int sg_fasync(int fd, struct file *filp, int mode); | 173 | static int sg_fasync(int fd, struct file *filp, int mode); |
177 | static void sg_cmd_done(Scsi_Cmnd * SCpnt); /* tasklet or soft irq callback */ | 174 | /* tasklet or soft irq callback */ |
175 | static void sg_cmd_done(void *data, char *sense, int result, int resid); | ||
178 | static int sg_start_req(Sg_request * srp); | 176 | static int sg_start_req(Sg_request * srp); |
179 | static void sg_finish_rem_req(Sg_request * srp); | 177 | static void sg_finish_rem_req(Sg_request * srp); |
180 | static int sg_build_indirect(Sg_scatter_hold * schp, Sg_fd * sfp, int buff_size); | 178 | static int sg_build_indirect(Sg_scatter_hold * schp, Sg_fd * sfp, int buff_size); |
@@ -195,8 +193,8 @@ static void sg_remove_scat(Sg_scatter_hold * schp); | |||
195 | static void sg_build_reserve(Sg_fd * sfp, int req_size); | 193 | static void sg_build_reserve(Sg_fd * sfp, int req_size); |
196 | static void sg_link_reserve(Sg_fd * sfp, Sg_request * srp, int size); | 194 | static void sg_link_reserve(Sg_fd * sfp, Sg_request * srp, int size); |
197 | static void sg_unlink_reserve(Sg_fd * sfp, Sg_request * srp); | 195 | static void sg_unlink_reserve(Sg_fd * sfp, Sg_request * srp); |
198 | static char *sg_page_malloc(int rqSz, int lowDma, int *retSzp); | 196 | static struct page *sg_page_malloc(int rqSz, int lowDma, int *retSzp); |
199 | static void sg_page_free(char *buff, int size); | 197 | static void sg_page_free(struct page *page, int size); |
200 | static Sg_fd *sg_add_sfp(Sg_device * sdp, int dev); | 198 | static Sg_fd *sg_add_sfp(Sg_device * sdp, int dev); |
201 | static int sg_remove_sfp(Sg_device * sdp, Sg_fd * sfp); | 199 | static int sg_remove_sfp(Sg_device * sdp, Sg_fd * sfp); |
202 | static void __sg_remove_sfp(Sg_device * sdp, Sg_fd * sfp); | 200 | static void __sg_remove_sfp(Sg_device * sdp, Sg_fd * sfp); |
@@ -207,7 +205,6 @@ static int sg_res_in_use(Sg_fd * sfp); | |||
207 | static int sg_allow_access(unsigned char opcode, char dev_type); | 205 | static int sg_allow_access(unsigned char opcode, char dev_type); |
208 | static int sg_build_direct(Sg_request * srp, Sg_fd * sfp, int dxfer_len); | 206 | static int sg_build_direct(Sg_request * srp, Sg_fd * sfp, int dxfer_len); |
209 | static Sg_device *sg_get_dev(int dev); | 207 | static Sg_device *sg_get_dev(int dev); |
210 | static inline unsigned char *sg_scatg2virt(const struct scatterlist *sclp); | ||
211 | #ifdef CONFIG_SCSI_PROC_FS | 208 | #ifdef CONFIG_SCSI_PROC_FS |
212 | static int sg_last_dev(void); | 209 | static int sg_last_dev(void); |
213 | #endif | 210 | #endif |
@@ -226,6 +223,7 @@ sg_open(struct inode *inode, struct file *filp) | |||
226 | { | 223 | { |
227 | int dev = iminor(inode); | 224 | int dev = iminor(inode); |
228 | int flags = filp->f_flags; | 225 | int flags = filp->f_flags; |
226 | struct request_queue *q; | ||
229 | Sg_device *sdp; | 227 | Sg_device *sdp; |
230 | Sg_fd *sfp; | 228 | Sg_fd *sfp; |
231 | int res; | 229 | int res; |
@@ -287,7 +285,9 @@ sg_open(struct inode *inode, struct file *filp) | |||
287 | } | 285 | } |
288 | if (!sdp->headfp) { /* no existing opens on this device */ | 286 | if (!sdp->headfp) { /* no existing opens on this device */ |
289 | sdp->sgdebug = 0; | 287 | sdp->sgdebug = 0; |
290 | sdp->sg_tablesize = sdp->device->host->sg_tablesize; | 288 | q = sdp->device->request_queue; |
289 | sdp->sg_tablesize = min(q->max_hw_segments, | ||
290 | q->max_phys_segments); | ||
291 | } | 291 | } |
292 | if ((sfp = sg_add_sfp(sdp, dev))) | 292 | if ((sfp = sg_add_sfp(sdp, dev))) |
293 | filp->private_data = sfp; | 293 | filp->private_data = sfp; |
@@ -340,6 +340,7 @@ sg_read(struct file *filp, char __user *buf, size_t count, loff_t * ppos) | |||
340 | return -ENXIO; | 340 | return -ENXIO; |
341 | SCSI_LOG_TIMEOUT(3, printk("sg_read: %s, count=%d\n", | 341 | SCSI_LOG_TIMEOUT(3, printk("sg_read: %s, count=%d\n", |
342 | sdp->disk->disk_name, (int) count)); | 342 | sdp->disk->disk_name, (int) count)); |
343 | |||
343 | if (!access_ok(VERIFY_WRITE, buf, count)) | 344 | if (!access_ok(VERIFY_WRITE, buf, count)) |
344 | return -EFAULT; | 345 | return -EFAULT; |
345 | if (sfp->force_packid && (count >= SZ_SG_HEADER)) { | 346 | if (sfp->force_packid && (count >= SZ_SG_HEADER)) { |
@@ -491,7 +492,7 @@ sg_new_read(Sg_fd * sfp, char __user *buf, size_t count, Sg_request * srp) | |||
491 | if ((hp->mx_sb_len > 0) && hp->sbp) { | 492 | if ((hp->mx_sb_len > 0) && hp->sbp) { |
492 | if ((CHECK_CONDITION & hp->masked_status) || | 493 | if ((CHECK_CONDITION & hp->masked_status) || |
493 | (DRIVER_SENSE & hp->driver_status)) { | 494 | (DRIVER_SENSE & hp->driver_status)) { |
494 | int sb_len = sizeof (dummy_cmdp->sr_sense_buffer); | 495 | int sb_len = SCSI_SENSE_BUFFERSIZE; |
495 | sb_len = (hp->mx_sb_len > sb_len) ? sb_len : hp->mx_sb_len; | 496 | sb_len = (hp->mx_sb_len > sb_len) ? sb_len : hp->mx_sb_len; |
496 | len = 8 + (int) srp->sense_b[7]; /* Additional sense length field */ | 497 | len = 8 + (int) srp->sense_b[7]; /* Additional sense length field */ |
497 | len = (len > sb_len) ? sb_len : len; | 498 | len = (len > sb_len) ? sb_len : len; |
@@ -525,7 +526,7 @@ sg_write(struct file *filp, const char __user *buf, size_t count, loff_t * ppos) | |||
525 | Sg_request *srp; | 526 | Sg_request *srp; |
526 | struct sg_header old_hdr; | 527 | struct sg_header old_hdr; |
527 | sg_io_hdr_t *hp; | 528 | sg_io_hdr_t *hp; |
528 | unsigned char cmnd[sizeof (dummy_cmdp->sr_cmnd)]; | 529 | unsigned char cmnd[MAX_COMMAND_SIZE]; |
529 | 530 | ||
530 | if ((!(sfp = (Sg_fd *) filp->private_data)) || (!(sdp = sfp->parentdp))) | 531 | if ((!(sfp = (Sg_fd *) filp->private_data)) || (!(sdp = sfp->parentdp))) |
531 | return -ENXIO; | 532 | return -ENXIO; |
@@ -624,7 +625,7 @@ sg_new_write(Sg_fd * sfp, const char __user *buf, size_t count, | |||
624 | int k; | 625 | int k; |
625 | Sg_request *srp; | 626 | Sg_request *srp; |
626 | sg_io_hdr_t *hp; | 627 | sg_io_hdr_t *hp; |
627 | unsigned char cmnd[sizeof (dummy_cmdp->sr_cmnd)]; | 628 | unsigned char cmnd[MAX_COMMAND_SIZE]; |
628 | int timeout; | 629 | int timeout; |
629 | unsigned long ul_timeout; | 630 | unsigned long ul_timeout; |
630 | 631 | ||
@@ -692,11 +693,9 @@ static int | |||
692 | sg_common_write(Sg_fd * sfp, Sg_request * srp, | 693 | sg_common_write(Sg_fd * sfp, Sg_request * srp, |
693 | unsigned char *cmnd, int timeout, int blocking) | 694 | unsigned char *cmnd, int timeout, int blocking) |
694 | { | 695 | { |
695 | int k; | 696 | int k, data_dir; |
696 | Scsi_Request *SRpnt; | ||
697 | Sg_device *sdp = sfp->parentdp; | 697 | Sg_device *sdp = sfp->parentdp; |
698 | sg_io_hdr_t *hp = &srp->header; | 698 | sg_io_hdr_t *hp = &srp->header; |
699 | request_queue_t *q; | ||
700 | 699 | ||
701 | srp->data.cmd_opcode = cmnd[0]; /* hold opcode of command */ | 700 | srp->data.cmd_opcode = cmnd[0]; /* hold opcode of command */ |
702 | hp->status = 0; | 701 | hp->status = 0; |
@@ -723,51 +722,36 @@ sg_common_write(Sg_fd * sfp, Sg_request * srp, | |||
723 | sg_finish_rem_req(srp); | 722 | sg_finish_rem_req(srp); |
724 | return -ENODEV; | 723 | return -ENODEV; |
725 | } | 724 | } |
726 | SRpnt = scsi_allocate_request(sdp->device, GFP_ATOMIC); | ||
727 | if (SRpnt == NULL) { | ||
728 | SCSI_LOG_TIMEOUT(1, printk("sg_write: no mem\n")); | ||
729 | sg_finish_rem_req(srp); | ||
730 | return -ENOMEM; | ||
731 | } | ||
732 | 725 | ||
733 | srp->my_cmdp = SRpnt; | ||
734 | q = SRpnt->sr_device->request_queue; | ||
735 | SRpnt->sr_request->rq_disk = sdp->disk; | ||
736 | SRpnt->sr_sense_buffer[0] = 0; | ||
737 | SRpnt->sr_cmd_len = hp->cmd_len; | ||
738 | SRpnt->sr_use_sg = srp->data.k_use_sg; | ||
739 | SRpnt->sr_sglist_len = srp->data.sglist_len; | ||
740 | SRpnt->sr_bufflen = srp->data.bufflen; | ||
741 | SRpnt->sr_underflow = 0; | ||
742 | SRpnt->sr_buffer = srp->data.buffer; | ||
743 | switch (hp->dxfer_direction) { | 726 | switch (hp->dxfer_direction) { |
744 | case SG_DXFER_TO_FROM_DEV: | 727 | case SG_DXFER_TO_FROM_DEV: |
745 | case SG_DXFER_FROM_DEV: | 728 | case SG_DXFER_FROM_DEV: |
746 | SRpnt->sr_data_direction = DMA_FROM_DEVICE; | 729 | data_dir = DMA_FROM_DEVICE; |
747 | break; | 730 | break; |
748 | case SG_DXFER_TO_DEV: | 731 | case SG_DXFER_TO_DEV: |
749 | SRpnt->sr_data_direction = DMA_TO_DEVICE; | 732 | data_dir = DMA_TO_DEVICE; |
750 | break; | 733 | break; |
751 | case SG_DXFER_UNKNOWN: | 734 | case SG_DXFER_UNKNOWN: |
752 | SRpnt->sr_data_direction = DMA_BIDIRECTIONAL; | 735 | data_dir = DMA_BIDIRECTIONAL; |
753 | break; | 736 | break; |
754 | default: | 737 | default: |
755 | SRpnt->sr_data_direction = DMA_NONE; | 738 | data_dir = DMA_NONE; |
756 | break; | 739 | break; |
757 | } | 740 | } |
758 | SRpnt->upper_private_data = srp; | ||
759 | srp->data.k_use_sg = 0; | ||
760 | srp->data.sglist_len = 0; | ||
761 | srp->data.bufflen = 0; | ||
762 | srp->data.buffer = NULL; | ||
763 | hp->duration = jiffies_to_msecs(jiffies); | 741 | hp->duration = jiffies_to_msecs(jiffies); |
764 | /* Now send everything of to mid-level. The next time we hear about this | 742 | /* Now send everything of to mid-level. The next time we hear about this |
765 | packet is when sg_cmd_done() is called (i.e. a callback). */ | 743 | packet is when sg_cmd_done() is called (i.e. a callback). */ |
766 | scsi_do_req(SRpnt, (void *) cmnd, | 744 | if (scsi_execute_async(sdp->device, cmnd, data_dir, srp->data.buffer, |
767 | (void *) SRpnt->sr_buffer, hp->dxfer_len, | 745 | hp->dxfer_len, srp->data.k_use_sg, timeout, |
768 | sg_cmd_done, timeout, SG_DEFAULT_RETRIES); | 746 | SG_DEFAULT_RETRIES, srp, sg_cmd_done, |
769 | /* dxfer_len overwrites SRpnt->sr_bufflen, hence need for b_malloc_len */ | 747 | GFP_ATOMIC)) { |
770 | return 0; | 748 | SCSI_LOG_TIMEOUT(1, printk("sg_write: scsi_execute_async failed\n")); |
749 | /* | ||
750 | * most likely out of mem, but could also be a bad map | ||
751 | */ | ||
752 | return -ENOMEM; | ||
753 | } else | ||
754 | return 0; | ||
771 | } | 755 | } |
772 | 756 | ||
773 | static int | 757 | static int |
@@ -1156,45 +1140,22 @@ sg_fasync(int fd, struct file *filp, int mode) | |||
1156 | return (retval < 0) ? retval : 0; | 1140 | return (retval < 0) ? retval : 0; |
1157 | } | 1141 | } |
1158 | 1142 | ||
1159 | static inline unsigned char * | ||
1160 | sg_scatg2virt(const struct scatterlist *sclp) | ||
1161 | { | ||
1162 | return (sclp && sclp->page) ? | ||
1163 | (unsigned char *) page_address(sclp->page) + sclp->offset : NULL; | ||
1164 | } | ||
1165 | |||
1166 | /* When startFinish==1 increments page counts for pages other than the | 1143 | /* When startFinish==1 increments page counts for pages other than the |
1167 | first of scatter gather elements obtained from __get_free_pages(). | 1144 | first of scatter gather elements obtained from alloc_pages(). |
1168 | When startFinish==0 decrements ... */ | 1145 | When startFinish==0 decrements ... */ |
1169 | static void | 1146 | static void |
1170 | sg_rb_correct4mmap(Sg_scatter_hold * rsv_schp, int startFinish) | 1147 | sg_rb_correct4mmap(Sg_scatter_hold * rsv_schp, int startFinish) |
1171 | { | 1148 | { |
1172 | void *page_ptr; | 1149 | struct scatterlist *sg = rsv_schp->buffer; |
1173 | struct page *page; | 1150 | struct page *page; |
1174 | int k, m; | 1151 | int k, m; |
1175 | 1152 | ||
1176 | SCSI_LOG_TIMEOUT(3, printk("sg_rb_correct4mmap: startFinish=%d, scatg=%d\n", | 1153 | SCSI_LOG_TIMEOUT(3, printk("sg_rb_correct4mmap: startFinish=%d, scatg=%d\n", |
1177 | startFinish, rsv_schp->k_use_sg)); | 1154 | startFinish, rsv_schp->k_use_sg)); |
1178 | /* N.B. correction _not_ applied to base page of each allocation */ | 1155 | /* N.B. correction _not_ applied to base page of each allocation */ |
1179 | if (rsv_schp->k_use_sg) { /* reserve buffer is a scatter gather list */ | 1156 | for (k = 0; k < rsv_schp->k_use_sg; ++k, ++sg) { |
1180 | struct scatterlist *sclp = rsv_schp->buffer; | 1157 | for (m = PAGE_SIZE; m < sg->length; m += PAGE_SIZE) { |
1181 | 1158 | page = sg->page; | |
1182 | for (k = 0; k < rsv_schp->k_use_sg; ++k, ++sclp) { | ||
1183 | for (m = PAGE_SIZE; m < sclp->length; m += PAGE_SIZE) { | ||
1184 | page_ptr = sg_scatg2virt(sclp) + m; | ||
1185 | page = virt_to_page(page_ptr); | ||
1186 | if (startFinish) | ||
1187 | get_page(page); | ||
1188 | else { | ||
1189 | if (page_count(page) > 0) | ||
1190 | __put_page(page); | ||
1191 | } | ||
1192 | } | ||
1193 | } | ||
1194 | } else { /* reserve buffer is just a single allocation */ | ||
1195 | for (m = PAGE_SIZE; m < rsv_schp->bufflen; m += PAGE_SIZE) { | ||
1196 | page_ptr = (unsigned char *) rsv_schp->buffer + m; | ||
1197 | page = virt_to_page(page_ptr); | ||
1198 | if (startFinish) | 1159 | if (startFinish) |
1199 | get_page(page); | 1160 | get_page(page); |
1200 | else { | 1161 | else { |
@@ -1210,9 +1171,10 @@ sg_vma_nopage(struct vm_area_struct *vma, unsigned long addr, int *type) | |||
1210 | { | 1171 | { |
1211 | Sg_fd *sfp; | 1172 | Sg_fd *sfp; |
1212 | struct page *page = NOPAGE_SIGBUS; | 1173 | struct page *page = NOPAGE_SIGBUS; |
1213 | void *page_ptr = NULL; | 1174 | unsigned long offset, len, sa; |
1214 | unsigned long offset; | ||
1215 | Sg_scatter_hold *rsv_schp; | 1175 | Sg_scatter_hold *rsv_schp; |
1176 | struct scatterlist *sg; | ||
1177 | int k; | ||
1216 | 1178 | ||
1217 | if ((NULL == vma) || (!(sfp = (Sg_fd *) vma->vm_private_data))) | 1179 | if ((NULL == vma) || (!(sfp = (Sg_fd *) vma->vm_private_data))) |
1218 | return page; | 1180 | return page; |
@@ -1222,30 +1184,21 @@ sg_vma_nopage(struct vm_area_struct *vma, unsigned long addr, int *type) | |||
1222 | return page; | 1184 | return page; |
1223 | SCSI_LOG_TIMEOUT(3, printk("sg_vma_nopage: offset=%lu, scatg=%d\n", | 1185 | SCSI_LOG_TIMEOUT(3, printk("sg_vma_nopage: offset=%lu, scatg=%d\n", |
1224 | offset, rsv_schp->k_use_sg)); | 1186 | offset, rsv_schp->k_use_sg)); |
1225 | if (rsv_schp->k_use_sg) { /* reserve buffer is a scatter gather list */ | 1187 | sg = rsv_schp->buffer; |
1226 | int k; | 1188 | sa = vma->vm_start; |
1227 | unsigned long sa = vma->vm_start; | 1189 | for (k = 0; (k < rsv_schp->k_use_sg) && (sa < vma->vm_end); |
1228 | unsigned long len; | 1190 | ++k, ++sg) { |
1229 | struct scatterlist *sclp = rsv_schp->buffer; | 1191 | len = vma->vm_end - sa; |
1230 | 1192 | len = (len < sg->length) ? len : sg->length; | |
1231 | for (k = 0; (k < rsv_schp->k_use_sg) && (sa < vma->vm_end); | 1193 | if (offset < len) { |
1232 | ++k, ++sclp) { | 1194 | page = sg->page; |
1233 | len = vma->vm_end - sa; | 1195 | get_page(page); /* increment page count */ |
1234 | len = (len < sclp->length) ? len : sclp->length; | 1196 | break; |
1235 | if (offset < len) { | ||
1236 | page_ptr = sg_scatg2virt(sclp) + offset; | ||
1237 | page = virt_to_page(page_ptr); | ||
1238 | get_page(page); /* increment page count */ | ||
1239 | break; | ||
1240 | } | ||
1241 | sa += len; | ||
1242 | offset -= len; | ||
1243 | } | 1197 | } |
1244 | } else { /* reserve buffer is just a single allocation */ | 1198 | sa += len; |
1245 | page_ptr = (unsigned char *) rsv_schp->buffer + offset; | 1199 | offset -= len; |
1246 | page = virt_to_page(page_ptr); | ||
1247 | get_page(page); /* increment page count */ | ||
1248 | } | 1200 | } |
1201 | |||
1249 | if (type) | 1202 | if (type) |
1250 | *type = VM_FAULT_MINOR; | 1203 | *type = VM_FAULT_MINOR; |
1251 | return page; | 1204 | return page; |
@@ -1259,8 +1212,10 @@ static int | |||
1259 | sg_mmap(struct file *filp, struct vm_area_struct *vma) | 1212 | sg_mmap(struct file *filp, struct vm_area_struct *vma) |
1260 | { | 1213 | { |
1261 | Sg_fd *sfp; | 1214 | Sg_fd *sfp; |
1262 | unsigned long req_sz; | 1215 | unsigned long req_sz, len, sa; |
1263 | Sg_scatter_hold *rsv_schp; | 1216 | Sg_scatter_hold *rsv_schp; |
1217 | int k; | ||
1218 | struct scatterlist *sg; | ||
1264 | 1219 | ||
1265 | if ((!filp) || (!vma) || (!(sfp = (Sg_fd *) filp->private_data))) | 1220 | if ((!filp) || (!vma) || (!(sfp = (Sg_fd *) filp->private_data))) |
1266 | return -ENXIO; | 1221 | return -ENXIO; |
@@ -1273,24 +1228,15 @@ sg_mmap(struct file *filp, struct vm_area_struct *vma) | |||
1273 | if (req_sz > rsv_schp->bufflen) | 1228 | if (req_sz > rsv_schp->bufflen) |
1274 | return -ENOMEM; /* cannot map more than reserved buffer */ | 1229 | return -ENOMEM; /* cannot map more than reserved buffer */ |
1275 | 1230 | ||
1276 | if (rsv_schp->k_use_sg) { /* reserve buffer is a scatter gather list */ | 1231 | sa = vma->vm_start; |
1277 | int k; | 1232 | sg = rsv_schp->buffer; |
1278 | unsigned long sa = vma->vm_start; | 1233 | for (k = 0; (k < rsv_schp->k_use_sg) && (sa < vma->vm_end); |
1279 | unsigned long len; | 1234 | ++k, ++sg) { |
1280 | struct scatterlist *sclp = rsv_schp->buffer; | 1235 | len = vma->vm_end - sa; |
1281 | 1236 | len = (len < sg->length) ? len : sg->length; | |
1282 | for (k = 0; (k < rsv_schp->k_use_sg) && (sa < vma->vm_end); | 1237 | sa += len; |
1283 | ++k, ++sclp) { | ||
1284 | if (0 != sclp->offset) | ||
1285 | return -EFAULT; /* non page aligned memory ?? */ | ||
1286 | len = vma->vm_end - sa; | ||
1287 | len = (len < sclp->length) ? len : sclp->length; | ||
1288 | sa += len; | ||
1289 | } | ||
1290 | } else { /* reserve buffer is just a single allocation */ | ||
1291 | if ((unsigned long) rsv_schp->buffer & (PAGE_SIZE - 1)) | ||
1292 | return -EFAULT; /* non page aligned memory ?? */ | ||
1293 | } | 1238 | } |
1239 | |||
1294 | if (0 == sfp->mmap_called) { | 1240 | if (0 == sfp->mmap_called) { |
1295 | sg_rb_correct4mmap(rsv_schp, 1); /* do only once per fd lifetime */ | 1241 | sg_rb_correct4mmap(rsv_schp, 1); /* do only once per fd lifetime */ |
1296 | sfp->mmap_called = 1; | 1242 | sfp->mmap_called = 1; |
@@ -1304,21 +1250,16 @@ sg_mmap(struct file *filp, struct vm_area_struct *vma) | |||
1304 | /* This function is a "bottom half" handler that is called by the | 1250 | /* This function is a "bottom half" handler that is called by the |
1305 | * mid level when a command is completed (or has failed). */ | 1251 | * mid level when a command is completed (or has failed). */ |
1306 | static void | 1252 | static void |
1307 | sg_cmd_done(Scsi_Cmnd * SCpnt) | 1253 | sg_cmd_done(void *data, char *sense, int result, int resid) |
1308 | { | 1254 | { |
1309 | Scsi_Request *SRpnt = NULL; | 1255 | Sg_request *srp = data; |
1310 | Sg_device *sdp = NULL; | 1256 | Sg_device *sdp = NULL; |
1311 | Sg_fd *sfp; | 1257 | Sg_fd *sfp; |
1312 | Sg_request *srp = NULL; | ||
1313 | unsigned long iflags; | 1258 | unsigned long iflags; |
1314 | unsigned int ms; | 1259 | unsigned int ms; |
1315 | 1260 | ||
1316 | if (SCpnt && (SRpnt = SCpnt->sc_request)) | ||
1317 | srp = (Sg_request *) SRpnt->upper_private_data; | ||
1318 | if (NULL == srp) { | 1261 | if (NULL == srp) { |
1319 | printk(KERN_ERR "sg_cmd_done: NULL request\n"); | 1262 | printk(KERN_ERR "sg_cmd_done: NULL request\n"); |
1320 | if (SRpnt) | ||
1321 | scsi_release_request(SRpnt); | ||
1322 | return; | 1263 | return; |
1323 | } | 1264 | } |
1324 | sfp = srp->parentfp; | 1265 | sfp = srp->parentfp; |
@@ -1326,49 +1267,34 @@ sg_cmd_done(Scsi_Cmnd * SCpnt) | |||
1326 | sdp = sfp->parentdp; | 1267 | sdp = sfp->parentdp; |
1327 | if ((NULL == sdp) || sdp->detached) { | 1268 | if ((NULL == sdp) || sdp->detached) { |
1328 | printk(KERN_INFO "sg_cmd_done: device detached\n"); | 1269 | printk(KERN_INFO "sg_cmd_done: device detached\n"); |
1329 | scsi_release_request(SRpnt); | ||
1330 | return; | 1270 | return; |
1331 | } | 1271 | } |
1332 | 1272 | ||
1333 | /* First transfer ownership of data buffers to sg_device object. */ | ||
1334 | srp->data.k_use_sg = SRpnt->sr_use_sg; | ||
1335 | srp->data.sglist_len = SRpnt->sr_sglist_len; | ||
1336 | srp->data.bufflen = SRpnt->sr_bufflen; | ||
1337 | srp->data.buffer = SRpnt->sr_buffer; | ||
1338 | /* now clear out request structure */ | ||
1339 | SRpnt->sr_use_sg = 0; | ||
1340 | SRpnt->sr_sglist_len = 0; | ||
1341 | SRpnt->sr_bufflen = 0; | ||
1342 | SRpnt->sr_buffer = NULL; | ||
1343 | SRpnt->sr_underflow = 0; | ||
1344 | SRpnt->sr_request->rq_disk = NULL; /* "sg" _disowns_ request blk */ | ||
1345 | |||
1346 | srp->my_cmdp = NULL; | ||
1347 | 1273 | ||
1348 | SCSI_LOG_TIMEOUT(4, printk("sg_cmd_done: %s, pack_id=%d, res=0x%x\n", | 1274 | SCSI_LOG_TIMEOUT(4, printk("sg_cmd_done: %s, pack_id=%d, res=0x%x\n", |
1349 | sdp->disk->disk_name, srp->header.pack_id, (int) SRpnt->sr_result)); | 1275 | sdp->disk->disk_name, srp->header.pack_id, result)); |
1350 | srp->header.resid = SCpnt->resid; | 1276 | srp->header.resid = resid; |
1351 | ms = jiffies_to_msecs(jiffies); | 1277 | ms = jiffies_to_msecs(jiffies); |
1352 | srp->header.duration = (ms > srp->header.duration) ? | 1278 | srp->header.duration = (ms > srp->header.duration) ? |
1353 | (ms - srp->header.duration) : 0; | 1279 | (ms - srp->header.duration) : 0; |
1354 | if (0 != SRpnt->sr_result) { | 1280 | if (0 != result) { |
1355 | struct scsi_sense_hdr sshdr; | 1281 | struct scsi_sense_hdr sshdr; |
1356 | 1282 | ||
1357 | memcpy(srp->sense_b, SRpnt->sr_sense_buffer, | 1283 | memcpy(srp->sense_b, sense, sizeof (srp->sense_b)); |
1358 | sizeof (srp->sense_b)); | 1284 | srp->header.status = 0xff & result; |
1359 | srp->header.status = 0xff & SRpnt->sr_result; | 1285 | srp->header.masked_status = status_byte(result); |
1360 | srp->header.masked_status = status_byte(SRpnt->sr_result); | 1286 | srp->header.msg_status = msg_byte(result); |
1361 | srp->header.msg_status = msg_byte(SRpnt->sr_result); | 1287 | srp->header.host_status = host_byte(result); |
1362 | srp->header.host_status = host_byte(SRpnt->sr_result); | 1288 | srp->header.driver_status = driver_byte(result); |
1363 | srp->header.driver_status = driver_byte(SRpnt->sr_result); | ||
1364 | if ((sdp->sgdebug > 0) && | 1289 | if ((sdp->sgdebug > 0) && |
1365 | ((CHECK_CONDITION == srp->header.masked_status) || | 1290 | ((CHECK_CONDITION == srp->header.masked_status) || |
1366 | (COMMAND_TERMINATED == srp->header.masked_status))) | 1291 | (COMMAND_TERMINATED == srp->header.masked_status))) |
1367 | scsi_print_req_sense("sg_cmd_done", SRpnt); | 1292 | __scsi_print_sense("sg_cmd_done", sense, |
1293 | SCSI_SENSE_BUFFERSIZE); | ||
1368 | 1294 | ||
1369 | /* Following if statement is a patch supplied by Eric Youngdale */ | 1295 | /* Following if statement is a patch supplied by Eric Youngdale */ |
1370 | if (driver_byte(SRpnt->sr_result) != 0 | 1296 | if (driver_byte(result) != 0 |
1371 | && scsi_command_normalize_sense(SCpnt, &sshdr) | 1297 | && scsi_normalize_sense(sense, SCSI_SENSE_BUFFERSIZE, &sshdr) |
1372 | && !scsi_sense_is_deferred(&sshdr) | 1298 | && !scsi_sense_is_deferred(&sshdr) |
1373 | && sshdr.sense_key == UNIT_ATTENTION | 1299 | && sshdr.sense_key == UNIT_ATTENTION |
1374 | && sdp->device->removable) { | 1300 | && sdp->device->removable) { |
@@ -1379,8 +1305,6 @@ sg_cmd_done(Scsi_Cmnd * SCpnt) | |||
1379 | } | 1305 | } |
1380 | /* Rely on write phase to clean out srp status values, so no "else" */ | 1306 | /* Rely on write phase to clean out srp status values, so no "else" */ |
1381 | 1307 | ||
1382 | scsi_release_request(SRpnt); | ||
1383 | SRpnt = NULL; | ||
1384 | if (sfp->closed) { /* whoops this fd already released, cleanup */ | 1308 | if (sfp->closed) { /* whoops this fd already released, cleanup */ |
1385 | SCSI_LOG_TIMEOUT(1, printk("sg_cmd_done: already closed, freeing ...\n")); | 1309 | SCSI_LOG_TIMEOUT(1, printk("sg_cmd_done: already closed, freeing ...\n")); |
1386 | sg_finish_rem_req(srp); | 1310 | sg_finish_rem_req(srp); |
@@ -1431,6 +1355,7 @@ static int sg_sysfs_valid = 0; | |||
1431 | 1355 | ||
1432 | static int sg_alloc(struct gendisk *disk, struct scsi_device *scsidp) | 1356 | static int sg_alloc(struct gendisk *disk, struct scsi_device *scsidp) |
1433 | { | 1357 | { |
1358 | struct request_queue *q = scsidp->request_queue; | ||
1434 | Sg_device *sdp; | 1359 | Sg_device *sdp; |
1435 | unsigned long iflags; | 1360 | unsigned long iflags; |
1436 | void *old_sg_dev_arr = NULL; | 1361 | void *old_sg_dev_arr = NULL; |
@@ -1473,7 +1398,7 @@ static int sg_alloc(struct gendisk *disk, struct scsi_device *scsidp) | |||
1473 | sdp->disk = disk; | 1398 | sdp->disk = disk; |
1474 | sdp->device = scsidp; | 1399 | sdp->device = scsidp; |
1475 | init_waitqueue_head(&sdp->o_excl_wait); | 1400 | init_waitqueue_head(&sdp->o_excl_wait); |
1476 | sdp->sg_tablesize = scsidp->host ? scsidp->host->sg_tablesize : 0; | 1401 | sdp->sg_tablesize = min(q->max_hw_segments, q->max_phys_segments); |
1477 | 1402 | ||
1478 | sg_nr_dev++; | 1403 | sg_nr_dev++; |
1479 | sg_dev_arr[k] = sdp; | 1404 | sg_dev_arr[k] = sdp; |
@@ -1753,36 +1678,35 @@ sg_finish_rem_req(Sg_request * srp) | |||
1753 | static int | 1678 | static int |
1754 | sg_build_sgat(Sg_scatter_hold * schp, const Sg_fd * sfp, int tablesize) | 1679 | sg_build_sgat(Sg_scatter_hold * schp, const Sg_fd * sfp, int tablesize) |
1755 | { | 1680 | { |
1756 | int ret_sz; | 1681 | int sg_bufflen = tablesize * sizeof(struct scatterlist); |
1757 | int elem_sz = sizeof (struct scatterlist); | 1682 | unsigned int gfp_flags = GFP_ATOMIC | __GFP_NOWARN; |
1758 | int sg_bufflen = tablesize * elem_sz; | ||
1759 | int mx_sc_elems = tablesize; | ||
1760 | 1683 | ||
1761 | schp->buffer = sg_page_malloc(sg_bufflen, sfp->low_dma, &ret_sz); | 1684 | /* |
1685 | * TODO: test without low_dma, we should not need it since | ||
1686 | * the block layer will bounce the buffer for us | ||
1687 | * | ||
1688 | * XXX(hch): we shouldn't need GFP_DMA for the actual S/G list. | ||
1689 | */ | ||
1690 | if (sfp->low_dma) | ||
1691 | gfp_flags |= GFP_DMA; | ||
1692 | schp->buffer = kzalloc(sg_bufflen, gfp_flags); | ||
1762 | if (!schp->buffer) | 1693 | if (!schp->buffer) |
1763 | return -ENOMEM; | 1694 | return -ENOMEM; |
1764 | else if (ret_sz != sg_bufflen) { | ||
1765 | sg_bufflen = ret_sz; | ||
1766 | mx_sc_elems = sg_bufflen / elem_sz; | ||
1767 | } | ||
1768 | schp->sglist_len = sg_bufflen; | 1695 | schp->sglist_len = sg_bufflen; |
1769 | memset(schp->buffer, 0, sg_bufflen); | 1696 | return tablesize; /* number of scat_gath elements allocated */ |
1770 | return mx_sc_elems; /* number of scat_gath elements allocated */ | ||
1771 | } | 1697 | } |
1772 | 1698 | ||
1773 | #ifdef SG_ALLOW_DIO_CODE | 1699 | #ifdef SG_ALLOW_DIO_CODE |
1774 | /* vvvvvvvv following code borrowed from st driver's direct IO vvvvvvvvv */ | 1700 | /* vvvvvvvv following code borrowed from st driver's direct IO vvvvvvvvv */ |
1775 | /* hopefully this generic code will moved to a library */ | 1701 | /* TODO: hopefully we can use the generic block layer code */ |
1776 | 1702 | ||
1777 | /* Pin down user pages and put them into a scatter gather list. Returns <= 0 if | 1703 | /* Pin down user pages and put them into a scatter gather list. Returns <= 0 if |
1778 | - mapping of all pages not successful | 1704 | - mapping of all pages not successful |
1779 | - any page is above max_pfn | ||
1780 | (i.e., either completely successful or fails) | 1705 | (i.e., either completely successful or fails) |
1781 | */ | 1706 | */ |
1782 | static int | 1707 | static int |
1783 | st_map_user_pages(struct scatterlist *sgl, const unsigned int max_pages, | 1708 | st_map_user_pages(struct scatterlist *sgl, const unsigned int max_pages, |
1784 | unsigned long uaddr, size_t count, int rw, | 1709 | unsigned long uaddr, size_t count, int rw) |
1785 | unsigned long max_pfn) | ||
1786 | { | 1710 | { |
1787 | unsigned long end = (uaddr + count + PAGE_SIZE - 1) >> PAGE_SHIFT; | 1711 | unsigned long end = (uaddr + count + PAGE_SIZE - 1) >> PAGE_SHIFT; |
1788 | unsigned long start = uaddr >> PAGE_SHIFT; | 1712 | unsigned long start = uaddr >> PAGE_SHIFT; |
@@ -1828,21 +1752,17 @@ st_map_user_pages(struct scatterlist *sgl, const unsigned int max_pages, | |||
1828 | * probably wrong function for rw==WRITE | 1752 | * probably wrong function for rw==WRITE |
1829 | */ | 1753 | */ |
1830 | flush_dcache_page(pages[i]); | 1754 | flush_dcache_page(pages[i]); |
1831 | if (page_to_pfn(pages[i]) > max_pfn) | ||
1832 | goto out_unlock; | ||
1833 | /* ?? Is locking needed? I don't think so */ | 1755 | /* ?? Is locking needed? I don't think so */ |
1834 | /* if (TestSetPageLocked(pages[i])) | 1756 | /* if (TestSetPageLocked(pages[i])) |
1835 | goto out_unlock; */ | 1757 | goto out_unlock; */ |
1836 | } | 1758 | } |
1837 | 1759 | ||
1838 | /* Populate the scatter/gather list */ | 1760 | sgl[0].page = pages[0]; |
1839 | sgl[0].page = pages[0]; | ||
1840 | sgl[0].offset = uaddr & ~PAGE_MASK; | 1761 | sgl[0].offset = uaddr & ~PAGE_MASK; |
1841 | if (nr_pages > 1) { | 1762 | if (nr_pages > 1) { |
1842 | sgl[0].length = PAGE_SIZE - sgl[0].offset; | 1763 | sgl[0].length = PAGE_SIZE - sgl[0].offset; |
1843 | count -= sgl[0].length; | 1764 | count -= sgl[0].length; |
1844 | for (i=1; i < nr_pages ; i++) { | 1765 | for (i=1; i < nr_pages ; i++) { |
1845 | sgl[i].offset = 0; | ||
1846 | sgl[i].page = pages[i]; | 1766 | sgl[i].page = pages[i]; |
1847 | sgl[i].length = count < PAGE_SIZE ? count : PAGE_SIZE; | 1767 | sgl[i].length = count < PAGE_SIZE ? count : PAGE_SIZE; |
1848 | count -= PAGE_SIZE; | 1768 | count -= PAGE_SIZE; |
@@ -1855,10 +1775,6 @@ st_map_user_pages(struct scatterlist *sgl, const unsigned int max_pages, | |||
1855 | kfree(pages); | 1775 | kfree(pages); |
1856 | return nr_pages; | 1776 | return nr_pages; |
1857 | 1777 | ||
1858 | out_unlock: | ||
1859 | /* for (j=0; j < i; j++) | ||
1860 | unlock_page(pages[j]); */ | ||
1861 | res = 0; | ||
1862 | out_unmap: | 1778 | out_unmap: |
1863 | if (res > 0) { | 1779 | if (res > 0) { |
1864 | for (j=0; j < res; j++) | 1780 | for (j=0; j < res; j++) |
@@ -1904,20 +1820,20 @@ sg_build_direct(Sg_request * srp, Sg_fd * sfp, int dxfer_len) | |||
1904 | sg_io_hdr_t *hp = &srp->header; | 1820 | sg_io_hdr_t *hp = &srp->header; |
1905 | Sg_scatter_hold *schp = &srp->data; | 1821 | Sg_scatter_hold *schp = &srp->data; |
1906 | int sg_tablesize = sfp->parentdp->sg_tablesize; | 1822 | int sg_tablesize = sfp->parentdp->sg_tablesize; |
1907 | struct scatterlist *sgl; | ||
1908 | int mx_sc_elems, res; | 1823 | int mx_sc_elems, res; |
1909 | struct scsi_device *sdev = sfp->parentdp->device; | 1824 | struct scsi_device *sdev = sfp->parentdp->device; |
1910 | 1825 | ||
1911 | if (((unsigned long)hp->dxferp & | 1826 | if (((unsigned long)hp->dxferp & |
1912 | queue_dma_alignment(sdev->request_queue)) != 0) | 1827 | queue_dma_alignment(sdev->request_queue)) != 0) |
1913 | return 1; | 1828 | return 1; |
1829 | |||
1914 | mx_sc_elems = sg_build_sgat(schp, sfp, sg_tablesize); | 1830 | mx_sc_elems = sg_build_sgat(schp, sfp, sg_tablesize); |
1915 | if (mx_sc_elems <= 0) { | 1831 | if (mx_sc_elems <= 0) { |
1916 | return 1; | 1832 | return 1; |
1917 | } | 1833 | } |
1918 | sgl = (struct scatterlist *)schp->buffer; | 1834 | res = st_map_user_pages(schp->buffer, mx_sc_elems, |
1919 | res = st_map_user_pages(sgl, mx_sc_elems, (unsigned long)hp->dxferp, dxfer_len, | 1835 | (unsigned long)hp->dxferp, dxfer_len, |
1920 | (SG_DXFER_TO_DEV == hp->dxfer_direction) ? 1 : 0, ULONG_MAX); | 1836 | (SG_DXFER_TO_DEV == hp->dxfer_direction) ? 1 : 0); |
1921 | if (res <= 0) | 1837 | if (res <= 0) |
1922 | return 1; | 1838 | return 1; |
1923 | schp->k_use_sg = res; | 1839 | schp->k_use_sg = res; |
@@ -1932,9 +1848,11 @@ sg_build_direct(Sg_request * srp, Sg_fd * sfp, int dxfer_len) | |||
1932 | static int | 1848 | static int |
1933 | sg_build_indirect(Sg_scatter_hold * schp, Sg_fd * sfp, int buff_size) | 1849 | sg_build_indirect(Sg_scatter_hold * schp, Sg_fd * sfp, int buff_size) |
1934 | { | 1850 | { |
1935 | int ret_sz; | 1851 | struct scatterlist *sg; |
1852 | int ret_sz = 0, k, rem_sz, num, mx_sc_elems; | ||
1853 | int sg_tablesize = sfp->parentdp->sg_tablesize; | ||
1936 | int blk_size = buff_size; | 1854 | int blk_size = buff_size; |
1937 | unsigned char *p = NULL; | 1855 | struct page *p = NULL; |
1938 | 1856 | ||
1939 | if ((blk_size < 0) || (!sfp)) | 1857 | if ((blk_size < 0) || (!sfp)) |
1940 | return -EFAULT; | 1858 | return -EFAULT; |
@@ -1944,59 +1862,35 @@ sg_build_indirect(Sg_scatter_hold * schp, Sg_fd * sfp, int buff_size) | |||
1944 | blk_size = (blk_size + SG_SECTOR_MSK) & (~SG_SECTOR_MSK); | 1862 | blk_size = (blk_size + SG_SECTOR_MSK) & (~SG_SECTOR_MSK); |
1945 | SCSI_LOG_TIMEOUT(4, printk("sg_build_indirect: buff_size=%d, blk_size=%d\n", | 1863 | SCSI_LOG_TIMEOUT(4, printk("sg_build_indirect: buff_size=%d, blk_size=%d\n", |
1946 | buff_size, blk_size)); | 1864 | buff_size, blk_size)); |
1947 | if (blk_size <= SG_SCATTER_SZ) { | 1865 | |
1948 | p = sg_page_malloc(blk_size, sfp->low_dma, &ret_sz); | 1866 | /* N.B. ret_sz carried into this block ... */ |
1949 | if (!p) | 1867 | mx_sc_elems = sg_build_sgat(schp, sfp, sg_tablesize); |
1950 | return -ENOMEM; | 1868 | if (mx_sc_elems < 0) |
1951 | if (blk_size == ret_sz) { /* got it on the first attempt */ | 1869 | return mx_sc_elems; /* most likely -ENOMEM */ |
1952 | schp->k_use_sg = 0; | 1870 | |
1953 | schp->buffer = p; | 1871 | for (k = 0, sg = schp->buffer, rem_sz = blk_size; |
1954 | schp->bufflen = blk_size; | 1872 | (rem_sz > 0) && (k < mx_sc_elems); |
1955 | schp->b_malloc_len = blk_size; | 1873 | ++k, rem_sz -= ret_sz, ++sg) { |
1956 | return 0; | 1874 | |
1957 | } | 1875 | num = (rem_sz > SG_SCATTER_SZ) ? SG_SCATTER_SZ : rem_sz; |
1958 | } else { | 1876 | p = sg_page_malloc(num, sfp->low_dma, &ret_sz); |
1959 | p = sg_page_malloc(SG_SCATTER_SZ, sfp->low_dma, &ret_sz); | ||
1960 | if (!p) | 1877 | if (!p) |
1961 | return -ENOMEM; | 1878 | return -ENOMEM; |
1962 | } | 1879 | |
1963 | /* Want some local declarations, so start new block ... */ | 1880 | sg->page = p; |
1964 | { /* lets try and build a scatter gather list */ | 1881 | sg->length = ret_sz; |
1965 | struct scatterlist *sclp; | 1882 | |
1966 | int k, rem_sz, num; | 1883 | SCSI_LOG_TIMEOUT(5, printk("sg_build_build: k=%d, a=0x%p, len=%d\n", |
1967 | int mx_sc_elems; | 1884 | k, p, ret_sz)); |
1968 | int sg_tablesize = sfp->parentdp->sg_tablesize; | 1885 | } /* end of for loop */ |
1969 | int first = 1; | 1886 | |
1970 | 1887 | schp->k_use_sg = k; | |
1971 | /* N.B. ret_sz carried into this block ... */ | 1888 | SCSI_LOG_TIMEOUT(5, printk("sg_build_indirect: k_use_sg=%d, rem_sz=%d\n", k, rem_sz)); |
1972 | mx_sc_elems = sg_build_sgat(schp, sfp, sg_tablesize); | 1889 | |
1973 | if (mx_sc_elems < 0) | 1890 | schp->bufflen = blk_size; |
1974 | return mx_sc_elems; /* most likely -ENOMEM */ | 1891 | if (rem_sz > 0) /* must have failed */ |
1975 | 1892 | return -ENOMEM; | |
1976 | for (k = 0, sclp = schp->buffer, rem_sz = blk_size; | 1893 | |
1977 | (rem_sz > 0) && (k < mx_sc_elems); | ||
1978 | ++k, rem_sz -= ret_sz, ++sclp) { | ||
1979 | if (first) | ||
1980 | first = 0; | ||
1981 | else { | ||
1982 | num = | ||
1983 | (rem_sz > | ||
1984 | SG_SCATTER_SZ) ? SG_SCATTER_SZ : rem_sz; | ||
1985 | p = sg_page_malloc(num, sfp->low_dma, &ret_sz); | ||
1986 | if (!p) | ||
1987 | break; | ||
1988 | } | ||
1989 | sg_set_buf(sclp, p, ret_sz); | ||
1990 | |||
1991 | SCSI_LOG_TIMEOUT(5, printk("sg_build_build: k=%d, a=0x%p, len=%d\n", | ||
1992 | k, sg_scatg2virt(sclp), ret_sz)); | ||
1993 | } /* end of for loop */ | ||
1994 | schp->k_use_sg = k; | ||
1995 | SCSI_LOG_TIMEOUT(5, printk("sg_build_indirect: k_use_sg=%d, rem_sz=%d\n", k, rem_sz)); | ||
1996 | schp->bufflen = blk_size; | ||
1997 | if (rem_sz > 0) /* must have failed */ | ||
1998 | return -ENOMEM; | ||
1999 | } | ||
2000 | return 0; | 1894 | return 0; |
2001 | } | 1895 | } |
2002 | 1896 | ||
@@ -2005,6 +1899,7 @@ sg_write_xfer(Sg_request * srp) | |||
2005 | { | 1899 | { |
2006 | sg_io_hdr_t *hp = &srp->header; | 1900 | sg_io_hdr_t *hp = &srp->header; |
2007 | Sg_scatter_hold *schp = &srp->data; | 1901 | Sg_scatter_hold *schp = &srp->data; |
1902 | struct scatterlist *sg = schp->buffer; | ||
2008 | int num_xfer = 0; | 1903 | int num_xfer = 0; |
2009 | int j, k, onum, usglen, ksglen, res; | 1904 | int j, k, onum, usglen, ksglen, res; |
2010 | int iovec_count = (int) hp->iovec_count; | 1905 | int iovec_count = (int) hp->iovec_count; |
@@ -2033,63 +1928,45 @@ sg_write_xfer(Sg_request * srp) | |||
2033 | } else | 1928 | } else |
2034 | onum = 1; | 1929 | onum = 1; |
2035 | 1930 | ||
2036 | if (0 == schp->k_use_sg) { /* kernel has single buffer */ | 1931 | ksglen = sg->length; |
2037 | for (j = 0, p = schp->buffer; j < onum; ++j) { | 1932 | p = page_address(sg->page); |
2038 | res = sg_u_iovec(hp, iovec_count, j, 1, &usglen, &up); | 1933 | for (j = 0, k = 0; j < onum; ++j) { |
2039 | if (res) | 1934 | res = sg_u_iovec(hp, iovec_count, j, 1, &usglen, &up); |
2040 | return res; | 1935 | if (res) |
2041 | usglen = (num_xfer > usglen) ? usglen : num_xfer; | 1936 | return res; |
2042 | if (__copy_from_user(p, up, usglen)) | 1937 | |
2043 | return -EFAULT; | 1938 | for (; p; ++sg, ksglen = sg->length, |
2044 | p += usglen; | 1939 | p = page_address(sg->page)) { |
2045 | num_xfer -= usglen; | 1940 | if (usglen <= 0) |
2046 | if (num_xfer <= 0) | 1941 | break; |
2047 | return 0; | 1942 | if (ksglen > usglen) { |
2048 | } | 1943 | if (usglen >= num_xfer) { |
2049 | } else { /* kernel using scatter gather list */ | 1944 | if (__copy_from_user(p, up, num_xfer)) |
2050 | struct scatterlist *sclp = (struct scatterlist *) schp->buffer; | ||
2051 | |||
2052 | ksglen = (int) sclp->length; | ||
2053 | p = sg_scatg2virt(sclp); | ||
2054 | for (j = 0, k = 0; j < onum; ++j) { | ||
2055 | res = sg_u_iovec(hp, iovec_count, j, 1, &usglen, &up); | ||
2056 | if (res) | ||
2057 | return res; | ||
2058 | |||
2059 | for (; p; ++sclp, ksglen = (int) sclp->length, | ||
2060 | p = sg_scatg2virt(sclp)) { | ||
2061 | if (usglen <= 0) | ||
2062 | break; | ||
2063 | if (ksglen > usglen) { | ||
2064 | if (usglen >= num_xfer) { | ||
2065 | if (__copy_from_user | ||
2066 | (p, up, num_xfer)) | ||
2067 | return -EFAULT; | ||
2068 | return 0; | ||
2069 | } | ||
2070 | if (__copy_from_user(p, up, usglen)) | ||
2071 | return -EFAULT; | ||
2072 | p += usglen; | ||
2073 | ksglen -= usglen; | ||
2074 | break; | ||
2075 | } else { | ||
2076 | if (ksglen >= num_xfer) { | ||
2077 | if (__copy_from_user | ||
2078 | (p, up, num_xfer)) | ||
2079 | return -EFAULT; | ||
2080 | return 0; | ||
2081 | } | ||
2082 | if (__copy_from_user(p, up, ksglen)) | ||
2083 | return -EFAULT; | 1945 | return -EFAULT; |
2084 | up += ksglen; | 1946 | return 0; |
2085 | usglen -= ksglen; | ||
2086 | } | 1947 | } |
2087 | ++k; | 1948 | if (__copy_from_user(p, up, usglen)) |
2088 | if (k >= schp->k_use_sg) | 1949 | return -EFAULT; |
1950 | p += usglen; | ||
1951 | ksglen -= usglen; | ||
1952 | break; | ||
1953 | } else { | ||
1954 | if (ksglen >= num_xfer) { | ||
1955 | if (__copy_from_user(p, up, num_xfer)) | ||
1956 | return -EFAULT; | ||
2089 | return 0; | 1957 | return 0; |
1958 | } | ||
1959 | if (__copy_from_user(p, up, ksglen)) | ||
1960 | return -EFAULT; | ||
1961 | up += ksglen; | ||
1962 | usglen -= ksglen; | ||
2090 | } | 1963 | } |
1964 | ++k; | ||
1965 | if (k >= schp->k_use_sg) | ||
1966 | return 0; | ||
2091 | } | 1967 | } |
2092 | } | 1968 | } |
1969 | |||
2093 | return 0; | 1970 | return 0; |
2094 | } | 1971 | } |
2095 | 1972 | ||
@@ -2127,29 +2004,25 @@ sg_remove_scat(Sg_scatter_hold * schp) | |||
2127 | { | 2004 | { |
2128 | SCSI_LOG_TIMEOUT(4, printk("sg_remove_scat: k_use_sg=%d\n", schp->k_use_sg)); | 2005 | SCSI_LOG_TIMEOUT(4, printk("sg_remove_scat: k_use_sg=%d\n", schp->k_use_sg)); |
2129 | if (schp->buffer && (schp->sglist_len > 0)) { | 2006 | if (schp->buffer && (schp->sglist_len > 0)) { |
2130 | struct scatterlist *sclp = (struct scatterlist *) schp->buffer; | 2007 | struct scatterlist *sg = schp->buffer; |
2131 | 2008 | ||
2132 | if (schp->dio_in_use) { | 2009 | if (schp->dio_in_use) { |
2133 | #ifdef SG_ALLOW_DIO_CODE | 2010 | #ifdef SG_ALLOW_DIO_CODE |
2134 | st_unmap_user_pages(sclp, schp->k_use_sg, TRUE); | 2011 | st_unmap_user_pages(sg, schp->k_use_sg, TRUE); |
2135 | #endif | 2012 | #endif |
2136 | } else { | 2013 | } else { |
2137 | int k; | 2014 | int k; |
2138 | 2015 | ||
2139 | for (k = 0; (k < schp->k_use_sg) && sg_scatg2virt(sclp); | 2016 | for (k = 0; (k < schp->k_use_sg) && sg->page; |
2140 | ++k, ++sclp) { | 2017 | ++k, ++sg) { |
2141 | SCSI_LOG_TIMEOUT(5, printk( | 2018 | SCSI_LOG_TIMEOUT(5, printk( |
2142 | "sg_remove_scat: k=%d, a=0x%p, len=%d\n", | 2019 | "sg_remove_scat: k=%d, a=0x%p, len=%d\n", |
2143 | k, sg_scatg2virt(sclp), sclp->length)); | 2020 | k, sg->page, sg->length)); |
2144 | sg_page_free(sg_scatg2virt(sclp), sclp->length); | 2021 | sg_page_free(sg->page, sg->length); |
2145 | sclp->page = NULL; | ||
2146 | sclp->offset = 0; | ||
2147 | sclp->length = 0; | ||
2148 | } | 2022 | } |
2149 | } | 2023 | } |
2150 | sg_page_free(schp->buffer, schp->sglist_len); | 2024 | kfree(schp->buffer); |
2151 | } else if (schp->buffer) | 2025 | } |
2152 | sg_page_free(schp->buffer, schp->b_malloc_len); | ||
2153 | memset(schp, 0, sizeof (*schp)); | 2026 | memset(schp, 0, sizeof (*schp)); |
2154 | } | 2027 | } |
2155 | 2028 | ||
@@ -2158,6 +2031,7 @@ sg_read_xfer(Sg_request * srp) | |||
2158 | { | 2031 | { |
2159 | sg_io_hdr_t *hp = &srp->header; | 2032 | sg_io_hdr_t *hp = &srp->header; |
2160 | Sg_scatter_hold *schp = &srp->data; | 2033 | Sg_scatter_hold *schp = &srp->data; |
2034 | struct scatterlist *sg = schp->buffer; | ||
2161 | int num_xfer = 0; | 2035 | int num_xfer = 0; |
2162 | int j, k, onum, usglen, ksglen, res; | 2036 | int j, k, onum, usglen, ksglen, res; |
2163 | int iovec_count = (int) hp->iovec_count; | 2037 | int iovec_count = (int) hp->iovec_count; |
@@ -2186,63 +2060,45 @@ sg_read_xfer(Sg_request * srp) | |||
2186 | } else | 2060 | } else |
2187 | onum = 1; | 2061 | onum = 1; |
2188 | 2062 | ||
2189 | if (0 == schp->k_use_sg) { /* kernel has single buffer */ | 2063 | p = page_address(sg->page); |
2190 | for (j = 0, p = schp->buffer; j < onum; ++j) { | 2064 | ksglen = sg->length; |
2191 | res = sg_u_iovec(hp, iovec_count, j, 0, &usglen, &up); | 2065 | for (j = 0, k = 0; j < onum; ++j) { |
2192 | if (res) | 2066 | res = sg_u_iovec(hp, iovec_count, j, 0, &usglen, &up); |
2193 | return res; | 2067 | if (res) |
2194 | usglen = (num_xfer > usglen) ? usglen : num_xfer; | 2068 | return res; |
2195 | if (__copy_to_user(up, p, usglen)) | 2069 | |
2196 | return -EFAULT; | 2070 | for (; p; ++sg, ksglen = sg->length, |
2197 | p += usglen; | 2071 | p = page_address(sg->page)) { |
2198 | num_xfer -= usglen; | 2072 | if (usglen <= 0) |
2199 | if (num_xfer <= 0) | 2073 | break; |
2200 | return 0; | 2074 | if (ksglen > usglen) { |
2201 | } | 2075 | if (usglen >= num_xfer) { |
2202 | } else { /* kernel using scatter gather list */ | 2076 | if (__copy_to_user(up, p, num_xfer)) |
2203 | struct scatterlist *sclp = (struct scatterlist *) schp->buffer; | ||
2204 | |||
2205 | ksglen = (int) sclp->length; | ||
2206 | p = sg_scatg2virt(sclp); | ||
2207 | for (j = 0, k = 0; j < onum; ++j) { | ||
2208 | res = sg_u_iovec(hp, iovec_count, j, 0, &usglen, &up); | ||
2209 | if (res) | ||
2210 | return res; | ||
2211 | |||
2212 | for (; p; ++sclp, ksglen = (int) sclp->length, | ||
2213 | p = sg_scatg2virt(sclp)) { | ||
2214 | if (usglen <= 0) | ||
2215 | break; | ||
2216 | if (ksglen > usglen) { | ||
2217 | if (usglen >= num_xfer) { | ||
2218 | if (__copy_to_user | ||
2219 | (up, p, num_xfer)) | ||
2220 | return -EFAULT; | ||
2221 | return 0; | ||
2222 | } | ||
2223 | if (__copy_to_user(up, p, usglen)) | ||
2224 | return -EFAULT; | ||
2225 | p += usglen; | ||
2226 | ksglen -= usglen; | ||
2227 | break; | ||
2228 | } else { | ||
2229 | if (ksglen >= num_xfer) { | ||
2230 | if (__copy_to_user | ||
2231 | (up, p, num_xfer)) | ||
2232 | return -EFAULT; | ||
2233 | return 0; | ||
2234 | } | ||
2235 | if (__copy_to_user(up, p, ksglen)) | ||
2236 | return -EFAULT; | 2077 | return -EFAULT; |
2237 | up += ksglen; | 2078 | return 0; |
2238 | usglen -= ksglen; | ||
2239 | } | 2079 | } |
2240 | ++k; | 2080 | if (__copy_to_user(up, p, usglen)) |
2241 | if (k >= schp->k_use_sg) | 2081 | return -EFAULT; |
2082 | p += usglen; | ||
2083 | ksglen -= usglen; | ||
2084 | break; | ||
2085 | } else { | ||
2086 | if (ksglen >= num_xfer) { | ||
2087 | if (__copy_to_user(up, p, num_xfer)) | ||
2088 | return -EFAULT; | ||
2242 | return 0; | 2089 | return 0; |
2090 | } | ||
2091 | if (__copy_to_user(up, p, ksglen)) | ||
2092 | return -EFAULT; | ||
2093 | up += ksglen; | ||
2094 | usglen -= ksglen; | ||
2243 | } | 2095 | } |
2096 | ++k; | ||
2097 | if (k >= schp->k_use_sg) | ||
2098 | return 0; | ||
2244 | } | 2099 | } |
2245 | } | 2100 | } |
2101 | |||
2246 | return 0; | 2102 | return 0; |
2247 | } | 2103 | } |
2248 | 2104 | ||
@@ -2250,37 +2106,32 @@ static int | |||
2250 | sg_read_oxfer(Sg_request * srp, char __user *outp, int num_read_xfer) | 2106 | sg_read_oxfer(Sg_request * srp, char __user *outp, int num_read_xfer) |
2251 | { | 2107 | { |
2252 | Sg_scatter_hold *schp = &srp->data; | 2108 | Sg_scatter_hold *schp = &srp->data; |
2109 | struct scatterlist *sg = schp->buffer; | ||
2110 | int k, num; | ||
2253 | 2111 | ||
2254 | SCSI_LOG_TIMEOUT(4, printk("sg_read_oxfer: num_read_xfer=%d\n", | 2112 | SCSI_LOG_TIMEOUT(4, printk("sg_read_oxfer: num_read_xfer=%d\n", |
2255 | num_read_xfer)); | 2113 | num_read_xfer)); |
2256 | if ((!outp) || (num_read_xfer <= 0)) | 2114 | if ((!outp) || (num_read_xfer <= 0)) |
2257 | return 0; | 2115 | return 0; |
2258 | if (schp->k_use_sg > 0) { | 2116 | |
2259 | int k, num; | 2117 | for (k = 0; (k < schp->k_use_sg) && sg->page; ++k, ++sg) { |
2260 | struct scatterlist *sclp = (struct scatterlist *) schp->buffer; | 2118 | num = sg->length; |
2261 | 2119 | if (num > num_read_xfer) { | |
2262 | for (k = 0; (k < schp->k_use_sg) && sg_scatg2virt(sclp); | 2120 | if (__copy_to_user(outp, page_address(sg->page), |
2263 | ++k, ++sclp) { | 2121 | num_read_xfer)) |
2264 | num = (int) sclp->length; | 2122 | return -EFAULT; |
2265 | if (num > num_read_xfer) { | 2123 | break; |
2266 | if (__copy_to_user | 2124 | } else { |
2267 | (outp, sg_scatg2virt(sclp), num_read_xfer)) | 2125 | if (__copy_to_user(outp, page_address(sg->page), |
2268 | return -EFAULT; | 2126 | num)) |
2127 | return -EFAULT; | ||
2128 | num_read_xfer -= num; | ||
2129 | if (num_read_xfer <= 0) | ||
2269 | break; | 2130 | break; |
2270 | } else { | 2131 | outp += num; |
2271 | if (__copy_to_user | ||
2272 | (outp, sg_scatg2virt(sclp), num)) | ||
2273 | return -EFAULT; | ||
2274 | num_read_xfer -= num; | ||
2275 | if (num_read_xfer <= 0) | ||
2276 | break; | ||
2277 | outp += num; | ||
2278 | } | ||
2279 | } | 2132 | } |
2280 | } else { | ||
2281 | if (__copy_to_user(outp, schp->buffer, num_read_xfer)) | ||
2282 | return -EFAULT; | ||
2283 | } | 2133 | } |
2134 | |||
2284 | return 0; | 2135 | return 0; |
2285 | } | 2136 | } |
2286 | 2137 | ||
@@ -2306,44 +2157,31 @@ sg_link_reserve(Sg_fd * sfp, Sg_request * srp, int size) | |||
2306 | { | 2157 | { |
2307 | Sg_scatter_hold *req_schp = &srp->data; | 2158 | Sg_scatter_hold *req_schp = &srp->data; |
2308 | Sg_scatter_hold *rsv_schp = &sfp->reserve; | 2159 | Sg_scatter_hold *rsv_schp = &sfp->reserve; |
2160 | struct scatterlist *sg = rsv_schp->buffer; | ||
2161 | int k, num, rem; | ||
2309 | 2162 | ||
2310 | srp->res_used = 1; | 2163 | srp->res_used = 1; |
2311 | SCSI_LOG_TIMEOUT(4, printk("sg_link_reserve: size=%d\n", size)); | 2164 | SCSI_LOG_TIMEOUT(4, printk("sg_link_reserve: size=%d\n", size)); |
2312 | size = (size + 1) & (~1); /* round to even for aha1542 */ | 2165 | rem = size = (size + 1) & (~1); /* round to even for aha1542 */ |
2313 | if (rsv_schp->k_use_sg > 0) { | 2166 | |
2314 | int k, num; | 2167 | for (k = 0; k < rsv_schp->k_use_sg; ++k, ++sg) { |
2315 | int rem = size; | 2168 | num = sg->length; |
2316 | struct scatterlist *sclp = | 2169 | if (rem <= num) { |
2317 | (struct scatterlist *) rsv_schp->buffer; | 2170 | sfp->save_scat_len = num; |
2318 | 2171 | sg->length = rem; | |
2319 | for (k = 0; k < rsv_schp->k_use_sg; ++k, ++sclp) { | 2172 | req_schp->k_use_sg = k + 1; |
2320 | num = (int) sclp->length; | 2173 | req_schp->sglist_len = rsv_schp->sglist_len; |
2321 | if (rem <= num) { | 2174 | req_schp->buffer = rsv_schp->buffer; |
2322 | if (0 == k) { | 2175 | |
2323 | req_schp->k_use_sg = 0; | 2176 | req_schp->bufflen = size; |
2324 | req_schp->buffer = sg_scatg2virt(sclp); | 2177 | req_schp->b_malloc_len = rsv_schp->b_malloc_len; |
2325 | } else { | 2178 | break; |
2326 | sfp->save_scat_len = num; | 2179 | } else |
2327 | sclp->length = (unsigned) rem; | 2180 | rem -= num; |
2328 | req_schp->k_use_sg = k + 1; | ||
2329 | req_schp->sglist_len = | ||
2330 | rsv_schp->sglist_len; | ||
2331 | req_schp->buffer = rsv_schp->buffer; | ||
2332 | } | ||
2333 | req_schp->bufflen = size; | ||
2334 | req_schp->b_malloc_len = rsv_schp->b_malloc_len; | ||
2335 | break; | ||
2336 | } else | ||
2337 | rem -= num; | ||
2338 | } | ||
2339 | if (k >= rsv_schp->k_use_sg) | ||
2340 | SCSI_LOG_TIMEOUT(1, printk("sg_link_reserve: BAD size\n")); | ||
2341 | } else { | ||
2342 | req_schp->k_use_sg = 0; | ||
2343 | req_schp->bufflen = size; | ||
2344 | req_schp->buffer = rsv_schp->buffer; | ||
2345 | req_schp->b_malloc_len = rsv_schp->b_malloc_len; | ||
2346 | } | 2181 | } |
2182 | |||
2183 | if (k >= rsv_schp->k_use_sg) | ||
2184 | SCSI_LOG_TIMEOUT(1, printk("sg_link_reserve: BAD size\n")); | ||
2347 | } | 2185 | } |
2348 | 2186 | ||
2349 | static void | 2187 | static void |
@@ -2355,11 +2193,10 @@ sg_unlink_reserve(Sg_fd * sfp, Sg_request * srp) | |||
2355 | SCSI_LOG_TIMEOUT(4, printk("sg_unlink_reserve: req->k_use_sg=%d\n", | 2193 | SCSI_LOG_TIMEOUT(4, printk("sg_unlink_reserve: req->k_use_sg=%d\n", |
2356 | (int) req_schp->k_use_sg)); | 2194 | (int) req_schp->k_use_sg)); |
2357 | if ((rsv_schp->k_use_sg > 0) && (req_schp->k_use_sg > 0)) { | 2195 | if ((rsv_schp->k_use_sg > 0) && (req_schp->k_use_sg > 0)) { |
2358 | struct scatterlist *sclp = | 2196 | struct scatterlist *sg = rsv_schp->buffer; |
2359 | (struct scatterlist *) rsv_schp->buffer; | ||
2360 | 2197 | ||
2361 | if (sfp->save_scat_len > 0) | 2198 | if (sfp->save_scat_len > 0) |
2362 | (sclp + (req_schp->k_use_sg - 1))->length = | 2199 | (sg + (req_schp->k_use_sg - 1))->length = |
2363 | (unsigned) sfp->save_scat_len; | 2200 | (unsigned) sfp->save_scat_len; |
2364 | else | 2201 | else |
2365 | SCSI_LOG_TIMEOUT(1, printk ("sg_unlink_reserve: BAD save_scat_len\n")); | 2202 | SCSI_LOG_TIMEOUT(1, printk ("sg_unlink_reserve: BAD save_scat_len\n")); |
@@ -2445,7 +2282,6 @@ sg_add_request(Sg_fd * sfp) | |||
2445 | if (resp) { | 2282 | if (resp) { |
2446 | resp->nextrp = NULL; | 2283 | resp->nextrp = NULL; |
2447 | resp->header.duration = jiffies_to_msecs(jiffies); | 2284 | resp->header.duration = jiffies_to_msecs(jiffies); |
2448 | resp->my_cmdp = NULL; | ||
2449 | } | 2285 | } |
2450 | write_unlock_irqrestore(&sfp->rq_list_lock, iflags); | 2286 | write_unlock_irqrestore(&sfp->rq_list_lock, iflags); |
2451 | return resp; | 2287 | return resp; |
@@ -2463,8 +2299,6 @@ sg_remove_request(Sg_fd * sfp, Sg_request * srp) | |||
2463 | if ((!sfp) || (!srp) || (!sfp->headrp)) | 2299 | if ((!sfp) || (!srp) || (!sfp->headrp)) |
2464 | return res; | 2300 | return res; |
2465 | write_lock_irqsave(&sfp->rq_list_lock, iflags); | 2301 | write_lock_irqsave(&sfp->rq_list_lock, iflags); |
2466 | if (srp->my_cmdp) | ||
2467 | srp->my_cmdp->upper_private_data = NULL; | ||
2468 | prev_rp = sfp->headrp; | 2302 | prev_rp = sfp->headrp; |
2469 | if (srp == prev_rp) { | 2303 | if (srp == prev_rp) { |
2470 | sfp->headrp = prev_rp->nextrp; | 2304 | sfp->headrp = prev_rp->nextrp; |
@@ -2507,10 +2341,10 @@ sg_add_sfp(Sg_device * sdp, int dev) | |||
2507 | Sg_fd *sfp; | 2341 | Sg_fd *sfp; |
2508 | unsigned long iflags; | 2342 | unsigned long iflags; |
2509 | 2343 | ||
2510 | sfp = (Sg_fd *) sg_page_malloc(sizeof (Sg_fd), 0, NULL); | 2344 | sfp = kzalloc(sizeof(*sfp), GFP_ATOMIC | __GFP_NOWARN); |
2511 | if (!sfp) | 2345 | if (!sfp) |
2512 | return NULL; | 2346 | return NULL; |
2513 | memset(sfp, 0, sizeof (Sg_fd)); | 2347 | |
2514 | init_waitqueue_head(&sfp->read_wait); | 2348 | init_waitqueue_head(&sfp->read_wait); |
2515 | rwlock_init(&sfp->rq_list_lock); | 2349 | rwlock_init(&sfp->rq_list_lock); |
2516 | 2350 | ||
@@ -2567,7 +2401,7 @@ __sg_remove_sfp(Sg_device * sdp, Sg_fd * sfp) | |||
2567 | } | 2401 | } |
2568 | sfp->parentdp = NULL; | 2402 | sfp->parentdp = NULL; |
2569 | SCSI_LOG_TIMEOUT(6, printk("__sg_remove_sfp: sfp=0x%p\n", sfp)); | 2403 | SCSI_LOG_TIMEOUT(6, printk("__sg_remove_sfp: sfp=0x%p\n", sfp)); |
2570 | sg_page_free((char *) sfp, sizeof (Sg_fd)); | 2404 | kfree(sfp); |
2571 | } | 2405 | } |
2572 | 2406 | ||
2573 | /* Returns 0 in normal case, 1 when detached and sdp object removed */ | 2407 | /* Returns 0 in normal case, 1 when detached and sdp object removed */ |
@@ -2632,10 +2466,10 @@ sg_res_in_use(Sg_fd * sfp) | |||
2632 | } | 2466 | } |
2633 | 2467 | ||
2634 | /* If retSzp==NULL want exact size or fail */ | 2468 | /* If retSzp==NULL want exact size or fail */ |
2635 | static char * | 2469 | static struct page * |
2636 | sg_page_malloc(int rqSz, int lowDma, int *retSzp) | 2470 | sg_page_malloc(int rqSz, int lowDma, int *retSzp) |
2637 | { | 2471 | { |
2638 | char *resp = NULL; | 2472 | struct page *resp = NULL; |
2639 | gfp_t page_mask; | 2473 | gfp_t page_mask; |
2640 | int order, a_size; | 2474 | int order, a_size; |
2641 | int resSz = rqSz; | 2475 | int resSz = rqSz; |
@@ -2650,11 +2484,11 @@ sg_page_malloc(int rqSz, int lowDma, int *retSzp) | |||
2650 | 2484 | ||
2651 | for (order = 0, a_size = PAGE_SIZE; a_size < rqSz; | 2485 | for (order = 0, a_size = PAGE_SIZE; a_size < rqSz; |
2652 | order++, a_size <<= 1) ; | 2486 | order++, a_size <<= 1) ; |
2653 | resp = (char *) __get_free_pages(page_mask, order); | 2487 | resp = alloc_pages(page_mask, order); |
2654 | while ((!resp) && order && retSzp) { | 2488 | while ((!resp) && order && retSzp) { |
2655 | --order; | 2489 | --order; |
2656 | a_size >>= 1; /* divide by 2, until PAGE_SIZE */ | 2490 | a_size >>= 1; /* divide by 2, until PAGE_SIZE */ |
2657 | resp = (char *) __get_free_pages(page_mask, order); /* try half */ | 2491 | resp = alloc_pages(page_mask, order); /* try half */ |
2658 | resSz = a_size; | 2492 | resSz = a_size; |
2659 | } | 2493 | } |
2660 | if (resp) { | 2494 | if (resp) { |
@@ -2667,15 +2501,15 @@ sg_page_malloc(int rqSz, int lowDma, int *retSzp) | |||
2667 | } | 2501 | } |
2668 | 2502 | ||
2669 | static void | 2503 | static void |
2670 | sg_page_free(char *buff, int size) | 2504 | sg_page_free(struct page *page, int size) |
2671 | { | 2505 | { |
2672 | int order, a_size; | 2506 | int order, a_size; |
2673 | 2507 | ||
2674 | if (!buff) | 2508 | if (!page) |
2675 | return; | 2509 | return; |
2676 | for (order = 0, a_size = PAGE_SIZE; a_size < size; | 2510 | for (order = 0, a_size = PAGE_SIZE; a_size < size; |
2677 | order++, a_size <<= 1) ; | 2511 | order++, a_size <<= 1) ; |
2678 | free_pages((unsigned long) buff, order); | 2512 | __free_pages(page, order); |
2679 | } | 2513 | } |
2680 | 2514 | ||
2681 | #ifndef MAINTENANCE_IN_CMD | 2515 | #ifndef MAINTENANCE_IN_CMD |
@@ -3067,13 +2901,11 @@ static void sg_proc_debug_helper(struct seq_file *s, Sg_device * sdp) | |||
3067 | cp = " "; | 2901 | cp = " "; |
3068 | } | 2902 | } |
3069 | seq_printf(s, cp); | 2903 | seq_printf(s, cp); |
3070 | blen = srp->my_cmdp ? | 2904 | blen = srp->data.bufflen; |
3071 | srp->my_cmdp->sr_bufflen : srp->data.bufflen; | 2905 | usg = srp->data.k_use_sg; |
3072 | usg = srp->my_cmdp ? | ||
3073 | srp->my_cmdp->sr_use_sg : srp->data.k_use_sg; | ||
3074 | seq_printf(s, srp->done ? | 2906 | seq_printf(s, srp->done ? |
3075 | ((1 == srp->done) ? "rcv:" : "fin:") | 2907 | ((1 == srp->done) ? "rcv:" : "fin:") |
3076 | : (srp->my_cmdp ? "act:" : "prior:")); | 2908 | : "act:"); |
3077 | seq_printf(s, " id=%d blen=%d", | 2909 | seq_printf(s, " id=%d blen=%d", |
3078 | srp->header.pack_id, blen); | 2910 | srp->header.pack_id, blen); |
3079 | if (srp->done) | 2911 | if (srp->done) |
diff --git a/drivers/scsi/sr.c b/drivers/scsi/sr.c index fb4012b5c188..a4d9be7c6874 100644 --- a/drivers/scsi/sr.c +++ b/drivers/scsi/sr.c | |||
@@ -320,7 +320,7 @@ static int sr_init_command(struct scsi_cmnd * SCpnt) | |||
320 | * these are already setup, just copy cdb basically | 320 | * these are already setup, just copy cdb basically |
321 | */ | 321 | */ |
322 | if (SCpnt->request->flags & REQ_BLOCK_PC) { | 322 | if (SCpnt->request->flags & REQ_BLOCK_PC) { |
323 | scsi_setup_blk_pc_cmnd(SCpnt, MAX_RETRIES); | 323 | scsi_setup_blk_pc_cmnd(SCpnt); |
324 | 324 | ||
325 | if (SCpnt->timeout_per_command) | 325 | if (SCpnt->timeout_per_command) |
326 | timeout = SCpnt->timeout_per_command; | 326 | timeout = SCpnt->timeout_per_command; |
@@ -716,7 +716,7 @@ static void get_capabilities(struct scsi_cd *cd) | |||
716 | unsigned int the_result; | 716 | unsigned int the_result; |
717 | int retries, rc, n; | 717 | int retries, rc, n; |
718 | 718 | ||
719 | static char *loadmech[] = | 719 | static const char *loadmech[] = |
720 | { | 720 | { |
721 | "caddy", | 721 | "caddy", |
722 | "tray", | 722 | "tray", |
diff --git a/drivers/scsi/sr_vendor.c b/drivers/scsi/sr_vendor.c index 78274dc91f5c..9dde8df2f5c9 100644 --- a/drivers/scsi/sr_vendor.c +++ b/drivers/scsi/sr_vendor.c | |||
@@ -68,8 +68,8 @@ void sr_vendor_init(Scsi_CD *cd) | |||
68 | #ifndef CONFIG_BLK_DEV_SR_VENDOR | 68 | #ifndef CONFIG_BLK_DEV_SR_VENDOR |
69 | cd->vendor = VENDOR_SCSI3; | 69 | cd->vendor = VENDOR_SCSI3; |
70 | #else | 70 | #else |
71 | char *vendor = cd->device->vendor; | 71 | const char *vendor = cd->device->vendor; |
72 | char *model = cd->device->model; | 72 | const char *model = cd->device->model; |
73 | 73 | ||
74 | /* default */ | 74 | /* default */ |
75 | cd->vendor = VENDOR_SCSI3; | 75 | cd->vendor = VENDOR_SCSI3; |
diff --git a/drivers/scsi/st.c b/drivers/scsi/st.c index dd592f6a2529..c4aade8f5345 100644 --- a/drivers/scsi/st.c +++ b/drivers/scsi/st.c | |||
@@ -17,7 +17,7 @@ | |||
17 | Last modified: 18-JAN-1998 Richard Gooch <rgooch@atnf.csiro.au> Devfs support | 17 | Last modified: 18-JAN-1998 Richard Gooch <rgooch@atnf.csiro.au> Devfs support |
18 | */ | 18 | */ |
19 | 19 | ||
20 | static char *verstr = "20050830"; | 20 | static const char *verstr = "20050830"; |
21 | 21 | ||
22 | #include <linux/module.h> | 22 | #include <linux/module.h> |
23 | 23 | ||
@@ -50,7 +50,6 @@ static char *verstr = "20050830"; | |||
50 | #include <scsi/scsi_eh.h> | 50 | #include <scsi/scsi_eh.h> |
51 | #include <scsi/scsi_host.h> | 51 | #include <scsi/scsi_host.h> |
52 | #include <scsi/scsi_ioctl.h> | 52 | #include <scsi/scsi_ioctl.h> |
53 | #include <scsi/scsi_request.h> | ||
54 | #include <scsi/sg.h> | 53 | #include <scsi/sg.h> |
55 | 54 | ||
56 | 55 | ||
@@ -134,7 +133,7 @@ static struct st_dev_parm { | |||
134 | #endif | 133 | #endif |
135 | /* Bit reversed order to get same names for same minors with all | 134 | /* Bit reversed order to get same names for same minors with all |
136 | mode counts */ | 135 | mode counts */ |
137 | static char *st_formats[] = { | 136 | static const char *st_formats[] = { |
138 | "", "r", "k", "s", "l", "t", "o", "u", | 137 | "", "r", "k", "s", "l", "t", "o", "u", |
139 | "m", "v", "p", "x", "a", "y", "q", "z"}; | 138 | "m", "v", "p", "x", "a", "y", "q", "z"}; |
140 | 139 | ||
@@ -188,8 +187,6 @@ static int from_buffer(struct st_buffer *, char __user *, int); | |||
188 | static void move_buffer_data(struct st_buffer *, int); | 187 | static void move_buffer_data(struct st_buffer *, int); |
189 | static void buf_to_sg(struct st_buffer *, unsigned int); | 188 | static void buf_to_sg(struct st_buffer *, unsigned int); |
190 | 189 | ||
191 | static int st_map_user_pages(struct scatterlist *, const unsigned int, | ||
192 | unsigned long, size_t, int, unsigned long); | ||
193 | static int sgl_map_user_pages(struct scatterlist *, const unsigned int, | 190 | static int sgl_map_user_pages(struct scatterlist *, const unsigned int, |
194 | unsigned long, size_t, int); | 191 | unsigned long, size_t, int); |
195 | static int sgl_unmap_user_pages(struct scatterlist *, const unsigned int, int); | 192 | static int sgl_unmap_user_pages(struct scatterlist *, const unsigned int, int); |
@@ -313,12 +310,13 @@ static inline char *tape_name(struct scsi_tape *tape) | |||
313 | } | 310 | } |
314 | 311 | ||
315 | 312 | ||
316 | static void st_analyze_sense(struct scsi_request *SRpnt, struct st_cmdstatus *s) | 313 | static void st_analyze_sense(struct st_request *SRpnt, struct st_cmdstatus *s) |
317 | { | 314 | { |
318 | const u8 *ucp; | 315 | const u8 *ucp; |
319 | const u8 *sense = SRpnt->sr_sense_buffer; | 316 | const u8 *sense = SRpnt->sense; |
320 | 317 | ||
321 | s->have_sense = scsi_request_normalize_sense(SRpnt, &s->sense_hdr); | 318 | s->have_sense = scsi_normalize_sense(SRpnt->sense, |
319 | SCSI_SENSE_BUFFERSIZE, &s->sense_hdr); | ||
322 | s->flags = 0; | 320 | s->flags = 0; |
323 | 321 | ||
324 | if (s->have_sense) { | 322 | if (s->have_sense) { |
@@ -345,9 +343,9 @@ static void st_analyze_sense(struct scsi_request *SRpnt, struct st_cmdstatus *s) | |||
345 | 343 | ||
346 | 344 | ||
347 | /* Convert the result to success code */ | 345 | /* Convert the result to success code */ |
348 | static int st_chk_result(struct scsi_tape *STp, struct scsi_request * SRpnt) | 346 | static int st_chk_result(struct scsi_tape *STp, struct st_request * SRpnt) |
349 | { | 347 | { |
350 | int result = SRpnt->sr_result; | 348 | int result = SRpnt->result; |
351 | u8 scode; | 349 | u8 scode; |
352 | DEB(const char *stp;) | 350 | DEB(const char *stp;) |
353 | char *name = tape_name(STp); | 351 | char *name = tape_name(STp); |
@@ -366,13 +364,12 @@ static int st_chk_result(struct scsi_tape *STp, struct scsi_request * SRpnt) | |||
366 | 364 | ||
367 | DEB( | 365 | DEB( |
368 | if (debugging) { | 366 | if (debugging) { |
369 | printk(ST_DEB_MSG "%s: Error: %x, cmd: %x %x %x %x %x %x Len: %d\n", | 367 | printk(ST_DEB_MSG "%s: Error: %x, cmd: %x %x %x %x %x %x\n", |
370 | name, result, | 368 | name, result, |
371 | SRpnt->sr_cmnd[0], SRpnt->sr_cmnd[1], SRpnt->sr_cmnd[2], | 369 | SRpnt->cmd[0], SRpnt->cmd[1], SRpnt->cmd[2], |
372 | SRpnt->sr_cmnd[3], SRpnt->sr_cmnd[4], SRpnt->sr_cmnd[5], | 370 | SRpnt->cmd[3], SRpnt->cmd[4], SRpnt->cmd[5]); |
373 | SRpnt->sr_bufflen); | ||
374 | if (cmdstatp->have_sense) | 371 | if (cmdstatp->have_sense) |
375 | scsi_print_req_sense("st", SRpnt); | 372 | __scsi_print_sense("st", SRpnt->sense, SCSI_SENSE_BUFFERSIZE); |
376 | } ) /* end DEB */ | 373 | } ) /* end DEB */ |
377 | if (!debugging) { /* Abnormal conditions for tape */ | 374 | if (!debugging) { /* Abnormal conditions for tape */ |
378 | if (!cmdstatp->have_sense) | 375 | if (!cmdstatp->have_sense) |
@@ -386,20 +383,21 @@ static int st_chk_result(struct scsi_tape *STp, struct scsi_request * SRpnt) | |||
386 | /* scode != UNIT_ATTENTION && */ | 383 | /* scode != UNIT_ATTENTION && */ |
387 | scode != BLANK_CHECK && | 384 | scode != BLANK_CHECK && |
388 | scode != VOLUME_OVERFLOW && | 385 | scode != VOLUME_OVERFLOW && |
389 | SRpnt->sr_cmnd[0] != MODE_SENSE && | 386 | SRpnt->cmd[0] != MODE_SENSE && |
390 | SRpnt->sr_cmnd[0] != TEST_UNIT_READY) { | 387 | SRpnt->cmd[0] != TEST_UNIT_READY) { |
391 | printk(KERN_WARNING "%s: Error with sense data: ", name); | 388 | printk(KERN_WARNING "%s: Error with sense data: ", name); |
392 | scsi_print_req_sense("st", SRpnt); | 389 | __scsi_print_sense("st", SRpnt->sense, |
390 | SCSI_SENSE_BUFFERSIZE); | ||
393 | } | 391 | } |
394 | } | 392 | } |
395 | 393 | ||
396 | if (cmdstatp->fixed_format && | 394 | if (cmdstatp->fixed_format && |
397 | STp->cln_mode >= EXTENDED_SENSE_START) { /* Only fixed format sense */ | 395 | STp->cln_mode >= EXTENDED_SENSE_START) { /* Only fixed format sense */ |
398 | if (STp->cln_sense_value) | 396 | if (STp->cln_sense_value) |
399 | STp->cleaning_req |= ((SRpnt->sr_sense_buffer[STp->cln_mode] & | 397 | STp->cleaning_req |= ((SRpnt->sense[STp->cln_mode] & |
400 | STp->cln_sense_mask) == STp->cln_sense_value); | 398 | STp->cln_sense_mask) == STp->cln_sense_value); |
401 | else | 399 | else |
402 | STp->cleaning_req |= ((SRpnt->sr_sense_buffer[STp->cln_mode] & | 400 | STp->cleaning_req |= ((SRpnt->sense[STp->cln_mode] & |
403 | STp->cln_sense_mask) != 0); | 401 | STp->cln_sense_mask) != 0); |
404 | } | 402 | } |
405 | if (cmdstatp->have_sense && | 403 | if (cmdstatp->have_sense && |
@@ -411,8 +409,8 @@ static int st_chk_result(struct scsi_tape *STp, struct scsi_request * SRpnt) | |||
411 | if (cmdstatp->have_sense && | 409 | if (cmdstatp->have_sense && |
412 | scode == RECOVERED_ERROR | 410 | scode == RECOVERED_ERROR |
413 | #if ST_RECOVERED_WRITE_FATAL | 411 | #if ST_RECOVERED_WRITE_FATAL |
414 | && SRpnt->sr_cmnd[0] != WRITE_6 | 412 | && SRpnt->cmd[0] != WRITE_6 |
415 | && SRpnt->sr_cmnd[0] != WRITE_FILEMARKS | 413 | && SRpnt->cmd[0] != WRITE_FILEMARKS |
416 | #endif | 414 | #endif |
417 | ) { | 415 | ) { |
418 | STp->recover_count++; | 416 | STp->recover_count++; |
@@ -420,9 +418,9 @@ static int st_chk_result(struct scsi_tape *STp, struct scsi_request * SRpnt) | |||
420 | 418 | ||
421 | DEB( | 419 | DEB( |
422 | if (debugging) { | 420 | if (debugging) { |
423 | if (SRpnt->sr_cmnd[0] == READ_6) | 421 | if (SRpnt->cmd[0] == READ_6) |
424 | stp = "read"; | 422 | stp = "read"; |
425 | else if (SRpnt->sr_cmnd[0] == WRITE_6) | 423 | else if (SRpnt->cmd[0] == WRITE_6) |
426 | stp = "write"; | 424 | stp = "write"; |
427 | else | 425 | else |
428 | stp = "ioctl"; | 426 | stp = "ioctl"; |
@@ -438,28 +436,37 @@ static int st_chk_result(struct scsi_tape *STp, struct scsi_request * SRpnt) | |||
438 | 436 | ||
439 | 437 | ||
440 | /* Wakeup from interrupt */ | 438 | /* Wakeup from interrupt */ |
441 | static void st_sleep_done(struct scsi_cmnd * SCpnt) | 439 | static void st_sleep_done(void *data, char *sense, int result, int resid) |
442 | { | 440 | { |
443 | struct scsi_tape *STp = container_of(SCpnt->request->rq_disk->private_data, | 441 | struct st_request *SRpnt = data; |
444 | struct scsi_tape, driver); | 442 | struct scsi_tape *STp = SRpnt->stp; |
445 | 443 | ||
446 | (STp->buffer)->cmdstat.midlevel_result = SCpnt->result; | 444 | memcpy(SRpnt->sense, sense, SCSI_SENSE_BUFFERSIZE); |
447 | SCpnt->request->rq_status = RQ_SCSI_DONE; | 445 | (STp->buffer)->cmdstat.midlevel_result = SRpnt->result = result; |
448 | DEB( STp->write_pending = 0; ) | 446 | DEB( STp->write_pending = 0; ) |
449 | 447 | ||
450 | if (SCpnt->request->waiting) | 448 | if (SRpnt->waiting) |
451 | complete(SCpnt->request->waiting); | 449 | complete(SRpnt->waiting); |
450 | } | ||
451 | |||
452 | static struct st_request *st_allocate_request(void) | ||
453 | { | ||
454 | return kzalloc(sizeof(struct st_request), GFP_KERNEL); | ||
455 | } | ||
456 | |||
457 | static void st_release_request(struct st_request *streq) | ||
458 | { | ||
459 | kfree(streq); | ||
452 | } | 460 | } |
453 | 461 | ||
454 | /* Do the scsi command. Waits until command performed if do_wait is true. | 462 | /* Do the scsi command. Waits until command performed if do_wait is true. |
455 | Otherwise write_behind_check() is used to check that the command | 463 | Otherwise write_behind_check() is used to check that the command |
456 | has finished. */ | 464 | has finished. */ |
457 | static struct scsi_request * | 465 | static struct st_request * |
458 | st_do_scsi(struct scsi_request * SRpnt, struct scsi_tape * STp, unsigned char *cmd, | 466 | st_do_scsi(struct st_request * SRpnt, struct scsi_tape * STp, unsigned char *cmd, |
459 | int bytes, int direction, int timeout, int retries, int do_wait) | 467 | int bytes, int direction, int timeout, int retries, int do_wait) |
460 | { | 468 | { |
461 | struct completion *waiting; | 469 | struct completion *waiting; |
462 | unsigned char *bp; | ||
463 | 470 | ||
464 | /* if async, make sure there's no command outstanding */ | 471 | /* if async, make sure there's no command outstanding */ |
465 | if (!do_wait && ((STp->buffer)->last_SRpnt)) { | 472 | if (!do_wait && ((STp->buffer)->last_SRpnt)) { |
@@ -473,7 +480,7 @@ st_do_scsi(struct scsi_request * SRpnt, struct scsi_tape * STp, unsigned char *c | |||
473 | } | 480 | } |
474 | 481 | ||
475 | if (SRpnt == NULL) { | 482 | if (SRpnt == NULL) { |
476 | SRpnt = scsi_allocate_request(STp->device, GFP_ATOMIC); | 483 | SRpnt = st_allocate_request(); |
477 | if (SRpnt == NULL) { | 484 | if (SRpnt == NULL) { |
478 | DEBC( printk(KERN_ERR "%s: Can't get SCSI request.\n", | 485 | DEBC( printk(KERN_ERR "%s: Can't get SCSI request.\n", |
479 | tape_name(STp)); ); | 486 | tape_name(STp)); ); |
@@ -483,6 +490,7 @@ st_do_scsi(struct scsi_request * SRpnt, struct scsi_tape * STp, unsigned char *c | |||
483 | (STp->buffer)->syscall_result = (-EBUSY); | 490 | (STp->buffer)->syscall_result = (-EBUSY); |
484 | return NULL; | 491 | return NULL; |
485 | } | 492 | } |
493 | SRpnt->stp = STp; | ||
486 | } | 494 | } |
487 | 495 | ||
488 | /* If async IO, set last_SRpnt. This ptr tells write_behind_check | 496 | /* If async IO, set last_SRpnt. This ptr tells write_behind_check |
@@ -492,32 +500,28 @@ st_do_scsi(struct scsi_request * SRpnt, struct scsi_tape * STp, unsigned char *c | |||
492 | 500 | ||
493 | waiting = &STp->wait; | 501 | waiting = &STp->wait; |
494 | init_completion(waiting); | 502 | init_completion(waiting); |
495 | SRpnt->sr_use_sg = STp->buffer->do_dio || (bytes > (STp->buffer)->frp[0].length); | 503 | SRpnt->waiting = waiting; |
496 | if (SRpnt->sr_use_sg) { | ||
497 | if (!STp->buffer->do_dio) | ||
498 | buf_to_sg(STp->buffer, bytes); | ||
499 | SRpnt->sr_use_sg = (STp->buffer)->sg_segs; | ||
500 | bp = (char *) &((STp->buffer)->sg[0]); | ||
501 | } else | ||
502 | bp = (STp->buffer)->b_data; | ||
503 | SRpnt->sr_data_direction = direction; | ||
504 | SRpnt->sr_cmd_len = 0; | ||
505 | SRpnt->sr_request->waiting = waiting; | ||
506 | SRpnt->sr_request->rq_status = RQ_SCSI_BUSY; | ||
507 | SRpnt->sr_request->rq_disk = STp->disk; | ||
508 | SRpnt->sr_request->end_io = blk_end_sync_rq; | ||
509 | STp->buffer->cmdstat.have_sense = 0; | ||
510 | 504 | ||
511 | scsi_do_req(SRpnt, (void *) cmd, bp, bytes, | 505 | if (!STp->buffer->do_dio) |
512 | st_sleep_done, timeout, retries); | 506 | buf_to_sg(STp->buffer, bytes); |
513 | 507 | ||
514 | if (do_wait) { | 508 | memcpy(SRpnt->cmd, cmd, sizeof(SRpnt->cmd)); |
509 | STp->buffer->cmdstat.have_sense = 0; | ||
510 | STp->buffer->syscall_result = 0; | ||
511 | |||
512 | if (scsi_execute_async(STp->device, cmd, direction, | ||
513 | &((STp->buffer)->sg[0]), bytes, (STp->buffer)->sg_segs, | ||
514 | timeout, retries, SRpnt, st_sleep_done, GFP_KERNEL)) { | ||
515 | /* could not allocate the buffer or request was too large */ | ||
516 | (STp->buffer)->syscall_result = (-EBUSY); | ||
517 | (STp->buffer)->last_SRpnt = NULL; | ||
518 | } | ||
519 | else if (do_wait) { | ||
515 | wait_for_completion(waiting); | 520 | wait_for_completion(waiting); |
516 | SRpnt->sr_request->waiting = NULL; | 521 | SRpnt->waiting = NULL; |
517 | if (SRpnt->sr_request->rq_status != RQ_SCSI_DONE) | ||
518 | SRpnt->sr_result |= (DRIVER_ERROR << 24); | ||
519 | (STp->buffer)->syscall_result = st_chk_result(STp, SRpnt); | 522 | (STp->buffer)->syscall_result = st_chk_result(STp, SRpnt); |
520 | } | 523 | } |
524 | |||
521 | return SRpnt; | 525 | return SRpnt; |
522 | } | 526 | } |
523 | 527 | ||
@@ -532,7 +536,7 @@ static int write_behind_check(struct scsi_tape * STp) | |||
532 | struct st_buffer *STbuffer; | 536 | struct st_buffer *STbuffer; |
533 | struct st_partstat *STps; | 537 | struct st_partstat *STps; |
534 | struct st_cmdstatus *cmdstatp; | 538 | struct st_cmdstatus *cmdstatp; |
535 | struct scsi_request *SRpnt; | 539 | struct st_request *SRpnt; |
536 | 540 | ||
537 | STbuffer = STp->buffer; | 541 | STbuffer = STp->buffer; |
538 | if (!STbuffer->writing) | 542 | if (!STbuffer->writing) |
@@ -548,12 +552,10 @@ static int write_behind_check(struct scsi_tape * STp) | |||
548 | wait_for_completion(&(STp->wait)); | 552 | wait_for_completion(&(STp->wait)); |
549 | SRpnt = STbuffer->last_SRpnt; | 553 | SRpnt = STbuffer->last_SRpnt; |
550 | STbuffer->last_SRpnt = NULL; | 554 | STbuffer->last_SRpnt = NULL; |
551 | SRpnt->sr_request->waiting = NULL; | 555 | SRpnt->waiting = NULL; |
552 | if (SRpnt->sr_request->rq_status != RQ_SCSI_DONE) | ||
553 | SRpnt->sr_result |= (DRIVER_ERROR << 24); | ||
554 | 556 | ||
555 | (STp->buffer)->syscall_result = st_chk_result(STp, SRpnt); | 557 | (STp->buffer)->syscall_result = st_chk_result(STp, SRpnt); |
556 | scsi_release_request(SRpnt); | 558 | st_release_request(SRpnt); |
557 | 559 | ||
558 | STbuffer->buffer_bytes -= STbuffer->writing; | 560 | STbuffer->buffer_bytes -= STbuffer->writing; |
559 | STps = &(STp->ps[STp->partition]); | 561 | STps = &(STp->ps[STp->partition]); |
@@ -593,7 +595,7 @@ static int write_behind_check(struct scsi_tape * STp) | |||
593 | it messes up the block number). */ | 595 | it messes up the block number). */ |
594 | static int cross_eof(struct scsi_tape * STp, int forward) | 596 | static int cross_eof(struct scsi_tape * STp, int forward) |
595 | { | 597 | { |
596 | struct scsi_request *SRpnt; | 598 | struct st_request *SRpnt; |
597 | unsigned char cmd[MAX_COMMAND_SIZE]; | 599 | unsigned char cmd[MAX_COMMAND_SIZE]; |
598 | 600 | ||
599 | cmd[0] = SPACE; | 601 | cmd[0] = SPACE; |
@@ -613,7 +615,7 @@ static int cross_eof(struct scsi_tape * STp, int forward) | |||
613 | if (!SRpnt) | 615 | if (!SRpnt) |
614 | return (STp->buffer)->syscall_result; | 616 | return (STp->buffer)->syscall_result; |
615 | 617 | ||
616 | scsi_release_request(SRpnt); | 618 | st_release_request(SRpnt); |
617 | SRpnt = NULL; | 619 | SRpnt = NULL; |
618 | 620 | ||
619 | if ((STp->buffer)->cmdstat.midlevel_result != 0) | 621 | if ((STp->buffer)->cmdstat.midlevel_result != 0) |
@@ -630,7 +632,7 @@ static int flush_write_buffer(struct scsi_tape * STp) | |||
630 | int offset, transfer, blks; | 632 | int offset, transfer, blks; |
631 | int result; | 633 | int result; |
632 | unsigned char cmd[MAX_COMMAND_SIZE]; | 634 | unsigned char cmd[MAX_COMMAND_SIZE]; |
633 | struct scsi_request *SRpnt; | 635 | struct st_request *SRpnt; |
634 | struct st_partstat *STps; | 636 | struct st_partstat *STps; |
635 | 637 | ||
636 | result = write_behind_check(STp); | 638 | result = write_behind_check(STp); |
@@ -688,7 +690,7 @@ static int flush_write_buffer(struct scsi_tape * STp) | |||
688 | STp->dirty = 0; | 690 | STp->dirty = 0; |
689 | (STp->buffer)->buffer_bytes = 0; | 691 | (STp->buffer)->buffer_bytes = 0; |
690 | } | 692 | } |
691 | scsi_release_request(SRpnt); | 693 | st_release_request(SRpnt); |
692 | SRpnt = NULL; | 694 | SRpnt = NULL; |
693 | } | 695 | } |
694 | return result; | 696 | return result; |
@@ -785,7 +787,7 @@ static int set_mode_densblk(struct scsi_tape * STp, struct st_modedef * STm) | |||
785 | } | 787 | } |
786 | 788 | ||
787 | 789 | ||
788 | /* Lock or unlock the drive door. Don't use when scsi_request allocated. */ | 790 | /* Lock or unlock the drive door. Don't use when st_request allocated. */ |
789 | static int do_door_lock(struct scsi_tape * STp, int do_lock) | 791 | static int do_door_lock(struct scsi_tape * STp, int do_lock) |
790 | { | 792 | { |
791 | int retval, cmd; | 793 | int retval, cmd; |
@@ -844,7 +846,7 @@ static int test_ready(struct scsi_tape *STp, int do_wait) | |||
844 | int attentions, waits, max_wait, scode; | 846 | int attentions, waits, max_wait, scode; |
845 | int retval = CHKRES_READY, new_session = 0; | 847 | int retval = CHKRES_READY, new_session = 0; |
846 | unsigned char cmd[MAX_COMMAND_SIZE]; | 848 | unsigned char cmd[MAX_COMMAND_SIZE]; |
847 | struct scsi_request *SRpnt = NULL; | 849 | struct st_request *SRpnt = NULL; |
848 | struct st_cmdstatus *cmdstatp = &STp->buffer->cmdstat; | 850 | struct st_cmdstatus *cmdstatp = &STp->buffer->cmdstat; |
849 | 851 | ||
850 | max_wait = do_wait ? ST_BLOCK_SECONDS : 0; | 852 | max_wait = do_wait ? ST_BLOCK_SECONDS : 0; |
@@ -903,7 +905,7 @@ static int test_ready(struct scsi_tape *STp, int do_wait) | |||
903 | } | 905 | } |
904 | 906 | ||
905 | if (SRpnt != NULL) | 907 | if (SRpnt != NULL) |
906 | scsi_release_request(SRpnt); | 908 | st_release_request(SRpnt); |
907 | return retval; | 909 | return retval; |
908 | } | 910 | } |
909 | 911 | ||
@@ -918,7 +920,7 @@ static int check_tape(struct scsi_tape *STp, struct file *filp) | |||
918 | int i, retval, new_session = 0, do_wait; | 920 | int i, retval, new_session = 0, do_wait; |
919 | unsigned char cmd[MAX_COMMAND_SIZE], saved_cleaning; | 921 | unsigned char cmd[MAX_COMMAND_SIZE], saved_cleaning; |
920 | unsigned short st_flags = filp->f_flags; | 922 | unsigned short st_flags = filp->f_flags; |
921 | struct scsi_request *SRpnt = NULL; | 923 | struct st_request *SRpnt = NULL; |
922 | struct st_modedef *STm; | 924 | struct st_modedef *STm; |
923 | struct st_partstat *STps; | 925 | struct st_partstat *STps; |
924 | char *name = tape_name(STp); | 926 | char *name = tape_name(STp); |
@@ -993,7 +995,7 @@ static int check_tape(struct scsi_tape *STp, struct file *filp) | |||
993 | goto err_out; | 995 | goto err_out; |
994 | } | 996 | } |
995 | 997 | ||
996 | if (!SRpnt->sr_result && !STp->buffer->cmdstat.have_sense) { | 998 | if (!SRpnt->result && !STp->buffer->cmdstat.have_sense) { |
997 | STp->max_block = ((STp->buffer)->b_data[1] << 16) | | 999 | STp->max_block = ((STp->buffer)->b_data[1] << 16) | |
998 | ((STp->buffer)->b_data[2] << 8) | (STp->buffer)->b_data[3]; | 1000 | ((STp->buffer)->b_data[2] << 8) | (STp->buffer)->b_data[3]; |
999 | STp->min_block = ((STp->buffer)->b_data[4] << 8) | | 1001 | STp->min_block = ((STp->buffer)->b_data[4] << 8) | |
@@ -1045,7 +1047,7 @@ static int check_tape(struct scsi_tape *STp, struct file *filp) | |||
1045 | } | 1047 | } |
1046 | STp->drv_write_prot = ((STp->buffer)->b_data[2] & 0x80) != 0; | 1048 | STp->drv_write_prot = ((STp->buffer)->b_data[2] & 0x80) != 0; |
1047 | } | 1049 | } |
1048 | scsi_release_request(SRpnt); | 1050 | st_release_request(SRpnt); |
1049 | SRpnt = NULL; | 1051 | SRpnt = NULL; |
1050 | STp->inited = 1; | 1052 | STp->inited = 1; |
1051 | 1053 | ||
@@ -1196,7 +1198,7 @@ static int st_flush(struct file *filp) | |||
1196 | { | 1198 | { |
1197 | int result = 0, result2; | 1199 | int result = 0, result2; |
1198 | unsigned char cmd[MAX_COMMAND_SIZE]; | 1200 | unsigned char cmd[MAX_COMMAND_SIZE]; |
1199 | struct scsi_request *SRpnt; | 1201 | struct st_request *SRpnt; |
1200 | struct scsi_tape *STp = filp->private_data; | 1202 | struct scsi_tape *STp = filp->private_data; |
1201 | struct st_modedef *STm = &(STp->modes[STp->current_mode]); | 1203 | struct st_modedef *STm = &(STp->modes[STp->current_mode]); |
1202 | struct st_partstat *STps = &(STp->ps[STp->partition]); | 1204 | struct st_partstat *STps = &(STp->ps[STp->partition]); |
@@ -1249,7 +1251,7 @@ static int st_flush(struct file *filp) | |||
1249 | cmdstatp->sense_hdr.sense_key == RECOVERED_ERROR) && | 1251 | cmdstatp->sense_hdr.sense_key == RECOVERED_ERROR) && |
1250 | (!cmdstatp->remainder_valid || cmdstatp->uremainder64 == 0))) { | 1252 | (!cmdstatp->remainder_valid || cmdstatp->uremainder64 == 0))) { |
1251 | /* Write successful at EOM */ | 1253 | /* Write successful at EOM */ |
1252 | scsi_release_request(SRpnt); | 1254 | st_release_request(SRpnt); |
1253 | SRpnt = NULL; | 1255 | SRpnt = NULL; |
1254 | if (STps->drv_file >= 0) | 1256 | if (STps->drv_file >= 0) |
1255 | STps->drv_file++; | 1257 | STps->drv_file++; |
@@ -1259,7 +1261,7 @@ static int st_flush(struct file *filp) | |||
1259 | STps->eof = ST_FM; | 1261 | STps->eof = ST_FM; |
1260 | } | 1262 | } |
1261 | else { /* Write error */ | 1263 | else { /* Write error */ |
1262 | scsi_release_request(SRpnt); | 1264 | st_release_request(SRpnt); |
1263 | SRpnt = NULL; | 1265 | SRpnt = NULL; |
1264 | printk(KERN_ERR "%s: Error on write filemark.\n", name); | 1266 | printk(KERN_ERR "%s: Error on write filemark.\n", name); |
1265 | if (result == 0) | 1267 | if (result == 0) |
@@ -1400,11 +1402,11 @@ static int setup_buffering(struct scsi_tape *STp, const char __user *buf, | |||
1400 | i = STp->try_dio && try_rdio; | 1402 | i = STp->try_dio && try_rdio; |
1401 | else | 1403 | else |
1402 | i = STp->try_dio && try_wdio; | 1404 | i = STp->try_dio && try_wdio; |
1405 | |||
1403 | if (i && ((unsigned long)buf & queue_dma_alignment( | 1406 | if (i && ((unsigned long)buf & queue_dma_alignment( |
1404 | STp->device->request_queue)) == 0) { | 1407 | STp->device->request_queue)) == 0) { |
1405 | i = st_map_user_pages(&(STbp->sg[0]), STbp->use_sg, | 1408 | i = sgl_map_user_pages(&(STbp->sg[0]), STbp->use_sg, |
1406 | (unsigned long)buf, count, (is_read ? READ : WRITE), | 1409 | (unsigned long)buf, count, (is_read ? READ : WRITE)); |
1407 | STp->max_pfn); | ||
1408 | if (i > 0) { | 1410 | if (i > 0) { |
1409 | STbp->do_dio = i; | 1411 | STbp->do_dio = i; |
1410 | STbp->buffer_bytes = 0; /* can be used as transfer counter */ | 1412 | STbp->buffer_bytes = 0; /* can be used as transfer counter */ |
@@ -1449,14 +1451,15 @@ static int setup_buffering(struct scsi_tape *STp, const char __user *buf, | |||
1449 | 1451 | ||
1450 | 1452 | ||
1451 | /* Can be called more than once after each setup_buffer() */ | 1453 | /* Can be called more than once after each setup_buffer() */ |
1452 | static void release_buffering(struct scsi_tape *STp) | 1454 | static void release_buffering(struct scsi_tape *STp, int is_read) |
1453 | { | 1455 | { |
1454 | struct st_buffer *STbp; | 1456 | struct st_buffer *STbp; |
1455 | 1457 | ||
1456 | STbp = STp->buffer; | 1458 | STbp = STp->buffer; |
1457 | if (STbp->do_dio) { | 1459 | if (STbp->do_dio) { |
1458 | sgl_unmap_user_pages(&(STbp->sg[0]), STbp->do_dio, 0); | 1460 | sgl_unmap_user_pages(&(STbp->sg[0]), STbp->do_dio, is_read); |
1459 | STbp->do_dio = 0; | 1461 | STbp->do_dio = 0; |
1462 | STbp->sg_segs = 0; | ||
1460 | } | 1463 | } |
1461 | } | 1464 | } |
1462 | 1465 | ||
@@ -1472,7 +1475,7 @@ st_write(struct file *filp, const char __user *buf, size_t count, loff_t * ppos) | |||
1472 | int async_write; | 1475 | int async_write; |
1473 | unsigned char cmd[MAX_COMMAND_SIZE]; | 1476 | unsigned char cmd[MAX_COMMAND_SIZE]; |
1474 | const char __user *b_point; | 1477 | const char __user *b_point; |
1475 | struct scsi_request *SRpnt = NULL; | 1478 | struct st_request *SRpnt = NULL; |
1476 | struct scsi_tape *STp = filp->private_data; | 1479 | struct scsi_tape *STp = filp->private_data; |
1477 | struct st_modedef *STm; | 1480 | struct st_modedef *STm; |
1478 | struct st_partstat *STps; | 1481 | struct st_partstat *STps; |
@@ -1624,7 +1627,7 @@ st_write(struct file *filp, const char __user *buf, size_t count, loff_t * ppos) | |||
1624 | retval = STbp->syscall_result; | 1627 | retval = STbp->syscall_result; |
1625 | goto out; | 1628 | goto out; |
1626 | } | 1629 | } |
1627 | if (async_write) { | 1630 | if (async_write && !STbp->syscall_result) { |
1628 | STbp->writing = transfer; | 1631 | STbp->writing = transfer; |
1629 | STp->dirty = !(STbp->writing == | 1632 | STp->dirty = !(STbp->writing == |
1630 | STbp->buffer_bytes); | 1633 | STbp->buffer_bytes); |
@@ -1698,7 +1701,7 @@ st_write(struct file *filp, const char __user *buf, size_t count, loff_t * ppos) | |||
1698 | } else { | 1701 | } else { |
1699 | count += do_count; | 1702 | count += do_count; |
1700 | STps->drv_block = (-1); /* Too cautious? */ | 1703 | STps->drv_block = (-1); /* Too cautious? */ |
1701 | retval = (-EIO); | 1704 | retval = STbp->syscall_result; |
1702 | } | 1705 | } |
1703 | 1706 | ||
1704 | } | 1707 | } |
@@ -1728,8 +1731,8 @@ st_write(struct file *filp, const char __user *buf, size_t count, loff_t * ppos) | |||
1728 | 1731 | ||
1729 | out: | 1732 | out: |
1730 | if (SRpnt != NULL) | 1733 | if (SRpnt != NULL) |
1731 | scsi_release_request(SRpnt); | 1734 | st_release_request(SRpnt); |
1732 | release_buffering(STp); | 1735 | release_buffering(STp, 0); |
1733 | up(&STp->lock); | 1736 | up(&STp->lock); |
1734 | 1737 | ||
1735 | return retval; | 1738 | return retval; |
@@ -1742,11 +1745,11 @@ st_write(struct file *filp, const char __user *buf, size_t count, loff_t * ppos) | |||
1742 | Does release user buffer mapping if it is set. | 1745 | Does release user buffer mapping if it is set. |
1743 | */ | 1746 | */ |
1744 | static long read_tape(struct scsi_tape *STp, long count, | 1747 | static long read_tape(struct scsi_tape *STp, long count, |
1745 | struct scsi_request ** aSRpnt) | 1748 | struct st_request ** aSRpnt) |
1746 | { | 1749 | { |
1747 | int transfer, blks, bytes; | 1750 | int transfer, blks, bytes; |
1748 | unsigned char cmd[MAX_COMMAND_SIZE]; | 1751 | unsigned char cmd[MAX_COMMAND_SIZE]; |
1749 | struct scsi_request *SRpnt; | 1752 | struct st_request *SRpnt; |
1750 | struct st_modedef *STm; | 1753 | struct st_modedef *STm; |
1751 | struct st_partstat *STps; | 1754 | struct st_partstat *STps; |
1752 | struct st_buffer *STbp; | 1755 | struct st_buffer *STbp; |
@@ -1787,7 +1790,7 @@ static long read_tape(struct scsi_tape *STp, long count, | |||
1787 | SRpnt = *aSRpnt; | 1790 | SRpnt = *aSRpnt; |
1788 | SRpnt = st_do_scsi(SRpnt, STp, cmd, bytes, DMA_FROM_DEVICE, | 1791 | SRpnt = st_do_scsi(SRpnt, STp, cmd, bytes, DMA_FROM_DEVICE, |
1789 | STp->device->timeout, MAX_RETRIES, 1); | 1792 | STp->device->timeout, MAX_RETRIES, 1); |
1790 | release_buffering(STp); | 1793 | release_buffering(STp, 1); |
1791 | *aSRpnt = SRpnt; | 1794 | *aSRpnt = SRpnt; |
1792 | if (!SRpnt) | 1795 | if (!SRpnt) |
1793 | return STbp->syscall_result; | 1796 | return STbp->syscall_result; |
@@ -1802,10 +1805,10 @@ static long read_tape(struct scsi_tape *STp, long count, | |||
1802 | retval = 1; | 1805 | retval = 1; |
1803 | DEBC(printk(ST_DEB_MSG "%s: Sense: %2x %2x %2x %2x %2x %2x %2x %2x\n", | 1806 | DEBC(printk(ST_DEB_MSG "%s: Sense: %2x %2x %2x %2x %2x %2x %2x %2x\n", |
1804 | name, | 1807 | name, |
1805 | SRpnt->sr_sense_buffer[0], SRpnt->sr_sense_buffer[1], | 1808 | SRpnt->sense[0], SRpnt->sense[1], |
1806 | SRpnt->sr_sense_buffer[2], SRpnt->sr_sense_buffer[3], | 1809 | SRpnt->sense[2], SRpnt->sense[3], |
1807 | SRpnt->sr_sense_buffer[4], SRpnt->sr_sense_buffer[5], | 1810 | SRpnt->sense[4], SRpnt->sense[5], |
1808 | SRpnt->sr_sense_buffer[6], SRpnt->sr_sense_buffer[7])); | 1811 | SRpnt->sense[6], SRpnt->sense[7])); |
1809 | if (cmdstatp->have_sense) { | 1812 | if (cmdstatp->have_sense) { |
1810 | 1813 | ||
1811 | if (cmdstatp->sense_hdr.sense_key == BLANK_CHECK) | 1814 | if (cmdstatp->sense_hdr.sense_key == BLANK_CHECK) |
@@ -1835,7 +1838,7 @@ static long read_tape(struct scsi_tape *STp, long count, | |||
1835 | } | 1838 | } |
1836 | STbp->buffer_bytes = bytes - transfer; | 1839 | STbp->buffer_bytes = bytes - transfer; |
1837 | } else { | 1840 | } else { |
1838 | scsi_release_request(SRpnt); | 1841 | st_release_request(SRpnt); |
1839 | SRpnt = *aSRpnt = NULL; | 1842 | SRpnt = *aSRpnt = NULL; |
1840 | if (transfer == blks) { /* We did not get anything, error */ | 1843 | if (transfer == blks) { /* We did not get anything, error */ |
1841 | printk(KERN_NOTICE "%s: Incorrect block size.\n", name); | 1844 | printk(KERN_NOTICE "%s: Incorrect block size.\n", name); |
@@ -1929,7 +1932,7 @@ st_read(struct file *filp, char __user *buf, size_t count, loff_t * ppos) | |||
1929 | ssize_t retval = 0; | 1932 | ssize_t retval = 0; |
1930 | ssize_t i, transfer; | 1933 | ssize_t i, transfer; |
1931 | int special, do_dio = 0; | 1934 | int special, do_dio = 0; |
1932 | struct scsi_request *SRpnt = NULL; | 1935 | struct st_request *SRpnt = NULL; |
1933 | struct scsi_tape *STp = filp->private_data; | 1936 | struct scsi_tape *STp = filp->private_data; |
1934 | struct st_modedef *STm; | 1937 | struct st_modedef *STm; |
1935 | struct st_partstat *STps; | 1938 | struct st_partstat *STps; |
@@ -2054,11 +2057,11 @@ st_read(struct file *filp, char __user *buf, size_t count, loff_t * ppos) | |||
2054 | 2057 | ||
2055 | out: | 2058 | out: |
2056 | if (SRpnt != NULL) { | 2059 | if (SRpnt != NULL) { |
2057 | scsi_release_request(SRpnt); | 2060 | st_release_request(SRpnt); |
2058 | SRpnt = NULL; | 2061 | SRpnt = NULL; |
2059 | } | 2062 | } |
2060 | if (do_dio) { | 2063 | if (do_dio) { |
2061 | release_buffering(STp); | 2064 | release_buffering(STp, 1); |
2062 | STbp->buffer_bytes = 0; | 2065 | STbp->buffer_bytes = 0; |
2063 | } | 2066 | } |
2064 | up(&STp->lock); | 2067 | up(&STp->lock); |
@@ -2284,7 +2287,7 @@ static int st_set_options(struct scsi_tape *STp, long options) | |||
2284 | static int read_mode_page(struct scsi_tape *STp, int page, int omit_block_descs) | 2287 | static int read_mode_page(struct scsi_tape *STp, int page, int omit_block_descs) |
2285 | { | 2288 | { |
2286 | unsigned char cmd[MAX_COMMAND_SIZE]; | 2289 | unsigned char cmd[MAX_COMMAND_SIZE]; |
2287 | struct scsi_request *SRpnt = NULL; | 2290 | struct st_request *SRpnt = NULL; |
2288 | 2291 | ||
2289 | memset(cmd, 0, MAX_COMMAND_SIZE); | 2292 | memset(cmd, 0, MAX_COMMAND_SIZE); |
2290 | cmd[0] = MODE_SENSE; | 2293 | cmd[0] = MODE_SENSE; |
@@ -2298,7 +2301,7 @@ static int read_mode_page(struct scsi_tape *STp, int page, int omit_block_descs) | |||
2298 | if (SRpnt == NULL) | 2301 | if (SRpnt == NULL) |
2299 | return (STp->buffer)->syscall_result; | 2302 | return (STp->buffer)->syscall_result; |
2300 | 2303 | ||
2301 | scsi_release_request(SRpnt); | 2304 | st_release_request(SRpnt); |
2302 | 2305 | ||
2303 | return (STp->buffer)->syscall_result; | 2306 | return (STp->buffer)->syscall_result; |
2304 | } | 2307 | } |
@@ -2310,7 +2313,7 @@ static int write_mode_page(struct scsi_tape *STp, int page, int slow) | |||
2310 | { | 2313 | { |
2311 | int pgo; | 2314 | int pgo; |
2312 | unsigned char cmd[MAX_COMMAND_SIZE]; | 2315 | unsigned char cmd[MAX_COMMAND_SIZE]; |
2313 | struct scsi_request *SRpnt = NULL; | 2316 | struct st_request *SRpnt = NULL; |
2314 | 2317 | ||
2315 | memset(cmd, 0, MAX_COMMAND_SIZE); | 2318 | memset(cmd, 0, MAX_COMMAND_SIZE); |
2316 | cmd[0] = MODE_SELECT; | 2319 | cmd[0] = MODE_SELECT; |
@@ -2329,7 +2332,7 @@ static int write_mode_page(struct scsi_tape *STp, int page, int slow) | |||
2329 | if (SRpnt == NULL) | 2332 | if (SRpnt == NULL) |
2330 | return (STp->buffer)->syscall_result; | 2333 | return (STp->buffer)->syscall_result; |
2331 | 2334 | ||
2332 | scsi_release_request(SRpnt); | 2335 | st_release_request(SRpnt); |
2333 | 2336 | ||
2334 | return (STp->buffer)->syscall_result; | 2337 | return (STp->buffer)->syscall_result; |
2335 | } | 2338 | } |
@@ -2412,7 +2415,7 @@ static int do_load_unload(struct scsi_tape *STp, struct file *filp, int load_cod | |||
2412 | DEB( char *name = tape_name(STp); ) | 2415 | DEB( char *name = tape_name(STp); ) |
2413 | unsigned char cmd[MAX_COMMAND_SIZE]; | 2416 | unsigned char cmd[MAX_COMMAND_SIZE]; |
2414 | struct st_partstat *STps; | 2417 | struct st_partstat *STps; |
2415 | struct scsi_request *SRpnt; | 2418 | struct st_request *SRpnt; |
2416 | 2419 | ||
2417 | if (STp->ready != ST_READY && !load_code) { | 2420 | if (STp->ready != ST_READY && !load_code) { |
2418 | if (STp->ready == ST_NO_TAPE) | 2421 | if (STp->ready == ST_NO_TAPE) |
@@ -2455,7 +2458,7 @@ static int do_load_unload(struct scsi_tape *STp, struct file *filp, int load_cod | |||
2455 | return (STp->buffer)->syscall_result; | 2458 | return (STp->buffer)->syscall_result; |
2456 | 2459 | ||
2457 | retval = (STp->buffer)->syscall_result; | 2460 | retval = (STp->buffer)->syscall_result; |
2458 | scsi_release_request(SRpnt); | 2461 | st_release_request(SRpnt); |
2459 | 2462 | ||
2460 | if (!retval) { /* SCSI command successful */ | 2463 | if (!retval) { /* SCSI command successful */ |
2461 | 2464 | ||
@@ -2503,7 +2506,7 @@ static int st_int_ioctl(struct scsi_tape *STp, unsigned int cmd_in, unsigned lon | |||
2503 | int ioctl_result; | 2506 | int ioctl_result; |
2504 | int chg_eof = 1; | 2507 | int chg_eof = 1; |
2505 | unsigned char cmd[MAX_COMMAND_SIZE]; | 2508 | unsigned char cmd[MAX_COMMAND_SIZE]; |
2506 | struct scsi_request *SRpnt; | 2509 | struct st_request *SRpnt; |
2507 | struct st_partstat *STps; | 2510 | struct st_partstat *STps; |
2508 | int fileno, blkno, at_sm, undone; | 2511 | int fileno, blkno, at_sm, undone; |
2509 | int datalen = 0, direction = DMA_NONE; | 2512 | int datalen = 0, direction = DMA_NONE; |
@@ -2757,7 +2760,7 @@ static int st_int_ioctl(struct scsi_tape *STp, unsigned int cmd_in, unsigned lon | |||
2757 | ioctl_result = (STp->buffer)->syscall_result; | 2760 | ioctl_result = (STp->buffer)->syscall_result; |
2758 | 2761 | ||
2759 | if (!ioctl_result) { /* SCSI command successful */ | 2762 | if (!ioctl_result) { /* SCSI command successful */ |
2760 | scsi_release_request(SRpnt); | 2763 | st_release_request(SRpnt); |
2761 | SRpnt = NULL; | 2764 | SRpnt = NULL; |
2762 | STps->drv_block = blkno; | 2765 | STps->drv_block = blkno; |
2763 | STps->drv_file = fileno; | 2766 | STps->drv_file = fileno; |
@@ -2872,7 +2875,7 @@ static int st_int_ioctl(struct scsi_tape *STp, unsigned int cmd_in, unsigned lon | |||
2872 | /* Try the other possible state of Page Format if not | 2875 | /* Try the other possible state of Page Format if not |
2873 | already tried */ | 2876 | already tried */ |
2874 | STp->use_pf = !STp->use_pf | PF_TESTED; | 2877 | STp->use_pf = !STp->use_pf | PF_TESTED; |
2875 | scsi_release_request(SRpnt); | 2878 | st_release_request(SRpnt); |
2876 | SRpnt = NULL; | 2879 | SRpnt = NULL; |
2877 | return st_int_ioctl(STp, cmd_in, arg); | 2880 | return st_int_ioctl(STp, cmd_in, arg); |
2878 | } | 2881 | } |
@@ -2882,7 +2885,7 @@ static int st_int_ioctl(struct scsi_tape *STp, unsigned int cmd_in, unsigned lon | |||
2882 | if (cmdstatp->sense_hdr.sense_key == BLANK_CHECK) | 2885 | if (cmdstatp->sense_hdr.sense_key == BLANK_CHECK) |
2883 | STps->eof = ST_EOD; | 2886 | STps->eof = ST_EOD; |
2884 | 2887 | ||
2885 | scsi_release_request(SRpnt); | 2888 | st_release_request(SRpnt); |
2886 | SRpnt = NULL; | 2889 | SRpnt = NULL; |
2887 | } | 2890 | } |
2888 | 2891 | ||
@@ -2898,7 +2901,7 @@ static int get_location(struct scsi_tape *STp, unsigned int *block, int *partiti | |||
2898 | { | 2901 | { |
2899 | int result; | 2902 | int result; |
2900 | unsigned char scmd[MAX_COMMAND_SIZE]; | 2903 | unsigned char scmd[MAX_COMMAND_SIZE]; |
2901 | struct scsi_request *SRpnt; | 2904 | struct st_request *SRpnt; |
2902 | DEB( char *name = tape_name(STp); ) | 2905 | DEB( char *name = tape_name(STp); ) |
2903 | 2906 | ||
2904 | if (STp->ready != ST_READY) | 2907 | if (STp->ready != ST_READY) |
@@ -2944,7 +2947,7 @@ static int get_location(struct scsi_tape *STp, unsigned int *block, int *partiti | |||
2944 | DEBC(printk(ST_DEB_MSG "%s: Got tape pos. blk %d part %d.\n", name, | 2947 | DEBC(printk(ST_DEB_MSG "%s: Got tape pos. blk %d part %d.\n", name, |
2945 | *block, *partition)); | 2948 | *block, *partition)); |
2946 | } | 2949 | } |
2947 | scsi_release_request(SRpnt); | 2950 | st_release_request(SRpnt); |
2948 | SRpnt = NULL; | 2951 | SRpnt = NULL; |
2949 | 2952 | ||
2950 | return result; | 2953 | return result; |
@@ -2961,7 +2964,7 @@ static int set_location(struct scsi_tape *STp, unsigned int block, int partition | |||
2961 | unsigned int blk; | 2964 | unsigned int blk; |
2962 | int timeout; | 2965 | int timeout; |
2963 | unsigned char scmd[MAX_COMMAND_SIZE]; | 2966 | unsigned char scmd[MAX_COMMAND_SIZE]; |
2964 | struct scsi_request *SRpnt; | 2967 | struct st_request *SRpnt; |
2965 | DEB( char *name = tape_name(STp); ) | 2968 | DEB( char *name = tape_name(STp); ) |
2966 | 2969 | ||
2967 | if (STp->ready != ST_READY) | 2970 | if (STp->ready != ST_READY) |
@@ -3047,7 +3050,7 @@ static int set_location(struct scsi_tape *STp, unsigned int block, int partition | |||
3047 | result = 0; | 3050 | result = 0; |
3048 | } | 3051 | } |
3049 | 3052 | ||
3050 | scsi_release_request(SRpnt); | 3053 | st_release_request(SRpnt); |
3051 | SRpnt = NULL; | 3054 | SRpnt = NULL; |
3052 | 3055 | ||
3053 | return result; | 3056 | return result; |
@@ -3577,7 +3580,7 @@ static long st_compat_ioctl(struct file *file, unsigned int cmd, unsigned long a | |||
3577 | static struct st_buffer * | 3580 | static struct st_buffer * |
3578 | new_tape_buffer(int from_initialization, int need_dma, int max_sg) | 3581 | new_tape_buffer(int from_initialization, int need_dma, int max_sg) |
3579 | { | 3582 | { |
3580 | int i, got = 0, segs = 0; | 3583 | int i, got = 0; |
3581 | gfp_t priority; | 3584 | gfp_t priority; |
3582 | struct st_buffer *tb; | 3585 | struct st_buffer *tb; |
3583 | 3586 | ||
@@ -3594,10 +3597,8 @@ static struct st_buffer * | |||
3594 | return NULL; | 3597 | return NULL; |
3595 | } | 3598 | } |
3596 | memset(tb, 0, i); | 3599 | memset(tb, 0, i); |
3597 | tb->frp_segs = tb->orig_frp_segs = segs; | 3600 | tb->frp_segs = tb->orig_frp_segs = 0; |
3598 | tb->use_sg = max_sg; | 3601 | tb->use_sg = max_sg; |
3599 | if (segs > 0) | ||
3600 | tb->b_data = page_address(tb->sg[0].page); | ||
3601 | tb->frp = (struct st_buf_fragment *)(&(tb->sg[0]) + max_sg); | 3602 | tb->frp = (struct st_buf_fragment *)(&(tb->sg[0]) + max_sg); |
3602 | 3603 | ||
3603 | tb->in_use = 1; | 3604 | tb->in_use = 1; |
@@ -3628,7 +3629,7 @@ static int enlarge_buffer(struct st_buffer * STbuffer, int new_size, int need_dm | |||
3628 | priority = GFP_KERNEL | __GFP_NOWARN; | 3629 | priority = GFP_KERNEL | __GFP_NOWARN; |
3629 | if (need_dma) | 3630 | if (need_dma) |
3630 | priority |= GFP_DMA; | 3631 | priority |= GFP_DMA; |
3631 | for (b_size = PAGE_SIZE, order=0; | 3632 | for (b_size = PAGE_SIZE, order=0; order <= 6 && |
3632 | b_size < new_size - STbuffer->buffer_size; | 3633 | b_size < new_size - STbuffer->buffer_size; |
3633 | order++, b_size *= 2) | 3634 | order++, b_size *= 2) |
3634 | ; /* empty */ | 3635 | ; /* empty */ |
@@ -3670,6 +3671,7 @@ static void normalize_buffer(struct st_buffer * STbuffer) | |||
3670 | } | 3671 | } |
3671 | STbuffer->frp_segs = STbuffer->orig_frp_segs; | 3672 | STbuffer->frp_segs = STbuffer->orig_frp_segs; |
3672 | STbuffer->frp_sg_current = 0; | 3673 | STbuffer->frp_sg_current = 0; |
3674 | STbuffer->sg_segs = 0; | ||
3673 | } | 3675 | } |
3674 | 3676 | ||
3675 | 3677 | ||
@@ -3882,7 +3884,6 @@ static int st_probe(struct device *dev) | |||
3882 | struct st_buffer *buffer; | 3884 | struct st_buffer *buffer; |
3883 | int i, j, mode, dev_num, error; | 3885 | int i, j, mode, dev_num, error; |
3884 | char *stp; | 3886 | char *stp; |
3885 | u64 bounce_limit; | ||
3886 | 3887 | ||
3887 | if (SDp->type != TYPE_TAPE) | 3888 | if (SDp->type != TYPE_TAPE) |
3888 | return -ENODEV; | 3889 | return -ENODEV; |
@@ -3892,7 +3893,8 @@ static int st_probe(struct device *dev) | |||
3892 | return -ENODEV; | 3893 | return -ENODEV; |
3893 | } | 3894 | } |
3894 | 3895 | ||
3895 | i = SDp->host->sg_tablesize; | 3896 | i = min(SDp->request_queue->max_hw_segments, |
3897 | SDp->request_queue->max_phys_segments); | ||
3896 | if (st_max_sg_segs < i) | 3898 | if (st_max_sg_segs < i) |
3897 | i = st_max_sg_segs; | 3899 | i = st_max_sg_segs; |
3898 | buffer = new_tape_buffer(1, (SDp->host)->unchecked_isa_dma, i); | 3900 | buffer = new_tape_buffer(1, (SDp->host)->unchecked_isa_dma, i); |
@@ -3994,11 +3996,6 @@ static int st_probe(struct device *dev) | |||
3994 | tpnt->long_timeout = ST_LONG_TIMEOUT; | 3996 | tpnt->long_timeout = ST_LONG_TIMEOUT; |
3995 | tpnt->try_dio = try_direct_io && !SDp->host->unchecked_isa_dma; | 3997 | tpnt->try_dio = try_direct_io && !SDp->host->unchecked_isa_dma; |
3996 | 3998 | ||
3997 | bounce_limit = scsi_calculate_bounce_limit(SDp->host) >> PAGE_SHIFT; | ||
3998 | if (bounce_limit > ULONG_MAX) | ||
3999 | bounce_limit = ULONG_MAX; | ||
4000 | tpnt->max_pfn = bounce_limit; | ||
4001 | |||
4002 | for (i = 0; i < ST_NBR_MODES; i++) { | 3999 | for (i = 0; i < ST_NBR_MODES; i++) { |
4003 | STm = &(tpnt->modes[i]); | 4000 | STm = &(tpnt->modes[i]); |
4004 | STm->defined = 0; | 4001 | STm->defined = 0; |
@@ -4077,9 +4074,9 @@ static int st_probe(struct device *dev) | |||
4077 | 4074 | ||
4078 | sdev_printk(KERN_WARNING, SDp, | 4075 | sdev_printk(KERN_WARNING, SDp, |
4079 | "Attached scsi tape %s", tape_name(tpnt)); | 4076 | "Attached scsi tape %s", tape_name(tpnt)); |
4080 | printk(KERN_WARNING "%s: try direct i/o: %s (alignment %d B), max page reachable by HBA %lu\n", | 4077 | printk(KERN_WARNING "%s: try direct i/o: %s (alignment %d B)\n", |
4081 | tape_name(tpnt), tpnt->try_dio ? "yes" : "no", | 4078 | tape_name(tpnt), tpnt->try_dio ? "yes" : "no", |
4082 | queue_dma_alignment(SDp->request_queue) + 1, tpnt->max_pfn); | 4079 | queue_dma_alignment(SDp->request_queue) + 1); |
4083 | 4080 | ||
4084 | return 0; | 4081 | return 0; |
4085 | 4082 | ||
@@ -4185,7 +4182,11 @@ static void scsi_tape_release(struct kref *kref) | |||
4185 | 4182 | ||
4186 | static void st_intr(struct scsi_cmnd *SCpnt) | 4183 | static void st_intr(struct scsi_cmnd *SCpnt) |
4187 | { | 4184 | { |
4188 | scsi_io_completion(SCpnt, (SCpnt->result ? 0: SCpnt->bufflen), 1); | 4185 | /* |
4186 | * The caller should be checking the request's errors | ||
4187 | * value. | ||
4188 | */ | ||
4189 | scsi_io_completion(SCpnt, SCpnt->bufflen, 0); | ||
4189 | } | 4190 | } |
4190 | 4191 | ||
4191 | /* | 4192 | /* |
@@ -4197,7 +4198,7 @@ static int st_init_command(struct scsi_cmnd *SCpnt) | |||
4197 | if (!(SCpnt->request->flags & REQ_BLOCK_PC)) | 4198 | if (!(SCpnt->request->flags & REQ_BLOCK_PC)) |
4198 | return 0; | 4199 | return 0; |
4199 | 4200 | ||
4200 | scsi_setup_blk_pc_cmnd(SCpnt, 0); | 4201 | scsi_setup_blk_pc_cmnd(SCpnt); |
4201 | SCpnt->done = st_intr; | 4202 | SCpnt->done = st_intr; |
4202 | return 1; | 4203 | return 1; |
4203 | } | 4204 | } |
@@ -4390,34 +4391,6 @@ static void do_create_class_files(struct scsi_tape *STp, int dev_num, int mode) | |||
4390 | return; | 4391 | return; |
4391 | } | 4392 | } |
4392 | 4393 | ||
4393 | |||
4394 | /* Pin down user pages and put them into a scatter gather list. Returns <= 0 if | ||
4395 | - mapping of all pages not successful | ||
4396 | - any page is above max_pfn | ||
4397 | (i.e., either completely successful or fails) | ||
4398 | */ | ||
4399 | static int st_map_user_pages(struct scatterlist *sgl, const unsigned int max_pages, | ||
4400 | unsigned long uaddr, size_t count, int rw, | ||
4401 | unsigned long max_pfn) | ||
4402 | { | ||
4403 | int i, nr_pages; | ||
4404 | |||
4405 | nr_pages = sgl_map_user_pages(sgl, max_pages, uaddr, count, rw); | ||
4406 | if (nr_pages <= 0) | ||
4407 | return nr_pages; | ||
4408 | |||
4409 | for (i=0; i < nr_pages; i++) { | ||
4410 | if (page_to_pfn(sgl[i].page) > max_pfn) | ||
4411 | goto out_unmap; | ||
4412 | } | ||
4413 | return nr_pages; | ||
4414 | |||
4415 | out_unmap: | ||
4416 | sgl_unmap_user_pages(sgl, nr_pages, 0); | ||
4417 | return 0; | ||
4418 | } | ||
4419 | |||
4420 | |||
4421 | /* The following functions may be useful for a larger audience. */ | 4394 | /* The following functions may be useful for a larger audience. */ |
4422 | static int sgl_map_user_pages(struct scatterlist *sgl, const unsigned int max_pages, | 4395 | static int sgl_map_user_pages(struct scatterlist *sgl, const unsigned int max_pages, |
4423 | unsigned long uaddr, size_t count, int rw) | 4396 | unsigned long uaddr, size_t count, int rw) |
diff --git a/drivers/scsi/st.h b/drivers/scsi/st.h index 790acac160bc..411209048d74 100644 --- a/drivers/scsi/st.h +++ b/drivers/scsi/st.h | |||
@@ -4,6 +4,7 @@ | |||
4 | 4 | ||
5 | #include <linux/completion.h> | 5 | #include <linux/completion.h> |
6 | #include <linux/kref.h> | 6 | #include <linux/kref.h> |
7 | #include <scsi/scsi_cmnd.h> | ||
7 | 8 | ||
8 | /* Descriptor for analyzed sense data */ | 9 | /* Descriptor for analyzed sense data */ |
9 | struct st_cmdstatus { | 10 | struct st_cmdstatus { |
@@ -17,6 +18,17 @@ struct st_cmdstatus { | |||
17 | u8 deferred; | 18 | u8 deferred; |
18 | }; | 19 | }; |
19 | 20 | ||
21 | struct scsi_tape; | ||
22 | |||
23 | /* scsi tape command */ | ||
24 | struct st_request { | ||
25 | unsigned char cmd[MAX_COMMAND_SIZE]; | ||
26 | unsigned char sense[SCSI_SENSE_BUFFERSIZE]; | ||
27 | int result; | ||
28 | struct scsi_tape *stp; | ||
29 | struct completion *waiting; | ||
30 | }; | ||
31 | |||
20 | /* The tape buffer descriptor. */ | 32 | /* The tape buffer descriptor. */ |
21 | struct st_buffer { | 33 | struct st_buffer { |
22 | unsigned char in_use; | 34 | unsigned char in_use; |
@@ -28,7 +40,7 @@ struct st_buffer { | |||
28 | int read_pointer; | 40 | int read_pointer; |
29 | int writing; | 41 | int writing; |
30 | int syscall_result; | 42 | int syscall_result; |
31 | struct scsi_request *last_SRpnt; | 43 | struct st_request *last_SRpnt; |
32 | struct st_cmdstatus cmdstat; | 44 | struct st_cmdstatus cmdstat; |
33 | unsigned char *b_data; | 45 | unsigned char *b_data; |
34 | unsigned short use_sg; /* zero or max number of s/g segments for this adapter */ | 46 | unsigned short use_sg; /* zero or max number of s/g segments for this adapter */ |
diff --git a/drivers/scsi/sun3_NCR5380.c b/drivers/scsi/sun3_NCR5380.c index c041bfd56e12..25cced91c8a6 100644 --- a/drivers/scsi/sun3_NCR5380.c +++ b/drivers/scsi/sun3_NCR5380.c | |||
@@ -70,6 +70,7 @@ | |||
70 | * | 70 | * |
71 | */ | 71 | */ |
72 | #include <scsi/scsi_dbg.h> | 72 | #include <scsi/scsi_dbg.h> |
73 | #include <scsi/scsi_transport_spi.h> | ||
73 | 74 | ||
74 | /* | 75 | /* |
75 | * Further development / testing that should be done : | 76 | * Further development / testing that should be done : |
@@ -2378,7 +2379,7 @@ static void NCR5380_information_transfer (struct Scsi_Host *instance) | |||
2378 | * 3..length+1 arguments | 2379 | * 3..length+1 arguments |
2379 | * | 2380 | * |
2380 | * Start the extended message buffer with the EXTENDED_MESSAGE | 2381 | * Start the extended message buffer with the EXTENDED_MESSAGE |
2381 | * byte, since scsi_print_msg() wants the whole thing. | 2382 | * byte, since spi_print_msg() wants the whole thing. |
2382 | */ | 2383 | */ |
2383 | extended_msg[0] = EXTENDED_MESSAGE; | 2384 | extended_msg[0] = EXTENDED_MESSAGE; |
2384 | /* Accept first byte by clearing ACK */ | 2385 | /* Accept first byte by clearing ACK */ |
@@ -2431,7 +2432,7 @@ static void NCR5380_information_transfer (struct Scsi_Host *instance) | |||
2431 | default: | 2432 | default: |
2432 | if (!tmp) { | 2433 | if (!tmp) { |
2433 | printk(KERN_DEBUG "scsi%d: rejecting message ", HOSTNO); | 2434 | printk(KERN_DEBUG "scsi%d: rejecting message ", HOSTNO); |
2434 | scsi_print_msg (extended_msg); | 2435 | spi_print_msg(extended_msg); |
2435 | printk("\n"); | 2436 | printk("\n"); |
2436 | } else if (tmp != EXTENDED_MESSAGE) | 2437 | } else if (tmp != EXTENDED_MESSAGE) |
2437 | printk(KERN_DEBUG "scsi%d: rejecting unknown " | 2438 | printk(KERN_DEBUG "scsi%d: rejecting unknown " |
@@ -2566,7 +2567,7 @@ static void NCR5380_reselect (struct Scsi_Host *instance) | |||
2566 | 2567 | ||
2567 | if (!(msg[0] & 0x80)) { | 2568 | if (!(msg[0] & 0x80)) { |
2568 | printk(KERN_DEBUG "scsi%d: expecting IDENTIFY message, got ", HOSTNO); | 2569 | printk(KERN_DEBUG "scsi%d: expecting IDENTIFY message, got ", HOSTNO); |
2569 | scsi_print_msg(msg); | 2570 | spi_print_msg(msg); |
2570 | do_abort(instance); | 2571 | do_abort(instance); |
2571 | return; | 2572 | return; |
2572 | } | 2573 | } |
diff --git a/drivers/scsi/sym53c8xx_2/sym_defs.h b/drivers/scsi/sym53c8xx_2/sym_defs.h index 2d9437d7242b..3659dd7b9d76 100644 --- a/drivers/scsi/sym53c8xx_2/sym_defs.h +++ b/drivers/scsi/sym53c8xx_2/sym_defs.h | |||
@@ -40,7 +40,7 @@ | |||
40 | #ifndef SYM_DEFS_H | 40 | #ifndef SYM_DEFS_H |
41 | #define SYM_DEFS_H | 41 | #define SYM_DEFS_H |
42 | 42 | ||
43 | #define SYM_VERSION "2.2.1" | 43 | #define SYM_VERSION "2.2.2" |
44 | #define SYM_DRIVER_NAME "sym-" SYM_VERSION | 44 | #define SYM_DRIVER_NAME "sym-" SYM_VERSION |
45 | 45 | ||
46 | /* | 46 | /* |
diff --git a/drivers/scsi/sym53c8xx_2/sym_fw.c b/drivers/scsi/sym53c8xx_2/sym_fw.c index fd36cf9858cb..9916a2a22558 100644 --- a/drivers/scsi/sym53c8xx_2/sym_fw.c +++ b/drivers/scsi/sym53c8xx_2/sym_fw.c | |||
@@ -37,11 +37,7 @@ | |||
37 | * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA | 37 | * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA |
38 | */ | 38 | */ |
39 | 39 | ||
40 | #ifdef __FreeBSD__ | ||
41 | #include <dev/sym/sym_glue.h> | ||
42 | #else | ||
43 | #include "sym_glue.h" | 40 | #include "sym_glue.h" |
44 | #endif | ||
45 | 41 | ||
46 | /* | 42 | /* |
47 | * Macros used for all firmwares. | 43 | * Macros used for all firmwares. |
@@ -60,19 +56,12 @@ | |||
60 | #define SYM_FWA_SCR sym_fw1a_scr | 56 | #define SYM_FWA_SCR sym_fw1a_scr |
61 | #define SYM_FWB_SCR sym_fw1b_scr | 57 | #define SYM_FWB_SCR sym_fw1b_scr |
62 | #define SYM_FWZ_SCR sym_fw1z_scr | 58 | #define SYM_FWZ_SCR sym_fw1z_scr |
63 | #ifdef __FreeBSD__ | ||
64 | #include <dev/sym/sym_fw1.h> | ||
65 | #else | ||
66 | #include "sym_fw1.h" | 59 | #include "sym_fw1.h" |
67 | #endif | ||
68 | static struct sym_fwa_ofs sym_fw1a_ofs = { | 60 | static struct sym_fwa_ofs sym_fw1a_ofs = { |
69 | SYM_GEN_FW_A(struct SYM_FWA_SCR) | 61 | SYM_GEN_FW_A(struct SYM_FWA_SCR) |
70 | }; | 62 | }; |
71 | static struct sym_fwb_ofs sym_fw1b_ofs = { | 63 | static struct sym_fwb_ofs sym_fw1b_ofs = { |
72 | SYM_GEN_FW_B(struct SYM_FWB_SCR) | 64 | SYM_GEN_FW_B(struct SYM_FWB_SCR) |
73 | #ifdef SYM_OPT_HANDLE_DIR_UNKNOWN | ||
74 | SYM_GEN_B(struct SYM_FWB_SCR, data_io) | ||
75 | #endif | ||
76 | }; | 65 | }; |
77 | static struct sym_fwz_ofs sym_fw1z_ofs = { | 66 | static struct sym_fwz_ofs sym_fw1z_ofs = { |
78 | SYM_GEN_FW_Z(struct SYM_FWZ_SCR) | 67 | SYM_GEN_FW_Z(struct SYM_FWZ_SCR) |
@@ -88,19 +77,12 @@ static struct sym_fwz_ofs sym_fw1z_ofs = { | |||
88 | #define SYM_FWA_SCR sym_fw2a_scr | 77 | #define SYM_FWA_SCR sym_fw2a_scr |
89 | #define SYM_FWB_SCR sym_fw2b_scr | 78 | #define SYM_FWB_SCR sym_fw2b_scr |
90 | #define SYM_FWZ_SCR sym_fw2z_scr | 79 | #define SYM_FWZ_SCR sym_fw2z_scr |
91 | #ifdef __FreeBSD__ | ||
92 | #include <dev/sym/sym_fw2.h> | ||
93 | #else | ||
94 | #include "sym_fw2.h" | 80 | #include "sym_fw2.h" |
95 | #endif | ||
96 | static struct sym_fwa_ofs sym_fw2a_ofs = { | 81 | static struct sym_fwa_ofs sym_fw2a_ofs = { |
97 | SYM_GEN_FW_A(struct SYM_FWA_SCR) | 82 | SYM_GEN_FW_A(struct SYM_FWA_SCR) |
98 | }; | 83 | }; |
99 | static struct sym_fwb_ofs sym_fw2b_ofs = { | 84 | static struct sym_fwb_ofs sym_fw2b_ofs = { |
100 | SYM_GEN_FW_B(struct SYM_FWB_SCR) | 85 | SYM_GEN_FW_B(struct SYM_FWB_SCR) |
101 | #ifdef SYM_OPT_HANDLE_DIR_UNKNOWN | ||
102 | SYM_GEN_B(struct SYM_FWB_SCR, data_io) | ||
103 | #endif | ||
104 | SYM_GEN_B(struct SYM_FWB_SCR, start64) | 86 | SYM_GEN_B(struct SYM_FWB_SCR, start64) |
105 | SYM_GEN_B(struct SYM_FWB_SCR, pm_handle) | 87 | SYM_GEN_B(struct SYM_FWB_SCR, pm_handle) |
106 | }; | 88 | }; |
diff --git a/drivers/scsi/sym53c8xx_2/sym_fw.h b/drivers/scsi/sym53c8xx_2/sym_fw.h index 43f6810a4045..66ec35beab5b 100644 --- a/drivers/scsi/sym53c8xx_2/sym_fw.h +++ b/drivers/scsi/sym53c8xx_2/sym_fw.h | |||
@@ -92,9 +92,6 @@ struct sym_fwa_ofs { | |||
92 | }; | 92 | }; |
93 | struct sym_fwb_ofs { | 93 | struct sym_fwb_ofs { |
94 | SYM_GEN_FW_B(u_short) | 94 | SYM_GEN_FW_B(u_short) |
95 | #ifdef SYM_OPT_HANDLE_DIR_UNKNOWN | ||
96 | SYM_GEN_B(u_short, data_io) | ||
97 | #endif | ||
98 | SYM_GEN_B(u_short, start64) | 95 | SYM_GEN_B(u_short, start64) |
99 | SYM_GEN_B(u_short, pm_handle) | 96 | SYM_GEN_B(u_short, pm_handle) |
100 | }; | 97 | }; |
@@ -111,9 +108,6 @@ struct sym_fwa_ba { | |||
111 | }; | 108 | }; |
112 | struct sym_fwb_ba { | 109 | struct sym_fwb_ba { |
113 | SYM_GEN_FW_B(u32) | 110 | SYM_GEN_FW_B(u32) |
114 | #ifdef SYM_OPT_HANDLE_DIR_UNKNOWN | ||
115 | SYM_GEN_B(u32, data_io) | ||
116 | #endif | ||
117 | SYM_GEN_B(u32, start64); | 111 | SYM_GEN_B(u32, start64); |
118 | SYM_GEN_B(u32, pm_handle); | 112 | SYM_GEN_B(u32, pm_handle); |
119 | }; | 113 | }; |
diff --git a/drivers/scsi/sym53c8xx_2/sym_fw1.h b/drivers/scsi/sym53c8xx_2/sym_fw1.h index cdd92d82f4b2..7b39f4a35e98 100644 --- a/drivers/scsi/sym53c8xx_2/sym_fw1.h +++ b/drivers/scsi/sym53c8xx_2/sym_fw1.h | |||
@@ -197,12 +197,6 @@ struct SYM_FWB_SCR { | |||
197 | u32 bad_status [ 7]; | 197 | u32 bad_status [ 7]; |
198 | u32 wsr_ma_helper [ 4]; | 198 | u32 wsr_ma_helper [ 4]; |
199 | 199 | ||
200 | #ifdef SYM_OPT_HANDLE_DIR_UNKNOWN | ||
201 | /* Unknown direction handling */ | ||
202 | u32 data_io [ 2]; | ||
203 | u32 data_io_com [ 8]; | ||
204 | u32 data_io_out [ 7]; | ||
205 | #endif | ||
206 | /* Data area */ | 200 | /* Data area */ |
207 | u32 zero [ 1]; | 201 | u32 zero [ 1]; |
208 | u32 scratch [ 1]; | 202 | u32 scratch [ 1]; |
@@ -1747,48 +1741,6 @@ static struct SYM_FWB_SCR SYM_FWB_SCR = { | |||
1747 | SCR_JUMP, | 1741 | SCR_JUMP, |
1748 | PADDR_A (dispatch), | 1742 | PADDR_A (dispatch), |
1749 | 1743 | ||
1750 | #ifdef SYM_OPT_HANDLE_DIR_UNKNOWN | ||
1751 | }/*-------------------------< DATA_IO >--------------------------*/,{ | ||
1752 | /* | ||
1753 | * We jump here if the data direction was unknown at the | ||
1754 | * time we had to queue the command to the scripts processor. | ||
1755 | * Pointers had been set as follow in this situation: | ||
1756 | * savep --> DATA_IO | ||
1757 | * lastp --> start pointer when DATA_IN | ||
1758 | * wlastp --> start pointer when DATA_OUT | ||
1759 | * This script sets savep and lastp according to the | ||
1760 | * direction chosen by the target. | ||
1761 | */ | ||
1762 | SCR_JUMP ^ IFTRUE (WHEN (SCR_DATA_OUT)), | ||
1763 | PADDR_B (data_io_out), | ||
1764 | }/*-------------------------< DATA_IO_COM >----------------------*/,{ | ||
1765 | /* | ||
1766 | * Direction is DATA IN. | ||
1767 | */ | ||
1768 | SCR_COPY (4), | ||
1769 | HADDR_1 (ccb_head.lastp), | ||
1770 | HADDR_1 (ccb_head.savep), | ||
1771 | /* | ||
1772 | * Jump to the SCRIPTS according to actual direction. | ||
1773 | */ | ||
1774 | SCR_COPY (4), | ||
1775 | HADDR_1 (ccb_head.savep), | ||
1776 | RADDR_1 (temp), | ||
1777 | SCR_RETURN, | ||
1778 | 0, | ||
1779 | }/*-------------------------< DATA_IO_OUT >----------------------*/,{ | ||
1780 | /* | ||
1781 | * Direction is DATA OUT. | ||
1782 | */ | ||
1783 | SCR_REG_REG (HF_REG, SCR_AND, (~HF_DATA_IN)), | ||
1784 | 0, | ||
1785 | SCR_COPY (4), | ||
1786 | HADDR_1 (ccb_head.wlastp), | ||
1787 | HADDR_1 (ccb_head.lastp), | ||
1788 | SCR_JUMP, | ||
1789 | PADDR_B(data_io_com), | ||
1790 | #endif /* SYM_OPT_HANDLE_DIR_UNKNOWN */ | ||
1791 | |||
1792 | }/*-------------------------< ZERO >-----------------------------*/,{ | 1744 | }/*-------------------------< ZERO >-----------------------------*/,{ |
1793 | SCR_DATA_ZERO, | 1745 | SCR_DATA_ZERO, |
1794 | }/*-------------------------< SCRATCH >--------------------------*/,{ | 1746 | }/*-------------------------< SCRATCH >--------------------------*/,{ |
diff --git a/drivers/scsi/sym53c8xx_2/sym_fw2.h b/drivers/scsi/sym53c8xx_2/sym_fw2.h index 7ea7151f5d1d..851f2706f220 100644 --- a/drivers/scsi/sym53c8xx_2/sym_fw2.h +++ b/drivers/scsi/sym53c8xx_2/sym_fw2.h | |||
@@ -191,13 +191,6 @@ struct SYM_FWB_SCR { | |||
191 | u32 pm_wsr_handle [ 38]; | 191 | u32 pm_wsr_handle [ 38]; |
192 | u32 wsr_ma_helper [ 4]; | 192 | u32 wsr_ma_helper [ 4]; |
193 | 193 | ||
194 | #ifdef SYM_OPT_HANDLE_DIR_UNKNOWN | ||
195 | /* Unknown direction handling */ | ||
196 | u32 data_io [ 2]; | ||
197 | u32 data_io_in [ 2]; | ||
198 | u32 data_io_com [ 6]; | ||
199 | u32 data_io_out [ 8]; | ||
200 | #endif | ||
201 | /* Data area */ | 194 | /* Data area */ |
202 | u32 zero [ 1]; | 195 | u32 zero [ 1]; |
203 | u32 scratch [ 1]; | 196 | u32 scratch [ 1]; |
@@ -1838,51 +1831,6 @@ static struct SYM_FWB_SCR SYM_FWB_SCR = { | |||
1838 | SCR_JUMP, | 1831 | SCR_JUMP, |
1839 | PADDR_A (dispatch), | 1832 | PADDR_A (dispatch), |
1840 | 1833 | ||
1841 | #ifdef SYM_OPT_HANDLE_DIR_UNKNOWN | ||
1842 | }/*-------------------------< DATA_IO >--------------------------*/,{ | ||
1843 | /* | ||
1844 | * We jump here if the data direction was unknown at the | ||
1845 | * time we had to queue the command to the scripts processor. | ||
1846 | * Pointers had been set as follow in this situation: | ||
1847 | * savep --> DATA_IO | ||
1848 | * lastp --> start pointer when DATA_IN | ||
1849 | * wlastp --> start pointer when DATA_OUT | ||
1850 | * This script sets savep and lastp according to the | ||
1851 | * direction chosen by the target. | ||
1852 | */ | ||
1853 | SCR_JUMP ^ IFTRUE (WHEN (SCR_DATA_OUT)), | ||
1854 | PADDR_B (data_io_out), | ||
1855 | }/*-------------------------< DATA_IO_IN >-----------------------*/,{ | ||
1856 | /* | ||
1857 | * Direction is DATA IN. | ||
1858 | */ | ||
1859 | SCR_LOAD_REL (scratcha, 4), | ||
1860 | offsetof (struct sym_ccb, phys.head.lastp), | ||
1861 | }/*-------------------------< DATA_IO_COM >----------------------*/,{ | ||
1862 | SCR_STORE_REL (scratcha, 4), | ||
1863 | offsetof (struct sym_ccb, phys.head.savep), | ||
1864 | |||
1865 | /* | ||
1866 | * Jump to the SCRIPTS according to actual direction. | ||
1867 | */ | ||
1868 | SCR_LOAD_REL (temp, 4), | ||
1869 | offsetof (struct sym_ccb, phys.head.savep), | ||
1870 | SCR_RETURN, | ||
1871 | 0, | ||
1872 | }/*-------------------------< DATA_IO_OUT >----------------------*/,{ | ||
1873 | /* | ||
1874 | * Direction is DATA OUT. | ||
1875 | */ | ||
1876 | SCR_REG_REG (HF_REG, SCR_AND, (~HF_DATA_IN)), | ||
1877 | 0, | ||
1878 | SCR_LOAD_REL (scratcha, 4), | ||
1879 | offsetof (struct sym_ccb, phys.head.wlastp), | ||
1880 | SCR_STORE_REL (scratcha, 4), | ||
1881 | offsetof (struct sym_ccb, phys.head.lastp), | ||
1882 | SCR_JUMP, | ||
1883 | PADDR_B(data_io_com), | ||
1884 | #endif /* SYM_OPT_HANDLE_DIR_UNKNOWN */ | ||
1885 | |||
1886 | }/*-------------------------< ZERO >-----------------------------*/,{ | 1834 | }/*-------------------------< ZERO >-----------------------------*/,{ |
1887 | SCR_DATA_ZERO, | 1835 | SCR_DATA_ZERO, |
1888 | }/*-------------------------< SCRATCH >--------------------------*/,{ | 1836 | }/*-------------------------< SCRATCH >--------------------------*/,{ |
diff --git a/drivers/scsi/sym53c8xx_2/sym_glue.c b/drivers/scsi/sym53c8xx_2/sym_glue.c index 7fc0b97173e1..1fffd2b3c654 100644 --- a/drivers/scsi/sym53c8xx_2/sym_glue.c +++ b/drivers/scsi/sym53c8xx_2/sym_glue.c | |||
@@ -514,9 +514,10 @@ static inline int sym_setup_cdb(struct sym_hcb *np, struct scsi_cmnd *cmd, struc | |||
514 | */ | 514 | */ |
515 | int sym_setup_data_and_start(struct sym_hcb *np, struct scsi_cmnd *cmd, struct sym_ccb *cp) | 515 | int sym_setup_data_and_start(struct sym_hcb *np, struct scsi_cmnd *cmd, struct sym_ccb *cp) |
516 | { | 516 | { |
517 | int dir; | ||
518 | struct sym_tcb *tp = &np->target[cp->target]; | 517 | struct sym_tcb *tp = &np->target[cp->target]; |
519 | struct sym_lcb *lp = sym_lp(tp, cp->lun); | 518 | struct sym_lcb *lp = sym_lp(tp, cp->lun); |
519 | u32 lastp, goalp; | ||
520 | int dir; | ||
520 | 521 | ||
521 | /* | 522 | /* |
522 | * Build the CDB. | 523 | * Build the CDB. |
@@ -534,15 +535,47 @@ int sym_setup_data_and_start(struct sym_hcb *np, struct scsi_cmnd *cmd, struct s | |||
534 | sym_set_cam_status(cmd, DID_ERROR); | 535 | sym_set_cam_status(cmd, DID_ERROR); |
535 | goto out_abort; | 536 | goto out_abort; |
536 | } | 537 | } |
538 | |||
539 | /* | ||
540 | * No segments means no data. | ||
541 | */ | ||
542 | if (!cp->segments) | ||
543 | dir = DMA_NONE; | ||
537 | } else { | 544 | } else { |
538 | cp->data_len = 0; | 545 | cp->data_len = 0; |
539 | cp->segments = 0; | 546 | cp->segments = 0; |
540 | } | 547 | } |
541 | 548 | ||
542 | /* | 549 | /* |
543 | * Set data pointers. | 550 | * Set the data pointer. |
544 | */ | 551 | */ |
545 | sym_setup_data_pointers(np, cp, dir); | 552 | switch (dir) { |
553 | case DMA_BIDIRECTIONAL: | ||
554 | printk("%s: got DMA_BIDIRECTIONAL command", sym_name(np)); | ||
555 | sym_set_cam_status(cmd, DID_ERROR); | ||
556 | goto out_abort; | ||
557 | case DMA_TO_DEVICE: | ||
558 | goalp = SCRIPTA_BA(np, data_out2) + 8; | ||
559 | lastp = goalp - 8 - (cp->segments * (2*4)); | ||
560 | break; | ||
561 | case DMA_FROM_DEVICE: | ||
562 | cp->host_flags |= HF_DATA_IN; | ||
563 | goalp = SCRIPTA_BA(np, data_in2) + 8; | ||
564 | lastp = goalp - 8 - (cp->segments * (2*4)); | ||
565 | break; | ||
566 | case DMA_NONE: | ||
567 | default: | ||
568 | lastp = goalp = SCRIPTB_BA(np, no_data); | ||
569 | break; | ||
570 | } | ||
571 | |||
572 | /* | ||
573 | * Set all pointers values needed by SCRIPTS. | ||
574 | */ | ||
575 | cp->phys.head.lastp = cpu_to_scr(lastp); | ||
576 | cp->phys.head.savep = cpu_to_scr(lastp); | ||
577 | cp->startp = cp->phys.head.savep; | ||
578 | cp->goalp = cpu_to_scr(goalp); | ||
546 | 579 | ||
547 | /* | 580 | /* |
548 | * When `#ifed 1', the code below makes the driver | 581 | * When `#ifed 1', the code below makes the driver |
@@ -563,10 +596,7 @@ int sym_setup_data_and_start(struct sym_hcb *np, struct scsi_cmnd *cmd, struct s | |||
563 | /* | 596 | /* |
564 | * activate this job. | 597 | * activate this job. |
565 | */ | 598 | */ |
566 | if (lp) | 599 | sym_start_next_ccbs(np, lp, 2); |
567 | sym_start_next_ccbs(np, lp, 2); | ||
568 | else | ||
569 | sym_put_start_queue(np, cp); | ||
570 | return 0; | 600 | return 0; |
571 | 601 | ||
572 | out_abort: | 602 | out_abort: |
@@ -981,15 +1011,14 @@ static int device_queue_depth(struct sym_hcb *np, int target, int lun) | |||
981 | 1011 | ||
982 | static int sym53c8xx_slave_alloc(struct scsi_device *sdev) | 1012 | static int sym53c8xx_slave_alloc(struct scsi_device *sdev) |
983 | { | 1013 | { |
984 | struct sym_hcb *np; | 1014 | struct sym_hcb *np = sym_get_hcb(sdev->host); |
985 | struct sym_tcb *tp; | 1015 | struct sym_tcb *tp = &np->target[sdev->id]; |
1016 | struct sym_lcb *lp; | ||
986 | 1017 | ||
987 | if (sdev->id >= SYM_CONF_MAX_TARGET || sdev->lun >= SYM_CONF_MAX_LUN) | 1018 | if (sdev->id >= SYM_CONF_MAX_TARGET || sdev->lun >= SYM_CONF_MAX_LUN) |
988 | return -ENXIO; | 1019 | return -ENXIO; |
989 | 1020 | ||
990 | np = sym_get_hcb(sdev->host); | 1021 | tp->starget = sdev->sdev_target; |
991 | tp = &np->target[sdev->id]; | ||
992 | |||
993 | /* | 1022 | /* |
994 | * Fail the device init if the device is flagged NOSCAN at BOOT in | 1023 | * Fail the device init if the device is flagged NOSCAN at BOOT in |
995 | * the NVRAM. This may speed up boot and maintain coherency with | 1024 | * the NVRAM. This may speed up boot and maintain coherency with |
@@ -999,35 +1028,41 @@ static int sym53c8xx_slave_alloc(struct scsi_device *sdev) | |||
999 | * lun devices behave badly when asked for a non zero LUN. | 1028 | * lun devices behave badly when asked for a non zero LUN. |
1000 | */ | 1029 | */ |
1001 | 1030 | ||
1002 | if ((tp->usrflags & SYM_SCAN_BOOT_DISABLED) || | 1031 | if (tp->usrflags & SYM_SCAN_BOOT_DISABLED) { |
1003 | ((tp->usrflags & SYM_SCAN_LUNS_DISABLED) && sdev->lun != 0)) { | ||
1004 | tp->usrflags &= ~SYM_SCAN_BOOT_DISABLED; | 1032 | tp->usrflags &= ~SYM_SCAN_BOOT_DISABLED; |
1033 | starget_printk(KERN_INFO, tp->starget, | ||
1034 | "Scan at boot disabled in NVRAM\n"); | ||
1005 | return -ENXIO; | 1035 | return -ENXIO; |
1006 | } | 1036 | } |
1007 | 1037 | ||
1008 | tp->starget = sdev->sdev_target; | 1038 | if (tp->usrflags & SYM_SCAN_LUNS_DISABLED) { |
1039 | if (sdev->lun != 0) | ||
1040 | return -ENXIO; | ||
1041 | starget_printk(KERN_INFO, tp->starget, | ||
1042 | "Multiple LUNs disabled in NVRAM\n"); | ||
1043 | } | ||
1044 | |||
1045 | lp = sym_alloc_lcb(np, sdev->id, sdev->lun); | ||
1046 | if (!lp) | ||
1047 | return -ENOMEM; | ||
1048 | |||
1049 | spi_min_period(tp->starget) = tp->usr_period; | ||
1050 | spi_max_width(tp->starget) = tp->usr_width; | ||
1051 | |||
1009 | return 0; | 1052 | return 0; |
1010 | } | 1053 | } |
1011 | 1054 | ||
1012 | /* | 1055 | /* |
1013 | * Linux entry point for device queue sizing. | 1056 | * Linux entry point for device queue sizing. |
1014 | */ | 1057 | */ |
1015 | static int sym53c8xx_slave_configure(struct scsi_device *device) | 1058 | static int sym53c8xx_slave_configure(struct scsi_device *sdev) |
1016 | { | 1059 | { |
1017 | struct sym_hcb *np = sym_get_hcb(device->host); | 1060 | struct sym_hcb *np = sym_get_hcb(sdev->host); |
1018 | struct sym_tcb *tp = &np->target[device->id]; | 1061 | struct sym_tcb *tp = &np->target[sdev->id]; |
1019 | struct sym_lcb *lp; | 1062 | struct sym_lcb *lp = sym_lp(tp, sdev->lun); |
1020 | int reqtags, depth_to_use; | 1063 | int reqtags, depth_to_use; |
1021 | 1064 | ||
1022 | /* | 1065 | /* |
1023 | * Allocate the LCB if not yet. | ||
1024 | * If it fail, we may well be in the sh*t. :) | ||
1025 | */ | ||
1026 | lp = sym_alloc_lcb(np, device->id, device->lun); | ||
1027 | if (!lp) | ||
1028 | return -ENOMEM; | ||
1029 | |||
1030 | /* | ||
1031 | * Get user flags. | 1066 | * Get user flags. |
1032 | */ | 1067 | */ |
1033 | lp->curr_flags = lp->user_flags; | 1068 | lp->curr_flags = lp->user_flags; |
@@ -1038,10 +1073,10 @@ static int sym53c8xx_slave_configure(struct scsi_device *device) | |||
1038 | * Use at least 2. | 1073 | * Use at least 2. |
1039 | * Donnot use more than our maximum. | 1074 | * Donnot use more than our maximum. |
1040 | */ | 1075 | */ |
1041 | reqtags = device_queue_depth(np, device->id, device->lun); | 1076 | reqtags = device_queue_depth(np, sdev->id, sdev->lun); |
1042 | if (reqtags > tp->usrtags) | 1077 | if (reqtags > tp->usrtags) |
1043 | reqtags = tp->usrtags; | 1078 | reqtags = tp->usrtags; |
1044 | if (!device->tagged_supported) | 1079 | if (!sdev->tagged_supported) |
1045 | reqtags = 0; | 1080 | reqtags = 0; |
1046 | #if 1 /* Avoid to locally queue commands for no good reasons */ | 1081 | #if 1 /* Avoid to locally queue commands for no good reasons */ |
1047 | if (reqtags > SYM_CONF_MAX_TAG) | 1082 | if (reqtags > SYM_CONF_MAX_TAG) |
@@ -1050,19 +1085,30 @@ static int sym53c8xx_slave_configure(struct scsi_device *device) | |||
1050 | #else | 1085 | #else |
1051 | depth_to_use = (reqtags ? SYM_CONF_MAX_TAG : 2); | 1086 | depth_to_use = (reqtags ? SYM_CONF_MAX_TAG : 2); |
1052 | #endif | 1087 | #endif |
1053 | scsi_adjust_queue_depth(device, | 1088 | scsi_adjust_queue_depth(sdev, |
1054 | (device->tagged_supported ? | 1089 | (sdev->tagged_supported ? |
1055 | MSG_SIMPLE_TAG : 0), | 1090 | MSG_SIMPLE_TAG : 0), |
1056 | depth_to_use); | 1091 | depth_to_use); |
1057 | lp->s.scdev_depth = depth_to_use; | 1092 | lp->s.scdev_depth = depth_to_use; |
1058 | sym_tune_dev_queuing(tp, device->lun, reqtags); | 1093 | sym_tune_dev_queuing(tp, sdev->lun, reqtags); |
1059 | 1094 | ||
1060 | if (!spi_initial_dv(device->sdev_target)) | 1095 | if (!spi_initial_dv(sdev->sdev_target)) |
1061 | spi_dv_device(device); | 1096 | spi_dv_device(sdev); |
1062 | 1097 | ||
1063 | return 0; | 1098 | return 0; |
1064 | } | 1099 | } |
1065 | 1100 | ||
1101 | static void sym53c8xx_slave_destroy(struct scsi_device *sdev) | ||
1102 | { | ||
1103 | struct sym_hcb *np = sym_get_hcb(sdev->host); | ||
1104 | struct sym_lcb *lp = sym_lp(&np->target[sdev->id], sdev->lun); | ||
1105 | |||
1106 | if (lp->itlq_tbl) | ||
1107 | sym_mfree_dma(lp->itlq_tbl, SYM_CONF_MAX_TASK * 4, "ITLQ_TBL"); | ||
1108 | kfree(lp->cb_tags); | ||
1109 | sym_mfree_dma(lp, sizeof(*lp), "LCB"); | ||
1110 | } | ||
1111 | |||
1066 | /* | 1112 | /* |
1067 | * Linux entry point for info() function | 1113 | * Linux entry point for info() function |
1068 | */ | 1114 | */ |
@@ -1497,7 +1543,7 @@ static int sym_setup_bus_dma_mask(struct sym_hcb *np) | |||
1497 | { | 1543 | { |
1498 | #if SYM_CONF_DMA_ADDRESSING_MODE > 0 | 1544 | #if SYM_CONF_DMA_ADDRESSING_MODE > 0 |
1499 | #if SYM_CONF_DMA_ADDRESSING_MODE == 1 | 1545 | #if SYM_CONF_DMA_ADDRESSING_MODE == 1 |
1500 | #define DMA_DAC_MASK 0x000000ffffffffffULL /* 40-bit */ | 1546 | #define DMA_DAC_MASK DMA_40BIT_MASK |
1501 | #elif SYM_CONF_DMA_ADDRESSING_MODE == 2 | 1547 | #elif SYM_CONF_DMA_ADDRESSING_MODE == 2 |
1502 | #define DMA_DAC_MASK DMA_64BIT_MASK | 1548 | #define DMA_DAC_MASK DMA_64BIT_MASK |
1503 | #endif | 1549 | #endif |
@@ -1926,6 +1972,7 @@ static struct scsi_host_template sym2_template = { | |||
1926 | .queuecommand = sym53c8xx_queue_command, | 1972 | .queuecommand = sym53c8xx_queue_command, |
1927 | .slave_alloc = sym53c8xx_slave_alloc, | 1973 | .slave_alloc = sym53c8xx_slave_alloc, |
1928 | .slave_configure = sym53c8xx_slave_configure, | 1974 | .slave_configure = sym53c8xx_slave_configure, |
1975 | .slave_destroy = sym53c8xx_slave_destroy, | ||
1929 | .eh_abort_handler = sym53c8xx_eh_abort_handler, | 1976 | .eh_abort_handler = sym53c8xx_eh_abort_handler, |
1930 | .eh_device_reset_handler = sym53c8xx_eh_device_reset_handler, | 1977 | .eh_device_reset_handler = sym53c8xx_eh_device_reset_handler, |
1931 | .eh_bus_reset_handler = sym53c8xx_eh_bus_reset_handler, | 1978 | .eh_bus_reset_handler = sym53c8xx_eh_bus_reset_handler, |
diff --git a/drivers/scsi/sym53c8xx_2/sym_glue.h b/drivers/scsi/sym53c8xx_2/sym_glue.h index d3d52f14d7c0..cc92d0c70cd7 100644 --- a/drivers/scsi/sym53c8xx_2/sym_glue.h +++ b/drivers/scsi/sym53c8xx_2/sym_glue.h | |||
@@ -68,7 +68,6 @@ | |||
68 | */ | 68 | */ |
69 | #define SYM_CONF_TIMER_INTERVAL ((HZ+1)/2) | 69 | #define SYM_CONF_TIMER_INTERVAL ((HZ+1)/2) |
70 | 70 | ||
71 | #define SYM_OPT_HANDLE_DIR_UNKNOWN | ||
72 | #define SYM_OPT_HANDLE_DEVICE_QUEUEING | 71 | #define SYM_OPT_HANDLE_DEVICE_QUEUEING |
73 | #define SYM_OPT_LIMIT_COMMAND_REORDERING | 72 | #define SYM_OPT_LIMIT_COMMAND_REORDERING |
74 | 73 | ||
@@ -268,6 +267,5 @@ void sym_xpt_async_bus_reset(struct sym_hcb *np); | |||
268 | void sym_xpt_async_sent_bdr(struct sym_hcb *np, int target); | 267 | void sym_xpt_async_sent_bdr(struct sym_hcb *np, int target); |
269 | int sym_setup_data_and_start (struct sym_hcb *np, struct scsi_cmnd *csio, struct sym_ccb *cp); | 268 | int sym_setup_data_and_start (struct sym_hcb *np, struct scsi_cmnd *csio, struct sym_ccb *cp); |
270 | void sym_log_bus_error(struct sym_hcb *np); | 269 | void sym_log_bus_error(struct sym_hcb *np); |
271 | void sym_sniff_inquiry(struct sym_hcb *np, struct scsi_cmnd *cmd, int resid); | ||
272 | 270 | ||
273 | #endif /* SYM_GLUE_H */ | 271 | #endif /* SYM_GLUE_H */ |
diff --git a/drivers/scsi/sym53c8xx_2/sym_hipd.c b/drivers/scsi/sym53c8xx_2/sym_hipd.c index 1564ca203a3e..8260f040d39c 100644 --- a/drivers/scsi/sym53c8xx_2/sym_hipd.c +++ b/drivers/scsi/sym53c8xx_2/sym_hipd.c | |||
@@ -40,6 +40,7 @@ | |||
40 | 40 | ||
41 | #include <linux/slab.h> | 41 | #include <linux/slab.h> |
42 | #include <asm/param.h> /* for timeouts in units of HZ */ | 42 | #include <asm/param.h> /* for timeouts in units of HZ */ |
43 | #include <scsi/scsi_dbg.h> | ||
43 | 44 | ||
44 | #include "sym_glue.h" | 45 | #include "sym_glue.h" |
45 | #include "sym_nvram.h" | 46 | #include "sym_nvram.h" |
@@ -70,32 +71,12 @@ static void sym_printl_hex(u_char *p, int n) | |||
70 | printf (".\n"); | 71 | printf (".\n"); |
71 | } | 72 | } |
72 | 73 | ||
73 | /* | ||
74 | * Print out the content of a SCSI message. | ||
75 | */ | ||
76 | static int sym_show_msg (u_char * msg) | ||
77 | { | ||
78 | u_char i; | ||
79 | printf ("%x",*msg); | ||
80 | if (*msg==M_EXTENDED) { | ||
81 | for (i=1;i<8;i++) { | ||
82 | if (i-1>msg[1]) break; | ||
83 | printf ("-%x",msg[i]); | ||
84 | } | ||
85 | return (i+1); | ||
86 | } else if ((*msg & 0xf0) == 0x20) { | ||
87 | printf ("-%x",msg[1]); | ||
88 | return (2); | ||
89 | } | ||
90 | return (1); | ||
91 | } | ||
92 | |||
93 | static void sym_print_msg(struct sym_ccb *cp, char *label, u_char *msg) | 74 | static void sym_print_msg(struct sym_ccb *cp, char *label, u_char *msg) |
94 | { | 75 | { |
95 | sym_print_addr(cp->cmd, "%s: ", label); | 76 | sym_print_addr(cp->cmd, "%s: ", label); |
96 | 77 | ||
97 | sym_show_msg(msg); | 78 | spi_print_msg(msg); |
98 | printf(".\n"); | 79 | printf("\n"); |
99 | } | 80 | } |
100 | 81 | ||
101 | static void sym_print_nego_msg(struct sym_hcb *np, int target, char *label, u_char *msg) | 82 | static void sym_print_nego_msg(struct sym_hcb *np, int target, char *label, u_char *msg) |
@@ -103,8 +84,8 @@ static void sym_print_nego_msg(struct sym_hcb *np, int target, char *label, u_ch | |||
103 | struct sym_tcb *tp = &np->target[target]; | 84 | struct sym_tcb *tp = &np->target[target]; |
104 | dev_info(&tp->starget->dev, "%s: ", label); | 85 | dev_info(&tp->starget->dev, "%s: ", label); |
105 | 86 | ||
106 | sym_show_msg(msg); | 87 | spi_print_msg(msg); |
107 | printf(".\n"); | 88 | printf("\n"); |
108 | } | 89 | } |
109 | 90 | ||
110 | /* | 91 | /* |
@@ -635,29 +616,6 @@ static __inline void sym_init_burst(struct sym_hcb *np, u_char bc) | |||
635 | } | 616 | } |
636 | } | 617 | } |
637 | 618 | ||
638 | |||
639 | /* | ||
640 | * Print out the list of targets that have some flag disabled by user. | ||
641 | */ | ||
642 | static void sym_print_targets_flag(struct sym_hcb *np, int mask, char *msg) | ||
643 | { | ||
644 | int cnt; | ||
645 | int i; | ||
646 | |||
647 | for (cnt = 0, i = 0 ; i < SYM_CONF_MAX_TARGET ; i++) { | ||
648 | if (i == np->myaddr) | ||
649 | continue; | ||
650 | if (np->target[i].usrflags & mask) { | ||
651 | if (!cnt++) | ||
652 | printf("%s: %s disabled for targets", | ||
653 | sym_name(np), msg); | ||
654 | printf(" %d", i); | ||
655 | } | ||
656 | } | ||
657 | if (cnt) | ||
658 | printf(".\n"); | ||
659 | } | ||
660 | |||
661 | /* | 619 | /* |
662 | * Save initial settings of some IO registers. | 620 | * Save initial settings of some IO registers. |
663 | * Assumed to have been set by BIOS. | 621 | * Assumed to have been set by BIOS. |
@@ -962,7 +920,7 @@ static int sym_prepare_setting(struct Scsi_Host *shost, struct sym_hcb *np, stru | |||
962 | tp->usrflags |= (SYM_DISC_ENABLED | SYM_TAGS_ENABLED); | 920 | tp->usrflags |= (SYM_DISC_ENABLED | SYM_TAGS_ENABLED); |
963 | tp->usrtags = SYM_SETUP_MAX_TAG; | 921 | tp->usrtags = SYM_SETUP_MAX_TAG; |
964 | 922 | ||
965 | sym_nvram_setup_target(np, i, nvram); | 923 | sym_nvram_setup_target(tp, i, nvram); |
966 | 924 | ||
967 | if (!tp->usrtags) | 925 | if (!tp->usrtags) |
968 | tp->usrflags &= ~SYM_TAGS_ENABLED; | 926 | tp->usrflags &= ~SYM_TAGS_ENABLED; |
@@ -1005,13 +963,6 @@ static int sym_prepare_setting(struct Scsi_Host *shost, struct sym_hcb *np, stru | |||
1005 | sym_name(np), np->rv_scntl3, np->rv_dmode, np->rv_dcntl, | 963 | sym_name(np), np->rv_scntl3, np->rv_dmode, np->rv_dcntl, |
1006 | np->rv_ctest3, np->rv_ctest4, np->rv_ctest5); | 964 | np->rv_ctest3, np->rv_ctest4, np->rv_ctest5); |
1007 | } | 965 | } |
1008 | /* | ||
1009 | * Let user be aware of targets that have some disable flags set. | ||
1010 | */ | ||
1011 | sym_print_targets_flag(np, SYM_SCAN_BOOT_DISABLED, "SCAN AT BOOT"); | ||
1012 | if (sym_verbose) | ||
1013 | sym_print_targets_flag(np, SYM_SCAN_LUNS_DISABLED, | ||
1014 | "SCAN FOR LUNS"); | ||
1015 | 966 | ||
1016 | return 0; | 967 | return 0; |
1017 | } | 968 | } |
@@ -1523,7 +1474,7 @@ static int sym_prepare_nego(struct sym_hcb *np, struct sym_ccb *cp, u_char *msgp | |||
1523 | /* | 1474 | /* |
1524 | * Insert a job into the start queue. | 1475 | * Insert a job into the start queue. |
1525 | */ | 1476 | */ |
1526 | void sym_put_start_queue(struct sym_hcb *np, struct sym_ccb *cp) | 1477 | static void sym_put_start_queue(struct sym_hcb *np, struct sym_ccb *cp) |
1527 | { | 1478 | { |
1528 | u_short qidx; | 1479 | u_short qidx; |
1529 | 1480 | ||
@@ -3654,7 +3605,7 @@ static int sym_evaluate_dp(struct sym_hcb *np, struct sym_ccb *cp, u32 scr, int | |||
3654 | * If result is dp_sg = SYM_CONF_MAX_SG, then we are at the | 3605 | * If result is dp_sg = SYM_CONF_MAX_SG, then we are at the |
3655 | * end of the data. | 3606 | * end of the data. |
3656 | */ | 3607 | */ |
3657 | tmp = scr_to_cpu(sym_goalp(cp)); | 3608 | tmp = scr_to_cpu(cp->goalp); |
3658 | dp_sg = SYM_CONF_MAX_SG; | 3609 | dp_sg = SYM_CONF_MAX_SG; |
3659 | if (dp_scr != tmp) | 3610 | if (dp_scr != tmp) |
3660 | dp_sg -= (tmp - 8 - (int)dp_scr) / (2*4); | 3611 | dp_sg -= (tmp - 8 - (int)dp_scr) / (2*4); |
@@ -3761,7 +3712,7 @@ static void sym_modify_dp(struct sym_hcb *np, struct sym_tcb *tp, struct sym_ccb | |||
3761 | * And our alchemy:) allows to easily calculate the data | 3712 | * And our alchemy:) allows to easily calculate the data |
3762 | * script address we want to return for the next data phase. | 3713 | * script address we want to return for the next data phase. |
3763 | */ | 3714 | */ |
3764 | dp_ret = cpu_to_scr(sym_goalp(cp)); | 3715 | dp_ret = cpu_to_scr(cp->goalp); |
3765 | dp_ret = dp_ret - 8 - (SYM_CONF_MAX_SG - dp_sg) * (2*4); | 3716 | dp_ret = dp_ret - 8 - (SYM_CONF_MAX_SG - dp_sg) * (2*4); |
3766 | 3717 | ||
3767 | /* | 3718 | /* |
@@ -3857,7 +3808,7 @@ int sym_compute_residual(struct sym_hcb *np, struct sym_ccb *cp) | |||
3857 | * If all data has been transferred, | 3808 | * If all data has been transferred, |
3858 | * there is no residual. | 3809 | * there is no residual. |
3859 | */ | 3810 | */ |
3860 | if (cp->phys.head.lastp == sym_goalp(cp)) | 3811 | if (cp->phys.head.lastp == cp->goalp) |
3861 | return resid; | 3812 | return resid; |
3862 | 3813 | ||
3863 | /* | 3814 | /* |
@@ -4664,30 +4615,7 @@ struct sym_ccb *sym_get_ccb (struct sym_hcb *np, struct scsi_cmnd *cmd, u_char t | |||
4664 | goto out; | 4615 | goto out; |
4665 | cp = sym_que_entry(qp, struct sym_ccb, link_ccbq); | 4616 | cp = sym_que_entry(qp, struct sym_ccb, link_ccbq); |
4666 | 4617 | ||
4667 | #ifndef SYM_OPT_HANDLE_DEVICE_QUEUEING | 4618 | { |
4668 | /* | ||
4669 | * If the LCB is not yet available and the LUN | ||
4670 | * has been probed ok, try to allocate the LCB. | ||
4671 | */ | ||
4672 | if (!lp && sym_is_bit(tp->lun_map, ln)) { | ||
4673 | lp = sym_alloc_lcb(np, tn, ln); | ||
4674 | if (!lp) | ||
4675 | goto out_free; | ||
4676 | } | ||
4677 | #endif | ||
4678 | |||
4679 | /* | ||
4680 | * If the LCB is not available here, then the | ||
4681 | * logical unit is not yet discovered. For those | ||
4682 | * ones only accept 1 SCSI IO per logical unit, | ||
4683 | * since we cannot allow disconnections. | ||
4684 | */ | ||
4685 | if (!lp) { | ||
4686 | if (!sym_is_bit(tp->busy0_map, ln)) | ||
4687 | sym_set_bit(tp->busy0_map, ln); | ||
4688 | else | ||
4689 | goto out_free; | ||
4690 | } else { | ||
4691 | /* | 4619 | /* |
4692 | * If we have been asked for a tagged command. | 4620 | * If we have been asked for a tagged command. |
4693 | */ | 4621 | */ |
@@ -4840,12 +4768,6 @@ void sym_free_ccb (struct sym_hcb *np, struct sym_ccb *cp) | |||
4840 | lp->head.resel_sa = | 4768 | lp->head.resel_sa = |
4841 | cpu_to_scr(SCRIPTB_BA(np, resel_bad_lun)); | 4769 | cpu_to_scr(SCRIPTB_BA(np, resel_bad_lun)); |
4842 | } | 4770 | } |
4843 | /* | ||
4844 | * Otherwise, we only accept 1 IO per LUN. | ||
4845 | * Clear the bit that keeps track of this IO. | ||
4846 | */ | ||
4847 | else | ||
4848 | sym_clr_bit(tp->busy0_map, cp->lun); | ||
4849 | 4771 | ||
4850 | /* | 4772 | /* |
4851 | * We donnot queue more than 1 ccb per target | 4773 | * We donnot queue more than 1 ccb per target |
@@ -4997,20 +4919,7 @@ static void sym_init_tcb (struct sym_hcb *np, u_char tn) | |||
4997 | struct sym_lcb *sym_alloc_lcb (struct sym_hcb *np, u_char tn, u_char ln) | 4919 | struct sym_lcb *sym_alloc_lcb (struct sym_hcb *np, u_char tn, u_char ln) |
4998 | { | 4920 | { |
4999 | struct sym_tcb *tp = &np->target[tn]; | 4921 | struct sym_tcb *tp = &np->target[tn]; |
5000 | struct sym_lcb *lp = sym_lp(tp, ln); | 4922 | struct sym_lcb *lp = NULL; |
5001 | |||
5002 | /* | ||
5003 | * Already done, just return. | ||
5004 | */ | ||
5005 | if (lp) | ||
5006 | return lp; | ||
5007 | |||
5008 | /* | ||
5009 | * Donnot allow LUN control block | ||
5010 | * allocation for not probed LUNs. | ||
5011 | */ | ||
5012 | if (!sym_is_bit(tp->lun_map, ln)) | ||
5013 | return NULL; | ||
5014 | 4923 | ||
5015 | /* | 4924 | /* |
5016 | * Initialize the target control block if not yet. | 4925 | * Initialize the target control block if not yet. |
@@ -5082,13 +4991,7 @@ struct sym_lcb *sym_alloc_lcb (struct sym_hcb *np, u_char tn, u_char ln) | |||
5082 | lp->started_max = SYM_CONF_MAX_TASK; | 4991 | lp->started_max = SYM_CONF_MAX_TASK; |
5083 | lp->started_limit = SYM_CONF_MAX_TASK; | 4992 | lp->started_limit = SYM_CONF_MAX_TASK; |
5084 | #endif | 4993 | #endif |
5085 | /* | 4994 | |
5086 | * If we are busy, count the IO. | ||
5087 | */ | ||
5088 | if (sym_is_bit(tp->busy0_map, ln)) { | ||
5089 | lp->busy_itl = 1; | ||
5090 | sym_clr_bit(tp->busy0_map, ln); | ||
5091 | } | ||
5092 | fail: | 4995 | fail: |
5093 | return lp; | 4996 | return lp; |
5094 | } | 4997 | } |
@@ -5103,12 +5006,6 @@ static void sym_alloc_lcb_tags (struct sym_hcb *np, u_char tn, u_char ln) | |||
5103 | int i; | 5006 | int i; |
5104 | 5007 | ||
5105 | /* | 5008 | /* |
5106 | * If LCB not available, try to allocate it. | ||
5107 | */ | ||
5108 | if (!lp && !(lp = sym_alloc_lcb(np, tn, ln))) | ||
5109 | goto fail; | ||
5110 | |||
5111 | /* | ||
5112 | * Allocate the task table and and the tag allocation | 5009 | * Allocate the task table and and the tag allocation |
5113 | * circular buffer. We want both or none. | 5010 | * circular buffer. We want both or none. |
5114 | */ | 5011 | */ |
@@ -5481,8 +5378,7 @@ finish: | |||
5481 | /* | 5378 | /* |
5482 | * Donnot start more than 1 command after an error. | 5379 | * Donnot start more than 1 command after an error. |
5483 | */ | 5380 | */ |
5484 | if (lp) | 5381 | sym_start_next_ccbs(np, lp, 1); |
5485 | sym_start_next_ccbs(np, lp, 1); | ||
5486 | #endif | 5382 | #endif |
5487 | } | 5383 | } |
5488 | 5384 | ||
@@ -5521,17 +5417,11 @@ void sym_complete_ok (struct sym_hcb *np, struct sym_ccb *cp) | |||
5521 | lp = sym_lp(tp, cp->lun); | 5417 | lp = sym_lp(tp, cp->lun); |
5522 | 5418 | ||
5523 | /* | 5419 | /* |
5524 | * Assume device discovered on first success. | ||
5525 | */ | ||
5526 | if (!lp) | ||
5527 | sym_set_bit(tp->lun_map, cp->lun); | ||
5528 | |||
5529 | /* | ||
5530 | * If all data have been transferred, given than no | 5420 | * If all data have been transferred, given than no |
5531 | * extended error did occur, there is no residual. | 5421 | * extended error did occur, there is no residual. |
5532 | */ | 5422 | */ |
5533 | resid = 0; | 5423 | resid = 0; |
5534 | if (cp->phys.head.lastp != sym_goalp(cp)) | 5424 | if (cp->phys.head.lastp != cp->goalp) |
5535 | resid = sym_compute_residual(np, cp); | 5425 | resid = sym_compute_residual(np, cp); |
5536 | 5426 | ||
5537 | /* | 5427 | /* |
@@ -5551,15 +5441,6 @@ if (resid) | |||
5551 | */ | 5441 | */ |
5552 | sym_set_cam_result_ok(cp, cmd, resid); | 5442 | sym_set_cam_result_ok(cp, cmd, resid); |
5553 | 5443 | ||
5554 | #ifdef SYM_OPT_SNIFF_INQUIRY | ||
5555 | /* | ||
5556 | * On standard INQUIRY response (EVPD and CmDt | ||
5557 | * not set), sniff out device capabilities. | ||
5558 | */ | ||
5559 | if (cp->cdb_buf[0] == INQUIRY && !(cp->cdb_buf[1] & 0x3)) | ||
5560 | sym_sniff_inquiry(np, cmd, resid); | ||
5561 | #endif | ||
5562 | |||
5563 | #ifdef SYM_OPT_HANDLE_DEVICE_QUEUEING | 5444 | #ifdef SYM_OPT_HANDLE_DEVICE_QUEUEING |
5564 | /* | 5445 | /* |
5565 | * If max number of started ccbs had been reduced, | 5446 | * If max number of started ccbs had been reduced, |
@@ -5587,7 +5468,7 @@ if (resid) | |||
5587 | /* | 5468 | /* |
5588 | * Requeue a couple of awaiting scsi commands. | 5469 | * Requeue a couple of awaiting scsi commands. |
5589 | */ | 5470 | */ |
5590 | if (lp && !sym_que_empty(&lp->waiting_ccbq)) | 5471 | if (!sym_que_empty(&lp->waiting_ccbq)) |
5591 | sym_start_next_ccbs(np, lp, 2); | 5472 | sym_start_next_ccbs(np, lp, 2); |
5592 | #endif | 5473 | #endif |
5593 | /* | 5474 | /* |
@@ -5830,8 +5711,7 @@ void sym_hcb_free(struct sym_hcb *np) | |||
5830 | SYM_QUEHEAD *qp; | 5711 | SYM_QUEHEAD *qp; |
5831 | struct sym_ccb *cp; | 5712 | struct sym_ccb *cp; |
5832 | struct sym_tcb *tp; | 5713 | struct sym_tcb *tp; |
5833 | struct sym_lcb *lp; | 5714 | int target; |
5834 | int target, lun; | ||
5835 | 5715 | ||
5836 | if (np->scriptz0) | 5716 | if (np->scriptz0) |
5837 | sym_mfree_dma(np->scriptz0, np->scriptz_sz, "SCRIPTZ0"); | 5717 | sym_mfree_dma(np->scriptz0, np->scriptz_sz, "SCRIPTZ0"); |
@@ -5857,16 +5737,6 @@ void sym_hcb_free(struct sym_hcb *np) | |||
5857 | 5737 | ||
5858 | for (target = 0; target < SYM_CONF_MAX_TARGET ; target++) { | 5738 | for (target = 0; target < SYM_CONF_MAX_TARGET ; target++) { |
5859 | tp = &np->target[target]; | 5739 | tp = &np->target[target]; |
5860 | for (lun = 0 ; lun < SYM_CONF_MAX_LUN ; lun++) { | ||
5861 | lp = sym_lp(tp, lun); | ||
5862 | if (!lp) | ||
5863 | continue; | ||
5864 | if (lp->itlq_tbl) | ||
5865 | sym_mfree_dma(lp->itlq_tbl, SYM_CONF_MAX_TASK*4, | ||
5866 | "ITLQ_TBL"); | ||
5867 | kfree(lp->cb_tags); | ||
5868 | sym_mfree_dma(lp, sizeof(*lp), "LCB"); | ||
5869 | } | ||
5870 | #if SYM_CONF_MAX_LUN > 1 | 5740 | #if SYM_CONF_MAX_LUN > 1 |
5871 | kfree(tp->lunmp); | 5741 | kfree(tp->lunmp); |
5872 | #endif | 5742 | #endif |
diff --git a/drivers/scsi/sym53c8xx_2/sym_hipd.h b/drivers/scsi/sym53c8xx_2/sym_hipd.h index 3a264a408216..2456090bb241 100644 --- a/drivers/scsi/sym53c8xx_2/sym_hipd.h +++ b/drivers/scsi/sym53c8xx_2/sym_hipd.h | |||
@@ -48,12 +48,6 @@ | |||
48 | * They may be defined in platform specific headers, if they | 48 | * They may be defined in platform specific headers, if they |
49 | * are useful. | 49 | * are useful. |
50 | * | 50 | * |
51 | * SYM_OPT_HANDLE_DIR_UNKNOWN | ||
52 | * When this option is set, the SCRIPTS used by the driver | ||
53 | * are able to handle SCSI transfers with direction not | ||
54 | * supplied by user. | ||
55 | * (set for Linux-2.0.X) | ||
56 | * | ||
57 | * SYM_OPT_HANDLE_DEVICE_QUEUEING | 51 | * SYM_OPT_HANDLE_DEVICE_QUEUEING |
58 | * When this option is set, the driver will use a queue per | 52 | * When this option is set, the driver will use a queue per |
59 | * device and handle QUEUE FULL status requeuing internally. | 53 | * device and handle QUEUE FULL status requeuing internally. |
@@ -64,7 +58,6 @@ | |||
64 | * (set for Linux) | 58 | * (set for Linux) |
65 | */ | 59 | */ |
66 | #if 0 | 60 | #if 0 |
67 | #define SYM_OPT_HANDLE_DIR_UNKNOWN | ||
68 | #define SYM_OPT_HANDLE_DEVICE_QUEUEING | 61 | #define SYM_OPT_HANDLE_DEVICE_QUEUEING |
69 | #define SYM_OPT_LIMIT_COMMAND_REORDERING | 62 | #define SYM_OPT_LIMIT_COMMAND_REORDERING |
70 | #endif | 63 | #endif |
@@ -416,19 +409,6 @@ struct sym_tcb { | |||
416 | struct sym_lcb **lunmp; /* Other LCBs [1..MAX_LUN] */ | 409 | struct sym_lcb **lunmp; /* Other LCBs [1..MAX_LUN] */ |
417 | #endif | 410 | #endif |
418 | 411 | ||
419 | /* | ||
420 | * Bitmap that tells about LUNs that succeeded at least | ||
421 | * 1 IO and therefore assumed to be a real device. | ||
422 | * Avoid useless allocation of the LCB structure. | ||
423 | */ | ||
424 | u32 lun_map[(SYM_CONF_MAX_LUN+31)/32]; | ||
425 | |||
426 | /* | ||
427 | * Bitmap that tells about LUNs that haven't yet an LCB | ||
428 | * allocated (not discovered or LCB allocation failed). | ||
429 | */ | ||
430 | u32 busy0_map[(SYM_CONF_MAX_LUN+31)/32]; | ||
431 | |||
432 | #ifdef SYM_HAVE_STCB | 412 | #ifdef SYM_HAVE_STCB |
433 | /* | 413 | /* |
434 | * O/S specific data structure. | 414 | * O/S specific data structure. |
@@ -454,8 +434,10 @@ struct sym_tcb { | |||
454 | * Other user settable limits and options. | 434 | * Other user settable limits and options. |
455 | * These limits are read from the NVRAM if present. | 435 | * These limits are read from the NVRAM if present. |
456 | */ | 436 | */ |
457 | u_char usrflags; | 437 | unsigned char usrflags; |
458 | u_short usrtags; | 438 | unsigned char usr_period; |
439 | unsigned char usr_width; | ||
440 | unsigned short usrtags; | ||
459 | struct scsi_target *starget; | 441 | struct scsi_target *starget; |
460 | }; | 442 | }; |
461 | 443 | ||
@@ -672,9 +654,6 @@ struct sym_ccbh { | |||
672 | */ | 654 | */ |
673 | u32 savep; /* Jump address to saved data pointer */ | 655 | u32 savep; /* Jump address to saved data pointer */ |
674 | u32 lastp; /* SCRIPTS address at end of data */ | 656 | u32 lastp; /* SCRIPTS address at end of data */ |
675 | #ifdef SYM_OPT_HANDLE_DIR_UNKNOWN | ||
676 | u32 wlastp; | ||
677 | #endif | ||
678 | 657 | ||
679 | /* | 658 | /* |
680 | * Status fields. | 659 | * Status fields. |
@@ -804,9 +783,6 @@ struct sym_ccb { | |||
804 | SYM_QUEHEAD link_ccbq; /* Link to free/busy CCB queue */ | 783 | SYM_QUEHEAD link_ccbq; /* Link to free/busy CCB queue */ |
805 | u32 startp; /* Initial data pointer */ | 784 | u32 startp; /* Initial data pointer */ |
806 | u32 goalp; /* Expected last data pointer */ | 785 | u32 goalp; /* Expected last data pointer */ |
807 | #ifdef SYM_OPT_HANDLE_DIR_UNKNOWN | ||
808 | u32 wgoalp; | ||
809 | #endif | ||
810 | int ext_sg; /* Extreme data pointer, used */ | 786 | int ext_sg; /* Extreme data pointer, used */ |
811 | int ext_ofs; /* to calculate the residual. */ | 787 | int ext_ofs; /* to calculate the residual. */ |
812 | #ifdef SYM_OPT_HANDLE_DEVICE_QUEUEING | 788 | #ifdef SYM_OPT_HANDLE_DEVICE_QUEUEING |
@@ -821,12 +797,6 @@ struct sym_ccb { | |||
821 | 797 | ||
822 | #define CCB_BA(cp,lbl) cpu_to_scr(cp->ccb_ba + offsetof(struct sym_ccb, lbl)) | 798 | #define CCB_BA(cp,lbl) cpu_to_scr(cp->ccb_ba + offsetof(struct sym_ccb, lbl)) |
823 | 799 | ||
824 | #ifdef SYM_OPT_HANDLE_DIR_UNKNOWN | ||
825 | #define sym_goalp(cp) ((cp->host_flags & HF_DATA_IN) ? cp->goalp : cp->wgoalp) | ||
826 | #else | ||
827 | #define sym_goalp(cp) (cp->goalp) | ||
828 | #endif | ||
829 | |||
830 | typedef struct device *m_pool_ident_t; | 800 | typedef struct device *m_pool_ident_t; |
831 | 801 | ||
832 | /* | 802 | /* |
@@ -1077,7 +1047,6 @@ char *sym_driver_name(void); | |||
1077 | void sym_print_xerr(struct scsi_cmnd *cmd, int x_status); | 1047 | void sym_print_xerr(struct scsi_cmnd *cmd, int x_status); |
1078 | int sym_reset_scsi_bus(struct sym_hcb *np, int enab_int); | 1048 | int sym_reset_scsi_bus(struct sym_hcb *np, int enab_int); |
1079 | struct sym_chip *sym_lookup_chip_table(u_short device_id, u_char revision); | 1049 | struct sym_chip *sym_lookup_chip_table(u_short device_id, u_char revision); |
1080 | void sym_put_start_queue(struct sym_hcb *np, struct sym_ccb *cp); | ||
1081 | #ifdef SYM_OPT_HANDLE_DEVICE_QUEUEING | 1050 | #ifdef SYM_OPT_HANDLE_DEVICE_QUEUEING |
1082 | void sym_start_next_ccbs(struct sym_hcb *np, struct sym_lcb *lp, int maxn); | 1051 | void sym_start_next_ccbs(struct sym_hcb *np, struct sym_lcb *lp, int maxn); |
1083 | #endif | 1052 | #endif |
@@ -1136,71 +1105,6 @@ bad: | |||
1136 | #endif | 1105 | #endif |
1137 | 1106 | ||
1138 | /* | 1107 | /* |
1139 | * Set up data pointers used by SCRIPTS. | ||
1140 | * Called from O/S specific code. | ||
1141 | */ | ||
1142 | static inline void sym_setup_data_pointers(struct sym_hcb *np, | ||
1143 | struct sym_ccb *cp, int dir) | ||
1144 | { | ||
1145 | u32 lastp, goalp; | ||
1146 | |||
1147 | /* | ||
1148 | * No segments means no data. | ||
1149 | */ | ||
1150 | if (!cp->segments) | ||
1151 | dir = DMA_NONE; | ||
1152 | |||
1153 | /* | ||
1154 | * Set the data pointer. | ||
1155 | */ | ||
1156 | switch(dir) { | ||
1157 | #ifdef SYM_OPT_HANDLE_DIR_UNKNOWN | ||
1158 | case DMA_BIDIRECTIONAL: | ||
1159 | #endif | ||
1160 | case DMA_TO_DEVICE: | ||
1161 | goalp = SCRIPTA_BA(np, data_out2) + 8; | ||
1162 | lastp = goalp - 8 - (cp->segments * (2*4)); | ||
1163 | #ifdef SYM_OPT_HANDLE_DIR_UNKNOWN | ||
1164 | cp->wgoalp = cpu_to_scr(goalp); | ||
1165 | if (dir != DMA_BIDIRECTIONAL) | ||
1166 | break; | ||
1167 | cp->phys.head.wlastp = cpu_to_scr(lastp); | ||
1168 | /* fall through */ | ||
1169 | #else | ||
1170 | break; | ||
1171 | #endif | ||
1172 | case DMA_FROM_DEVICE: | ||
1173 | cp->host_flags |= HF_DATA_IN; | ||
1174 | goalp = SCRIPTA_BA(np, data_in2) + 8; | ||
1175 | lastp = goalp - 8 - (cp->segments * (2*4)); | ||
1176 | break; | ||
1177 | case DMA_NONE: | ||
1178 | default: | ||
1179 | #ifdef SYM_OPT_HANDLE_DIR_UNKNOWN | ||
1180 | cp->host_flags |= HF_DATA_IN; | ||
1181 | #endif | ||
1182 | lastp = goalp = SCRIPTB_BA(np, no_data); | ||
1183 | break; | ||
1184 | } | ||
1185 | |||
1186 | /* | ||
1187 | * Set all pointers values needed by SCRIPTS. | ||
1188 | */ | ||
1189 | cp->phys.head.lastp = cpu_to_scr(lastp); | ||
1190 | cp->phys.head.savep = cpu_to_scr(lastp); | ||
1191 | cp->startp = cp->phys.head.savep; | ||
1192 | cp->goalp = cpu_to_scr(goalp); | ||
1193 | |||
1194 | #ifdef SYM_OPT_HANDLE_DIR_UNKNOWN | ||
1195 | /* | ||
1196 | * If direction is unknown, start at data_io. | ||
1197 | */ | ||
1198 | if (dir == DMA_BIDIRECTIONAL) | ||
1199 | cp->phys.head.savep = cpu_to_scr(SCRIPTB_BA(np, data_io)); | ||
1200 | #endif | ||
1201 | } | ||
1202 | |||
1203 | /* | ||
1204 | * MEMORY ALLOCATOR. | 1108 | * MEMORY ALLOCATOR. |
1205 | */ | 1109 | */ |
1206 | 1110 | ||
diff --git a/drivers/scsi/sym53c8xx_2/sym_malloc.c b/drivers/scsi/sym53c8xx_2/sym_malloc.c index a34d403ccc6c..92bf9b14a7a2 100644 --- a/drivers/scsi/sym53c8xx_2/sym_malloc.c +++ b/drivers/scsi/sym53c8xx_2/sym_malloc.c | |||
@@ -37,11 +37,7 @@ | |||
37 | * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA | 37 | * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA |
38 | */ | 38 | */ |
39 | 39 | ||
40 | #ifdef __FreeBSD__ | ||
41 | #include <dev/sym/sym_glue.h> | ||
42 | #else | ||
43 | #include "sym_glue.h" | 40 | #include "sym_glue.h" |
44 | #endif | ||
45 | 41 | ||
46 | /* | 42 | /* |
47 | * Simple power of two buddy-like generic allocator. | 43 | * Simple power of two buddy-like generic allocator. |
diff --git a/drivers/scsi/sym53c8xx_2/sym_nvram.c b/drivers/scsi/sym53c8xx_2/sym_nvram.c index 994b7566bcac..15d69298ab6e 100644 --- a/drivers/scsi/sym53c8xx_2/sym_nvram.c +++ b/drivers/scsi/sym53c8xx_2/sym_nvram.c | |||
@@ -92,29 +92,32 @@ void sym_nvram_setup_host(struct Scsi_Host *shost, struct sym_hcb *np, struct sy | |||
92 | * Get target set-up from Symbios format NVRAM. | 92 | * Get target set-up from Symbios format NVRAM. |
93 | */ | 93 | */ |
94 | static void | 94 | static void |
95 | sym_Symbios_setup_target(struct sym_hcb *np, int target, Symbios_nvram *nvram) | 95 | sym_Symbios_setup_target(struct sym_tcb *tp, int target, Symbios_nvram *nvram) |
96 | { | 96 | { |
97 | struct sym_tcb *tp = &np->target[target]; | ||
98 | Symbios_target *tn = &nvram->target[target]; | 97 | Symbios_target *tn = &nvram->target[target]; |
99 | 98 | ||
100 | tp->usrtags = | 99 | if (!(tn->flags & SYMBIOS_QUEUE_TAGS_ENABLED)) |
101 | (tn->flags & SYMBIOS_QUEUE_TAGS_ENABLED)? SYM_SETUP_MAX_TAG : 0; | 100 | tp->usrtags = 0; |
102 | |||
103 | if (!(tn->flags & SYMBIOS_DISCONNECT_ENABLE)) | 101 | if (!(tn->flags & SYMBIOS_DISCONNECT_ENABLE)) |
104 | tp->usrflags &= ~SYM_DISC_ENABLED; | 102 | tp->usrflags &= ~SYM_DISC_ENABLED; |
105 | if (!(tn->flags & SYMBIOS_SCAN_AT_BOOT_TIME)) | 103 | if (!(tn->flags & SYMBIOS_SCAN_AT_BOOT_TIME)) |
106 | tp->usrflags |= SYM_SCAN_BOOT_DISABLED; | 104 | tp->usrflags |= SYM_SCAN_BOOT_DISABLED; |
107 | if (!(tn->flags & SYMBIOS_SCAN_LUNS)) | 105 | if (!(tn->flags & SYMBIOS_SCAN_LUNS)) |
108 | tp->usrflags |= SYM_SCAN_LUNS_DISABLED; | 106 | tp->usrflags |= SYM_SCAN_LUNS_DISABLED; |
107 | tp->usr_period = (tn->sync_period + 3) / 4; | ||
108 | tp->usr_width = (tn->bus_width == 0x8) ? 0 : 1; | ||
109 | } | 109 | } |
110 | 110 | ||
111 | static const unsigned char Tekram_sync[16] = { | ||
112 | 25, 31, 37, 43, 50, 62, 75, 125, 12, 15, 18, 21, 6, 7, 9, 10 | ||
113 | }; | ||
114 | |||
111 | /* | 115 | /* |
112 | * Get target set-up from Tekram format NVRAM. | 116 | * Get target set-up from Tekram format NVRAM. |
113 | */ | 117 | */ |
114 | static void | 118 | static void |
115 | sym_Tekram_setup_target(struct sym_hcb *np, int target, Tekram_nvram *nvram) | 119 | sym_Tekram_setup_target(struct sym_tcb *tp, int target, Tekram_nvram *nvram) |
116 | { | 120 | { |
117 | struct sym_tcb *tp = &np->target[target]; | ||
118 | struct Tekram_target *tn = &nvram->target[target]; | 121 | struct Tekram_target *tn = &nvram->target[target]; |
119 | 122 | ||
120 | if (tn->flags & TEKRAM_TAGGED_COMMANDS) { | 123 | if (tn->flags & TEKRAM_TAGGED_COMMANDS) { |
@@ -124,22 +127,22 @@ sym_Tekram_setup_target(struct sym_hcb *np, int target, Tekram_nvram *nvram) | |||
124 | if (tn->flags & TEKRAM_DISCONNECT_ENABLE) | 127 | if (tn->flags & TEKRAM_DISCONNECT_ENABLE) |
125 | tp->usrflags |= SYM_DISC_ENABLED; | 128 | tp->usrflags |= SYM_DISC_ENABLED; |
126 | 129 | ||
127 | /* If any device does not support parity, we will not use this option */ | 130 | if (tn->flags & TEKRAM_SYNC_NEGO) |
128 | if (!(tn->flags & TEKRAM_PARITY_CHECK)) | 131 | tp->usr_period = Tekram_sync[tn->sync_index & 0xf]; |
129 | np->rv_scntl0 &= ~0x0a; /* SCSI parity checking disabled */ | 132 | tp->usr_width = (tn->flags & TEKRAM_WIDE_NEGO) ? 1 : 0; |
130 | } | 133 | } |
131 | 134 | ||
132 | /* | 135 | /* |
133 | * Get target setup from NVRAM. | 136 | * Get target setup from NVRAM. |
134 | */ | 137 | */ |
135 | void sym_nvram_setup_target(struct sym_hcb *np, int target, struct sym_nvram *nvp) | 138 | void sym_nvram_setup_target(struct sym_tcb *tp, int target, struct sym_nvram *nvp) |
136 | { | 139 | { |
137 | switch (nvp->type) { | 140 | switch (nvp->type) { |
138 | case SYM_SYMBIOS_NVRAM: | 141 | case SYM_SYMBIOS_NVRAM: |
139 | sym_Symbios_setup_target(np, target, &nvp->data.Symbios); | 142 | sym_Symbios_setup_target(tp, target, &nvp->data.Symbios); |
140 | break; | 143 | break; |
141 | case SYM_TEKRAM_NVRAM: | 144 | case SYM_TEKRAM_NVRAM: |
142 | sym_Tekram_setup_target(np, target, &nvp->data.Tekram); | 145 | sym_Tekram_setup_target(tp, target, &nvp->data.Tekram); |
143 | break; | 146 | break; |
144 | default: | 147 | default: |
145 | break; | 148 | break; |
diff --git a/drivers/scsi/sym53c8xx_2/sym_nvram.h b/drivers/scsi/sym53c8xx_2/sym_nvram.h index 1538bede5277..bdfbbb083b69 100644 --- a/drivers/scsi/sym53c8xx_2/sym_nvram.h +++ b/drivers/scsi/sym53c8xx_2/sym_nvram.h | |||
@@ -194,12 +194,12 @@ struct sym_nvram { | |||
194 | 194 | ||
195 | #if SYM_CONF_NVRAM_SUPPORT | 195 | #if SYM_CONF_NVRAM_SUPPORT |
196 | void sym_nvram_setup_host(struct Scsi_Host *shost, struct sym_hcb *np, struct sym_nvram *nvram); | 196 | void sym_nvram_setup_host(struct Scsi_Host *shost, struct sym_hcb *np, struct sym_nvram *nvram); |
197 | void sym_nvram_setup_target (struct sym_hcb *np, int target, struct sym_nvram *nvp); | 197 | void sym_nvram_setup_target (struct sym_tcb *tp, int target, struct sym_nvram *nvp); |
198 | int sym_read_nvram (struct sym_device *np, struct sym_nvram *nvp); | 198 | int sym_read_nvram (struct sym_device *np, struct sym_nvram *nvp); |
199 | char *sym_nvram_type(struct sym_nvram *nvp); | 199 | char *sym_nvram_type(struct sym_nvram *nvp); |
200 | #else | 200 | #else |
201 | static inline void sym_nvram_setup_host(struct Scsi_Host *shost, struct sym_hcb *np, struct sym_nvram *nvram) { } | 201 | static inline void sym_nvram_setup_host(struct Scsi_Host *shost, struct sym_hcb *np, struct sym_nvram *nvram) { } |
202 | static inline void sym_nvram_setup_target(struct sym_hcb *np, struct sym_nvram *nvram) { } | 202 | static inline void sym_nvram_setup_target(struct sym_tcb *tp, struct sym_nvram *nvram) { } |
203 | static inline int sym_read_nvram(struct sym_device *np, struct sym_nvram *nvp) | 203 | static inline int sym_read_nvram(struct sym_device *np, struct sym_nvram *nvp) |
204 | { | 204 | { |
205 | nvp->type = 0; | 205 | nvp->type = 0; |
diff --git a/drivers/scsi/sym53c8xx_comm.h b/drivers/scsi/sym53c8xx_comm.h deleted file mode 100644 index 20ae2b17df58..000000000000 --- a/drivers/scsi/sym53c8xx_comm.h +++ /dev/null | |||
@@ -1,792 +0,0 @@ | |||
1 | /****************************************************************************** | ||
2 | ** High Performance device driver for the Symbios 53C896 controller. | ||
3 | ** | ||
4 | ** Copyright (C) 1998-2001 Gerard Roudier <groudier@free.fr> | ||
5 | ** | ||
6 | ** This driver also supports all the Symbios 53C8XX controller family, | ||
7 | ** except 53C810 revisions < 16, 53C825 revisions < 16 and all | ||
8 | ** revisions of 53C815 controllers. | ||
9 | ** | ||
10 | ** This driver is based on the Linux port of the FreeBSD ncr driver. | ||
11 | ** | ||
12 | ** Copyright (C) 1994 Wolfgang Stanglmeier | ||
13 | ** | ||
14 | **----------------------------------------------------------------------------- | ||
15 | ** | ||
16 | ** This program is free software; you can redistribute it and/or modify | ||
17 | ** it under the terms of the GNU General Public License as published by | ||
18 | ** the Free Software Foundation; either version 2 of the License, or | ||
19 | ** (at your option) any later version. | ||
20 | ** | ||
21 | ** This program is distributed in the hope that it will be useful, | ||
22 | ** but WITHOUT ANY WARRANTY; without even the implied warranty of | ||
23 | ** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | ||
24 | ** GNU General Public License for more details. | ||
25 | ** | ||
26 | ** You should have received a copy of the GNU General Public License | ||
27 | ** along with this program; if not, write to the Free Software | ||
28 | ** Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. | ||
29 | ** | ||
30 | **----------------------------------------------------------------------------- | ||
31 | ** | ||
32 | ** The Linux port of the FreeBSD ncr driver has been achieved in | ||
33 | ** november 1995 by: | ||
34 | ** | ||
35 | ** Gerard Roudier <groudier@free.fr> | ||
36 | ** | ||
37 | ** Being given that this driver originates from the FreeBSD version, and | ||
38 | ** in order to keep synergy on both, any suggested enhancements and corrections | ||
39 | ** received on Linux are automatically a potential candidate for the FreeBSD | ||
40 | ** version. | ||
41 | ** | ||
42 | ** The original driver has been written for 386bsd and FreeBSD by | ||
43 | ** Wolfgang Stanglmeier <wolf@cologne.de> | ||
44 | ** Stefan Esser <se@mi.Uni-Koeln.de> | ||
45 | ** | ||
46 | **----------------------------------------------------------------------------- | ||
47 | ** | ||
48 | ** Major contributions: | ||
49 | ** -------------------- | ||
50 | ** | ||
51 | ** NVRAM detection and reading. | ||
52 | ** Copyright (C) 1997 Richard Waltham <dormouse@farsrobt.demon.co.uk> | ||
53 | ** | ||
54 | ******************************************************************************* | ||
55 | */ | ||
56 | |||
57 | /*========================================================== | ||
58 | ** | ||
59 | ** Debugging tags | ||
60 | ** | ||
61 | **========================================================== | ||
62 | */ | ||
63 | |||
64 | #define DEBUG_ALLOC (0x0001) | ||
65 | #define DEBUG_PHASE (0x0002) | ||
66 | #define DEBUG_QUEUE (0x0008) | ||
67 | #define DEBUG_RESULT (0x0010) | ||
68 | #define DEBUG_POINTER (0x0020) | ||
69 | #define DEBUG_SCRIPT (0x0040) | ||
70 | #define DEBUG_TINY (0x0080) | ||
71 | #define DEBUG_TIMING (0x0100) | ||
72 | #define DEBUG_NEGO (0x0200) | ||
73 | #define DEBUG_TAGS (0x0400) | ||
74 | #define DEBUG_SCATTER (0x0800) | ||
75 | #define DEBUG_IC (0x1000) | ||
76 | |||
77 | /* | ||
78 | ** Enable/Disable debug messages. | ||
79 | ** Can be changed at runtime too. | ||
80 | */ | ||
81 | |||
82 | #ifdef SCSI_NCR_DEBUG_INFO_SUPPORT | ||
83 | static int ncr_debug = SCSI_NCR_DEBUG_FLAGS; | ||
84 | #define DEBUG_FLAGS ncr_debug | ||
85 | #else | ||
86 | #define DEBUG_FLAGS SCSI_NCR_DEBUG_FLAGS | ||
87 | #endif | ||
88 | |||
89 | static inline struct list_head *ncr_list_pop(struct list_head *head) | ||
90 | { | ||
91 | if (!list_empty(head)) { | ||
92 | struct list_head *elem = head->next; | ||
93 | |||
94 | list_del(elem); | ||
95 | return elem; | ||
96 | } | ||
97 | |||
98 | return NULL; | ||
99 | } | ||
100 | |||
101 | #ifdef __sparc__ | ||
102 | #include <asm/irq.h> | ||
103 | #endif | ||
104 | |||
105 | /*========================================================== | ||
106 | ** | ||
107 | ** Simple power of two buddy-like allocator. | ||
108 | ** | ||
109 | ** This simple code is not intended to be fast, but to | ||
110 | ** provide power of 2 aligned memory allocations. | ||
111 | ** Since the SCRIPTS processor only supplies 8 bit | ||
112 | ** arithmetic, this allocator allows simple and fast | ||
113 | ** address calculations from the SCRIPTS code. | ||
114 | ** In addition, cache line alignment is guaranteed for | ||
115 | ** power of 2 cache line size. | ||
116 | ** Enhanced in linux-2.3.44 to provide a memory pool | ||
117 | ** per pcidev to support dynamic dma mapping. (I would | ||
118 | ** have preferred a real bus astraction, btw). | ||
119 | ** | ||
120 | **========================================================== | ||
121 | */ | ||
122 | |||
123 | #define MEMO_SHIFT 4 /* 16 bytes minimum memory chunk */ | ||
124 | #if PAGE_SIZE >= 8192 | ||
125 | #define MEMO_PAGE_ORDER 0 /* 1 PAGE maximum */ | ||
126 | #else | ||
127 | #define MEMO_PAGE_ORDER 1 /* 2 PAGES maximum */ | ||
128 | #endif | ||
129 | #define MEMO_FREE_UNUSED /* Free unused pages immediately */ | ||
130 | #define MEMO_WARN 1 | ||
131 | #define MEMO_GFP_FLAGS GFP_ATOMIC | ||
132 | #define MEMO_CLUSTER_SHIFT (PAGE_SHIFT+MEMO_PAGE_ORDER) | ||
133 | #define MEMO_CLUSTER_SIZE (1UL << MEMO_CLUSTER_SHIFT) | ||
134 | #define MEMO_CLUSTER_MASK (MEMO_CLUSTER_SIZE-1) | ||
135 | |||
136 | typedef u_long m_addr_t; /* Enough bits to bit-hack addresses */ | ||
137 | typedef struct device *m_bush_t; /* Something that addresses DMAable */ | ||
138 | |||
139 | typedef struct m_link { /* Link between free memory chunks */ | ||
140 | struct m_link *next; | ||
141 | } m_link_s; | ||
142 | |||
143 | typedef struct m_vtob { /* Virtual to Bus address translation */ | ||
144 | struct m_vtob *next; | ||
145 | m_addr_t vaddr; | ||
146 | m_addr_t baddr; | ||
147 | } m_vtob_s; | ||
148 | #define VTOB_HASH_SHIFT 5 | ||
149 | #define VTOB_HASH_SIZE (1UL << VTOB_HASH_SHIFT) | ||
150 | #define VTOB_HASH_MASK (VTOB_HASH_SIZE-1) | ||
151 | #define VTOB_HASH_CODE(m) \ | ||
152 | ((((m_addr_t) (m)) >> MEMO_CLUSTER_SHIFT) & VTOB_HASH_MASK) | ||
153 | |||
154 | typedef struct m_pool { /* Memory pool of a given kind */ | ||
155 | m_bush_t bush; | ||
156 | m_addr_t (*getp)(struct m_pool *); | ||
157 | void (*freep)(struct m_pool *, m_addr_t); | ||
158 | int nump; | ||
159 | m_vtob_s *(vtob[VTOB_HASH_SIZE]); | ||
160 | struct m_pool *next; | ||
161 | struct m_link h[PAGE_SHIFT-MEMO_SHIFT+MEMO_PAGE_ORDER+1]; | ||
162 | } m_pool_s; | ||
163 | |||
164 | static void *___m_alloc(m_pool_s *mp, int size) | ||
165 | { | ||
166 | int i = 0; | ||
167 | int s = (1 << MEMO_SHIFT); | ||
168 | int j; | ||
169 | m_addr_t a; | ||
170 | m_link_s *h = mp->h; | ||
171 | |||
172 | if (size > (PAGE_SIZE << MEMO_PAGE_ORDER)) | ||
173 | return NULL; | ||
174 | |||
175 | while (size > s) { | ||
176 | s <<= 1; | ||
177 | ++i; | ||
178 | } | ||
179 | |||
180 | j = i; | ||
181 | while (!h[j].next) { | ||
182 | if (s == (PAGE_SIZE << MEMO_PAGE_ORDER)) { | ||
183 | h[j].next = (m_link_s *)mp->getp(mp); | ||
184 | if (h[j].next) | ||
185 | h[j].next->next = NULL; | ||
186 | break; | ||
187 | } | ||
188 | ++j; | ||
189 | s <<= 1; | ||
190 | } | ||
191 | a = (m_addr_t) h[j].next; | ||
192 | if (a) { | ||
193 | h[j].next = h[j].next->next; | ||
194 | while (j > i) { | ||
195 | j -= 1; | ||
196 | s >>= 1; | ||
197 | h[j].next = (m_link_s *) (a+s); | ||
198 | h[j].next->next = NULL; | ||
199 | } | ||
200 | } | ||
201 | #ifdef DEBUG | ||
202 | printk("___m_alloc(%d) = %p\n", size, (void *) a); | ||
203 | #endif | ||
204 | return (void *) a; | ||
205 | } | ||
206 | |||
207 | static void ___m_free(m_pool_s *mp, void *ptr, int size) | ||
208 | { | ||
209 | int i = 0; | ||
210 | int s = (1 << MEMO_SHIFT); | ||
211 | m_link_s *q; | ||
212 | m_addr_t a, b; | ||
213 | m_link_s *h = mp->h; | ||
214 | |||
215 | #ifdef DEBUG | ||
216 | printk("___m_free(%p, %d)\n", ptr, size); | ||
217 | #endif | ||
218 | |||
219 | if (size > (PAGE_SIZE << MEMO_PAGE_ORDER)) | ||
220 | return; | ||
221 | |||
222 | while (size > s) { | ||
223 | s <<= 1; | ||
224 | ++i; | ||
225 | } | ||
226 | |||
227 | a = (m_addr_t) ptr; | ||
228 | |||
229 | while (1) { | ||
230 | #ifdef MEMO_FREE_UNUSED | ||
231 | if (s == (PAGE_SIZE << MEMO_PAGE_ORDER)) { | ||
232 | mp->freep(mp, a); | ||
233 | break; | ||
234 | } | ||
235 | #endif | ||
236 | b = a ^ s; | ||
237 | q = &h[i]; | ||
238 | while (q->next && q->next != (m_link_s *) b) { | ||
239 | q = q->next; | ||
240 | } | ||
241 | if (!q->next) { | ||
242 | ((m_link_s *) a)->next = h[i].next; | ||
243 | h[i].next = (m_link_s *) a; | ||
244 | break; | ||
245 | } | ||
246 | q->next = q->next->next; | ||
247 | a = a & b; | ||
248 | s <<= 1; | ||
249 | ++i; | ||
250 | } | ||
251 | } | ||
252 | |||
253 | static DEFINE_SPINLOCK(ncr53c8xx_lock); | ||
254 | |||
255 | static void *__m_calloc2(m_pool_s *mp, int size, char *name, int uflags) | ||
256 | { | ||
257 | void *p; | ||
258 | |||
259 | p = ___m_alloc(mp, size); | ||
260 | |||
261 | if (DEBUG_FLAGS & DEBUG_ALLOC) | ||
262 | printk ("new %-10s[%4d] @%p.\n", name, size, p); | ||
263 | |||
264 | if (p) | ||
265 | memset(p, 0, size); | ||
266 | else if (uflags & MEMO_WARN) | ||
267 | printk (NAME53C8XX ": failed to allocate %s[%d]\n", name, size); | ||
268 | |||
269 | return p; | ||
270 | } | ||
271 | |||
272 | #define __m_calloc(mp, s, n) __m_calloc2(mp, s, n, MEMO_WARN) | ||
273 | |||
274 | static void __m_free(m_pool_s *mp, void *ptr, int size, char *name) | ||
275 | { | ||
276 | if (DEBUG_FLAGS & DEBUG_ALLOC) | ||
277 | printk ("freeing %-10s[%4d] @%p.\n", name, size, ptr); | ||
278 | |||
279 | ___m_free(mp, ptr, size); | ||
280 | |||
281 | } | ||
282 | |||
283 | /* | ||
284 | * With pci bus iommu support, we use a default pool of unmapped memory | ||
285 | * for memory we donnot need to DMA from/to and one pool per pcidev for | ||
286 | * memory accessed by the PCI chip. `mp0' is the default not DMAable pool. | ||
287 | */ | ||
288 | |||
289 | static m_addr_t ___mp0_getp(m_pool_s *mp) | ||
290 | { | ||
291 | m_addr_t m = __get_free_pages(MEMO_GFP_FLAGS, MEMO_PAGE_ORDER); | ||
292 | if (m) | ||
293 | ++mp->nump; | ||
294 | return m; | ||
295 | } | ||
296 | |||
297 | static void ___mp0_freep(m_pool_s *mp, m_addr_t m) | ||
298 | { | ||
299 | free_pages(m, MEMO_PAGE_ORDER); | ||
300 | --mp->nump; | ||
301 | } | ||
302 | |||
303 | static m_pool_s mp0 = {NULL, ___mp0_getp, ___mp0_freep}; | ||
304 | |||
305 | /* | ||
306 | * DMAable pools. | ||
307 | */ | ||
308 | |||
309 | /* | ||
310 | * With pci bus iommu support, we maintain one pool per pcidev and a | ||
311 | * hashed reverse table for virtual to bus physical address translations. | ||
312 | */ | ||
313 | static m_addr_t ___dma_getp(m_pool_s *mp) | ||
314 | { | ||
315 | m_addr_t vp; | ||
316 | m_vtob_s *vbp; | ||
317 | |||
318 | vbp = __m_calloc(&mp0, sizeof(*vbp), "VTOB"); | ||
319 | if (vbp) { | ||
320 | dma_addr_t daddr; | ||
321 | vp = (m_addr_t) dma_alloc_coherent(mp->bush, | ||
322 | PAGE_SIZE<<MEMO_PAGE_ORDER, | ||
323 | &daddr, GFP_ATOMIC); | ||
324 | if (vp) { | ||
325 | int hc = VTOB_HASH_CODE(vp); | ||
326 | vbp->vaddr = vp; | ||
327 | vbp->baddr = daddr; | ||
328 | vbp->next = mp->vtob[hc]; | ||
329 | mp->vtob[hc] = vbp; | ||
330 | ++mp->nump; | ||
331 | return vp; | ||
332 | } | ||
333 | } | ||
334 | if (vbp) | ||
335 | __m_free(&mp0, vbp, sizeof(*vbp), "VTOB"); | ||
336 | return 0; | ||
337 | } | ||
338 | |||
339 | static void ___dma_freep(m_pool_s *mp, m_addr_t m) | ||
340 | { | ||
341 | m_vtob_s **vbpp, *vbp; | ||
342 | int hc = VTOB_HASH_CODE(m); | ||
343 | |||
344 | vbpp = &mp->vtob[hc]; | ||
345 | while (*vbpp && (*vbpp)->vaddr != m) | ||
346 | vbpp = &(*vbpp)->next; | ||
347 | if (*vbpp) { | ||
348 | vbp = *vbpp; | ||
349 | *vbpp = (*vbpp)->next; | ||
350 | dma_free_coherent(mp->bush, PAGE_SIZE<<MEMO_PAGE_ORDER, | ||
351 | (void *)vbp->vaddr, (dma_addr_t)vbp->baddr); | ||
352 | __m_free(&mp0, vbp, sizeof(*vbp), "VTOB"); | ||
353 | --mp->nump; | ||
354 | } | ||
355 | } | ||
356 | |||
357 | static inline m_pool_s *___get_dma_pool(m_bush_t bush) | ||
358 | { | ||
359 | m_pool_s *mp; | ||
360 | for (mp = mp0.next; mp && mp->bush != bush; mp = mp->next); | ||
361 | return mp; | ||
362 | } | ||
363 | |||
364 | static m_pool_s *___cre_dma_pool(m_bush_t bush) | ||
365 | { | ||
366 | m_pool_s *mp; | ||
367 | mp = __m_calloc(&mp0, sizeof(*mp), "MPOOL"); | ||
368 | if (mp) { | ||
369 | memset(mp, 0, sizeof(*mp)); | ||
370 | mp->bush = bush; | ||
371 | mp->getp = ___dma_getp; | ||
372 | mp->freep = ___dma_freep; | ||
373 | mp->next = mp0.next; | ||
374 | mp0.next = mp; | ||
375 | } | ||
376 | return mp; | ||
377 | } | ||
378 | |||
379 | static void ___del_dma_pool(m_pool_s *p) | ||
380 | { | ||
381 | struct m_pool **pp = &mp0.next; | ||
382 | |||
383 | while (*pp && *pp != p) | ||
384 | pp = &(*pp)->next; | ||
385 | if (*pp) { | ||
386 | *pp = (*pp)->next; | ||
387 | __m_free(&mp0, p, sizeof(*p), "MPOOL"); | ||
388 | } | ||
389 | } | ||
390 | |||
391 | static void *__m_calloc_dma(m_bush_t bush, int size, char *name) | ||
392 | { | ||
393 | u_long flags; | ||
394 | struct m_pool *mp; | ||
395 | void *m = NULL; | ||
396 | |||
397 | spin_lock_irqsave(&ncr53c8xx_lock, flags); | ||
398 | mp = ___get_dma_pool(bush); | ||
399 | if (!mp) | ||
400 | mp = ___cre_dma_pool(bush); | ||
401 | if (mp) | ||
402 | m = __m_calloc(mp, size, name); | ||
403 | if (mp && !mp->nump) | ||
404 | ___del_dma_pool(mp); | ||
405 | spin_unlock_irqrestore(&ncr53c8xx_lock, flags); | ||
406 | |||
407 | return m; | ||
408 | } | ||
409 | |||
410 | static void __m_free_dma(m_bush_t bush, void *m, int size, char *name) | ||
411 | { | ||
412 | u_long flags; | ||
413 | struct m_pool *mp; | ||
414 | |||
415 | spin_lock_irqsave(&ncr53c8xx_lock, flags); | ||
416 | mp = ___get_dma_pool(bush); | ||
417 | if (mp) | ||
418 | __m_free(mp, m, size, name); | ||
419 | if (mp && !mp->nump) | ||
420 | ___del_dma_pool(mp); | ||
421 | spin_unlock_irqrestore(&ncr53c8xx_lock, flags); | ||
422 | } | ||
423 | |||
424 | static m_addr_t __vtobus(m_bush_t bush, void *m) | ||
425 | { | ||
426 | u_long flags; | ||
427 | m_pool_s *mp; | ||
428 | int hc = VTOB_HASH_CODE(m); | ||
429 | m_vtob_s *vp = NULL; | ||
430 | m_addr_t a = ((m_addr_t) m) & ~MEMO_CLUSTER_MASK; | ||
431 | |||
432 | spin_lock_irqsave(&ncr53c8xx_lock, flags); | ||
433 | mp = ___get_dma_pool(bush); | ||
434 | if (mp) { | ||
435 | vp = mp->vtob[hc]; | ||
436 | while (vp && (m_addr_t) vp->vaddr != a) | ||
437 | vp = vp->next; | ||
438 | } | ||
439 | spin_unlock_irqrestore(&ncr53c8xx_lock, flags); | ||
440 | return vp ? vp->baddr + (((m_addr_t) m) - a) : 0; | ||
441 | } | ||
442 | |||
443 | #define _m_calloc_dma(np, s, n) __m_calloc_dma(np->dev, s, n) | ||
444 | #define _m_free_dma(np, p, s, n) __m_free_dma(np->dev, p, s, n) | ||
445 | #define m_calloc_dma(s, n) _m_calloc_dma(np, s, n) | ||
446 | #define m_free_dma(p, s, n) _m_free_dma(np, p, s, n) | ||
447 | #define _vtobus(np, p) __vtobus(np->dev, p) | ||
448 | #define vtobus(p) _vtobus(np, p) | ||
449 | |||
450 | /* | ||
451 | * Deal with DMA mapping/unmapping. | ||
452 | */ | ||
453 | |||
454 | /* To keep track of the dma mapping (sg/single) that has been set */ | ||
455 | #define __data_mapped SCp.phase | ||
456 | #define __data_mapping SCp.have_data_in | ||
457 | |||
458 | static void __unmap_scsi_data(struct device *dev, struct scsi_cmnd *cmd) | ||
459 | { | ||
460 | switch(cmd->__data_mapped) { | ||
461 | case 2: | ||
462 | dma_unmap_sg(dev, cmd->buffer, cmd->use_sg, | ||
463 | cmd->sc_data_direction); | ||
464 | break; | ||
465 | case 1: | ||
466 | dma_unmap_single(dev, cmd->__data_mapping, | ||
467 | cmd->request_bufflen, | ||
468 | cmd->sc_data_direction); | ||
469 | break; | ||
470 | } | ||
471 | cmd->__data_mapped = 0; | ||
472 | } | ||
473 | |||
474 | static u_long __map_scsi_single_data(struct device *dev, struct scsi_cmnd *cmd) | ||
475 | { | ||
476 | dma_addr_t mapping; | ||
477 | |||
478 | if (cmd->request_bufflen == 0) | ||
479 | return 0; | ||
480 | |||
481 | mapping = dma_map_single(dev, cmd->request_buffer, | ||
482 | cmd->request_bufflen, | ||
483 | cmd->sc_data_direction); | ||
484 | cmd->__data_mapped = 1; | ||
485 | cmd->__data_mapping = mapping; | ||
486 | |||
487 | return mapping; | ||
488 | } | ||
489 | |||
490 | static int __map_scsi_sg_data(struct device *dev, struct scsi_cmnd *cmd) | ||
491 | { | ||
492 | int use_sg; | ||
493 | |||
494 | if (cmd->use_sg == 0) | ||
495 | return 0; | ||
496 | |||
497 | use_sg = dma_map_sg(dev, cmd->buffer, cmd->use_sg, | ||
498 | cmd->sc_data_direction); | ||
499 | cmd->__data_mapped = 2; | ||
500 | cmd->__data_mapping = use_sg; | ||
501 | |||
502 | return use_sg; | ||
503 | } | ||
504 | |||
505 | #define unmap_scsi_data(np, cmd) __unmap_scsi_data(np->dev, cmd) | ||
506 | #define map_scsi_single_data(np, cmd) __map_scsi_single_data(np->dev, cmd) | ||
507 | #define map_scsi_sg_data(np, cmd) __map_scsi_sg_data(np->dev, cmd) | ||
508 | |||
509 | /*========================================================== | ||
510 | ** | ||
511 | ** Driver setup. | ||
512 | ** | ||
513 | ** This structure is initialized from linux config | ||
514 | ** options. It can be overridden at boot-up by the boot | ||
515 | ** command line. | ||
516 | ** | ||
517 | **========================================================== | ||
518 | */ | ||
519 | static struct ncr_driver_setup | ||
520 | driver_setup = SCSI_NCR_DRIVER_SETUP; | ||
521 | |||
522 | #ifdef SCSI_NCR_BOOT_COMMAND_LINE_SUPPORT | ||
523 | static struct ncr_driver_setup | ||
524 | driver_safe_setup __initdata = SCSI_NCR_DRIVER_SAFE_SETUP; | ||
525 | #endif | ||
526 | |||
527 | #define initverbose (driver_setup.verbose) | ||
528 | #define bootverbose (np->verbose) | ||
529 | |||
530 | |||
531 | /*=================================================================== | ||
532 | ** | ||
533 | ** Driver setup from the boot command line | ||
534 | ** | ||
535 | **=================================================================== | ||
536 | */ | ||
537 | |||
538 | #ifdef MODULE | ||
539 | #define ARG_SEP ' ' | ||
540 | #else | ||
541 | #define ARG_SEP ',' | ||
542 | #endif | ||
543 | |||
544 | #define OPT_TAGS 1 | ||
545 | #define OPT_MASTER_PARITY 2 | ||
546 | #define OPT_SCSI_PARITY 3 | ||
547 | #define OPT_DISCONNECTION 4 | ||
548 | #define OPT_SPECIAL_FEATURES 5 | ||
549 | #define OPT_UNUSED_1 6 | ||
550 | #define OPT_FORCE_SYNC_NEGO 7 | ||
551 | #define OPT_REVERSE_PROBE 8 | ||
552 | #define OPT_DEFAULT_SYNC 9 | ||
553 | #define OPT_VERBOSE 10 | ||
554 | #define OPT_DEBUG 11 | ||
555 | #define OPT_BURST_MAX 12 | ||
556 | #define OPT_LED_PIN 13 | ||
557 | #define OPT_MAX_WIDE 14 | ||
558 | #define OPT_SETTLE_DELAY 15 | ||
559 | #define OPT_DIFF_SUPPORT 16 | ||
560 | #define OPT_IRQM 17 | ||
561 | #define OPT_PCI_FIX_UP 18 | ||
562 | #define OPT_BUS_CHECK 19 | ||
563 | #define OPT_OPTIMIZE 20 | ||
564 | #define OPT_RECOVERY 21 | ||
565 | #define OPT_SAFE_SETUP 22 | ||
566 | #define OPT_USE_NVRAM 23 | ||
567 | #define OPT_EXCLUDE 24 | ||
568 | #define OPT_HOST_ID 25 | ||
569 | |||
570 | #ifdef SCSI_NCR_IARB_SUPPORT | ||
571 | #define OPT_IARB 26 | ||
572 | #endif | ||
573 | |||
574 | static char setup_token[] __initdata = | ||
575 | "tags:" "mpar:" | ||
576 | "spar:" "disc:" | ||
577 | "specf:" "ultra:" | ||
578 | "fsn:" "revprob:" | ||
579 | "sync:" "verb:" | ||
580 | "debug:" "burst:" | ||
581 | "led:" "wide:" | ||
582 | "settle:" "diff:" | ||
583 | "irqm:" "pcifix:" | ||
584 | "buschk:" "optim:" | ||
585 | "recovery:" | ||
586 | "safe:" "nvram:" | ||
587 | "excl:" "hostid:" | ||
588 | #ifdef SCSI_NCR_IARB_SUPPORT | ||
589 | "iarb:" | ||
590 | #endif | ||
591 | ; /* DONNOT REMOVE THIS ';' */ | ||
592 | |||
593 | #ifdef MODULE | ||
594 | #define ARG_SEP ' ' | ||
595 | #else | ||
596 | #define ARG_SEP ',' | ||
597 | #endif | ||
598 | |||
599 | static int __init get_setup_token(char *p) | ||
600 | { | ||
601 | char *cur = setup_token; | ||
602 | char *pc; | ||
603 | int i = 0; | ||
604 | |||
605 | while (cur != NULL && (pc = strchr(cur, ':')) != NULL) { | ||
606 | ++pc; | ||
607 | ++i; | ||
608 | if (!strncmp(p, cur, pc - cur)) | ||
609 | return i; | ||
610 | cur = pc; | ||
611 | } | ||
612 | return 0; | ||
613 | } | ||
614 | |||
615 | |||
616 | static int __init sym53c8xx__setup(char *str) | ||
617 | { | ||
618 | #ifdef SCSI_NCR_BOOT_COMMAND_LINE_SUPPORT | ||
619 | char *cur = str; | ||
620 | char *pc, *pv; | ||
621 | int i, val, c; | ||
622 | int xi = 0; | ||
623 | |||
624 | while (cur != NULL && (pc = strchr(cur, ':')) != NULL) { | ||
625 | char *pe; | ||
626 | |||
627 | val = 0; | ||
628 | pv = pc; | ||
629 | c = *++pv; | ||
630 | |||
631 | if (c == 'n') | ||
632 | val = 0; | ||
633 | else if (c == 'y') | ||
634 | val = 1; | ||
635 | else | ||
636 | val = (int) simple_strtoul(pv, &pe, 0); | ||
637 | |||
638 | switch (get_setup_token(cur)) { | ||
639 | case OPT_TAGS: | ||
640 | driver_setup.default_tags = val; | ||
641 | if (pe && *pe == '/') { | ||
642 | i = 0; | ||
643 | while (*pe && *pe != ARG_SEP && | ||
644 | i < sizeof(driver_setup.tag_ctrl)-1) { | ||
645 | driver_setup.tag_ctrl[i++] = *pe++; | ||
646 | } | ||
647 | driver_setup.tag_ctrl[i] = '\0'; | ||
648 | } | ||
649 | break; | ||
650 | case OPT_MASTER_PARITY: | ||
651 | driver_setup.master_parity = val; | ||
652 | break; | ||
653 | case OPT_SCSI_PARITY: | ||
654 | driver_setup.scsi_parity = val; | ||
655 | break; | ||
656 | case OPT_DISCONNECTION: | ||
657 | driver_setup.disconnection = val; | ||
658 | break; | ||
659 | case OPT_SPECIAL_FEATURES: | ||
660 | driver_setup.special_features = val; | ||
661 | break; | ||
662 | case OPT_FORCE_SYNC_NEGO: | ||
663 | driver_setup.force_sync_nego = val; | ||
664 | break; | ||
665 | case OPT_REVERSE_PROBE: | ||
666 | driver_setup.reverse_probe = val; | ||
667 | break; | ||
668 | case OPT_DEFAULT_SYNC: | ||
669 | driver_setup.default_sync = val; | ||
670 | break; | ||
671 | case OPT_VERBOSE: | ||
672 | driver_setup.verbose = val; | ||
673 | break; | ||
674 | case OPT_DEBUG: | ||
675 | driver_setup.debug = val; | ||
676 | break; | ||
677 | case OPT_BURST_MAX: | ||
678 | driver_setup.burst_max = val; | ||
679 | break; | ||
680 | case OPT_LED_PIN: | ||
681 | driver_setup.led_pin = val; | ||
682 | break; | ||
683 | case OPT_MAX_WIDE: | ||
684 | driver_setup.max_wide = val? 1:0; | ||
685 | break; | ||
686 | case OPT_SETTLE_DELAY: | ||
687 | driver_setup.settle_delay = val; | ||
688 | break; | ||
689 | case OPT_DIFF_SUPPORT: | ||
690 | driver_setup.diff_support = val; | ||
691 | break; | ||
692 | case OPT_IRQM: | ||
693 | driver_setup.irqm = val; | ||
694 | break; | ||
695 | case OPT_PCI_FIX_UP: | ||
696 | driver_setup.pci_fix_up = val; | ||
697 | break; | ||
698 | case OPT_BUS_CHECK: | ||
699 | driver_setup.bus_check = val; | ||
700 | break; | ||
701 | case OPT_OPTIMIZE: | ||
702 | driver_setup.optimize = val; | ||
703 | break; | ||
704 | case OPT_RECOVERY: | ||
705 | driver_setup.recovery = val; | ||
706 | break; | ||
707 | case OPT_USE_NVRAM: | ||
708 | driver_setup.use_nvram = val; | ||
709 | break; | ||
710 | case OPT_SAFE_SETUP: | ||
711 | memcpy(&driver_setup, &driver_safe_setup, | ||
712 | sizeof(driver_setup)); | ||
713 | break; | ||
714 | case OPT_EXCLUDE: | ||
715 | if (xi < SCSI_NCR_MAX_EXCLUDES) | ||
716 | driver_setup.excludes[xi++] = val; | ||
717 | break; | ||
718 | case OPT_HOST_ID: | ||
719 | driver_setup.host_id = val; | ||
720 | break; | ||
721 | #ifdef SCSI_NCR_IARB_SUPPORT | ||
722 | case OPT_IARB: | ||
723 | driver_setup.iarb = val; | ||
724 | break; | ||
725 | #endif | ||
726 | default: | ||
727 | printk("sym53c8xx_setup: unexpected boot option '%.*s' ignored\n", (int)(pc-cur+1), cur); | ||
728 | break; | ||
729 | } | ||
730 | |||
731 | if ((cur = strchr(cur, ARG_SEP)) != NULL) | ||
732 | ++cur; | ||
733 | } | ||
734 | #endif /* SCSI_NCR_BOOT_COMMAND_LINE_SUPPORT */ | ||
735 | return 1; | ||
736 | } | ||
737 | |||
738 | /*=================================================================== | ||
739 | ** | ||
740 | ** Get device queue depth from boot command line. | ||
741 | ** | ||
742 | **=================================================================== | ||
743 | */ | ||
744 | #define DEF_DEPTH (driver_setup.default_tags) | ||
745 | #define ALL_TARGETS -2 | ||
746 | #define NO_TARGET -1 | ||
747 | #define ALL_LUNS -2 | ||
748 | #define NO_LUN -1 | ||
749 | |||
750 | static int device_queue_depth(int unit, int target, int lun) | ||
751 | { | ||
752 | int c, h, t, u, v; | ||
753 | char *p = driver_setup.tag_ctrl; | ||
754 | char *ep; | ||
755 | |||
756 | h = -1; | ||
757 | t = NO_TARGET; | ||
758 | u = NO_LUN; | ||
759 | while ((c = *p++) != 0) { | ||
760 | v = simple_strtoul(p, &ep, 0); | ||
761 | switch(c) { | ||
762 | case '/': | ||
763 | ++h; | ||
764 | t = ALL_TARGETS; | ||
765 | u = ALL_LUNS; | ||
766 | break; | ||
767 | case 't': | ||
768 | if (t != target) | ||
769 | t = (target == v) ? v : NO_TARGET; | ||
770 | u = ALL_LUNS; | ||
771 | break; | ||
772 | case 'u': | ||
773 | if (u != lun) | ||
774 | u = (lun == v) ? v : NO_LUN; | ||
775 | break; | ||
776 | case 'q': | ||
777 | if (h == unit && | ||
778 | (t == ALL_TARGETS || t == target) && | ||
779 | (u == ALL_LUNS || u == lun)) | ||
780 | return v; | ||
781 | break; | ||
782 | case '-': | ||
783 | t = ALL_TARGETS; | ||
784 | u = ALL_LUNS; | ||
785 | break; | ||
786 | default: | ||
787 | break; | ||
788 | } | ||
789 | p = ep; | ||
790 | } | ||
791 | return DEF_DEPTH; | ||
792 | } | ||
diff --git a/drivers/scsi/sym53c8xx_defs.h b/drivers/scsi/sym53c8xx_defs.h deleted file mode 100644 index 139cd0e12e62..000000000000 --- a/drivers/scsi/sym53c8xx_defs.h +++ /dev/null | |||
@@ -1,1320 +0,0 @@ | |||
1 | /****************************************************************************** | ||
2 | ** High Performance device driver for the Symbios 53C896 controller. | ||
3 | ** | ||
4 | ** Copyright (C) 1998-2001 Gerard Roudier <groudier@free.fr> | ||
5 | ** | ||
6 | ** This driver also supports all the Symbios 53C8XX controller family, | ||
7 | ** except 53C810 revisions < 16, 53C825 revisions < 16 and all | ||
8 | ** revisions of 53C815 controllers. | ||
9 | ** | ||
10 | ** This driver is based on the Linux port of the FreeBSD ncr driver. | ||
11 | ** | ||
12 | ** Copyright (C) 1994 Wolfgang Stanglmeier | ||
13 | ** | ||
14 | **----------------------------------------------------------------------------- | ||
15 | ** | ||
16 | ** This program is free software; you can redistribute it and/or modify | ||
17 | ** it under the terms of the GNU General Public License as published by | ||
18 | ** the Free Software Foundation; either version 2 of the License, or | ||
19 | ** (at your option) any later version. | ||
20 | ** | ||
21 | ** This program is distributed in the hope that it will be useful, | ||
22 | ** but WITHOUT ANY WARRANTY; without even the implied warranty of | ||
23 | ** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | ||
24 | ** GNU General Public License for more details. | ||
25 | ** | ||
26 | ** You should have received a copy of the GNU General Public License | ||
27 | ** along with this program; if not, write to the Free Software | ||
28 | ** Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. | ||
29 | ** | ||
30 | **----------------------------------------------------------------------------- | ||
31 | ** | ||
32 | ** The Linux port of the FreeBSD ncr driver has been achieved in | ||
33 | ** november 1995 by: | ||
34 | ** | ||
35 | ** Gerard Roudier <groudier@free.fr> | ||
36 | ** | ||
37 | ** Being given that this driver originates from the FreeBSD version, and | ||
38 | ** in order to keep synergy on both, any suggested enhancements and corrections | ||
39 | ** received on Linux are automatically a potential candidate for the FreeBSD | ||
40 | ** version. | ||
41 | ** | ||
42 | ** The original driver has been written for 386bsd and FreeBSD by | ||
43 | ** Wolfgang Stanglmeier <wolf@cologne.de> | ||
44 | ** Stefan Esser <se@mi.Uni-Koeln.de> | ||
45 | ** | ||
46 | **----------------------------------------------------------------------------- | ||
47 | ** | ||
48 | ** Major contributions: | ||
49 | ** -------------------- | ||
50 | ** | ||
51 | ** NVRAM detection and reading. | ||
52 | ** Copyright (C) 1997 Richard Waltham <dormouse@farsrobt.demon.co.uk> | ||
53 | ** | ||
54 | ** Added support for MIPS big endian systems. | ||
55 | ** Carsten Langgaard, carstenl@mips.com | ||
56 | ** Copyright (C) 2000 MIPS Technologies, Inc. All rights reserved. | ||
57 | ** | ||
58 | ** Added support for HP PARISC big endian systems. | ||
59 | ** Copyright (C) 2000 MIPS Technologies, Inc. All rights reserved. | ||
60 | ** | ||
61 | ******************************************************************************* | ||
62 | */ | ||
63 | |||
64 | #ifndef SYM53C8XX_DEFS_H | ||
65 | #define SYM53C8XX_DEFS_H | ||
66 | |||
67 | #include <linux/config.h> | ||
68 | |||
69 | /* | ||
70 | ** If you want a driver as small as possible, donnot define the | ||
71 | ** following options. | ||
72 | */ | ||
73 | #define SCSI_NCR_BOOT_COMMAND_LINE_SUPPORT | ||
74 | #define SCSI_NCR_DEBUG_INFO_SUPPORT | ||
75 | |||
76 | /* | ||
77 | ** To disable integrity checking, do not define the | ||
78 | ** following option. | ||
79 | */ | ||
80 | #ifdef CONFIG_SCSI_NCR53C8XX_INTEGRITY_CHECK | ||
81 | # define SCSI_NCR_ENABLE_INTEGRITY_CHECK | ||
82 | #endif | ||
83 | |||
84 | /* --------------------------------------------------------------------- | ||
85 | ** Take into account kernel configured parameters. | ||
86 | ** Most of these options can be overridden at startup by a command line. | ||
87 | ** --------------------------------------------------------------------- | ||
88 | */ | ||
89 | |||
90 | /* | ||
91 | * For Ultra2 and Ultra3 SCSI support option, use special features. | ||
92 | * | ||
93 | * Value (default) means: | ||
94 | * bit 0 : all features enabled, except: | ||
95 | * bit 1 : PCI Write And Invalidate. | ||
96 | * bit 2 : Data Phase Mismatch handling from SCRIPTS. | ||
97 | * | ||
98 | * Use boot options ncr53c8xx=specf:1 if you want all chip features to be | ||
99 | * enabled by the driver. | ||
100 | */ | ||
101 | #define SCSI_NCR_SETUP_SPECIAL_FEATURES (3) | ||
102 | |||
103 | #define SCSI_NCR_MAX_SYNC (80) | ||
104 | |||
105 | /* | ||
106 | * Allow tags from 2 to 256, default 8 | ||
107 | */ | ||
108 | #ifdef CONFIG_SCSI_NCR53C8XX_MAX_TAGS | ||
109 | #if CONFIG_SCSI_NCR53C8XX_MAX_TAGS < 2 | ||
110 | #define SCSI_NCR_MAX_TAGS (2) | ||
111 | #elif CONFIG_SCSI_NCR53C8XX_MAX_TAGS > 256 | ||
112 | #define SCSI_NCR_MAX_TAGS (256) | ||
113 | #else | ||
114 | #define SCSI_NCR_MAX_TAGS CONFIG_SCSI_NCR53C8XX_MAX_TAGS | ||
115 | #endif | ||
116 | #else | ||
117 | #define SCSI_NCR_MAX_TAGS (8) | ||
118 | #endif | ||
119 | |||
120 | /* | ||
121 | * Allow tagged command queuing support if configured with default number | ||
122 | * of tags set to max (see above). | ||
123 | */ | ||
124 | #ifdef CONFIG_SCSI_NCR53C8XX_DEFAULT_TAGS | ||
125 | #define SCSI_NCR_SETUP_DEFAULT_TAGS CONFIG_SCSI_NCR53C8XX_DEFAULT_TAGS | ||
126 | #elif defined CONFIG_SCSI_NCR53C8XX_TAGGED_QUEUE | ||
127 | #define SCSI_NCR_SETUP_DEFAULT_TAGS SCSI_NCR_MAX_TAGS | ||
128 | #else | ||
129 | #define SCSI_NCR_SETUP_DEFAULT_TAGS (0) | ||
130 | #endif | ||
131 | |||
132 | /* | ||
133 | * Immediate arbitration | ||
134 | */ | ||
135 | #if defined(CONFIG_SCSI_NCR53C8XX_IARB) | ||
136 | #define SCSI_NCR_IARB_SUPPORT | ||
137 | #endif | ||
138 | |||
139 | /* | ||
140 | * Sync transfer frequency at startup. | ||
141 | * Allow from 5Mhz to 80Mhz default 20 Mhz. | ||
142 | */ | ||
143 | #ifndef CONFIG_SCSI_NCR53C8XX_SYNC | ||
144 | #define CONFIG_SCSI_NCR53C8XX_SYNC (20) | ||
145 | #elif CONFIG_SCSI_NCR53C8XX_SYNC > SCSI_NCR_MAX_SYNC | ||
146 | #undef CONFIG_SCSI_NCR53C8XX_SYNC | ||
147 | #define CONFIG_SCSI_NCR53C8XX_SYNC SCSI_NCR_MAX_SYNC | ||
148 | #endif | ||
149 | |||
150 | #if CONFIG_SCSI_NCR53C8XX_SYNC == 0 | ||
151 | #define SCSI_NCR_SETUP_DEFAULT_SYNC (255) | ||
152 | #elif CONFIG_SCSI_NCR53C8XX_SYNC <= 5 | ||
153 | #define SCSI_NCR_SETUP_DEFAULT_SYNC (50) | ||
154 | #elif CONFIG_SCSI_NCR53C8XX_SYNC <= 20 | ||
155 | #define SCSI_NCR_SETUP_DEFAULT_SYNC (250/(CONFIG_SCSI_NCR53C8XX_SYNC)) | ||
156 | #elif CONFIG_SCSI_NCR53C8XX_SYNC <= 33 | ||
157 | #define SCSI_NCR_SETUP_DEFAULT_SYNC (11) | ||
158 | #elif CONFIG_SCSI_NCR53C8XX_SYNC <= 40 | ||
159 | #define SCSI_NCR_SETUP_DEFAULT_SYNC (10) | ||
160 | #else | ||
161 | #define SCSI_NCR_SETUP_DEFAULT_SYNC (9) | ||
162 | #endif | ||
163 | |||
164 | /* | ||
165 | * Disallow disconnections at boot-up | ||
166 | */ | ||
167 | #ifdef CONFIG_SCSI_NCR53C8XX_NO_DISCONNECT | ||
168 | #define SCSI_NCR_SETUP_DISCONNECTION (0) | ||
169 | #else | ||
170 | #define SCSI_NCR_SETUP_DISCONNECTION (1) | ||
171 | #endif | ||
172 | |||
173 | /* | ||
174 | * Force synchronous negotiation for all targets | ||
175 | */ | ||
176 | #ifdef CONFIG_SCSI_NCR53C8XX_FORCE_SYNC_NEGO | ||
177 | #define SCSI_NCR_SETUP_FORCE_SYNC_NEGO (1) | ||
178 | #else | ||
179 | #define SCSI_NCR_SETUP_FORCE_SYNC_NEGO (0) | ||
180 | #endif | ||
181 | |||
182 | /* | ||
183 | * Disable master parity checking (flawed hardwares need that) | ||
184 | */ | ||
185 | #ifdef CONFIG_SCSI_NCR53C8XX_DISABLE_MPARITY_CHECK | ||
186 | #define SCSI_NCR_SETUP_MASTER_PARITY (0) | ||
187 | #else | ||
188 | #define SCSI_NCR_SETUP_MASTER_PARITY (1) | ||
189 | #endif | ||
190 | |||
191 | /* | ||
192 | * Disable scsi parity checking (flawed devices may need that) | ||
193 | */ | ||
194 | #ifdef CONFIG_SCSI_NCR53C8XX_DISABLE_PARITY_CHECK | ||
195 | #define SCSI_NCR_SETUP_SCSI_PARITY (0) | ||
196 | #else | ||
197 | #define SCSI_NCR_SETUP_SCSI_PARITY (1) | ||
198 | #endif | ||
199 | |||
200 | /* | ||
201 | * Settle time after reset at boot-up | ||
202 | */ | ||
203 | #define SCSI_NCR_SETUP_SETTLE_TIME (2) | ||
204 | |||
205 | /* | ||
206 | ** Bridge quirks work-around option defaulted to 1. | ||
207 | */ | ||
208 | #ifndef SCSI_NCR_PCIQ_WORK_AROUND_OPT | ||
209 | #define SCSI_NCR_PCIQ_WORK_AROUND_OPT 1 | ||
210 | #endif | ||
211 | |||
212 | /* | ||
213 | ** Work-around common bridge misbehaviour. | ||
214 | ** | ||
215 | ** - Do not flush posted writes in the opposite | ||
216 | ** direction on read. | ||
217 | ** - May reorder DMA writes to memory. | ||
218 | ** | ||
219 | ** This option should not affect performances | ||
220 | ** significantly, so it is the default. | ||
221 | */ | ||
222 | #if SCSI_NCR_PCIQ_WORK_AROUND_OPT == 1 | ||
223 | #define SCSI_NCR_PCIQ_MAY_NOT_FLUSH_PW_UPSTREAM | ||
224 | #define SCSI_NCR_PCIQ_MAY_REORDER_WRITES | ||
225 | #define SCSI_NCR_PCIQ_MAY_MISS_COMPLETIONS | ||
226 | |||
227 | /* | ||
228 | ** Same as option 1, but also deal with | ||
229 | ** misconfigured interrupts. | ||
230 | ** | ||
231 | ** - Edge triggerred instead of level sensitive. | ||
232 | ** - No interrupt line connected. | ||
233 | ** - IRQ number misconfigured. | ||
234 | ** | ||
235 | ** If no interrupt is delivered, the driver will | ||
236 | ** catch the interrupt conditions 10 times per | ||
237 | ** second. No need to say that this option is | ||
238 | ** not recommended. | ||
239 | */ | ||
240 | #elif SCSI_NCR_PCIQ_WORK_AROUND_OPT == 2 | ||
241 | #define SCSI_NCR_PCIQ_MAY_NOT_FLUSH_PW_UPSTREAM | ||
242 | #define SCSI_NCR_PCIQ_MAY_REORDER_WRITES | ||
243 | #define SCSI_NCR_PCIQ_MAY_MISS_COMPLETIONS | ||
244 | #define SCSI_NCR_PCIQ_BROKEN_INTR | ||
245 | |||
246 | /* | ||
247 | ** Some bridge designers decided to flush | ||
248 | ** everything prior to deliver the interrupt. | ||
249 | ** This option tries to deal with such a | ||
250 | ** behaviour. | ||
251 | */ | ||
252 | #elif SCSI_NCR_PCIQ_WORK_AROUND_OPT == 3 | ||
253 | #define SCSI_NCR_PCIQ_SYNC_ON_INTR | ||
254 | #endif | ||
255 | |||
256 | /* | ||
257 | ** Other parameters not configurable with "make config" | ||
258 | ** Avoid to change these constants, unless you know what you are doing. | ||
259 | */ | ||
260 | |||
261 | #define SCSI_NCR_ALWAYS_SIMPLE_TAG | ||
262 | #define SCSI_NCR_MAX_SCATTER (127) | ||
263 | #define SCSI_NCR_MAX_TARGET (16) | ||
264 | |||
265 | /* | ||
266 | ** Compute some desirable value for CAN_QUEUE | ||
267 | ** and CMD_PER_LUN. | ||
268 | ** The driver will use lower values if these | ||
269 | ** ones appear to be too large. | ||
270 | */ | ||
271 | #define SCSI_NCR_CAN_QUEUE (8*SCSI_NCR_MAX_TAGS + 2*SCSI_NCR_MAX_TARGET) | ||
272 | #define SCSI_NCR_CMD_PER_LUN (SCSI_NCR_MAX_TAGS) | ||
273 | |||
274 | #define SCSI_NCR_SG_TABLESIZE (SCSI_NCR_MAX_SCATTER) | ||
275 | #define SCSI_NCR_TIMER_INTERVAL (HZ) | ||
276 | |||
277 | #if 1 /* defined CONFIG_SCSI_MULTI_LUN */ | ||
278 | #define SCSI_NCR_MAX_LUN (16) | ||
279 | #else | ||
280 | #define SCSI_NCR_MAX_LUN (1) | ||
281 | #endif | ||
282 | |||
283 | /* | ||
284 | * IO functions definition for big/little endian CPU support. | ||
285 | * For now, the NCR is only supported in little endian addressing mode, | ||
286 | */ | ||
287 | |||
288 | #ifdef __BIG_ENDIAN | ||
289 | |||
290 | #define inw_l2b inw | ||
291 | #define inl_l2b inl | ||
292 | #define outw_b2l outw | ||
293 | #define outl_b2l outl | ||
294 | |||
295 | #define readb_raw readb | ||
296 | #define writeb_raw writeb | ||
297 | |||
298 | #if defined(SCSI_NCR_BIG_ENDIAN) | ||
299 | #define readw_l2b __raw_readw | ||
300 | #define readl_l2b __raw_readl | ||
301 | #define writew_b2l __raw_writew | ||
302 | #define writel_b2l __raw_writel | ||
303 | #define readw_raw __raw_readw | ||
304 | #define readl_raw __raw_readl | ||
305 | #define writew_raw __raw_writew | ||
306 | #define writel_raw __raw_writel | ||
307 | #else /* Other big-endian */ | ||
308 | #define readw_l2b readw | ||
309 | #define readl_l2b readl | ||
310 | #define writew_b2l writew | ||
311 | #define writel_b2l writel | ||
312 | #define readw_raw readw | ||
313 | #define readl_raw readl | ||
314 | #define writew_raw writew | ||
315 | #define writel_raw writel | ||
316 | #endif | ||
317 | |||
318 | #else /* little endian */ | ||
319 | |||
320 | #define inw_raw inw | ||
321 | #define inl_raw inl | ||
322 | #define outw_raw outw | ||
323 | #define outl_raw outl | ||
324 | |||
325 | #define readb_raw readb | ||
326 | #define readw_raw readw | ||
327 | #define readl_raw readl | ||
328 | #define writeb_raw writeb | ||
329 | #define writew_raw writew | ||
330 | #define writel_raw writel | ||
331 | |||
332 | #endif | ||
333 | |||
334 | #if !defined(__hppa__) && !defined(__mips__) | ||
335 | #ifdef SCSI_NCR_BIG_ENDIAN | ||
336 | #error "The NCR in BIG ENDIAN addressing mode is not (yet) supported" | ||
337 | #endif | ||
338 | #endif | ||
339 | |||
340 | #define MEMORY_BARRIER() mb() | ||
341 | |||
342 | |||
343 | /* | ||
344 | * If the NCR uses big endian addressing mode over the | ||
345 | * PCI, actual io register addresses for byte and word | ||
346 | * accesses must be changed according to lane routing. | ||
347 | * Btw, ncr_offb() and ncr_offw() macros only apply to | ||
348 | * constants and so donnot generate bloated code. | ||
349 | */ | ||
350 | |||
351 | #if defined(SCSI_NCR_BIG_ENDIAN) | ||
352 | |||
353 | #define ncr_offb(o) (((o)&~3)+((~((o)&3))&3)) | ||
354 | #define ncr_offw(o) (((o)&~3)+((~((o)&3))&2)) | ||
355 | |||
356 | #else | ||
357 | |||
358 | #define ncr_offb(o) (o) | ||
359 | #define ncr_offw(o) (o) | ||
360 | |||
361 | #endif | ||
362 | |||
363 | /* | ||
364 | * If the CPU and the NCR use same endian-ness addressing, | ||
365 | * no byte reordering is needed for script patching. | ||
366 | * Macro cpu_to_scr() is to be used for script patching. | ||
367 | * Macro scr_to_cpu() is to be used for getting a DWORD | ||
368 | * from the script. | ||
369 | */ | ||
370 | |||
371 | #if defined(__BIG_ENDIAN) && !defined(SCSI_NCR_BIG_ENDIAN) | ||
372 | |||
373 | #define cpu_to_scr(dw) cpu_to_le32(dw) | ||
374 | #define scr_to_cpu(dw) le32_to_cpu(dw) | ||
375 | |||
376 | #elif defined(__LITTLE_ENDIAN) && defined(SCSI_NCR_BIG_ENDIAN) | ||
377 | |||
378 | #define cpu_to_scr(dw) cpu_to_be32(dw) | ||
379 | #define scr_to_cpu(dw) be32_to_cpu(dw) | ||
380 | |||
381 | #else | ||
382 | |||
383 | #define cpu_to_scr(dw) (dw) | ||
384 | #define scr_to_cpu(dw) (dw) | ||
385 | |||
386 | #endif | ||
387 | |||
388 | /* | ||
389 | * Access to the controller chip. | ||
390 | * | ||
391 | * If the CPU and the NCR use same endian-ness addressing, | ||
392 | * no byte reordering is needed for accessing chip io | ||
393 | * registers. Functions suffixed by '_raw' are assumed | ||
394 | * to access the chip over the PCI without doing byte | ||
395 | * reordering. Functions suffixed by '_l2b' are | ||
396 | * assumed to perform little-endian to big-endian byte | ||
397 | * reordering, those suffixed by '_b2l' blah, blah, | ||
398 | * blah, ... | ||
399 | */ | ||
400 | |||
401 | /* | ||
402 | * MEMORY mapped IO input / output | ||
403 | */ | ||
404 | |||
405 | #define INB_OFF(o) readb_raw((char __iomem *)np->reg + ncr_offb(o)) | ||
406 | #define OUTB_OFF(o, val) writeb_raw((val), (char __iomem *)np->reg + ncr_offb(o)) | ||
407 | |||
408 | #if defined(__BIG_ENDIAN) && !defined(SCSI_NCR_BIG_ENDIAN) | ||
409 | |||
410 | #define INW_OFF(o) readw_l2b((char __iomem *)np->reg + ncr_offw(o)) | ||
411 | #define INL_OFF(o) readl_l2b((char __iomem *)np->reg + (o)) | ||
412 | |||
413 | #define OUTW_OFF(o, val) writew_b2l((val), (char __iomem *)np->reg + ncr_offw(o)) | ||
414 | #define OUTL_OFF(o, val) writel_b2l((val), (char __iomem *)np->reg + (o)) | ||
415 | |||
416 | #elif defined(__LITTLE_ENDIAN) && defined(SCSI_NCR_BIG_ENDIAN) | ||
417 | |||
418 | #define INW_OFF(o) readw_b2l((char __iomem *)np->reg + ncr_offw(o)) | ||
419 | #define INL_OFF(o) readl_b2l((char __iomem *)np->reg + (o)) | ||
420 | |||
421 | #define OUTW_OFF(o, val) writew_l2b((val), (char __iomem *)np->reg + ncr_offw(o)) | ||
422 | #define OUTL_OFF(o, val) writel_l2b((val), (char __iomem *)np->reg + (o)) | ||
423 | |||
424 | #else | ||
425 | |||
426 | #ifdef CONFIG_SCSI_NCR53C8XX_NO_WORD_TRANSFERS | ||
427 | /* Only 8 or 32 bit transfers allowed */ | ||
428 | #define INW_OFF(o) (readb((char __iomem *)np->reg + ncr_offw(o)) << 8 | readb((char __iomem *)np->reg + ncr_offw(o) + 1)) | ||
429 | #else | ||
430 | #define INW_OFF(o) readw_raw((char __iomem *)np->reg + ncr_offw(o)) | ||
431 | #endif | ||
432 | #define INL_OFF(o) readl_raw((char __iomem *)np->reg + (o)) | ||
433 | |||
434 | #ifdef CONFIG_SCSI_NCR53C8XX_NO_WORD_TRANSFERS | ||
435 | /* Only 8 or 32 bit transfers allowed */ | ||
436 | #define OUTW_OFF(o, val) do { writeb((char)((val) >> 8), (char __iomem *)np->reg + ncr_offw(o)); writeb((char)(val), (char __iomem *)np->reg + ncr_offw(o) + 1); } while (0) | ||
437 | #else | ||
438 | #define OUTW_OFF(o, val) writew_raw((val), (char __iomem *)np->reg + ncr_offw(o)) | ||
439 | #endif | ||
440 | #define OUTL_OFF(o, val) writel_raw((val), (char __iomem *)np->reg + (o)) | ||
441 | |||
442 | #endif | ||
443 | |||
444 | #define INB(r) INB_OFF (offsetof(struct ncr_reg,r)) | ||
445 | #define INW(r) INW_OFF (offsetof(struct ncr_reg,r)) | ||
446 | #define INL(r) INL_OFF (offsetof(struct ncr_reg,r)) | ||
447 | |||
448 | #define OUTB(r, val) OUTB_OFF (offsetof(struct ncr_reg,r), (val)) | ||
449 | #define OUTW(r, val) OUTW_OFF (offsetof(struct ncr_reg,r), (val)) | ||
450 | #define OUTL(r, val) OUTL_OFF (offsetof(struct ncr_reg,r), (val)) | ||
451 | |||
452 | /* | ||
453 | * Set bit field ON, OFF | ||
454 | */ | ||
455 | |||
456 | #define OUTONB(r, m) OUTB(r, INB(r) | (m)) | ||
457 | #define OUTOFFB(r, m) OUTB(r, INB(r) & ~(m)) | ||
458 | #define OUTONW(r, m) OUTW(r, INW(r) | (m)) | ||
459 | #define OUTOFFW(r, m) OUTW(r, INW(r) & ~(m)) | ||
460 | #define OUTONL(r, m) OUTL(r, INL(r) | (m)) | ||
461 | #define OUTOFFL(r, m) OUTL(r, INL(r) & ~(m)) | ||
462 | |||
463 | /* | ||
464 | * We normally want the chip to have a consistent view | ||
465 | * of driver internal data structures when we restart it. | ||
466 | * Thus these macros. | ||
467 | */ | ||
468 | #define OUTL_DSP(v) \ | ||
469 | do { \ | ||
470 | MEMORY_BARRIER(); \ | ||
471 | OUTL (nc_dsp, (v)); \ | ||
472 | } while (0) | ||
473 | |||
474 | #define OUTONB_STD() \ | ||
475 | do { \ | ||
476 | MEMORY_BARRIER(); \ | ||
477 | OUTONB (nc_dcntl, (STD|NOCOM)); \ | ||
478 | } while (0) | ||
479 | |||
480 | |||
481 | /* | ||
482 | ** NCR53C8XX devices features table. | ||
483 | */ | ||
484 | struct ncr_chip { | ||
485 | unsigned short revision_id; | ||
486 | unsigned char burst_max; /* log-base-2 of max burst */ | ||
487 | unsigned char offset_max; | ||
488 | unsigned char nr_divisor; | ||
489 | unsigned int features; | ||
490 | #define FE_LED0 (1<<0) | ||
491 | #define FE_WIDE (1<<1) /* Wide data transfers */ | ||
492 | #define FE_ULTRA (1<<2) /* Ultra speed 20Mtrans/sec */ | ||
493 | #define FE_DBLR (1<<4) /* Clock doubler present */ | ||
494 | #define FE_QUAD (1<<5) /* Clock quadrupler present */ | ||
495 | #define FE_ERL (1<<6) /* Enable read line */ | ||
496 | #define FE_CLSE (1<<7) /* Cache line size enable */ | ||
497 | #define FE_WRIE (1<<8) /* Write & Invalidate enable */ | ||
498 | #define FE_ERMP (1<<9) /* Enable read multiple */ | ||
499 | #define FE_BOF (1<<10) /* Burst opcode fetch */ | ||
500 | #define FE_DFS (1<<11) /* DMA fifo size */ | ||
501 | #define FE_PFEN (1<<12) /* Prefetch enable */ | ||
502 | #define FE_LDSTR (1<<13) /* Load/Store supported */ | ||
503 | #define FE_RAM (1<<14) /* On chip RAM present */ | ||
504 | #define FE_VARCLK (1<<15) /* SCSI clock may vary */ | ||
505 | #define FE_RAM8K (1<<16) /* On chip RAM sized 8Kb */ | ||
506 | #define FE_64BIT (1<<17) /* Have a 64-bit PCI interface */ | ||
507 | #define FE_IO256 (1<<18) /* Requires full 256 bytes in PCI space */ | ||
508 | #define FE_NOPM (1<<19) /* Scripts handles phase mismatch */ | ||
509 | #define FE_LEDC (1<<20) /* Hardware control of LED */ | ||
510 | #define FE_DIFF (1<<21) /* Support Differential SCSI */ | ||
511 | #define FE_66MHZ (1<<23) /* 66MHz PCI Support */ | ||
512 | #define FE_DAC (1<<24) /* Support DAC cycles (64 bit addressing) */ | ||
513 | #define FE_ISTAT1 (1<<25) /* Have ISTAT1, MBOX0, MBOX1 registers */ | ||
514 | #define FE_DAC_IN_USE (1<<26) /* Platform does DAC cycles */ | ||
515 | #define FE_EHP (1<<27) /* 720: Even host parity */ | ||
516 | #define FE_MUX (1<<28) /* 720: Multiplexed bus */ | ||
517 | #define FE_EA (1<<29) /* 720: Enable Ack */ | ||
518 | |||
519 | #define FE_CACHE_SET (FE_ERL|FE_CLSE|FE_WRIE|FE_ERMP) | ||
520 | #define FE_SCSI_SET (FE_WIDE|FE_ULTRA|FE_DBLR|FE_QUAD|F_CLK80) | ||
521 | #define FE_SPECIAL_SET (FE_CACHE_SET|FE_BOF|FE_DFS|FE_LDSTR|FE_PFEN|FE_RAM) | ||
522 | }; | ||
523 | |||
524 | |||
525 | /* | ||
526 | ** Driver setup structure. | ||
527 | ** | ||
528 | ** This structure is initialized from linux config options. | ||
529 | ** It can be overridden at boot-up by the boot command line. | ||
530 | */ | ||
531 | #define SCSI_NCR_MAX_EXCLUDES 8 | ||
532 | struct ncr_driver_setup { | ||
533 | u8 master_parity; | ||
534 | u8 scsi_parity; | ||
535 | u8 disconnection; | ||
536 | u8 special_features; | ||
537 | u8 force_sync_nego; | ||
538 | u8 reverse_probe; | ||
539 | u8 pci_fix_up; | ||
540 | u8 use_nvram; | ||
541 | u8 verbose; | ||
542 | u8 default_tags; | ||
543 | u16 default_sync; | ||
544 | u16 debug; | ||
545 | u8 burst_max; | ||
546 | u8 led_pin; | ||
547 | u8 max_wide; | ||
548 | u8 settle_delay; | ||
549 | u8 diff_support; | ||
550 | u8 irqm; | ||
551 | u8 bus_check; | ||
552 | u8 optimize; | ||
553 | u8 recovery; | ||
554 | u8 host_id; | ||
555 | u16 iarb; | ||
556 | u32 excludes[SCSI_NCR_MAX_EXCLUDES]; | ||
557 | char tag_ctrl[100]; | ||
558 | }; | ||
559 | |||
560 | /* | ||
561 | ** Initial setup. | ||
562 | ** Can be overriden at startup by a command line. | ||
563 | */ | ||
564 | #define SCSI_NCR_DRIVER_SETUP \ | ||
565 | { \ | ||
566 | SCSI_NCR_SETUP_MASTER_PARITY, \ | ||
567 | SCSI_NCR_SETUP_SCSI_PARITY, \ | ||
568 | SCSI_NCR_SETUP_DISCONNECTION, \ | ||
569 | SCSI_NCR_SETUP_SPECIAL_FEATURES, \ | ||
570 | SCSI_NCR_SETUP_FORCE_SYNC_NEGO, \ | ||
571 | 0, \ | ||
572 | 0, \ | ||
573 | 1, \ | ||
574 | 0, \ | ||
575 | SCSI_NCR_SETUP_DEFAULT_TAGS, \ | ||
576 | SCSI_NCR_SETUP_DEFAULT_SYNC, \ | ||
577 | 0x00, \ | ||
578 | 7, \ | ||
579 | 0, \ | ||
580 | 1, \ | ||
581 | SCSI_NCR_SETUP_SETTLE_TIME, \ | ||
582 | 0, \ | ||
583 | 0, \ | ||
584 | 1, \ | ||
585 | 0, \ | ||
586 | 0, \ | ||
587 | 255, \ | ||
588 | 0x00 \ | ||
589 | } | ||
590 | |||
591 | /* | ||
592 | ** Boot fail safe setup. | ||
593 | ** Override initial setup from boot command line: | ||
594 | ** ncr53c8xx=safe:y | ||
595 | */ | ||
596 | #define SCSI_NCR_DRIVER_SAFE_SETUP \ | ||
597 | { \ | ||
598 | 0, \ | ||
599 | 1, \ | ||
600 | 0, \ | ||
601 | 0, \ | ||
602 | 0, \ | ||
603 | 0, \ | ||
604 | 0, \ | ||
605 | 1, \ | ||
606 | 2, \ | ||
607 | 0, \ | ||
608 | 255, \ | ||
609 | 0x00, \ | ||
610 | 255, \ | ||
611 | 0, \ | ||
612 | 0, \ | ||
613 | 10, \ | ||
614 | 1, \ | ||
615 | 1, \ | ||
616 | 1, \ | ||
617 | 0, \ | ||
618 | 0, \ | ||
619 | 255 \ | ||
620 | } | ||
621 | |||
622 | /**************** ORIGINAL CONTENT of ncrreg.h from FreeBSD ******************/ | ||
623 | |||
624 | /*----------------------------------------------------------------- | ||
625 | ** | ||
626 | ** The ncr 53c810 register structure. | ||
627 | ** | ||
628 | **----------------------------------------------------------------- | ||
629 | */ | ||
630 | |||
631 | struct ncr_reg { | ||
632 | /*00*/ u8 nc_scntl0; /* full arb., ena parity, par->ATN */ | ||
633 | |||
634 | /*01*/ u8 nc_scntl1; /* no reset */ | ||
635 | #define ISCON 0x10 /* connected to scsi */ | ||
636 | #define CRST 0x08 /* force reset */ | ||
637 | #define IARB 0x02 /* immediate arbitration */ | ||
638 | |||
639 | /*02*/ u8 nc_scntl2; /* no disconnect expected */ | ||
640 | #define SDU 0x80 /* cmd: disconnect will raise error */ | ||
641 | #define CHM 0x40 /* sta: chained mode */ | ||
642 | #define WSS 0x08 /* sta: wide scsi send [W]*/ | ||
643 | #define WSR 0x01 /* sta: wide scsi received [W]*/ | ||
644 | |||
645 | /*03*/ u8 nc_scntl3; /* cnf system clock dependent */ | ||
646 | #define EWS 0x08 /* cmd: enable wide scsi [W]*/ | ||
647 | #define ULTRA 0x80 /* cmd: ULTRA enable */ | ||
648 | /* bits 0-2, 7 rsvd for C1010 */ | ||
649 | |||
650 | /*04*/ u8 nc_scid; /* cnf host adapter scsi address */ | ||
651 | #define RRE 0x40 /* r/w:e enable response to resel. */ | ||
652 | #define SRE 0x20 /* r/w:e enable response to select */ | ||
653 | |||
654 | /*05*/ u8 nc_sxfer; /* ### Sync speed and count */ | ||
655 | /* bits 6-7 rsvd for C1010 */ | ||
656 | |||
657 | /*06*/ u8 nc_sdid; /* ### Destination-ID */ | ||
658 | |||
659 | /*07*/ u8 nc_gpreg; /* ??? IO-Pins */ | ||
660 | |||
661 | /*08*/ u8 nc_sfbr; /* ### First byte in phase */ | ||
662 | |||
663 | /*09*/ u8 nc_socl; | ||
664 | #define CREQ 0x80 /* r/w: SCSI-REQ */ | ||
665 | #define CACK 0x40 /* r/w: SCSI-ACK */ | ||
666 | #define CBSY 0x20 /* r/w: SCSI-BSY */ | ||
667 | #define CSEL 0x10 /* r/w: SCSI-SEL */ | ||
668 | #define CATN 0x08 /* r/w: SCSI-ATN */ | ||
669 | #define CMSG 0x04 /* r/w: SCSI-MSG */ | ||
670 | #define CC_D 0x02 /* r/w: SCSI-C_D */ | ||
671 | #define CI_O 0x01 /* r/w: SCSI-I_O */ | ||
672 | |||
673 | /*0a*/ u8 nc_ssid; | ||
674 | |||
675 | /*0b*/ u8 nc_sbcl; | ||
676 | |||
677 | /*0c*/ u8 nc_dstat; | ||
678 | #define DFE 0x80 /* sta: dma fifo empty */ | ||
679 | #define MDPE 0x40 /* int: master data parity error */ | ||
680 | #define BF 0x20 /* int: script: bus fault */ | ||
681 | #define ABRT 0x10 /* int: script: command aborted */ | ||
682 | #define SSI 0x08 /* int: script: single step */ | ||
683 | #define SIR 0x04 /* int: script: interrupt instruct. */ | ||
684 | #define IID 0x01 /* int: script: illegal instruct. */ | ||
685 | |||
686 | /*0d*/ u8 nc_sstat0; | ||
687 | #define ILF 0x80 /* sta: data in SIDL register lsb */ | ||
688 | #define ORF 0x40 /* sta: data in SODR register lsb */ | ||
689 | #define OLF 0x20 /* sta: data in SODL register lsb */ | ||
690 | #define AIP 0x10 /* sta: arbitration in progress */ | ||
691 | #define LOA 0x08 /* sta: arbitration lost */ | ||
692 | #define WOA 0x04 /* sta: arbitration won */ | ||
693 | #define IRST 0x02 /* sta: scsi reset signal */ | ||
694 | #define SDP 0x01 /* sta: scsi parity signal */ | ||
695 | |||
696 | /*0e*/ u8 nc_sstat1; | ||
697 | #define FF3210 0xf0 /* sta: bytes in the scsi fifo */ | ||
698 | |||
699 | /*0f*/ u8 nc_sstat2; | ||
700 | #define ILF1 0x80 /* sta: data in SIDL register msb[W]*/ | ||
701 | #define ORF1 0x40 /* sta: data in SODR register msb[W]*/ | ||
702 | #define OLF1 0x20 /* sta: data in SODL register msb[W]*/ | ||
703 | #define DM 0x04 /* sta: DIFFSENS mismatch (895/6 only) */ | ||
704 | #define LDSC 0x02 /* sta: disconnect & reconnect */ | ||
705 | |||
706 | /*10*/ u8 nc_dsa; /* --> Base page */ | ||
707 | /*11*/ u8 nc_dsa1; | ||
708 | /*12*/ u8 nc_dsa2; | ||
709 | /*13*/ u8 nc_dsa3; | ||
710 | |||
711 | /*14*/ u8 nc_istat; /* --> Main Command and status */ | ||
712 | #define CABRT 0x80 /* cmd: abort current operation */ | ||
713 | #define SRST 0x40 /* mod: reset chip */ | ||
714 | #define SIGP 0x20 /* r/w: message from host to ncr */ | ||
715 | #define SEM 0x10 /* r/w: message between host + ncr */ | ||
716 | #define CON 0x08 /* sta: connected to scsi */ | ||
717 | #define INTF 0x04 /* sta: int on the fly (reset by wr)*/ | ||
718 | #define SIP 0x02 /* sta: scsi-interrupt */ | ||
719 | #define DIP 0x01 /* sta: host/script interrupt */ | ||
720 | |||
721 | /*15*/ u8 nc_istat1; /* 896 and later cores only */ | ||
722 | #define FLSH 0x04 /* sta: chip is flushing */ | ||
723 | #define SRUN 0x02 /* sta: scripts are running */ | ||
724 | #define SIRQD 0x01 /* r/w: disable INT pin */ | ||
725 | |||
726 | /*16*/ u8 nc_mbox0; /* 896 and later cores only */ | ||
727 | /*17*/ u8 nc_mbox1; /* 896 and later cores only */ | ||
728 | |||
729 | /*18*/ u8 nc_ctest0; | ||
730 | #define EHP 0x04 /* 720 even host parity */ | ||
731 | /*19*/ u8 nc_ctest1; | ||
732 | |||
733 | /*1a*/ u8 nc_ctest2; | ||
734 | #define CSIGP 0x40 | ||
735 | /* bits 0-2,7 rsvd for C1010 */ | ||
736 | |||
737 | /*1b*/ u8 nc_ctest3; | ||
738 | #define FLF 0x08 /* cmd: flush dma fifo */ | ||
739 | #define CLF 0x04 /* cmd: clear dma fifo */ | ||
740 | #define FM 0x02 /* mod: fetch pin mode */ | ||
741 | #define WRIE 0x01 /* mod: write and invalidate enable */ | ||
742 | /* bits 4-7 rsvd for C1010 */ | ||
743 | |||
744 | /*1c*/ u32 nc_temp; /* ### Temporary stack */ | ||
745 | |||
746 | /*20*/ u8 nc_dfifo; | ||
747 | /*21*/ u8 nc_ctest4; | ||
748 | #define MUX 0x80 /* 720 host bus multiplex mode */ | ||
749 | #define BDIS 0x80 /* mod: burst disable */ | ||
750 | #define MPEE 0x08 /* mod: master parity error enable */ | ||
751 | |||
752 | /*22*/ u8 nc_ctest5; | ||
753 | #define DFS 0x20 /* mod: dma fifo size */ | ||
754 | /* bits 0-1, 3-7 rsvd for C1010 */ | ||
755 | /*23*/ u8 nc_ctest6; | ||
756 | |||
757 | /*24*/ u32 nc_dbc; /* ### Byte count and command */ | ||
758 | /*28*/ u32 nc_dnad; /* ### Next command register */ | ||
759 | /*2c*/ u32 nc_dsp; /* --> Script Pointer */ | ||
760 | /*30*/ u32 nc_dsps; /* --> Script pointer save/opcode#2 */ | ||
761 | |||
762 | /*34*/ u8 nc_scratcha; /* Temporary register a */ | ||
763 | /*35*/ u8 nc_scratcha1; | ||
764 | /*36*/ u8 nc_scratcha2; | ||
765 | /*37*/ u8 nc_scratcha3; | ||
766 | |||
767 | /*38*/ u8 nc_dmode; | ||
768 | #define BL_2 0x80 /* mod: burst length shift value +2 */ | ||
769 | #define BL_1 0x40 /* mod: burst length shift value +1 */ | ||
770 | #define ERL 0x08 /* mod: enable read line */ | ||
771 | #define ERMP 0x04 /* mod: enable read multiple */ | ||
772 | #define BOF 0x02 /* mod: burst op code fetch */ | ||
773 | |||
774 | /*39*/ u8 nc_dien; | ||
775 | /*3a*/ u8 nc_sbr; | ||
776 | |||
777 | /*3b*/ u8 nc_dcntl; /* --> Script execution control */ | ||
778 | #define CLSE 0x80 /* mod: cache line size enable */ | ||
779 | #define PFF 0x40 /* cmd: pre-fetch flush */ | ||
780 | #define PFEN 0x20 /* mod: pre-fetch enable */ | ||
781 | #define EA 0x20 /* mod: 720 enable-ack */ | ||
782 | #define SSM 0x10 /* mod: single step mode */ | ||
783 | #define IRQM 0x08 /* mod: irq mode (1 = totem pole !) */ | ||
784 | #define STD 0x04 /* cmd: start dma mode */ | ||
785 | #define IRQD 0x02 /* mod: irq disable */ | ||
786 | #define NOCOM 0x01 /* cmd: protect sfbr while reselect */ | ||
787 | /* bits 0-1 rsvd for C1010 */ | ||
788 | |||
789 | /*3c*/ u32 nc_adder; | ||
790 | |||
791 | /*40*/ u16 nc_sien; /* -->: interrupt enable */ | ||
792 | /*42*/ u16 nc_sist; /* <--: interrupt status */ | ||
793 | #define SBMC 0x1000/* sta: SCSI Bus Mode Change (895/6 only) */ | ||
794 | #define STO 0x0400/* sta: timeout (select) */ | ||
795 | #define GEN 0x0200/* sta: timeout (general) */ | ||
796 | #define HTH 0x0100/* sta: timeout (handshake) */ | ||
797 | #define MA 0x80 /* sta: phase mismatch */ | ||
798 | #define CMP 0x40 /* sta: arbitration complete */ | ||
799 | #define SEL 0x20 /* sta: selected by another device */ | ||
800 | #define RSL 0x10 /* sta: reselected by another device*/ | ||
801 | #define SGE 0x08 /* sta: gross error (over/underflow)*/ | ||
802 | #define UDC 0x04 /* sta: unexpected disconnect */ | ||
803 | #define RST 0x02 /* sta: scsi bus reset detected */ | ||
804 | #define PAR 0x01 /* sta: scsi parity error */ | ||
805 | |||
806 | /*44*/ u8 nc_slpar; | ||
807 | /*45*/ u8 nc_swide; | ||
808 | /*46*/ u8 nc_macntl; | ||
809 | /*47*/ u8 nc_gpcntl; | ||
810 | /*48*/ u8 nc_stime0; /* cmd: timeout for select&handshake*/ | ||
811 | /*49*/ u8 nc_stime1; /* cmd: timeout user defined */ | ||
812 | /*4a*/ u16 nc_respid; /* sta: Reselect-IDs */ | ||
813 | |||
814 | /*4c*/ u8 nc_stest0; | ||
815 | |||
816 | /*4d*/ u8 nc_stest1; | ||
817 | #define SCLK 0x80 /* Use the PCI clock as SCSI clock */ | ||
818 | #define DBLEN 0x08 /* clock doubler running */ | ||
819 | #define DBLSEL 0x04 /* clock doubler selected */ | ||
820 | |||
821 | |||
822 | /*4e*/ u8 nc_stest2; | ||
823 | #define ROF 0x40 /* reset scsi offset (after gross error!) */ | ||
824 | #define DIF 0x20 /* 720 SCSI differential mode */ | ||
825 | #define EXT 0x02 /* extended filtering */ | ||
826 | |||
827 | /*4f*/ u8 nc_stest3; | ||
828 | #define TE 0x80 /* c: tolerAnt enable */ | ||
829 | #define HSC 0x20 /* c: Halt SCSI Clock */ | ||
830 | #define CSF 0x02 /* c: clear scsi fifo */ | ||
831 | |||
832 | /*50*/ u16 nc_sidl; /* Lowlevel: latched from scsi data */ | ||
833 | /*52*/ u8 nc_stest4; | ||
834 | #define SMODE 0xc0 /* SCSI bus mode (895/6 only) */ | ||
835 | #define SMODE_HVD 0x40 /* High Voltage Differential */ | ||
836 | #define SMODE_SE 0x80 /* Single Ended */ | ||
837 | #define SMODE_LVD 0xc0 /* Low Voltage Differential */ | ||
838 | #define LCKFRQ 0x20 /* Frequency Lock (895/6 only) */ | ||
839 | /* bits 0-5 rsvd for C1010 */ | ||
840 | |||
841 | /*53*/ u8 nc_53_; | ||
842 | /*54*/ u16 nc_sodl; /* Lowlevel: data out to scsi data */ | ||
843 | /*56*/ u8 nc_ccntl0; /* Chip Control 0 (896) */ | ||
844 | #define ENPMJ 0x80 /* Enable Phase Mismatch Jump */ | ||
845 | #define PMJCTL 0x40 /* Phase Mismatch Jump Control */ | ||
846 | #define ENNDJ 0x20 /* Enable Non Data PM Jump */ | ||
847 | #define DISFC 0x10 /* Disable Auto FIFO Clear */ | ||
848 | #define DILS 0x02 /* Disable Internal Load/Store */ | ||
849 | #define DPR 0x01 /* Disable Pipe Req */ | ||
850 | |||
851 | /*57*/ u8 nc_ccntl1; /* Chip Control 1 (896) */ | ||
852 | #define ZMOD 0x80 /* High Impedance Mode */ | ||
853 | #define DIC 0x10 /* Disable Internal Cycles */ | ||
854 | #define DDAC 0x08 /* Disable Dual Address Cycle */ | ||
855 | #define XTIMOD 0x04 /* 64-bit Table Ind. Indexing Mode */ | ||
856 | #define EXTIBMV 0x02 /* Enable 64-bit Table Ind. BMOV */ | ||
857 | #define EXDBMV 0x01 /* Enable 64-bit Direct BMOV */ | ||
858 | |||
859 | /*58*/ u16 nc_sbdl; /* Lowlevel: data from scsi data */ | ||
860 | /*5a*/ u16 nc_5a_; | ||
861 | |||
862 | /*5c*/ u8 nc_scr0; /* Working register B */ | ||
863 | /*5d*/ u8 nc_scr1; /* */ | ||
864 | /*5e*/ u8 nc_scr2; /* */ | ||
865 | /*5f*/ u8 nc_scr3; /* */ | ||
866 | |||
867 | /*60*/ u8 nc_scrx[64]; /* Working register C-R */ | ||
868 | /*a0*/ u32 nc_mmrs; /* Memory Move Read Selector */ | ||
869 | /*a4*/ u32 nc_mmws; /* Memory Move Write Selector */ | ||
870 | /*a8*/ u32 nc_sfs; /* Script Fetch Selector */ | ||
871 | /*ac*/ u32 nc_drs; /* DSA Relative Selector */ | ||
872 | /*b0*/ u32 nc_sbms; /* Static Block Move Selector */ | ||
873 | /*b4*/ u32 nc_dbms; /* Dynamic Block Move Selector */ | ||
874 | /*b8*/ u32 nc_dnad64; /* DMA Next Address 64 */ | ||
875 | /*bc*/ u16 nc_scntl4; /* C1010 only */ | ||
876 | #define U3EN 0x80 /* Enable Ultra 3 */ | ||
877 | #define AIPEN 0x40 /* Allow check upper byte lanes */ | ||
878 | #define XCLKH_DT 0x08 /* Extra clock of data hold on DT | ||
879 | transfer edge */ | ||
880 | #define XCLKH_ST 0x04 /* Extra clock of data hold on ST | ||
881 | transfer edge */ | ||
882 | |||
883 | /*be*/ u8 nc_aipcntl0; /* Epat Control 1 C1010 only */ | ||
884 | /*bf*/ u8 nc_aipcntl1; /* AIP Control C1010_66 Only */ | ||
885 | |||
886 | /*c0*/ u32 nc_pmjad1; /* Phase Mismatch Jump Address 1 */ | ||
887 | /*c4*/ u32 nc_pmjad2; /* Phase Mismatch Jump Address 2 */ | ||
888 | /*c8*/ u8 nc_rbc; /* Remaining Byte Count */ | ||
889 | /*c9*/ u8 nc_rbc1; /* */ | ||
890 | /*ca*/ u8 nc_rbc2; /* */ | ||
891 | /*cb*/ u8 nc_rbc3; /* */ | ||
892 | |||
893 | /*cc*/ u8 nc_ua; /* Updated Address */ | ||
894 | /*cd*/ u8 nc_ua1; /* */ | ||
895 | /*ce*/ u8 nc_ua2; /* */ | ||
896 | /*cf*/ u8 nc_ua3; /* */ | ||
897 | /*d0*/ u32 nc_esa; /* Entry Storage Address */ | ||
898 | /*d4*/ u8 nc_ia; /* Instruction Address */ | ||
899 | /*d5*/ u8 nc_ia1; | ||
900 | /*d6*/ u8 nc_ia2; | ||
901 | /*d7*/ u8 nc_ia3; | ||
902 | /*d8*/ u32 nc_sbc; /* SCSI Byte Count (3 bytes only) */ | ||
903 | /*dc*/ u32 nc_csbc; /* Cumulative SCSI Byte Count */ | ||
904 | |||
905 | /* Following for C1010 only */ | ||
906 | /*e0*/ u16 nc_crcpad; /* CRC Value */ | ||
907 | /*e2*/ u8 nc_crccntl0; /* CRC control register */ | ||
908 | #define SNDCRC 0x10 /* Send CRC Request */ | ||
909 | /*e3*/ u8 nc_crccntl1; /* CRC control register */ | ||
910 | /*e4*/ u32 nc_crcdata; /* CRC data register */ | ||
911 | /*e8*/ u32 nc_e8_; /* rsvd */ | ||
912 | /*ec*/ u32 nc_ec_; /* rsvd */ | ||
913 | /*f0*/ u16 nc_dfbc; /* DMA FIFO byte count */ | ||
914 | |||
915 | }; | ||
916 | |||
917 | /*----------------------------------------------------------- | ||
918 | ** | ||
919 | ** Utility macros for the script. | ||
920 | ** | ||
921 | **----------------------------------------------------------- | ||
922 | */ | ||
923 | |||
924 | #define REGJ(p,r) (offsetof(struct ncr_reg, p ## r)) | ||
925 | #define REG(r) REGJ (nc_, r) | ||
926 | |||
927 | typedef u32 ncrcmd; | ||
928 | |||
929 | /*----------------------------------------------------------- | ||
930 | ** | ||
931 | ** SCSI phases | ||
932 | ** | ||
933 | ** DT phases illegal for ncr driver. | ||
934 | ** | ||
935 | **----------------------------------------------------------- | ||
936 | */ | ||
937 | |||
938 | #define SCR_DATA_OUT 0x00000000 | ||
939 | #define SCR_DATA_IN 0x01000000 | ||
940 | #define SCR_COMMAND 0x02000000 | ||
941 | #define SCR_STATUS 0x03000000 | ||
942 | #define SCR_DT_DATA_OUT 0x04000000 | ||
943 | #define SCR_DT_DATA_IN 0x05000000 | ||
944 | #define SCR_MSG_OUT 0x06000000 | ||
945 | #define SCR_MSG_IN 0x07000000 | ||
946 | |||
947 | #define SCR_ILG_OUT 0x04000000 | ||
948 | #define SCR_ILG_IN 0x05000000 | ||
949 | |||
950 | /*----------------------------------------------------------- | ||
951 | ** | ||
952 | ** Data transfer via SCSI. | ||
953 | ** | ||
954 | **----------------------------------------------------------- | ||
955 | ** | ||
956 | ** MOVE_ABS (LEN) | ||
957 | ** <<start address>> | ||
958 | ** | ||
959 | ** MOVE_IND (LEN) | ||
960 | ** <<dnad_offset>> | ||
961 | ** | ||
962 | ** MOVE_TBL | ||
963 | ** <<dnad_offset>> | ||
964 | ** | ||
965 | **----------------------------------------------------------- | ||
966 | */ | ||
967 | |||
968 | #define OPC_MOVE 0x08000000 | ||
969 | |||
970 | #define SCR_MOVE_ABS(l) ((0x00000000 | OPC_MOVE) | (l)) | ||
971 | #define SCR_MOVE_IND(l) ((0x20000000 | OPC_MOVE) | (l)) | ||
972 | #define SCR_MOVE_TBL (0x10000000 | OPC_MOVE) | ||
973 | |||
974 | #define SCR_CHMOV_ABS(l) ((0x00000000) | (l)) | ||
975 | #define SCR_CHMOV_IND(l) ((0x20000000) | (l)) | ||
976 | #define SCR_CHMOV_TBL (0x10000000) | ||
977 | |||
978 | struct scr_tblmove { | ||
979 | u32 size; | ||
980 | u32 addr; | ||
981 | }; | ||
982 | |||
983 | /*----------------------------------------------------------- | ||
984 | ** | ||
985 | ** Selection | ||
986 | ** | ||
987 | **----------------------------------------------------------- | ||
988 | ** | ||
989 | ** SEL_ABS | SCR_ID (0..15) [ | REL_JMP] | ||
990 | ** <<alternate_address>> | ||
991 | ** | ||
992 | ** SEL_TBL | << dnad_offset>> [ | REL_JMP] | ||
993 | ** <<alternate_address>> | ||
994 | ** | ||
995 | **----------------------------------------------------------- | ||
996 | */ | ||
997 | |||
998 | #define SCR_SEL_ABS 0x40000000 | ||
999 | #define SCR_SEL_ABS_ATN 0x41000000 | ||
1000 | #define SCR_SEL_TBL 0x42000000 | ||
1001 | #define SCR_SEL_TBL_ATN 0x43000000 | ||
1002 | |||
1003 | |||
1004 | #ifdef SCSI_NCR_BIG_ENDIAN | ||
1005 | struct scr_tblsel { | ||
1006 | u8 sel_scntl3; | ||
1007 | u8 sel_id; | ||
1008 | u8 sel_sxfer; | ||
1009 | u8 sel_scntl4; | ||
1010 | }; | ||
1011 | #else | ||
1012 | struct scr_tblsel { | ||
1013 | u8 sel_scntl4; | ||
1014 | u8 sel_sxfer; | ||
1015 | u8 sel_id; | ||
1016 | u8 sel_scntl3; | ||
1017 | }; | ||
1018 | #endif | ||
1019 | |||
1020 | #define SCR_JMP_REL 0x04000000 | ||
1021 | #define SCR_ID(id) (((u32)(id)) << 16) | ||
1022 | |||
1023 | /*----------------------------------------------------------- | ||
1024 | ** | ||
1025 | ** Waiting for Disconnect or Reselect | ||
1026 | ** | ||
1027 | **----------------------------------------------------------- | ||
1028 | ** | ||
1029 | ** WAIT_DISC | ||
1030 | ** dummy: <<alternate_address>> | ||
1031 | ** | ||
1032 | ** WAIT_RESEL | ||
1033 | ** <<alternate_address>> | ||
1034 | ** | ||
1035 | **----------------------------------------------------------- | ||
1036 | */ | ||
1037 | |||
1038 | #define SCR_WAIT_DISC 0x48000000 | ||
1039 | #define SCR_WAIT_RESEL 0x50000000 | ||
1040 | |||
1041 | /*----------------------------------------------------------- | ||
1042 | ** | ||
1043 | ** Bit Set / Reset | ||
1044 | ** | ||
1045 | **----------------------------------------------------------- | ||
1046 | ** | ||
1047 | ** SET (flags {|.. }) | ||
1048 | ** | ||
1049 | ** CLR (flags {|.. }) | ||
1050 | ** | ||
1051 | **----------------------------------------------------------- | ||
1052 | */ | ||
1053 | |||
1054 | #define SCR_SET(f) (0x58000000 | (f)) | ||
1055 | #define SCR_CLR(f) (0x60000000 | (f)) | ||
1056 | |||
1057 | #define SCR_CARRY 0x00000400 | ||
1058 | #define SCR_TRG 0x00000200 | ||
1059 | #define SCR_ACK 0x00000040 | ||
1060 | #define SCR_ATN 0x00000008 | ||
1061 | |||
1062 | |||
1063 | |||
1064 | |||
1065 | /*----------------------------------------------------------- | ||
1066 | ** | ||
1067 | ** Memory to memory move | ||
1068 | ** | ||
1069 | **----------------------------------------------------------- | ||
1070 | ** | ||
1071 | ** COPY (bytecount) | ||
1072 | ** << source_address >> | ||
1073 | ** << destination_address >> | ||
1074 | ** | ||
1075 | ** SCR_COPY sets the NO FLUSH option by default. | ||
1076 | ** SCR_COPY_F does not set this option. | ||
1077 | ** | ||
1078 | ** For chips which do not support this option, | ||
1079 | ** ncr_copy_and_bind() will remove this bit. | ||
1080 | **----------------------------------------------------------- | ||
1081 | */ | ||
1082 | |||
1083 | #define SCR_NO_FLUSH 0x01000000 | ||
1084 | |||
1085 | #define SCR_COPY(n) (0xc0000000 | SCR_NO_FLUSH | (n)) | ||
1086 | #define SCR_COPY_F(n) (0xc0000000 | (n)) | ||
1087 | |||
1088 | /*----------------------------------------------------------- | ||
1089 | ** | ||
1090 | ** Register move and binary operations | ||
1091 | ** | ||
1092 | **----------------------------------------------------------- | ||
1093 | ** | ||
1094 | ** SFBR_REG (reg, op, data) reg = SFBR op data | ||
1095 | ** << 0 >> | ||
1096 | ** | ||
1097 | ** REG_SFBR (reg, op, data) SFBR = reg op data | ||
1098 | ** << 0 >> | ||
1099 | ** | ||
1100 | ** REG_REG (reg, op, data) reg = reg op data | ||
1101 | ** << 0 >> | ||
1102 | ** | ||
1103 | **----------------------------------------------------------- | ||
1104 | ** On 810A, 860, 825A, 875, 895 and 896 chips the content | ||
1105 | ** of SFBR register can be used as data (SCR_SFBR_DATA). | ||
1106 | ** The 896 has additionnal IO registers starting at | ||
1107 | ** offset 0x80. Bit 7 of register offset is stored in | ||
1108 | ** bit 7 of the SCRIPTS instruction first DWORD. | ||
1109 | **----------------------------------------------------------- | ||
1110 | */ | ||
1111 | |||
1112 | #define SCR_REG_OFS(ofs) ((((ofs) & 0x7f) << 16ul) + ((ofs) & 0x80)) | ||
1113 | |||
1114 | #define SCR_SFBR_REG(reg,op,data) \ | ||
1115 | (0x68000000 | (SCR_REG_OFS(REG(reg))) | (op) | (((data)&0xff)<<8ul)) | ||
1116 | |||
1117 | #define SCR_REG_SFBR(reg,op,data) \ | ||
1118 | (0x70000000 | (SCR_REG_OFS(REG(reg))) | (op) | (((data)&0xff)<<8ul)) | ||
1119 | |||
1120 | #define SCR_REG_REG(reg,op,data) \ | ||
1121 | (0x78000000 | (SCR_REG_OFS(REG(reg))) | (op) | (((data)&0xff)<<8ul)) | ||
1122 | |||
1123 | |||
1124 | #define SCR_LOAD 0x00000000 | ||
1125 | #define SCR_SHL 0x01000000 | ||
1126 | #define SCR_OR 0x02000000 | ||
1127 | #define SCR_XOR 0x03000000 | ||
1128 | #define SCR_AND 0x04000000 | ||
1129 | #define SCR_SHR 0x05000000 | ||
1130 | #define SCR_ADD 0x06000000 | ||
1131 | #define SCR_ADDC 0x07000000 | ||
1132 | |||
1133 | #define SCR_SFBR_DATA (0x00800000>>8ul) /* Use SFBR as data */ | ||
1134 | |||
1135 | /*----------------------------------------------------------- | ||
1136 | ** | ||
1137 | ** FROM_REG (reg) SFBR = reg | ||
1138 | ** << 0 >> | ||
1139 | ** | ||
1140 | ** TO_REG (reg) reg = SFBR | ||
1141 | ** << 0 >> | ||
1142 | ** | ||
1143 | ** LOAD_REG (reg, data) reg = <data> | ||
1144 | ** << 0 >> | ||
1145 | ** | ||
1146 | ** LOAD_SFBR(data) SFBR = <data> | ||
1147 | ** << 0 >> | ||
1148 | ** | ||
1149 | **----------------------------------------------------------- | ||
1150 | */ | ||
1151 | |||
1152 | #define SCR_FROM_REG(reg) \ | ||
1153 | SCR_REG_SFBR(reg,SCR_OR,0) | ||
1154 | |||
1155 | #define SCR_TO_REG(reg) \ | ||
1156 | SCR_SFBR_REG(reg,SCR_OR,0) | ||
1157 | |||
1158 | #define SCR_LOAD_REG(reg,data) \ | ||
1159 | SCR_REG_REG(reg,SCR_LOAD,data) | ||
1160 | |||
1161 | #define SCR_LOAD_SFBR(data) \ | ||
1162 | (SCR_REG_SFBR (gpreg, SCR_LOAD, data)) | ||
1163 | |||
1164 | /*----------------------------------------------------------- | ||
1165 | ** | ||
1166 | ** LOAD from memory to register. | ||
1167 | ** STORE from register to memory. | ||
1168 | ** | ||
1169 | ** Only supported by 810A, 860, 825A, 875, 895 and 896. | ||
1170 | ** | ||
1171 | **----------------------------------------------------------- | ||
1172 | ** | ||
1173 | ** LOAD_ABS (LEN) | ||
1174 | ** <<start address>> | ||
1175 | ** | ||
1176 | ** LOAD_REL (LEN) (DSA relative) | ||
1177 | ** <<dsa_offset>> | ||
1178 | ** | ||
1179 | **----------------------------------------------------------- | ||
1180 | */ | ||
1181 | |||
1182 | #define SCR_REG_OFS2(ofs) (((ofs) & 0xff) << 16ul) | ||
1183 | #define SCR_NO_FLUSH2 0x02000000 | ||
1184 | #define SCR_DSA_REL2 0x10000000 | ||
1185 | |||
1186 | #define SCR_LOAD_R(reg, how, n) \ | ||
1187 | (0xe1000000 | how | (SCR_REG_OFS2(REG(reg))) | (n)) | ||
1188 | |||
1189 | #define SCR_STORE_R(reg, how, n) \ | ||
1190 | (0xe0000000 | how | (SCR_REG_OFS2(REG(reg))) | (n)) | ||
1191 | |||
1192 | #define SCR_LOAD_ABS(reg, n) SCR_LOAD_R(reg, SCR_NO_FLUSH2, n) | ||
1193 | #define SCR_LOAD_REL(reg, n) SCR_LOAD_R(reg, SCR_NO_FLUSH2|SCR_DSA_REL2, n) | ||
1194 | #define SCR_LOAD_ABS_F(reg, n) SCR_LOAD_R(reg, 0, n) | ||
1195 | #define SCR_LOAD_REL_F(reg, n) SCR_LOAD_R(reg, SCR_DSA_REL2, n) | ||
1196 | |||
1197 | #define SCR_STORE_ABS(reg, n) SCR_STORE_R(reg, SCR_NO_FLUSH2, n) | ||
1198 | #define SCR_STORE_REL(reg, n) SCR_STORE_R(reg, SCR_NO_FLUSH2|SCR_DSA_REL2,n) | ||
1199 | #define SCR_STORE_ABS_F(reg, n) SCR_STORE_R(reg, 0, n) | ||
1200 | #define SCR_STORE_REL_F(reg, n) SCR_STORE_R(reg, SCR_DSA_REL2, n) | ||
1201 | |||
1202 | |||
1203 | /*----------------------------------------------------------- | ||
1204 | ** | ||
1205 | ** Waiting for Disconnect or Reselect | ||
1206 | ** | ||
1207 | **----------------------------------------------------------- | ||
1208 | ** | ||
1209 | ** JUMP [ | IFTRUE/IFFALSE ( ... ) ] | ||
1210 | ** <<address>> | ||
1211 | ** | ||
1212 | ** JUMPR [ | IFTRUE/IFFALSE ( ... ) ] | ||
1213 | ** <<distance>> | ||
1214 | ** | ||
1215 | ** CALL [ | IFTRUE/IFFALSE ( ... ) ] | ||
1216 | ** <<address>> | ||
1217 | ** | ||
1218 | ** CALLR [ | IFTRUE/IFFALSE ( ... ) ] | ||
1219 | ** <<distance>> | ||
1220 | ** | ||
1221 | ** RETURN [ | IFTRUE/IFFALSE ( ... ) ] | ||
1222 | ** <<dummy>> | ||
1223 | ** | ||
1224 | ** INT [ | IFTRUE/IFFALSE ( ... ) ] | ||
1225 | ** <<ident>> | ||
1226 | ** | ||
1227 | ** INT_FLY [ | IFTRUE/IFFALSE ( ... ) ] | ||
1228 | ** <<ident>> | ||
1229 | ** | ||
1230 | ** Conditions: | ||
1231 | ** WHEN (phase) | ||
1232 | ** IF (phase) | ||
1233 | ** CARRYSET | ||
1234 | ** DATA (data, mask) | ||
1235 | ** | ||
1236 | **----------------------------------------------------------- | ||
1237 | */ | ||
1238 | |||
1239 | #define SCR_NO_OP 0x80000000 | ||
1240 | #define SCR_JUMP 0x80080000 | ||
1241 | #define SCR_JUMP64 0x80480000 | ||
1242 | #define SCR_JUMPR 0x80880000 | ||
1243 | #define SCR_CALL 0x88080000 | ||
1244 | #define SCR_CALLR 0x88880000 | ||
1245 | #define SCR_RETURN 0x90080000 | ||
1246 | #define SCR_INT 0x98080000 | ||
1247 | #define SCR_INT_FLY 0x98180000 | ||
1248 | |||
1249 | #define IFFALSE(arg) (0x00080000 | (arg)) | ||
1250 | #define IFTRUE(arg) (0x00000000 | (arg)) | ||
1251 | |||
1252 | #define WHEN(phase) (0x00030000 | (phase)) | ||
1253 | #define IF(phase) (0x00020000 | (phase)) | ||
1254 | |||
1255 | #define DATA(D) (0x00040000 | ((D) & 0xff)) | ||
1256 | #define MASK(D,M) (0x00040000 | (((M ^ 0xff) & 0xff) << 8ul)|((D) & 0xff)) | ||
1257 | |||
1258 | #define CARRYSET (0x00200000) | ||
1259 | |||
1260 | /*----------------------------------------------------------- | ||
1261 | ** | ||
1262 | ** SCSI constants. | ||
1263 | ** | ||
1264 | **----------------------------------------------------------- | ||
1265 | */ | ||
1266 | |||
1267 | /* | ||
1268 | ** Messages | ||
1269 | */ | ||
1270 | |||
1271 | #define M_COMPLETE COMMAND_COMPLETE | ||
1272 | #define M_EXTENDED EXTENDED_MESSAGE | ||
1273 | #define M_SAVE_DP SAVE_POINTERS | ||
1274 | #define M_RESTORE_DP RESTORE_POINTERS | ||
1275 | #define M_DISCONNECT DISCONNECT | ||
1276 | #define M_ID_ERROR INITIATOR_ERROR | ||
1277 | #define M_ABORT ABORT_TASK_SET | ||
1278 | #define M_REJECT MESSAGE_REJECT | ||
1279 | #define M_NOOP NOP | ||
1280 | #define M_PARITY MSG_PARITY_ERROR | ||
1281 | #define M_LCOMPLETE LINKED_CMD_COMPLETE | ||
1282 | #define M_FCOMPLETE LINKED_FLG_CMD_COMPLETE | ||
1283 | #define M_RESET TARGET_RESET | ||
1284 | #define M_ABORT_TAG ABORT_TASK | ||
1285 | #define M_CLEAR_QUEUE CLEAR_TASK_SET | ||
1286 | #define M_INIT_REC INITIATE_RECOVERY | ||
1287 | #define M_REL_REC RELEASE_RECOVERY | ||
1288 | #define M_TERMINATE (0x11) | ||
1289 | #define M_SIMPLE_TAG SIMPLE_QUEUE_TAG | ||
1290 | #define M_HEAD_TAG HEAD_OF_QUEUE_TAG | ||
1291 | #define M_ORDERED_TAG ORDERED_QUEUE_TAG | ||
1292 | #define M_IGN_RESIDUE IGNORE_WIDE_RESIDUE | ||
1293 | #define M_IDENTIFY (0x80) | ||
1294 | |||
1295 | #define M_X_MODIFY_DP EXTENDED_MODIFY_DATA_POINTER | ||
1296 | #define M_X_SYNC_REQ EXTENDED_SDTR | ||
1297 | #define M_X_WIDE_REQ EXTENDED_WDTR | ||
1298 | #define M_X_PPR_REQ EXTENDED_PPR | ||
1299 | |||
1300 | /* | ||
1301 | ** Status | ||
1302 | */ | ||
1303 | |||
1304 | #define S_GOOD (0x00) | ||
1305 | #define S_CHECK_COND (0x02) | ||
1306 | #define S_COND_MET (0x04) | ||
1307 | #define S_BUSY (0x08) | ||
1308 | #define S_INT (0x10) | ||
1309 | #define S_INT_COND_MET (0x14) | ||
1310 | #define S_CONFLICT (0x18) | ||
1311 | #define S_TERMINATED (0x20) | ||
1312 | #define S_QUEUE_FULL (0x28) | ||
1313 | #define S_ILLEGAL (0xff) | ||
1314 | #define S_SENSE (0x80) | ||
1315 | |||
1316 | /* | ||
1317 | * End of ncrreg from FreeBSD | ||
1318 | */ | ||
1319 | |||
1320 | #endif /* defined SYM53C8XX_DEFS_H */ | ||
@@ -313,7 +313,8 @@ int bio_get_nr_vecs(struct block_device *bdev) | |||
313 | } | 313 | } |
314 | 314 | ||
315 | static int __bio_add_page(request_queue_t *q, struct bio *bio, struct page | 315 | static int __bio_add_page(request_queue_t *q, struct bio *bio, struct page |
316 | *page, unsigned int len, unsigned int offset) | 316 | *page, unsigned int len, unsigned int offset, |
317 | unsigned short max_sectors) | ||
317 | { | 318 | { |
318 | int retried_segments = 0; | 319 | int retried_segments = 0; |
319 | struct bio_vec *bvec; | 320 | struct bio_vec *bvec; |
@@ -327,7 +328,7 @@ static int __bio_add_page(request_queue_t *q, struct bio *bio, struct page | |||
327 | if (bio->bi_vcnt >= bio->bi_max_vecs) | 328 | if (bio->bi_vcnt >= bio->bi_max_vecs) |
328 | return 0; | 329 | return 0; |
329 | 330 | ||
330 | if (((bio->bi_size + len) >> 9) > q->max_sectors) | 331 | if (((bio->bi_size + len) >> 9) > max_sectors) |
331 | return 0; | 332 | return 0; |
332 | 333 | ||
333 | /* | 334 | /* |
@@ -386,6 +387,25 @@ static int __bio_add_page(request_queue_t *q, struct bio *bio, struct page | |||
386 | } | 387 | } |
387 | 388 | ||
388 | /** | 389 | /** |
390 | * bio_add_pc_page - attempt to add page to bio | ||
391 | * @bio: destination bio | ||
392 | * @page: page to add | ||
393 | * @len: vec entry length | ||
394 | * @offset: vec entry offset | ||
395 | * | ||
396 | * Attempt to add a page to the bio_vec maplist. This can fail for a | ||
397 | * number of reasons, such as the bio being full or target block | ||
398 | * device limitations. The target block device must allow bio's | ||
399 | * smaller than PAGE_SIZE, so it is always possible to add a single | ||
400 | * page to an empty bio. This should only be used by REQ_PC bios. | ||
401 | */ | ||
402 | int bio_add_pc_page(request_queue_t *q, struct bio *bio, struct page *page, | ||
403 | unsigned int len, unsigned int offset) | ||
404 | { | ||
405 | return __bio_add_page(q, bio, page, len, offset, q->max_hw_sectors); | ||
406 | } | ||
407 | |||
408 | /** | ||
389 | * bio_add_page - attempt to add page to bio | 409 | * bio_add_page - attempt to add page to bio |
390 | * @bio: destination bio | 410 | * @bio: destination bio |
391 | * @page: page to add | 411 | * @page: page to add |
@@ -401,8 +421,8 @@ static int __bio_add_page(request_queue_t *q, struct bio *bio, struct page | |||
401 | int bio_add_page(struct bio *bio, struct page *page, unsigned int len, | 421 | int bio_add_page(struct bio *bio, struct page *page, unsigned int len, |
402 | unsigned int offset) | 422 | unsigned int offset) |
403 | { | 423 | { |
404 | return __bio_add_page(bdev_get_queue(bio->bi_bdev), bio, page, | 424 | struct request_queue *q = bdev_get_queue(bio->bi_bdev); |
405 | len, offset); | 425 | return __bio_add_page(q, bio, page, len, offset, q->max_sectors); |
406 | } | 426 | } |
407 | 427 | ||
408 | struct bio_map_data { | 428 | struct bio_map_data { |
@@ -514,7 +534,7 @@ struct bio *bio_copy_user(request_queue_t *q, unsigned long uaddr, | |||
514 | break; | 534 | break; |
515 | } | 535 | } |
516 | 536 | ||
517 | if (__bio_add_page(q, bio, page, bytes, 0) < bytes) { | 537 | if (bio_add_pc_page(q, bio, page, bytes, 0) < bytes) { |
518 | ret = -EINVAL; | 538 | ret = -EINVAL; |
519 | break; | 539 | break; |
520 | } | 540 | } |
@@ -628,7 +648,8 @@ static struct bio *__bio_map_user_iov(request_queue_t *q, | |||
628 | /* | 648 | /* |
629 | * sorry... | 649 | * sorry... |
630 | */ | 650 | */ |
631 | if (__bio_add_page(q, bio, pages[j], bytes, offset) < bytes) | 651 | if (bio_add_pc_page(q, bio, pages[j], bytes, offset) < |
652 | bytes) | ||
632 | break; | 653 | break; |
633 | 654 | ||
634 | len -= bytes; | 655 | len -= bytes; |
@@ -801,8 +822,8 @@ static struct bio *__bio_map_kern(request_queue_t *q, void *data, | |||
801 | if (bytes > len) | 822 | if (bytes > len) |
802 | bytes = len; | 823 | bytes = len; |
803 | 824 | ||
804 | if (__bio_add_page(q, bio, virt_to_page(data), bytes, | 825 | if (bio_add_pc_page(q, bio, virt_to_page(data), bytes, |
805 | offset) < bytes) | 826 | offset) < bytes) |
806 | break; | 827 | break; |
807 | 828 | ||
808 | data += bytes; | 829 | data += bytes; |
@@ -1228,6 +1249,7 @@ EXPORT_SYMBOL(bio_clone); | |||
1228 | EXPORT_SYMBOL(bio_phys_segments); | 1249 | EXPORT_SYMBOL(bio_phys_segments); |
1229 | EXPORT_SYMBOL(bio_hw_segments); | 1250 | EXPORT_SYMBOL(bio_hw_segments); |
1230 | EXPORT_SYMBOL(bio_add_page); | 1251 | EXPORT_SYMBOL(bio_add_page); |
1252 | EXPORT_SYMBOL(bio_add_pc_page); | ||
1231 | EXPORT_SYMBOL(bio_get_nr_vecs); | 1253 | EXPORT_SYMBOL(bio_get_nr_vecs); |
1232 | EXPORT_SYMBOL(bio_map_user); | 1254 | EXPORT_SYMBOL(bio_map_user); |
1233 | EXPORT_SYMBOL(bio_unmap_user); | 1255 | EXPORT_SYMBOL(bio_unmap_user); |
diff --git a/include/linux/bio.h b/include/linux/bio.h index 685fd3720df5..b60ffe32cd21 100644 --- a/include/linux/bio.h +++ b/include/linux/bio.h | |||
@@ -292,6 +292,8 @@ extern struct bio *bio_clone(struct bio *, gfp_t); | |||
292 | extern void bio_init(struct bio *); | 292 | extern void bio_init(struct bio *); |
293 | 293 | ||
294 | extern int bio_add_page(struct bio *, struct page *, unsigned int,unsigned int); | 294 | extern int bio_add_page(struct bio *, struct page *, unsigned int,unsigned int); |
295 | extern int bio_add_pc_page(struct request_queue *, struct bio *, struct page *, | ||
296 | unsigned int, unsigned int); | ||
295 | extern int bio_get_nr_vecs(struct block_device *); | 297 | extern int bio_get_nr_vecs(struct block_device *); |
296 | extern struct bio *bio_map_user(struct request_queue *, struct block_device *, | 298 | extern struct bio *bio_map_user(struct request_queue *, struct block_device *, |
297 | unsigned long, unsigned int, int); | 299 | unsigned long, unsigned int, int); |
diff --git a/include/linux/blkdev.h b/include/linux/blkdev.h index a33a31e71bbc..a18500d196e1 100644 --- a/include/linux/blkdev.h +++ b/include/linux/blkdev.h | |||
@@ -184,6 +184,7 @@ struct request { | |||
184 | void *sense; | 184 | void *sense; |
185 | 185 | ||
186 | unsigned int timeout; | 186 | unsigned int timeout; |
187 | int retries; | ||
187 | 188 | ||
188 | /* | 189 | /* |
189 | * For Power Management requests | 190 | * For Power Management requests |
@@ -558,6 +559,7 @@ extern void blk_unregister_queue(struct gendisk *disk); | |||
558 | extern void register_disk(struct gendisk *dev); | 559 | extern void register_disk(struct gendisk *dev); |
559 | extern void generic_make_request(struct bio *bio); | 560 | extern void generic_make_request(struct bio *bio); |
560 | extern void blk_put_request(struct request *); | 561 | extern void blk_put_request(struct request *); |
562 | extern void __blk_put_request(request_queue_t *, struct request *); | ||
561 | extern void blk_end_sync_rq(struct request *rq); | 563 | extern void blk_end_sync_rq(struct request *rq); |
562 | extern void blk_attempt_remerge(request_queue_t *, struct request *); | 564 | extern void blk_attempt_remerge(request_queue_t *, struct request *); |
563 | extern struct request *blk_get_request(request_queue_t *, int, gfp_t); | 565 | extern struct request *blk_get_request(request_queue_t *, int, gfp_t); |
@@ -579,6 +581,10 @@ extern int blk_rq_map_kern(request_queue_t *, struct request *, void *, unsigned | |||
579 | extern int blk_rq_map_user_iov(request_queue_t *, struct request *, struct sg_iovec *, int); | 581 | extern int blk_rq_map_user_iov(request_queue_t *, struct request *, struct sg_iovec *, int); |
580 | extern int blk_execute_rq(request_queue_t *, struct gendisk *, | 582 | extern int blk_execute_rq(request_queue_t *, struct gendisk *, |
581 | struct request *, int); | 583 | struct request *, int); |
584 | extern void blk_execute_rq_nowait(request_queue_t *, struct gendisk *, | ||
585 | struct request *, int, | ||
586 | void (*done)(struct request *)); | ||
587 | |||
582 | static inline request_queue_t *bdev_get_queue(struct block_device *bdev) | 588 | static inline request_queue_t *bdev_get_queue(struct block_device *bdev) |
583 | { | 589 | { |
584 | return bdev->bd_disk->queue; | 590 | return bdev->bd_disk->queue; |
@@ -696,7 +702,8 @@ extern int blkdev_issue_flush(struct block_device *, sector_t *); | |||
696 | 702 | ||
697 | #define MAX_PHYS_SEGMENTS 128 | 703 | #define MAX_PHYS_SEGMENTS 128 |
698 | #define MAX_HW_SEGMENTS 128 | 704 | #define MAX_HW_SEGMENTS 128 |
699 | #define MAX_SECTORS 255 | 705 | #define SAFE_MAX_SECTORS 255 |
706 | #define BLK_DEF_MAX_SECTORS 1024 | ||
700 | 707 | ||
701 | #define MAX_SEGMENT_SIZE 65536 | 708 | #define MAX_SEGMENT_SIZE 65536 |
702 | 709 | ||
diff --git a/include/linux/pci_ids.h b/include/linux/pci_ids.h index 4db67b3b05cc..a17e171384ef 100644 --- a/include/linux/pci_ids.h +++ b/include/linux/pci_ids.h | |||
@@ -15,6 +15,7 @@ | |||
15 | #define PCI_CLASS_STORAGE_FLOPPY 0x0102 | 15 | #define PCI_CLASS_STORAGE_FLOPPY 0x0102 |
16 | #define PCI_CLASS_STORAGE_IPI 0x0103 | 16 | #define PCI_CLASS_STORAGE_IPI 0x0103 |
17 | #define PCI_CLASS_STORAGE_RAID 0x0104 | 17 | #define PCI_CLASS_STORAGE_RAID 0x0104 |
18 | #define PCI_CLASS_STORAGE_SAS 0x0107 | ||
18 | #define PCI_CLASS_STORAGE_OTHER 0x0180 | 19 | #define PCI_CLASS_STORAGE_OTHER 0x0180 |
19 | 20 | ||
20 | #define PCI_BASE_CLASS_NETWORK 0x02 | 21 | #define PCI_BASE_CLASS_NETWORK 0x02 |
diff --git a/include/scsi/scsi_cmnd.h b/include/scsi/scsi_cmnd.h index 20da282d4abb..41cfc29be899 100644 --- a/include/scsi/scsi_cmnd.h +++ b/include/scsi/scsi_cmnd.h | |||
@@ -151,6 +151,6 @@ extern struct scsi_cmnd *scsi_get_command(struct scsi_device *, gfp_t); | |||
151 | extern void scsi_put_command(struct scsi_cmnd *); | 151 | extern void scsi_put_command(struct scsi_cmnd *); |
152 | extern void scsi_io_completion(struct scsi_cmnd *, unsigned int, unsigned int); | 152 | extern void scsi_io_completion(struct scsi_cmnd *, unsigned int, unsigned int); |
153 | extern void scsi_finish_command(struct scsi_cmnd *cmd); | 153 | extern void scsi_finish_command(struct scsi_cmnd *cmd); |
154 | extern void scsi_setup_blk_pc_cmnd(struct scsi_cmnd *cmd, int retries); | 154 | extern void scsi_setup_blk_pc_cmnd(struct scsi_cmnd *cmd); |
155 | 155 | ||
156 | #endif /* _SCSI_SCSI_CMND_H */ | 156 | #endif /* _SCSI_SCSI_CMND_H */ |
diff --git a/include/scsi/scsi_dbg.h b/include/scsi/scsi_dbg.h index b090a11d7e1c..4d69dee66d4d 100644 --- a/include/scsi/scsi_dbg.h +++ b/include/scsi/scsi_dbg.h | |||
@@ -16,7 +16,6 @@ extern void __scsi_print_sense(const char *name, | |||
16 | extern void scsi_print_driverbyte(int); | 16 | extern void scsi_print_driverbyte(int); |
17 | extern void scsi_print_hostbyte(int); | 17 | extern void scsi_print_hostbyte(int); |
18 | extern void scsi_print_status(unsigned char); | 18 | extern void scsi_print_status(unsigned char); |
19 | extern int scsi_print_msg(const unsigned char *); | ||
20 | extern const char *scsi_sense_key_string(unsigned char); | 19 | extern const char *scsi_sense_key_string(unsigned char); |
21 | extern const char *scsi_extd_sense_format(unsigned char, unsigned char); | 20 | extern const char *scsi_extd_sense_format(unsigned char, unsigned char); |
22 | 21 | ||
diff --git a/include/scsi/scsi_device.h b/include/scsi/scsi_device.h index 85cfd88461c8..e94ca4d36035 100644 --- a/include/scsi/scsi_device.h +++ b/include/scsi/scsi_device.h | |||
@@ -79,9 +79,9 @@ struct scsi_device { | |||
79 | char inq_periph_qual; /* PQ from INQUIRY data */ | 79 | char inq_periph_qual; /* PQ from INQUIRY data */ |
80 | unsigned char inquiry_len; /* valid bytes in 'inquiry' */ | 80 | unsigned char inquiry_len; /* valid bytes in 'inquiry' */ |
81 | unsigned char * inquiry; /* INQUIRY response data */ | 81 | unsigned char * inquiry; /* INQUIRY response data */ |
82 | char * vendor; /* [back_compat] point into 'inquiry' ... */ | 82 | const char * vendor; /* [back_compat] point into 'inquiry' ... */ |
83 | char * model; /* ... after scan; point to static string */ | 83 | const char * model; /* ... after scan; point to static string */ |
84 | char * rev; /* ... "nullnullnullnull" before scan */ | 84 | const char * rev; /* ... "nullnullnullnull" before scan */ |
85 | unsigned char current_tag; /* current tag */ | 85 | unsigned char current_tag; /* current tag */ |
86 | struct scsi_target *sdev_target; /* used only for single_lun */ | 86 | struct scsi_target *sdev_target; /* used only for single_lun */ |
87 | 87 | ||
@@ -274,6 +274,12 @@ extern int scsi_execute(struct scsi_device *sdev, const unsigned char *cmd, | |||
274 | extern int scsi_execute_req(struct scsi_device *sdev, const unsigned char *cmd, | 274 | extern int scsi_execute_req(struct scsi_device *sdev, const unsigned char *cmd, |
275 | int data_direction, void *buffer, unsigned bufflen, | 275 | int data_direction, void *buffer, unsigned bufflen, |
276 | struct scsi_sense_hdr *, int timeout, int retries); | 276 | struct scsi_sense_hdr *, int timeout, int retries); |
277 | extern int scsi_execute_async(struct scsi_device *sdev, | ||
278 | const unsigned char *cmd, int data_direction, | ||
279 | void *buffer, unsigned bufflen, int use_sg, | ||
280 | int timeout, int retries, void *privdata, | ||
281 | void (*done)(void *, char *, int, int), | ||
282 | gfp_t gfp); | ||
277 | 283 | ||
278 | static inline unsigned int sdev_channel(struct scsi_device *sdev) | 284 | static inline unsigned int sdev_channel(struct scsi_device *sdev) |
279 | { | 285 | { |
diff --git a/include/scsi/scsi_transport_spi.h b/include/scsi/scsi_transport_spi.h index 6bdc4afb2483..54a89611e9c5 100644 --- a/include/scsi/scsi_transport_spi.h +++ b/include/scsi/scsi_transport_spi.h | |||
@@ -24,6 +24,9 @@ | |||
24 | #include <linux/transport_class.h> | 24 | #include <linux/transport_class.h> |
25 | 25 | ||
26 | struct scsi_transport_template; | 26 | struct scsi_transport_template; |
27 | struct scsi_target; | ||
28 | struct scsi_device; | ||
29 | struct Scsi_Host; | ||
27 | 30 | ||
28 | struct spi_transport_attrs { | 31 | struct spi_transport_attrs { |
29 | int period; /* value in the PPR/SDTR command */ | 32 | int period; /* value in the PPR/SDTR command */ |
@@ -143,5 +146,6 @@ void spi_release_transport(struct scsi_transport_template *); | |||
143 | void spi_schedule_dv_device(struct scsi_device *); | 146 | void spi_schedule_dv_device(struct scsi_device *); |
144 | void spi_dv_device(struct scsi_device *); | 147 | void spi_dv_device(struct scsi_device *); |
145 | void spi_display_xfer_agreement(struct scsi_target *); | 148 | void spi_display_xfer_agreement(struct scsi_target *); |
149 | int spi_print_msg(const unsigned char *); | ||
146 | 150 | ||
147 | #endif /* SCSI_TRANSPORT_SPI_H */ | 151 | #endif /* SCSI_TRANSPORT_SPI_H */ |