diff options
Diffstat (limited to 'fs')
194 files changed, 4878 insertions, 2835 deletions
diff --git a/fs/Kconfig b/fs/Kconfig index 815d201d8600..d8062745716a 100644 --- a/fs/Kconfig +++ b/fs/Kconfig | |||
@@ -534,6 +534,24 @@ config QUOTA | |||
534 | with the quota tools. Probably the quota support is only useful for | 534 | with the quota tools. Probably the quota support is only useful for |
535 | multi user systems. If unsure, say N. | 535 | multi user systems. If unsure, say N. |
536 | 536 | ||
537 | config QUOTA_NETLINK_INTERFACE | ||
538 | bool "Report quota messages through netlink interface" | ||
539 | depends on QUOTA && NET | ||
540 | help | ||
541 | If you say Y here, quota warnings (about exceeding softlimit, reaching | ||
542 | hardlimit, etc.) will be reported through netlink interface. If unsure, | ||
543 | say Y. | ||
544 | |||
545 | config PRINT_QUOTA_WARNING | ||
546 | bool "Print quota warnings to console (OBSOLETE)" | ||
547 | depends on QUOTA | ||
548 | default y | ||
549 | help | ||
550 | If you say Y here, quota warnings (about exceeding softlimit, reaching | ||
551 | hardlimit, etc.) will be printed to the process' controlling terminal. | ||
552 | Note that this behavior is currently deprecated and may go away in | ||
553 | future. Please use notification via netlink socket instead. | ||
554 | |||
537 | config QFMT_V1 | 555 | config QFMT_V1 |
538 | tristate "Old quota format support" | 556 | tristate "Old quota format support" |
539 | depends on QUOTA | 557 | depends on QUOTA |
@@ -555,7 +573,7 @@ config QUOTACTL | |||
555 | default y | 573 | default y |
556 | 574 | ||
557 | config DNOTIFY | 575 | config DNOTIFY |
558 | bool "Dnotify support" if EMBEDDED | 576 | bool "Dnotify support" |
559 | default y | 577 | default y |
560 | help | 578 | help |
561 | Dnotify is a directory-based per-fd file change notification system | 579 | Dnotify is a directory-based per-fd file change notification system |
@@ -563,7 +581,7 @@ config DNOTIFY | |||
563 | superior alternatives, but some applications may still rely on | 581 | superior alternatives, but some applications may still rely on |
564 | dnotify. | 582 | dnotify. |
565 | 583 | ||
566 | Because of this, if unsure, say Y. | 584 | If unsure, say Y. |
567 | 585 | ||
568 | config AUTOFS_FS | 586 | config AUTOFS_FS |
569 | tristate "Kernel automounter support" | 587 | tristate "Kernel automounter support" |
@@ -999,20 +1017,6 @@ config HUGETLBFS | |||
999 | config HUGETLB_PAGE | 1017 | config HUGETLB_PAGE |
1000 | def_bool HUGETLBFS | 1018 | def_bool HUGETLBFS |
1001 | 1019 | ||
1002 | config RAMFS | ||
1003 | bool | ||
1004 | default y | ||
1005 | ---help--- | ||
1006 | Ramfs is a file system which keeps all files in RAM. It allows | ||
1007 | read and write access. | ||
1008 | |||
1009 | It is more of an programming example than a useable file system. If | ||
1010 | you need a file system which lives in RAM with limit checking use | ||
1011 | tmpfs. | ||
1012 | |||
1013 | To compile this as a module, choose M here: the module will be called | ||
1014 | ramfs. | ||
1015 | |||
1016 | config CONFIGFS_FS | 1020 | config CONFIGFS_FS |
1017 | tristate "Userspace-driven configuration filesystem (EXPERIMENTAL)" | 1021 | tristate "Userspace-driven configuration filesystem (EXPERIMENTAL)" |
1018 | depends on SYSFS && EXPERIMENTAL | 1022 | depends on SYSFS && EXPERIMENTAL |
@@ -1543,8 +1547,20 @@ config UFS_DEBUG | |||
1543 | 1547 | ||
1544 | endmenu | 1548 | endmenu |
1545 | 1549 | ||
1546 | menu "Network File Systems" | 1550 | menuconfig NETWORK_FILESYSTEMS |
1551 | bool "Network File Systems" | ||
1552 | default y | ||
1547 | depends on NET | 1553 | depends on NET |
1554 | ---help--- | ||
1555 | Say Y here to get to see options for network filesystems and | ||
1556 | filesystem-related networking code, such as NFS daemon and | ||
1557 | RPCSEC security modules. | ||
1558 | This option alone does not add any kernel code. | ||
1559 | |||
1560 | If you say N, all options in this submenu will be skipped and | ||
1561 | disabled; if unsure, say Y here. | ||
1562 | |||
1563 | if NETWORK_FILESYSTEMS | ||
1548 | 1564 | ||
1549 | config NFS_FS | 1565 | config NFS_FS |
1550 | tristate "NFS file system support" | 1566 | tristate "NFS file system support" |
@@ -2090,7 +2106,7 @@ config 9P_FS | |||
2090 | 2106 | ||
2091 | If unsure, say N. | 2107 | If unsure, say N. |
2092 | 2108 | ||
2093 | endmenu | 2109 | endif # NETWORK_FILESYSTEMS |
2094 | 2110 | ||
2095 | if BLOCK | 2111 | if BLOCK |
2096 | menu "Partition Types" | 2112 | menu "Partition Types" |
diff --git a/fs/Makefile b/fs/Makefile index 720c29d57a62..500cf15cdb4b 100644 --- a/fs/Makefile +++ b/fs/Makefile | |||
@@ -72,7 +72,7 @@ obj-$(CONFIG_JBD) += jbd/ | |||
72 | obj-$(CONFIG_JBD2) += jbd2/ | 72 | obj-$(CONFIG_JBD2) += jbd2/ |
73 | obj-$(CONFIG_EXT2_FS) += ext2/ | 73 | obj-$(CONFIG_EXT2_FS) += ext2/ |
74 | obj-$(CONFIG_CRAMFS) += cramfs/ | 74 | obj-$(CONFIG_CRAMFS) += cramfs/ |
75 | obj-$(CONFIG_RAMFS) += ramfs/ | 75 | obj-y += ramfs/ |
76 | obj-$(CONFIG_HUGETLBFS) += hugetlbfs/ | 76 | obj-$(CONFIG_HUGETLBFS) += hugetlbfs/ |
77 | obj-$(CONFIG_CODA_FS) += coda/ | 77 | obj-$(CONFIG_CODA_FS) += coda/ |
78 | obj-$(CONFIG_MINIX_FS) += minix/ | 78 | obj-$(CONFIG_MINIX_FS) += minix/ |
diff --git a/fs/adfs/super.c b/fs/adfs/super.c index 1c9fd3029496..b36695ae5c2e 100644 --- a/fs/adfs/super.c +++ b/fs/adfs/super.c | |||
@@ -228,7 +228,7 @@ static void adfs_destroy_inode(struct inode *inode) | |||
228 | kmem_cache_free(adfs_inode_cachep, ADFS_I(inode)); | 228 | kmem_cache_free(adfs_inode_cachep, ADFS_I(inode)); |
229 | } | 229 | } |
230 | 230 | ||
231 | static void init_once(void * foo, struct kmem_cache * cachep, unsigned long flags) | 231 | static void init_once(struct kmem_cache *cachep, void *foo) |
232 | { | 232 | { |
233 | struct adfs_inode_info *ei = (struct adfs_inode_info *) foo; | 233 | struct adfs_inode_info *ei = (struct adfs_inode_info *) foo; |
234 | 234 | ||
diff --git a/fs/affs/bitmap.c b/fs/affs/bitmap.c index b330009fe42d..c4a5ad09ddf2 100644 --- a/fs/affs/bitmap.c +++ b/fs/affs/bitmap.c | |||
@@ -11,7 +11,7 @@ | |||
11 | 11 | ||
12 | /* This is, of course, shamelessly stolen from fs/minix */ | 12 | /* This is, of course, shamelessly stolen from fs/minix */ |
13 | 13 | ||
14 | static int nibblemap[] = { 0,1,1,2,1,2,2,3,1,2,2,3,2,3,3,4 }; | 14 | static const int nibblemap[] = { 0,1,1,2,1,2,2,3,1,2,2,3,2,3,3,4 }; |
15 | 15 | ||
16 | static u32 | 16 | static u32 |
17 | affs_count_free_bits(u32 blocksize, const void *data) | 17 | affs_count_free_bits(u32 blocksize, const void *data) |
diff --git a/fs/affs/super.c b/fs/affs/super.c index c80191ae2059..b53e5d0ec65c 100644 --- a/fs/affs/super.c +++ b/fs/affs/super.c | |||
@@ -84,7 +84,7 @@ static void affs_destroy_inode(struct inode *inode) | |||
84 | kmem_cache_free(affs_inode_cachep, AFFS_I(inode)); | 84 | kmem_cache_free(affs_inode_cachep, AFFS_I(inode)); |
85 | } | 85 | } |
86 | 86 | ||
87 | static void init_once(void * foo, struct kmem_cache * cachep, unsigned long flags) | 87 | static void init_once(struct kmem_cache *cachep, void *foo) |
88 | { | 88 | { |
89 | struct affs_inode_info *ei = (struct affs_inode_info *) foo; | 89 | struct affs_inode_info *ei = (struct affs_inode_info *) foo; |
90 | 90 | ||
diff --git a/fs/afs/callback.c b/fs/afs/callback.c index b8243945818d..a78d5b236bb1 100644 --- a/fs/afs/callback.c +++ b/fs/afs/callback.c | |||
@@ -20,7 +20,9 @@ | |||
20 | #include <linux/sched.h> | 20 | #include <linux/sched.h> |
21 | #include "internal.h" | 21 | #include "internal.h" |
22 | 22 | ||
23 | #if 0 | ||
23 | unsigned afs_vnode_update_timeout = 10; | 24 | unsigned afs_vnode_update_timeout = 10; |
25 | #endif /* 0 */ | ||
24 | 26 | ||
25 | #define afs_breakring_space(server) \ | 27 | #define afs_breakring_space(server) \ |
26 | CIRC_SPACE((server)->cb_break_head, (server)->cb_break_tail, \ | 28 | CIRC_SPACE((server)->cb_break_head, (server)->cb_break_tail, \ |
diff --git a/fs/afs/cell.c b/fs/afs/cell.c index 175a567db78c..970d38f30565 100644 --- a/fs/afs/cell.c +++ b/fs/afs/cell.c | |||
@@ -33,6 +33,7 @@ static struct afs_cell *afs_cell_root; | |||
33 | static struct afs_cell *afs_cell_alloc(const char *name, char *vllist) | 33 | static struct afs_cell *afs_cell_alloc(const char *name, char *vllist) |
34 | { | 34 | { |
35 | struct afs_cell *cell; | 35 | struct afs_cell *cell; |
36 | struct key *key; | ||
36 | size_t namelen; | 37 | size_t namelen; |
37 | char keyname[4 + AFS_MAXCELLNAME + 1], *cp, *dp, *next; | 38 | char keyname[4 + AFS_MAXCELLNAME + 1], *cp, *dp, *next; |
38 | int ret; | 39 | int ret; |
@@ -89,20 +90,14 @@ static struct afs_cell *afs_cell_alloc(const char *name, char *vllist) | |||
89 | do { | 90 | do { |
90 | *dp++ = toupper(*cp); | 91 | *dp++ = toupper(*cp); |
91 | } while (*cp++); | 92 | } while (*cp++); |
92 | cell->anonymous_key = key_alloc(&key_type_rxrpc, keyname, 0, 0, current, | ||
93 | KEY_POS_SEARCH, KEY_ALLOC_NOT_IN_QUOTA); | ||
94 | if (IS_ERR(cell->anonymous_key)) { | ||
95 | _debug("no key"); | ||
96 | ret = PTR_ERR(cell->anonymous_key); | ||
97 | goto error; | ||
98 | } | ||
99 | 93 | ||
100 | ret = key_instantiate_and_link(cell->anonymous_key, NULL, 0, | 94 | key = rxrpc_get_null_key(keyname); |
101 | NULL, NULL); | 95 | if (IS_ERR(key)) { |
102 | if (ret < 0) { | 96 | _debug("no key"); |
103 | _debug("instantiate failed"); | 97 | ret = PTR_ERR(key); |
104 | goto error; | 98 | goto error; |
105 | } | 99 | } |
100 | cell->anonymous_key = key; | ||
106 | 101 | ||
107 | _debug("anon key %p{%x}", | 102 | _debug("anon key %p{%x}", |
108 | cell->anonymous_key, key_serial(cell->anonymous_key)); | 103 | cell->anonymous_key, key_serial(cell->anonymous_key)); |
@@ -265,6 +260,7 @@ struct afs_cell *afs_cell_lookup(const char *name, unsigned namesz) | |||
265 | return cell; | 260 | return cell; |
266 | } | 261 | } |
267 | 262 | ||
263 | #if 0 | ||
268 | /* | 264 | /* |
269 | * try and get a cell record | 265 | * try and get a cell record |
270 | */ | 266 | */ |
@@ -280,6 +276,7 @@ struct afs_cell *afs_get_cell_maybe(struct afs_cell *cell) | |||
280 | write_unlock(&afs_cells_lock); | 276 | write_unlock(&afs_cells_lock); |
281 | return cell; | 277 | return cell; |
282 | } | 278 | } |
279 | #endif /* 0 */ | ||
283 | 280 | ||
284 | /* | 281 | /* |
285 | * destroy a cell record | 282 | * destroy a cell record |
diff --git a/fs/afs/cmservice.c b/fs/afs/cmservice.c index d5b2ad6575bc..47b71c8947f9 100644 --- a/fs/afs/cmservice.c +++ b/fs/afs/cmservice.c | |||
@@ -16,7 +16,9 @@ | |||
16 | #include "internal.h" | 16 | #include "internal.h" |
17 | #include "afs_cm.h" | 17 | #include "afs_cm.h" |
18 | 18 | ||
19 | #if 0 | ||
19 | struct workqueue_struct *afs_cm_workqueue; | 20 | struct workqueue_struct *afs_cm_workqueue; |
21 | #endif /* 0 */ | ||
20 | 22 | ||
21 | static int afs_deliver_cb_init_call_back_state(struct afs_call *, | 23 | static int afs_deliver_cb_init_call_back_state(struct afs_call *, |
22 | struct sk_buff *, bool); | 24 | struct sk_buff *, bool); |
diff --git a/fs/afs/internal.h b/fs/afs/internal.h index 6306438f331f..5ca3625cd39e 100644 --- a/fs/afs/internal.h +++ b/fs/afs/internal.h | |||
@@ -570,7 +570,6 @@ extern int afs_abort_to_error(u32); | |||
570 | */ | 570 | */ |
571 | extern const struct inode_operations afs_mntpt_inode_operations; | 571 | extern const struct inode_operations afs_mntpt_inode_operations; |
572 | extern const struct file_operations afs_mntpt_file_operations; | 572 | extern const struct file_operations afs_mntpt_file_operations; |
573 | extern unsigned long afs_mntpt_expiry_timeout; | ||
574 | 573 | ||
575 | extern int afs_mntpt_check_symlink(struct afs_vnode *, struct key *); | 574 | extern int afs_mntpt_check_symlink(struct afs_vnode *, struct key *); |
576 | extern void afs_mntpt_kill_timer(void); | 575 | extern void afs_mntpt_kill_timer(void); |
diff --git a/fs/afs/mntpt.c b/fs/afs/mntpt.c index 6f8c96fb29eb..5ce43b63c60e 100644 --- a/fs/afs/mntpt.c +++ b/fs/afs/mntpt.c | |||
@@ -42,7 +42,7 @@ const struct inode_operations afs_mntpt_inode_operations = { | |||
42 | static LIST_HEAD(afs_vfsmounts); | 42 | static LIST_HEAD(afs_vfsmounts); |
43 | static DECLARE_DELAYED_WORK(afs_mntpt_expiry_timer, afs_mntpt_expiry_timed_out); | 43 | static DECLARE_DELAYED_WORK(afs_mntpt_expiry_timer, afs_mntpt_expiry_timed_out); |
44 | 44 | ||
45 | unsigned long afs_mntpt_expiry_timeout = 10 * 60; | 45 | static unsigned long afs_mntpt_expiry_timeout = 10 * 60; |
46 | 46 | ||
47 | /* | 47 | /* |
48 | * check a symbolic link to see whether it actually encodes a mountpoint | 48 | * check a symbolic link to see whether it actually encodes a mountpoint |
diff --git a/fs/afs/proc.c b/fs/afs/proc.c index 6edb56683b9a..846c7615ac9e 100644 --- a/fs/afs/proc.c +++ b/fs/afs/proc.c | |||
@@ -513,7 +513,7 @@ static void afs_proc_cell_volumes_stop(struct seq_file *p, void *v) | |||
513 | up_read(&cell->vl_sem); | 513 | up_read(&cell->vl_sem); |
514 | } | 514 | } |
515 | 515 | ||
516 | const char afs_vlocation_states[][4] = { | 516 | static const char afs_vlocation_states[][4] = { |
517 | [AFS_VL_NEW] = "New", | 517 | [AFS_VL_NEW] = "New", |
518 | [AFS_VL_CREATING] = "Crt", | 518 | [AFS_VL_CREATING] = "Crt", |
519 | [AFS_VL_VALID] = "Val", | 519 | [AFS_VL_VALID] = "Val", |
diff --git a/fs/afs/rxrpc.c b/fs/afs/rxrpc.c index 8ccee9ee1d9d..bde3f19c0995 100644 --- a/fs/afs/rxrpc.c +++ b/fs/afs/rxrpc.c | |||
@@ -239,7 +239,8 @@ void afs_flat_call_destructor(struct afs_call *call) | |||
239 | /* | 239 | /* |
240 | * attach the data from a bunch of pages on an inode to a call | 240 | * attach the data from a bunch of pages on an inode to a call |
241 | */ | 241 | */ |
242 | int afs_send_pages(struct afs_call *call, struct msghdr *msg, struct kvec *iov) | 242 | static int afs_send_pages(struct afs_call *call, struct msghdr *msg, |
243 | struct kvec *iov) | ||
243 | { | 244 | { |
244 | struct page *pages[8]; | 245 | struct page *pages[8]; |
245 | unsigned count, n, loop, offset, to; | 246 | unsigned count, n, loop, offset, to; |
diff --git a/fs/afs/server.c b/fs/afs/server.c index 231ae4150279..28f2451419e1 100644 --- a/fs/afs/server.c +++ b/fs/afs/server.c | |||
@@ -13,7 +13,7 @@ | |||
13 | #include <linux/slab.h> | 13 | #include <linux/slab.h> |
14 | #include "internal.h" | 14 | #include "internal.h" |
15 | 15 | ||
16 | unsigned afs_server_timeout = 10; /* server timeout in seconds */ | 16 | static unsigned afs_server_timeout = 10; /* server timeout in seconds */ |
17 | 17 | ||
18 | static void afs_reap_server(struct work_struct *); | 18 | static void afs_reap_server(struct work_struct *); |
19 | 19 | ||
diff --git a/fs/afs/super.c b/fs/afs/super.c index b8808b40f82b..4b2558c42213 100644 --- a/fs/afs/super.c +++ b/fs/afs/super.c | |||
@@ -27,8 +27,7 @@ | |||
27 | 27 | ||
28 | #define AFS_FS_MAGIC 0x6B414653 /* 'kAFS' */ | 28 | #define AFS_FS_MAGIC 0x6B414653 /* 'kAFS' */ |
29 | 29 | ||
30 | static void afs_i_init_once(void *foo, struct kmem_cache *cachep, | 30 | static void afs_i_init_once(struct kmem_cache *cachep, void *foo); |
31 | unsigned long flags); | ||
32 | static int afs_get_sb(struct file_system_type *fs_type, | 31 | static int afs_get_sb(struct file_system_type *fs_type, |
33 | int flags, const char *dev_name, | 32 | int flags, const char *dev_name, |
34 | void *data, struct vfsmount *mnt); | 33 | void *data, struct vfsmount *mnt); |
@@ -446,8 +445,7 @@ static void afs_put_super(struct super_block *sb) | |||
446 | /* | 445 | /* |
447 | * initialise an inode cache slab element prior to any use | 446 | * initialise an inode cache slab element prior to any use |
448 | */ | 447 | */ |
449 | static void afs_i_init_once(void *_vnode, struct kmem_cache *cachep, | 448 | static void afs_i_init_once(struct kmem_cache *cachep, void *_vnode) |
450 | unsigned long flags) | ||
451 | { | 449 | { |
452 | struct afs_vnode *vnode = _vnode; | 450 | struct afs_vnode *vnode = _vnode; |
453 | 451 | ||
diff --git a/fs/afs/vlocation.c b/fs/afs/vlocation.c index 09e3ad0fc7cc..7b4bbe48112d 100644 --- a/fs/afs/vlocation.c +++ b/fs/afs/vlocation.c | |||
@@ -15,8 +15,8 @@ | |||
15 | #include <linux/sched.h> | 15 | #include <linux/sched.h> |
16 | #include "internal.h" | 16 | #include "internal.h" |
17 | 17 | ||
18 | unsigned afs_vlocation_timeout = 10; /* volume location timeout in seconds */ | 18 | static unsigned afs_vlocation_timeout = 10; /* volume location timeout in seconds */ |
19 | unsigned afs_vlocation_update_timeout = 10 * 60; | 19 | static unsigned afs_vlocation_update_timeout = 10 * 60; |
20 | 20 | ||
21 | static void afs_vlocation_reaper(struct work_struct *); | 21 | static void afs_vlocation_reaper(struct work_struct *); |
22 | static void afs_vlocation_updater(struct work_struct *); | 22 | static void afs_vlocation_updater(struct work_struct *); |
@@ -335,7 +335,7 @@ static int afs_vlocation_fill_in_record(struct afs_vlocation *vl, | |||
335 | /* | 335 | /* |
336 | * queue a vlocation record for updates | 336 | * queue a vlocation record for updates |
337 | */ | 337 | */ |
338 | void afs_vlocation_queue_for_updates(struct afs_vlocation *vl) | 338 | static void afs_vlocation_queue_for_updates(struct afs_vlocation *vl) |
339 | { | 339 | { |
340 | struct afs_vlocation *xvl; | 340 | struct afs_vlocation *xvl; |
341 | 341 | ||
diff --git a/fs/afs/write.c b/fs/afs/write.c index a03b92a0fe1d..9a849ad3c489 100644 --- a/fs/afs/write.c +++ b/fs/afs/write.c | |||
@@ -8,7 +8,7 @@ | |||
8 | * as published by the Free Software Foundation; either version | 8 | * as published by the Free Software Foundation; either version |
9 | * 2 of the License, or (at your option) any later version. | 9 | * 2 of the License, or (at your option) any later version. |
10 | */ | 10 | */ |
11 | 11 | #include <linux/backing-dev.h> | |
12 | #include <linux/slab.h> | 12 | #include <linux/slab.h> |
13 | #include <linux/fs.h> | 13 | #include <linux/fs.h> |
14 | #include <linux/pagemap.h> | 14 | #include <linux/pagemap.h> |
@@ -510,9 +510,9 @@ int afs_writepage(struct page *page, struct writeback_control *wbc) | |||
510 | /* | 510 | /* |
511 | * write a region of pages back to the server | 511 | * write a region of pages back to the server |
512 | */ | 512 | */ |
513 | int afs_writepages_region(struct address_space *mapping, | 513 | static int afs_writepages_region(struct address_space *mapping, |
514 | struct writeback_control *wbc, | 514 | struct writeback_control *wbc, |
515 | pgoff_t index, pgoff_t end, pgoff_t *_next) | 515 | pgoff_t index, pgoff_t end, pgoff_t *_next) |
516 | { | 516 | { |
517 | struct backing_dev_info *bdi = mapping->backing_dev_info; | 517 | struct backing_dev_info *bdi = mapping->backing_dev_info; |
518 | struct afs_writeback *wb; | 518 | struct afs_writeback *wb; |
@@ -303,7 +303,7 @@ static void wait_for_all_aios(struct kioctx *ctx) | |||
303 | set_task_state(tsk, TASK_UNINTERRUPTIBLE); | 303 | set_task_state(tsk, TASK_UNINTERRUPTIBLE); |
304 | while (ctx->reqs_active) { | 304 | while (ctx->reqs_active) { |
305 | spin_unlock_irq(&ctx->ctx_lock); | 305 | spin_unlock_irq(&ctx->ctx_lock); |
306 | schedule(); | 306 | io_schedule(); |
307 | set_task_state(tsk, TASK_UNINTERRUPTIBLE); | 307 | set_task_state(tsk, TASK_UNINTERRUPTIBLE); |
308 | spin_lock_irq(&ctx->ctx_lock); | 308 | spin_lock_irq(&ctx->ctx_lock); |
309 | } | 309 | } |
@@ -323,7 +323,7 @@ ssize_t fastcall wait_on_sync_kiocb(struct kiocb *iocb) | |||
323 | set_current_state(TASK_UNINTERRUPTIBLE); | 323 | set_current_state(TASK_UNINTERRUPTIBLE); |
324 | if (!iocb->ki_users) | 324 | if (!iocb->ki_users) |
325 | break; | 325 | break; |
326 | schedule(); | 326 | io_schedule(); |
327 | } | 327 | } |
328 | __set_current_state(TASK_RUNNING); | 328 | __set_current_state(TASK_RUNNING); |
329 | return iocb->ki_user_data; | 329 | return iocb->ki_user_data; |
@@ -1170,7 +1170,7 @@ retry: | |||
1170 | ret = 0; | 1170 | ret = 0; |
1171 | if (to.timed_out) /* Only check after read evt */ | 1171 | if (to.timed_out) /* Only check after read evt */ |
1172 | break; | 1172 | break; |
1173 | schedule(); | 1173 | io_schedule(); |
1174 | if (signal_pending(tsk)) { | 1174 | if (signal_pending(tsk)) { |
1175 | ret = -EINTR; | 1175 | ret = -EINTR; |
1176 | break; | 1176 | break; |
diff --git a/fs/anon_inodes.c b/fs/anon_inodes.c index b4a75880f6fd..23321889d9b0 100644 --- a/fs/anon_inodes.c +++ b/fs/anon_inodes.c | |||
@@ -76,7 +76,6 @@ int anon_inode_getfd(int *pfd, struct inode **pinode, struct file **pfile, | |||
76 | { | 76 | { |
77 | struct qstr this; | 77 | struct qstr this; |
78 | struct dentry *dentry; | 78 | struct dentry *dentry; |
79 | struct inode *inode; | ||
80 | struct file *file; | 79 | struct file *file; |
81 | int error, fd; | 80 | int error, fd; |
82 | 81 | ||
@@ -86,15 +85,9 @@ int anon_inode_getfd(int *pfd, struct inode **pinode, struct file **pfile, | |||
86 | if (!file) | 85 | if (!file) |
87 | return -ENFILE; | 86 | return -ENFILE; |
88 | 87 | ||
89 | inode = igrab(anon_inode_inode); | ||
90 | if (IS_ERR(inode)) { | ||
91 | error = PTR_ERR(inode); | ||
92 | goto err_put_filp; | ||
93 | } | ||
94 | |||
95 | error = get_unused_fd(); | 88 | error = get_unused_fd(); |
96 | if (error < 0) | 89 | if (error < 0) |
97 | goto err_iput; | 90 | goto err_put_filp; |
98 | fd = error; | 91 | fd = error; |
99 | 92 | ||
100 | /* | 93 | /* |
@@ -108,14 +101,22 @@ int anon_inode_getfd(int *pfd, struct inode **pinode, struct file **pfile, | |||
108 | dentry = d_alloc(anon_inode_mnt->mnt_sb->s_root, &this); | 101 | dentry = d_alloc(anon_inode_mnt->mnt_sb->s_root, &this); |
109 | if (!dentry) | 102 | if (!dentry) |
110 | goto err_put_unused_fd; | 103 | goto err_put_unused_fd; |
104 | |||
105 | /* | ||
106 | * We know the anon_inode inode count is always greater than zero, | ||
107 | * so we can avoid doing an igrab() and we can use an open-coded | ||
108 | * atomic_inc(). | ||
109 | */ | ||
110 | atomic_inc(&anon_inode_inode->i_count); | ||
111 | |||
111 | dentry->d_op = &anon_inodefs_dentry_operations; | 112 | dentry->d_op = &anon_inodefs_dentry_operations; |
112 | /* Do not publish this dentry inside the global dentry hash table */ | 113 | /* Do not publish this dentry inside the global dentry hash table */ |
113 | dentry->d_flags &= ~DCACHE_UNHASHED; | 114 | dentry->d_flags &= ~DCACHE_UNHASHED; |
114 | d_instantiate(dentry, inode); | 115 | d_instantiate(dentry, anon_inode_inode); |
115 | 116 | ||
116 | file->f_path.mnt = mntget(anon_inode_mnt); | 117 | file->f_path.mnt = mntget(anon_inode_mnt); |
117 | file->f_path.dentry = dentry; | 118 | file->f_path.dentry = dentry; |
118 | file->f_mapping = inode->i_mapping; | 119 | file->f_mapping = anon_inode_inode->i_mapping; |
119 | 120 | ||
120 | file->f_pos = 0; | 121 | file->f_pos = 0; |
121 | file->f_flags = O_RDWR; | 122 | file->f_flags = O_RDWR; |
@@ -127,14 +128,12 @@ int anon_inode_getfd(int *pfd, struct inode **pinode, struct file **pfile, | |||
127 | fd_install(fd, file); | 128 | fd_install(fd, file); |
128 | 129 | ||
129 | *pfd = fd; | 130 | *pfd = fd; |
130 | *pinode = inode; | 131 | *pinode = anon_inode_inode; |
131 | *pfile = file; | 132 | *pfile = file; |
132 | return 0; | 133 | return 0; |
133 | 134 | ||
134 | err_put_unused_fd: | 135 | err_put_unused_fd: |
135 | put_unused_fd(fd); | 136 | put_unused_fd(fd); |
136 | err_iput: | ||
137 | iput(inode); | ||
138 | err_put_filp: | 137 | err_put_filp: |
139 | put_filp(file); | 138 | put_filp(file); |
140 | return error; | 139 | return error; |
@@ -116,6 +116,15 @@ int notify_change(struct dentry * dentry, struct iattr * attr) | |||
116 | attr->ia_atime = now; | 116 | attr->ia_atime = now; |
117 | if (!(ia_valid & ATTR_MTIME_SET)) | 117 | if (!(ia_valid & ATTR_MTIME_SET)) |
118 | attr->ia_mtime = now; | 118 | attr->ia_mtime = now; |
119 | if (ia_valid & ATTR_KILL_PRIV) { | ||
120 | attr->ia_valid &= ~ATTR_KILL_PRIV; | ||
121 | ia_valid &= ~ATTR_KILL_PRIV; | ||
122 | error = security_inode_need_killpriv(dentry); | ||
123 | if (error > 0) | ||
124 | error = security_inode_killpriv(dentry); | ||
125 | if (error) | ||
126 | return error; | ||
127 | } | ||
119 | if (ia_valid & ATTR_KILL_SUID) { | 128 | if (ia_valid & ATTR_KILL_SUID) { |
120 | attr->ia_valid &= ~ATTR_KILL_SUID; | 129 | attr->ia_valid &= ~ATTR_KILL_SUID; |
121 | if (mode & S_ISUID) { | 130 | if (mode & S_ISUID) { |
diff --git a/fs/autofs4/inode.c b/fs/autofs4/inode.c index 692364e8ffc3..cd81f0836671 100644 --- a/fs/autofs4/inode.c +++ b/fs/autofs4/inode.c | |||
@@ -312,13 +312,11 @@ int autofs4_fill_super(struct super_block *s, void *data, int silent) | |||
312 | struct autofs_sb_info *sbi; | 312 | struct autofs_sb_info *sbi; |
313 | struct autofs_info *ino; | 313 | struct autofs_info *ino; |
314 | 314 | ||
315 | sbi = kmalloc(sizeof(*sbi), GFP_KERNEL); | 315 | sbi = kzalloc(sizeof(*sbi), GFP_KERNEL); |
316 | if (!sbi) | 316 | if (!sbi) |
317 | goto fail_unlock; | 317 | goto fail_unlock; |
318 | DPRINTK("starting up, sbi = %p",sbi); | 318 | DPRINTK("starting up, sbi = %p",sbi); |
319 | 319 | ||
320 | memset(sbi, 0, sizeof(*sbi)); | ||
321 | |||
322 | s->s_fs_info = sbi; | 320 | s->s_fs_info = sbi; |
323 | sbi->magic = AUTOFS_SBI_MAGIC; | 321 | sbi->magic = AUTOFS_SBI_MAGIC; |
324 | sbi->pipefd = -1; | 322 | sbi->pipefd = -1; |
diff --git a/fs/befs/linuxvfs.c b/fs/befs/linuxvfs.c index a45141827681..b28a20e61b80 100644 --- a/fs/befs/linuxvfs.c +++ b/fs/befs/linuxvfs.c | |||
@@ -289,7 +289,7 @@ befs_destroy_inode(struct inode *inode) | |||
289 | kmem_cache_free(befs_inode_cachep, BEFS_I(inode)); | 289 | kmem_cache_free(befs_inode_cachep, BEFS_I(inode)); |
290 | } | 290 | } |
291 | 291 | ||
292 | static void init_once(void * foo, struct kmem_cache * cachep, unsigned long flags) | 292 | static void init_once(struct kmem_cache *cachep, void *foo) |
293 | { | 293 | { |
294 | struct befs_inode_info *bi = (struct befs_inode_info *) foo; | 294 | struct befs_inode_info *bi = (struct befs_inode_info *) foo; |
295 | 295 | ||
diff --git a/fs/bfs/inode.c b/fs/bfs/inode.c index f346eb14e86f..7bd9c2bbe6ee 100644 --- a/fs/bfs/inode.c +++ b/fs/bfs/inode.c | |||
@@ -244,7 +244,7 @@ static void bfs_destroy_inode(struct inode *inode) | |||
244 | kmem_cache_free(bfs_inode_cachep, BFS_I(inode)); | 244 | kmem_cache_free(bfs_inode_cachep, BFS_I(inode)); |
245 | } | 245 | } |
246 | 246 | ||
247 | static void init_once(void * foo, struct kmem_cache * cachep, unsigned long flags) | 247 | static void init_once(struct kmem_cache *cachep, void *foo) |
248 | { | 248 | { |
249 | struct bfs_inode_info *bi = foo; | 249 | struct bfs_inode_info *bi = foo; |
250 | 250 | ||
diff --git a/fs/binfmt_aout.c b/fs/binfmt_aout.c index 813a887cd2b3..e176d195e7e5 100644 --- a/fs/binfmt_aout.c +++ b/fs/binfmt_aout.c | |||
@@ -31,7 +31,7 @@ | |||
31 | 31 | ||
32 | static int load_aout_binary(struct linux_binprm *, struct pt_regs * regs); | 32 | static int load_aout_binary(struct linux_binprm *, struct pt_regs * regs); |
33 | static int load_aout_library(struct file*); | 33 | static int load_aout_library(struct file*); |
34 | static int aout_core_dump(long signr, struct pt_regs * regs, struct file *file); | 34 | static int aout_core_dump(long signr, struct pt_regs *regs, struct file *file, unsigned long limit); |
35 | 35 | ||
36 | static struct linux_binfmt aout_format = { | 36 | static struct linux_binfmt aout_format = { |
37 | .module = THIS_MODULE, | 37 | .module = THIS_MODULE, |
@@ -88,7 +88,7 @@ if (file->f_op->llseek) { \ | |||
88 | * dumping of the process results in another error.. | 88 | * dumping of the process results in another error.. |
89 | */ | 89 | */ |
90 | 90 | ||
91 | static int aout_core_dump(long signr, struct pt_regs * regs, struct file *file) | 91 | static int aout_core_dump(long signr, struct pt_regs *regs, struct file *file, unsigned long limit) |
92 | { | 92 | { |
93 | mm_segment_t fs; | 93 | mm_segment_t fs; |
94 | int has_dumped = 0; | 94 | int has_dumped = 0; |
@@ -123,23 +123,19 @@ static int aout_core_dump(long signr, struct pt_regs * regs, struct file *file) | |||
123 | /* If the size of the dump file exceeds the rlimit, then see what would happen | 123 | /* If the size of the dump file exceeds the rlimit, then see what would happen |
124 | if we wrote the stack, but not the data area. */ | 124 | if we wrote the stack, but not the data area. */ |
125 | #ifdef __sparc__ | 125 | #ifdef __sparc__ |
126 | if ((dump.u_dsize+dump.u_ssize) > | 126 | if ((dump.u_dsize + dump.u_ssize) > limit) |
127 | current->signal->rlim[RLIMIT_CORE].rlim_cur) | ||
128 | dump.u_dsize = 0; | 127 | dump.u_dsize = 0; |
129 | #else | 128 | #else |
130 | if ((dump.u_dsize+dump.u_ssize+1) * PAGE_SIZE > | 129 | if ((dump.u_dsize + dump.u_ssize+1) * PAGE_SIZE > limit) |
131 | current->signal->rlim[RLIMIT_CORE].rlim_cur) | ||
132 | dump.u_dsize = 0; | 130 | dump.u_dsize = 0; |
133 | #endif | 131 | #endif |
134 | 132 | ||
135 | /* Make sure we have enough room to write the stack and data areas. */ | 133 | /* Make sure we have enough room to write the stack and data areas. */ |
136 | #ifdef __sparc__ | 134 | #ifdef __sparc__ |
137 | if ((dump.u_ssize) > | 135 | if (dump.u_ssize > limit) |
138 | current->signal->rlim[RLIMIT_CORE].rlim_cur) | ||
139 | dump.u_ssize = 0; | 136 | dump.u_ssize = 0; |
140 | #else | 137 | #else |
141 | if ((dump.u_ssize+1) * PAGE_SIZE > | 138 | if ((dump.u_ssize + 1) * PAGE_SIZE > limit) |
142 | current->signal->rlim[RLIMIT_CORE].rlim_cur) | ||
143 | dump.u_ssize = 0; | 139 | dump.u_ssize = 0; |
144 | #endif | 140 | #endif |
145 | 141 | ||
diff --git a/fs/binfmt_elf.c b/fs/binfmt_elf.c index f3037c645ca9..6e2f3b8dde7f 100644 --- a/fs/binfmt_elf.c +++ b/fs/binfmt_elf.c | |||
@@ -52,7 +52,7 @@ static unsigned long elf_map (struct file *, unsigned long, struct elf_phdr *, i | |||
52 | * don't even try. | 52 | * don't even try. |
53 | */ | 53 | */ |
54 | #if defined(USE_ELF_CORE_DUMP) && defined(CONFIG_ELF_CORE) | 54 | #if defined(USE_ELF_CORE_DUMP) && defined(CONFIG_ELF_CORE) |
55 | static int elf_core_dump(long signr, struct pt_regs *regs, struct file *file); | 55 | static int elf_core_dump(long signr, struct pt_regs *regs, struct file *file, unsigned long limit); |
56 | #else | 56 | #else |
57 | #define elf_core_dump NULL | 57 | #define elf_core_dump NULL |
58 | #endif | 58 | #endif |
@@ -151,6 +151,14 @@ create_elf_tables(struct linux_binprm *bprm, struct elfhdr *exec, | |||
151 | struct vm_area_struct *vma; | 151 | struct vm_area_struct *vma; |
152 | 152 | ||
153 | /* | 153 | /* |
154 | * In some cases (e.g. Hyper-Threading), we want to avoid L1 | ||
155 | * evictions by the processes running on the same package. One | ||
156 | * thing we can do is to shuffle the initial stack for them. | ||
157 | */ | ||
158 | |||
159 | p = arch_align_stack(p); | ||
160 | |||
161 | /* | ||
154 | * If this architecture has a platform capability string, copy it | 162 | * If this architecture has a platform capability string, copy it |
155 | * to userspace. In some cases (Sparc), this info is impossible | 163 | * to userspace. In some cases (Sparc), this info is impossible |
156 | * for userspace to get any other way, in others (i386) it is | 164 | * for userspace to get any other way, in others (i386) it is |
@@ -160,14 +168,6 @@ create_elf_tables(struct linux_binprm *bprm, struct elfhdr *exec, | |||
160 | if (k_platform) { | 168 | if (k_platform) { |
161 | size_t len = strlen(k_platform) + 1; | 169 | size_t len = strlen(k_platform) + 1; |
162 | 170 | ||
163 | /* | ||
164 | * In some cases (e.g. Hyper-Threading), we want to avoid L1 | ||
165 | * evictions by the processes running on the same package. One | ||
166 | * thing we can do is to shuffle the initial stack for them. | ||
167 | */ | ||
168 | |||
169 | p = arch_align_stack(p); | ||
170 | |||
171 | u_platform = (elf_addr_t __user *)STACK_ALLOC(p, len); | 171 | u_platform = (elf_addr_t __user *)STACK_ALLOC(p, len); |
172 | if (__copy_to_user(u_platform, k_platform, len)) | 172 | if (__copy_to_user(u_platform, k_platform, len)) |
173 | return -EFAULT; | 173 | return -EFAULT; |
@@ -175,6 +175,7 @@ create_elf_tables(struct linux_binprm *bprm, struct elfhdr *exec, | |||
175 | 175 | ||
176 | /* Create the ELF interpreter info */ | 176 | /* Create the ELF interpreter info */ |
177 | elf_info = (elf_addr_t *)current->mm->saved_auxv; | 177 | elf_info = (elf_addr_t *)current->mm->saved_auxv; |
178 | /* update AT_VECTOR_SIZE_BASE if the number of NEW_AUX_ENT() changes */ | ||
178 | #define NEW_AUX_ENT(id, val) \ | 179 | #define NEW_AUX_ENT(id, val) \ |
179 | do { \ | 180 | do { \ |
180 | elf_info[ei_index++] = id; \ | 181 | elf_info[ei_index++] = id; \ |
@@ -185,6 +186,8 @@ create_elf_tables(struct linux_binprm *bprm, struct elfhdr *exec, | |||
185 | /* | 186 | /* |
186 | * ARCH_DLINFO must come first so PPC can do its special alignment of | 187 | * ARCH_DLINFO must come first so PPC can do its special alignment of |
187 | * AUXV. | 188 | * AUXV. |
189 | * update AT_VECTOR_SIZE_ARCH if the number of NEW_AUX_ENT() in | ||
190 | * ARCH_DLINFO changes | ||
188 | */ | 191 | */ |
189 | ARCH_DLINFO; | 192 | ARCH_DLINFO; |
190 | #endif | 193 | #endif |
@@ -730,6 +733,7 @@ static int load_elf_binary(struct linux_binprm *bprm, struct pt_regs *regs) | |||
730 | 733 | ||
731 | /* Some simple consistency checks for the interpreter */ | 734 | /* Some simple consistency checks for the interpreter */ |
732 | if (elf_interpreter) { | 735 | if (elf_interpreter) { |
736 | static int warn; | ||
733 | interpreter_type = INTERPRETER_ELF | INTERPRETER_AOUT; | 737 | interpreter_type = INTERPRETER_ELF | INTERPRETER_AOUT; |
734 | 738 | ||
735 | /* Now figure out which format our binary is */ | 739 | /* Now figure out which format our binary is */ |
@@ -741,6 +745,13 @@ static int load_elf_binary(struct linux_binprm *bprm, struct pt_regs *regs) | |||
741 | if (memcmp(loc->interp_elf_ex.e_ident, ELFMAG, SELFMAG) != 0) | 745 | if (memcmp(loc->interp_elf_ex.e_ident, ELFMAG, SELFMAG) != 0) |
742 | interpreter_type &= ~INTERPRETER_ELF; | 746 | interpreter_type &= ~INTERPRETER_ELF; |
743 | 747 | ||
748 | if (interpreter_type == INTERPRETER_AOUT && warn < 10) { | ||
749 | printk(KERN_WARNING "a.out ELF interpreter %s is " | ||
750 | "deprecated and will not be supported " | ||
751 | "after Linux 2.6.25\n", elf_interpreter); | ||
752 | warn++; | ||
753 | } | ||
754 | |||
744 | retval = -ELIBBAD; | 755 | retval = -ELIBBAD; |
745 | if (!interpreter_type) | 756 | if (!interpreter_type) |
746 | goto out_free_dentry; | 757 | goto out_free_dentry; |
@@ -1193,35 +1204,68 @@ static int dump_seek(struct file *file, loff_t off) | |||
1193 | } | 1204 | } |
1194 | 1205 | ||
1195 | /* | 1206 | /* |
1196 | * Decide whether a segment is worth dumping; default is yes to be | 1207 | * Decide what to dump of a segment, part, all or none. |
1197 | * sure (missing info is worse than too much; etc). | ||
1198 | * Personally I'd include everything, and use the coredump limit... | ||
1199 | * | ||
1200 | * I think we should skip something. But I am not sure how. H.J. | ||
1201 | */ | 1208 | */ |
1202 | static int maydump(struct vm_area_struct *vma, unsigned long mm_flags) | 1209 | static unsigned long vma_dump_size(struct vm_area_struct *vma, |
1210 | unsigned long mm_flags) | ||
1203 | { | 1211 | { |
1204 | /* The vma can be set up to tell us the answer directly. */ | 1212 | /* The vma can be set up to tell us the answer directly. */ |
1205 | if (vma->vm_flags & VM_ALWAYSDUMP) | 1213 | if (vma->vm_flags & VM_ALWAYSDUMP) |
1206 | return 1; | 1214 | goto whole; |
1207 | 1215 | ||
1208 | /* Do not dump I/O mapped devices or special mappings */ | 1216 | /* Do not dump I/O mapped devices or special mappings */ |
1209 | if (vma->vm_flags & (VM_IO | VM_RESERVED)) | 1217 | if (vma->vm_flags & (VM_IO | VM_RESERVED)) |
1210 | return 0; | 1218 | return 0; |
1211 | 1219 | ||
1220 | #define FILTER(type) (mm_flags & (1UL << MMF_DUMP_##type)) | ||
1221 | |||
1212 | /* By default, dump shared memory if mapped from an anonymous file. */ | 1222 | /* By default, dump shared memory if mapped from an anonymous file. */ |
1213 | if (vma->vm_flags & VM_SHARED) { | 1223 | if (vma->vm_flags & VM_SHARED) { |
1214 | if (vma->vm_file->f_path.dentry->d_inode->i_nlink == 0) | 1224 | if (vma->vm_file->f_path.dentry->d_inode->i_nlink == 0 ? |
1215 | return test_bit(MMF_DUMP_ANON_SHARED, &mm_flags); | 1225 | FILTER(ANON_SHARED) : FILTER(MAPPED_SHARED)) |
1216 | else | 1226 | goto whole; |
1217 | return test_bit(MMF_DUMP_MAPPED_SHARED, &mm_flags); | 1227 | return 0; |
1218 | } | 1228 | } |
1219 | 1229 | ||
1220 | /* By default, if it hasn't been written to, don't write it out. */ | 1230 | /* Dump segments that have been written to. */ |
1221 | if (!vma->anon_vma) | 1231 | if (vma->anon_vma && FILTER(ANON_PRIVATE)) |
1222 | return test_bit(MMF_DUMP_MAPPED_PRIVATE, &mm_flags); | 1232 | goto whole; |
1233 | if (vma->vm_file == NULL) | ||
1234 | return 0; | ||
1235 | |||
1236 | if (FILTER(MAPPED_PRIVATE)) | ||
1237 | goto whole; | ||
1223 | 1238 | ||
1224 | return test_bit(MMF_DUMP_ANON_PRIVATE, &mm_flags); | 1239 | /* |
1240 | * If this looks like the beginning of a DSO or executable mapping, | ||
1241 | * check for an ELF header. If we find one, dump the first page to | ||
1242 | * aid in determining what was mapped here. | ||
1243 | */ | ||
1244 | if (FILTER(ELF_HEADERS) && vma->vm_file != NULL && vma->vm_pgoff == 0) { | ||
1245 | u32 __user *header = (u32 __user *) vma->vm_start; | ||
1246 | u32 word; | ||
1247 | /* | ||
1248 | * Doing it this way gets the constant folded by GCC. | ||
1249 | */ | ||
1250 | union { | ||
1251 | u32 cmp; | ||
1252 | char elfmag[SELFMAG]; | ||
1253 | } magic; | ||
1254 | BUILD_BUG_ON(SELFMAG != sizeof word); | ||
1255 | magic.elfmag[EI_MAG0] = ELFMAG0; | ||
1256 | magic.elfmag[EI_MAG1] = ELFMAG1; | ||
1257 | magic.elfmag[EI_MAG2] = ELFMAG2; | ||
1258 | magic.elfmag[EI_MAG3] = ELFMAG3; | ||
1259 | if (get_user(word, header) == 0 && word == magic.cmp) | ||
1260 | return PAGE_SIZE; | ||
1261 | } | ||
1262 | |||
1263 | #undef FILTER | ||
1264 | |||
1265 | return 0; | ||
1266 | |||
1267 | whole: | ||
1268 | return vma->vm_end - vma->vm_start; | ||
1225 | } | 1269 | } |
1226 | 1270 | ||
1227 | /* An ELF note in memory */ | 1271 | /* An ELF note in memory */ |
@@ -1411,7 +1455,7 @@ struct elf_thread_status | |||
1411 | elf_fpregset_t fpu; /* NT_PRFPREG */ | 1455 | elf_fpregset_t fpu; /* NT_PRFPREG */ |
1412 | struct task_struct *thread; | 1456 | struct task_struct *thread; |
1413 | #ifdef ELF_CORE_COPY_XFPREGS | 1457 | #ifdef ELF_CORE_COPY_XFPREGS |
1414 | elf_fpxregset_t xfpu; /* NT_PRXFPREG */ | 1458 | elf_fpxregset_t xfpu; /* ELF_CORE_XFPREG_TYPE */ |
1415 | #endif | 1459 | #endif |
1416 | struct memelfnote notes[3]; | 1460 | struct memelfnote notes[3]; |
1417 | int num_notes; | 1461 | int num_notes; |
@@ -1446,8 +1490,8 @@ static int elf_dump_thread_status(long signr, struct elf_thread_status *t) | |||
1446 | 1490 | ||
1447 | #ifdef ELF_CORE_COPY_XFPREGS | 1491 | #ifdef ELF_CORE_COPY_XFPREGS |
1448 | if (elf_core_copy_task_xfpregs(p, &t->xfpu)) { | 1492 | if (elf_core_copy_task_xfpregs(p, &t->xfpu)) { |
1449 | fill_note(&t->notes[2], "LINUX", NT_PRXFPREG, sizeof(t->xfpu), | 1493 | fill_note(&t->notes[2], "LINUX", ELF_CORE_XFPREG_TYPE, |
1450 | &t->xfpu); | 1494 | sizeof(t->xfpu), &t->xfpu); |
1451 | t->num_notes++; | 1495 | t->num_notes++; |
1452 | sz += notesize(&t->notes[2]); | 1496 | sz += notesize(&t->notes[2]); |
1453 | } | 1497 | } |
@@ -1488,7 +1532,7 @@ static struct vm_area_struct *next_vma(struct vm_area_struct *this_vma, | |||
1488 | * and then they are actually written out. If we run out of core limit | 1532 | * and then they are actually written out. If we run out of core limit |
1489 | * we just truncate. | 1533 | * we just truncate. |
1490 | */ | 1534 | */ |
1491 | static int elf_core_dump(long signr, struct pt_regs *regs, struct file *file) | 1535 | static int elf_core_dump(long signr, struct pt_regs *regs, struct file *file, unsigned long limit) |
1492 | { | 1536 | { |
1493 | #define NUM_NOTES 6 | 1537 | #define NUM_NOTES 6 |
1494 | int has_dumped = 0; | 1538 | int has_dumped = 0; |
@@ -1499,7 +1543,6 @@ static int elf_core_dump(long signr, struct pt_regs *regs, struct file *file) | |||
1499 | struct vm_area_struct *vma, *gate_vma; | 1543 | struct vm_area_struct *vma, *gate_vma; |
1500 | struct elfhdr *elf = NULL; | 1544 | struct elfhdr *elf = NULL; |
1501 | loff_t offset = 0, dataoff, foffset; | 1545 | loff_t offset = 0, dataoff, foffset; |
1502 | unsigned long limit = current->signal->rlim[RLIMIT_CORE].rlim_cur; | ||
1503 | int numnote; | 1546 | int numnote; |
1504 | struct memelfnote *notes = NULL; | 1547 | struct memelfnote *notes = NULL; |
1505 | struct elf_prstatus *prstatus = NULL; /* NT_PRSTATUS */ | 1548 | struct elf_prstatus *prstatus = NULL; /* NT_PRSTATUS */ |
@@ -1621,7 +1664,7 @@ static int elf_core_dump(long signr, struct pt_regs *regs, struct file *file) | |||
1621 | #ifdef ELF_CORE_COPY_XFPREGS | 1664 | #ifdef ELF_CORE_COPY_XFPREGS |
1622 | if (elf_core_copy_task_xfpregs(current, xfpu)) | 1665 | if (elf_core_copy_task_xfpregs(current, xfpu)) |
1623 | fill_note(notes + numnote++, | 1666 | fill_note(notes + numnote++, |
1624 | "LINUX", NT_PRXFPREG, sizeof(*xfpu), xfpu); | 1667 | "LINUX", ELF_CORE_XFPREG_TYPE, sizeof(*xfpu), xfpu); |
1625 | #endif | 1668 | #endif |
1626 | 1669 | ||
1627 | fs = get_fs(); | 1670 | fs = get_fs(); |
@@ -1662,16 +1705,13 @@ static int elf_core_dump(long signr, struct pt_regs *regs, struct file *file) | |||
1662 | for (vma = first_vma(current, gate_vma); vma != NULL; | 1705 | for (vma = first_vma(current, gate_vma); vma != NULL; |
1663 | vma = next_vma(vma, gate_vma)) { | 1706 | vma = next_vma(vma, gate_vma)) { |
1664 | struct elf_phdr phdr; | 1707 | struct elf_phdr phdr; |
1665 | size_t sz; | ||
1666 | |||
1667 | sz = vma->vm_end - vma->vm_start; | ||
1668 | 1708 | ||
1669 | phdr.p_type = PT_LOAD; | 1709 | phdr.p_type = PT_LOAD; |
1670 | phdr.p_offset = offset; | 1710 | phdr.p_offset = offset; |
1671 | phdr.p_vaddr = vma->vm_start; | 1711 | phdr.p_vaddr = vma->vm_start; |
1672 | phdr.p_paddr = 0; | 1712 | phdr.p_paddr = 0; |
1673 | phdr.p_filesz = maydump(vma, mm_flags) ? sz : 0; | 1713 | phdr.p_filesz = vma_dump_size(vma, mm_flags); |
1674 | phdr.p_memsz = sz; | 1714 | phdr.p_memsz = vma->vm_end - vma->vm_start; |
1675 | offset += phdr.p_filesz; | 1715 | offset += phdr.p_filesz; |
1676 | phdr.p_flags = vma->vm_flags & VM_READ ? PF_R : 0; | 1716 | phdr.p_flags = vma->vm_flags & VM_READ ? PF_R : 0; |
1677 | if (vma->vm_flags & VM_WRITE) | 1717 | if (vma->vm_flags & VM_WRITE) |
@@ -1711,13 +1751,11 @@ static int elf_core_dump(long signr, struct pt_regs *regs, struct file *file) | |||
1711 | for (vma = first_vma(current, gate_vma); vma != NULL; | 1751 | for (vma = first_vma(current, gate_vma); vma != NULL; |
1712 | vma = next_vma(vma, gate_vma)) { | 1752 | vma = next_vma(vma, gate_vma)) { |
1713 | unsigned long addr; | 1753 | unsigned long addr; |
1754 | unsigned long end; | ||
1714 | 1755 | ||
1715 | if (!maydump(vma, mm_flags)) | 1756 | end = vma->vm_start + vma_dump_size(vma, mm_flags); |
1716 | continue; | ||
1717 | 1757 | ||
1718 | for (addr = vma->vm_start; | 1758 | for (addr = vma->vm_start; addr < end; addr += PAGE_SIZE) { |
1719 | addr < vma->vm_end; | ||
1720 | addr += PAGE_SIZE) { | ||
1721 | struct page *page; | 1759 | struct page *page; |
1722 | struct vm_area_struct *vma; | 1760 | struct vm_area_struct *vma; |
1723 | 1761 | ||
diff --git a/fs/binfmt_elf_fdpic.c b/fs/binfmt_elf_fdpic.c index c5ca2f0aca7f..033861c6b8f1 100644 --- a/fs/binfmt_elf_fdpic.c +++ b/fs/binfmt_elf_fdpic.c | |||
@@ -75,7 +75,7 @@ static int elf_fdpic_map_file_by_direct_mmap(struct elf_fdpic_params *, | |||
75 | struct file *, struct mm_struct *); | 75 | struct file *, struct mm_struct *); |
76 | 76 | ||
77 | #if defined(USE_ELF_CORE_DUMP) && defined(CONFIG_ELF_CORE) | 77 | #if defined(USE_ELF_CORE_DUMP) && defined(CONFIG_ELF_CORE) |
78 | static int elf_fdpic_core_dump(long, struct pt_regs *, struct file *); | 78 | static int elf_fdpic_core_dump(long, struct pt_regs *, struct file *, unsigned long limit); |
79 | #endif | 79 | #endif |
80 | 80 | ||
81 | static struct linux_binfmt elf_fdpic_format = { | 81 | static struct linux_binfmt elf_fdpic_format = { |
@@ -1417,7 +1417,7 @@ struct elf_thread_status | |||
1417 | elf_fpregset_t fpu; /* NT_PRFPREG */ | 1417 | elf_fpregset_t fpu; /* NT_PRFPREG */ |
1418 | struct task_struct *thread; | 1418 | struct task_struct *thread; |
1419 | #ifdef ELF_CORE_COPY_XFPREGS | 1419 | #ifdef ELF_CORE_COPY_XFPREGS |
1420 | elf_fpxregset_t xfpu; /* NT_PRXFPREG */ | 1420 | elf_fpxregset_t xfpu; /* ELF_CORE_XFPREG_TYPE */ |
1421 | #endif | 1421 | #endif |
1422 | struct memelfnote notes[3]; | 1422 | struct memelfnote notes[3]; |
1423 | int num_notes; | 1423 | int num_notes; |
@@ -1453,8 +1453,8 @@ static int elf_dump_thread_status(long signr, struct elf_thread_status *t) | |||
1453 | 1453 | ||
1454 | #ifdef ELF_CORE_COPY_XFPREGS | 1454 | #ifdef ELF_CORE_COPY_XFPREGS |
1455 | if (elf_core_copy_task_xfpregs(p, &t->xfpu)) { | 1455 | if (elf_core_copy_task_xfpregs(p, &t->xfpu)) { |
1456 | fill_note(&t->notes[2], "LINUX", NT_PRXFPREG, sizeof(t->xfpu), | 1456 | fill_note(&t->notes[2], "LINUX", ELF_CORE_XFPREG_TYPE, |
1457 | &t->xfpu); | 1457 | sizeof(t->xfpu), &t->xfpu); |
1458 | t->num_notes++; | 1458 | t->num_notes++; |
1459 | sz += notesize(&t->notes[2]); | 1459 | sz += notesize(&t->notes[2]); |
1460 | } | 1460 | } |
@@ -1552,7 +1552,7 @@ static int elf_fdpic_dump_segments(struct file *file, size_t *size, | |||
1552 | * we just truncate. | 1552 | * we just truncate. |
1553 | */ | 1553 | */ |
1554 | static int elf_fdpic_core_dump(long signr, struct pt_regs *regs, | 1554 | static int elf_fdpic_core_dump(long signr, struct pt_regs *regs, |
1555 | struct file *file) | 1555 | struct file *file, unsigned long limit) |
1556 | { | 1556 | { |
1557 | #define NUM_NOTES 6 | 1557 | #define NUM_NOTES 6 |
1558 | int has_dumped = 0; | 1558 | int has_dumped = 0; |
@@ -1563,7 +1563,6 @@ static int elf_fdpic_core_dump(long signr, struct pt_regs *regs, | |||
1563 | struct vm_area_struct *vma; | 1563 | struct vm_area_struct *vma; |
1564 | struct elfhdr *elf = NULL; | 1564 | struct elfhdr *elf = NULL; |
1565 | loff_t offset = 0, dataoff; | 1565 | loff_t offset = 0, dataoff; |
1566 | unsigned long limit = current->signal->rlim[RLIMIT_CORE].rlim_cur; | ||
1567 | int numnote; | 1566 | int numnote; |
1568 | struct memelfnote *notes = NULL; | 1567 | struct memelfnote *notes = NULL; |
1569 | struct elf_prstatus *prstatus = NULL; /* NT_PRSTATUS */ | 1568 | struct elf_prstatus *prstatus = NULL; /* NT_PRSTATUS */ |
@@ -1690,7 +1689,7 @@ static int elf_fdpic_core_dump(long signr, struct pt_regs *regs, | |||
1690 | #ifdef ELF_CORE_COPY_XFPREGS | 1689 | #ifdef ELF_CORE_COPY_XFPREGS |
1691 | if (elf_core_copy_task_xfpregs(current, xfpu)) | 1690 | if (elf_core_copy_task_xfpregs(current, xfpu)) |
1692 | fill_note(notes + numnote++, | 1691 | fill_note(notes + numnote++, |
1693 | "LINUX", NT_PRXFPREG, sizeof(*xfpu), xfpu); | 1692 | "LINUX", ELF_CORE_XFPREG_TYPE, sizeof(*xfpu), xfpu); |
1694 | #endif | 1693 | #endif |
1695 | 1694 | ||
1696 | fs = get_fs(); | 1695 | fs = get_fs(); |
diff --git a/fs/binfmt_flat.c b/fs/binfmt_flat.c index fcb3405bb14e..33764fd6db66 100644 --- a/fs/binfmt_flat.c +++ b/fs/binfmt_flat.c | |||
@@ -75,7 +75,7 @@ static int load_flat_shared_library(int id, struct lib_info *p); | |||
75 | #endif | 75 | #endif |
76 | 76 | ||
77 | static int load_flat_binary(struct linux_binprm *, struct pt_regs * regs); | 77 | static int load_flat_binary(struct linux_binprm *, struct pt_regs * regs); |
78 | static int flat_core_dump(long signr, struct pt_regs * regs, struct file *file); | 78 | static int flat_core_dump(long signr, struct pt_regs *regs, struct file *file, unsigned long limit); |
79 | 79 | ||
80 | static struct linux_binfmt flat_format = { | 80 | static struct linux_binfmt flat_format = { |
81 | .module = THIS_MODULE, | 81 | .module = THIS_MODULE, |
@@ -90,7 +90,7 @@ static struct linux_binfmt flat_format = { | |||
90 | * Currently only a stub-function. | 90 | * Currently only a stub-function. |
91 | */ | 91 | */ |
92 | 92 | ||
93 | static int flat_core_dump(long signr, struct pt_regs * regs, struct file *file) | 93 | static int flat_core_dump(long signr, struct pt_regs *regs, struct file *file, unsigned long limit) |
94 | { | 94 | { |
95 | printk("Process %s:%d received signr %d and should have core dumped\n", | 95 | printk("Process %s:%d received signr %d and should have core dumped\n", |
96 | current->comm, current->pid, (int) signr); | 96 | current->comm, current->pid, (int) signr); |
@@ -113,7 +113,7 @@ static unsigned long create_flat_tables( | |||
113 | char * p = (char*)pp; | 113 | char * p = (char*)pp; |
114 | int argc = bprm->argc; | 114 | int argc = bprm->argc; |
115 | int envc = bprm->envc; | 115 | int envc = bprm->envc; |
116 | char dummy; | 116 | char uninitialized_var(dummy); |
117 | 117 | ||
118 | sp = (unsigned long *) ((-(unsigned long)sizeof(char *))&(unsigned long) p); | 118 | sp = (unsigned long *) ((-(unsigned long)sizeof(char *))&(unsigned long) p); |
119 | 119 | ||
@@ -290,7 +290,6 @@ out_free_buf: | |||
290 | kfree(buf); | 290 | kfree(buf); |
291 | out_free: | 291 | out_free: |
292 | kfree(strm.workspace); | 292 | kfree(strm.workspace); |
293 | out: | ||
294 | return retval; | 293 | return retval; |
295 | } | 294 | } |
296 | 295 | ||
@@ -459,7 +458,9 @@ static int load_flat_file(struct linux_binprm * bprm, | |||
459 | printk("BINFMT_FLAT: Loading file: %s\n", bprm->filename); | 458 | printk("BINFMT_FLAT: Loading file: %s\n", bprm->filename); |
460 | 459 | ||
461 | if (rev != FLAT_VERSION && rev != OLD_FLAT_VERSION) { | 460 | if (rev != FLAT_VERSION && rev != OLD_FLAT_VERSION) { |
462 | printk("BINFMT_FLAT: bad flat file version 0x%x (supported 0x%x and 0x%x)\n", rev, FLAT_VERSION, OLD_FLAT_VERSION); | 461 | printk("BINFMT_FLAT: bad flat file version 0x%x (supported " |
462 | "0x%lx and 0x%lx)\n", | ||
463 | rev, FLAT_VERSION, OLD_FLAT_VERSION); | ||
463 | ret = -ENOEXEC; | 464 | ret = -ENOEXEC; |
464 | goto err; | 465 | goto err; |
465 | } | 466 | } |
@@ -515,7 +516,8 @@ static int load_flat_file(struct linux_binprm * bprm, | |||
515 | /* | 516 | /* |
516 | * calculate the extra space we need to map in | 517 | * calculate the extra space we need to map in |
517 | */ | 518 | */ |
518 | extra = max(bss_len + stack_len, relocs * sizeof(unsigned long)); | 519 | extra = max_t(unsigned long, bss_len + stack_len, |
520 | relocs * sizeof(unsigned long)); | ||
519 | 521 | ||
520 | /* | 522 | /* |
521 | * there are a couple of cases here, the separate code/data | 523 | * there are a couple of cases here, the separate code/data |
@@ -546,7 +548,7 @@ static int load_flat_file(struct linux_binprm * bprm, | |||
546 | PROT_READ|PROT_WRITE|PROT_EXEC, MAP_PRIVATE, 0); | 548 | PROT_READ|PROT_WRITE|PROT_EXEC, MAP_PRIVATE, 0); |
547 | /* Remap to use all availabe slack region space */ | 549 | /* Remap to use all availabe slack region space */ |
548 | if (realdatastart && (realdatastart < (unsigned long)-4096)) { | 550 | if (realdatastart && (realdatastart < (unsigned long)-4096)) { |
549 | reallen = ksize(realdatastart); | 551 | reallen = ksize((void *)realdatastart); |
550 | if (reallen > len) { | 552 | if (reallen > len) { |
551 | realdatastart = do_mremap(realdatastart, len, | 553 | realdatastart = do_mremap(realdatastart, len, |
552 | reallen, MREMAP_FIXED, realdatastart); | 554 | reallen, MREMAP_FIXED, realdatastart); |
@@ -598,7 +600,7 @@ static int load_flat_file(struct linux_binprm * bprm, | |||
598 | PROT_READ | PROT_EXEC | PROT_WRITE, MAP_PRIVATE, 0); | 600 | PROT_READ | PROT_EXEC | PROT_WRITE, MAP_PRIVATE, 0); |
599 | /* Remap to use all availabe slack region space */ | 601 | /* Remap to use all availabe slack region space */ |
600 | if (textpos && (textpos < (unsigned long) -4096)) { | 602 | if (textpos && (textpos < (unsigned long) -4096)) { |
601 | reallen = ksize(textpos); | 603 | reallen = ksize((void *)textpos); |
602 | if (reallen > len) { | 604 | if (reallen > len) { |
603 | textpos = do_mremap(textpos, len, reallen, | 605 | textpos = do_mremap(textpos, len, reallen, |
604 | MREMAP_FIXED, textpos); | 606 | MREMAP_FIXED, textpos); |
diff --git a/fs/binfmt_som.c b/fs/binfmt_som.c index 5bcdaaf4eae0..9208c41209f9 100644 --- a/fs/binfmt_som.c +++ b/fs/binfmt_som.c | |||
@@ -44,7 +44,7 @@ static int load_som_library(struct file *); | |||
44 | * don't even try. | 44 | * don't even try. |
45 | */ | 45 | */ |
46 | #if 0 | 46 | #if 0 |
47 | static int som_core_dump(long signr, struct pt_regs * regs); | 47 | static int som_core_dump(long signr, struct pt_regs *regs, unsigned long limit); |
48 | #else | 48 | #else |
49 | #define som_core_dump NULL | 49 | #define som_core_dump NULL |
50 | #endif | 50 | #endif |
diff --git a/fs/block_dev.c b/fs/block_dev.c index 379a446e243e..993f78c55221 100644 --- a/fs/block_dev.c +++ b/fs/block_dev.c | |||
@@ -465,7 +465,7 @@ static void bdev_destroy_inode(struct inode *inode) | |||
465 | kmem_cache_free(bdev_cachep, bdi); | 465 | kmem_cache_free(bdev_cachep, bdi); |
466 | } | 466 | } |
467 | 467 | ||
468 | static void init_once(void * foo, struct kmem_cache * cachep, unsigned long flags) | 468 | static void init_once(struct kmem_cache * cachep, void *foo) |
469 | { | 469 | { |
470 | struct bdev_inode *ei = (struct bdev_inode *) foo; | 470 | struct bdev_inode *ei = (struct bdev_inode *) foo; |
471 | struct block_device *bdev = &ei->bdev; | 471 | struct block_device *bdev = &ei->bdev; |
diff --git a/fs/buffer.c b/fs/buffer.c index faceb5eecca9..76403b1764c5 100644 --- a/fs/buffer.c +++ b/fs/buffer.c | |||
@@ -710,6 +710,8 @@ static int __set_page_dirty(struct page *page, | |||
710 | 710 | ||
711 | if (mapping_cap_account_dirty(mapping)) { | 711 | if (mapping_cap_account_dirty(mapping)) { |
712 | __inc_zone_page_state(page, NR_FILE_DIRTY); | 712 | __inc_zone_page_state(page, NR_FILE_DIRTY); |
713 | __inc_bdi_stat(mapping->backing_dev_info, | ||
714 | BDI_RECLAIMABLE); | ||
713 | task_io_account_write(PAGE_CACHE_SIZE); | 715 | task_io_account_write(PAGE_CACHE_SIZE); |
714 | } | 716 | } |
715 | radix_tree_tag_set(&mapping->page_tree, | 717 | radix_tree_tag_set(&mapping->page_tree, |
@@ -1728,7 +1730,6 @@ done: | |||
1728 | * The page and buffer_heads can be released at any time from | 1730 | * The page and buffer_heads can be released at any time from |
1729 | * here on. | 1731 | * here on. |
1730 | */ | 1732 | */ |
1731 | wbc->pages_skipped++; /* We didn't write this page */ | ||
1732 | } | 1733 | } |
1733 | return err; | 1734 | return err; |
1734 | 1735 | ||
diff --git a/fs/char_dev.c b/fs/char_dev.c index bbbf07baa145..c3bfa76765c4 100644 --- a/fs/char_dev.c +++ b/fs/char_dev.c | |||
@@ -545,6 +545,7 @@ static struct kobject *base_probe(dev_t dev, int *part, void *data) | |||
545 | void __init chrdev_init(void) | 545 | void __init chrdev_init(void) |
546 | { | 546 | { |
547 | cdev_map = kobj_map_init(base_probe, &chrdevs_lock); | 547 | cdev_map = kobj_map_init(base_probe, &chrdevs_lock); |
548 | bdi_init(&directly_mappable_cdev_bdi); | ||
548 | } | 549 | } |
549 | 550 | ||
550 | 551 | ||
diff --git a/fs/cifs/cifsfs.c b/fs/cifs/cifsfs.c index cabb6a55d7dd..ba8f7868cb23 100644 --- a/fs/cifs/cifsfs.c +++ b/fs/cifs/cifsfs.c | |||
@@ -704,7 +704,7 @@ const struct file_operations cifs_dir_ops = { | |||
704 | }; | 704 | }; |
705 | 705 | ||
706 | static void | 706 | static void |
707 | cifs_init_once(void *inode, struct kmem_cache *cachep, unsigned long flags) | 707 | cifs_init_once(struct kmem_cache *cachep, void *inode) |
708 | { | 708 | { |
709 | struct cifsInodeInfo *cifsi = inode; | 709 | struct cifsInodeInfo *cifsi = inode; |
710 | 710 | ||
diff --git a/fs/coda/inode.c b/fs/coda/inode.c index 342f4e0d582e..2f58dfc70083 100644 --- a/fs/coda/inode.c +++ b/fs/coda/inode.c | |||
@@ -58,7 +58,7 @@ static void coda_destroy_inode(struct inode *inode) | |||
58 | kmem_cache_free(coda_inode_cachep, ITOC(inode)); | 58 | kmem_cache_free(coda_inode_cachep, ITOC(inode)); |
59 | } | 59 | } |
60 | 60 | ||
61 | static void init_once(void * foo, struct kmem_cache * cachep, unsigned long flags) | 61 | static void init_once(struct kmem_cache * cachep, void *foo) |
62 | { | 62 | { |
63 | struct coda_inode_info *ei = (struct coda_inode_info *) foo; | 63 | struct coda_inode_info *ei = (struct coda_inode_info *) foo; |
64 | 64 | ||
diff --git a/fs/compat_ioctl.c b/fs/compat_ioctl.c index 9c3fd07f35e0..6dacd39bf048 100644 --- a/fs/compat_ioctl.c +++ b/fs/compat_ioctl.c | |||
@@ -108,7 +108,6 @@ | |||
108 | #include <linux/dvb/dmx.h> | 108 | #include <linux/dvb/dmx.h> |
109 | #include <linux/dvb/frontend.h> | 109 | #include <linux/dvb/frontend.h> |
110 | #include <linux/dvb/video.h> | 110 | #include <linux/dvb/video.h> |
111 | #include <linux/lp.h> | ||
112 | 111 | ||
113 | #ifdef CONFIG_SPARC | 112 | #ifdef CONFIG_SPARC |
114 | #include <asm/fbio.h> | 113 | #include <asm/fbio.h> |
diff --git a/fs/configfs/configfs_internal.h b/fs/configfs/configfs_internal.h index 3b0185fdf9a4..cca98609aa7f 100644 --- a/fs/configfs/configfs_internal.h +++ b/fs/configfs/configfs_internal.h | |||
@@ -56,6 +56,8 @@ extern int configfs_is_root(struct config_item *item); | |||
56 | 56 | ||
57 | extern struct inode * configfs_new_inode(mode_t mode, struct configfs_dirent *); | 57 | extern struct inode * configfs_new_inode(mode_t mode, struct configfs_dirent *); |
58 | extern int configfs_create(struct dentry *, int mode, int (*init)(struct inode *)); | 58 | extern int configfs_create(struct dentry *, int mode, int (*init)(struct inode *)); |
59 | extern int configfs_inode_init(void); | ||
60 | extern void configfs_inode_exit(void); | ||
59 | 61 | ||
60 | extern int configfs_create_file(struct config_item *, const struct configfs_attribute *); | 62 | extern int configfs_create_file(struct config_item *, const struct configfs_attribute *); |
61 | extern int configfs_make_dirent(struct configfs_dirent *, | 63 | extern int configfs_make_dirent(struct configfs_dirent *, |
diff --git a/fs/configfs/dir.c b/fs/configfs/dir.c index 2f436d4f1d6d..50ed691098bc 100644 --- a/fs/configfs/dir.c +++ b/fs/configfs/dir.c | |||
@@ -142,7 +142,7 @@ static int init_dir(struct inode * inode) | |||
142 | return 0; | 142 | return 0; |
143 | } | 143 | } |
144 | 144 | ||
145 | static int init_file(struct inode * inode) | 145 | static int configfs_init_file(struct inode * inode) |
146 | { | 146 | { |
147 | inode->i_size = PAGE_SIZE; | 147 | inode->i_size = PAGE_SIZE; |
148 | inode->i_fop = &configfs_file_operations; | 148 | inode->i_fop = &configfs_file_operations; |
@@ -283,7 +283,8 @@ static int configfs_attach_attr(struct configfs_dirent * sd, struct dentry * den | |||
283 | 283 | ||
284 | dentry->d_fsdata = configfs_get(sd); | 284 | dentry->d_fsdata = configfs_get(sd); |
285 | sd->s_dentry = dentry; | 285 | sd->s_dentry = dentry; |
286 | error = configfs_create(dentry, (attr->ca_mode & S_IALLUGO) | S_IFREG, init_file); | 286 | error = configfs_create(dentry, (attr->ca_mode & S_IALLUGO) | S_IFREG, |
287 | configfs_init_file); | ||
287 | if (error) { | 288 | if (error) { |
288 | configfs_put(sd); | 289 | configfs_put(sd); |
289 | return error; | 290 | return error; |
diff --git a/fs/configfs/inode.c b/fs/configfs/inode.c index dbd257d956c4..4c1ebff778ee 100644 --- a/fs/configfs/inode.c +++ b/fs/configfs/inode.c | |||
@@ -256,4 +256,12 @@ void configfs_hash_and_remove(struct dentry * dir, const char * name) | |||
256 | mutex_unlock(&dir->d_inode->i_mutex); | 256 | mutex_unlock(&dir->d_inode->i_mutex); |
257 | } | 257 | } |
258 | 258 | ||
259 | int __init configfs_inode_init(void) | ||
260 | { | ||
261 | return bdi_init(&configfs_backing_dev_info); | ||
262 | } | ||
259 | 263 | ||
264 | void __exit configfs_inode_exit(void) | ||
265 | { | ||
266 | bdi_destroy(&configfs_backing_dev_info); | ||
267 | } | ||
diff --git a/fs/configfs/mount.c b/fs/configfs/mount.c index 871b0cb61839..3bf0278ea843 100644 --- a/fs/configfs/mount.c +++ b/fs/configfs/mount.c | |||
@@ -154,8 +154,16 @@ static int __init configfs_init(void) | |||
154 | subsystem_unregister(&config_subsys); | 154 | subsystem_unregister(&config_subsys); |
155 | kmem_cache_destroy(configfs_dir_cachep); | 155 | kmem_cache_destroy(configfs_dir_cachep); |
156 | configfs_dir_cachep = NULL; | 156 | configfs_dir_cachep = NULL; |
157 | goto out; | ||
157 | } | 158 | } |
158 | 159 | ||
160 | err = configfs_inode_init(); | ||
161 | if (err) { | ||
162 | unregister_filesystem(&configfs_fs_type); | ||
163 | subsystem_unregister(&config_subsys); | ||
164 | kmem_cache_destroy(configfs_dir_cachep); | ||
165 | configfs_dir_cachep = NULL; | ||
166 | } | ||
159 | out: | 167 | out: |
160 | return err; | 168 | return err; |
161 | } | 169 | } |
@@ -166,6 +174,7 @@ static void __exit configfs_exit(void) | |||
166 | subsystem_unregister(&config_subsys); | 174 | subsystem_unregister(&config_subsys); |
167 | kmem_cache_destroy(configfs_dir_cachep); | 175 | kmem_cache_destroy(configfs_dir_cachep); |
168 | configfs_dir_cachep = NULL; | 176 | configfs_dir_cachep = NULL; |
177 | configfs_inode_exit(); | ||
169 | } | 178 | } |
170 | 179 | ||
171 | MODULE_AUTHOR("Oracle"); | 180 | MODULE_AUTHOR("Oracle"); |
diff --git a/fs/cramfs/inode.c b/fs/cramfs/inode.c index 3d194a2be3f5..5c817bd08389 100644 --- a/fs/cramfs/inode.c +++ b/fs/cramfs/inode.c | |||
@@ -258,12 +258,21 @@ static int cramfs_fill_super(struct super_block *sb, void *data, int silent) | |||
258 | 258 | ||
259 | /* Do sanity checks on the superblock */ | 259 | /* Do sanity checks on the superblock */ |
260 | if (super.magic != CRAMFS_MAGIC) { | 260 | if (super.magic != CRAMFS_MAGIC) { |
261 | /* check for wrong endianess */ | ||
262 | if (super.magic == CRAMFS_MAGIC_WEND) { | ||
263 | if (!silent) | ||
264 | printk(KERN_ERR "cramfs: wrong endianess\n"); | ||
265 | goto out; | ||
266 | } | ||
267 | |||
261 | /* check at 512 byte offset */ | 268 | /* check at 512 byte offset */ |
262 | mutex_lock(&read_mutex); | 269 | mutex_lock(&read_mutex); |
263 | memcpy(&super, cramfs_read(sb, 512, sizeof(super)), sizeof(super)); | 270 | memcpy(&super, cramfs_read(sb, 512, sizeof(super)), sizeof(super)); |
264 | mutex_unlock(&read_mutex); | 271 | mutex_unlock(&read_mutex); |
265 | if (super.magic != CRAMFS_MAGIC) { | 272 | if (super.magic != CRAMFS_MAGIC) { |
266 | if (!silent) | 273 | if (super.magic == CRAMFS_MAGIC_WEND && !silent) |
274 | printk(KERN_ERR "cramfs: wrong endianess\n"); | ||
275 | else if (!silent) | ||
267 | printk(KERN_ERR "cramfs: wrong magic\n"); | 276 | printk(KERN_ERR "cramfs: wrong magic\n"); |
268 | goto out; | 277 | goto out; |
269 | } | 278 | } |
diff --git a/fs/dcache.c b/fs/dcache.c index 7da0cf50873e..5489b2d98a00 100644 --- a/fs/dcache.c +++ b/fs/dcache.c | |||
@@ -381,20 +381,17 @@ restart: | |||
381 | * Throw away a dentry - free the inode, dput the parent. This requires that | 381 | * Throw away a dentry - free the inode, dput the parent. This requires that |
382 | * the LRU list has already been removed. | 382 | * the LRU list has already been removed. |
383 | * | 383 | * |
384 | * If prune_parents is true, try to prune ancestors as well. | 384 | * Try to prune ancestors as well. This is necessary to prevent |
385 | * quadratic behavior of shrink_dcache_parent(), but is also expected | ||
386 | * to be beneficial in reducing dentry cache fragmentation. | ||
385 | * | 387 | * |
386 | * Called with dcache_lock, drops it and then regains. | 388 | * Called with dcache_lock, drops it and then regains. |
387 | * Called with dentry->d_lock held, drops it. | 389 | * Called with dentry->d_lock held, drops it. |
388 | */ | 390 | */ |
389 | static void prune_one_dentry(struct dentry * dentry, int prune_parents) | 391 | static void prune_one_dentry(struct dentry * dentry) |
390 | { | 392 | { |
391 | __d_drop(dentry); | 393 | __d_drop(dentry); |
392 | dentry = d_kill(dentry); | 394 | dentry = d_kill(dentry); |
393 | if (!prune_parents) { | ||
394 | dput(dentry); | ||
395 | spin_lock(&dcache_lock); | ||
396 | return; | ||
397 | } | ||
398 | 395 | ||
399 | /* | 396 | /* |
400 | * Prune ancestors. Locking is simpler than in dput(), | 397 | * Prune ancestors. Locking is simpler than in dput(), |
@@ -422,7 +419,6 @@ static void prune_one_dentry(struct dentry * dentry, int prune_parents) | |||
422 | * @count: number of entries to try and free | 419 | * @count: number of entries to try and free |
423 | * @sb: if given, ignore dentries for other superblocks | 420 | * @sb: if given, ignore dentries for other superblocks |
424 | * which are being unmounted. | 421 | * which are being unmounted. |
425 | * @prune_parents: if true, try to prune ancestors as well in one go | ||
426 | * | 422 | * |
427 | * Shrink the dcache. This is done when we need | 423 | * Shrink the dcache. This is done when we need |
428 | * more memory, or simply when we need to unmount | 424 | * more memory, or simply when we need to unmount |
@@ -433,7 +429,7 @@ static void prune_one_dentry(struct dentry * dentry, int prune_parents) | |||
433 | * all the dentries are in use. | 429 | * all the dentries are in use. |
434 | */ | 430 | */ |
435 | 431 | ||
436 | static void prune_dcache(int count, struct super_block *sb, int prune_parents) | 432 | static void prune_dcache(int count, struct super_block *sb) |
437 | { | 433 | { |
438 | spin_lock(&dcache_lock); | 434 | spin_lock(&dcache_lock); |
439 | for (; count ; count--) { | 435 | for (; count ; count--) { |
@@ -493,7 +489,7 @@ static void prune_dcache(int count, struct super_block *sb, int prune_parents) | |||
493 | * without taking the s_umount lock (I already hold it). | 489 | * without taking the s_umount lock (I already hold it). |
494 | */ | 490 | */ |
495 | if (sb && dentry->d_sb == sb) { | 491 | if (sb && dentry->d_sb == sb) { |
496 | prune_one_dentry(dentry, prune_parents); | 492 | prune_one_dentry(dentry); |
497 | continue; | 493 | continue; |
498 | } | 494 | } |
499 | /* | 495 | /* |
@@ -508,7 +504,7 @@ static void prune_dcache(int count, struct super_block *sb, int prune_parents) | |||
508 | s_umount = &dentry->d_sb->s_umount; | 504 | s_umount = &dentry->d_sb->s_umount; |
509 | if (down_read_trylock(s_umount)) { | 505 | if (down_read_trylock(s_umount)) { |
510 | if (dentry->d_sb->s_root != NULL) { | 506 | if (dentry->d_sb->s_root != NULL) { |
511 | prune_one_dentry(dentry, prune_parents); | 507 | prune_one_dentry(dentry); |
512 | up_read(s_umount); | 508 | up_read(s_umount); |
513 | continue; | 509 | continue; |
514 | } | 510 | } |
@@ -557,18 +553,18 @@ void shrink_dcache_sb(struct super_block * sb) | |||
557 | * superblock to the most recent end of the unused list. | 553 | * superblock to the most recent end of the unused list. |
558 | */ | 554 | */ |
559 | spin_lock(&dcache_lock); | 555 | spin_lock(&dcache_lock); |
560 | list_for_each_safe(tmp, next, &dentry_unused) { | 556 | list_for_each_prev_safe(tmp, next, &dentry_unused) { |
561 | dentry = list_entry(tmp, struct dentry, d_lru); | 557 | dentry = list_entry(tmp, struct dentry, d_lru); |
562 | if (dentry->d_sb != sb) | 558 | if (dentry->d_sb != sb) |
563 | continue; | 559 | continue; |
564 | list_move(tmp, &dentry_unused); | 560 | list_move_tail(tmp, &dentry_unused); |
565 | } | 561 | } |
566 | 562 | ||
567 | /* | 563 | /* |
568 | * Pass two ... free the dentries for this superblock. | 564 | * Pass two ... free the dentries for this superblock. |
569 | */ | 565 | */ |
570 | repeat: | 566 | repeat: |
571 | list_for_each_safe(tmp, next, &dentry_unused) { | 567 | list_for_each_prev_safe(tmp, next, &dentry_unused) { |
572 | dentry = list_entry(tmp, struct dentry, d_lru); | 568 | dentry = list_entry(tmp, struct dentry, d_lru); |
573 | if (dentry->d_sb != sb) | 569 | if (dentry->d_sb != sb) |
574 | continue; | 570 | continue; |
@@ -579,7 +575,7 @@ repeat: | |||
579 | spin_unlock(&dentry->d_lock); | 575 | spin_unlock(&dentry->d_lock); |
580 | continue; | 576 | continue; |
581 | } | 577 | } |
582 | prune_one_dentry(dentry, 1); | 578 | prune_one_dentry(dentry); |
583 | cond_resched_lock(&dcache_lock); | 579 | cond_resched_lock(&dcache_lock); |
584 | goto repeat; | 580 | goto repeat; |
585 | } | 581 | } |
@@ -858,7 +854,7 @@ void shrink_dcache_parent(struct dentry * parent) | |||
858 | int found; | 854 | int found; |
859 | 855 | ||
860 | while ((found = select_parent(parent)) != 0) | 856 | while ((found = select_parent(parent)) != 0) |
861 | prune_dcache(found, parent->d_sb, 1); | 857 | prune_dcache(found, parent->d_sb); |
862 | } | 858 | } |
863 | 859 | ||
864 | /* | 860 | /* |
@@ -878,7 +874,7 @@ static int shrink_dcache_memory(int nr, gfp_t gfp_mask) | |||
878 | if (nr) { | 874 | if (nr) { |
879 | if (!(gfp_mask & __GFP_FS)) | 875 | if (!(gfp_mask & __GFP_FS)) |
880 | return -1; | 876 | return -1; |
881 | prune_dcache(nr, NULL, 1); | 877 | prune_dcache(nr, NULL); |
882 | } | 878 | } |
883 | return (dentry_stat.nr_unused / 100) * sysctl_vfs_cache_pressure; | 879 | return (dentry_stat.nr_unused / 100) * sysctl_vfs_cache_pressure; |
884 | } | 880 | } |
@@ -1514,8 +1510,8 @@ static void switch_names(struct dentry *dentry, struct dentry *target) | |||
1514 | * This forceful removal will result in ugly /proc output if | 1510 | * This forceful removal will result in ugly /proc output if |
1515 | * somebody holds a file open that got deleted due to a rename. | 1511 | * somebody holds a file open that got deleted due to a rename. |
1516 | * We could be nicer about the deleted file, and let it show | 1512 | * We could be nicer about the deleted file, and let it show |
1517 | * up under the name it got deleted rather than the name that | 1513 | * up under the name it had before it was deleted rather than |
1518 | * deleted it. | 1514 | * under the original name of the file that was moved on top of it. |
1519 | */ | 1515 | */ |
1520 | 1516 | ||
1521 | /* | 1517 | /* |
@@ -1546,7 +1542,7 @@ static void d_move_locked(struct dentry * dentry, struct dentry * target) | |||
1546 | } | 1542 | } |
1547 | 1543 | ||
1548 | /* Move the dentry to the target hash queue, if on different bucket */ | 1544 | /* Move the dentry to the target hash queue, if on different bucket */ |
1549 | if (dentry->d_flags & DCACHE_UNHASHED) | 1545 | if (d_unhashed(dentry)) |
1550 | goto already_unhashed; | 1546 | goto already_unhashed; |
1551 | 1547 | ||
1552 | hlist_del_rcu(&dentry->d_hash); | 1548 | hlist_del_rcu(&dentry->d_hash); |
@@ -2108,7 +2104,7 @@ static void __init dcache_init_early(void) | |||
2108 | INIT_HLIST_HEAD(&dentry_hashtable[loop]); | 2104 | INIT_HLIST_HEAD(&dentry_hashtable[loop]); |
2109 | } | 2105 | } |
2110 | 2106 | ||
2111 | static void __init dcache_init(unsigned long mempages) | 2107 | static void __init dcache_init(void) |
2112 | { | 2108 | { |
2113 | int loop; | 2109 | int loop; |
2114 | 2110 | ||
@@ -2170,10 +2166,10 @@ void __init vfs_caches_init(unsigned long mempages) | |||
2170 | filp_cachep = kmem_cache_create("filp", sizeof(struct file), 0, | 2166 | filp_cachep = kmem_cache_create("filp", sizeof(struct file), 0, |
2171 | SLAB_HWCACHE_ALIGN|SLAB_PANIC, NULL); | 2167 | SLAB_HWCACHE_ALIGN|SLAB_PANIC, NULL); |
2172 | 2168 | ||
2173 | dcache_init(mempages); | 2169 | dcache_init(); |
2174 | inode_init(mempages); | 2170 | inode_init(); |
2175 | files_init(mempages); | 2171 | files_init(mempages); |
2176 | mnt_init(mempages); | 2172 | mnt_init(); |
2177 | bdev_cache_init(); | 2173 | bdev_cache_init(); |
2178 | chrdev_init(); | 2174 | chrdev_init(); |
2179 | } | 2175 | } |
diff --git a/fs/dlm/Kconfig b/fs/dlm/Kconfig index 54bcc00ec8df..2dbb422e8116 100644 --- a/fs/dlm/Kconfig +++ b/fs/dlm/Kconfig | |||
@@ -1,8 +1,6 @@ | |||
1 | menu "Distributed Lock Manager" | 1 | menuconfig DLM |
2 | depends on EXPERIMENTAL && INET | ||
3 | |||
4 | config DLM | ||
5 | tristate "Distributed Lock Manager (DLM)" | 2 | tristate "Distributed Lock Manager (DLM)" |
3 | depends on EXPERIMENTAL && INET | ||
6 | depends on SYSFS && (IPV6 || IPV6=n) | 4 | depends on SYSFS && (IPV6 || IPV6=n) |
7 | select CONFIGFS_FS | 5 | select CONFIGFS_FS |
8 | select IP_SCTP | 6 | select IP_SCTP |
@@ -17,5 +15,3 @@ config DLM_DEBUG | |||
17 | Under the debugfs mount point, the name of each lockspace will | 15 | Under the debugfs mount point, the name of each lockspace will |
18 | appear as a file in the "dlm" directory. The output is the | 16 | appear as a file in the "dlm" directory. The output is the |
19 | list of resource and locks the local node knows about. | 17 | list of resource and locks the local node knows about. |
20 | |||
21 | endmenu | ||
diff --git a/fs/dquot.c b/fs/dquot.c index de9a29f64ff3..2809768d9c41 100644 --- a/fs/dquot.c +++ b/fs/dquot.c | |||
@@ -79,6 +79,10 @@ | |||
79 | #include <linux/capability.h> | 79 | #include <linux/capability.h> |
80 | #include <linux/quotaops.h> | 80 | #include <linux/quotaops.h> |
81 | #include <linux/writeback.h> /* for inode_lock, oddly enough.. */ | 81 | #include <linux/writeback.h> /* for inode_lock, oddly enough.. */ |
82 | #ifdef CONFIG_QUOTA_NETLINK_INTERFACE | ||
83 | #include <net/netlink.h> | ||
84 | #include <net/genetlink.h> | ||
85 | #endif | ||
82 | 86 | ||
83 | #include <asm/uaccess.h> | 87 | #include <asm/uaccess.h> |
84 | 88 | ||
@@ -823,6 +827,7 @@ static inline void dquot_decr_space(struct dquot *dquot, qsize_t number) | |||
823 | clear_bit(DQ_BLKS_B, &dquot->dq_flags); | 827 | clear_bit(DQ_BLKS_B, &dquot->dq_flags); |
824 | } | 828 | } |
825 | 829 | ||
830 | #ifdef CONFIG_PRINT_QUOTA_WARNING | ||
826 | static int flag_print_warnings = 1; | 831 | static int flag_print_warnings = 1; |
827 | 832 | ||
828 | static inline int need_print_warning(struct dquot *dquot) | 833 | static inline int need_print_warning(struct dquot *dquot) |
@@ -839,22 +844,15 @@ static inline int need_print_warning(struct dquot *dquot) | |||
839 | return 0; | 844 | return 0; |
840 | } | 845 | } |
841 | 846 | ||
842 | /* Values of warnings */ | ||
843 | #define NOWARN 0 | ||
844 | #define IHARDWARN 1 | ||
845 | #define ISOFTLONGWARN 2 | ||
846 | #define ISOFTWARN 3 | ||
847 | #define BHARDWARN 4 | ||
848 | #define BSOFTLONGWARN 5 | ||
849 | #define BSOFTWARN 6 | ||
850 | |||
851 | /* Print warning to user which exceeded quota */ | 847 | /* Print warning to user which exceeded quota */ |
852 | static void print_warning(struct dquot *dquot, const char warntype) | 848 | static void print_warning(struct dquot *dquot, const char warntype) |
853 | { | 849 | { |
854 | char *msg = NULL; | 850 | char *msg = NULL; |
855 | struct tty_struct *tty; | 851 | struct tty_struct *tty; |
856 | int flag = (warntype == BHARDWARN || warntype == BSOFTLONGWARN) ? DQ_BLKS_B : | 852 | int flag = (warntype == QUOTA_NL_BHARDWARN || |
857 | ((warntype == IHARDWARN || warntype == ISOFTLONGWARN) ? DQ_INODES_B : 0); | 853 | warntype == QUOTA_NL_BSOFTLONGWARN) ? DQ_BLKS_B : |
854 | ((warntype == QUOTA_NL_IHARDWARN || | ||
855 | warntype == QUOTA_NL_ISOFTLONGWARN) ? DQ_INODES_B : 0); | ||
858 | 856 | ||
859 | if (!need_print_warning(dquot) || (flag && test_and_set_bit(flag, &dquot->dq_flags))) | 857 | if (!need_print_warning(dquot) || (flag && test_and_set_bit(flag, &dquot->dq_flags))) |
860 | return; | 858 | return; |
@@ -864,28 +862,28 @@ static void print_warning(struct dquot *dquot, const char warntype) | |||
864 | if (!tty) | 862 | if (!tty) |
865 | goto out_lock; | 863 | goto out_lock; |
866 | tty_write_message(tty, dquot->dq_sb->s_id); | 864 | tty_write_message(tty, dquot->dq_sb->s_id); |
867 | if (warntype == ISOFTWARN || warntype == BSOFTWARN) | 865 | if (warntype == QUOTA_NL_ISOFTWARN || warntype == QUOTA_NL_BSOFTWARN) |
868 | tty_write_message(tty, ": warning, "); | 866 | tty_write_message(tty, ": warning, "); |
869 | else | 867 | else |
870 | tty_write_message(tty, ": write failed, "); | 868 | tty_write_message(tty, ": write failed, "); |
871 | tty_write_message(tty, quotatypes[dquot->dq_type]); | 869 | tty_write_message(tty, quotatypes[dquot->dq_type]); |
872 | switch (warntype) { | 870 | switch (warntype) { |
873 | case IHARDWARN: | 871 | case QUOTA_NL_IHARDWARN: |
874 | msg = " file limit reached.\r\n"; | 872 | msg = " file limit reached.\r\n"; |
875 | break; | 873 | break; |
876 | case ISOFTLONGWARN: | 874 | case QUOTA_NL_ISOFTLONGWARN: |
877 | msg = " file quota exceeded too long.\r\n"; | 875 | msg = " file quota exceeded too long.\r\n"; |
878 | break; | 876 | break; |
879 | case ISOFTWARN: | 877 | case QUOTA_NL_ISOFTWARN: |
880 | msg = " file quota exceeded.\r\n"; | 878 | msg = " file quota exceeded.\r\n"; |
881 | break; | 879 | break; |
882 | case BHARDWARN: | 880 | case QUOTA_NL_BHARDWARN: |
883 | msg = " block limit reached.\r\n"; | 881 | msg = " block limit reached.\r\n"; |
884 | break; | 882 | break; |
885 | case BSOFTLONGWARN: | 883 | case QUOTA_NL_BSOFTLONGWARN: |
886 | msg = " block quota exceeded too long.\r\n"; | 884 | msg = " block quota exceeded too long.\r\n"; |
887 | break; | 885 | break; |
888 | case BSOFTWARN: | 886 | case QUOTA_NL_BSOFTWARN: |
889 | msg = " block quota exceeded.\r\n"; | 887 | msg = " block quota exceeded.\r\n"; |
890 | break; | 888 | break; |
891 | } | 889 | } |
@@ -893,14 +891,93 @@ static void print_warning(struct dquot *dquot, const char warntype) | |||
893 | out_lock: | 891 | out_lock: |
894 | mutex_unlock(&tty_mutex); | 892 | mutex_unlock(&tty_mutex); |
895 | } | 893 | } |
894 | #endif | ||
895 | |||
896 | #ifdef CONFIG_QUOTA_NETLINK_INTERFACE | ||
897 | |||
898 | /* Size of quota netlink message - actually an upperbound for buffer size */ | ||
899 | #define QUOTA_NL_MSG_SIZE 32 | ||
900 | |||
901 | /* Netlink family structure for quota */ | ||
902 | static struct genl_family quota_genl_family = { | ||
903 | .id = GENL_ID_GENERATE, | ||
904 | .hdrsize = 0, | ||
905 | .name = "VFS_DQUOT", | ||
906 | .version = 1, | ||
907 | .maxattr = QUOTA_NL_A_MAX, | ||
908 | }; | ||
909 | |||
910 | /* Send warning to userspace about user which exceeded quota */ | ||
911 | static void send_warning(const struct dquot *dquot, const char warntype) | ||
912 | { | ||
913 | static atomic_t seq; | ||
914 | struct sk_buff *skb; | ||
915 | void *msg_head; | ||
916 | int ret; | ||
917 | |||
918 | /* We have to allocate using GFP_NOFS as we are called from a | ||
919 | * filesystem performing write and thus further recursion into | ||
920 | * the fs to free some data could cause deadlocks. */ | ||
921 | skb = genlmsg_new(QUOTA_NL_MSG_SIZE, GFP_NOFS); | ||
922 | if (!skb) { | ||
923 | printk(KERN_ERR | ||
924 | "VFS: Not enough memory to send quota warning.\n"); | ||
925 | return; | ||
926 | } | ||
927 | msg_head = genlmsg_put(skb, 0, atomic_add_return(1, &seq), | ||
928 | "a_genl_family, 0, QUOTA_NL_C_WARNING); | ||
929 | if (!msg_head) { | ||
930 | printk(KERN_ERR | ||
931 | "VFS: Cannot store netlink header in quota warning.\n"); | ||
932 | goto err_out; | ||
933 | } | ||
934 | ret = nla_put_u32(skb, QUOTA_NL_A_QTYPE, dquot->dq_type); | ||
935 | if (ret) | ||
936 | goto attr_err_out; | ||
937 | ret = nla_put_u64(skb, QUOTA_NL_A_EXCESS_ID, dquot->dq_id); | ||
938 | if (ret) | ||
939 | goto attr_err_out; | ||
940 | ret = nla_put_u32(skb, QUOTA_NL_A_WARNING, warntype); | ||
941 | if (ret) | ||
942 | goto attr_err_out; | ||
943 | ret = nla_put_u32(skb, QUOTA_NL_A_DEV_MAJOR, | ||
944 | MAJOR(dquot->dq_sb->s_dev)); | ||
945 | if (ret) | ||
946 | goto attr_err_out; | ||
947 | ret = nla_put_u32(skb, QUOTA_NL_A_DEV_MINOR, | ||
948 | MINOR(dquot->dq_sb->s_dev)); | ||
949 | if (ret) | ||
950 | goto attr_err_out; | ||
951 | ret = nla_put_u64(skb, QUOTA_NL_A_CAUSED_ID, current->user->uid); | ||
952 | if (ret) | ||
953 | goto attr_err_out; | ||
954 | genlmsg_end(skb, msg_head); | ||
955 | |||
956 | ret = genlmsg_multicast(skb, 0, quota_genl_family.id, GFP_NOFS); | ||
957 | if (ret < 0 && ret != -ESRCH) | ||
958 | printk(KERN_ERR | ||
959 | "VFS: Failed to send notification message: %d\n", ret); | ||
960 | return; | ||
961 | attr_err_out: | ||
962 | printk(KERN_ERR "VFS: Failed to compose quota message: %d\n", ret); | ||
963 | err_out: | ||
964 | kfree_skb(skb); | ||
965 | } | ||
966 | #endif | ||
896 | 967 | ||
897 | static inline void flush_warnings(struct dquot **dquots, char *warntype) | 968 | static inline void flush_warnings(struct dquot **dquots, char *warntype) |
898 | { | 969 | { |
899 | int i; | 970 | int i; |
900 | 971 | ||
901 | for (i = 0; i < MAXQUOTAS; i++) | 972 | for (i = 0; i < MAXQUOTAS; i++) |
902 | if (dquots[i] != NODQUOT && warntype[i] != NOWARN) | 973 | if (dquots[i] != NODQUOT && warntype[i] != QUOTA_NL_NOWARN) { |
974 | #ifdef CONFIG_PRINT_QUOTA_WARNING | ||
903 | print_warning(dquots[i], warntype[i]); | 975 | print_warning(dquots[i], warntype[i]); |
976 | #endif | ||
977 | #ifdef CONFIG_QUOTA_NETLINK_INTERFACE | ||
978 | send_warning(dquots[i], warntype[i]); | ||
979 | #endif | ||
980 | } | ||
904 | } | 981 | } |
905 | 982 | ||
906 | static inline char ignore_hardlimit(struct dquot *dquot) | 983 | static inline char ignore_hardlimit(struct dquot *dquot) |
@@ -914,14 +991,14 @@ static inline char ignore_hardlimit(struct dquot *dquot) | |||
914 | /* needs dq_data_lock */ | 991 | /* needs dq_data_lock */ |
915 | static int check_idq(struct dquot *dquot, ulong inodes, char *warntype) | 992 | static int check_idq(struct dquot *dquot, ulong inodes, char *warntype) |
916 | { | 993 | { |
917 | *warntype = NOWARN; | 994 | *warntype = QUOTA_NL_NOWARN; |
918 | if (inodes <= 0 || test_bit(DQ_FAKE_B, &dquot->dq_flags)) | 995 | if (inodes <= 0 || test_bit(DQ_FAKE_B, &dquot->dq_flags)) |
919 | return QUOTA_OK; | 996 | return QUOTA_OK; |
920 | 997 | ||
921 | if (dquot->dq_dqb.dqb_ihardlimit && | 998 | if (dquot->dq_dqb.dqb_ihardlimit && |
922 | (dquot->dq_dqb.dqb_curinodes + inodes) > dquot->dq_dqb.dqb_ihardlimit && | 999 | (dquot->dq_dqb.dqb_curinodes + inodes) > dquot->dq_dqb.dqb_ihardlimit && |
923 | !ignore_hardlimit(dquot)) { | 1000 | !ignore_hardlimit(dquot)) { |
924 | *warntype = IHARDWARN; | 1001 | *warntype = QUOTA_NL_IHARDWARN; |
925 | return NO_QUOTA; | 1002 | return NO_QUOTA; |
926 | } | 1003 | } |
927 | 1004 | ||
@@ -929,14 +1006,14 @@ static int check_idq(struct dquot *dquot, ulong inodes, char *warntype) | |||
929 | (dquot->dq_dqb.dqb_curinodes + inodes) > dquot->dq_dqb.dqb_isoftlimit && | 1006 | (dquot->dq_dqb.dqb_curinodes + inodes) > dquot->dq_dqb.dqb_isoftlimit && |
930 | dquot->dq_dqb.dqb_itime && get_seconds() >= dquot->dq_dqb.dqb_itime && | 1007 | dquot->dq_dqb.dqb_itime && get_seconds() >= dquot->dq_dqb.dqb_itime && |
931 | !ignore_hardlimit(dquot)) { | 1008 | !ignore_hardlimit(dquot)) { |
932 | *warntype = ISOFTLONGWARN; | 1009 | *warntype = QUOTA_NL_ISOFTLONGWARN; |
933 | return NO_QUOTA; | 1010 | return NO_QUOTA; |
934 | } | 1011 | } |
935 | 1012 | ||
936 | if (dquot->dq_dqb.dqb_isoftlimit && | 1013 | if (dquot->dq_dqb.dqb_isoftlimit && |
937 | (dquot->dq_dqb.dqb_curinodes + inodes) > dquot->dq_dqb.dqb_isoftlimit && | 1014 | (dquot->dq_dqb.dqb_curinodes + inodes) > dquot->dq_dqb.dqb_isoftlimit && |
938 | dquot->dq_dqb.dqb_itime == 0) { | 1015 | dquot->dq_dqb.dqb_itime == 0) { |
939 | *warntype = ISOFTWARN; | 1016 | *warntype = QUOTA_NL_ISOFTWARN; |
940 | dquot->dq_dqb.dqb_itime = get_seconds() + sb_dqopt(dquot->dq_sb)->info[dquot->dq_type].dqi_igrace; | 1017 | dquot->dq_dqb.dqb_itime = get_seconds() + sb_dqopt(dquot->dq_sb)->info[dquot->dq_type].dqi_igrace; |
941 | } | 1018 | } |
942 | 1019 | ||
@@ -946,7 +1023,7 @@ static int check_idq(struct dquot *dquot, ulong inodes, char *warntype) | |||
946 | /* needs dq_data_lock */ | 1023 | /* needs dq_data_lock */ |
947 | static int check_bdq(struct dquot *dquot, qsize_t space, int prealloc, char *warntype) | 1024 | static int check_bdq(struct dquot *dquot, qsize_t space, int prealloc, char *warntype) |
948 | { | 1025 | { |
949 | *warntype = 0; | 1026 | *warntype = QUOTA_NL_NOWARN; |
950 | if (space <= 0 || test_bit(DQ_FAKE_B, &dquot->dq_flags)) | 1027 | if (space <= 0 || test_bit(DQ_FAKE_B, &dquot->dq_flags)) |
951 | return QUOTA_OK; | 1028 | return QUOTA_OK; |
952 | 1029 | ||
@@ -954,7 +1031,7 @@ static int check_bdq(struct dquot *dquot, qsize_t space, int prealloc, char *war | |||
954 | toqb(dquot->dq_dqb.dqb_curspace + space) > dquot->dq_dqb.dqb_bhardlimit && | 1031 | toqb(dquot->dq_dqb.dqb_curspace + space) > dquot->dq_dqb.dqb_bhardlimit && |
955 | !ignore_hardlimit(dquot)) { | 1032 | !ignore_hardlimit(dquot)) { |
956 | if (!prealloc) | 1033 | if (!prealloc) |
957 | *warntype = BHARDWARN; | 1034 | *warntype = QUOTA_NL_BHARDWARN; |
958 | return NO_QUOTA; | 1035 | return NO_QUOTA; |
959 | } | 1036 | } |
960 | 1037 | ||
@@ -963,7 +1040,7 @@ static int check_bdq(struct dquot *dquot, qsize_t space, int prealloc, char *war | |||
963 | dquot->dq_dqb.dqb_btime && get_seconds() >= dquot->dq_dqb.dqb_btime && | 1040 | dquot->dq_dqb.dqb_btime && get_seconds() >= dquot->dq_dqb.dqb_btime && |
964 | !ignore_hardlimit(dquot)) { | 1041 | !ignore_hardlimit(dquot)) { |
965 | if (!prealloc) | 1042 | if (!prealloc) |
966 | *warntype = BSOFTLONGWARN; | 1043 | *warntype = QUOTA_NL_BSOFTLONGWARN; |
967 | return NO_QUOTA; | 1044 | return NO_QUOTA; |
968 | } | 1045 | } |
969 | 1046 | ||
@@ -971,7 +1048,7 @@ static int check_bdq(struct dquot *dquot, qsize_t space, int prealloc, char *war | |||
971 | toqb(dquot->dq_dqb.dqb_curspace + space) > dquot->dq_dqb.dqb_bsoftlimit && | 1048 | toqb(dquot->dq_dqb.dqb_curspace + space) > dquot->dq_dqb.dqb_bsoftlimit && |
972 | dquot->dq_dqb.dqb_btime == 0) { | 1049 | dquot->dq_dqb.dqb_btime == 0) { |
973 | if (!prealloc) { | 1050 | if (!prealloc) { |
974 | *warntype = BSOFTWARN; | 1051 | *warntype = QUOTA_NL_BSOFTWARN; |
975 | dquot->dq_dqb.dqb_btime = get_seconds() + sb_dqopt(dquot->dq_sb)->info[dquot->dq_type].dqi_bgrace; | 1052 | dquot->dq_dqb.dqb_btime = get_seconds() + sb_dqopt(dquot->dq_sb)->info[dquot->dq_type].dqi_bgrace; |
976 | } | 1053 | } |
977 | else | 1054 | else |
@@ -1066,7 +1143,7 @@ out_add: | |||
1066 | return QUOTA_OK; | 1143 | return QUOTA_OK; |
1067 | } | 1144 | } |
1068 | for (cnt = 0; cnt < MAXQUOTAS; cnt++) | 1145 | for (cnt = 0; cnt < MAXQUOTAS; cnt++) |
1069 | warntype[cnt] = NOWARN; | 1146 | warntype[cnt] = QUOTA_NL_NOWARN; |
1070 | 1147 | ||
1071 | down_read(&sb_dqopt(inode->i_sb)->dqptr_sem); | 1148 | down_read(&sb_dqopt(inode->i_sb)->dqptr_sem); |
1072 | if (IS_NOQUOTA(inode)) { /* Now we can do reliable test... */ | 1149 | if (IS_NOQUOTA(inode)) { /* Now we can do reliable test... */ |
@@ -1112,7 +1189,7 @@ int dquot_alloc_inode(const struct inode *inode, unsigned long number) | |||
1112 | if (IS_NOQUOTA(inode)) | 1189 | if (IS_NOQUOTA(inode)) |
1113 | return QUOTA_OK; | 1190 | return QUOTA_OK; |
1114 | for (cnt = 0; cnt < MAXQUOTAS; cnt++) | 1191 | for (cnt = 0; cnt < MAXQUOTAS; cnt++) |
1115 | warntype[cnt] = NOWARN; | 1192 | warntype[cnt] = QUOTA_NL_NOWARN; |
1116 | down_read(&sb_dqopt(inode->i_sb)->dqptr_sem); | 1193 | down_read(&sb_dqopt(inode->i_sb)->dqptr_sem); |
1117 | if (IS_NOQUOTA(inode)) { | 1194 | if (IS_NOQUOTA(inode)) { |
1118 | up_read(&sb_dqopt(inode->i_sb)->dqptr_sem); | 1195 | up_read(&sb_dqopt(inode->i_sb)->dqptr_sem); |
@@ -1234,7 +1311,7 @@ int dquot_transfer(struct inode *inode, struct iattr *iattr) | |||
1234 | /* Clear the arrays */ | 1311 | /* Clear the arrays */ |
1235 | for (cnt = 0; cnt < MAXQUOTAS; cnt++) { | 1312 | for (cnt = 0; cnt < MAXQUOTAS; cnt++) { |
1236 | transfer_to[cnt] = transfer_from[cnt] = NODQUOT; | 1313 | transfer_to[cnt] = transfer_from[cnt] = NODQUOT; |
1237 | warntype[cnt] = NOWARN; | 1314 | warntype[cnt] = QUOTA_NL_NOWARN; |
1238 | } | 1315 | } |
1239 | down_write(&sb_dqopt(inode->i_sb)->dqptr_sem); | 1316 | down_write(&sb_dqopt(inode->i_sb)->dqptr_sem); |
1240 | /* Now recheck reliably when holding dqptr_sem */ | 1317 | /* Now recheck reliably when holding dqptr_sem */ |
@@ -1808,6 +1885,7 @@ static ctl_table fs_dqstats_table[] = { | |||
1808 | .mode = 0444, | 1885 | .mode = 0444, |
1809 | .proc_handler = &proc_dointvec, | 1886 | .proc_handler = &proc_dointvec, |
1810 | }, | 1887 | }, |
1888 | #ifdef CONFIG_PRINT_QUOTA_WARNING | ||
1811 | { | 1889 | { |
1812 | .ctl_name = FS_DQ_WARNINGS, | 1890 | .ctl_name = FS_DQ_WARNINGS, |
1813 | .procname = "warnings", | 1891 | .procname = "warnings", |
@@ -1816,6 +1894,7 @@ static ctl_table fs_dqstats_table[] = { | |||
1816 | .mode = 0644, | 1894 | .mode = 0644, |
1817 | .proc_handler = &proc_dointvec, | 1895 | .proc_handler = &proc_dointvec, |
1818 | }, | 1896 | }, |
1897 | #endif | ||
1819 | { .ctl_name = 0 }, | 1898 | { .ctl_name = 0 }, |
1820 | }; | 1899 | }; |
1821 | 1900 | ||
@@ -1877,6 +1956,11 @@ static int __init dquot_init(void) | |||
1877 | 1956 | ||
1878 | register_shrinker(&dqcache_shrinker); | 1957 | register_shrinker(&dqcache_shrinker); |
1879 | 1958 | ||
1959 | #ifdef CONFIG_QUOTA_NETLINK_INTERFACE | ||
1960 | if (genl_register_family("a_genl_family) != 0) | ||
1961 | printk(KERN_ERR "VFS: Failed to create quota netlink interface.\n"); | ||
1962 | #endif | ||
1963 | |||
1880 | return 0; | 1964 | return 0; |
1881 | } | 1965 | } |
1882 | module_init(dquot_init); | 1966 | module_init(dquot_init); |
diff --git a/fs/ecryptfs/main.c b/fs/ecryptfs/main.c index 97e6801f722c..b83a512b7e08 100644 --- a/fs/ecryptfs/main.c +++ b/fs/ecryptfs/main.c | |||
@@ -32,7 +32,6 @@ | |||
32 | #include <linux/crypto.h> | 32 | #include <linux/crypto.h> |
33 | #include <linux/netlink.h> | 33 | #include <linux/netlink.h> |
34 | #include <linux/mount.h> | 34 | #include <linux/mount.h> |
35 | #include <linux/dcache.h> | ||
36 | #include <linux/pagemap.h> | 35 | #include <linux/pagemap.h> |
37 | #include <linux/key.h> | 36 | #include <linux/key.h> |
38 | #include <linux/parser.h> | 37 | #include <linux/parser.h> |
@@ -611,7 +610,7 @@ static struct file_system_type ecryptfs_fs_type = { | |||
611 | * Initializes the ecryptfs_inode_info_cache when it is created | 610 | * Initializes the ecryptfs_inode_info_cache when it is created |
612 | */ | 611 | */ |
613 | static void | 612 | static void |
614 | inode_info_init_once(void *vptr, struct kmem_cache *cachep, unsigned long flags) | 613 | inode_info_init_once(struct kmem_cache *cachep, void *vptr) |
615 | { | 614 | { |
616 | struct ecryptfs_inode_info *ei = (struct ecryptfs_inode_info *)vptr; | 615 | struct ecryptfs_inode_info *ei = (struct ecryptfs_inode_info *)vptr; |
617 | 616 | ||
@@ -622,7 +621,7 @@ static struct ecryptfs_cache_info { | |||
622 | struct kmem_cache **cache; | 621 | struct kmem_cache **cache; |
623 | const char *name; | 622 | const char *name; |
624 | size_t size; | 623 | size_t size; |
625 | void (*ctor)(void*, struct kmem_cache *, unsigned long); | 624 | void (*ctor)(struct kmem_cache *cache, void *obj); |
626 | } ecryptfs_cache_infos[] = { | 625 | } ecryptfs_cache_infos[] = { |
627 | { | 626 | { |
628 | .cache = &ecryptfs_auth_tok_list_item_cache, | 627 | .cache = &ecryptfs_auth_tok_list_item_cache, |
diff --git a/fs/efs/super.c b/fs/efs/super.c index ce4acb8ff819..25d0326c5f1c 100644 --- a/fs/efs/super.c +++ b/fs/efs/super.c | |||
@@ -69,7 +69,7 @@ static void efs_destroy_inode(struct inode *inode) | |||
69 | kmem_cache_free(efs_inode_cachep, INODE_INFO(inode)); | 69 | kmem_cache_free(efs_inode_cachep, INODE_INFO(inode)); |
70 | } | 70 | } |
71 | 71 | ||
72 | static void init_once(void * foo, struct kmem_cache * cachep, unsigned long flags) | 72 | static void init_once(struct kmem_cache *cachep, void *foo) |
73 | { | 73 | { |
74 | struct efs_inode_info *ei = (struct efs_inode_info *) foo; | 74 | struct efs_inode_info *ei = (struct efs_inode_info *) foo; |
75 | 75 | ||
@@ -29,6 +29,7 @@ | |||
29 | #include <linux/stat.h> | 29 | #include <linux/stat.h> |
30 | #include <linux/fcntl.h> | 30 | #include <linux/fcntl.h> |
31 | #include <linux/smp_lock.h> | 31 | #include <linux/smp_lock.h> |
32 | #include <linux/string.h> | ||
32 | #include <linux/init.h> | 33 | #include <linux/init.h> |
33 | #include <linux/pagemap.h> | 34 | #include <linux/pagemap.h> |
34 | #include <linux/highmem.h> | 35 | #include <linux/highmem.h> |
@@ -63,52 +64,28 @@ int core_uses_pid; | |||
63 | char core_pattern[CORENAME_MAX_SIZE] = "core"; | 64 | char core_pattern[CORENAME_MAX_SIZE] = "core"; |
64 | int suid_dumpable = 0; | 65 | int suid_dumpable = 0; |
65 | 66 | ||
66 | EXPORT_SYMBOL(suid_dumpable); | ||
67 | /* The maximal length of core_pattern is also specified in sysctl.c */ | 67 | /* The maximal length of core_pattern is also specified in sysctl.c */ |
68 | 68 | ||
69 | static struct linux_binfmt *formats; | 69 | static LIST_HEAD(formats); |
70 | static DEFINE_RWLOCK(binfmt_lock); | 70 | static DEFINE_RWLOCK(binfmt_lock); |
71 | 71 | ||
72 | int register_binfmt(struct linux_binfmt * fmt) | 72 | int register_binfmt(struct linux_binfmt * fmt) |
73 | { | 73 | { |
74 | struct linux_binfmt ** tmp = &formats; | ||
75 | |||
76 | if (!fmt) | 74 | if (!fmt) |
77 | return -EINVAL; | 75 | return -EINVAL; |
78 | if (fmt->next) | ||
79 | return -EBUSY; | ||
80 | write_lock(&binfmt_lock); | 76 | write_lock(&binfmt_lock); |
81 | while (*tmp) { | 77 | list_add(&fmt->lh, &formats); |
82 | if (fmt == *tmp) { | ||
83 | write_unlock(&binfmt_lock); | ||
84 | return -EBUSY; | ||
85 | } | ||
86 | tmp = &(*tmp)->next; | ||
87 | } | ||
88 | fmt->next = formats; | ||
89 | formats = fmt; | ||
90 | write_unlock(&binfmt_lock); | 78 | write_unlock(&binfmt_lock); |
91 | return 0; | 79 | return 0; |
92 | } | 80 | } |
93 | 81 | ||
94 | EXPORT_SYMBOL(register_binfmt); | 82 | EXPORT_SYMBOL(register_binfmt); |
95 | 83 | ||
96 | int unregister_binfmt(struct linux_binfmt * fmt) | 84 | void unregister_binfmt(struct linux_binfmt * fmt) |
97 | { | 85 | { |
98 | struct linux_binfmt ** tmp = &formats; | ||
99 | |||
100 | write_lock(&binfmt_lock); | 86 | write_lock(&binfmt_lock); |
101 | while (*tmp) { | 87 | list_del(&fmt->lh); |
102 | if (fmt == *tmp) { | ||
103 | *tmp = fmt->next; | ||
104 | fmt->next = NULL; | ||
105 | write_unlock(&binfmt_lock); | ||
106 | return 0; | ||
107 | } | ||
108 | tmp = &(*tmp)->next; | ||
109 | } | ||
110 | write_unlock(&binfmt_lock); | 88 | write_unlock(&binfmt_lock); |
111 | return -EINVAL; | ||
112 | } | 89 | } |
113 | 90 | ||
114 | EXPORT_SYMBOL(unregister_binfmt); | 91 | EXPORT_SYMBOL(unregister_binfmt); |
@@ -134,9 +111,6 @@ asmlinkage long sys_uselib(const char __user * library) | |||
134 | if (error) | 111 | if (error) |
135 | goto out; | 112 | goto out; |
136 | 113 | ||
137 | error = -EACCES; | ||
138 | if (nd.mnt->mnt_flags & MNT_NOEXEC) | ||
139 | goto exit; | ||
140 | error = -EINVAL; | 114 | error = -EINVAL; |
141 | if (!S_ISREG(nd.dentry->d_inode->i_mode)) | 115 | if (!S_ISREG(nd.dentry->d_inode->i_mode)) |
142 | goto exit; | 116 | goto exit; |
@@ -155,7 +129,7 @@ asmlinkage long sys_uselib(const char __user * library) | |||
155 | struct linux_binfmt * fmt; | 129 | struct linux_binfmt * fmt; |
156 | 130 | ||
157 | read_lock(&binfmt_lock); | 131 | read_lock(&binfmt_lock); |
158 | for (fmt = formats ; fmt ; fmt = fmt->next) { | 132 | list_for_each_entry(fmt, &formats, lh) { |
159 | if (!fmt->load_shlib) | 133 | if (!fmt->load_shlib) |
160 | continue; | 134 | continue; |
161 | if (!try_module_get(fmt->module)) | 135 | if (!try_module_get(fmt->module)) |
@@ -680,8 +654,7 @@ struct file *open_exec(const char *name) | |||
680 | if (!err) { | 654 | if (!err) { |
681 | struct inode *inode = nd.dentry->d_inode; | 655 | struct inode *inode = nd.dentry->d_inode; |
682 | file = ERR_PTR(-EACCES); | 656 | file = ERR_PTR(-EACCES); |
683 | if (!(nd.mnt->mnt_flags & MNT_NOEXEC) && | 657 | if (S_ISREG(inode->i_mode)) { |
684 | S_ISREG(inode->i_mode)) { | ||
685 | int err = vfs_permission(&nd, MAY_EXEC); | 658 | int err = vfs_permission(&nd, MAY_EXEC); |
686 | file = ERR_PTR(err); | 659 | file = ERR_PTR(err); |
687 | if (!err) { | 660 | if (!err) { |
@@ -773,24 +746,11 @@ static int exec_mmap(struct mm_struct *mm) | |||
773 | static int de_thread(struct task_struct *tsk) | 746 | static int de_thread(struct task_struct *tsk) |
774 | { | 747 | { |
775 | struct signal_struct *sig = tsk->signal; | 748 | struct signal_struct *sig = tsk->signal; |
776 | struct sighand_struct *newsighand, *oldsighand = tsk->sighand; | 749 | struct sighand_struct *oldsighand = tsk->sighand; |
777 | spinlock_t *lock = &oldsighand->siglock; | 750 | spinlock_t *lock = &oldsighand->siglock; |
778 | struct task_struct *leader = NULL; | 751 | struct task_struct *leader = NULL; |
779 | int count; | 752 | int count; |
780 | 753 | ||
781 | /* | ||
782 | * If we don't share sighandlers, then we aren't sharing anything | ||
783 | * and we can just re-use it all. | ||
784 | */ | ||
785 | if (atomic_read(&oldsighand->count) <= 1) { | ||
786 | exit_itimers(sig); | ||
787 | return 0; | ||
788 | } | ||
789 | |||
790 | newsighand = kmem_cache_alloc(sighand_cachep, GFP_KERNEL); | ||
791 | if (!newsighand) | ||
792 | return -ENOMEM; | ||
793 | |||
794 | if (thread_group_empty(tsk)) | 754 | if (thread_group_empty(tsk)) |
795 | goto no_thread_group; | 755 | goto no_thread_group; |
796 | 756 | ||
@@ -807,7 +767,6 @@ static int de_thread(struct task_struct *tsk) | |||
807 | */ | 767 | */ |
808 | spin_unlock_irq(lock); | 768 | spin_unlock_irq(lock); |
809 | read_unlock(&tasklist_lock); | 769 | read_unlock(&tasklist_lock); |
810 | kmem_cache_free(sighand_cachep, newsighand); | ||
811 | return -EAGAIN; | 770 | return -EAGAIN; |
812 | } | 771 | } |
813 | 772 | ||
@@ -841,16 +800,15 @@ static int de_thread(struct task_struct *tsk) | |||
841 | hrtimer_restart(&sig->real_timer); | 800 | hrtimer_restart(&sig->real_timer); |
842 | spin_lock_irq(lock); | 801 | spin_lock_irq(lock); |
843 | } | 802 | } |
803 | |||
804 | sig->notify_count = count; | ||
805 | sig->group_exit_task = tsk; | ||
844 | while (atomic_read(&sig->count) > count) { | 806 | while (atomic_read(&sig->count) > count) { |
845 | sig->group_exit_task = tsk; | ||
846 | sig->notify_count = count; | ||
847 | __set_current_state(TASK_UNINTERRUPTIBLE); | 807 | __set_current_state(TASK_UNINTERRUPTIBLE); |
848 | spin_unlock_irq(lock); | 808 | spin_unlock_irq(lock); |
849 | schedule(); | 809 | schedule(); |
850 | spin_lock_irq(lock); | 810 | spin_lock_irq(lock); |
851 | } | 811 | } |
852 | sig->group_exit_task = NULL; | ||
853 | sig->notify_count = 0; | ||
854 | spin_unlock_irq(lock); | 812 | spin_unlock_irq(lock); |
855 | 813 | ||
856 | /* | 814 | /* |
@@ -859,14 +817,17 @@ static int de_thread(struct task_struct *tsk) | |||
859 | * and to assume its PID: | 817 | * and to assume its PID: |
860 | */ | 818 | */ |
861 | if (!thread_group_leader(tsk)) { | 819 | if (!thread_group_leader(tsk)) { |
862 | /* | ||
863 | * Wait for the thread group leader to be a zombie. | ||
864 | * It should already be zombie at this point, most | ||
865 | * of the time. | ||
866 | */ | ||
867 | leader = tsk->group_leader; | 820 | leader = tsk->group_leader; |
868 | while (leader->exit_state != EXIT_ZOMBIE) | 821 | |
869 | yield(); | 822 | sig->notify_count = -1; |
823 | for (;;) { | ||
824 | write_lock_irq(&tasklist_lock); | ||
825 | if (likely(leader->exit_state)) | ||
826 | break; | ||
827 | __set_current_state(TASK_UNINTERRUPTIBLE); | ||
828 | write_unlock_irq(&tasklist_lock); | ||
829 | schedule(); | ||
830 | } | ||
870 | 831 | ||
871 | /* | 832 | /* |
872 | * The only record we have of the real-time age of a | 833 | * The only record we have of the real-time age of a |
@@ -880,8 +841,6 @@ static int de_thread(struct task_struct *tsk) | |||
880 | */ | 841 | */ |
881 | tsk->start_time = leader->start_time; | 842 | tsk->start_time = leader->start_time; |
882 | 843 | ||
883 | write_lock_irq(&tasklist_lock); | ||
884 | |||
885 | BUG_ON(leader->tgid != tsk->tgid); | 844 | BUG_ON(leader->tgid != tsk->tgid); |
886 | BUG_ON(tsk->pid == tsk->tgid); | 845 | BUG_ON(tsk->pid == tsk->tgid); |
887 | /* | 846 | /* |
@@ -914,6 +873,8 @@ static int de_thread(struct task_struct *tsk) | |||
914 | write_unlock_irq(&tasklist_lock); | 873 | write_unlock_irq(&tasklist_lock); |
915 | } | 874 | } |
916 | 875 | ||
876 | sig->group_exit_task = NULL; | ||
877 | sig->notify_count = 0; | ||
917 | /* | 878 | /* |
918 | * There may be one thread left which is just exiting, | 879 | * There may be one thread left which is just exiting, |
919 | * but it's safe to stop telling the group to kill themselves. | 880 | * but it's safe to stop telling the group to kill themselves. |
@@ -925,29 +886,23 @@ no_thread_group: | |||
925 | if (leader) | 886 | if (leader) |
926 | release_task(leader); | 887 | release_task(leader); |
927 | 888 | ||
928 | if (atomic_read(&oldsighand->count) == 1) { | 889 | if (atomic_read(&oldsighand->count) != 1) { |
929 | /* | 890 | struct sighand_struct *newsighand; |
930 | * Now that we nuked the rest of the thread group, | ||
931 | * it turns out we are not sharing sighand any more either. | ||
932 | * So we can just keep it. | ||
933 | */ | ||
934 | kmem_cache_free(sighand_cachep, newsighand); | ||
935 | } else { | ||
936 | /* | 891 | /* |
937 | * Move our state over to newsighand and switch it in. | 892 | * This ->sighand is shared with the CLONE_SIGHAND |
893 | * but not CLONE_THREAD task, switch to the new one. | ||
938 | */ | 894 | */ |
895 | newsighand = kmem_cache_alloc(sighand_cachep, GFP_KERNEL); | ||
896 | if (!newsighand) | ||
897 | return -ENOMEM; | ||
898 | |||
939 | atomic_set(&newsighand->count, 1); | 899 | atomic_set(&newsighand->count, 1); |
940 | memcpy(newsighand->action, oldsighand->action, | 900 | memcpy(newsighand->action, oldsighand->action, |
941 | sizeof(newsighand->action)); | 901 | sizeof(newsighand->action)); |
942 | 902 | ||
943 | write_lock_irq(&tasklist_lock); | 903 | write_lock_irq(&tasklist_lock); |
944 | spin_lock(&oldsighand->siglock); | 904 | spin_lock(&oldsighand->siglock); |
945 | spin_lock_nested(&newsighand->siglock, SINGLE_DEPTH_NESTING); | ||
946 | |||
947 | rcu_assign_pointer(tsk->sighand, newsighand); | 905 | rcu_assign_pointer(tsk->sighand, newsighand); |
948 | recalc_sigpending(); | ||
949 | |||
950 | spin_unlock(&newsighand->siglock); | ||
951 | spin_unlock(&oldsighand->siglock); | 906 | spin_unlock(&oldsighand->siglock); |
952 | write_unlock_irq(&tasklist_lock); | 907 | write_unlock_irq(&tasklist_lock); |
953 | 908 | ||
@@ -957,12 +912,11 @@ no_thread_group: | |||
957 | BUG_ON(!thread_group_leader(tsk)); | 912 | BUG_ON(!thread_group_leader(tsk)); |
958 | return 0; | 913 | return 0; |
959 | } | 914 | } |
960 | 915 | ||
961 | /* | 916 | /* |
962 | * These functions flushes out all traces of the currently running executable | 917 | * These functions flushes out all traces of the currently running executable |
963 | * so that a new one can be started | 918 | * so that a new one can be started |
964 | */ | 919 | */ |
965 | |||
966 | static void flush_old_files(struct files_struct * files) | 920 | static void flush_old_files(struct files_struct * files) |
967 | { | 921 | { |
968 | long j = -1; | 922 | long j = -1; |
@@ -1284,7 +1238,7 @@ int search_binary_handler(struct linux_binprm *bprm,struct pt_regs *regs) | |||
1284 | retval = -ENOENT; | 1238 | retval = -ENOENT; |
1285 | for (try=0; try<2; try++) { | 1239 | for (try=0; try<2; try++) { |
1286 | read_lock(&binfmt_lock); | 1240 | read_lock(&binfmt_lock); |
1287 | for (fmt = formats ; fmt ; fmt = fmt->next) { | 1241 | list_for_each_entry(fmt, &formats, lh) { |
1288 | int (*fn)(struct linux_binprm *, struct pt_regs *) = fmt->load_binary; | 1242 | int (*fn)(struct linux_binprm *, struct pt_regs *) = fmt->load_binary; |
1289 | if (!fn) | 1243 | if (!fn) |
1290 | continue; | 1244 | continue; |
@@ -1537,6 +1491,14 @@ static int format_corename(char *corename, const char *pattern, long signr) | |||
1537 | goto out; | 1491 | goto out; |
1538 | out_ptr += rc; | 1492 | out_ptr += rc; |
1539 | break; | 1493 | break; |
1494 | /* core limit size */ | ||
1495 | case 'c': | ||
1496 | rc = snprintf(out_ptr, out_end - out_ptr, | ||
1497 | "%lu", current->signal->rlim[RLIMIT_CORE].rlim_cur); | ||
1498 | if (rc > out_end - out_ptr) | ||
1499 | goto out; | ||
1500 | out_ptr += rc; | ||
1501 | break; | ||
1540 | default: | 1502 | default: |
1541 | break; | 1503 | break; |
1542 | } | 1504 | } |
@@ -1699,7 +1661,6 @@ void set_dumpable(struct mm_struct *mm, int value) | |||
1699 | break; | 1661 | break; |
1700 | } | 1662 | } |
1701 | } | 1663 | } |
1702 | EXPORT_SYMBOL_GPL(set_dumpable); | ||
1703 | 1664 | ||
1704 | int get_dumpable(struct mm_struct *mm) | 1665 | int get_dumpable(struct mm_struct *mm) |
1705 | { | 1666 | { |
@@ -1720,6 +1681,10 @@ int do_coredump(long signr, int exit_code, struct pt_regs * regs) | |||
1720 | int fsuid = current->fsuid; | 1681 | int fsuid = current->fsuid; |
1721 | int flag = 0; | 1682 | int flag = 0; |
1722 | int ispipe = 0; | 1683 | int ispipe = 0; |
1684 | unsigned long core_limit = current->signal->rlim[RLIMIT_CORE].rlim_cur; | ||
1685 | char **helper_argv = NULL; | ||
1686 | int helper_argc = 0; | ||
1687 | char *delimit; | ||
1723 | 1688 | ||
1724 | audit_core_dumps(signr); | 1689 | audit_core_dumps(signr); |
1725 | 1690 | ||
@@ -1753,9 +1718,6 @@ int do_coredump(long signr, int exit_code, struct pt_regs * regs) | |||
1753 | */ | 1718 | */ |
1754 | clear_thread_flag(TIF_SIGPENDING); | 1719 | clear_thread_flag(TIF_SIGPENDING); |
1755 | 1720 | ||
1756 | if (current->signal->rlim[RLIMIT_CORE].rlim_cur < binfmt->min_coredump) | ||
1757 | goto fail_unlock; | ||
1758 | |||
1759 | /* | 1721 | /* |
1760 | * lock_kernel() because format_corename() is controlled by sysctl, which | 1722 | * lock_kernel() because format_corename() is controlled by sysctl, which |
1761 | * uses lock_kernel() | 1723 | * uses lock_kernel() |
@@ -1763,9 +1725,39 @@ int do_coredump(long signr, int exit_code, struct pt_regs * regs) | |||
1763 | lock_kernel(); | 1725 | lock_kernel(); |
1764 | ispipe = format_corename(corename, core_pattern, signr); | 1726 | ispipe = format_corename(corename, core_pattern, signr); |
1765 | unlock_kernel(); | 1727 | unlock_kernel(); |
1728 | /* | ||
1729 | * Don't bother to check the RLIMIT_CORE value if core_pattern points | ||
1730 | * to a pipe. Since we're not writing directly to the filesystem | ||
1731 | * RLIMIT_CORE doesn't really apply, as no actual core file will be | ||
1732 | * created unless the pipe reader choses to write out the core file | ||
1733 | * at which point file size limits and permissions will be imposed | ||
1734 | * as it does with any other process | ||
1735 | */ | ||
1736 | if ((!ispipe) && (core_limit < binfmt->min_coredump)) | ||
1737 | goto fail_unlock; | ||
1738 | |||
1766 | if (ispipe) { | 1739 | if (ispipe) { |
1740 | helper_argv = argv_split(GFP_KERNEL, corename+1, &helper_argc); | ||
1741 | /* Terminate the string before the first option */ | ||
1742 | delimit = strchr(corename, ' '); | ||
1743 | if (delimit) | ||
1744 | *delimit = '\0'; | ||
1745 | delimit = strrchr(helper_argv[0], '/'); | ||
1746 | if (delimit) | ||
1747 | delimit++; | ||
1748 | else | ||
1749 | delimit = helper_argv[0]; | ||
1750 | if (!strcmp(delimit, current->comm)) { | ||
1751 | printk(KERN_NOTICE "Recursive core dump detected, " | ||
1752 | "aborting\n"); | ||
1753 | goto fail_unlock; | ||
1754 | } | ||
1755 | |||
1756 | core_limit = RLIM_INFINITY; | ||
1757 | |||
1767 | /* SIGPIPE can happen, but it's just never processed */ | 1758 | /* SIGPIPE can happen, but it's just never processed */ |
1768 | if(call_usermodehelper_pipe(corename+1, NULL, NULL, &file)) { | 1759 | if (call_usermodehelper_pipe(corename+1, helper_argv, NULL, |
1760 | &file)) { | ||
1769 | printk(KERN_INFO "Core dump to %s pipe failed\n", | 1761 | printk(KERN_INFO "Core dump to %s pipe failed\n", |
1770 | corename); | 1762 | corename); |
1771 | goto fail_unlock; | 1763 | goto fail_unlock; |
@@ -1793,13 +1785,16 @@ int do_coredump(long signr, int exit_code, struct pt_regs * regs) | |||
1793 | if (!ispipe && do_truncate(file->f_path.dentry, 0, 0, file) != 0) | 1785 | if (!ispipe && do_truncate(file->f_path.dentry, 0, 0, file) != 0) |
1794 | goto close_fail; | 1786 | goto close_fail; |
1795 | 1787 | ||
1796 | retval = binfmt->core_dump(signr, regs, file); | 1788 | retval = binfmt->core_dump(signr, regs, file, core_limit); |
1797 | 1789 | ||
1798 | if (retval) | 1790 | if (retval) |
1799 | current->signal->group_exit_code |= 0x80; | 1791 | current->signal->group_exit_code |= 0x80; |
1800 | close_fail: | 1792 | close_fail: |
1801 | filp_close(file, NULL); | 1793 | filp_close(file, NULL); |
1802 | fail_unlock: | 1794 | fail_unlock: |
1795 | if (helper_argv) | ||
1796 | argv_free(helper_argv); | ||
1797 | |||
1803 | current->fsuid = fsuid; | 1798 | current->fsuid = fsuid; |
1804 | complete_all(&mm->core_done); | 1799 | complete_all(&mm->core_done); |
1805 | fail: | 1800 | fail: |
diff --git a/fs/ext2/balloc.c b/fs/ext2/balloc.c index baf71dd721fa..18a42de25b55 100644 --- a/fs/ext2/balloc.c +++ b/fs/ext2/balloc.c | |||
@@ -69,6 +69,14 @@ struct ext2_group_desc * ext2_get_group_desc(struct super_block * sb, | |||
69 | return desc + offset; | 69 | return desc + offset; |
70 | } | 70 | } |
71 | 71 | ||
72 | static inline int | ||
73 | block_in_use(unsigned long block, struct super_block *sb, unsigned char *map) | ||
74 | { | ||
75 | return ext2_test_bit ((block - | ||
76 | le32_to_cpu(EXT2_SB(sb)->s_es->s_first_data_block)) % | ||
77 | EXT2_BLOCKS_PER_GROUP(sb), map); | ||
78 | } | ||
79 | |||
72 | /* | 80 | /* |
73 | * Read the bitmap for a given block_group, reading into the specified | 81 | * Read the bitmap for a given block_group, reading into the specified |
74 | * slot in the superblock's bitmap cache. | 82 | * slot in the superblock's bitmap cache. |
@@ -78,55 +86,51 @@ struct ext2_group_desc * ext2_get_group_desc(struct super_block * sb, | |||
78 | static struct buffer_head * | 86 | static struct buffer_head * |
79 | read_block_bitmap(struct super_block *sb, unsigned int block_group) | 87 | read_block_bitmap(struct super_block *sb, unsigned int block_group) |
80 | { | 88 | { |
89 | int i; | ||
81 | struct ext2_group_desc * desc; | 90 | struct ext2_group_desc * desc; |
82 | struct buffer_head * bh = NULL; | 91 | struct buffer_head * bh = NULL; |
83 | 92 | unsigned int bitmap_blk; | |
93 | |||
84 | desc = ext2_get_group_desc (sb, block_group, NULL); | 94 | desc = ext2_get_group_desc (sb, block_group, NULL); |
85 | if (!desc) | 95 | if (!desc) |
86 | goto error_out; | 96 | return NULL; |
87 | bh = sb_bread(sb, le32_to_cpu(desc->bg_block_bitmap)); | 97 | bitmap_blk = le32_to_cpu(desc->bg_block_bitmap); |
98 | bh = sb_bread(sb, bitmap_blk); | ||
88 | if (!bh) | 99 | if (!bh) |
89 | ext2_error (sb, "read_block_bitmap", | 100 | ext2_error (sb, __FUNCTION__, |
90 | "Cannot read block bitmap - " | 101 | "Cannot read block bitmap - " |
91 | "block_group = %d, block_bitmap = %u", | 102 | "block_group = %d, block_bitmap = %u", |
92 | block_group, le32_to_cpu(desc->bg_block_bitmap)); | 103 | block_group, le32_to_cpu(desc->bg_block_bitmap)); |
93 | error_out: | ||
94 | return bh; | ||
95 | } | ||
96 | |||
97 | /* | ||
98 | * Set sb->s_dirt here because the superblock was "logically" altered. We | ||
99 | * need to recalculate its free blocks count and flush it out. | ||
100 | */ | ||
101 | static int reserve_blocks(struct super_block *sb, int count) | ||
102 | { | ||
103 | struct ext2_sb_info *sbi = EXT2_SB(sb); | ||
104 | struct ext2_super_block *es = sbi->s_es; | ||
105 | unsigned free_blocks; | ||
106 | unsigned root_blocks; | ||
107 | |||
108 | free_blocks = percpu_counter_read_positive(&sbi->s_freeblocks_counter); | ||
109 | root_blocks = le32_to_cpu(es->s_r_blocks_count); | ||
110 | 104 | ||
111 | if (free_blocks < count) | 105 | /* check whether block bitmap block number is set */ |
112 | count = free_blocks; | 106 | if (!block_in_use(bitmap_blk, sb, bh->b_data)) { |
113 | 107 | /* bad block bitmap */ | |
114 | if (free_blocks < root_blocks + count && !capable(CAP_SYS_RESOURCE) && | 108 | goto error_out; |
115 | sbi->s_resuid != current->fsuid && | ||
116 | (sbi->s_resgid == 0 || !in_group_p (sbi->s_resgid))) { | ||
117 | /* | ||
118 | * We are too close to reserve and we are not privileged. | ||
119 | * Can we allocate anything at all? | ||
120 | */ | ||
121 | if (free_blocks > root_blocks) | ||
122 | count = free_blocks - root_blocks; | ||
123 | else | ||
124 | return 0; | ||
125 | } | 109 | } |
110 | /* check whether the inode bitmap block number is set */ | ||
111 | bitmap_blk = le32_to_cpu(desc->bg_inode_bitmap); | ||
112 | if (!block_in_use(bitmap_blk, sb, bh->b_data)) { | ||
113 | /* bad block bitmap */ | ||
114 | goto error_out; | ||
115 | } | ||
116 | /* check whether the inode table block number is set */ | ||
117 | bitmap_blk = le32_to_cpu(desc->bg_inode_table); | ||
118 | for (i = 0; i < EXT2_SB(sb)->s_itb_per_group; i++, bitmap_blk++) { | ||
119 | if (!block_in_use(bitmap_blk, sb, bh->b_data)) { | ||
120 | /* bad block bitmap */ | ||
121 | goto error_out; | ||
122 | } | ||
123 | } | ||
124 | |||
125 | return bh; | ||
126 | 126 | ||
127 | percpu_counter_mod(&sbi->s_freeblocks_counter, -count); | 127 | error_out: |
128 | sb->s_dirt = 1; | 128 | brelse(bh); |
129 | return count; | 129 | ext2_error(sb, __FUNCTION__, |
130 | "Invalid block bitmap - " | ||
131 | "block_group = %d, block = %u", | ||
132 | block_group, bitmap_blk); | ||
133 | return NULL; | ||
130 | } | 134 | } |
131 | 135 | ||
132 | static void release_blocks(struct super_block *sb, int count) | 136 | static void release_blocks(struct super_block *sb, int count) |
@@ -134,30 +138,12 @@ static void release_blocks(struct super_block *sb, int count) | |||
134 | if (count) { | 138 | if (count) { |
135 | struct ext2_sb_info *sbi = EXT2_SB(sb); | 139 | struct ext2_sb_info *sbi = EXT2_SB(sb); |
136 | 140 | ||
137 | percpu_counter_mod(&sbi->s_freeblocks_counter, count); | 141 | percpu_counter_add(&sbi->s_freeblocks_counter, count); |
138 | sb->s_dirt = 1; | 142 | sb->s_dirt = 1; |
139 | } | 143 | } |
140 | } | 144 | } |
141 | 145 | ||
142 | static int group_reserve_blocks(struct ext2_sb_info *sbi, int group_no, | 146 | static void group_adjust_blocks(struct super_block *sb, int group_no, |
143 | struct ext2_group_desc *desc, struct buffer_head *bh, int count) | ||
144 | { | ||
145 | unsigned free_blocks; | ||
146 | |||
147 | if (!desc->bg_free_blocks_count) | ||
148 | return 0; | ||
149 | |||
150 | spin_lock(sb_bgl_lock(sbi, group_no)); | ||
151 | free_blocks = le16_to_cpu(desc->bg_free_blocks_count); | ||
152 | if (free_blocks < count) | ||
153 | count = free_blocks; | ||
154 | desc->bg_free_blocks_count = cpu_to_le16(free_blocks - count); | ||
155 | spin_unlock(sb_bgl_lock(sbi, group_no)); | ||
156 | mark_buffer_dirty(bh); | ||
157 | return count; | ||
158 | } | ||
159 | |||
160 | static void group_release_blocks(struct super_block *sb, int group_no, | ||
161 | struct ext2_group_desc *desc, struct buffer_head *bh, int count) | 147 | struct ext2_group_desc *desc, struct buffer_head *bh, int count) |
162 | { | 148 | { |
163 | if (count) { | 149 | if (count) { |
@@ -173,7 +159,306 @@ static void group_release_blocks(struct super_block *sb, int group_no, | |||
173 | } | 159 | } |
174 | } | 160 | } |
175 | 161 | ||
176 | /* Free given blocks, update quota and i_blocks field */ | 162 | /* |
163 | * The reservation window structure operations | ||
164 | * -------------------------------------------- | ||
165 | * Operations include: | ||
166 | * dump, find, add, remove, is_empty, find_next_reservable_window, etc. | ||
167 | * | ||
168 | * We use a red-black tree to represent per-filesystem reservation | ||
169 | * windows. | ||
170 | * | ||
171 | */ | ||
172 | |||
173 | /** | ||
174 | * __rsv_window_dump() -- Dump the filesystem block allocation reservation map | ||
175 | * @rb_root: root of per-filesystem reservation rb tree | ||
176 | * @verbose: verbose mode | ||
177 | * @fn: function which wishes to dump the reservation map | ||
178 | * | ||
179 | * If verbose is turned on, it will print the whole block reservation | ||
180 | * windows(start, end). Otherwise, it will only print out the "bad" windows, | ||
181 | * those windows that overlap with their immediate neighbors. | ||
182 | */ | ||
183 | #if 1 | ||
184 | static void __rsv_window_dump(struct rb_root *root, int verbose, | ||
185 | const char *fn) | ||
186 | { | ||
187 | struct rb_node *n; | ||
188 | struct ext2_reserve_window_node *rsv, *prev; | ||
189 | int bad; | ||
190 | |||
191 | restart: | ||
192 | n = rb_first(root); | ||
193 | bad = 0; | ||
194 | prev = NULL; | ||
195 | |||
196 | printk("Block Allocation Reservation Windows Map (%s):\n", fn); | ||
197 | while (n) { | ||
198 | rsv = rb_entry(n, struct ext2_reserve_window_node, rsv_node); | ||
199 | if (verbose) | ||
200 | printk("reservation window 0x%p " | ||
201 | "start: %lu, end: %lu\n", | ||
202 | rsv, rsv->rsv_start, rsv->rsv_end); | ||
203 | if (rsv->rsv_start && rsv->rsv_start >= rsv->rsv_end) { | ||
204 | printk("Bad reservation %p (start >= end)\n", | ||
205 | rsv); | ||
206 | bad = 1; | ||
207 | } | ||
208 | if (prev && prev->rsv_end >= rsv->rsv_start) { | ||
209 | printk("Bad reservation %p (prev->end >= start)\n", | ||
210 | rsv); | ||
211 | bad = 1; | ||
212 | } | ||
213 | if (bad) { | ||
214 | if (!verbose) { | ||
215 | printk("Restarting reservation walk in verbose mode\n"); | ||
216 | verbose = 1; | ||
217 | goto restart; | ||
218 | } | ||
219 | } | ||
220 | n = rb_next(n); | ||
221 | prev = rsv; | ||
222 | } | ||
223 | printk("Window map complete.\n"); | ||
224 | if (bad) | ||
225 | BUG(); | ||
226 | } | ||
227 | #define rsv_window_dump(root, verbose) \ | ||
228 | __rsv_window_dump((root), (verbose), __FUNCTION__) | ||
229 | #else | ||
230 | #define rsv_window_dump(root, verbose) do {} while (0) | ||
231 | #endif | ||
232 | |||
233 | /** | ||
234 | * goal_in_my_reservation() | ||
235 | * @rsv: inode's reservation window | ||
236 | * @grp_goal: given goal block relative to the allocation block group | ||
237 | * @group: the current allocation block group | ||
238 | * @sb: filesystem super block | ||
239 | * | ||
240 | * Test if the given goal block (group relative) is within the file's | ||
241 | * own block reservation window range. | ||
242 | * | ||
243 | * If the reservation window is outside the goal allocation group, return 0; | ||
244 | * grp_goal (given goal block) could be -1, which means no specific | ||
245 | * goal block. In this case, always return 1. | ||
246 | * If the goal block is within the reservation window, return 1; | ||
247 | * otherwise, return 0; | ||
248 | */ | ||
249 | static int | ||
250 | goal_in_my_reservation(struct ext2_reserve_window *rsv, ext2_grpblk_t grp_goal, | ||
251 | unsigned int group, struct super_block * sb) | ||
252 | { | ||
253 | ext2_fsblk_t group_first_block, group_last_block; | ||
254 | |||
255 | group_first_block = ext2_group_first_block_no(sb, group); | ||
256 | group_last_block = group_first_block + EXT2_BLOCKS_PER_GROUP(sb) - 1; | ||
257 | |||
258 | if ((rsv->_rsv_start > group_last_block) || | ||
259 | (rsv->_rsv_end < group_first_block)) | ||
260 | return 0; | ||
261 | if ((grp_goal >= 0) && ((grp_goal + group_first_block < rsv->_rsv_start) | ||
262 | || (grp_goal + group_first_block > rsv->_rsv_end))) | ||
263 | return 0; | ||
264 | return 1; | ||
265 | } | ||
266 | |||
267 | /** | ||
268 | * search_reserve_window() | ||
269 | * @rb_root: root of reservation tree | ||
270 | * @goal: target allocation block | ||
271 | * | ||
272 | * Find the reserved window which includes the goal, or the previous one | ||
273 | * if the goal is not in any window. | ||
274 | * Returns NULL if there are no windows or if all windows start after the goal. | ||
275 | */ | ||
276 | static struct ext2_reserve_window_node * | ||
277 | search_reserve_window(struct rb_root *root, ext2_fsblk_t goal) | ||
278 | { | ||
279 | struct rb_node *n = root->rb_node; | ||
280 | struct ext2_reserve_window_node *rsv; | ||
281 | |||
282 | if (!n) | ||
283 | return NULL; | ||
284 | |||
285 | do { | ||
286 | rsv = rb_entry(n, struct ext2_reserve_window_node, rsv_node); | ||
287 | |||
288 | if (goal < rsv->rsv_start) | ||
289 | n = n->rb_left; | ||
290 | else if (goal > rsv->rsv_end) | ||
291 | n = n->rb_right; | ||
292 | else | ||
293 | return rsv; | ||
294 | } while (n); | ||
295 | /* | ||
296 | * We've fallen off the end of the tree: the goal wasn't inside | ||
297 | * any particular node. OK, the previous node must be to one | ||
298 | * side of the interval containing the goal. If it's the RHS, | ||
299 | * we need to back up one. | ||
300 | */ | ||
301 | if (rsv->rsv_start > goal) { | ||
302 | n = rb_prev(&rsv->rsv_node); | ||
303 | rsv = rb_entry(n, struct ext2_reserve_window_node, rsv_node); | ||
304 | } | ||
305 | return rsv; | ||
306 | } | ||
307 | |||
308 | /* | ||
309 | * ext2_rsv_window_add() -- Insert a window to the block reservation rb tree. | ||
310 | * @sb: super block | ||
311 | * @rsv: reservation window to add | ||
312 | * | ||
313 | * Must be called with rsv_lock held. | ||
314 | */ | ||
315 | void ext2_rsv_window_add(struct super_block *sb, | ||
316 | struct ext2_reserve_window_node *rsv) | ||
317 | { | ||
318 | struct rb_root *root = &EXT2_SB(sb)->s_rsv_window_root; | ||
319 | struct rb_node *node = &rsv->rsv_node; | ||
320 | ext2_fsblk_t start = rsv->rsv_start; | ||
321 | |||
322 | struct rb_node ** p = &root->rb_node; | ||
323 | struct rb_node * parent = NULL; | ||
324 | struct ext2_reserve_window_node *this; | ||
325 | |||
326 | while (*p) | ||
327 | { | ||
328 | parent = *p; | ||
329 | this = rb_entry(parent, struct ext2_reserve_window_node, rsv_node); | ||
330 | |||
331 | if (start < this->rsv_start) | ||
332 | p = &(*p)->rb_left; | ||
333 | else if (start > this->rsv_end) | ||
334 | p = &(*p)->rb_right; | ||
335 | else { | ||
336 | rsv_window_dump(root, 1); | ||
337 | BUG(); | ||
338 | } | ||
339 | } | ||
340 | |||
341 | rb_link_node(node, parent, p); | ||
342 | rb_insert_color(node, root); | ||
343 | } | ||
344 | |||
345 | /** | ||
346 | * rsv_window_remove() -- unlink a window from the reservation rb tree | ||
347 | * @sb: super block | ||
348 | * @rsv: reservation window to remove | ||
349 | * | ||
350 | * Mark the block reservation window as not allocated, and unlink it | ||
351 | * from the filesystem reservation window rb tree. Must be called with | ||
352 | * rsv_lock held. | ||
353 | */ | ||
354 | static void rsv_window_remove(struct super_block *sb, | ||
355 | struct ext2_reserve_window_node *rsv) | ||
356 | { | ||
357 | rsv->rsv_start = EXT2_RESERVE_WINDOW_NOT_ALLOCATED; | ||
358 | rsv->rsv_end = EXT2_RESERVE_WINDOW_NOT_ALLOCATED; | ||
359 | rsv->rsv_alloc_hit = 0; | ||
360 | rb_erase(&rsv->rsv_node, &EXT2_SB(sb)->s_rsv_window_root); | ||
361 | } | ||
362 | |||
363 | /* | ||
364 | * rsv_is_empty() -- Check if the reservation window is allocated. | ||
365 | * @rsv: given reservation window to check | ||
366 | * | ||
367 | * returns 1 if the end block is EXT2_RESERVE_WINDOW_NOT_ALLOCATED. | ||
368 | */ | ||
369 | static inline int rsv_is_empty(struct ext2_reserve_window *rsv) | ||
370 | { | ||
371 | /* a valid reservation end block could not be 0 */ | ||
372 | return (rsv->_rsv_end == EXT2_RESERVE_WINDOW_NOT_ALLOCATED); | ||
373 | } | ||
374 | |||
375 | /** | ||
376 | * ext2_init_block_alloc_info() | ||
377 | * @inode: file inode structure | ||
378 | * | ||
379 | * Allocate and initialize the reservation window structure, and | ||
380 | * link the window to the ext2 inode structure at last | ||
381 | * | ||
382 | * The reservation window structure is only dynamically allocated | ||
383 | * and linked to ext2 inode the first time the open file | ||
384 | * needs a new block. So, before every ext2_new_block(s) call, for | ||
385 | * regular files, we should check whether the reservation window | ||
386 | * structure exists or not. In the latter case, this function is called. | ||
387 | * Fail to do so will result in block reservation being turned off for that | ||
388 | * open file. | ||
389 | * | ||
390 | * This function is called from ext2_get_blocks_handle(), also called | ||
391 | * when setting the reservation window size through ioctl before the file | ||
392 | * is open for write (needs block allocation). | ||
393 | * | ||
394 | * Needs truncate_mutex protection prior to calling this function. | ||
395 | */ | ||
396 | void ext2_init_block_alloc_info(struct inode *inode) | ||
397 | { | ||
398 | struct ext2_inode_info *ei = EXT2_I(inode); | ||
399 | struct ext2_block_alloc_info *block_i = ei->i_block_alloc_info; | ||
400 | struct super_block *sb = inode->i_sb; | ||
401 | |||
402 | block_i = kmalloc(sizeof(*block_i), GFP_NOFS); | ||
403 | if (block_i) { | ||
404 | struct ext2_reserve_window_node *rsv = &block_i->rsv_window_node; | ||
405 | |||
406 | rsv->rsv_start = EXT2_RESERVE_WINDOW_NOT_ALLOCATED; | ||
407 | rsv->rsv_end = EXT2_RESERVE_WINDOW_NOT_ALLOCATED; | ||
408 | |||
409 | /* | ||
410 | * if filesystem is mounted with NORESERVATION, the goal | ||
411 | * reservation window size is set to zero to indicate | ||
412 | * block reservation is off | ||
413 | */ | ||
414 | if (!test_opt(sb, RESERVATION)) | ||
415 | rsv->rsv_goal_size = 0; | ||
416 | else | ||
417 | rsv->rsv_goal_size = EXT2_DEFAULT_RESERVE_BLOCKS; | ||
418 | rsv->rsv_alloc_hit = 0; | ||
419 | block_i->last_alloc_logical_block = 0; | ||
420 | block_i->last_alloc_physical_block = 0; | ||
421 | } | ||
422 | ei->i_block_alloc_info = block_i; | ||
423 | } | ||
424 | |||
425 | /** | ||
426 | * ext2_discard_reservation() | ||
427 | * @inode: inode | ||
428 | * | ||
429 | * Discard(free) block reservation window on last file close, or truncate | ||
430 | * or at last iput(). | ||
431 | * | ||
432 | * It is being called in three cases: | ||
433 | * ext2_release_file(): last writer closes the file | ||
434 | * ext2_clear_inode(): last iput(), when nobody links to this file. | ||
435 | * ext2_truncate(): when the block indirect map is about to change. | ||
436 | */ | ||
437 | void ext2_discard_reservation(struct inode *inode) | ||
438 | { | ||
439 | struct ext2_inode_info *ei = EXT2_I(inode); | ||
440 | struct ext2_block_alloc_info *block_i = ei->i_block_alloc_info; | ||
441 | struct ext2_reserve_window_node *rsv; | ||
442 | spinlock_t *rsv_lock = &EXT2_SB(inode->i_sb)->s_rsv_window_lock; | ||
443 | |||
444 | if (!block_i) | ||
445 | return; | ||
446 | |||
447 | rsv = &block_i->rsv_window_node; | ||
448 | if (!rsv_is_empty(&rsv->rsv_window)) { | ||
449 | spin_lock(rsv_lock); | ||
450 | if (!rsv_is_empty(&rsv->rsv_window)) | ||
451 | rsv_window_remove(inode->i_sb, rsv); | ||
452 | spin_unlock(rsv_lock); | ||
453 | } | ||
454 | } | ||
455 | |||
456 | /** | ||
457 | * ext2_free_blocks_sb() -- Free given blocks and update quota and i_blocks | ||
458 | * @inode: inode | ||
459 | * @block: start physcial block to free | ||
460 | * @count: number of blocks to free | ||
461 | */ | ||
177 | void ext2_free_blocks (struct inode * inode, unsigned long block, | 462 | void ext2_free_blocks (struct inode * inode, unsigned long block, |
178 | unsigned long count) | 463 | unsigned long count) |
179 | { | 464 | { |
@@ -248,7 +533,7 @@ do_more: | |||
248 | if (sb->s_flags & MS_SYNCHRONOUS) | 533 | if (sb->s_flags & MS_SYNCHRONOUS) |
249 | sync_dirty_buffer(bitmap_bh); | 534 | sync_dirty_buffer(bitmap_bh); |
250 | 535 | ||
251 | group_release_blocks(sb, block_group, desc, bh2, group_freed); | 536 | group_adjust_blocks(sb, block_group, desc, bh2, group_freed); |
252 | freed += group_freed; | 537 | freed += group_freed; |
253 | 538 | ||
254 | if (overflow) { | 539 | if (overflow) { |
@@ -262,16 +547,46 @@ error_return: | |||
262 | DQUOT_FREE_BLOCK(inode, freed); | 547 | DQUOT_FREE_BLOCK(inode, freed); |
263 | } | 548 | } |
264 | 549 | ||
265 | static int grab_block(spinlock_t *lock, char *map, unsigned size, int goal) | 550 | /** |
551 | * bitmap_search_next_usable_block() | ||
552 | * @start: the starting block (group relative) of the search | ||
553 | * @bh: bufferhead contains the block group bitmap | ||
554 | * @maxblocks: the ending block (group relative) of the reservation | ||
555 | * | ||
556 | * The bitmap search --- search forward through the actual bitmap on disk until | ||
557 | * we find a bit free. | ||
558 | */ | ||
559 | static ext2_grpblk_t | ||
560 | bitmap_search_next_usable_block(ext2_grpblk_t start, struct buffer_head *bh, | ||
561 | ext2_grpblk_t maxblocks) | ||
266 | { | 562 | { |
267 | int k; | 563 | ext2_grpblk_t next; |
268 | char *p, *r; | ||
269 | 564 | ||
270 | if (!ext2_test_bit(goal, map)) | 565 | next = ext2_find_next_zero_bit(bh->b_data, maxblocks, start); |
271 | goto got_it; | 566 | if (next >= maxblocks) |
567 | return -1; | ||
568 | return next; | ||
569 | } | ||
272 | 570 | ||
273 | repeat: | 571 | /** |
274 | if (goal) { | 572 | * find_next_usable_block() |
573 | * @start: the starting block (group relative) to find next | ||
574 | * allocatable block in bitmap. | ||
575 | * @bh: bufferhead contains the block group bitmap | ||
576 | * @maxblocks: the ending block (group relative) for the search | ||
577 | * | ||
578 | * Find an allocatable block in a bitmap. We perform the "most | ||
579 | * appropriate allocation" algorithm of looking for a free block near | ||
580 | * the initial goal; then for a free byte somewhere in the bitmap; | ||
581 | * then for any free bit in the bitmap. | ||
582 | */ | ||
583 | static ext2_grpblk_t | ||
584 | find_next_usable_block(int start, struct buffer_head *bh, int maxblocks) | ||
585 | { | ||
586 | ext2_grpblk_t here, next; | ||
587 | char *p, *r; | ||
588 | |||
589 | if (start > 0) { | ||
275 | /* | 590 | /* |
276 | * The goal was occupied; search forward for a free | 591 | * The goal was occupied; search forward for a free |
277 | * block within the next XX blocks. | 592 | * block within the next XX blocks. |
@@ -280,249 +595,812 @@ repeat: | |||
280 | * less than EXT2_BLOCKS_PER_GROUP. Aligning up to the | 595 | * less than EXT2_BLOCKS_PER_GROUP. Aligning up to the |
281 | * next 64-bit boundary is simple.. | 596 | * next 64-bit boundary is simple.. |
282 | */ | 597 | */ |
283 | k = (goal + 63) & ~63; | 598 | ext2_grpblk_t end_goal = (start + 63) & ~63; |
284 | goal = ext2_find_next_zero_bit(map, k, goal); | 599 | if (end_goal > maxblocks) |
285 | if (goal < k) | 600 | end_goal = maxblocks; |
286 | goto got_it; | 601 | here = ext2_find_next_zero_bit(bh->b_data, end_goal, start); |
602 | if (here < end_goal) | ||
603 | return here; | ||
604 | ext2_debug("Bit not found near goal\n"); | ||
605 | } | ||
606 | |||
607 | here = start; | ||
608 | if (here < 0) | ||
609 | here = 0; | ||
610 | |||
611 | p = ((char *)bh->b_data) + (here >> 3); | ||
612 | r = memscan(p, 0, ((maxblocks + 7) >> 3) - (here >> 3)); | ||
613 | next = (r - ((char *)bh->b_data)) << 3; | ||
614 | |||
615 | if (next < maxblocks && next >= here) | ||
616 | return next; | ||
617 | |||
618 | here = bitmap_search_next_usable_block(here, bh, maxblocks); | ||
619 | return here; | ||
620 | } | ||
621 | |||
622 | /* | ||
623 | * ext2_try_to_allocate() | ||
624 | * @sb: superblock | ||
625 | * @handle: handle to this transaction | ||
626 | * @group: given allocation block group | ||
627 | * @bitmap_bh: bufferhead holds the block bitmap | ||
628 | * @grp_goal: given target block within the group | ||
629 | * @count: target number of blocks to allocate | ||
630 | * @my_rsv: reservation window | ||
631 | * | ||
632 | * Attempt to allocate blocks within a give range. Set the range of allocation | ||
633 | * first, then find the first free bit(s) from the bitmap (within the range), | ||
634 | * and at last, allocate the blocks by claiming the found free bit as allocated. | ||
635 | * | ||
636 | * To set the range of this allocation: | ||
637 | * if there is a reservation window, only try to allocate block(s) | ||
638 | * from the file's own reservation window; | ||
639 | * Otherwise, the allocation range starts from the give goal block, | ||
640 | * ends at the block group's last block. | ||
641 | * | ||
642 | * If we failed to allocate the desired block then we may end up crossing to a | ||
643 | * new bitmap. | ||
644 | */ | ||
645 | static int | ||
646 | ext2_try_to_allocate(struct super_block *sb, int group, | ||
647 | struct buffer_head *bitmap_bh, ext2_grpblk_t grp_goal, | ||
648 | unsigned long *count, | ||
649 | struct ext2_reserve_window *my_rsv) | ||
650 | { | ||
651 | ext2_fsblk_t group_first_block; | ||
652 | ext2_grpblk_t start, end; | ||
653 | unsigned long num = 0; | ||
654 | |||
655 | /* we do allocation within the reservation window if we have a window */ | ||
656 | if (my_rsv) { | ||
657 | group_first_block = ext2_group_first_block_no(sb, group); | ||
658 | if (my_rsv->_rsv_start >= group_first_block) | ||
659 | start = my_rsv->_rsv_start - group_first_block; | ||
660 | else | ||
661 | /* reservation window cross group boundary */ | ||
662 | start = 0; | ||
663 | end = my_rsv->_rsv_end - group_first_block + 1; | ||
664 | if (end > EXT2_BLOCKS_PER_GROUP(sb)) | ||
665 | /* reservation window crosses group boundary */ | ||
666 | end = EXT2_BLOCKS_PER_GROUP(sb); | ||
667 | if ((start <= grp_goal) && (grp_goal < end)) | ||
668 | start = grp_goal; | ||
669 | else | ||
670 | grp_goal = -1; | ||
671 | } else { | ||
672 | if (grp_goal > 0) | ||
673 | start = grp_goal; | ||
674 | else | ||
675 | start = 0; | ||
676 | end = EXT2_BLOCKS_PER_GROUP(sb); | ||
677 | } | ||
678 | |||
679 | BUG_ON(start > EXT2_BLOCKS_PER_GROUP(sb)); | ||
680 | |||
681 | repeat: | ||
682 | if (grp_goal < 0) { | ||
683 | grp_goal = find_next_usable_block(start, bitmap_bh, end); | ||
684 | if (grp_goal < 0) | ||
685 | goto fail_access; | ||
686 | if (!my_rsv) { | ||
687 | int i; | ||
688 | |||
689 | for (i = 0; i < 7 && grp_goal > start && | ||
690 | !ext2_test_bit(grp_goal - 1, | ||
691 | bitmap_bh->b_data); | ||
692 | i++, grp_goal--) | ||
693 | ; | ||
694 | } | ||
695 | } | ||
696 | start = grp_goal; | ||
697 | |||
698 | if (ext2_set_bit_atomic(sb_bgl_lock(EXT2_SB(sb), group), grp_goal, | ||
699 | bitmap_bh->b_data)) { | ||
700 | /* | ||
701 | * The block was allocated by another thread, or it was | ||
702 | * allocated and then freed by another thread | ||
703 | */ | ||
704 | start++; | ||
705 | grp_goal++; | ||
706 | if (start >= end) | ||
707 | goto fail_access; | ||
708 | goto repeat; | ||
709 | } | ||
710 | num++; | ||
711 | grp_goal++; | ||
712 | while (num < *count && grp_goal < end | ||
713 | && !ext2_set_bit_atomic(sb_bgl_lock(EXT2_SB(sb), group), | ||
714 | grp_goal, bitmap_bh->b_data)) { | ||
715 | num++; | ||
716 | grp_goal++; | ||
717 | } | ||
718 | *count = num; | ||
719 | return grp_goal - num; | ||
720 | fail_access: | ||
721 | *count = num; | ||
722 | return -1; | ||
723 | } | ||
724 | |||
725 | /** | ||
726 | * find_next_reservable_window(): | ||
727 | * find a reservable space within the given range. | ||
728 | * It does not allocate the reservation window for now: | ||
729 | * alloc_new_reservation() will do the work later. | ||
730 | * | ||
731 | * @search_head: the head of the searching list; | ||
732 | * This is not necessarily the list head of the whole filesystem | ||
733 | * | ||
734 | * We have both head and start_block to assist the search | ||
735 | * for the reservable space. The list starts from head, | ||
736 | * but we will shift to the place where start_block is, | ||
737 | * then start from there, when looking for a reservable space. | ||
738 | * | ||
739 | * @size: the target new reservation window size | ||
740 | * | ||
741 | * @group_first_block: the first block we consider to start | ||
742 | * the real search from | ||
743 | * | ||
744 | * @last_block: | ||
745 | * the maximum block number that our goal reservable space | ||
746 | * could start from. This is normally the last block in this | ||
747 | * group. The search will end when we found the start of next | ||
748 | * possible reservable space is out of this boundary. | ||
749 | * This could handle the cross boundary reservation window | ||
750 | * request. | ||
751 | * | ||
752 | * basically we search from the given range, rather than the whole | ||
753 | * reservation double linked list, (start_block, last_block) | ||
754 | * to find a free region that is of my size and has not | ||
755 | * been reserved. | ||
756 | * | ||
757 | */ | ||
758 | static int find_next_reservable_window( | ||
759 | struct ext2_reserve_window_node *search_head, | ||
760 | struct ext2_reserve_window_node *my_rsv, | ||
761 | struct super_block * sb, | ||
762 | ext2_fsblk_t start_block, | ||
763 | ext2_fsblk_t last_block) | ||
764 | { | ||
765 | struct rb_node *next; | ||
766 | struct ext2_reserve_window_node *rsv, *prev; | ||
767 | ext2_fsblk_t cur; | ||
768 | int size = my_rsv->rsv_goal_size; | ||
769 | |||
770 | /* TODO: make the start of the reservation window byte-aligned */ | ||
771 | /* cur = *start_block & ~7;*/ | ||
772 | cur = start_block; | ||
773 | rsv = search_head; | ||
774 | if (!rsv) | ||
775 | return -1; | ||
776 | |||
777 | while (1) { | ||
778 | if (cur <= rsv->rsv_end) | ||
779 | cur = rsv->rsv_end + 1; | ||
780 | |||
781 | /* TODO? | ||
782 | * in the case we could not find a reservable space | ||
783 | * that is what is expected, during the re-search, we could | ||
784 | * remember what's the largest reservable space we could have | ||
785 | * and return that one. | ||
786 | * | ||
787 | * For now it will fail if we could not find the reservable | ||
788 | * space with expected-size (or more)... | ||
789 | */ | ||
790 | if (cur > last_block) | ||
791 | return -1; /* fail */ | ||
792 | |||
793 | prev = rsv; | ||
794 | next = rb_next(&rsv->rsv_node); | ||
795 | rsv = rb_entry(next,struct ext2_reserve_window_node,rsv_node); | ||
796 | |||
797 | /* | ||
798 | * Reached the last reservation, we can just append to the | ||
799 | * previous one. | ||
800 | */ | ||
801 | if (!next) | ||
802 | break; | ||
803 | |||
804 | if (cur + size <= rsv->rsv_start) { | ||
805 | /* | ||
806 | * Found a reserveable space big enough. We could | ||
807 | * have a reservation across the group boundary here | ||
808 | */ | ||
809 | break; | ||
810 | } | ||
811 | } | ||
812 | /* | ||
813 | * we come here either : | ||
814 | * when we reach the end of the whole list, | ||
815 | * and there is empty reservable space after last entry in the list. | ||
816 | * append it to the end of the list. | ||
817 | * | ||
818 | * or we found one reservable space in the middle of the list, | ||
819 | * return the reservation window that we could append to. | ||
820 | * succeed. | ||
821 | */ | ||
822 | |||
823 | if ((prev != my_rsv) && (!rsv_is_empty(&my_rsv->rsv_window))) | ||
824 | rsv_window_remove(sb, my_rsv); | ||
825 | |||
826 | /* | ||
827 | * Let's book the whole avaliable window for now. We will check the | ||
828 | * disk bitmap later and then, if there are free blocks then we adjust | ||
829 | * the window size if it's larger than requested. | ||
830 | * Otherwise, we will remove this node from the tree next time | ||
831 | * call find_next_reservable_window. | ||
832 | */ | ||
833 | my_rsv->rsv_start = cur; | ||
834 | my_rsv->rsv_end = cur + size - 1; | ||
835 | my_rsv->rsv_alloc_hit = 0; | ||
836 | |||
837 | if (prev != my_rsv) | ||
838 | ext2_rsv_window_add(sb, my_rsv); | ||
839 | |||
840 | return 0; | ||
841 | } | ||
842 | |||
843 | /** | ||
844 | * alloc_new_reservation()--allocate a new reservation window | ||
845 | * | ||
846 | * To make a new reservation, we search part of the filesystem | ||
847 | * reservation list (the list that inside the group). We try to | ||
848 | * allocate a new reservation window near the allocation goal, | ||
849 | * or the beginning of the group, if there is no goal. | ||
850 | * | ||
851 | * We first find a reservable space after the goal, then from | ||
852 | * there, we check the bitmap for the first free block after | ||
853 | * it. If there is no free block until the end of group, then the | ||
854 | * whole group is full, we failed. Otherwise, check if the free | ||
855 | * block is inside the expected reservable space, if so, we | ||
856 | * succeed. | ||
857 | * If the first free block is outside the reservable space, then | ||
858 | * start from the first free block, we search for next available | ||
859 | * space, and go on. | ||
860 | * | ||
861 | * on succeed, a new reservation will be found and inserted into the list | ||
862 | * It contains at least one free block, and it does not overlap with other | ||
863 | * reservation windows. | ||
864 | * | ||
865 | * failed: we failed to find a reservation window in this group | ||
866 | * | ||
867 | * @rsv: the reservation | ||
868 | * | ||
869 | * @grp_goal: The goal (group-relative). It is where the search for a | ||
870 | * free reservable space should start from. | ||
871 | * if we have a goal(goal >0 ), then start from there, | ||
872 | * no goal(goal = -1), we start from the first block | ||
873 | * of the group. | ||
874 | * | ||
875 | * @sb: the super block | ||
876 | * @group: the group we are trying to allocate in | ||
877 | * @bitmap_bh: the block group block bitmap | ||
878 | * | ||
879 | */ | ||
880 | static int alloc_new_reservation(struct ext2_reserve_window_node *my_rsv, | ||
881 | ext2_grpblk_t grp_goal, struct super_block *sb, | ||
882 | unsigned int group, struct buffer_head *bitmap_bh) | ||
883 | { | ||
884 | struct ext2_reserve_window_node *search_head; | ||
885 | ext2_fsblk_t group_first_block, group_end_block, start_block; | ||
886 | ext2_grpblk_t first_free_block; | ||
887 | struct rb_root *fs_rsv_root = &EXT2_SB(sb)->s_rsv_window_root; | ||
888 | unsigned long size; | ||
889 | int ret; | ||
890 | spinlock_t *rsv_lock = &EXT2_SB(sb)->s_rsv_window_lock; | ||
891 | |||
892 | group_first_block = ext2_group_first_block_no(sb, group); | ||
893 | group_end_block = group_first_block + (EXT2_BLOCKS_PER_GROUP(sb) - 1); | ||
894 | |||
895 | if (grp_goal < 0) | ||
896 | start_block = group_first_block; | ||
897 | else | ||
898 | start_block = grp_goal + group_first_block; | ||
899 | |||
900 | size = my_rsv->rsv_goal_size; | ||
901 | |||
902 | if (!rsv_is_empty(&my_rsv->rsv_window)) { | ||
287 | /* | 903 | /* |
288 | * Search in the remainder of the current group. | 904 | * if the old reservation is cross group boundary |
905 | * and if the goal is inside the old reservation window, | ||
906 | * we will come here when we just failed to allocate from | ||
907 | * the first part of the window. We still have another part | ||
908 | * that belongs to the next group. In this case, there is no | ||
909 | * point to discard our window and try to allocate a new one | ||
910 | * in this group(which will fail). we should | ||
911 | * keep the reservation window, just simply move on. | ||
912 | * | ||
913 | * Maybe we could shift the start block of the reservation | ||
914 | * window to the first block of next group. | ||
289 | */ | 915 | */ |
916 | |||
917 | if ((my_rsv->rsv_start <= group_end_block) && | ||
918 | (my_rsv->rsv_end > group_end_block) && | ||
919 | (start_block >= my_rsv->rsv_start)) | ||
920 | return -1; | ||
921 | |||
922 | if ((my_rsv->rsv_alloc_hit > | ||
923 | (my_rsv->rsv_end - my_rsv->rsv_start + 1) / 2)) { | ||
924 | /* | ||
925 | * if the previously allocation hit ratio is | ||
926 | * greater than 1/2, then we double the size of | ||
927 | * the reservation window the next time, | ||
928 | * otherwise we keep the same size window | ||
929 | */ | ||
930 | size = size * 2; | ||
931 | if (size > EXT2_MAX_RESERVE_BLOCKS) | ||
932 | size = EXT2_MAX_RESERVE_BLOCKS; | ||
933 | my_rsv->rsv_goal_size= size; | ||
934 | } | ||
290 | } | 935 | } |
291 | 936 | ||
292 | p = map + (goal >> 3); | 937 | spin_lock(rsv_lock); |
293 | r = memscan(p, 0, (size - goal + 7) >> 3); | 938 | /* |
294 | k = (r - map) << 3; | 939 | * shift the search start to the window near the goal block |
295 | if (k < size) { | 940 | */ |
296 | /* | 941 | search_head = search_reserve_window(fs_rsv_root, start_block); |
297 | * We have succeeded in finding a free byte in the block | 942 | |
298 | * bitmap. Now search backwards to find the start of this | 943 | /* |
299 | * group of free blocks - won't take more than 7 iterations. | 944 | * find_next_reservable_window() simply finds a reservable window |
945 | * inside the given range(start_block, group_end_block). | ||
946 | * | ||
947 | * To make sure the reservation window has a free bit inside it, we | ||
948 | * need to check the bitmap after we found a reservable window. | ||
949 | */ | ||
950 | retry: | ||
951 | ret = find_next_reservable_window(search_head, my_rsv, sb, | ||
952 | start_block, group_end_block); | ||
953 | |||
954 | if (ret == -1) { | ||
955 | if (!rsv_is_empty(&my_rsv->rsv_window)) | ||
956 | rsv_window_remove(sb, my_rsv); | ||
957 | spin_unlock(rsv_lock); | ||
958 | return -1; | ||
959 | } | ||
960 | |||
961 | /* | ||
962 | * On success, find_next_reservable_window() returns the | ||
963 | * reservation window where there is a reservable space after it. | ||
964 | * Before we reserve this reservable space, we need | ||
965 | * to make sure there is at least a free block inside this region. | ||
966 | * | ||
967 | * Search the first free bit on the block bitmap. Search starts from | ||
968 | * the start block of the reservable space we just found. | ||
969 | */ | ||
970 | spin_unlock(rsv_lock); | ||
971 | first_free_block = bitmap_search_next_usable_block( | ||
972 | my_rsv->rsv_start - group_first_block, | ||
973 | bitmap_bh, group_end_block - group_first_block + 1); | ||
974 | |||
975 | if (first_free_block < 0) { | ||
976 | /* | ||
977 | * no free block left on the bitmap, no point | ||
978 | * to reserve the space. return failed. | ||
300 | */ | 979 | */ |
301 | for (goal = k; goal && !ext2_test_bit (goal - 1, map); goal--) | 980 | spin_lock(rsv_lock); |
302 | ; | 981 | if (!rsv_is_empty(&my_rsv->rsv_window)) |
303 | goto got_it; | 982 | rsv_window_remove(sb, my_rsv); |
983 | spin_unlock(rsv_lock); | ||
984 | return -1; /* failed */ | ||
304 | } | 985 | } |
305 | 986 | ||
306 | k = ext2_find_next_zero_bit ((u32 *)map, size, goal); | 987 | start_block = first_free_block + group_first_block; |
307 | if (k < size) { | 988 | /* |
308 | goal = k; | 989 | * check if the first free block is within the |
309 | goto got_it; | 990 | * free space we just reserved |
991 | */ | ||
992 | if (start_block >= my_rsv->rsv_start && start_block <= my_rsv->rsv_end) | ||
993 | return 0; /* success */ | ||
994 | /* | ||
995 | * if the first free bit we found is out of the reservable space | ||
996 | * continue search for next reservable space, | ||
997 | * start from where the free block is, | ||
998 | * we also shift the list head to where we stopped last time | ||
999 | */ | ||
1000 | search_head = my_rsv; | ||
1001 | spin_lock(rsv_lock); | ||
1002 | goto retry; | ||
1003 | } | ||
1004 | |||
1005 | /** | ||
1006 | * try_to_extend_reservation() | ||
1007 | * @my_rsv: given reservation window | ||
1008 | * @sb: super block | ||
1009 | * @size: the delta to extend | ||
1010 | * | ||
1011 | * Attempt to expand the reservation window large enough to have | ||
1012 | * required number of free blocks | ||
1013 | * | ||
1014 | * Since ext2_try_to_allocate() will always allocate blocks within | ||
1015 | * the reservation window range, if the window size is too small, | ||
1016 | * multiple blocks allocation has to stop at the end of the reservation | ||
1017 | * window. To make this more efficient, given the total number of | ||
1018 | * blocks needed and the current size of the window, we try to | ||
1019 | * expand the reservation window size if necessary on a best-effort | ||
1020 | * basis before ext2_new_blocks() tries to allocate blocks. | ||
1021 | */ | ||
1022 | static void try_to_extend_reservation(struct ext2_reserve_window_node *my_rsv, | ||
1023 | struct super_block *sb, int size) | ||
1024 | { | ||
1025 | struct ext2_reserve_window_node *next_rsv; | ||
1026 | struct rb_node *next; | ||
1027 | spinlock_t *rsv_lock = &EXT2_SB(sb)->s_rsv_window_lock; | ||
1028 | |||
1029 | if (!spin_trylock(rsv_lock)) | ||
1030 | return; | ||
1031 | |||
1032 | next = rb_next(&my_rsv->rsv_node); | ||
1033 | |||
1034 | if (!next) | ||
1035 | my_rsv->rsv_end += size; | ||
1036 | else { | ||
1037 | next_rsv = rb_entry(next, struct ext2_reserve_window_node, rsv_node); | ||
1038 | |||
1039 | if ((next_rsv->rsv_start - my_rsv->rsv_end - 1) >= size) | ||
1040 | my_rsv->rsv_end += size; | ||
1041 | else | ||
1042 | my_rsv->rsv_end = next_rsv->rsv_start - 1; | ||
310 | } | 1043 | } |
311 | return -1; | 1044 | spin_unlock(rsv_lock); |
312 | got_it: | 1045 | } |
313 | if (ext2_set_bit_atomic(lock, goal, (void *) map)) | 1046 | |
314 | goto repeat; | 1047 | /** |
315 | return goal; | 1048 | * ext2_try_to_allocate_with_rsv() |
1049 | * @sb: superblock | ||
1050 | * @group: given allocation block group | ||
1051 | * @bitmap_bh: bufferhead holds the block bitmap | ||
1052 | * @grp_goal: given target block within the group | ||
1053 | * @count: target number of blocks to allocate | ||
1054 | * @my_rsv: reservation window | ||
1055 | * | ||
1056 | * This is the main function used to allocate a new block and its reservation | ||
1057 | * window. | ||
1058 | * | ||
1059 | * Each time when a new block allocation is need, first try to allocate from | ||
1060 | * its own reservation. If it does not have a reservation window, instead of | ||
1061 | * looking for a free bit on bitmap first, then look up the reservation list to | ||
1062 | * see if it is inside somebody else's reservation window, we try to allocate a | ||
1063 | * reservation window for it starting from the goal first. Then do the block | ||
1064 | * allocation within the reservation window. | ||
1065 | * | ||
1066 | * This will avoid keeping on searching the reservation list again and | ||
1067 | * again when somebody is looking for a free block (without | ||
1068 | * reservation), and there are lots of free blocks, but they are all | ||
1069 | * being reserved. | ||
1070 | * | ||
1071 | * We use a red-black tree for the per-filesystem reservation list. | ||
1072 | */ | ||
1073 | static ext2_grpblk_t | ||
1074 | ext2_try_to_allocate_with_rsv(struct super_block *sb, unsigned int group, | ||
1075 | struct buffer_head *bitmap_bh, ext2_grpblk_t grp_goal, | ||
1076 | struct ext2_reserve_window_node * my_rsv, | ||
1077 | unsigned long *count) | ||
1078 | { | ||
1079 | ext2_fsblk_t group_first_block, group_last_block; | ||
1080 | ext2_grpblk_t ret = 0; | ||
1081 | unsigned long num = *count; | ||
1082 | |||
1083 | /* | ||
1084 | * we don't deal with reservation when | ||
1085 | * filesystem is mounted without reservation | ||
1086 | * or the file is not a regular file | ||
1087 | * or last attempt to allocate a block with reservation turned on failed | ||
1088 | */ | ||
1089 | if (my_rsv == NULL) { | ||
1090 | return ext2_try_to_allocate(sb, group, bitmap_bh, | ||
1091 | grp_goal, count, NULL); | ||
1092 | } | ||
1093 | /* | ||
1094 | * grp_goal is a group relative block number (if there is a goal) | ||
1095 | * 0 <= grp_goal < EXT2_BLOCKS_PER_GROUP(sb) | ||
1096 | * first block is a filesystem wide block number | ||
1097 | * first block is the block number of the first block in this group | ||
1098 | */ | ||
1099 | group_first_block = ext2_group_first_block_no(sb, group); | ||
1100 | group_last_block = group_first_block + (EXT2_BLOCKS_PER_GROUP(sb) - 1); | ||
1101 | |||
1102 | /* | ||
1103 | * Basically we will allocate a new block from inode's reservation | ||
1104 | * window. | ||
1105 | * | ||
1106 | * We need to allocate a new reservation window, if: | ||
1107 | * a) inode does not have a reservation window; or | ||
1108 | * b) last attempt to allocate a block from existing reservation | ||
1109 | * failed; or | ||
1110 | * c) we come here with a goal and with a reservation window | ||
1111 | * | ||
1112 | * We do not need to allocate a new reservation window if we come here | ||
1113 | * at the beginning with a goal and the goal is inside the window, or | ||
1114 | * we don't have a goal but already have a reservation window. | ||
1115 | * then we could go to allocate from the reservation window directly. | ||
1116 | */ | ||
1117 | while (1) { | ||
1118 | if (rsv_is_empty(&my_rsv->rsv_window) || (ret < 0) || | ||
1119 | !goal_in_my_reservation(&my_rsv->rsv_window, | ||
1120 | grp_goal, group, sb)) { | ||
1121 | if (my_rsv->rsv_goal_size < *count) | ||
1122 | my_rsv->rsv_goal_size = *count; | ||
1123 | ret = alloc_new_reservation(my_rsv, grp_goal, sb, | ||
1124 | group, bitmap_bh); | ||
1125 | if (ret < 0) | ||
1126 | break; /* failed */ | ||
1127 | |||
1128 | if (!goal_in_my_reservation(&my_rsv->rsv_window, | ||
1129 | grp_goal, group, sb)) | ||
1130 | grp_goal = -1; | ||
1131 | } else if (grp_goal >= 0) { | ||
1132 | int curr = my_rsv->rsv_end - | ||
1133 | (grp_goal + group_first_block) + 1; | ||
1134 | |||
1135 | if (curr < *count) | ||
1136 | try_to_extend_reservation(my_rsv, sb, | ||
1137 | *count - curr); | ||
1138 | } | ||
1139 | |||
1140 | if ((my_rsv->rsv_start > group_last_block) || | ||
1141 | (my_rsv->rsv_end < group_first_block)) { | ||
1142 | rsv_window_dump(&EXT2_SB(sb)->s_rsv_window_root, 1); | ||
1143 | BUG(); | ||
1144 | } | ||
1145 | ret = ext2_try_to_allocate(sb, group, bitmap_bh, grp_goal, | ||
1146 | &num, &my_rsv->rsv_window); | ||
1147 | if (ret >= 0) { | ||
1148 | my_rsv->rsv_alloc_hit += num; | ||
1149 | *count = num; | ||
1150 | break; /* succeed */ | ||
1151 | } | ||
1152 | num = *count; | ||
1153 | } | ||
1154 | return ret; | ||
1155 | } | ||
1156 | |||
1157 | /** | ||
1158 | * ext2_has_free_blocks() | ||
1159 | * @sbi: in-core super block structure. | ||
1160 | * | ||
1161 | * Check if filesystem has at least 1 free block available for allocation. | ||
1162 | */ | ||
1163 | static int ext2_has_free_blocks(struct ext2_sb_info *sbi) | ||
1164 | { | ||
1165 | ext2_fsblk_t free_blocks, root_blocks; | ||
1166 | |||
1167 | free_blocks = percpu_counter_read_positive(&sbi->s_freeblocks_counter); | ||
1168 | root_blocks = le32_to_cpu(sbi->s_es->s_r_blocks_count); | ||
1169 | if (free_blocks < root_blocks + 1 && !capable(CAP_SYS_RESOURCE) && | ||
1170 | sbi->s_resuid != current->fsuid && | ||
1171 | (sbi->s_resgid == 0 || !in_group_p (sbi->s_resgid))) { | ||
1172 | return 0; | ||
1173 | } | ||
1174 | return 1; | ||
316 | } | 1175 | } |
317 | 1176 | ||
318 | /* | 1177 | /* |
319 | * ext2_new_block uses a goal block to assist allocation. If the goal is | 1178 | * ext2_new_blocks() -- core block(s) allocation function |
1179 | * @inode: file inode | ||
1180 | * @goal: given target block(filesystem wide) | ||
1181 | * @count: target number of blocks to allocate | ||
1182 | * @errp: error code | ||
1183 | * | ||
1184 | * ext2_new_blocks uses a goal block to assist allocation. If the goal is | ||
320 | * free, or there is a free block within 32 blocks of the goal, that block | 1185 | * free, or there is a free block within 32 blocks of the goal, that block |
321 | * is allocated. Otherwise a forward search is made for a free block; within | 1186 | * is allocated. Otherwise a forward search is made for a free block; within |
322 | * each block group the search first looks for an entire free byte in the block | 1187 | * each block group the search first looks for an entire free byte in the block |
323 | * bitmap, and then for any free bit if that fails. | 1188 | * bitmap, and then for any free bit if that fails. |
324 | * This function also updates quota and i_blocks field. | 1189 | * This function also updates quota and i_blocks field. |
325 | */ | 1190 | */ |
326 | int ext2_new_block(struct inode *inode, unsigned long goal, | 1191 | ext2_fsblk_t ext2_new_blocks(struct inode *inode, ext2_fsblk_t goal, |
327 | u32 *prealloc_count, u32 *prealloc_block, int *err) | 1192 | unsigned long *count, int *errp) |
328 | { | 1193 | { |
329 | struct buffer_head *bitmap_bh = NULL; | 1194 | struct buffer_head *bitmap_bh = NULL; |
330 | struct buffer_head *gdp_bh; /* bh2 */ | 1195 | struct buffer_head *gdp_bh; |
331 | struct ext2_group_desc *desc; | 1196 | int group_no; |
332 | int group_no; /* i */ | 1197 | int goal_group; |
333 | int ret_block; /* j */ | 1198 | ext2_grpblk_t grp_target_blk; /* blockgroup relative goal block */ |
334 | int group_idx; /* k */ | 1199 | ext2_grpblk_t grp_alloc_blk; /* blockgroup-relative allocated block*/ |
335 | int target_block; /* tmp */ | 1200 | ext2_fsblk_t ret_block; /* filesyetem-wide allocated block */ |
336 | int block = 0; | 1201 | int bgi; /* blockgroup iteration index */ |
337 | struct super_block *sb = inode->i_sb; | 1202 | int performed_allocation = 0; |
338 | struct ext2_sb_info *sbi = EXT2_SB(sb); | 1203 | ext2_grpblk_t free_blocks; /* number of free blocks in a group */ |
339 | struct ext2_super_block *es = sbi->s_es; | 1204 | struct super_block *sb; |
340 | unsigned group_size = EXT2_BLOCKS_PER_GROUP(sb); | 1205 | struct ext2_group_desc *gdp; |
341 | unsigned prealloc_goal = es->s_prealloc_blocks; | 1206 | struct ext2_super_block *es; |
342 | unsigned group_alloc = 0, es_alloc, dq_alloc; | 1207 | struct ext2_sb_info *sbi; |
343 | int nr_scanned_groups; | 1208 | struct ext2_reserve_window_node *my_rsv = NULL; |
344 | 1209 | struct ext2_block_alloc_info *block_i; | |
345 | if (!prealloc_goal--) | 1210 | unsigned short windowsz = 0; |
346 | prealloc_goal = EXT2_DEFAULT_PREALLOC_BLOCKS - 1; | 1211 | unsigned long ngroups; |
347 | if (!prealloc_count || *prealloc_count) | 1212 | unsigned long num = *count; |
348 | prealloc_goal = 0; | 1213 | |
349 | 1214 | *errp = -ENOSPC; | |
350 | if (DQUOT_ALLOC_BLOCK(inode, 1)) { | 1215 | sb = inode->i_sb; |
351 | *err = -EDQUOT; | 1216 | if (!sb) { |
352 | goto out; | 1217 | printk("ext2_new_blocks: nonexistent device"); |
1218 | return 0; | ||
353 | } | 1219 | } |
354 | 1220 | ||
355 | while (prealloc_goal && DQUOT_PREALLOC_BLOCK(inode, prealloc_goal)) | 1221 | /* |
356 | prealloc_goal--; | 1222 | * Check quota for allocation of this block. |
1223 | */ | ||
1224 | if (DQUOT_ALLOC_BLOCK(inode, num)) { | ||
1225 | *errp = -EDQUOT; | ||
1226 | return 0; | ||
1227 | } | ||
357 | 1228 | ||
358 | dq_alloc = prealloc_goal + 1; | 1229 | sbi = EXT2_SB(sb); |
359 | es_alloc = reserve_blocks(sb, dq_alloc); | 1230 | es = EXT2_SB(sb)->s_es; |
360 | if (!es_alloc) { | 1231 | ext2_debug("goal=%lu.\n", goal); |
361 | *err = -ENOSPC; | 1232 | /* |
362 | goto out_dquot; | 1233 | * Allocate a block from reservation only when |
1234 | * filesystem is mounted with reservation(default,-o reservation), and | ||
1235 | * it's a regular file, and | ||
1236 | * the desired window size is greater than 0 (One could use ioctl | ||
1237 | * command EXT2_IOC_SETRSVSZ to set the window size to 0 to turn off | ||
1238 | * reservation on that particular file) | ||
1239 | */ | ||
1240 | block_i = EXT2_I(inode)->i_block_alloc_info; | ||
1241 | if (block_i) { | ||
1242 | windowsz = block_i->rsv_window_node.rsv_goal_size; | ||
1243 | if (windowsz > 0) | ||
1244 | my_rsv = &block_i->rsv_window_node; | ||
363 | } | 1245 | } |
364 | 1246 | ||
365 | ext2_debug ("goal=%lu.\n", goal); | 1247 | if (!ext2_has_free_blocks(sbi)) { |
1248 | *errp = -ENOSPC; | ||
1249 | goto out; | ||
1250 | } | ||
366 | 1251 | ||
1252 | /* | ||
1253 | * First, test whether the goal block is free. | ||
1254 | */ | ||
367 | if (goal < le32_to_cpu(es->s_first_data_block) || | 1255 | if (goal < le32_to_cpu(es->s_first_data_block) || |
368 | goal >= le32_to_cpu(es->s_blocks_count)) | 1256 | goal >= le32_to_cpu(es->s_blocks_count)) |
369 | goal = le32_to_cpu(es->s_first_data_block); | 1257 | goal = le32_to_cpu(es->s_first_data_block); |
370 | group_no = (goal - le32_to_cpu(es->s_first_data_block)) / group_size; | 1258 | group_no = (goal - le32_to_cpu(es->s_first_data_block)) / |
371 | desc = ext2_get_group_desc (sb, group_no, &gdp_bh); | 1259 | EXT2_BLOCKS_PER_GROUP(sb); |
372 | if (!desc) { | 1260 | goal_group = group_no; |
373 | /* | 1261 | retry_alloc: |
374 | * gdp_bh may still be uninitialised. But group_release_blocks | 1262 | gdp = ext2_get_group_desc(sb, group_no, &gdp_bh); |
375 | * will not touch it because group_alloc is zero. | 1263 | if (!gdp) |
376 | */ | ||
377 | goto io_error; | 1264 | goto io_error; |
378 | } | ||
379 | 1265 | ||
380 | group_alloc = group_reserve_blocks(sbi, group_no, desc, | 1266 | free_blocks = le16_to_cpu(gdp->bg_free_blocks_count); |
381 | gdp_bh, es_alloc); | 1267 | /* |
382 | if (group_alloc) { | 1268 | * if there is not enough free blocks to make a new resevation |
383 | ret_block = ((goal - le32_to_cpu(es->s_first_data_block)) % | 1269 | * turn off reservation for this allocation |
384 | group_size); | 1270 | */ |
385 | brelse(bitmap_bh); | 1271 | if (my_rsv && (free_blocks < windowsz) |
1272 | && (rsv_is_empty(&my_rsv->rsv_window))) | ||
1273 | my_rsv = NULL; | ||
1274 | |||
1275 | if (free_blocks > 0) { | ||
1276 | grp_target_blk = ((goal - le32_to_cpu(es->s_first_data_block)) % | ||
1277 | EXT2_BLOCKS_PER_GROUP(sb)); | ||
386 | bitmap_bh = read_block_bitmap(sb, group_no); | 1278 | bitmap_bh = read_block_bitmap(sb, group_no); |
387 | if (!bitmap_bh) | 1279 | if (!bitmap_bh) |
388 | goto io_error; | 1280 | goto io_error; |
389 | 1281 | grp_alloc_blk = ext2_try_to_allocate_with_rsv(sb, group_no, | |
390 | ext2_debug("goal is at %d:%d.\n", group_no, ret_block); | 1282 | bitmap_bh, grp_target_blk, |
391 | 1283 | my_rsv, &num); | |
392 | ret_block = grab_block(sb_bgl_lock(sbi, group_no), | 1284 | if (grp_alloc_blk >= 0) |
393 | bitmap_bh->b_data, group_size, ret_block); | 1285 | goto allocated; |
394 | if (ret_block >= 0) | ||
395 | goto got_block; | ||
396 | group_release_blocks(sb, group_no, desc, gdp_bh, group_alloc); | ||
397 | group_alloc = 0; | ||
398 | } | 1286 | } |
399 | 1287 | ||
400 | ext2_debug ("Bit not found in block group %d.\n", group_no); | 1288 | ngroups = EXT2_SB(sb)->s_groups_count; |
1289 | smp_rmb(); | ||
401 | 1290 | ||
402 | /* | 1291 | /* |
403 | * Now search the rest of the groups. We assume that | 1292 | * Now search the rest of the groups. We assume that |
404 | * i and desc correctly point to the last group visited. | 1293 | * i and gdp correctly point to the last group visited. |
405 | */ | 1294 | */ |
406 | nr_scanned_groups = 0; | 1295 | for (bgi = 0; bgi < ngroups; bgi++) { |
407 | retry: | ||
408 | for (group_idx = 0; !group_alloc && | ||
409 | group_idx < sbi->s_groups_count; group_idx++) { | ||
410 | group_no++; | 1296 | group_no++; |
411 | if (group_no >= sbi->s_groups_count) | 1297 | if (group_no >= ngroups) |
412 | group_no = 0; | 1298 | group_no = 0; |
413 | desc = ext2_get_group_desc(sb, group_no, &gdp_bh); | 1299 | gdp = ext2_get_group_desc(sb, group_no, &gdp_bh); |
414 | if (!desc) | 1300 | if (!gdp) |
415 | goto io_error; | 1301 | goto io_error; |
416 | group_alloc = group_reserve_blocks(sbi, group_no, desc, | ||
417 | gdp_bh, es_alloc); | ||
418 | } | ||
419 | if (!group_alloc) { | ||
420 | *err = -ENOSPC; | ||
421 | goto out_release; | ||
422 | } | ||
423 | brelse(bitmap_bh); | ||
424 | bitmap_bh = read_block_bitmap(sb, group_no); | ||
425 | if (!bitmap_bh) | ||
426 | goto io_error; | ||
427 | 1302 | ||
428 | ret_block = grab_block(sb_bgl_lock(sbi, group_no), bitmap_bh->b_data, | 1303 | free_blocks = le16_to_cpu(gdp->bg_free_blocks_count); |
429 | group_size, 0); | ||
430 | if (ret_block < 0) { | ||
431 | /* | 1304 | /* |
432 | * If a free block counter is corrupted we can loop inifintely. | 1305 | * skip this group if the number of |
433 | * Detect that here. | 1306 | * free blocks is less than half of the reservation |
1307 | * window size. | ||
434 | */ | 1308 | */ |
435 | nr_scanned_groups++; | 1309 | if (free_blocks <= (windowsz/2)) |
436 | if (nr_scanned_groups > 2 * sbi->s_groups_count) { | 1310 | continue; |
437 | ext2_error(sb, "ext2_new_block", | 1311 | |
438 | "corrupted free blocks counters"); | 1312 | brelse(bitmap_bh); |
1313 | bitmap_bh = read_block_bitmap(sb, group_no); | ||
1314 | if (!bitmap_bh) | ||
439 | goto io_error; | 1315 | goto io_error; |
440 | } | ||
441 | /* | 1316 | /* |
442 | * Someone else grabbed the last free block in this blockgroup | 1317 | * try to allocate block(s) from this group, without a goal(-1). |
443 | * before us. Retry the scan. | ||
444 | */ | 1318 | */ |
445 | group_release_blocks(sb, group_no, desc, gdp_bh, group_alloc); | 1319 | grp_alloc_blk = ext2_try_to_allocate_with_rsv(sb, group_no, |
446 | group_alloc = 0; | 1320 | bitmap_bh, -1, my_rsv, &num); |
447 | goto retry; | 1321 | if (grp_alloc_blk >= 0) |
1322 | goto allocated; | ||
1323 | } | ||
1324 | /* | ||
1325 | * We may end up a bogus ealier ENOSPC error due to | ||
1326 | * filesystem is "full" of reservations, but | ||
1327 | * there maybe indeed free blocks avaliable on disk | ||
1328 | * In this case, we just forget about the reservations | ||
1329 | * just do block allocation as without reservations. | ||
1330 | */ | ||
1331 | if (my_rsv) { | ||
1332 | my_rsv = NULL; | ||
1333 | windowsz = 0; | ||
1334 | group_no = goal_group; | ||
1335 | goto retry_alloc; | ||
448 | } | 1336 | } |
1337 | /* No space left on the device */ | ||
1338 | *errp = -ENOSPC; | ||
1339 | goto out; | ||
1340 | |||
1341 | allocated: | ||
449 | 1342 | ||
450 | got_block: | ||
451 | ext2_debug("using block group %d(%d)\n", | 1343 | ext2_debug("using block group %d(%d)\n", |
452 | group_no, desc->bg_free_blocks_count); | 1344 | group_no, gdp->bg_free_blocks_count); |
453 | 1345 | ||
454 | target_block = ret_block + group_no * group_size + | 1346 | ret_block = grp_alloc_blk + ext2_group_first_block_no(sb, group_no); |
455 | le32_to_cpu(es->s_first_data_block); | ||
456 | 1347 | ||
457 | if (target_block == le32_to_cpu(desc->bg_block_bitmap) || | 1348 | if (in_range(le32_to_cpu(gdp->bg_block_bitmap), ret_block, num) || |
458 | target_block == le32_to_cpu(desc->bg_inode_bitmap) || | 1349 | in_range(le32_to_cpu(gdp->bg_inode_bitmap), ret_block, num) || |
459 | in_range(target_block, le32_to_cpu(desc->bg_inode_table), | 1350 | in_range(ret_block, le32_to_cpu(gdp->bg_inode_table), |
460 | sbi->s_itb_per_group)) | 1351 | EXT2_SB(sb)->s_itb_per_group) || |
461 | ext2_error (sb, "ext2_new_block", | 1352 | in_range(ret_block + num - 1, le32_to_cpu(gdp->bg_inode_table), |
1353 | EXT2_SB(sb)->s_itb_per_group)) | ||
1354 | ext2_error(sb, "ext2_new_blocks", | ||
462 | "Allocating block in system zone - " | 1355 | "Allocating block in system zone - " |
463 | "block = %u", target_block); | 1356 | "blocks from "E2FSBLK", length %lu", |
1357 | ret_block, num); | ||
1358 | |||
1359 | performed_allocation = 1; | ||
464 | 1360 | ||
465 | if (target_block >= le32_to_cpu(es->s_blocks_count)) { | 1361 | if (ret_block + num - 1 >= le32_to_cpu(es->s_blocks_count)) { |
466 | ext2_error (sb, "ext2_new_block", | 1362 | ext2_error(sb, "ext2_new_blocks", |
467 | "block(%d) >= blocks count(%d) - " | 1363 | "block("E2FSBLK") >= blocks count(%d) - " |
468 | "block_group = %d, es == %p ", ret_block, | 1364 | "block_group = %d, es == %p ", ret_block, |
469 | le32_to_cpu(es->s_blocks_count), group_no, es); | 1365 | le32_to_cpu(es->s_blocks_count), group_no, es); |
470 | goto io_error; | 1366 | goto out; |
471 | } | 1367 | } |
472 | block = target_block; | ||
473 | 1368 | ||
474 | /* OK, we _had_ allocated something */ | 1369 | group_adjust_blocks(sb, group_no, gdp, gdp_bh, -num); |
475 | ext2_debug("found bit %d\n", ret_block); | 1370 | percpu_counter_sub(&sbi->s_freeblocks_counter, num); |
476 | |||
477 | dq_alloc--; | ||
478 | es_alloc--; | ||
479 | group_alloc--; | ||
480 | |||
481 | /* | ||
482 | * Do block preallocation now if required. | ||
483 | */ | ||
484 | write_lock(&EXT2_I(inode)->i_meta_lock); | ||
485 | if (group_alloc && !*prealloc_count) { | ||
486 | unsigned n; | ||
487 | |||
488 | for (n = 0; n < group_alloc && ++ret_block < group_size; n++) { | ||
489 | if (ext2_set_bit_atomic(sb_bgl_lock(sbi, group_no), | ||
490 | ret_block, | ||
491 | (void*) bitmap_bh->b_data)) | ||
492 | break; | ||
493 | } | ||
494 | *prealloc_block = block + 1; | ||
495 | *prealloc_count = n; | ||
496 | es_alloc -= n; | ||
497 | dq_alloc -= n; | ||
498 | group_alloc -= n; | ||
499 | } | ||
500 | write_unlock(&EXT2_I(inode)->i_meta_lock); | ||
501 | 1371 | ||
502 | mark_buffer_dirty(bitmap_bh); | 1372 | mark_buffer_dirty(bitmap_bh); |
503 | if (sb->s_flags & MS_SYNCHRONOUS) | 1373 | if (sb->s_flags & MS_SYNCHRONOUS) |
504 | sync_dirty_buffer(bitmap_bh); | 1374 | sync_dirty_buffer(bitmap_bh); |
505 | 1375 | ||
506 | ext2_debug ("allocating block %d. ", block); | 1376 | *errp = 0; |
1377 | brelse(bitmap_bh); | ||
1378 | DQUOT_FREE_BLOCK(inode, *count-num); | ||
1379 | *count = num; | ||
1380 | return ret_block; | ||
507 | 1381 | ||
508 | *err = 0; | 1382 | io_error: |
509 | out_release: | 1383 | *errp = -EIO; |
510 | group_release_blocks(sb, group_no, desc, gdp_bh, group_alloc); | ||
511 | release_blocks(sb, es_alloc); | ||
512 | out_dquot: | ||
513 | DQUOT_FREE_BLOCK(inode, dq_alloc); | ||
514 | out: | 1384 | out: |
1385 | /* | ||
1386 | * Undo the block allocation | ||
1387 | */ | ||
1388 | if (!performed_allocation) | ||
1389 | DQUOT_FREE_BLOCK(inode, *count); | ||
515 | brelse(bitmap_bh); | 1390 | brelse(bitmap_bh); |
516 | return block; | 1391 | return 0; |
1392 | } | ||
517 | 1393 | ||
518 | io_error: | 1394 | ext2_fsblk_t ext2_new_block(struct inode *inode, unsigned long goal, int *errp) |
519 | *err = -EIO; | 1395 | { |
520 | goto out_release; | 1396 | unsigned long count = 1; |
1397 | |||
1398 | return ext2_new_blocks(inode, goal, &count, errp); | ||
521 | } | 1399 | } |
522 | 1400 | ||
523 | #ifdef EXT2FS_DEBUG | 1401 | #ifdef EXT2FS_DEBUG |
524 | 1402 | ||
525 | static int nibblemap[] = {4, 3, 3, 2, 3, 2, 2, 1, 3, 2, 2, 1, 2, 1, 1, 0}; | 1403 | static const int nibblemap[] = {4, 3, 3, 2, 3, 2, 2, 1, 3, 2, 2, 1, 2, 1, 1, 0}; |
526 | 1404 | ||
527 | unsigned long ext2_count_free (struct buffer_head * map, unsigned int numchars) | 1405 | unsigned long ext2_count_free (struct buffer_head * map, unsigned int numchars) |
528 | { | 1406 | { |
@@ -583,13 +1461,6 @@ unsigned long ext2_count_free_blocks (struct super_block * sb) | |||
583 | #endif | 1461 | #endif |
584 | } | 1462 | } |
585 | 1463 | ||
586 | static inline int | ||
587 | block_in_use(unsigned long block, struct super_block *sb, unsigned char *map) | ||
588 | { | ||
589 | return ext2_test_bit ((block - | ||
590 | le32_to_cpu(EXT2_SB(sb)->s_es->s_first_data_block)) % | ||
591 | EXT2_BLOCKS_PER_GROUP(sb), map); | ||
592 | } | ||
593 | 1464 | ||
594 | static inline int test_root(int a, int b) | 1465 | static inline int test_root(int a, int b) |
595 | { | 1466 | { |
diff --git a/fs/ext2/ext2.h b/fs/ext2/ext2.h index a08052d2c008..7730388c4931 100644 --- a/fs/ext2/ext2.h +++ b/fs/ext2/ext2.h | |||
@@ -33,22 +33,9 @@ struct ext2_inode_info { | |||
33 | */ | 33 | */ |
34 | __u32 i_block_group; | 34 | __u32 i_block_group; |
35 | 35 | ||
36 | /* | 36 | /* block reservation info */ |
37 | * i_next_alloc_block is the logical (file-relative) number of the | 37 | struct ext2_block_alloc_info *i_block_alloc_info; |
38 | * most-recently-allocated block in this file. Yes, it is misnamed. | ||
39 | * We use this for detecting linearly ascending allocation requests. | ||
40 | */ | ||
41 | __u32 i_next_alloc_block; | ||
42 | 38 | ||
43 | /* | ||
44 | * i_next_alloc_goal is the *physical* companion to i_next_alloc_block. | ||
45 | * it the the physical block number of the block which was most-recently | ||
46 | * allocated to this file. This give us the goal (target) for the next | ||
47 | * allocation when we detect linearly ascending requests. | ||
48 | */ | ||
49 | __u32 i_next_alloc_goal; | ||
50 | __u32 i_prealloc_block; | ||
51 | __u32 i_prealloc_count; | ||
52 | __u32 i_dir_start_lookup; | 39 | __u32 i_dir_start_lookup; |
53 | #ifdef CONFIG_EXT2_FS_XATTR | 40 | #ifdef CONFIG_EXT2_FS_XATTR |
54 | /* | 41 | /* |
@@ -65,7 +52,16 @@ struct ext2_inode_info { | |||
65 | struct posix_acl *i_default_acl; | 52 | struct posix_acl *i_default_acl; |
66 | #endif | 53 | #endif |
67 | rwlock_t i_meta_lock; | 54 | rwlock_t i_meta_lock; |
55 | |||
56 | /* | ||
57 | * truncate_mutex is for serialising ext2_truncate() against | ||
58 | * ext2_getblock(). It also protects the internals of the inode's | ||
59 | * reservation data structures: ext2_reserve_window and | ||
60 | * ext2_reserve_window_node. | ||
61 | */ | ||
62 | struct mutex truncate_mutex; | ||
68 | struct inode vfs_inode; | 63 | struct inode vfs_inode; |
64 | struct list_head i_orphan; /* unlinked but open inodes */ | ||
69 | }; | 65 | }; |
70 | 66 | ||
71 | /* | 67 | /* |
@@ -91,8 +87,9 @@ static inline struct ext2_inode_info *EXT2_I(struct inode *inode) | |||
91 | /* balloc.c */ | 87 | /* balloc.c */ |
92 | extern int ext2_bg_has_super(struct super_block *sb, int group); | 88 | extern int ext2_bg_has_super(struct super_block *sb, int group); |
93 | extern unsigned long ext2_bg_num_gdb(struct super_block *sb, int group); | 89 | extern unsigned long ext2_bg_num_gdb(struct super_block *sb, int group); |
94 | extern int ext2_new_block (struct inode *, unsigned long, | 90 | extern ext2_fsblk_t ext2_new_block(struct inode *, unsigned long, int *); |
95 | __u32 *, __u32 *, int *); | 91 | extern ext2_fsblk_t ext2_new_blocks(struct inode *, unsigned long, |
92 | unsigned long *, int *); | ||
96 | extern void ext2_free_blocks (struct inode *, unsigned long, | 93 | extern void ext2_free_blocks (struct inode *, unsigned long, |
97 | unsigned long); | 94 | unsigned long); |
98 | extern unsigned long ext2_count_free_blocks (struct super_block *); | 95 | extern unsigned long ext2_count_free_blocks (struct super_block *); |
@@ -101,6 +98,10 @@ extern void ext2_check_blocks_bitmap (struct super_block *); | |||
101 | extern struct ext2_group_desc * ext2_get_group_desc(struct super_block * sb, | 98 | extern struct ext2_group_desc * ext2_get_group_desc(struct super_block * sb, |
102 | unsigned int block_group, | 99 | unsigned int block_group, |
103 | struct buffer_head ** bh); | 100 | struct buffer_head ** bh); |
101 | extern void ext2_discard_reservation (struct inode *); | ||
102 | extern int ext2_should_retry_alloc(struct super_block *sb, int *retries); | ||
103 | extern void ext2_init_block_alloc_info(struct inode *); | ||
104 | extern void ext2_rsv_window_add(struct super_block *sb, struct ext2_reserve_window_node *rsv); | ||
104 | 105 | ||
105 | /* dir.c */ | 106 | /* dir.c */ |
106 | extern int ext2_add_link (struct dentry *, struct inode *); | 107 | extern int ext2_add_link (struct dentry *, struct inode *); |
@@ -128,7 +129,6 @@ extern int ext2_write_inode (struct inode *, int); | |||
128 | extern void ext2_put_inode (struct inode *); | 129 | extern void ext2_put_inode (struct inode *); |
129 | extern void ext2_delete_inode (struct inode *); | 130 | extern void ext2_delete_inode (struct inode *); |
130 | extern int ext2_sync_inode (struct inode *); | 131 | extern int ext2_sync_inode (struct inode *); |
131 | extern void ext2_discard_prealloc (struct inode *); | ||
132 | extern int ext2_get_block(struct inode *, sector_t, struct buffer_head *, int); | 132 | extern int ext2_get_block(struct inode *, sector_t, struct buffer_head *, int); |
133 | extern void ext2_truncate (struct inode *); | 133 | extern void ext2_truncate (struct inode *); |
134 | extern int ext2_setattr (struct dentry *, struct iattr *); | 134 | extern int ext2_setattr (struct dentry *, struct iattr *); |
diff --git a/fs/ext2/file.c b/fs/ext2/file.c index ab7961260c49..c051798459a1 100644 --- a/fs/ext2/file.c +++ b/fs/ext2/file.c | |||
@@ -30,8 +30,11 @@ | |||
30 | */ | 30 | */ |
31 | static int ext2_release_file (struct inode * inode, struct file * filp) | 31 | static int ext2_release_file (struct inode * inode, struct file * filp) |
32 | { | 32 | { |
33 | if (filp->f_mode & FMODE_WRITE) | 33 | if (filp->f_mode & FMODE_WRITE) { |
34 | ext2_discard_prealloc (inode); | 34 | mutex_lock(&EXT2_I(inode)->truncate_mutex); |
35 | ext2_discard_reservation(inode); | ||
36 | mutex_unlock(&EXT2_I(inode)->truncate_mutex); | ||
37 | } | ||
35 | return 0; | 38 | return 0; |
36 | } | 39 | } |
37 | 40 | ||
diff --git a/fs/ext2/ialloc.c b/fs/ext2/ialloc.c index 2cb545bf0f3c..5deb8b74e649 100644 --- a/fs/ext2/ialloc.c +++ b/fs/ext2/ialloc.c | |||
@@ -177,7 +177,6 @@ static void ext2_preread_inode(struct inode *inode) | |||
177 | unsigned long block_group; | 177 | unsigned long block_group; |
178 | unsigned long offset; | 178 | unsigned long offset; |
179 | unsigned long block; | 179 | unsigned long block; |
180 | struct buffer_head *bh; | ||
181 | struct ext2_group_desc * gdp; | 180 | struct ext2_group_desc * gdp; |
182 | struct backing_dev_info *bdi; | 181 | struct backing_dev_info *bdi; |
183 | 182 | ||
@@ -188,7 +187,7 @@ static void ext2_preread_inode(struct inode *inode) | |||
188 | return; | 187 | return; |
189 | 188 | ||
190 | block_group = (inode->i_ino - 1) / EXT2_INODES_PER_GROUP(inode->i_sb); | 189 | block_group = (inode->i_ino - 1) / EXT2_INODES_PER_GROUP(inode->i_sb); |
191 | gdp = ext2_get_group_desc(inode->i_sb, block_group, &bh); | 190 | gdp = ext2_get_group_desc(inode->i_sb, block_group, NULL); |
192 | if (gdp == NULL) | 191 | if (gdp == NULL) |
193 | return; | 192 | return; |
194 | 193 | ||
@@ -217,11 +216,10 @@ static int find_group_dir(struct super_block *sb, struct inode *parent) | |||
217 | int ngroups = EXT2_SB(sb)->s_groups_count; | 216 | int ngroups = EXT2_SB(sb)->s_groups_count; |
218 | int avefreei = ext2_count_free_inodes(sb) / ngroups; | 217 | int avefreei = ext2_count_free_inodes(sb) / ngroups; |
219 | struct ext2_group_desc *desc, *best_desc = NULL; | 218 | struct ext2_group_desc *desc, *best_desc = NULL; |
220 | struct buffer_head *bh, *best_bh = NULL; | ||
221 | int group, best_group = -1; | 219 | int group, best_group = -1; |
222 | 220 | ||
223 | for (group = 0; group < ngroups; group++) { | 221 | for (group = 0; group < ngroups; group++) { |
224 | desc = ext2_get_group_desc (sb, group, &bh); | 222 | desc = ext2_get_group_desc (sb, group, NULL); |
225 | if (!desc || !desc->bg_free_inodes_count) | 223 | if (!desc || !desc->bg_free_inodes_count) |
226 | continue; | 224 | continue; |
227 | if (le16_to_cpu(desc->bg_free_inodes_count) < avefreei) | 225 | if (le16_to_cpu(desc->bg_free_inodes_count) < avefreei) |
@@ -231,7 +229,6 @@ static int find_group_dir(struct super_block *sb, struct inode *parent) | |||
231 | le16_to_cpu(best_desc->bg_free_blocks_count))) { | 229 | le16_to_cpu(best_desc->bg_free_blocks_count))) { |
232 | best_group = group; | 230 | best_group = group; |
233 | best_desc = desc; | 231 | best_desc = desc; |
234 | best_bh = bh; | ||
235 | } | 232 | } |
236 | } | 233 | } |
237 | if (!best_desc) | 234 | if (!best_desc) |
@@ -284,7 +281,6 @@ static int find_group_orlov(struct super_block *sb, struct inode *parent) | |||
284 | int max_debt, max_dirs, min_blocks, min_inodes; | 281 | int max_debt, max_dirs, min_blocks, min_inodes; |
285 | int group = -1, i; | 282 | int group = -1, i; |
286 | struct ext2_group_desc *desc; | 283 | struct ext2_group_desc *desc; |
287 | struct buffer_head *bh; | ||
288 | 284 | ||
289 | freei = percpu_counter_read_positive(&sbi->s_freeinodes_counter); | 285 | freei = percpu_counter_read_positive(&sbi->s_freeinodes_counter); |
290 | avefreei = freei / ngroups; | 286 | avefreei = freei / ngroups; |
@@ -295,7 +291,6 @@ static int find_group_orlov(struct super_block *sb, struct inode *parent) | |||
295 | if ((parent == sb->s_root->d_inode) || | 291 | if ((parent == sb->s_root->d_inode) || |
296 | (EXT2_I(parent)->i_flags & EXT2_TOPDIR_FL)) { | 292 | (EXT2_I(parent)->i_flags & EXT2_TOPDIR_FL)) { |
297 | struct ext2_group_desc *best_desc = NULL; | 293 | struct ext2_group_desc *best_desc = NULL; |
298 | struct buffer_head *best_bh = NULL; | ||
299 | int best_ndir = inodes_per_group; | 294 | int best_ndir = inodes_per_group; |
300 | int best_group = -1; | 295 | int best_group = -1; |
301 | 296 | ||
@@ -303,7 +298,7 @@ static int find_group_orlov(struct super_block *sb, struct inode *parent) | |||
303 | parent_group = (unsigned)group % ngroups; | 298 | parent_group = (unsigned)group % ngroups; |
304 | for (i = 0; i < ngroups; i++) { | 299 | for (i = 0; i < ngroups; i++) { |
305 | group = (parent_group + i) % ngroups; | 300 | group = (parent_group + i) % ngroups; |
306 | desc = ext2_get_group_desc (sb, group, &bh); | 301 | desc = ext2_get_group_desc (sb, group, NULL); |
307 | if (!desc || !desc->bg_free_inodes_count) | 302 | if (!desc || !desc->bg_free_inodes_count) |
308 | continue; | 303 | continue; |
309 | if (le16_to_cpu(desc->bg_used_dirs_count) >= best_ndir) | 304 | if (le16_to_cpu(desc->bg_used_dirs_count) >= best_ndir) |
@@ -315,11 +310,9 @@ static int find_group_orlov(struct super_block *sb, struct inode *parent) | |||
315 | best_group = group; | 310 | best_group = group; |
316 | best_ndir = le16_to_cpu(desc->bg_used_dirs_count); | 311 | best_ndir = le16_to_cpu(desc->bg_used_dirs_count); |
317 | best_desc = desc; | 312 | best_desc = desc; |
318 | best_bh = bh; | ||
319 | } | 313 | } |
320 | if (best_group >= 0) { | 314 | if (best_group >= 0) { |
321 | desc = best_desc; | 315 | desc = best_desc; |
322 | bh = best_bh; | ||
323 | group = best_group; | 316 | group = best_group; |
324 | goto found; | 317 | goto found; |
325 | } | 318 | } |
@@ -345,7 +338,7 @@ static int find_group_orlov(struct super_block *sb, struct inode *parent) | |||
345 | 338 | ||
346 | for (i = 0; i < ngroups; i++) { | 339 | for (i = 0; i < ngroups; i++) { |
347 | group = (parent_group + i) % ngroups; | 340 | group = (parent_group + i) % ngroups; |
348 | desc = ext2_get_group_desc (sb, group, &bh); | 341 | desc = ext2_get_group_desc (sb, group, NULL); |
349 | if (!desc || !desc->bg_free_inodes_count) | 342 | if (!desc || !desc->bg_free_inodes_count) |
350 | continue; | 343 | continue; |
351 | if (sbi->s_debts[group] >= max_debt) | 344 | if (sbi->s_debts[group] >= max_debt) |
@@ -362,7 +355,7 @@ static int find_group_orlov(struct super_block *sb, struct inode *parent) | |||
362 | fallback: | 355 | fallback: |
363 | for (i = 0; i < ngroups; i++) { | 356 | for (i = 0; i < ngroups; i++) { |
364 | group = (parent_group + i) % ngroups; | 357 | group = (parent_group + i) % ngroups; |
365 | desc = ext2_get_group_desc (sb, group, &bh); | 358 | desc = ext2_get_group_desc (sb, group, NULL); |
366 | if (!desc || !desc->bg_free_inodes_count) | 359 | if (!desc || !desc->bg_free_inodes_count) |
367 | continue; | 360 | continue; |
368 | if (le16_to_cpu(desc->bg_free_inodes_count) >= avefreei) | 361 | if (le16_to_cpu(desc->bg_free_inodes_count) >= avefreei) |
@@ -389,14 +382,13 @@ static int find_group_other(struct super_block *sb, struct inode *parent) | |||
389 | int parent_group = EXT2_I(parent)->i_block_group; | 382 | int parent_group = EXT2_I(parent)->i_block_group; |
390 | int ngroups = EXT2_SB(sb)->s_groups_count; | 383 | int ngroups = EXT2_SB(sb)->s_groups_count; |
391 | struct ext2_group_desc *desc; | 384 | struct ext2_group_desc *desc; |
392 | struct buffer_head *bh; | ||
393 | int group, i; | 385 | int group, i; |
394 | 386 | ||
395 | /* | 387 | /* |
396 | * Try to place the inode in its parent directory | 388 | * Try to place the inode in its parent directory |
397 | */ | 389 | */ |
398 | group = parent_group; | 390 | group = parent_group; |
399 | desc = ext2_get_group_desc (sb, group, &bh); | 391 | desc = ext2_get_group_desc (sb, group, NULL); |
400 | if (desc && le16_to_cpu(desc->bg_free_inodes_count) && | 392 | if (desc && le16_to_cpu(desc->bg_free_inodes_count) && |
401 | le16_to_cpu(desc->bg_free_blocks_count)) | 393 | le16_to_cpu(desc->bg_free_blocks_count)) |
402 | goto found; | 394 | goto found; |
@@ -420,7 +412,7 @@ static int find_group_other(struct super_block *sb, struct inode *parent) | |||
420 | group += i; | 412 | group += i; |
421 | if (group >= ngroups) | 413 | if (group >= ngroups) |
422 | group -= ngroups; | 414 | group -= ngroups; |
423 | desc = ext2_get_group_desc (sb, group, &bh); | 415 | desc = ext2_get_group_desc (sb, group, NULL); |
424 | if (desc && le16_to_cpu(desc->bg_free_inodes_count) && | 416 | if (desc && le16_to_cpu(desc->bg_free_inodes_count) && |
425 | le16_to_cpu(desc->bg_free_blocks_count)) | 417 | le16_to_cpu(desc->bg_free_blocks_count)) |
426 | goto found; | 418 | goto found; |
@@ -434,7 +426,7 @@ static int find_group_other(struct super_block *sb, struct inode *parent) | |||
434 | for (i = 0; i < ngroups; i++) { | 426 | for (i = 0; i < ngroups; i++) { |
435 | if (++group >= ngroups) | 427 | if (++group >= ngroups) |
436 | group = 0; | 428 | group = 0; |
437 | desc = ext2_get_group_desc (sb, group, &bh); | 429 | desc = ext2_get_group_desc (sb, group, NULL); |
438 | if (desc && le16_to_cpu(desc->bg_free_inodes_count)) | 430 | if (desc && le16_to_cpu(desc->bg_free_inodes_count)) |
439 | goto found; | 431 | goto found; |
440 | } | 432 | } |
@@ -542,7 +534,7 @@ got: | |||
542 | goto fail; | 534 | goto fail; |
543 | } | 535 | } |
544 | 536 | ||
545 | percpu_counter_mod(&sbi->s_freeinodes_counter, -1); | 537 | percpu_counter_add(&sbi->s_freeinodes_counter, -1); |
546 | if (S_ISDIR(mode)) | 538 | if (S_ISDIR(mode)) |
547 | percpu_counter_inc(&sbi->s_dirs_counter); | 539 | percpu_counter_inc(&sbi->s_dirs_counter); |
548 | 540 | ||
@@ -589,11 +581,8 @@ got: | |||
589 | ei->i_file_acl = 0; | 581 | ei->i_file_acl = 0; |
590 | ei->i_dir_acl = 0; | 582 | ei->i_dir_acl = 0; |
591 | ei->i_dtime = 0; | 583 | ei->i_dtime = 0; |
584 | ei->i_block_alloc_info = NULL; | ||
592 | ei->i_block_group = group; | 585 | ei->i_block_group = group; |
593 | ei->i_next_alloc_block = 0; | ||
594 | ei->i_next_alloc_goal = 0; | ||
595 | ei->i_prealloc_block = 0; | ||
596 | ei->i_prealloc_count = 0; | ||
597 | ei->i_dir_start_lookup = 0; | 586 | ei->i_dir_start_lookup = 0; |
598 | ei->i_state = EXT2_STATE_NEW; | 587 | ei->i_state = EXT2_STATE_NEW; |
599 | ext2_set_inode_flags(inode); | 588 | ext2_set_inode_flags(inode); |
diff --git a/fs/ext2/inode.c b/fs/ext2/inode.c index 1b102a1ccebb..b1ab32ab5a77 100644 --- a/fs/ext2/inode.c +++ b/fs/ext2/inode.c | |||
@@ -54,19 +54,6 @@ static inline int ext2_inode_is_fast_symlink(struct inode *inode) | |||
54 | } | 54 | } |
55 | 55 | ||
56 | /* | 56 | /* |
57 | * Called at each iput(). | ||
58 | * | ||
59 | * The inode may be "bad" if ext2_read_inode() saw an error from | ||
60 | * ext2_get_inode(), so we need to check that to avoid freeing random disk | ||
61 | * blocks. | ||
62 | */ | ||
63 | void ext2_put_inode(struct inode *inode) | ||
64 | { | ||
65 | if (!is_bad_inode(inode)) | ||
66 | ext2_discard_prealloc(inode); | ||
67 | } | ||
68 | |||
69 | /* | ||
70 | * Called at the last iput() if i_nlink is zero. | 57 | * Called at the last iput() if i_nlink is zero. |
71 | */ | 58 | */ |
72 | void ext2_delete_inode (struct inode * inode) | 59 | void ext2_delete_inode (struct inode * inode) |
@@ -89,61 +76,6 @@ no_delete: | |||
89 | clear_inode(inode); /* We must guarantee clearing of inode... */ | 76 | clear_inode(inode); /* We must guarantee clearing of inode... */ |
90 | } | 77 | } |
91 | 78 | ||
92 | void ext2_discard_prealloc (struct inode * inode) | ||
93 | { | ||
94 | #ifdef EXT2_PREALLOCATE | ||
95 | struct ext2_inode_info *ei = EXT2_I(inode); | ||
96 | write_lock(&ei->i_meta_lock); | ||
97 | if (ei->i_prealloc_count) { | ||
98 | unsigned short total = ei->i_prealloc_count; | ||
99 | unsigned long block = ei->i_prealloc_block; | ||
100 | ei->i_prealloc_count = 0; | ||
101 | ei->i_prealloc_block = 0; | ||
102 | write_unlock(&ei->i_meta_lock); | ||
103 | ext2_free_blocks (inode, block, total); | ||
104 | return; | ||
105 | } else | ||
106 | write_unlock(&ei->i_meta_lock); | ||
107 | #endif | ||
108 | } | ||
109 | |||
110 | static int ext2_alloc_block (struct inode * inode, unsigned long goal, int *err) | ||
111 | { | ||
112 | #ifdef EXT2FS_DEBUG | ||
113 | static unsigned long alloc_hits, alloc_attempts; | ||
114 | #endif | ||
115 | unsigned long result; | ||
116 | |||
117 | |||
118 | #ifdef EXT2_PREALLOCATE | ||
119 | struct ext2_inode_info *ei = EXT2_I(inode); | ||
120 | write_lock(&ei->i_meta_lock); | ||
121 | if (ei->i_prealloc_count && | ||
122 | (goal == ei->i_prealloc_block || goal + 1 == ei->i_prealloc_block)) | ||
123 | { | ||
124 | result = ei->i_prealloc_block++; | ||
125 | ei->i_prealloc_count--; | ||
126 | write_unlock(&ei->i_meta_lock); | ||
127 | ext2_debug ("preallocation hit (%lu/%lu).\n", | ||
128 | ++alloc_hits, ++alloc_attempts); | ||
129 | } else { | ||
130 | write_unlock(&ei->i_meta_lock); | ||
131 | ext2_discard_prealloc (inode); | ||
132 | ext2_debug ("preallocation miss (%lu/%lu).\n", | ||
133 | alloc_hits, ++alloc_attempts); | ||
134 | if (S_ISREG(inode->i_mode)) | ||
135 | result = ext2_new_block (inode, goal, | ||
136 | &ei->i_prealloc_count, | ||
137 | &ei->i_prealloc_block, err); | ||
138 | else | ||
139 | result = ext2_new_block(inode, goal, NULL, NULL, err); | ||
140 | } | ||
141 | #else | ||
142 | result = ext2_new_block (inode, goal, 0, 0, err); | ||
143 | #endif | ||
144 | return result; | ||
145 | } | ||
146 | |||
147 | typedef struct { | 79 | typedef struct { |
148 | __le32 *p; | 80 | __le32 *p; |
149 | __le32 key; | 81 | __le32 key; |
@@ -228,7 +160,8 @@ static int ext2_block_to_path(struct inode *inode, | |||
228 | ext2_warning (inode->i_sb, "ext2_block_to_path", "block > big"); | 160 | ext2_warning (inode->i_sb, "ext2_block_to_path", "block > big"); |
229 | } | 161 | } |
230 | if (boundary) | 162 | if (boundary) |
231 | *boundary = (i_block & (ptrs - 1)) == (final - 1); | 163 | *boundary = final - 1 - (i_block & (ptrs - 1)); |
164 | |||
232 | return n; | 165 | return n; |
233 | } | 166 | } |
234 | 167 | ||
@@ -355,39 +288,129 @@ static unsigned long ext2_find_near(struct inode *inode, Indirect *ind) | |||
355 | * @block: block we want | 288 | * @block: block we want |
356 | * @chain: chain of indirect blocks | 289 | * @chain: chain of indirect blocks |
357 | * @partial: pointer to the last triple within a chain | 290 | * @partial: pointer to the last triple within a chain |
358 | * @goal: place to store the result. | ||
359 | * | 291 | * |
360 | * Normally this function find the prefered place for block allocation, | 292 | * Returns preferred place for a block (the goal). |
361 | * stores it in *@goal and returns zero. If the branch had been changed | ||
362 | * under us we return -EAGAIN. | ||
363 | */ | 293 | */ |
364 | 294 | ||
365 | static inline int ext2_find_goal(struct inode *inode, | 295 | static inline int ext2_find_goal(struct inode *inode, |
366 | long block, | 296 | long block, |
367 | Indirect chain[4], | 297 | Indirect chain[4], |
368 | Indirect *partial, | 298 | Indirect *partial) |
369 | unsigned long *goal) | ||
370 | { | 299 | { |
371 | struct ext2_inode_info *ei = EXT2_I(inode); | 300 | struct ext2_block_alloc_info *block_i; |
372 | write_lock(&ei->i_meta_lock); | 301 | |
373 | if ((block == ei->i_next_alloc_block + 1) && ei->i_next_alloc_goal) { | 302 | block_i = EXT2_I(inode)->i_block_alloc_info; |
374 | ei->i_next_alloc_block++; | 303 | |
375 | ei->i_next_alloc_goal++; | 304 | /* |
376 | } | 305 | * try the heuristic for sequential allocation, |
377 | if (verify_chain(chain, partial)) { | 306 | * failing that at least try to get decent locality. |
378 | /* | 307 | */ |
379 | * try the heuristic for sequential allocation, | 308 | if (block_i && (block == block_i->last_alloc_logical_block + 1) |
380 | * failing that at least try to get decent locality. | 309 | && (block_i->last_alloc_physical_block != 0)) { |
381 | */ | 310 | return block_i->last_alloc_physical_block + 1; |
382 | if (block == ei->i_next_alloc_block) | ||
383 | *goal = ei->i_next_alloc_goal; | ||
384 | if (!*goal) | ||
385 | *goal = ext2_find_near(inode, partial); | ||
386 | write_unlock(&ei->i_meta_lock); | ||
387 | return 0; | ||
388 | } | 311 | } |
389 | write_unlock(&ei->i_meta_lock); | 312 | |
390 | return -EAGAIN; | 313 | return ext2_find_near(inode, partial); |
314 | } | ||
315 | |||
316 | /** | ||
317 | * ext2_blks_to_allocate: Look up the block map and count the number | ||
318 | * of direct blocks need to be allocated for the given branch. | ||
319 | * | ||
320 | * @branch: chain of indirect blocks | ||
321 | * @k: number of blocks need for indirect blocks | ||
322 | * @blks: number of data blocks to be mapped. | ||
323 | * @blocks_to_boundary: the offset in the indirect block | ||
324 | * | ||
325 | * return the total number of blocks to be allocate, including the | ||
326 | * direct and indirect blocks. | ||
327 | */ | ||
328 | static int | ||
329 | ext2_blks_to_allocate(Indirect * branch, int k, unsigned long blks, | ||
330 | int blocks_to_boundary) | ||
331 | { | ||
332 | unsigned long count = 0; | ||
333 | |||
334 | /* | ||
335 | * Simple case, [t,d]Indirect block(s) has not allocated yet | ||
336 | * then it's clear blocks on that path have not allocated | ||
337 | */ | ||
338 | if (k > 0) { | ||
339 | /* right now don't hanel cross boundary allocation */ | ||
340 | if (blks < blocks_to_boundary + 1) | ||
341 | count += blks; | ||
342 | else | ||
343 | count += blocks_to_boundary + 1; | ||
344 | return count; | ||
345 | } | ||
346 | |||
347 | count++; | ||
348 | while (count < blks && count <= blocks_to_boundary | ||
349 | && le32_to_cpu(*(branch[0].p + count)) == 0) { | ||
350 | count++; | ||
351 | } | ||
352 | return count; | ||
353 | } | ||
354 | |||
355 | /** | ||
356 | * ext2_alloc_blocks: multiple allocate blocks needed for a branch | ||
357 | * @indirect_blks: the number of blocks need to allocate for indirect | ||
358 | * blocks | ||
359 | * | ||
360 | * @new_blocks: on return it will store the new block numbers for | ||
361 | * the indirect blocks(if needed) and the first direct block, | ||
362 | * @blks: on return it will store the total number of allocated | ||
363 | * direct blocks | ||
364 | */ | ||
365 | static int ext2_alloc_blocks(struct inode *inode, | ||
366 | ext2_fsblk_t goal, int indirect_blks, int blks, | ||
367 | ext2_fsblk_t new_blocks[4], int *err) | ||
368 | { | ||
369 | int target, i; | ||
370 | unsigned long count = 0; | ||
371 | int index = 0; | ||
372 | ext2_fsblk_t current_block = 0; | ||
373 | int ret = 0; | ||
374 | |||
375 | /* | ||
376 | * Here we try to allocate the requested multiple blocks at once, | ||
377 | * on a best-effort basis. | ||
378 | * To build a branch, we should allocate blocks for | ||
379 | * the indirect blocks(if not allocated yet), and at least | ||
380 | * the first direct block of this branch. That's the | ||
381 | * minimum number of blocks need to allocate(required) | ||
382 | */ | ||
383 | target = blks + indirect_blks; | ||
384 | |||
385 | while (1) { | ||
386 | count = target; | ||
387 | /* allocating blocks for indirect blocks and direct blocks */ | ||
388 | current_block = ext2_new_blocks(inode,goal,&count,err); | ||
389 | if (*err) | ||
390 | goto failed_out; | ||
391 | |||
392 | target -= count; | ||
393 | /* allocate blocks for indirect blocks */ | ||
394 | while (index < indirect_blks && count) { | ||
395 | new_blocks[index++] = current_block++; | ||
396 | count--; | ||
397 | } | ||
398 | |||
399 | if (count > 0) | ||
400 | break; | ||
401 | } | ||
402 | |||
403 | /* save the new block number for the first direct block */ | ||
404 | new_blocks[index] = current_block; | ||
405 | |||
406 | /* total number of blocks allocated for direct blocks */ | ||
407 | ret = count; | ||
408 | *err = 0; | ||
409 | return ret; | ||
410 | failed_out: | ||
411 | for (i = 0; i <index; i++) | ||
412 | ext2_free_blocks(inode, new_blocks[i], 1); | ||
413 | return ret; | ||
391 | } | 414 | } |
392 | 415 | ||
393 | /** | 416 | /** |
@@ -416,39 +439,49 @@ static inline int ext2_find_goal(struct inode *inode, | |||
416 | */ | 439 | */ |
417 | 440 | ||
418 | static int ext2_alloc_branch(struct inode *inode, | 441 | static int ext2_alloc_branch(struct inode *inode, |
419 | int num, | 442 | int indirect_blks, int *blks, ext2_fsblk_t goal, |
420 | unsigned long goal, | 443 | int *offsets, Indirect *branch) |
421 | int *offsets, | ||
422 | Indirect *branch) | ||
423 | { | 444 | { |
424 | int blocksize = inode->i_sb->s_blocksize; | 445 | int blocksize = inode->i_sb->s_blocksize; |
425 | int n = 0; | 446 | int i, n = 0; |
426 | int err; | 447 | int err = 0; |
427 | int i; | 448 | struct buffer_head *bh; |
428 | int parent = ext2_alloc_block(inode, goal, &err); | 449 | int num; |
429 | 450 | ext2_fsblk_t new_blocks[4]; | |
430 | branch[0].key = cpu_to_le32(parent); | 451 | ext2_fsblk_t current_block; |
431 | if (parent) for (n = 1; n < num; n++) { | 452 | |
432 | struct buffer_head *bh; | 453 | num = ext2_alloc_blocks(inode, goal, indirect_blks, |
433 | /* Allocate the next block */ | 454 | *blks, new_blocks, &err); |
434 | int nr = ext2_alloc_block(inode, parent, &err); | 455 | if (err) |
435 | if (!nr) | 456 | return err; |
436 | break; | 457 | |
437 | branch[n].key = cpu_to_le32(nr); | 458 | branch[0].key = cpu_to_le32(new_blocks[0]); |
459 | /* | ||
460 | * metadata blocks and data blocks are allocated. | ||
461 | */ | ||
462 | for (n = 1; n <= indirect_blks; n++) { | ||
438 | /* | 463 | /* |
439 | * Get buffer_head for parent block, zero it out and set | 464 | * Get buffer_head for parent block, zero it out |
440 | * the pointer to new one, then send parent to disk. | 465 | * and set the pointer to new one, then send |
466 | * parent to disk. | ||
441 | */ | 467 | */ |
442 | bh = sb_getblk(inode->i_sb, parent); | 468 | bh = sb_getblk(inode->i_sb, new_blocks[n-1]); |
443 | if (!bh) { | 469 | branch[n].bh = bh; |
444 | err = -EIO; | ||
445 | break; | ||
446 | } | ||
447 | lock_buffer(bh); | 470 | lock_buffer(bh); |
448 | memset(bh->b_data, 0, blocksize); | 471 | memset(bh->b_data, 0, blocksize); |
449 | branch[n].bh = bh; | ||
450 | branch[n].p = (__le32 *) bh->b_data + offsets[n]; | 472 | branch[n].p = (__le32 *) bh->b_data + offsets[n]; |
473 | branch[n].key = cpu_to_le32(new_blocks[n]); | ||
451 | *branch[n].p = branch[n].key; | 474 | *branch[n].p = branch[n].key; |
475 | if ( n == indirect_blks) { | ||
476 | current_block = new_blocks[n]; | ||
477 | /* | ||
478 | * End of chain, update the last new metablock of | ||
479 | * the chain to point to the new allocated | ||
480 | * data blocks numbers | ||
481 | */ | ||
482 | for (i=1; i < num; i++) | ||
483 | *(branch[n].p + i) = cpu_to_le32(++current_block); | ||
484 | } | ||
452 | set_buffer_uptodate(bh); | 485 | set_buffer_uptodate(bh); |
453 | unlock_buffer(bh); | 486 | unlock_buffer(bh); |
454 | mark_buffer_dirty_inode(bh, inode); | 487 | mark_buffer_dirty_inode(bh, inode); |
@@ -458,77 +491,68 @@ static int ext2_alloc_branch(struct inode *inode, | |||
458 | */ | 491 | */ |
459 | if (S_ISDIR(inode->i_mode) && IS_DIRSYNC(inode)) | 492 | if (S_ISDIR(inode->i_mode) && IS_DIRSYNC(inode)) |
460 | sync_dirty_buffer(bh); | 493 | sync_dirty_buffer(bh); |
461 | parent = nr; | ||
462 | } | 494 | } |
463 | if (n == num) | 495 | *blks = num; |
464 | return 0; | ||
465 | |||
466 | /* Allocation failed, free what we already allocated */ | ||
467 | for (i = 1; i < n; i++) | ||
468 | bforget(branch[i].bh); | ||
469 | for (i = 0; i < n; i++) | ||
470 | ext2_free_blocks(inode, le32_to_cpu(branch[i].key), 1); | ||
471 | return err; | 496 | return err; |
472 | } | 497 | } |
473 | 498 | ||
474 | /** | 499 | /** |
475 | * ext2_splice_branch - splice the allocated branch onto inode. | 500 | * ext2_splice_branch - splice the allocated branch onto inode. |
476 | * @inode: owner | 501 | * @inode: owner |
477 | * @block: (logical) number of block we are adding | 502 | * @block: (logical) number of block we are adding |
478 | * @chain: chain of indirect blocks (with a missing link - see | 503 | * @chain: chain of indirect blocks (with a missing link - see |
479 | * ext2_alloc_branch) | 504 | * ext2_alloc_branch) |
480 | * @where: location of missing link | 505 | * @where: location of missing link |
481 | * @num: number of blocks we are adding | 506 | * @num: number of indirect blocks we are adding |
507 | * @blks: number of direct blocks we are adding | ||
482 | * | 508 | * |
483 | * This function verifies that chain (up to the missing link) had not | 509 | * This function fills the missing link and does all housekeeping needed in |
484 | * changed, fills the missing link and does all housekeeping needed in | 510 | * inode (->i_blocks, etc.). In case of success we end up with the full |
485 | * inode (->i_blocks, etc.). In case of success we end up with the full | 511 | * chain to new block and return 0. |
486 | * chain to new block and return 0. Otherwise (== chain had been changed) | ||
487 | * we free the new blocks (forgetting their buffer_heads, indeed) and | ||
488 | * return -EAGAIN. | ||
489 | */ | 512 | */ |
490 | 513 | static void ext2_splice_branch(struct inode *inode, | |
491 | static inline int ext2_splice_branch(struct inode *inode, | 514 | long block, Indirect *where, int num, int blks) |
492 | long block, | ||
493 | Indirect chain[4], | ||
494 | Indirect *where, | ||
495 | int num) | ||
496 | { | 515 | { |
497 | struct ext2_inode_info *ei = EXT2_I(inode); | ||
498 | int i; | 516 | int i; |
517 | struct ext2_block_alloc_info *block_i; | ||
518 | ext2_fsblk_t current_block; | ||
499 | 519 | ||
500 | /* Verify that place we are splicing to is still there and vacant */ | 520 | block_i = EXT2_I(inode)->i_block_alloc_info; |
501 | |||
502 | write_lock(&ei->i_meta_lock); | ||
503 | if (!verify_chain(chain, where-1) || *where->p) | ||
504 | goto changed; | ||
505 | 521 | ||
522 | /* XXX LOCKING probably should have i_meta_lock ?*/ | ||
506 | /* That's it */ | 523 | /* That's it */ |
507 | 524 | ||
508 | *where->p = where->key; | 525 | *where->p = where->key; |
509 | ei->i_next_alloc_block = block; | ||
510 | ei->i_next_alloc_goal = le32_to_cpu(where[num-1].key); | ||
511 | 526 | ||
512 | write_unlock(&ei->i_meta_lock); | 527 | /* |
528 | * Update the host buffer_head or inode to point to more just allocated | ||
529 | * direct blocks blocks | ||
530 | */ | ||
531 | if (num == 0 && blks > 1) { | ||
532 | current_block = le32_to_cpu(where->key) + 1; | ||
533 | for (i = 1; i < blks; i++) | ||
534 | *(where->p + i ) = cpu_to_le32(current_block++); | ||
535 | } | ||
513 | 536 | ||
514 | /* We are done with atomic stuff, now do the rest of housekeeping */ | 537 | /* |
538 | * update the most recently allocated logical & physical block | ||
539 | * in i_block_alloc_info, to assist find the proper goal block for next | ||
540 | * allocation | ||
541 | */ | ||
542 | if (block_i) { | ||
543 | block_i->last_alloc_logical_block = block + blks - 1; | ||
544 | block_i->last_alloc_physical_block = | ||
545 | le32_to_cpu(where[num].key) + blks - 1; | ||
546 | } | ||
515 | 547 | ||
516 | inode->i_ctime = CURRENT_TIME_SEC; | 548 | /* We are done with atomic stuff, now do the rest of housekeeping */ |
517 | 549 | ||
518 | /* had we spliced it onto indirect block? */ | 550 | /* had we spliced it onto indirect block? */ |
519 | if (where->bh) | 551 | if (where->bh) |
520 | mark_buffer_dirty_inode(where->bh, inode); | 552 | mark_buffer_dirty_inode(where->bh, inode); |
521 | 553 | ||
554 | inode->i_ctime = CURRENT_TIME_SEC; | ||
522 | mark_inode_dirty(inode); | 555 | mark_inode_dirty(inode); |
523 | return 0; | ||
524 | |||
525 | changed: | ||
526 | write_unlock(&ei->i_meta_lock); | ||
527 | for (i = 1; i < num; i++) | ||
528 | bforget(where[i].bh); | ||
529 | for (i = 0; i < num; i++) | ||
530 | ext2_free_blocks(inode, le32_to_cpu(where[i].key), 1); | ||
531 | return -EAGAIN; | ||
532 | } | 556 | } |
533 | 557 | ||
534 | /* | 558 | /* |
@@ -542,64 +566,99 @@ changed: | |||
542 | * That has a nice additional property: no special recovery from the failed | 566 | * That has a nice additional property: no special recovery from the failed |
543 | * allocations is needed - we simply release blocks and do not touch anything | 567 | * allocations is needed - we simply release blocks and do not touch anything |
544 | * reachable from inode. | 568 | * reachable from inode. |
569 | * | ||
570 | * `handle' can be NULL if create == 0. | ||
571 | * | ||
572 | * The BKL may not be held on entry here. Be sure to take it early. | ||
573 | * return > 0, # of blocks mapped or allocated. | ||
574 | * return = 0, if plain lookup failed. | ||
575 | * return < 0, error case. | ||
545 | */ | 576 | */ |
546 | 577 | static int ext2_get_blocks(struct inode *inode, | |
547 | int ext2_get_block(struct inode *inode, sector_t iblock, struct buffer_head *bh_result, int create) | 578 | sector_t iblock, unsigned long maxblocks, |
579 | struct buffer_head *bh_result, | ||
580 | int create) | ||
548 | { | 581 | { |
549 | int err = -EIO; | 582 | int err = -EIO; |
550 | int offsets[4]; | 583 | int offsets[4]; |
551 | Indirect chain[4]; | 584 | Indirect chain[4]; |
552 | Indirect *partial; | 585 | Indirect *partial; |
553 | unsigned long goal; | 586 | ext2_fsblk_t goal; |
554 | int left; | 587 | int indirect_blks; |
555 | int boundary = 0; | 588 | int blocks_to_boundary = 0; |
556 | int depth = ext2_block_to_path(inode, iblock, offsets, &boundary); | 589 | int depth; |
590 | struct ext2_inode_info *ei = EXT2_I(inode); | ||
591 | int count = 0; | ||
592 | ext2_fsblk_t first_block = 0; | ||
557 | 593 | ||
558 | if (depth == 0) | 594 | depth = ext2_block_to_path(inode,iblock,offsets,&blocks_to_boundary); |
559 | goto out; | ||
560 | 595 | ||
596 | if (depth == 0) | ||
597 | return (err); | ||
561 | reread: | 598 | reread: |
562 | partial = ext2_get_branch(inode, depth, offsets, chain, &err); | 599 | partial = ext2_get_branch(inode, depth, offsets, chain, &err); |
563 | 600 | ||
564 | /* Simplest case - block found, no allocation needed */ | 601 | /* Simplest case - block found, no allocation needed */ |
565 | if (!partial) { | 602 | if (!partial) { |
566 | got_it: | 603 | first_block = le32_to_cpu(chain[depth - 1].key); |
567 | map_bh(bh_result, inode->i_sb, le32_to_cpu(chain[depth-1].key)); | 604 | clear_buffer_new(bh_result); /* What's this do? */ |
568 | if (boundary) | 605 | count++; |
569 | set_buffer_boundary(bh_result); | 606 | /*map more blocks*/ |
570 | /* Clean up and exit */ | 607 | while (count < maxblocks && count <= blocks_to_boundary) { |
571 | partial = chain+depth-1; /* the whole chain */ | 608 | ext2_fsblk_t blk; |
572 | goto cleanup; | 609 | |
610 | if (!verify_chain(chain, partial)) { | ||
611 | /* | ||
612 | * Indirect block might be removed by | ||
613 | * truncate while we were reading it. | ||
614 | * Handling of that case: forget what we've | ||
615 | * got now, go to reread. | ||
616 | */ | ||
617 | count = 0; | ||
618 | goto changed; | ||
619 | } | ||
620 | blk = le32_to_cpu(*(chain[depth-1].p + count)); | ||
621 | if (blk == first_block + count) | ||
622 | count++; | ||
623 | else | ||
624 | break; | ||
625 | } | ||
626 | goto got_it; | ||
573 | } | 627 | } |
574 | 628 | ||
575 | /* Next simple case - plain lookup or failed read of indirect block */ | 629 | /* Next simple case - plain lookup or failed read of indirect block */ |
576 | if (!create || err == -EIO) { | 630 | if (!create || err == -EIO) |
577 | cleanup: | 631 | goto cleanup; |
578 | while (partial > chain) { | 632 | |
579 | brelse(partial->bh); | 633 | mutex_lock(&ei->truncate_mutex); |
580 | partial--; | ||
581 | } | ||
582 | out: | ||
583 | return err; | ||
584 | } | ||
585 | 634 | ||
586 | /* | 635 | /* |
587 | * Indirect block might be removed by truncate while we were | 636 | * Okay, we need to do block allocation. Lazily initialize the block |
588 | * reading it. Handling of that case (forget what we've got and | 637 | * allocation info here if necessary |
589 | * reread) is taken out of the main path. | 638 | */ |
590 | */ | 639 | if (S_ISREG(inode->i_mode) && (!ei->i_block_alloc_info)) |
591 | if (err == -EAGAIN) | 640 | ext2_init_block_alloc_info(inode); |
592 | goto changed; | ||
593 | 641 | ||
594 | goal = 0; | 642 | goal = ext2_find_goal(inode, iblock, chain, partial); |
595 | if (ext2_find_goal(inode, iblock, chain, partial, &goal) < 0) | ||
596 | goto changed; | ||
597 | 643 | ||
598 | left = (chain + depth) - partial; | 644 | /* the number of blocks need to allocate for [d,t]indirect blocks */ |
599 | err = ext2_alloc_branch(inode, left, goal, | 645 | indirect_blks = (chain + depth) - partial - 1; |
600 | offsets+(partial-chain), partial); | 646 | /* |
601 | if (err) | 647 | * Next look up the indirect map to count the totoal number of |
648 | * direct blocks to allocate for this branch. | ||
649 | */ | ||
650 | count = ext2_blks_to_allocate(partial, indirect_blks, | ||
651 | maxblocks, blocks_to_boundary); | ||
652 | /* | ||
653 | * XXX ???? Block out ext2_truncate while we alter the tree | ||
654 | */ | ||
655 | err = ext2_alloc_branch(inode, indirect_blks, &count, goal, | ||
656 | offsets + (partial - chain), partial); | ||
657 | |||
658 | if (err) { | ||
659 | mutex_unlock(&ei->truncate_mutex); | ||
602 | goto cleanup; | 660 | goto cleanup; |
661 | } | ||
603 | 662 | ||
604 | if (ext2_use_xip(inode->i_sb)) { | 663 | if (ext2_use_xip(inode->i_sb)) { |
605 | /* | 664 | /* |
@@ -607,16 +666,28 @@ out: | |||
607 | */ | 666 | */ |
608 | err = ext2_clear_xip_target (inode, | 667 | err = ext2_clear_xip_target (inode, |
609 | le32_to_cpu(chain[depth-1].key)); | 668 | le32_to_cpu(chain[depth-1].key)); |
610 | if (err) | 669 | if (err) { |
670 | mutex_unlock(&ei->truncate_mutex); | ||
611 | goto cleanup; | 671 | goto cleanup; |
672 | } | ||
612 | } | 673 | } |
613 | 674 | ||
614 | if (ext2_splice_branch(inode, iblock, chain, partial, left) < 0) | 675 | ext2_splice_branch(inode, iblock, partial, indirect_blks, count); |
615 | goto changed; | 676 | mutex_unlock(&ei->truncate_mutex); |
616 | |||
617 | set_buffer_new(bh_result); | 677 | set_buffer_new(bh_result); |
618 | goto got_it; | 678 | got_it: |
619 | 679 | map_bh(bh_result, inode->i_sb, le32_to_cpu(chain[depth-1].key)); | |
680 | if (count > blocks_to_boundary) | ||
681 | set_buffer_boundary(bh_result); | ||
682 | err = count; | ||
683 | /* Clean up and exit */ | ||
684 | partial = chain + depth - 1; /* the whole chain */ | ||
685 | cleanup: | ||
686 | while (partial > chain) { | ||
687 | brelse(partial->bh); | ||
688 | partial--; | ||
689 | } | ||
690 | return err; | ||
620 | changed: | 691 | changed: |
621 | while (partial > chain) { | 692 | while (partial > chain) { |
622 | brelse(partial->bh); | 693 | brelse(partial->bh); |
@@ -625,6 +696,19 @@ changed: | |||
625 | goto reread; | 696 | goto reread; |
626 | } | 697 | } |
627 | 698 | ||
699 | int ext2_get_block(struct inode *inode, sector_t iblock, struct buffer_head *bh_result, int create) | ||
700 | { | ||
701 | unsigned max_blocks = bh_result->b_size >> inode->i_blkbits; | ||
702 | int ret = ext2_get_blocks(inode, iblock, max_blocks, | ||
703 | bh_result, create); | ||
704 | if (ret > 0) { | ||
705 | bh_result->b_size = (ret << inode->i_blkbits); | ||
706 | ret = 0; | ||
707 | } | ||
708 | return ret; | ||
709 | |||
710 | } | ||
711 | |||
628 | static int ext2_writepage(struct page *page, struct writeback_control *wbc) | 712 | static int ext2_writepage(struct page *page, struct writeback_control *wbc) |
629 | { | 713 | { |
630 | return block_write_full_page(page, ext2_get_block, wbc); | 714 | return block_write_full_page(page, ext2_get_block, wbc); |
@@ -913,9 +997,10 @@ static void ext2_free_branches(struct inode *inode, __le32 *p, __le32 *q, int de | |||
913 | ext2_free_data(inode, p, q); | 997 | ext2_free_data(inode, p, q); |
914 | } | 998 | } |
915 | 999 | ||
916 | void ext2_truncate (struct inode * inode) | 1000 | void ext2_truncate(struct inode *inode) |
917 | { | 1001 | { |
918 | __le32 *i_data = EXT2_I(inode)->i_data; | 1002 | __le32 *i_data = EXT2_I(inode)->i_data; |
1003 | struct ext2_inode_info *ei = EXT2_I(inode); | ||
919 | int addr_per_block = EXT2_ADDR_PER_BLOCK(inode->i_sb); | 1004 | int addr_per_block = EXT2_ADDR_PER_BLOCK(inode->i_sb); |
920 | int offsets[4]; | 1005 | int offsets[4]; |
921 | Indirect chain[4]; | 1006 | Indirect chain[4]; |
@@ -933,8 +1018,6 @@ void ext2_truncate (struct inode * inode) | |||
933 | if (IS_APPEND(inode) || IS_IMMUTABLE(inode)) | 1018 | if (IS_APPEND(inode) || IS_IMMUTABLE(inode)) |
934 | return; | 1019 | return; |
935 | 1020 | ||
936 | ext2_discard_prealloc(inode); | ||
937 | |||
938 | blocksize = inode->i_sb->s_blocksize; | 1021 | blocksize = inode->i_sb->s_blocksize; |
939 | iblock = (inode->i_size + blocksize-1) | 1022 | iblock = (inode->i_size + blocksize-1) |
940 | >> EXT2_BLOCK_SIZE_BITS(inode->i_sb); | 1023 | >> EXT2_BLOCK_SIZE_BITS(inode->i_sb); |
@@ -952,6 +1035,12 @@ void ext2_truncate (struct inode * inode) | |||
952 | if (n == 0) | 1035 | if (n == 0) |
953 | return; | 1036 | return; |
954 | 1037 | ||
1038 | /* | ||
1039 | * From here we block out all ext2_get_block() callers who want to | ||
1040 | * modify the block allocation tree. | ||
1041 | */ | ||
1042 | mutex_lock(&ei->truncate_mutex); | ||
1043 | |||
955 | if (n == 1) { | 1044 | if (n == 1) { |
956 | ext2_free_data(inode, i_data+offsets[0], | 1045 | ext2_free_data(inode, i_data+offsets[0], |
957 | i_data + EXT2_NDIR_BLOCKS); | 1046 | i_data + EXT2_NDIR_BLOCKS); |
@@ -1004,6 +1093,10 @@ do_indirects: | |||
1004 | case EXT2_TIND_BLOCK: | 1093 | case EXT2_TIND_BLOCK: |
1005 | ; | 1094 | ; |
1006 | } | 1095 | } |
1096 | |||
1097 | ext2_discard_reservation(inode); | ||
1098 | |||
1099 | mutex_unlock(&ei->truncate_mutex); | ||
1007 | inode->i_mtime = inode->i_ctime = CURRENT_TIME_SEC; | 1100 | inode->i_mtime = inode->i_ctime = CURRENT_TIME_SEC; |
1008 | if (inode_needs_sync(inode)) { | 1101 | if (inode_needs_sync(inode)) { |
1009 | sync_mapping_buffers(inode->i_mapping); | 1102 | sync_mapping_buffers(inode->i_mapping); |
@@ -1028,7 +1121,7 @@ static struct ext2_inode *ext2_get_inode(struct super_block *sb, ino_t ino, | |||
1028 | goto Einval; | 1121 | goto Einval; |
1029 | 1122 | ||
1030 | block_group = (ino - 1) / EXT2_INODES_PER_GROUP(sb); | 1123 | block_group = (ino - 1) / EXT2_INODES_PER_GROUP(sb); |
1031 | gdp = ext2_get_group_desc(sb, block_group, &bh); | 1124 | gdp = ext2_get_group_desc(sb, block_group, NULL); |
1032 | if (!gdp) | 1125 | if (!gdp) |
1033 | goto Egdp; | 1126 | goto Egdp; |
1034 | /* | 1127 | /* |
@@ -1104,6 +1197,8 @@ void ext2_read_inode (struct inode * inode) | |||
1104 | ei->i_acl = EXT2_ACL_NOT_CACHED; | 1197 | ei->i_acl = EXT2_ACL_NOT_CACHED; |
1105 | ei->i_default_acl = EXT2_ACL_NOT_CACHED; | 1198 | ei->i_default_acl = EXT2_ACL_NOT_CACHED; |
1106 | #endif | 1199 | #endif |
1200 | ei->i_block_alloc_info = NULL; | ||
1201 | |||
1107 | if (IS_ERR(raw_inode)) | 1202 | if (IS_ERR(raw_inode)) |
1108 | goto bad_inode; | 1203 | goto bad_inode; |
1109 | 1204 | ||
@@ -1145,9 +1240,6 @@ void ext2_read_inode (struct inode * inode) | |||
1145 | ei->i_dtime = 0; | 1240 | ei->i_dtime = 0; |
1146 | inode->i_generation = le32_to_cpu(raw_inode->i_generation); | 1241 | inode->i_generation = le32_to_cpu(raw_inode->i_generation); |
1147 | ei->i_state = 0; | 1242 | ei->i_state = 0; |
1148 | ei->i_next_alloc_block = 0; | ||
1149 | ei->i_next_alloc_goal = 0; | ||
1150 | ei->i_prealloc_count = 0; | ||
1151 | ei->i_block_group = (ino - 1) / EXT2_INODES_PER_GROUP(inode->i_sb); | 1243 | ei->i_block_group = (ino - 1) / EXT2_INODES_PER_GROUP(inode->i_sb); |
1152 | ei->i_dir_start_lookup = 0; | 1244 | ei->i_dir_start_lookup = 0; |
1153 | 1245 | ||
diff --git a/fs/ext2/ioctl.c b/fs/ext2/ioctl.c index 3bcd25422ee4..c2324d5fe4ac 100644 --- a/fs/ext2/ioctl.c +++ b/fs/ext2/ioctl.c | |||
@@ -22,6 +22,7 @@ int ext2_ioctl (struct inode * inode, struct file * filp, unsigned int cmd, | |||
22 | { | 22 | { |
23 | struct ext2_inode_info *ei = EXT2_I(inode); | 23 | struct ext2_inode_info *ei = EXT2_I(inode); |
24 | unsigned int flags; | 24 | unsigned int flags; |
25 | unsigned short rsv_window_size; | ||
25 | 26 | ||
26 | ext2_debug ("cmd = %u, arg = %lu\n", cmd, arg); | 27 | ext2_debug ("cmd = %u, arg = %lu\n", cmd, arg); |
27 | 28 | ||
@@ -83,6 +84,50 @@ int ext2_ioctl (struct inode * inode, struct file * filp, unsigned int cmd, | |||
83 | inode->i_ctime = CURRENT_TIME_SEC; | 84 | inode->i_ctime = CURRENT_TIME_SEC; |
84 | mark_inode_dirty(inode); | 85 | mark_inode_dirty(inode); |
85 | return 0; | 86 | return 0; |
87 | case EXT2_IOC_GETRSVSZ: | ||
88 | if (test_opt(inode->i_sb, RESERVATION) | ||
89 | && S_ISREG(inode->i_mode) | ||
90 | && ei->i_block_alloc_info) { | ||
91 | rsv_window_size = ei->i_block_alloc_info->rsv_window_node.rsv_goal_size; | ||
92 | return put_user(rsv_window_size, (int __user *)arg); | ||
93 | } | ||
94 | return -ENOTTY; | ||
95 | case EXT2_IOC_SETRSVSZ: { | ||
96 | |||
97 | if (!test_opt(inode->i_sb, RESERVATION) ||!S_ISREG(inode->i_mode)) | ||
98 | return -ENOTTY; | ||
99 | |||
100 | if (IS_RDONLY(inode)) | ||
101 | return -EROFS; | ||
102 | |||
103 | if ((current->fsuid != inode->i_uid) && !capable(CAP_FOWNER)) | ||
104 | return -EACCES; | ||
105 | |||
106 | if (get_user(rsv_window_size, (int __user *)arg)) | ||
107 | return -EFAULT; | ||
108 | |||
109 | if (rsv_window_size > EXT2_MAX_RESERVE_BLOCKS) | ||
110 | rsv_window_size = EXT2_MAX_RESERVE_BLOCKS; | ||
111 | |||
112 | /* | ||
113 | * need to allocate reservation structure for this inode | ||
114 | * before set the window size | ||
115 | */ | ||
116 | /* | ||
117 | * XXX What lock should protect the rsv_goal_size? | ||
118 | * Accessed in ext2_get_block only. ext3 uses i_truncate. | ||
119 | */ | ||
120 | mutex_lock(&ei->truncate_mutex); | ||
121 | if (!ei->i_block_alloc_info) | ||
122 | ext2_init_block_alloc_info(inode); | ||
123 | |||
124 | if (ei->i_block_alloc_info){ | ||
125 | struct ext2_reserve_window_node *rsv = &ei->i_block_alloc_info->rsv_window_node; | ||
126 | rsv->rsv_goal_size = rsv_window_size; | ||
127 | } | ||
128 | mutex_unlock(&ei->truncate_mutex); | ||
129 | return 0; | ||
130 | } | ||
86 | default: | 131 | default: |
87 | return -ENOTTY; | 132 | return -ENOTTY; |
88 | } | 133 | } |
diff --git a/fs/ext2/super.c b/fs/ext2/super.c index 639a32c3c9c1..77bd5f9262f9 100644 --- a/fs/ext2/super.c +++ b/fs/ext2/super.c | |||
@@ -30,6 +30,7 @@ | |||
30 | #include <linux/vfs.h> | 30 | #include <linux/vfs.h> |
31 | #include <linux/seq_file.h> | 31 | #include <linux/seq_file.h> |
32 | #include <linux/mount.h> | 32 | #include <linux/mount.h> |
33 | #include <linux/log2.h> | ||
33 | #include <asm/uaccess.h> | 34 | #include <asm/uaccess.h> |
34 | #include "ext2.h" | 35 | #include "ext2.h" |
35 | #include "xattr.h" | 36 | #include "xattr.h" |
@@ -148,6 +149,7 @@ static struct inode *ext2_alloc_inode(struct super_block *sb) | |||
148 | ei->i_acl = EXT2_ACL_NOT_CACHED; | 149 | ei->i_acl = EXT2_ACL_NOT_CACHED; |
149 | ei->i_default_acl = EXT2_ACL_NOT_CACHED; | 150 | ei->i_default_acl = EXT2_ACL_NOT_CACHED; |
150 | #endif | 151 | #endif |
152 | ei->i_block_alloc_info = NULL; | ||
151 | ei->vfs_inode.i_version = 1; | 153 | ei->vfs_inode.i_version = 1; |
152 | return &ei->vfs_inode; | 154 | return &ei->vfs_inode; |
153 | } | 155 | } |
@@ -157,7 +159,7 @@ static void ext2_destroy_inode(struct inode *inode) | |||
157 | kmem_cache_free(ext2_inode_cachep, EXT2_I(inode)); | 159 | kmem_cache_free(ext2_inode_cachep, EXT2_I(inode)); |
158 | } | 160 | } |
159 | 161 | ||
160 | static void init_once(void * foo, struct kmem_cache * cachep, unsigned long flags) | 162 | static void init_once(struct kmem_cache * cachep, void *foo) |
161 | { | 163 | { |
162 | struct ext2_inode_info *ei = (struct ext2_inode_info *) foo; | 164 | struct ext2_inode_info *ei = (struct ext2_inode_info *) foo; |
163 | 165 | ||
@@ -165,6 +167,7 @@ static void init_once(void * foo, struct kmem_cache * cachep, unsigned long flag | |||
165 | #ifdef CONFIG_EXT2_FS_XATTR | 167 | #ifdef CONFIG_EXT2_FS_XATTR |
166 | init_rwsem(&ei->xattr_sem); | 168 | init_rwsem(&ei->xattr_sem); |
167 | #endif | 169 | #endif |
170 | mutex_init(&ei->truncate_mutex); | ||
168 | inode_init_once(&ei->vfs_inode); | 171 | inode_init_once(&ei->vfs_inode); |
169 | } | 172 | } |
170 | 173 | ||
@@ -187,6 +190,7 @@ static void destroy_inodecache(void) | |||
187 | 190 | ||
188 | static void ext2_clear_inode(struct inode *inode) | 191 | static void ext2_clear_inode(struct inode *inode) |
189 | { | 192 | { |
193 | struct ext2_block_alloc_info *rsv = EXT2_I(inode)->i_block_alloc_info; | ||
190 | #ifdef CONFIG_EXT2_FS_POSIX_ACL | 194 | #ifdef CONFIG_EXT2_FS_POSIX_ACL |
191 | struct ext2_inode_info *ei = EXT2_I(inode); | 195 | struct ext2_inode_info *ei = EXT2_I(inode); |
192 | 196 | ||
@@ -199,14 +203,74 @@ static void ext2_clear_inode(struct inode *inode) | |||
199 | ei->i_default_acl = EXT2_ACL_NOT_CACHED; | 203 | ei->i_default_acl = EXT2_ACL_NOT_CACHED; |
200 | } | 204 | } |
201 | #endif | 205 | #endif |
206 | ext2_discard_reservation(inode); | ||
207 | EXT2_I(inode)->i_block_alloc_info = NULL; | ||
208 | if (unlikely(rsv)) | ||
209 | kfree(rsv); | ||
202 | } | 210 | } |
203 | 211 | ||
204 | static int ext2_show_options(struct seq_file *seq, struct vfsmount *vfs) | 212 | static int ext2_show_options(struct seq_file *seq, struct vfsmount *vfs) |
205 | { | 213 | { |
206 | struct ext2_sb_info *sbi = EXT2_SB(vfs->mnt_sb); | 214 | struct super_block *sb = vfs->mnt_sb; |
215 | struct ext2_sb_info *sbi = EXT2_SB(sb); | ||
216 | struct ext2_super_block *es = sbi->s_es; | ||
217 | unsigned long def_mount_opts; | ||
218 | |||
219 | def_mount_opts = le32_to_cpu(es->s_default_mount_opts); | ||
207 | 220 | ||
208 | if (sbi->s_mount_opt & EXT2_MOUNT_GRPID) | 221 | if (sbi->s_sb_block != 1) |
222 | seq_printf(seq, ",sb=%lu", sbi->s_sb_block); | ||
223 | if (test_opt(sb, MINIX_DF)) | ||
224 | seq_puts(seq, ",minixdf"); | ||
225 | if (test_opt(sb, GRPID)) | ||
209 | seq_puts(seq, ",grpid"); | 226 | seq_puts(seq, ",grpid"); |
227 | if (!test_opt(sb, GRPID) && (def_mount_opts & EXT2_DEFM_BSDGROUPS)) | ||
228 | seq_puts(seq, ",nogrpid"); | ||
229 | if (sbi->s_resuid != EXT2_DEF_RESUID || | ||
230 | le16_to_cpu(es->s_def_resuid) != EXT2_DEF_RESUID) { | ||
231 | seq_printf(seq, ",resuid=%u", sbi->s_resuid); | ||
232 | } | ||
233 | if (sbi->s_resgid != EXT2_DEF_RESGID || | ||
234 | le16_to_cpu(es->s_def_resgid) != EXT2_DEF_RESGID) { | ||
235 | seq_printf(seq, ",resgid=%u", sbi->s_resgid); | ||
236 | } | ||
237 | if (test_opt(sb, ERRORS_CONT)) { | ||
238 | int def_errors = le16_to_cpu(es->s_errors); | ||
239 | |||
240 | if (def_errors == EXT2_ERRORS_PANIC || | ||
241 | def_errors == EXT2_ERRORS_RO) { | ||
242 | seq_puts(seq, ",errors=continue"); | ||
243 | } | ||
244 | } | ||
245 | if (test_opt(sb, ERRORS_RO)) | ||
246 | seq_puts(seq, ",errors=remount-ro"); | ||
247 | if (test_opt(sb, ERRORS_PANIC)) | ||
248 | seq_puts(seq, ",errors=panic"); | ||
249 | if (test_opt(sb, NO_UID32)) | ||
250 | seq_puts(seq, ",nouid32"); | ||
251 | if (test_opt(sb, DEBUG)) | ||
252 | seq_puts(seq, ",debug"); | ||
253 | if (test_opt(sb, OLDALLOC)) | ||
254 | seq_puts(seq, ",oldalloc"); | ||
255 | |||
256 | #ifdef CONFIG_EXT2_FS_XATTR | ||
257 | if (test_opt(sb, XATTR_USER)) | ||
258 | seq_puts(seq, ",user_xattr"); | ||
259 | if (!test_opt(sb, XATTR_USER) && | ||
260 | (def_mount_opts & EXT2_DEFM_XATTR_USER)) { | ||
261 | seq_puts(seq, ",nouser_xattr"); | ||
262 | } | ||
263 | #endif | ||
264 | |||
265 | #ifdef CONFIG_EXT2_FS_POSIX_ACL | ||
266 | if (test_opt(sb, POSIX_ACL)) | ||
267 | seq_puts(seq, ",acl"); | ||
268 | if (!test_opt(sb, POSIX_ACL) && (def_mount_opts & EXT2_DEFM_ACL)) | ||
269 | seq_puts(seq, ",noacl"); | ||
270 | #endif | ||
271 | |||
272 | if (test_opt(sb, NOBH)) | ||
273 | seq_puts(seq, ",nobh"); | ||
210 | 274 | ||
211 | #if defined(CONFIG_QUOTA) | 275 | #if defined(CONFIG_QUOTA) |
212 | if (sbi->s_mount_opt & EXT2_MOUNT_USRQUOTA) | 276 | if (sbi->s_mount_opt & EXT2_MOUNT_USRQUOTA) |
@@ -234,7 +298,6 @@ static const struct super_operations ext2_sops = { | |||
234 | .destroy_inode = ext2_destroy_inode, | 298 | .destroy_inode = ext2_destroy_inode, |
235 | .read_inode = ext2_read_inode, | 299 | .read_inode = ext2_read_inode, |
236 | .write_inode = ext2_write_inode, | 300 | .write_inode = ext2_write_inode, |
237 | .put_inode = ext2_put_inode, | ||
238 | .delete_inode = ext2_delete_inode, | 301 | .delete_inode = ext2_delete_inode, |
239 | .put_super = ext2_put_super, | 302 | .put_super = ext2_put_super, |
240 | .write_super = ext2_write_super, | 303 | .write_super = ext2_write_super, |
@@ -322,7 +385,7 @@ enum { | |||
322 | Opt_err_ro, Opt_nouid32, Opt_nocheck, Opt_debug, | 385 | Opt_err_ro, Opt_nouid32, Opt_nocheck, Opt_debug, |
323 | Opt_oldalloc, Opt_orlov, Opt_nobh, Opt_user_xattr, Opt_nouser_xattr, | 386 | Opt_oldalloc, Opt_orlov, Opt_nobh, Opt_user_xattr, Opt_nouser_xattr, |
324 | Opt_acl, Opt_noacl, Opt_xip, Opt_ignore, Opt_err, Opt_quota, | 387 | Opt_acl, Opt_noacl, Opt_xip, Opt_ignore, Opt_err, Opt_quota, |
325 | Opt_usrquota, Opt_grpquota | 388 | Opt_usrquota, Opt_grpquota, Opt_reservation, Opt_noreservation |
326 | }; | 389 | }; |
327 | 390 | ||
328 | static match_table_t tokens = { | 391 | static match_table_t tokens = { |
@@ -354,6 +417,8 @@ static match_table_t tokens = { | |||
354 | {Opt_ignore, "noquota"}, | 417 | {Opt_ignore, "noquota"}, |
355 | {Opt_quota, "quota"}, | 418 | {Opt_quota, "quota"}, |
356 | {Opt_usrquota, "usrquota"}, | 419 | {Opt_usrquota, "usrquota"}, |
420 | {Opt_reservation, "reservation"}, | ||
421 | {Opt_noreservation, "noreservation"}, | ||
357 | {Opt_err, NULL} | 422 | {Opt_err, NULL} |
358 | }; | 423 | }; |
359 | 424 | ||
@@ -486,6 +551,14 @@ static int parse_options (char * options, | |||
486 | break; | 551 | break; |
487 | #endif | 552 | #endif |
488 | 553 | ||
554 | case Opt_reservation: | ||
555 | set_opt(sbi->s_mount_opt, RESERVATION); | ||
556 | printk("reservations ON\n"); | ||
557 | break; | ||
558 | case Opt_noreservation: | ||
559 | clear_opt(sbi->s_mount_opt, RESERVATION); | ||
560 | printk("reservations OFF\n"); | ||
561 | break; | ||
489 | case Opt_ignore: | 562 | case Opt_ignore: |
490 | break; | 563 | break; |
491 | default: | 564 | default: |
@@ -653,11 +726,13 @@ static int ext2_fill_super(struct super_block *sb, void *data, int silent) | |||
653 | int db_count; | 726 | int db_count; |
654 | int i, j; | 727 | int i, j; |
655 | __le32 features; | 728 | __le32 features; |
729 | int err; | ||
656 | 730 | ||
657 | sbi = kzalloc(sizeof(*sbi), GFP_KERNEL); | 731 | sbi = kzalloc(sizeof(*sbi), GFP_KERNEL); |
658 | if (!sbi) | 732 | if (!sbi) |
659 | return -ENOMEM; | 733 | return -ENOMEM; |
660 | sb->s_fs_info = sbi; | 734 | sb->s_fs_info = sbi; |
735 | sbi->s_sb_block = sb_block; | ||
661 | 736 | ||
662 | /* | 737 | /* |
663 | * See what the current blocksize for the device is, and | 738 | * See what the current blocksize for the device is, and |
@@ -725,6 +800,8 @@ static int ext2_fill_super(struct super_block *sb, void *data, int silent) | |||
725 | sbi->s_resuid = le16_to_cpu(es->s_def_resuid); | 800 | sbi->s_resuid = le16_to_cpu(es->s_def_resuid); |
726 | sbi->s_resgid = le16_to_cpu(es->s_def_resgid); | 801 | sbi->s_resgid = le16_to_cpu(es->s_def_resgid); |
727 | 802 | ||
803 | set_opt(sbi->s_mount_opt, RESERVATION); | ||
804 | |||
728 | if (!parse_options ((char *) data, sbi)) | 805 | if (!parse_options ((char *) data, sbi)) |
729 | goto failed_mount; | 806 | goto failed_mount; |
730 | 807 | ||
@@ -804,7 +881,7 @@ static int ext2_fill_super(struct super_block *sb, void *data, int silent) | |||
804 | sbi->s_inode_size = le16_to_cpu(es->s_inode_size); | 881 | sbi->s_inode_size = le16_to_cpu(es->s_inode_size); |
805 | sbi->s_first_ino = le32_to_cpu(es->s_first_ino); | 882 | sbi->s_first_ino = le32_to_cpu(es->s_first_ino); |
806 | if ((sbi->s_inode_size < EXT2_GOOD_OLD_INODE_SIZE) || | 883 | if ((sbi->s_inode_size < EXT2_GOOD_OLD_INODE_SIZE) || |
807 | (sbi->s_inode_size & (sbi->s_inode_size - 1)) || | 884 | !is_power_of_2(sbi->s_inode_size) || |
808 | (sbi->s_inode_size > blocksize)) { | 885 | (sbi->s_inode_size > blocksize)) { |
809 | printk ("EXT2-fs: unsupported inode size: %d\n", | 886 | printk ("EXT2-fs: unsupported inode size: %d\n", |
810 | sbi->s_inode_size); | 887 | sbi->s_inode_size); |
@@ -906,12 +983,35 @@ static int ext2_fill_super(struct super_block *sb, void *data, int silent) | |||
906 | get_random_bytes(&sbi->s_next_generation, sizeof(u32)); | 983 | get_random_bytes(&sbi->s_next_generation, sizeof(u32)); |
907 | spin_lock_init(&sbi->s_next_gen_lock); | 984 | spin_lock_init(&sbi->s_next_gen_lock); |
908 | 985 | ||
909 | percpu_counter_init(&sbi->s_freeblocks_counter, | 986 | /* per fileystem reservation list head & lock */ |
987 | spin_lock_init(&sbi->s_rsv_window_lock); | ||
988 | sbi->s_rsv_window_root = RB_ROOT; | ||
989 | /* | ||
990 | * Add a single, static dummy reservation to the start of the | ||
991 | * reservation window list --- it gives us a placeholder for | ||
992 | * append-at-start-of-list which makes the allocation logic | ||
993 | * _much_ simpler. | ||
994 | */ | ||
995 | sbi->s_rsv_window_head.rsv_start = EXT2_RESERVE_WINDOW_NOT_ALLOCATED; | ||
996 | sbi->s_rsv_window_head.rsv_end = EXT2_RESERVE_WINDOW_NOT_ALLOCATED; | ||
997 | sbi->s_rsv_window_head.rsv_alloc_hit = 0; | ||
998 | sbi->s_rsv_window_head.rsv_goal_size = 0; | ||
999 | ext2_rsv_window_add(sb, &sbi->s_rsv_window_head); | ||
1000 | |||
1001 | err = percpu_counter_init(&sbi->s_freeblocks_counter, | ||
910 | ext2_count_free_blocks(sb)); | 1002 | ext2_count_free_blocks(sb)); |
911 | percpu_counter_init(&sbi->s_freeinodes_counter, | 1003 | if (!err) { |
1004 | err = percpu_counter_init(&sbi->s_freeinodes_counter, | ||
912 | ext2_count_free_inodes(sb)); | 1005 | ext2_count_free_inodes(sb)); |
913 | percpu_counter_init(&sbi->s_dirs_counter, | 1006 | } |
1007 | if (!err) { | ||
1008 | err = percpu_counter_init(&sbi->s_dirs_counter, | ||
914 | ext2_count_dirs(sb)); | 1009 | ext2_count_dirs(sb)); |
1010 | } | ||
1011 | if (err) { | ||
1012 | printk(KERN_ERR "EXT2-fs: insufficient memory\n"); | ||
1013 | goto failed_mount3; | ||
1014 | } | ||
915 | /* | 1015 | /* |
916 | * set up enough so that it can read an inode | 1016 | * set up enough so that it can read an inode |
917 | */ | 1017 | */ |
@@ -1193,7 +1293,7 @@ static ssize_t ext2_quota_read(struct super_block *sb, int type, char *data, | |||
1193 | 1293 | ||
1194 | tmp_bh.b_state = 0; | 1294 | tmp_bh.b_state = 0; |
1195 | err = ext2_get_block(inode, blk, &tmp_bh, 0); | 1295 | err = ext2_get_block(inode, blk, &tmp_bh, 0); |
1196 | if (err) | 1296 | if (err < 0) |
1197 | return err; | 1297 | return err; |
1198 | if (!buffer_mapped(&tmp_bh)) /* A hole? */ | 1298 | if (!buffer_mapped(&tmp_bh)) /* A hole? */ |
1199 | memset(data, 0, tocopy); | 1299 | memset(data, 0, tocopy); |
@@ -1232,7 +1332,7 @@ static ssize_t ext2_quota_write(struct super_block *sb, int type, | |||
1232 | 1332 | ||
1233 | tmp_bh.b_state = 0; | 1333 | tmp_bh.b_state = 0; |
1234 | err = ext2_get_block(inode, blk, &tmp_bh, 1); | 1334 | err = ext2_get_block(inode, blk, &tmp_bh, 1); |
1235 | if (err) | 1335 | if (err < 0) |
1236 | goto out; | 1336 | goto out; |
1237 | if (offset || tocopy != EXT2_BLOCK_SIZE(sb)) | 1337 | if (offset || tocopy != EXT2_BLOCK_SIZE(sb)) |
1238 | bh = sb_bread(sb, tmp_bh.b_blocknr); | 1338 | bh = sb_bread(sb, tmp_bh.b_blocknr); |
diff --git a/fs/ext2/xattr.c b/fs/ext2/xattr.c index 247efd0b51d6..3e8683dbb13f 100644 --- a/fs/ext2/xattr.c +++ b/fs/ext2/xattr.c | |||
@@ -664,8 +664,7 @@ ext2_xattr_set2(struct inode *inode, struct buffer_head *old_bh, | |||
664 | s_first_data_block) + | 664 | s_first_data_block) + |
665 | EXT2_I(inode)->i_block_group * | 665 | EXT2_I(inode)->i_block_group * |
666 | EXT2_BLOCKS_PER_GROUP(sb); | 666 | EXT2_BLOCKS_PER_GROUP(sb); |
667 | int block = ext2_new_block(inode, goal, | 667 | int block = ext2_new_block(inode, goal, &error); |
668 | NULL, NULL, &error); | ||
669 | if (error) | 668 | if (error) |
670 | goto cleanup; | 669 | goto cleanup; |
671 | ea_idebug(inode, "creating block %d", block); | 670 | ea_idebug(inode, "creating block %d", block); |
diff --git a/fs/ext3/balloc.c b/fs/ext3/balloc.c index ca8aee6efe37..7a87d15523be 100644 --- a/fs/ext3/balloc.c +++ b/fs/ext3/balloc.c | |||
@@ -80,6 +80,14 @@ struct ext3_group_desc * ext3_get_group_desc(struct super_block * sb, | |||
80 | return desc + offset; | 80 | return desc + offset; |
81 | } | 81 | } |
82 | 82 | ||
83 | static inline int | ||
84 | block_in_use(ext3_fsblk_t block, struct super_block *sb, unsigned char *map) | ||
85 | { | ||
86 | return ext3_test_bit ((block - | ||
87 | le32_to_cpu(EXT3_SB(sb)->s_es->s_first_data_block)) % | ||
88 | EXT3_BLOCKS_PER_GROUP(sb), map); | ||
89 | } | ||
90 | |||
83 | /** | 91 | /** |
84 | * read_block_bitmap() | 92 | * read_block_bitmap() |
85 | * @sb: super block | 93 | * @sb: super block |
@@ -93,20 +101,51 @@ struct ext3_group_desc * ext3_get_group_desc(struct super_block * sb, | |||
93 | static struct buffer_head * | 101 | static struct buffer_head * |
94 | read_block_bitmap(struct super_block *sb, unsigned int block_group) | 102 | read_block_bitmap(struct super_block *sb, unsigned int block_group) |
95 | { | 103 | { |
104 | int i; | ||
96 | struct ext3_group_desc * desc; | 105 | struct ext3_group_desc * desc; |
97 | struct buffer_head * bh = NULL; | 106 | struct buffer_head * bh = NULL; |
107 | ext3_fsblk_t bitmap_blk; | ||
98 | 108 | ||
99 | desc = ext3_get_group_desc (sb, block_group, NULL); | 109 | desc = ext3_get_group_desc (sb, block_group, NULL); |
100 | if (!desc) | 110 | if (!desc) |
101 | goto error_out; | 111 | return NULL; |
102 | bh = sb_bread(sb, le32_to_cpu(desc->bg_block_bitmap)); | 112 | bitmap_blk = le32_to_cpu(desc->bg_block_bitmap); |
113 | bh = sb_bread(sb, bitmap_blk); | ||
103 | if (!bh) | 114 | if (!bh) |
104 | ext3_error (sb, "read_block_bitmap", | 115 | ext3_error (sb, __FUNCTION__, |
105 | "Cannot read block bitmap - " | 116 | "Cannot read block bitmap - " |
106 | "block_group = %d, block_bitmap = %u", | 117 | "block_group = %d, block_bitmap = %u", |
107 | block_group, le32_to_cpu(desc->bg_block_bitmap)); | 118 | block_group, le32_to_cpu(desc->bg_block_bitmap)); |
108 | error_out: | 119 | |
120 | /* check whether block bitmap block number is set */ | ||
121 | if (!block_in_use(bitmap_blk, sb, bh->b_data)) { | ||
122 | /* bad block bitmap */ | ||
123 | goto error_out; | ||
124 | } | ||
125 | /* check whether the inode bitmap block number is set */ | ||
126 | bitmap_blk = le32_to_cpu(desc->bg_inode_bitmap); | ||
127 | if (!block_in_use(bitmap_blk, sb, bh->b_data)) { | ||
128 | /* bad block bitmap */ | ||
129 | goto error_out; | ||
130 | } | ||
131 | /* check whether the inode table block number is set */ | ||
132 | bitmap_blk = le32_to_cpu(desc->bg_inode_table); | ||
133 | for (i = 0; i < EXT3_SB(sb)->s_itb_per_group; i++, bitmap_blk++) { | ||
134 | if (!block_in_use(bitmap_blk, sb, bh->b_data)) { | ||
135 | /* bad block bitmap */ | ||
136 | goto error_out; | ||
137 | } | ||
138 | } | ||
139 | |||
109 | return bh; | 140 | return bh; |
141 | |||
142 | error_out: | ||
143 | brelse(bh); | ||
144 | ext3_error(sb, __FUNCTION__, | ||
145 | "Invalid block bitmap - " | ||
146 | "block_group = %d, block = %lu", | ||
147 | block_group, bitmap_blk); | ||
148 | return NULL; | ||
110 | } | 149 | } |
111 | /* | 150 | /* |
112 | * The reservation window structure operations | 151 | * The reservation window structure operations |
@@ -570,7 +609,7 @@ do_more: | |||
570 | cpu_to_le16(le16_to_cpu(desc->bg_free_blocks_count) + | 609 | cpu_to_le16(le16_to_cpu(desc->bg_free_blocks_count) + |
571 | group_freed); | 610 | group_freed); |
572 | spin_unlock(sb_bgl_lock(sbi, block_group)); | 611 | spin_unlock(sb_bgl_lock(sbi, block_group)); |
573 | percpu_counter_mod(&sbi->s_freeblocks_counter, count); | 612 | percpu_counter_add(&sbi->s_freeblocks_counter, count); |
574 | 613 | ||
575 | /* We dirtied the bitmap block */ | 614 | /* We dirtied the bitmap block */ |
576 | BUFFER_TRACE(bitmap_bh, "dirtied bitmap block"); | 615 | BUFFER_TRACE(bitmap_bh, "dirtied bitmap block"); |
@@ -1633,7 +1672,7 @@ allocated: | |||
1633 | gdp->bg_free_blocks_count = | 1672 | gdp->bg_free_blocks_count = |
1634 | cpu_to_le16(le16_to_cpu(gdp->bg_free_blocks_count)-num); | 1673 | cpu_to_le16(le16_to_cpu(gdp->bg_free_blocks_count)-num); |
1635 | spin_unlock(sb_bgl_lock(sbi, group_no)); | 1674 | spin_unlock(sb_bgl_lock(sbi, group_no)); |
1636 | percpu_counter_mod(&sbi->s_freeblocks_counter, -num); | 1675 | percpu_counter_sub(&sbi->s_freeblocks_counter, num); |
1637 | 1676 | ||
1638 | BUFFER_TRACE(gdp_bh, "journal_dirty_metadata for group descriptor"); | 1677 | BUFFER_TRACE(gdp_bh, "journal_dirty_metadata for group descriptor"); |
1639 | err = ext3_journal_dirty_metadata(handle, gdp_bh); | 1678 | err = ext3_journal_dirty_metadata(handle, gdp_bh); |
@@ -1733,13 +1772,6 @@ ext3_fsblk_t ext3_count_free_blocks(struct super_block *sb) | |||
1733 | #endif | 1772 | #endif |
1734 | } | 1773 | } |
1735 | 1774 | ||
1736 | static inline int | ||
1737 | block_in_use(ext3_fsblk_t block, struct super_block *sb, unsigned char *map) | ||
1738 | { | ||
1739 | return ext3_test_bit ((block - | ||
1740 | le32_to_cpu(EXT3_SB(sb)->s_es->s_first_data_block)) % | ||
1741 | EXT3_BLOCKS_PER_GROUP(sb), map); | ||
1742 | } | ||
1743 | 1775 | ||
1744 | static inline int test_root(int a, int b) | 1776 | static inline int test_root(int a, int b) |
1745 | { | 1777 | { |
diff --git a/fs/ext3/bitmap.c b/fs/ext3/bitmap.c index b9176eed98d1..6afc39d80253 100644 --- a/fs/ext3/bitmap.c +++ b/fs/ext3/bitmap.c | |||
@@ -13,7 +13,7 @@ | |||
13 | 13 | ||
14 | #ifdef EXT3FS_DEBUG | 14 | #ifdef EXT3FS_DEBUG |
15 | 15 | ||
16 | static int nibblemap[] = {4, 3, 3, 2, 3, 2, 2, 1, 3, 2, 2, 1, 2, 1, 1, 0}; | 16 | static const int nibblemap[] = {4, 3, 3, 2, 3, 2, 2, 1, 3, 2, 2, 1, 2, 1, 1, 0}; |
17 | 17 | ||
18 | unsigned long ext3_count_free (struct buffer_head * map, unsigned int numchars) | 18 | unsigned long ext3_count_free (struct buffer_head * map, unsigned int numchars) |
19 | { | 19 | { |
diff --git a/fs/ext3/dir.c b/fs/ext3/dir.c index c2c3491b18cf..c8e4ee3af1d0 100644 --- a/fs/ext3/dir.c +++ b/fs/ext3/dir.c | |||
@@ -47,9 +47,7 @@ const struct file_operations ext3_dir_operations = { | |||
47 | .compat_ioctl = ext3_compat_ioctl, | 47 | .compat_ioctl = ext3_compat_ioctl, |
48 | #endif | 48 | #endif |
49 | .fsync = ext3_sync_file, /* BKL held */ | 49 | .fsync = ext3_sync_file, /* BKL held */ |
50 | #ifdef CONFIG_EXT3_INDEX | ||
51 | .release = ext3_release_dir, | 50 | .release = ext3_release_dir, |
52 | #endif | ||
53 | }; | 51 | }; |
54 | 52 | ||
55 | 53 | ||
@@ -107,7 +105,6 @@ static int ext3_readdir(struct file * filp, | |||
107 | 105 | ||
108 | sb = inode->i_sb; | 106 | sb = inode->i_sb; |
109 | 107 | ||
110 | #ifdef CONFIG_EXT3_INDEX | ||
111 | if (EXT3_HAS_COMPAT_FEATURE(inode->i_sb, | 108 | if (EXT3_HAS_COMPAT_FEATURE(inode->i_sb, |
112 | EXT3_FEATURE_COMPAT_DIR_INDEX) && | 109 | EXT3_FEATURE_COMPAT_DIR_INDEX) && |
113 | ((EXT3_I(inode)->i_flags & EXT3_INDEX_FL) || | 110 | ((EXT3_I(inode)->i_flags & EXT3_INDEX_FL) || |
@@ -123,7 +120,6 @@ static int ext3_readdir(struct file * filp, | |||
123 | */ | 120 | */ |
124 | EXT3_I(filp->f_path.dentry->d_inode)->i_flags &= ~EXT3_INDEX_FL; | 121 | EXT3_I(filp->f_path.dentry->d_inode)->i_flags &= ~EXT3_INDEX_FL; |
125 | } | 122 | } |
126 | #endif | ||
127 | stored = 0; | 123 | stored = 0; |
128 | offset = filp->f_pos & (sb->s_blocksize - 1); | 124 | offset = filp->f_pos & (sb->s_blocksize - 1); |
129 | 125 | ||
@@ -210,7 +206,7 @@ revalidate: | |||
210 | * not the directory has been modified | 206 | * not the directory has been modified |
211 | * during the copy operation. | 207 | * during the copy operation. |
212 | */ | 208 | */ |
213 | unsigned long version = filp->f_version; | 209 | u64 version = filp->f_version; |
214 | 210 | ||
215 | error = filldir(dirent, de->name, | 211 | error = filldir(dirent, de->name, |
216 | de->name_len, | 212 | de->name_len, |
@@ -232,7 +228,6 @@ out: | |||
232 | return ret; | 228 | return ret; |
233 | } | 229 | } |
234 | 230 | ||
235 | #ifdef CONFIG_EXT3_INDEX | ||
236 | /* | 231 | /* |
237 | * These functions convert from the major/minor hash to an f_pos | 232 | * These functions convert from the major/minor hash to an f_pos |
238 | * value. | 233 | * value. |
@@ -518,5 +513,3 @@ static int ext3_release_dir (struct inode * inode, struct file * filp) | |||
518 | 513 | ||
519 | return 0; | 514 | return 0; |
520 | } | 515 | } |
521 | |||
522 | #endif | ||
diff --git a/fs/ext3/ialloc.c b/fs/ext3/ialloc.c index e45dbd651736..1bc8cd89c51d 100644 --- a/fs/ext3/ialloc.c +++ b/fs/ext3/ialloc.c | |||
@@ -204,14 +204,13 @@ static int find_group_dir(struct super_block *sb, struct inode *parent) | |||
204 | int ngroups = EXT3_SB(sb)->s_groups_count; | 204 | int ngroups = EXT3_SB(sb)->s_groups_count; |
205 | unsigned int freei, avefreei; | 205 | unsigned int freei, avefreei; |
206 | struct ext3_group_desc *desc, *best_desc = NULL; | 206 | struct ext3_group_desc *desc, *best_desc = NULL; |
207 | struct buffer_head *bh; | ||
208 | int group, best_group = -1; | 207 | int group, best_group = -1; |
209 | 208 | ||
210 | freei = percpu_counter_read_positive(&EXT3_SB(sb)->s_freeinodes_counter); | 209 | freei = percpu_counter_read_positive(&EXT3_SB(sb)->s_freeinodes_counter); |
211 | avefreei = freei / ngroups; | 210 | avefreei = freei / ngroups; |
212 | 211 | ||
213 | for (group = 0; group < ngroups; group++) { | 212 | for (group = 0; group < ngroups; group++) { |
214 | desc = ext3_get_group_desc (sb, group, &bh); | 213 | desc = ext3_get_group_desc (sb, group, NULL); |
215 | if (!desc || !desc->bg_free_inodes_count) | 214 | if (!desc || !desc->bg_free_inodes_count) |
216 | continue; | 215 | continue; |
217 | if (le16_to_cpu(desc->bg_free_inodes_count) < avefreei) | 216 | if (le16_to_cpu(desc->bg_free_inodes_count) < avefreei) |
@@ -269,7 +268,6 @@ static int find_group_orlov(struct super_block *sb, struct inode *parent) | |||
269 | ext3_grpblk_t min_blocks; | 268 | ext3_grpblk_t min_blocks; |
270 | int group = -1, i; | 269 | int group = -1, i; |
271 | struct ext3_group_desc *desc; | 270 | struct ext3_group_desc *desc; |
272 | struct buffer_head *bh; | ||
273 | 271 | ||
274 | freei = percpu_counter_read_positive(&sbi->s_freeinodes_counter); | 272 | freei = percpu_counter_read_positive(&sbi->s_freeinodes_counter); |
275 | avefreei = freei / ngroups; | 273 | avefreei = freei / ngroups; |
@@ -286,7 +284,7 @@ static int find_group_orlov(struct super_block *sb, struct inode *parent) | |||
286 | parent_group = (unsigned)group % ngroups; | 284 | parent_group = (unsigned)group % ngroups; |
287 | for (i = 0; i < ngroups; i++) { | 285 | for (i = 0; i < ngroups; i++) { |
288 | group = (parent_group + i) % ngroups; | 286 | group = (parent_group + i) % ngroups; |
289 | desc = ext3_get_group_desc (sb, group, &bh); | 287 | desc = ext3_get_group_desc (sb, group, NULL); |
290 | if (!desc || !desc->bg_free_inodes_count) | 288 | if (!desc || !desc->bg_free_inodes_count) |
291 | continue; | 289 | continue; |
292 | if (le16_to_cpu(desc->bg_used_dirs_count) >= best_ndir) | 290 | if (le16_to_cpu(desc->bg_used_dirs_count) >= best_ndir) |
@@ -319,7 +317,7 @@ static int find_group_orlov(struct super_block *sb, struct inode *parent) | |||
319 | 317 | ||
320 | for (i = 0; i < ngroups; i++) { | 318 | for (i = 0; i < ngroups; i++) { |
321 | group = (parent_group + i) % ngroups; | 319 | group = (parent_group + i) % ngroups; |
322 | desc = ext3_get_group_desc (sb, group, &bh); | 320 | desc = ext3_get_group_desc (sb, group, NULL); |
323 | if (!desc || !desc->bg_free_inodes_count) | 321 | if (!desc || !desc->bg_free_inodes_count) |
324 | continue; | 322 | continue; |
325 | if (le16_to_cpu(desc->bg_used_dirs_count) >= max_dirs) | 323 | if (le16_to_cpu(desc->bg_used_dirs_count) >= max_dirs) |
@@ -334,7 +332,7 @@ static int find_group_orlov(struct super_block *sb, struct inode *parent) | |||
334 | fallback: | 332 | fallback: |
335 | for (i = 0; i < ngroups; i++) { | 333 | for (i = 0; i < ngroups; i++) { |
336 | group = (parent_group + i) % ngroups; | 334 | group = (parent_group + i) % ngroups; |
337 | desc = ext3_get_group_desc (sb, group, &bh); | 335 | desc = ext3_get_group_desc (sb, group, NULL); |
338 | if (!desc || !desc->bg_free_inodes_count) | 336 | if (!desc || !desc->bg_free_inodes_count) |
339 | continue; | 337 | continue; |
340 | if (le16_to_cpu(desc->bg_free_inodes_count) >= avefreei) | 338 | if (le16_to_cpu(desc->bg_free_inodes_count) >= avefreei) |
@@ -358,14 +356,13 @@ static int find_group_other(struct super_block *sb, struct inode *parent) | |||
358 | int parent_group = EXT3_I(parent)->i_block_group; | 356 | int parent_group = EXT3_I(parent)->i_block_group; |
359 | int ngroups = EXT3_SB(sb)->s_groups_count; | 357 | int ngroups = EXT3_SB(sb)->s_groups_count; |
360 | struct ext3_group_desc *desc; | 358 | struct ext3_group_desc *desc; |
361 | struct buffer_head *bh; | ||
362 | int group, i; | 359 | int group, i; |
363 | 360 | ||
364 | /* | 361 | /* |
365 | * Try to place the inode in its parent directory | 362 | * Try to place the inode in its parent directory |
366 | */ | 363 | */ |
367 | group = parent_group; | 364 | group = parent_group; |
368 | desc = ext3_get_group_desc (sb, group, &bh); | 365 | desc = ext3_get_group_desc (sb, group, NULL); |
369 | if (desc && le16_to_cpu(desc->bg_free_inodes_count) && | 366 | if (desc && le16_to_cpu(desc->bg_free_inodes_count) && |
370 | le16_to_cpu(desc->bg_free_blocks_count)) | 367 | le16_to_cpu(desc->bg_free_blocks_count)) |
371 | return group; | 368 | return group; |
@@ -389,7 +386,7 @@ static int find_group_other(struct super_block *sb, struct inode *parent) | |||
389 | group += i; | 386 | group += i; |
390 | if (group >= ngroups) | 387 | if (group >= ngroups) |
391 | group -= ngroups; | 388 | group -= ngroups; |
392 | desc = ext3_get_group_desc (sb, group, &bh); | 389 | desc = ext3_get_group_desc (sb, group, NULL); |
393 | if (desc && le16_to_cpu(desc->bg_free_inodes_count) && | 390 | if (desc && le16_to_cpu(desc->bg_free_inodes_count) && |
394 | le16_to_cpu(desc->bg_free_blocks_count)) | 391 | le16_to_cpu(desc->bg_free_blocks_count)) |
395 | return group; | 392 | return group; |
@@ -403,7 +400,7 @@ static int find_group_other(struct super_block *sb, struct inode *parent) | |||
403 | for (i = 0; i < ngroups; i++) { | 400 | for (i = 0; i < ngroups; i++) { |
404 | if (++group >= ngroups) | 401 | if (++group >= ngroups) |
405 | group = 0; | 402 | group = 0; |
406 | desc = ext3_get_group_desc (sb, group, &bh); | 403 | desc = ext3_get_group_desc (sb, group, NULL); |
407 | if (desc && le16_to_cpu(desc->bg_free_inodes_count)) | 404 | if (desc && le16_to_cpu(desc->bg_free_inodes_count)) |
408 | return group; | 405 | return group; |
409 | } | 406 | } |
diff --git a/fs/ext3/namei.c b/fs/ext3/namei.c index c1fa1908dba0..ec8170adac53 100644 --- a/fs/ext3/namei.c +++ b/fs/ext3/namei.c | |||
@@ -144,7 +144,6 @@ struct dx_map_entry | |||
144 | u16 size; | 144 | u16 size; |
145 | }; | 145 | }; |
146 | 146 | ||
147 | #ifdef CONFIG_EXT3_INDEX | ||
148 | static inline unsigned dx_get_block (struct dx_entry *entry); | 147 | static inline unsigned dx_get_block (struct dx_entry *entry); |
149 | static void dx_set_block (struct dx_entry *entry, unsigned value); | 148 | static void dx_set_block (struct dx_entry *entry, unsigned value); |
150 | static inline unsigned dx_get_hash (struct dx_entry *entry); | 149 | static inline unsigned dx_get_hash (struct dx_entry *entry); |
@@ -768,8 +767,6 @@ static void dx_insert_block(struct dx_frame *frame, u32 hash, u32 block) | |||
768 | dx_set_block(new, block); | 767 | dx_set_block(new, block); |
769 | dx_set_count(entries, count + 1); | 768 | dx_set_count(entries, count + 1); |
770 | } | 769 | } |
771 | #endif | ||
772 | |||
773 | 770 | ||
774 | static void ext3_update_dx_flag(struct inode *inode) | 771 | static void ext3_update_dx_flag(struct inode *inode) |
775 | { | 772 | { |
@@ -871,7 +868,6 @@ static struct buffer_head * ext3_find_entry (struct dentry *dentry, | |||
871 | name = dentry->d_name.name; | 868 | name = dentry->d_name.name; |
872 | if (namelen > EXT3_NAME_LEN) | 869 | if (namelen > EXT3_NAME_LEN) |
873 | return NULL; | 870 | return NULL; |
874 | #ifdef CONFIG_EXT3_INDEX | ||
875 | if (is_dx(dir)) { | 871 | if (is_dx(dir)) { |
876 | bh = ext3_dx_find_entry(dentry, res_dir, &err); | 872 | bh = ext3_dx_find_entry(dentry, res_dir, &err); |
877 | /* | 873 | /* |
@@ -883,7 +879,6 @@ static struct buffer_head * ext3_find_entry (struct dentry *dentry, | |||
883 | return bh; | 879 | return bh; |
884 | dxtrace(printk("ext3_find_entry: dx failed, falling back\n")); | 880 | dxtrace(printk("ext3_find_entry: dx failed, falling back\n")); |
885 | } | 881 | } |
886 | #endif | ||
887 | nblocks = dir->i_size >> EXT3_BLOCK_SIZE_BITS(sb); | 882 | nblocks = dir->i_size >> EXT3_BLOCK_SIZE_BITS(sb); |
888 | start = EXT3_I(dir)->i_dir_start_lookup; | 883 | start = EXT3_I(dir)->i_dir_start_lookup; |
889 | if (start >= nblocks) | 884 | if (start >= nblocks) |
@@ -959,7 +954,6 @@ cleanup_and_exit: | |||
959 | return ret; | 954 | return ret; |
960 | } | 955 | } |
961 | 956 | ||
962 | #ifdef CONFIG_EXT3_INDEX | ||
963 | static struct buffer_head * ext3_dx_find_entry(struct dentry *dentry, | 957 | static struct buffer_head * ext3_dx_find_entry(struct dentry *dentry, |
964 | struct ext3_dir_entry_2 **res_dir, int *err) | 958 | struct ext3_dir_entry_2 **res_dir, int *err) |
965 | { | 959 | { |
@@ -1027,7 +1021,6 @@ errout: | |||
1027 | dx_release (frames); | 1021 | dx_release (frames); |
1028 | return NULL; | 1022 | return NULL; |
1029 | } | 1023 | } |
1030 | #endif | ||
1031 | 1024 | ||
1032 | static struct dentry *ext3_lookup(struct inode * dir, struct dentry *dentry, struct nameidata *nd) | 1025 | static struct dentry *ext3_lookup(struct inode * dir, struct dentry *dentry, struct nameidata *nd) |
1033 | { | 1026 | { |
@@ -1123,7 +1116,6 @@ static inline void ext3_set_de_type(struct super_block *sb, | |||
1123 | de->file_type = ext3_type_by_mode[(mode & S_IFMT)>>S_SHIFT]; | 1116 | de->file_type = ext3_type_by_mode[(mode & S_IFMT)>>S_SHIFT]; |
1124 | } | 1117 | } |
1125 | 1118 | ||
1126 | #ifdef CONFIG_EXT3_INDEX | ||
1127 | /* | 1119 | /* |
1128 | * Move count entries from end of map between two memory locations. | 1120 | * Move count entries from end of map between two memory locations. |
1129 | * Returns pointer to last entry moved. | 1121 | * Returns pointer to last entry moved. |
@@ -1268,7 +1260,6 @@ errout: | |||
1268 | *error = err; | 1260 | *error = err; |
1269 | return NULL; | 1261 | return NULL; |
1270 | } | 1262 | } |
1271 | #endif | ||
1272 | 1263 | ||
1273 | 1264 | ||
1274 | /* | 1265 | /* |
@@ -1366,7 +1357,6 @@ static int add_dirent_to_buf(handle_t *handle, struct dentry *dentry, | |||
1366 | return 0; | 1357 | return 0; |
1367 | } | 1358 | } |
1368 | 1359 | ||
1369 | #ifdef CONFIG_EXT3_INDEX | ||
1370 | /* | 1360 | /* |
1371 | * This converts a one block unindexed directory to a 3 block indexed | 1361 | * This converts a one block unindexed directory to a 3 block indexed |
1372 | * directory, and adds the dentry to the indexed directory. | 1362 | * directory, and adds the dentry to the indexed directory. |
@@ -1445,7 +1435,6 @@ static int make_indexed_dir(handle_t *handle, struct dentry *dentry, | |||
1445 | 1435 | ||
1446 | return add_dirent_to_buf(handle, dentry, inode, de, bh); | 1436 | return add_dirent_to_buf(handle, dentry, inode, de, bh); |
1447 | } | 1437 | } |
1448 | #endif | ||
1449 | 1438 | ||
1450 | /* | 1439 | /* |
1451 | * ext3_add_entry() | 1440 | * ext3_add_entry() |
@@ -1466,9 +1455,7 @@ static int ext3_add_entry (handle_t *handle, struct dentry *dentry, | |||
1466 | struct ext3_dir_entry_2 *de; | 1455 | struct ext3_dir_entry_2 *de; |
1467 | struct super_block * sb; | 1456 | struct super_block * sb; |
1468 | int retval; | 1457 | int retval; |
1469 | #ifdef CONFIG_EXT3_INDEX | ||
1470 | int dx_fallback=0; | 1458 | int dx_fallback=0; |
1471 | #endif | ||
1472 | unsigned blocksize; | 1459 | unsigned blocksize; |
1473 | u32 block, blocks; | 1460 | u32 block, blocks; |
1474 | 1461 | ||
@@ -1476,7 +1463,6 @@ static int ext3_add_entry (handle_t *handle, struct dentry *dentry, | |||
1476 | blocksize = sb->s_blocksize; | 1463 | blocksize = sb->s_blocksize; |
1477 | if (!dentry->d_name.len) | 1464 | if (!dentry->d_name.len) |
1478 | return -EINVAL; | 1465 | return -EINVAL; |
1479 | #ifdef CONFIG_EXT3_INDEX | ||
1480 | if (is_dx(dir)) { | 1466 | if (is_dx(dir)) { |
1481 | retval = ext3_dx_add_entry(handle, dentry, inode); | 1467 | retval = ext3_dx_add_entry(handle, dentry, inode); |
1482 | if (!retval || (retval != ERR_BAD_DX_DIR)) | 1468 | if (!retval || (retval != ERR_BAD_DX_DIR)) |
@@ -1485,7 +1471,6 @@ static int ext3_add_entry (handle_t *handle, struct dentry *dentry, | |||
1485 | dx_fallback++; | 1471 | dx_fallback++; |
1486 | ext3_mark_inode_dirty(handle, dir); | 1472 | ext3_mark_inode_dirty(handle, dir); |
1487 | } | 1473 | } |
1488 | #endif | ||
1489 | blocks = dir->i_size >> sb->s_blocksize_bits; | 1474 | blocks = dir->i_size >> sb->s_blocksize_bits; |
1490 | for (block = 0, offset = 0; block < blocks; block++) { | 1475 | for (block = 0, offset = 0; block < blocks; block++) { |
1491 | bh = ext3_bread(handle, dir, block, 0, &retval); | 1476 | bh = ext3_bread(handle, dir, block, 0, &retval); |
@@ -1495,11 +1480,9 @@ static int ext3_add_entry (handle_t *handle, struct dentry *dentry, | |||
1495 | if (retval != -ENOSPC) | 1480 | if (retval != -ENOSPC) |
1496 | return retval; | 1481 | return retval; |
1497 | 1482 | ||
1498 | #ifdef CONFIG_EXT3_INDEX | ||
1499 | if (blocks == 1 && !dx_fallback && | 1483 | if (blocks == 1 && !dx_fallback && |
1500 | EXT3_HAS_COMPAT_FEATURE(sb, EXT3_FEATURE_COMPAT_DIR_INDEX)) | 1484 | EXT3_HAS_COMPAT_FEATURE(sb, EXT3_FEATURE_COMPAT_DIR_INDEX)) |
1501 | return make_indexed_dir(handle, dentry, inode, bh); | 1485 | return make_indexed_dir(handle, dentry, inode, bh); |
1502 | #endif | ||
1503 | brelse(bh); | 1486 | brelse(bh); |
1504 | } | 1487 | } |
1505 | bh = ext3_append(handle, dir, &block, &retval); | 1488 | bh = ext3_append(handle, dir, &block, &retval); |
@@ -1511,7 +1494,6 @@ static int ext3_add_entry (handle_t *handle, struct dentry *dentry, | |||
1511 | return add_dirent_to_buf(handle, dentry, inode, de, bh); | 1494 | return add_dirent_to_buf(handle, dentry, inode, de, bh); |
1512 | } | 1495 | } |
1513 | 1496 | ||
1514 | #ifdef CONFIG_EXT3_INDEX | ||
1515 | /* | 1497 | /* |
1516 | * Returns 0 for success, or a negative error value | 1498 | * Returns 0 for success, or a negative error value |
1517 | */ | 1499 | */ |
@@ -1646,7 +1628,6 @@ cleanup: | |||
1646 | dx_release(frames); | 1628 | dx_release(frames); |
1647 | return err; | 1629 | return err; |
1648 | } | 1630 | } |
1649 | #endif | ||
1650 | 1631 | ||
1651 | /* | 1632 | /* |
1652 | * ext3_delete_entry deletes a directory entry by merging it with the | 1633 | * ext3_delete_entry deletes a directory entry by merging it with the |
diff --git a/fs/ext3/resize.c b/fs/ext3/resize.c index 2c97e09c6c6b..771f7ada15d9 100644 --- a/fs/ext3/resize.c +++ b/fs/ext3/resize.c | |||
@@ -154,6 +154,34 @@ static void mark_bitmap_end(int start_bit, int end_bit, char *bitmap) | |||
154 | } | 154 | } |
155 | 155 | ||
156 | /* | 156 | /* |
157 | * If we have fewer than thresh credits, extend by EXT3_MAX_TRANS_DATA. | ||
158 | * If that fails, restart the transaction & regain write access for the | ||
159 | * buffer head which is used for block_bitmap modifications. | ||
160 | */ | ||
161 | static int extend_or_restart_transaction(handle_t *handle, int thresh, | ||
162 | struct buffer_head *bh) | ||
163 | { | ||
164 | int err; | ||
165 | |||
166 | if (handle->h_buffer_credits >= thresh) | ||
167 | return 0; | ||
168 | |||
169 | err = ext3_journal_extend(handle, EXT3_MAX_TRANS_DATA); | ||
170 | if (err < 0) | ||
171 | return err; | ||
172 | if (err) { | ||
173 | err = ext3_journal_restart(handle, EXT3_MAX_TRANS_DATA); | ||
174 | if (err) | ||
175 | return err; | ||
176 | err = ext3_journal_get_write_access(handle, bh); | ||
177 | if (err) | ||
178 | return err; | ||
179 | } | ||
180 | |||
181 | return 0; | ||
182 | } | ||
183 | |||
184 | /* | ||
157 | * Set up the block and inode bitmaps, and the inode table for the new group. | 185 | * Set up the block and inode bitmaps, and the inode table for the new group. |
158 | * This doesn't need to be part of the main transaction, since we are only | 186 | * This doesn't need to be part of the main transaction, since we are only |
159 | * changing blocks outside the actual filesystem. We still do journaling to | 187 | * changing blocks outside the actual filesystem. We still do journaling to |
@@ -175,8 +203,9 @@ static int setup_new_group_blocks(struct super_block *sb, | |||
175 | int i; | 203 | int i; |
176 | int err = 0, err2; | 204 | int err = 0, err2; |
177 | 205 | ||
178 | handle = ext3_journal_start_sb(sb, reserved_gdb + gdblocks + | 206 | /* This transaction may be extended/restarted along the way */ |
179 | 2 + sbi->s_itb_per_group); | 207 | handle = ext3_journal_start_sb(sb, EXT3_MAX_TRANS_DATA); |
208 | |||
180 | if (IS_ERR(handle)) | 209 | if (IS_ERR(handle)) |
181 | return PTR_ERR(handle); | 210 | return PTR_ERR(handle); |
182 | 211 | ||
@@ -203,6 +232,10 @@ static int setup_new_group_blocks(struct super_block *sb, | |||
203 | 232 | ||
204 | ext3_debug("update backup group %#04lx (+%d)\n", block, bit); | 233 | ext3_debug("update backup group %#04lx (+%d)\n", block, bit); |
205 | 234 | ||
235 | err = extend_or_restart_transaction(handle, 1, bh); | ||
236 | if (err) | ||
237 | goto exit_bh; | ||
238 | |||
206 | gdb = sb_getblk(sb, block); | 239 | gdb = sb_getblk(sb, block); |
207 | if (!gdb) { | 240 | if (!gdb) { |
208 | err = -EIO; | 241 | err = -EIO; |
@@ -228,6 +261,10 @@ static int setup_new_group_blocks(struct super_block *sb, | |||
228 | 261 | ||
229 | ext3_debug("clear reserved block %#04lx (+%d)\n", block, bit); | 262 | ext3_debug("clear reserved block %#04lx (+%d)\n", block, bit); |
230 | 263 | ||
264 | err = extend_or_restart_transaction(handle, 1, bh); | ||
265 | if (err) | ||
266 | goto exit_bh; | ||
267 | |||
231 | if (IS_ERR(gdb = bclean(handle, sb, block))) { | 268 | if (IS_ERR(gdb = bclean(handle, sb, block))) { |
232 | err = PTR_ERR(bh); | 269 | err = PTR_ERR(bh); |
233 | goto exit_bh; | 270 | goto exit_bh; |
@@ -249,6 +286,11 @@ static int setup_new_group_blocks(struct super_block *sb, | |||
249 | struct buffer_head *it; | 286 | struct buffer_head *it; |
250 | 287 | ||
251 | ext3_debug("clear inode block %#04lx (+%d)\n", block, bit); | 288 | ext3_debug("clear inode block %#04lx (+%d)\n", block, bit); |
289 | |||
290 | err = extend_or_restart_transaction(handle, 1, bh); | ||
291 | if (err) | ||
292 | goto exit_bh; | ||
293 | |||
252 | if (IS_ERR(it = bclean(handle, sb, block))) { | 294 | if (IS_ERR(it = bclean(handle, sb, block))) { |
253 | err = PTR_ERR(it); | 295 | err = PTR_ERR(it); |
254 | goto exit_bh; | 296 | goto exit_bh; |
@@ -257,6 +299,11 @@ static int setup_new_group_blocks(struct super_block *sb, | |||
257 | brelse(it); | 299 | brelse(it); |
258 | ext3_set_bit(bit, bh->b_data); | 300 | ext3_set_bit(bit, bh->b_data); |
259 | } | 301 | } |
302 | |||
303 | err = extend_or_restart_transaction(handle, 2, bh); | ||
304 | if (err) | ||
305 | goto exit_bh; | ||
306 | |||
260 | mark_bitmap_end(input->blocks_count, EXT3_BLOCKS_PER_GROUP(sb), | 307 | mark_bitmap_end(input->blocks_count, EXT3_BLOCKS_PER_GROUP(sb), |
261 | bh->b_data); | 308 | bh->b_data); |
262 | ext3_journal_dirty_metadata(handle, bh); | 309 | ext3_journal_dirty_metadata(handle, bh); |
@@ -884,9 +931,9 @@ int ext3_group_add(struct super_block *sb, struct ext3_new_group_data *input) | |||
884 | input->reserved_blocks); | 931 | input->reserved_blocks); |
885 | 932 | ||
886 | /* Update the free space counts */ | 933 | /* Update the free space counts */ |
887 | percpu_counter_mod(&sbi->s_freeblocks_counter, | 934 | percpu_counter_add(&sbi->s_freeblocks_counter, |
888 | input->free_blocks_count); | 935 | input->free_blocks_count); |
889 | percpu_counter_mod(&sbi->s_freeinodes_counter, | 936 | percpu_counter_add(&sbi->s_freeinodes_counter, |
890 | EXT3_INODES_PER_GROUP(sb)); | 937 | EXT3_INODES_PER_GROUP(sb)); |
891 | 938 | ||
892 | ext3_journal_dirty_metadata(handle, sbi->s_sbh); | 939 | ext3_journal_dirty_metadata(handle, sbi->s_sbh); |
diff --git a/fs/ext3/super.c b/fs/ext3/super.c index 9537316a0714..141573de7a9a 100644 --- a/fs/ext3/super.c +++ b/fs/ext3/super.c | |||
@@ -472,7 +472,7 @@ static void ext3_destroy_inode(struct inode *inode) | |||
472 | kmem_cache_free(ext3_inode_cachep, EXT3_I(inode)); | 472 | kmem_cache_free(ext3_inode_cachep, EXT3_I(inode)); |
473 | } | 473 | } |
474 | 474 | ||
475 | static void init_once(void * foo, struct kmem_cache * cachep, unsigned long flags) | 475 | static void init_once(struct kmem_cache * cachep, void *foo) |
476 | { | 476 | { |
477 | struct ext3_inode_info *ei = (struct ext3_inode_info *) foo; | 477 | struct ext3_inode_info *ei = (struct ext3_inode_info *) foo; |
478 | 478 | ||
@@ -545,9 +545,78 @@ static inline void ext3_show_quota_options(struct seq_file *seq, struct super_bl | |||
545 | #endif | 545 | #endif |
546 | } | 546 | } |
547 | 547 | ||
548 | /* | ||
549 | * Show an option if | ||
550 | * - it's set to a non-default value OR | ||
551 | * - if the per-sb default is different from the global default | ||
552 | */ | ||
548 | static int ext3_show_options(struct seq_file *seq, struct vfsmount *vfs) | 553 | static int ext3_show_options(struct seq_file *seq, struct vfsmount *vfs) |
549 | { | 554 | { |
550 | struct super_block *sb = vfs->mnt_sb; | 555 | struct super_block *sb = vfs->mnt_sb; |
556 | struct ext3_sb_info *sbi = EXT3_SB(sb); | ||
557 | struct ext3_super_block *es = sbi->s_es; | ||
558 | unsigned long def_mount_opts; | ||
559 | |||
560 | def_mount_opts = le32_to_cpu(es->s_default_mount_opts); | ||
561 | |||
562 | if (sbi->s_sb_block != 1) | ||
563 | seq_printf(seq, ",sb=%lu", sbi->s_sb_block); | ||
564 | if (test_opt(sb, MINIX_DF)) | ||
565 | seq_puts(seq, ",minixdf"); | ||
566 | if (test_opt(sb, GRPID)) | ||
567 | seq_puts(seq, ",grpid"); | ||
568 | if (!test_opt(sb, GRPID) && (def_mount_opts & EXT3_DEFM_BSDGROUPS)) | ||
569 | seq_puts(seq, ",nogrpid"); | ||
570 | if (sbi->s_resuid != EXT3_DEF_RESUID || | ||
571 | le16_to_cpu(es->s_def_resuid) != EXT3_DEF_RESUID) { | ||
572 | seq_printf(seq, ",resuid=%u", sbi->s_resuid); | ||
573 | } | ||
574 | if (sbi->s_resgid != EXT3_DEF_RESGID || | ||
575 | le16_to_cpu(es->s_def_resgid) != EXT3_DEF_RESGID) { | ||
576 | seq_printf(seq, ",resgid=%u", sbi->s_resgid); | ||
577 | } | ||
578 | if (test_opt(sb, ERRORS_CONT)) { | ||
579 | int def_errors = le16_to_cpu(es->s_errors); | ||
580 | |||
581 | if (def_errors == EXT3_ERRORS_PANIC || | ||
582 | def_errors == EXT3_ERRORS_RO) { | ||
583 | seq_puts(seq, ",errors=continue"); | ||
584 | } | ||
585 | } | ||
586 | if (test_opt(sb, ERRORS_RO)) | ||
587 | seq_puts(seq, ",errors=remount-ro"); | ||
588 | if (test_opt(sb, ERRORS_PANIC)) | ||
589 | seq_puts(seq, ",errors=panic"); | ||
590 | if (test_opt(sb, NO_UID32)) | ||
591 | seq_puts(seq, ",nouid32"); | ||
592 | if (test_opt(sb, DEBUG)) | ||
593 | seq_puts(seq, ",debug"); | ||
594 | if (test_opt(sb, OLDALLOC)) | ||
595 | seq_puts(seq, ",oldalloc"); | ||
596 | #ifdef CONFIG_EXT3_FS_XATTR | ||
597 | if (test_opt(sb, XATTR_USER)) | ||
598 | seq_puts(seq, ",user_xattr"); | ||
599 | if (!test_opt(sb, XATTR_USER) && | ||
600 | (def_mount_opts & EXT3_DEFM_XATTR_USER)) { | ||
601 | seq_puts(seq, ",nouser_xattr"); | ||
602 | } | ||
603 | #endif | ||
604 | #ifdef CONFIG_EXT3_FS_POSIX_ACL | ||
605 | if (test_opt(sb, POSIX_ACL)) | ||
606 | seq_puts(seq, ",acl"); | ||
607 | if (!test_opt(sb, POSIX_ACL) && (def_mount_opts & EXT3_DEFM_ACL)) | ||
608 | seq_puts(seq, ",noacl"); | ||
609 | #endif | ||
610 | if (!test_opt(sb, RESERVATION)) | ||
611 | seq_puts(seq, ",noreservation"); | ||
612 | if (sbi->s_commit_interval) { | ||
613 | seq_printf(seq, ",commit=%u", | ||
614 | (unsigned) (sbi->s_commit_interval / HZ)); | ||
615 | } | ||
616 | if (test_opt(sb, BARRIER)) | ||
617 | seq_puts(seq, ",barrier=1"); | ||
618 | if (test_opt(sb, NOBH)) | ||
619 | seq_puts(seq, ",nobh"); | ||
551 | 620 | ||
552 | if (test_opt(sb, DATA_FLAGS) == EXT3_MOUNT_JOURNAL_DATA) | 621 | if (test_opt(sb, DATA_FLAGS) == EXT3_MOUNT_JOURNAL_DATA) |
553 | seq_puts(seq, ",data=journal"); | 622 | seq_puts(seq, ",data=journal"); |
@@ -1416,6 +1485,7 @@ static int ext3_fill_super (struct super_block *sb, void *data, int silent) | |||
1416 | int i; | 1485 | int i; |
1417 | int needs_recovery; | 1486 | int needs_recovery; |
1418 | __le32 features; | 1487 | __le32 features; |
1488 | int err; | ||
1419 | 1489 | ||
1420 | sbi = kzalloc(sizeof(*sbi), GFP_KERNEL); | 1490 | sbi = kzalloc(sizeof(*sbi), GFP_KERNEL); |
1421 | if (!sbi) | 1491 | if (!sbi) |
@@ -1424,6 +1494,7 @@ static int ext3_fill_super (struct super_block *sb, void *data, int silent) | |||
1424 | sbi->s_mount_opt = 0; | 1494 | sbi->s_mount_opt = 0; |
1425 | sbi->s_resuid = EXT3_DEF_RESUID; | 1495 | sbi->s_resuid = EXT3_DEF_RESUID; |
1426 | sbi->s_resgid = EXT3_DEF_RESGID; | 1496 | sbi->s_resgid = EXT3_DEF_RESGID; |
1497 | sbi->s_sb_block = sb_block; | ||
1427 | 1498 | ||
1428 | unlock_kernel(); | 1499 | unlock_kernel(); |
1429 | 1500 | ||
@@ -1675,12 +1746,20 @@ static int ext3_fill_super (struct super_block *sb, void *data, int silent) | |||
1675 | get_random_bytes(&sbi->s_next_generation, sizeof(u32)); | 1746 | get_random_bytes(&sbi->s_next_generation, sizeof(u32)); |
1676 | spin_lock_init(&sbi->s_next_gen_lock); | 1747 | spin_lock_init(&sbi->s_next_gen_lock); |
1677 | 1748 | ||
1678 | percpu_counter_init(&sbi->s_freeblocks_counter, | 1749 | err = percpu_counter_init(&sbi->s_freeblocks_counter, |
1679 | ext3_count_free_blocks(sb)); | 1750 | ext3_count_free_blocks(sb)); |
1680 | percpu_counter_init(&sbi->s_freeinodes_counter, | 1751 | if (!err) { |
1681 | ext3_count_free_inodes(sb)); | 1752 | err = percpu_counter_init(&sbi->s_freeinodes_counter, |
1682 | percpu_counter_init(&sbi->s_dirs_counter, | 1753 | ext3_count_free_inodes(sb)); |
1683 | ext3_count_dirs(sb)); | 1754 | } |
1755 | if (!err) { | ||
1756 | err = percpu_counter_init(&sbi->s_dirs_counter, | ||
1757 | ext3_count_dirs(sb)); | ||
1758 | } | ||
1759 | if (err) { | ||
1760 | printk(KERN_ERR "EXT3-fs: insufficient memory\n"); | ||
1761 | goto failed_mount3; | ||
1762 | } | ||
1684 | 1763 | ||
1685 | /* per fileystem reservation list head & lock */ | 1764 | /* per fileystem reservation list head & lock */ |
1686 | spin_lock_init(&sbi->s_rsv_window_lock); | 1765 | spin_lock_init(&sbi->s_rsv_window_lock); |
@@ -2472,13 +2551,13 @@ static int ext3_statfs (struct dentry * dentry, struct kstatfs * buf) | |||
2472 | buf->f_type = EXT3_SUPER_MAGIC; | 2551 | buf->f_type = EXT3_SUPER_MAGIC; |
2473 | buf->f_bsize = sb->s_blocksize; | 2552 | buf->f_bsize = sb->s_blocksize; |
2474 | buf->f_blocks = le32_to_cpu(es->s_blocks_count) - sbi->s_overhead_last; | 2553 | buf->f_blocks = le32_to_cpu(es->s_blocks_count) - sbi->s_overhead_last; |
2475 | buf->f_bfree = percpu_counter_sum(&sbi->s_freeblocks_counter); | 2554 | buf->f_bfree = percpu_counter_sum_positive(&sbi->s_freeblocks_counter); |
2476 | es->s_free_blocks_count = cpu_to_le32(buf->f_bfree); | 2555 | es->s_free_blocks_count = cpu_to_le32(buf->f_bfree); |
2477 | buf->f_bavail = buf->f_bfree - le32_to_cpu(es->s_r_blocks_count); | 2556 | buf->f_bavail = buf->f_bfree - le32_to_cpu(es->s_r_blocks_count); |
2478 | if (buf->f_bfree < le32_to_cpu(es->s_r_blocks_count)) | 2557 | if (buf->f_bfree < le32_to_cpu(es->s_r_blocks_count)) |
2479 | buf->f_bavail = 0; | 2558 | buf->f_bavail = 0; |
2480 | buf->f_files = le32_to_cpu(es->s_inodes_count); | 2559 | buf->f_files = le32_to_cpu(es->s_inodes_count); |
2481 | buf->f_ffree = percpu_counter_sum(&sbi->s_freeinodes_counter); | 2560 | buf->f_ffree = percpu_counter_sum_positive(&sbi->s_freeinodes_counter); |
2482 | es->s_free_inodes_count = cpu_to_le32(buf->f_ffree); | 2561 | es->s_free_inodes_count = cpu_to_le32(buf->f_ffree); |
2483 | buf->f_namelen = EXT3_NAME_LEN; | 2562 | buf->f_namelen = EXT3_NAME_LEN; |
2484 | fsid = le64_to_cpup((void *)es->s_uuid) ^ | 2563 | fsid = le64_to_cpup((void *)es->s_uuid) ^ |
diff --git a/fs/ext4/balloc.c b/fs/ext4/balloc.c index e53b4af52f11..b74bf4368441 100644 --- a/fs/ext4/balloc.c +++ b/fs/ext4/balloc.c | |||
@@ -100,6 +100,15 @@ struct ext4_group_desc * ext4_get_group_desc(struct super_block * sb, | |||
100 | return desc; | 100 | return desc; |
101 | } | 101 | } |
102 | 102 | ||
103 | static inline int | ||
104 | block_in_use(ext4_fsblk_t block, struct super_block *sb, unsigned char *map) | ||
105 | { | ||
106 | ext4_grpblk_t offset; | ||
107 | |||
108 | ext4_get_group_no_and_offset(sb, block, NULL, &offset); | ||
109 | return ext4_test_bit (offset, map); | ||
110 | } | ||
111 | |||
103 | /** | 112 | /** |
104 | * read_block_bitmap() | 113 | * read_block_bitmap() |
105 | * @sb: super block | 114 | * @sb: super block |
@@ -113,21 +122,53 @@ struct ext4_group_desc * ext4_get_group_desc(struct super_block * sb, | |||
113 | static struct buffer_head * | 122 | static struct buffer_head * |
114 | read_block_bitmap(struct super_block *sb, unsigned int block_group) | 123 | read_block_bitmap(struct super_block *sb, unsigned int block_group) |
115 | { | 124 | { |
125 | int i; | ||
116 | struct ext4_group_desc * desc; | 126 | struct ext4_group_desc * desc; |
117 | struct buffer_head * bh = NULL; | 127 | struct buffer_head * bh = NULL; |
128 | ext4_fsblk_t bitmap_blk; | ||
118 | 129 | ||
119 | desc = ext4_get_group_desc (sb, block_group, NULL); | 130 | desc = ext4_get_group_desc (sb, block_group, NULL); |
120 | if (!desc) | 131 | if (!desc) |
121 | goto error_out; | 132 | return NULL; |
122 | bh = sb_bread(sb, ext4_block_bitmap(sb, desc)); | 133 | bitmap_blk = ext4_block_bitmap(sb, desc); |
134 | bh = sb_bread(sb, bitmap_blk); | ||
123 | if (!bh) | 135 | if (!bh) |
124 | ext4_error (sb, "read_block_bitmap", | 136 | ext4_error (sb, __FUNCTION__, |
125 | "Cannot read block bitmap - " | 137 | "Cannot read block bitmap - " |
126 | "block_group = %d, block_bitmap = %llu", | 138 | "block_group = %d, block_bitmap = %llu", |
127 | block_group, | 139 | block_group, bitmap_blk); |
128 | ext4_block_bitmap(sb, desc)); | 140 | |
129 | error_out: | 141 | /* check whether block bitmap block number is set */ |
142 | if (!block_in_use(bitmap_blk, sb, bh->b_data)) { | ||
143 | /* bad block bitmap */ | ||
144 | goto error_out; | ||
145 | } | ||
146 | |||
147 | /* check whether the inode bitmap block number is set */ | ||
148 | bitmap_blk = ext4_inode_bitmap(sb, desc); | ||
149 | if (!block_in_use(bitmap_blk, sb, bh->b_data)) { | ||
150 | /* bad block bitmap */ | ||
151 | goto error_out; | ||
152 | } | ||
153 | /* check whether the inode table block number is set */ | ||
154 | bitmap_blk = ext4_inode_table(sb, desc); | ||
155 | for (i = 0; i < EXT4_SB(sb)->s_itb_per_group; i++, bitmap_blk++) { | ||
156 | if (!block_in_use(bitmap_blk, sb, bh->b_data)) { | ||
157 | /* bad block bitmap */ | ||
158 | goto error_out; | ||
159 | } | ||
160 | } | ||
161 | |||
130 | return bh; | 162 | return bh; |
163 | |||
164 | error_out: | ||
165 | brelse(bh); | ||
166 | ext4_error(sb, __FUNCTION__, | ||
167 | "Invalid block bitmap - " | ||
168 | "block_group = %d, block = %llu", | ||
169 | block_group, bitmap_blk); | ||
170 | return NULL; | ||
171 | |||
131 | } | 172 | } |
132 | /* | 173 | /* |
133 | * The reservation window structure operations | 174 | * The reservation window structure operations |
@@ -587,7 +628,7 @@ do_more: | |||
587 | cpu_to_le16(le16_to_cpu(desc->bg_free_blocks_count) + | 628 | cpu_to_le16(le16_to_cpu(desc->bg_free_blocks_count) + |
588 | group_freed); | 629 | group_freed); |
589 | spin_unlock(sb_bgl_lock(sbi, block_group)); | 630 | spin_unlock(sb_bgl_lock(sbi, block_group)); |
590 | percpu_counter_mod(&sbi->s_freeblocks_counter, count); | 631 | percpu_counter_add(&sbi->s_freeblocks_counter, count); |
591 | 632 | ||
592 | /* We dirtied the bitmap block */ | 633 | /* We dirtied the bitmap block */ |
593 | BUFFER_TRACE(bitmap_bh, "dirtied bitmap block"); | 634 | BUFFER_TRACE(bitmap_bh, "dirtied bitmap block"); |
@@ -1647,7 +1688,7 @@ allocated: | |||
1647 | gdp->bg_free_blocks_count = | 1688 | gdp->bg_free_blocks_count = |
1648 | cpu_to_le16(le16_to_cpu(gdp->bg_free_blocks_count)-num); | 1689 | cpu_to_le16(le16_to_cpu(gdp->bg_free_blocks_count)-num); |
1649 | spin_unlock(sb_bgl_lock(sbi, group_no)); | 1690 | spin_unlock(sb_bgl_lock(sbi, group_no)); |
1650 | percpu_counter_mod(&sbi->s_freeblocks_counter, -num); | 1691 | percpu_counter_sub(&sbi->s_freeblocks_counter, num); |
1651 | 1692 | ||
1652 | BUFFER_TRACE(gdp_bh, "journal_dirty_metadata for group descriptor"); | 1693 | BUFFER_TRACE(gdp_bh, "journal_dirty_metadata for group descriptor"); |
1653 | err = ext4_journal_dirty_metadata(handle, gdp_bh); | 1694 | err = ext4_journal_dirty_metadata(handle, gdp_bh); |
@@ -1747,15 +1788,6 @@ ext4_fsblk_t ext4_count_free_blocks(struct super_block *sb) | |||
1747 | #endif | 1788 | #endif |
1748 | } | 1789 | } |
1749 | 1790 | ||
1750 | static inline int | ||
1751 | block_in_use(ext4_fsblk_t block, struct super_block *sb, unsigned char *map) | ||
1752 | { | ||
1753 | ext4_grpblk_t offset; | ||
1754 | |||
1755 | ext4_get_group_no_and_offset(sb, block, NULL, &offset); | ||
1756 | return ext4_test_bit (offset, map); | ||
1757 | } | ||
1758 | |||
1759 | static inline int test_root(int a, int b) | 1791 | static inline int test_root(int a, int b) |
1760 | { | 1792 | { |
1761 | int num = b; | 1793 | int num = b; |
diff --git a/fs/ext4/bitmap.c b/fs/ext4/bitmap.c index 11e93c169bcf..420554f8f79d 100644 --- a/fs/ext4/bitmap.c +++ b/fs/ext4/bitmap.c | |||
@@ -13,7 +13,7 @@ | |||
13 | 13 | ||
14 | #ifdef EXT4FS_DEBUG | 14 | #ifdef EXT4FS_DEBUG |
15 | 15 | ||
16 | static int nibblemap[] = {4, 3, 3, 2, 3, 2, 2, 1, 3, 2, 2, 1, 2, 1, 1, 0}; | 16 | static const int nibblemap[] = {4, 3, 3, 2, 3, 2, 2, 1, 3, 2, 2, 1, 2, 1, 1, 0}; |
17 | 17 | ||
18 | unsigned long ext4_count_free (struct buffer_head * map, unsigned int numchars) | 18 | unsigned long ext4_count_free (struct buffer_head * map, unsigned int numchars) |
19 | { | 19 | { |
diff --git a/fs/ext4/dir.c b/fs/ext4/dir.c index e11890acfa21..0fb1e62b20d0 100644 --- a/fs/ext4/dir.c +++ b/fs/ext4/dir.c | |||
@@ -210,7 +210,7 @@ revalidate: | |||
210 | * not the directory has been modified | 210 | * not the directory has been modified |
211 | * during the copy operation. | 211 | * during the copy operation. |
212 | */ | 212 | */ |
213 | unsigned long version = filp->f_version; | 213 | u64 version = filp->f_version; |
214 | 214 | ||
215 | error = filldir(dirent, de->name, | 215 | error = filldir(dirent, de->name, |
216 | de->name_len, | 216 | de->name_len, |
diff --git a/fs/ext4/ialloc.c b/fs/ext4/ialloc.c index 427f83066a0d..d0c7793d9393 100644 --- a/fs/ext4/ialloc.c +++ b/fs/ext4/ialloc.c | |||
@@ -204,14 +204,13 @@ static int find_group_dir(struct super_block *sb, struct inode *parent) | |||
204 | int ngroups = EXT4_SB(sb)->s_groups_count; | 204 | int ngroups = EXT4_SB(sb)->s_groups_count; |
205 | unsigned int freei, avefreei; | 205 | unsigned int freei, avefreei; |
206 | struct ext4_group_desc *desc, *best_desc = NULL; | 206 | struct ext4_group_desc *desc, *best_desc = NULL; |
207 | struct buffer_head *bh; | ||
208 | int group, best_group = -1; | 207 | int group, best_group = -1; |
209 | 208 | ||
210 | freei = percpu_counter_read_positive(&EXT4_SB(sb)->s_freeinodes_counter); | 209 | freei = percpu_counter_read_positive(&EXT4_SB(sb)->s_freeinodes_counter); |
211 | avefreei = freei / ngroups; | 210 | avefreei = freei / ngroups; |
212 | 211 | ||
213 | for (group = 0; group < ngroups; group++) { | 212 | for (group = 0; group < ngroups; group++) { |
214 | desc = ext4_get_group_desc (sb, group, &bh); | 213 | desc = ext4_get_group_desc (sb, group, NULL); |
215 | if (!desc || !desc->bg_free_inodes_count) | 214 | if (!desc || !desc->bg_free_inodes_count) |
216 | continue; | 215 | continue; |
217 | if (le16_to_cpu(desc->bg_free_inodes_count) < avefreei) | 216 | if (le16_to_cpu(desc->bg_free_inodes_count) < avefreei) |
@@ -269,7 +268,6 @@ static int find_group_orlov(struct super_block *sb, struct inode *parent) | |||
269 | ext4_grpblk_t min_blocks; | 268 | ext4_grpblk_t min_blocks; |
270 | int group = -1, i; | 269 | int group = -1, i; |
271 | struct ext4_group_desc *desc; | 270 | struct ext4_group_desc *desc; |
272 | struct buffer_head *bh; | ||
273 | 271 | ||
274 | freei = percpu_counter_read_positive(&sbi->s_freeinodes_counter); | 272 | freei = percpu_counter_read_positive(&sbi->s_freeinodes_counter); |
275 | avefreei = freei / ngroups; | 273 | avefreei = freei / ngroups; |
@@ -287,7 +285,7 @@ static int find_group_orlov(struct super_block *sb, struct inode *parent) | |||
287 | parent_group = (unsigned)group % ngroups; | 285 | parent_group = (unsigned)group % ngroups; |
288 | for (i = 0; i < ngroups; i++) { | 286 | for (i = 0; i < ngroups; i++) { |
289 | group = (parent_group + i) % ngroups; | 287 | group = (parent_group + i) % ngroups; |
290 | desc = ext4_get_group_desc (sb, group, &bh); | 288 | desc = ext4_get_group_desc (sb, group, NULL); |
291 | if (!desc || !desc->bg_free_inodes_count) | 289 | if (!desc || !desc->bg_free_inodes_count) |
292 | continue; | 290 | continue; |
293 | if (le16_to_cpu(desc->bg_used_dirs_count) >= best_ndir) | 291 | if (le16_to_cpu(desc->bg_used_dirs_count) >= best_ndir) |
@@ -322,7 +320,7 @@ static int find_group_orlov(struct super_block *sb, struct inode *parent) | |||
322 | 320 | ||
323 | for (i = 0; i < ngroups; i++) { | 321 | for (i = 0; i < ngroups; i++) { |
324 | group = (parent_group + i) % ngroups; | 322 | group = (parent_group + i) % ngroups; |
325 | desc = ext4_get_group_desc (sb, group, &bh); | 323 | desc = ext4_get_group_desc (sb, group, NULL); |
326 | if (!desc || !desc->bg_free_inodes_count) | 324 | if (!desc || !desc->bg_free_inodes_count) |
327 | continue; | 325 | continue; |
328 | if (le16_to_cpu(desc->bg_used_dirs_count) >= max_dirs) | 326 | if (le16_to_cpu(desc->bg_used_dirs_count) >= max_dirs) |
@@ -337,7 +335,7 @@ static int find_group_orlov(struct super_block *sb, struct inode *parent) | |||
337 | fallback: | 335 | fallback: |
338 | for (i = 0; i < ngroups; i++) { | 336 | for (i = 0; i < ngroups; i++) { |
339 | group = (parent_group + i) % ngroups; | 337 | group = (parent_group + i) % ngroups; |
340 | desc = ext4_get_group_desc (sb, group, &bh); | 338 | desc = ext4_get_group_desc (sb, group, NULL); |
341 | if (!desc || !desc->bg_free_inodes_count) | 339 | if (!desc || !desc->bg_free_inodes_count) |
342 | continue; | 340 | continue; |
343 | if (le16_to_cpu(desc->bg_free_inodes_count) >= avefreei) | 341 | if (le16_to_cpu(desc->bg_free_inodes_count) >= avefreei) |
@@ -361,14 +359,13 @@ static int find_group_other(struct super_block *sb, struct inode *parent) | |||
361 | int parent_group = EXT4_I(parent)->i_block_group; | 359 | int parent_group = EXT4_I(parent)->i_block_group; |
362 | int ngroups = EXT4_SB(sb)->s_groups_count; | 360 | int ngroups = EXT4_SB(sb)->s_groups_count; |
363 | struct ext4_group_desc *desc; | 361 | struct ext4_group_desc *desc; |
364 | struct buffer_head *bh; | ||
365 | int group, i; | 362 | int group, i; |
366 | 363 | ||
367 | /* | 364 | /* |
368 | * Try to place the inode in its parent directory | 365 | * Try to place the inode in its parent directory |
369 | */ | 366 | */ |
370 | group = parent_group; | 367 | group = parent_group; |
371 | desc = ext4_get_group_desc (sb, group, &bh); | 368 | desc = ext4_get_group_desc (sb, group, NULL); |
372 | if (desc && le16_to_cpu(desc->bg_free_inodes_count) && | 369 | if (desc && le16_to_cpu(desc->bg_free_inodes_count) && |
373 | le16_to_cpu(desc->bg_free_blocks_count)) | 370 | le16_to_cpu(desc->bg_free_blocks_count)) |
374 | return group; | 371 | return group; |
@@ -392,7 +389,7 @@ static int find_group_other(struct super_block *sb, struct inode *parent) | |||
392 | group += i; | 389 | group += i; |
393 | if (group >= ngroups) | 390 | if (group >= ngroups) |
394 | group -= ngroups; | 391 | group -= ngroups; |
395 | desc = ext4_get_group_desc (sb, group, &bh); | 392 | desc = ext4_get_group_desc (sb, group, NULL); |
396 | if (desc && le16_to_cpu(desc->bg_free_inodes_count) && | 393 | if (desc && le16_to_cpu(desc->bg_free_inodes_count) && |
397 | le16_to_cpu(desc->bg_free_blocks_count)) | 394 | le16_to_cpu(desc->bg_free_blocks_count)) |
398 | return group; | 395 | return group; |
@@ -406,7 +403,7 @@ static int find_group_other(struct super_block *sb, struct inode *parent) | |||
406 | for (i = 0; i < ngroups; i++) { | 403 | for (i = 0; i < ngroups; i++) { |
407 | if (++group >= ngroups) | 404 | if (++group >= ngroups) |
408 | group = 0; | 405 | group = 0; |
409 | desc = ext4_get_group_desc (sb, group, &bh); | 406 | desc = ext4_get_group_desc (sb, group, NULL); |
410 | if (desc && le16_to_cpu(desc->bg_free_inodes_count)) | 407 | if (desc && le16_to_cpu(desc->bg_free_inodes_count)) |
411 | return group; | 408 | return group; |
412 | } | 409 | } |
diff --git a/fs/ext4/resize.c b/fs/ext4/resize.c index aa11d7dbe970..472fc0d3e1c0 100644 --- a/fs/ext4/resize.c +++ b/fs/ext4/resize.c | |||
@@ -893,9 +893,9 @@ int ext4_group_add(struct super_block *sb, struct ext4_new_group_data *input) | |||
893 | input->reserved_blocks); | 893 | input->reserved_blocks); |
894 | 894 | ||
895 | /* Update the free space counts */ | 895 | /* Update the free space counts */ |
896 | percpu_counter_mod(&sbi->s_freeblocks_counter, | 896 | percpu_counter_add(&sbi->s_freeblocks_counter, |
897 | input->free_blocks_count); | 897 | input->free_blocks_count); |
898 | percpu_counter_mod(&sbi->s_freeinodes_counter, | 898 | percpu_counter_add(&sbi->s_freeinodes_counter, |
899 | EXT4_INODES_PER_GROUP(sb)); | 899 | EXT4_INODES_PER_GROUP(sb)); |
900 | 900 | ||
901 | ext4_journal_dirty_metadata(handle, sbi->s_sbh); | 901 | ext4_journal_dirty_metadata(handle, sbi->s_sbh); |
diff --git a/fs/ext4/super.c b/fs/ext4/super.c index 3c1397fa83df..4c8d31c61454 100644 --- a/fs/ext4/super.c +++ b/fs/ext4/super.c | |||
@@ -523,7 +523,7 @@ static void ext4_destroy_inode(struct inode *inode) | |||
523 | kmem_cache_free(ext4_inode_cachep, EXT4_I(inode)); | 523 | kmem_cache_free(ext4_inode_cachep, EXT4_I(inode)); |
524 | } | 524 | } |
525 | 525 | ||
526 | static void init_once(void * foo, struct kmem_cache * cachep, unsigned long flags) | 526 | static void init_once(struct kmem_cache *cachep, void *foo) |
527 | { | 527 | { |
528 | struct ext4_inode_info *ei = (struct ext4_inode_info *) foo; | 528 | struct ext4_inode_info *ei = (struct ext4_inode_info *) foo; |
529 | 529 | ||
@@ -596,9 +596,80 @@ static inline void ext4_show_quota_options(struct seq_file *seq, struct super_bl | |||
596 | #endif | 596 | #endif |
597 | } | 597 | } |
598 | 598 | ||
599 | /* | ||
600 | * Show an option if | ||
601 | * - it's set to a non-default value OR | ||
602 | * - if the per-sb default is different from the global default | ||
603 | */ | ||
599 | static int ext4_show_options(struct seq_file *seq, struct vfsmount *vfs) | 604 | static int ext4_show_options(struct seq_file *seq, struct vfsmount *vfs) |
600 | { | 605 | { |
601 | struct super_block *sb = vfs->mnt_sb; | 606 | struct super_block *sb = vfs->mnt_sb; |
607 | struct ext4_sb_info *sbi = EXT4_SB(sb); | ||
608 | struct ext4_super_block *es = sbi->s_es; | ||
609 | unsigned long def_mount_opts; | ||
610 | |||
611 | def_mount_opts = le32_to_cpu(es->s_default_mount_opts); | ||
612 | |||
613 | if (sbi->s_sb_block != 1) | ||
614 | seq_printf(seq, ",sb=%llu", sbi->s_sb_block); | ||
615 | if (test_opt(sb, MINIX_DF)) | ||
616 | seq_puts(seq, ",minixdf"); | ||
617 | if (test_opt(sb, GRPID)) | ||
618 | seq_puts(seq, ",grpid"); | ||
619 | if (!test_opt(sb, GRPID) && (def_mount_opts & EXT4_DEFM_BSDGROUPS)) | ||
620 | seq_puts(seq, ",nogrpid"); | ||
621 | if (sbi->s_resuid != EXT4_DEF_RESUID || | ||
622 | le16_to_cpu(es->s_def_resuid) != EXT4_DEF_RESUID) { | ||
623 | seq_printf(seq, ",resuid=%u", sbi->s_resuid); | ||
624 | } | ||
625 | if (sbi->s_resgid != EXT4_DEF_RESGID || | ||
626 | le16_to_cpu(es->s_def_resgid) != EXT4_DEF_RESGID) { | ||
627 | seq_printf(seq, ",resgid=%u", sbi->s_resgid); | ||
628 | } | ||
629 | if (test_opt(sb, ERRORS_CONT)) { | ||
630 | int def_errors = le16_to_cpu(es->s_errors); | ||
631 | |||
632 | if (def_errors == EXT4_ERRORS_PANIC || | ||
633 | def_errors == EXT4_ERRORS_RO) { | ||
634 | seq_puts(seq, ",errors=continue"); | ||
635 | } | ||
636 | } | ||
637 | if (test_opt(sb, ERRORS_RO)) | ||
638 | seq_puts(seq, ",errors=remount-ro"); | ||
639 | if (test_opt(sb, ERRORS_PANIC)) | ||
640 | seq_puts(seq, ",errors=panic"); | ||
641 | if (test_opt(sb, NO_UID32)) | ||
642 | seq_puts(seq, ",nouid32"); | ||
643 | if (test_opt(sb, DEBUG)) | ||
644 | seq_puts(seq, ",debug"); | ||
645 | if (test_opt(sb, OLDALLOC)) | ||
646 | seq_puts(seq, ",oldalloc"); | ||
647 | #ifdef CONFIG_EXT4_FS_XATTR | ||
648 | if (test_opt(sb, XATTR_USER)) | ||
649 | seq_puts(seq, ",user_xattr"); | ||
650 | if (!test_opt(sb, XATTR_USER) && | ||
651 | (def_mount_opts & EXT4_DEFM_XATTR_USER)) { | ||
652 | seq_puts(seq, ",nouser_xattr"); | ||
653 | } | ||
654 | #endif | ||
655 | #ifdef CONFIG_EXT4_FS_POSIX_ACL | ||
656 | if (test_opt(sb, POSIX_ACL)) | ||
657 | seq_puts(seq, ",acl"); | ||
658 | if (!test_opt(sb, POSIX_ACL) && (def_mount_opts & EXT4_DEFM_ACL)) | ||
659 | seq_puts(seq, ",noacl"); | ||
660 | #endif | ||
661 | if (!test_opt(sb, RESERVATION)) | ||
662 | seq_puts(seq, ",noreservation"); | ||
663 | if (sbi->s_commit_interval) { | ||
664 | seq_printf(seq, ",commit=%u", | ||
665 | (unsigned) (sbi->s_commit_interval / HZ)); | ||
666 | } | ||
667 | if (test_opt(sb, BARRIER)) | ||
668 | seq_puts(seq, ",barrier=1"); | ||
669 | if (test_opt(sb, NOBH)) | ||
670 | seq_puts(seq, ",nobh"); | ||
671 | if (!test_opt(sb, EXTENTS)) | ||
672 | seq_puts(seq, ",noextents"); | ||
602 | 673 | ||
603 | if (test_opt(sb, DATA_FLAGS) == EXT4_MOUNT_JOURNAL_DATA) | 674 | if (test_opt(sb, DATA_FLAGS) == EXT4_MOUNT_JOURNAL_DATA) |
604 | seq_puts(seq, ",data=journal"); | 675 | seq_puts(seq, ",data=journal"); |
@@ -1415,8 +1486,6 @@ static void ext4_orphan_cleanup (struct super_block * sb, | |||
1415 | sb->s_flags = s_flags; /* Restore MS_RDONLY status */ | 1486 | sb->s_flags = s_flags; /* Restore MS_RDONLY status */ |
1416 | } | 1487 | } |
1417 | 1488 | ||
1418 | #define log2(n) ffz(~(n)) | ||
1419 | |||
1420 | /* | 1489 | /* |
1421 | * Maximal file size. There is a direct, and {,double-,triple-}indirect | 1490 | * Maximal file size. There is a direct, and {,double-,triple-}indirect |
1422 | * block limit, and also a limit of (2^32 - 1) 512-byte sectors in i_blocks. | 1491 | * block limit, and also a limit of (2^32 - 1) 512-byte sectors in i_blocks. |
@@ -1479,6 +1548,7 @@ static int ext4_fill_super (struct super_block *sb, void *data, int silent) | |||
1479 | int needs_recovery; | 1548 | int needs_recovery; |
1480 | __le32 features; | 1549 | __le32 features; |
1481 | __u64 blocks_count; | 1550 | __u64 blocks_count; |
1551 | int err; | ||
1482 | 1552 | ||
1483 | sbi = kzalloc(sizeof(*sbi), GFP_KERNEL); | 1553 | sbi = kzalloc(sizeof(*sbi), GFP_KERNEL); |
1484 | if (!sbi) | 1554 | if (!sbi) |
@@ -1487,6 +1557,7 @@ static int ext4_fill_super (struct super_block *sb, void *data, int silent) | |||
1487 | sbi->s_mount_opt = 0; | 1557 | sbi->s_mount_opt = 0; |
1488 | sbi->s_resuid = EXT4_DEF_RESUID; | 1558 | sbi->s_resuid = EXT4_DEF_RESUID; |
1489 | sbi->s_resgid = EXT4_DEF_RESGID; | 1559 | sbi->s_resgid = EXT4_DEF_RESGID; |
1560 | sbi->s_sb_block = sb_block; | ||
1490 | 1561 | ||
1491 | unlock_kernel(); | 1562 | unlock_kernel(); |
1492 | 1563 | ||
@@ -1667,7 +1738,7 @@ static int ext4_fill_super (struct super_block *sb, void *data, int silent) | |||
1667 | if (EXT4_HAS_INCOMPAT_FEATURE(sb, EXT4_FEATURE_INCOMPAT_64BIT)) { | 1738 | if (EXT4_HAS_INCOMPAT_FEATURE(sb, EXT4_FEATURE_INCOMPAT_64BIT)) { |
1668 | if (sbi->s_desc_size < EXT4_MIN_DESC_SIZE_64BIT || | 1739 | if (sbi->s_desc_size < EXT4_MIN_DESC_SIZE_64BIT || |
1669 | sbi->s_desc_size > EXT4_MAX_DESC_SIZE || | 1740 | sbi->s_desc_size > EXT4_MAX_DESC_SIZE || |
1670 | sbi->s_desc_size & (sbi->s_desc_size - 1)) { | 1741 | !is_power_of_2(sbi->s_desc_size)) { |
1671 | printk(KERN_ERR | 1742 | printk(KERN_ERR |
1672 | "EXT4-fs: unsupported descriptor size %lu\n", | 1743 | "EXT4-fs: unsupported descriptor size %lu\n", |
1673 | sbi->s_desc_size); | 1744 | sbi->s_desc_size); |
@@ -1688,8 +1759,8 @@ static int ext4_fill_super (struct super_block *sb, void *data, int silent) | |||
1688 | sbi->s_desc_per_block = blocksize / EXT4_DESC_SIZE(sb); | 1759 | sbi->s_desc_per_block = blocksize / EXT4_DESC_SIZE(sb); |
1689 | sbi->s_sbh = bh; | 1760 | sbi->s_sbh = bh; |
1690 | sbi->s_mount_state = le16_to_cpu(es->s_state); | 1761 | sbi->s_mount_state = le16_to_cpu(es->s_state); |
1691 | sbi->s_addr_per_block_bits = log2(EXT4_ADDR_PER_BLOCK(sb)); | 1762 | sbi->s_addr_per_block_bits = ilog2(EXT4_ADDR_PER_BLOCK(sb)); |
1692 | sbi->s_desc_per_block_bits = log2(EXT4_DESC_PER_BLOCK(sb)); | 1763 | sbi->s_desc_per_block_bits = ilog2(EXT4_DESC_PER_BLOCK(sb)); |
1693 | for (i=0; i < 4; i++) | 1764 | for (i=0; i < 4; i++) |
1694 | sbi->s_hash_seed[i] = le32_to_cpu(es->s_hash_seed[i]); | 1765 | sbi->s_hash_seed[i] = le32_to_cpu(es->s_hash_seed[i]); |
1695 | sbi->s_def_hash_version = es->s_def_hash_version; | 1766 | sbi->s_def_hash_version = es->s_def_hash_version; |
@@ -1759,12 +1830,20 @@ static int ext4_fill_super (struct super_block *sb, void *data, int silent) | |||
1759 | get_random_bytes(&sbi->s_next_generation, sizeof(u32)); | 1830 | get_random_bytes(&sbi->s_next_generation, sizeof(u32)); |
1760 | spin_lock_init(&sbi->s_next_gen_lock); | 1831 | spin_lock_init(&sbi->s_next_gen_lock); |
1761 | 1832 | ||
1762 | percpu_counter_init(&sbi->s_freeblocks_counter, | 1833 | err = percpu_counter_init(&sbi->s_freeblocks_counter, |
1763 | ext4_count_free_blocks(sb)); | 1834 | ext4_count_free_blocks(sb)); |
1764 | percpu_counter_init(&sbi->s_freeinodes_counter, | 1835 | if (!err) { |
1765 | ext4_count_free_inodes(sb)); | 1836 | err = percpu_counter_init(&sbi->s_freeinodes_counter, |
1766 | percpu_counter_init(&sbi->s_dirs_counter, | 1837 | ext4_count_free_inodes(sb)); |
1767 | ext4_count_dirs(sb)); | 1838 | } |
1839 | if (!err) { | ||
1840 | err = percpu_counter_init(&sbi->s_dirs_counter, | ||
1841 | ext4_count_dirs(sb)); | ||
1842 | } | ||
1843 | if (err) { | ||
1844 | printk(KERN_ERR "EXT4-fs: insufficient memory\n"); | ||
1845 | goto failed_mount3; | ||
1846 | } | ||
1768 | 1847 | ||
1769 | /* per fileystem reservation list head & lock */ | 1848 | /* per fileystem reservation list head & lock */ |
1770 | spin_lock_init(&sbi->s_rsv_window_lock); | 1849 | spin_lock_init(&sbi->s_rsv_window_lock); |
@@ -2592,13 +2671,13 @@ static int ext4_statfs (struct dentry * dentry, struct kstatfs * buf) | |||
2592 | buf->f_type = EXT4_SUPER_MAGIC; | 2671 | buf->f_type = EXT4_SUPER_MAGIC; |
2593 | buf->f_bsize = sb->s_blocksize; | 2672 | buf->f_bsize = sb->s_blocksize; |
2594 | buf->f_blocks = ext4_blocks_count(es) - sbi->s_overhead_last; | 2673 | buf->f_blocks = ext4_blocks_count(es) - sbi->s_overhead_last; |
2595 | buf->f_bfree = percpu_counter_sum(&sbi->s_freeblocks_counter); | 2674 | buf->f_bfree = percpu_counter_sum_positive(&sbi->s_freeblocks_counter); |
2596 | es->s_free_blocks_count = cpu_to_le32(buf->f_bfree); | 2675 | es->s_free_blocks_count = cpu_to_le32(buf->f_bfree); |
2597 | buf->f_bavail = buf->f_bfree - ext4_r_blocks_count(es); | 2676 | buf->f_bavail = buf->f_bfree - ext4_r_blocks_count(es); |
2598 | if (buf->f_bfree < ext4_r_blocks_count(es)) | 2677 | if (buf->f_bfree < ext4_r_blocks_count(es)) |
2599 | buf->f_bavail = 0; | 2678 | buf->f_bavail = 0; |
2600 | buf->f_files = le32_to_cpu(es->s_inodes_count); | 2679 | buf->f_files = le32_to_cpu(es->s_inodes_count); |
2601 | buf->f_ffree = percpu_counter_sum(&sbi->s_freeinodes_counter); | 2680 | buf->f_ffree = percpu_counter_sum_positive(&sbi->s_freeinodes_counter); |
2602 | es->s_free_inodes_count = cpu_to_le32(buf->f_ffree); | 2681 | es->s_free_inodes_count = cpu_to_le32(buf->f_ffree); |
2603 | buf->f_namelen = EXT4_NAME_LEN; | 2682 | buf->f_namelen = EXT4_NAME_LEN; |
2604 | fsid = le64_to_cpup((void *)es->s_uuid) ^ | 2683 | fsid = le64_to_cpup((void *)es->s_uuid) ^ |
diff --git a/fs/fat/cache.c b/fs/fat/cache.c index be6f89b152ca..639b3b4f86d1 100644 --- a/fs/fat/cache.c +++ b/fs/fat/cache.c | |||
@@ -36,7 +36,7 @@ static inline int fat_max_cache(struct inode *inode) | |||
36 | 36 | ||
37 | static struct kmem_cache *fat_cache_cachep; | 37 | static struct kmem_cache *fat_cache_cachep; |
38 | 38 | ||
39 | static void init_once(void *foo, struct kmem_cache *cachep, unsigned long flags) | 39 | static void init_once(struct kmem_cache *cachep, void *foo) |
40 | { | 40 | { |
41 | struct fat_cache *cache = (struct fat_cache *)foo; | 41 | struct fat_cache *cache = (struct fat_cache *)foo; |
42 | 42 | ||
diff --git a/fs/fat/inode.c b/fs/fat/inode.c index 46b8a67f55c6..c0c5e9c55b58 100644 --- a/fs/fat/inode.c +++ b/fs/fat/inode.c | |||
@@ -501,7 +501,7 @@ static void fat_destroy_inode(struct inode *inode) | |||
501 | kmem_cache_free(fat_inode_cachep, MSDOS_I(inode)); | 501 | kmem_cache_free(fat_inode_cachep, MSDOS_I(inode)); |
502 | } | 502 | } |
503 | 503 | ||
504 | static void init_once(void * foo, struct kmem_cache * cachep, unsigned long flags) | 504 | static void init_once(struct kmem_cache *cachep, void *foo) |
505 | { | 505 | { |
506 | struct msdos_inode_info *ei = (struct msdos_inode_info *)foo; | 506 | struct msdos_inode_info *ei = (struct msdos_inode_info *)foo; |
507 | 507 | ||
diff --git a/fs/fcntl.c b/fs/fcntl.c index 78b2ff044054..c9db73fc5e3d 100644 --- a/fs/fcntl.c +++ b/fs/fcntl.c | |||
@@ -110,7 +110,7 @@ out: | |||
110 | return error; | 110 | return error; |
111 | } | 111 | } |
112 | 112 | ||
113 | static int dupfd(struct file *file, unsigned int start) | 113 | static int dupfd(struct file *file, unsigned int start, int cloexec) |
114 | { | 114 | { |
115 | struct files_struct * files = current->files; | 115 | struct files_struct * files = current->files; |
116 | struct fdtable *fdt; | 116 | struct fdtable *fdt; |
@@ -122,7 +122,10 @@ static int dupfd(struct file *file, unsigned int start) | |||
122 | /* locate_fd() may have expanded fdtable, load the ptr */ | 122 | /* locate_fd() may have expanded fdtable, load the ptr */ |
123 | fdt = files_fdtable(files); | 123 | fdt = files_fdtable(files); |
124 | FD_SET(fd, fdt->open_fds); | 124 | FD_SET(fd, fdt->open_fds); |
125 | FD_CLR(fd, fdt->close_on_exec); | 125 | if (cloexec) |
126 | FD_SET(fd, fdt->close_on_exec); | ||
127 | else | ||
128 | FD_CLR(fd, fdt->close_on_exec); | ||
126 | spin_unlock(&files->file_lock); | 129 | spin_unlock(&files->file_lock); |
127 | fd_install(fd, file); | 130 | fd_install(fd, file); |
128 | } else { | 131 | } else { |
@@ -195,7 +198,7 @@ asmlinkage long sys_dup(unsigned int fildes) | |||
195 | struct file * file = fget(fildes); | 198 | struct file * file = fget(fildes); |
196 | 199 | ||
197 | if (file) | 200 | if (file) |
198 | ret = dupfd(file, 0); | 201 | ret = dupfd(file, 0, 0); |
199 | return ret; | 202 | return ret; |
200 | } | 203 | } |
201 | 204 | ||
@@ -319,8 +322,9 @@ static long do_fcntl(int fd, unsigned int cmd, unsigned long arg, | |||
319 | 322 | ||
320 | switch (cmd) { | 323 | switch (cmd) { |
321 | case F_DUPFD: | 324 | case F_DUPFD: |
325 | case F_DUPFD_CLOEXEC: | ||
322 | get_file(filp); | 326 | get_file(filp); |
323 | err = dupfd(filp, arg); | 327 | err = dupfd(filp, arg, cmd == F_DUPFD_CLOEXEC); |
324 | break; | 328 | break; |
325 | case F_GETFD: | 329 | case F_GETFD: |
326 | err = get_close_on_exec(fd) ? FD_CLOEXEC : 0; | 330 | err = get_close_on_exec(fd) ? FD_CLOEXEC : 0; |
diff --git a/fs/file_table.c b/fs/file_table.c index d17fd691b832..3176fefc92e1 100644 --- a/fs/file_table.c +++ b/fs/file_table.c | |||
@@ -98,16 +98,15 @@ struct file *get_empty_filp(void) | |||
98 | * percpu_counters are inaccurate. Do an expensive check before | 98 | * percpu_counters are inaccurate. Do an expensive check before |
99 | * we go and fail. | 99 | * we go and fail. |
100 | */ | 100 | */ |
101 | if (percpu_counter_sum(&nr_files) >= files_stat.max_files) | 101 | if (percpu_counter_sum_positive(&nr_files) >= files_stat.max_files) |
102 | goto over; | 102 | goto over; |
103 | } | 103 | } |
104 | 104 | ||
105 | f = kmem_cache_alloc(filp_cachep, GFP_KERNEL); | 105 | f = kmem_cache_zalloc(filp_cachep, GFP_KERNEL); |
106 | if (f == NULL) | 106 | if (f == NULL) |
107 | goto fail; | 107 | goto fail; |
108 | 108 | ||
109 | percpu_counter_inc(&nr_files); | 109 | percpu_counter_inc(&nr_files); |
110 | memset(f, 0, sizeof(*f)); | ||
111 | if (security_file_alloc(f)) | 110 | if (security_file_alloc(f)) |
112 | goto fail_sec; | 111 | goto fail_sec; |
113 | 112 | ||
@@ -138,6 +137,66 @@ fail: | |||
138 | 137 | ||
139 | EXPORT_SYMBOL(get_empty_filp); | 138 | EXPORT_SYMBOL(get_empty_filp); |
140 | 139 | ||
140 | /** | ||
141 | * alloc_file - allocate and initialize a 'struct file' | ||
142 | * @mnt: the vfsmount on which the file will reside | ||
143 | * @dentry: the dentry representing the new file | ||
144 | * @mode: the mode with which the new file will be opened | ||
145 | * @fop: the 'struct file_operations' for the new file | ||
146 | * | ||
147 | * Use this instead of get_empty_filp() to get a new | ||
148 | * 'struct file'. Do so because of the same initialization | ||
149 | * pitfalls reasons listed for init_file(). This is a | ||
150 | * preferred interface to using init_file(). | ||
151 | * | ||
152 | * If all the callers of init_file() are eliminated, its | ||
153 | * code should be moved into this function. | ||
154 | */ | ||
155 | struct file *alloc_file(struct vfsmount *mnt, struct dentry *dentry, | ||
156 | mode_t mode, const struct file_operations *fop) | ||
157 | { | ||
158 | struct file *file; | ||
159 | struct path; | ||
160 | |||
161 | file = get_empty_filp(); | ||
162 | if (!file) | ||
163 | return NULL; | ||
164 | |||
165 | init_file(file, mnt, dentry, mode, fop); | ||
166 | return file; | ||
167 | } | ||
168 | EXPORT_SYMBOL(alloc_file); | ||
169 | |||
170 | /** | ||
171 | * init_file - initialize a 'struct file' | ||
172 | * @file: the already allocated 'struct file' to initialized | ||
173 | * @mnt: the vfsmount on which the file resides | ||
174 | * @dentry: the dentry representing this file | ||
175 | * @mode: the mode the file is opened with | ||
176 | * @fop: the 'struct file_operations' for this file | ||
177 | * | ||
178 | * Use this instead of setting the members directly. Doing so | ||
179 | * avoids making mistakes like forgetting the mntget() or | ||
180 | * forgetting to take a write on the mnt. | ||
181 | * | ||
182 | * Note: This is a crappy interface. It is here to make | ||
183 | * merging with the existing users of get_empty_filp() | ||
184 | * who have complex failure logic easier. All users | ||
185 | * of this should be moving to alloc_file(). | ||
186 | */ | ||
187 | int init_file(struct file *file, struct vfsmount *mnt, struct dentry *dentry, | ||
188 | mode_t mode, const struct file_operations *fop) | ||
189 | { | ||
190 | int error = 0; | ||
191 | file->f_path.dentry = dentry; | ||
192 | file->f_path.mnt = mntget(mnt); | ||
193 | file->f_mapping = dentry->d_inode->i_mapping; | ||
194 | file->f_mode = mode; | ||
195 | file->f_op = fop; | ||
196 | return error; | ||
197 | } | ||
198 | EXPORT_SYMBOL(init_file); | ||
199 | |||
141 | void fastcall fput(struct file *file) | 200 | void fastcall fput(struct file *file) |
142 | { | 201 | { |
143 | if (atomic_dec_and_test(&file->f_count)) | 202 | if (atomic_dec_and_test(&file->f_count)) |
diff --git a/fs/fs-writeback.c b/fs/fs-writeback.c index 8d23b0b38717..686734ff973d 100644 --- a/fs/fs-writeback.c +++ b/fs/fs-writeback.c | |||
@@ -100,11 +100,11 @@ void __mark_inode_dirty(struct inode *inode, int flags) | |||
100 | inode->i_state |= flags; | 100 | inode->i_state |= flags; |
101 | 101 | ||
102 | /* | 102 | /* |
103 | * If the inode is locked, just update its dirty state. | 103 | * If the inode is being synced, just update its dirty state. |
104 | * The unlocker will place the inode on the appropriate | 104 | * The unlocker will place the inode on the appropriate |
105 | * superblock list, based upon its state. | 105 | * superblock list, based upon its state. |
106 | */ | 106 | */ |
107 | if (inode->i_state & I_LOCK) | 107 | if (inode->i_state & I_SYNC) |
108 | goto out; | 108 | goto out; |
109 | 109 | ||
110 | /* | 110 | /* |
@@ -119,7 +119,7 @@ void __mark_inode_dirty(struct inode *inode, int flags) | |||
119 | goto out; | 119 | goto out; |
120 | 120 | ||
121 | /* | 121 | /* |
122 | * If the inode was already on s_dirty or s_io, don't | 122 | * If the inode was already on s_dirty/s_io/s_more_io, don't |
123 | * reposition it (that would break s_dirty time-ordering). | 123 | * reposition it (that would break s_dirty time-ordering). |
124 | */ | 124 | */ |
125 | if (!was_dirty) { | 125 | if (!was_dirty) { |
@@ -141,6 +141,82 @@ static int write_inode(struct inode *inode, int sync) | |||
141 | } | 141 | } |
142 | 142 | ||
143 | /* | 143 | /* |
144 | * Redirty an inode: set its when-it-was dirtied timestamp and move it to the | ||
145 | * furthest end of its superblock's dirty-inode list. | ||
146 | * | ||
147 | * Before stamping the inode's ->dirtied_when, we check to see whether it is | ||
148 | * already the most-recently-dirtied inode on the s_dirty list. If that is | ||
149 | * the case then the inode must have been redirtied while it was being written | ||
150 | * out and we don't reset its dirtied_when. | ||
151 | */ | ||
152 | static void redirty_tail(struct inode *inode) | ||
153 | { | ||
154 | struct super_block *sb = inode->i_sb; | ||
155 | |||
156 | if (!list_empty(&sb->s_dirty)) { | ||
157 | struct inode *tail_inode; | ||
158 | |||
159 | tail_inode = list_entry(sb->s_dirty.next, struct inode, i_list); | ||
160 | if (!time_after_eq(inode->dirtied_when, | ||
161 | tail_inode->dirtied_when)) | ||
162 | inode->dirtied_when = jiffies; | ||
163 | } | ||
164 | list_move(&inode->i_list, &sb->s_dirty); | ||
165 | } | ||
166 | |||
167 | /* | ||
168 | * requeue inode for re-scanning after sb->s_io list is exhausted. | ||
169 | */ | ||
170 | static void requeue_io(struct inode *inode) | ||
171 | { | ||
172 | list_move(&inode->i_list, &inode->i_sb->s_more_io); | ||
173 | } | ||
174 | |||
175 | static void inode_sync_complete(struct inode *inode) | ||
176 | { | ||
177 | /* | ||
178 | * Prevent speculative execution through spin_unlock(&inode_lock); | ||
179 | */ | ||
180 | smp_mb(); | ||
181 | wake_up_bit(&inode->i_state, __I_SYNC); | ||
182 | } | ||
183 | |||
184 | /* | ||
185 | * Move expired dirty inodes from @delaying_queue to @dispatch_queue. | ||
186 | */ | ||
187 | static void move_expired_inodes(struct list_head *delaying_queue, | ||
188 | struct list_head *dispatch_queue, | ||
189 | unsigned long *older_than_this) | ||
190 | { | ||
191 | while (!list_empty(delaying_queue)) { | ||
192 | struct inode *inode = list_entry(delaying_queue->prev, | ||
193 | struct inode, i_list); | ||
194 | if (older_than_this && | ||
195 | time_after(inode->dirtied_when, *older_than_this)) | ||
196 | break; | ||
197 | list_move(&inode->i_list, dispatch_queue); | ||
198 | } | ||
199 | } | ||
200 | |||
201 | /* | ||
202 | * Queue all expired dirty inodes for io, eldest first. | ||
203 | */ | ||
204 | static void queue_io(struct super_block *sb, | ||
205 | unsigned long *older_than_this) | ||
206 | { | ||
207 | list_splice_init(&sb->s_more_io, sb->s_io.prev); | ||
208 | move_expired_inodes(&sb->s_dirty, &sb->s_io, older_than_this); | ||
209 | } | ||
210 | |||
211 | int sb_has_dirty_inodes(struct super_block *sb) | ||
212 | { | ||
213 | return !list_empty(&sb->s_dirty) || | ||
214 | !list_empty(&sb->s_io) || | ||
215 | !list_empty(&sb->s_more_io); | ||
216 | } | ||
217 | EXPORT_SYMBOL(sb_has_dirty_inodes); | ||
218 | |||
219 | /* | ||
144 | * Write a single inode's dirty pages and inode data out to disk. | 220 | * Write a single inode's dirty pages and inode data out to disk. |
145 | * If `wait' is set, wait on the writeout. | 221 | * If `wait' is set, wait on the writeout. |
146 | * | 222 | * |
@@ -155,15 +231,14 @@ __sync_single_inode(struct inode *inode, struct writeback_control *wbc) | |||
155 | { | 231 | { |
156 | unsigned dirty; | 232 | unsigned dirty; |
157 | struct address_space *mapping = inode->i_mapping; | 233 | struct address_space *mapping = inode->i_mapping; |
158 | struct super_block *sb = inode->i_sb; | ||
159 | int wait = wbc->sync_mode == WB_SYNC_ALL; | 234 | int wait = wbc->sync_mode == WB_SYNC_ALL; |
160 | int ret; | 235 | int ret; |
161 | 236 | ||
162 | BUG_ON(inode->i_state & I_LOCK); | 237 | BUG_ON(inode->i_state & I_SYNC); |
163 | 238 | ||
164 | /* Set I_LOCK, reset I_DIRTY */ | 239 | /* Set I_SYNC, reset I_DIRTY */ |
165 | dirty = inode->i_state & I_DIRTY; | 240 | dirty = inode->i_state & I_DIRTY; |
166 | inode->i_state |= I_LOCK; | 241 | inode->i_state |= I_SYNC; |
167 | inode->i_state &= ~I_DIRTY; | 242 | inode->i_state &= ~I_DIRTY; |
168 | 243 | ||
169 | spin_unlock(&inode_lock); | 244 | spin_unlock(&inode_lock); |
@@ -184,24 +259,32 @@ __sync_single_inode(struct inode *inode, struct writeback_control *wbc) | |||
184 | } | 259 | } |
185 | 260 | ||
186 | spin_lock(&inode_lock); | 261 | spin_lock(&inode_lock); |
187 | inode->i_state &= ~I_LOCK; | 262 | inode->i_state &= ~I_SYNC; |
188 | if (!(inode->i_state & I_FREEING)) { | 263 | if (!(inode->i_state & I_FREEING)) { |
189 | if (!(inode->i_state & I_DIRTY) && | 264 | if (!(inode->i_state & I_DIRTY) && |
190 | mapping_tagged(mapping, PAGECACHE_TAG_DIRTY)) { | 265 | mapping_tagged(mapping, PAGECACHE_TAG_DIRTY)) { |
191 | /* | 266 | /* |
192 | * We didn't write back all the pages. nfs_writepages() | 267 | * We didn't write back all the pages. nfs_writepages() |
193 | * sometimes bales out without doing anything. Redirty | 268 | * sometimes bales out without doing anything. Redirty |
194 | * the inode. It is still on sb->s_io. | 269 | * the inode; Move it from s_io onto s_more_io/s_dirty. |
270 | */ | ||
271 | /* | ||
272 | * akpm: if the caller was the kupdate function we put | ||
273 | * this inode at the head of s_dirty so it gets first | ||
274 | * consideration. Otherwise, move it to the tail, for | ||
275 | * the reasons described there. I'm not really sure | ||
276 | * how much sense this makes. Presumably I had a good | ||
277 | * reasons for doing it this way, and I'd rather not | ||
278 | * muck with it at present. | ||
195 | */ | 279 | */ |
196 | if (wbc->for_kupdate) { | 280 | if (wbc->for_kupdate) { |
197 | /* | 281 | /* |
198 | * For the kupdate function we leave the inode | 282 | * For the kupdate function we move the inode |
199 | * at the head of sb_dirty so it will get more | 283 | * to s_more_io so it will get more writeout as |
200 | * writeout as soon as the queue becomes | 284 | * soon as the queue becomes uncongested. |
201 | * uncongested. | ||
202 | */ | 285 | */ |
203 | inode->i_state |= I_DIRTY_PAGES; | 286 | inode->i_state |= I_DIRTY_PAGES; |
204 | list_move_tail(&inode->i_list, &sb->s_dirty); | 287 | requeue_io(inode); |
205 | } else { | 288 | } else { |
206 | /* | 289 | /* |
207 | * Otherwise fully redirty the inode so that | 290 | * Otherwise fully redirty the inode so that |
@@ -211,15 +294,14 @@ __sync_single_inode(struct inode *inode, struct writeback_control *wbc) | |||
211 | * all the other files. | 294 | * all the other files. |
212 | */ | 295 | */ |
213 | inode->i_state |= I_DIRTY_PAGES; | 296 | inode->i_state |= I_DIRTY_PAGES; |
214 | inode->dirtied_when = jiffies; | 297 | redirty_tail(inode); |
215 | list_move(&inode->i_list, &sb->s_dirty); | ||
216 | } | 298 | } |
217 | } else if (inode->i_state & I_DIRTY) { | 299 | } else if (inode->i_state & I_DIRTY) { |
218 | /* | 300 | /* |
219 | * Someone redirtied the inode while were writing back | 301 | * Someone redirtied the inode while were writing back |
220 | * the pages. | 302 | * the pages. |
221 | */ | 303 | */ |
222 | list_move(&inode->i_list, &sb->s_dirty); | 304 | redirty_tail(inode); |
223 | } else if (atomic_read(&inode->i_count)) { | 305 | } else if (atomic_read(&inode->i_count)) { |
224 | /* | 306 | /* |
225 | * The inode is clean, inuse | 307 | * The inode is clean, inuse |
@@ -232,7 +314,7 @@ __sync_single_inode(struct inode *inode, struct writeback_control *wbc) | |||
232 | list_move(&inode->i_list, &inode_unused); | 314 | list_move(&inode->i_list, &inode_unused); |
233 | } | 315 | } |
234 | } | 316 | } |
235 | wake_up_inode(inode); | 317 | inode_sync_complete(inode); |
236 | return ret; | 318 | return ret; |
237 | } | 319 | } |
238 | 320 | ||
@@ -251,11 +333,18 @@ __writeback_single_inode(struct inode *inode, struct writeback_control *wbc) | |||
251 | else | 333 | else |
252 | WARN_ON(inode->i_state & I_WILL_FREE); | 334 | WARN_ON(inode->i_state & I_WILL_FREE); |
253 | 335 | ||
254 | if ((wbc->sync_mode != WB_SYNC_ALL) && (inode->i_state & I_LOCK)) { | 336 | if ((wbc->sync_mode != WB_SYNC_ALL) && (inode->i_state & I_SYNC)) { |
255 | struct address_space *mapping = inode->i_mapping; | 337 | struct address_space *mapping = inode->i_mapping; |
256 | int ret; | 338 | int ret; |
257 | 339 | ||
258 | list_move(&inode->i_list, &inode->i_sb->s_dirty); | 340 | /* |
341 | * We're skipping this inode because it's locked, and we're not | ||
342 | * doing writeback-for-data-integrity. Move it to s_more_io so | ||
343 | * that writeback can proceed with the other inodes on s_io. | ||
344 | * We'll have another go at writing back this inode when we | ||
345 | * completed a full scan of s_io. | ||
346 | */ | ||
347 | requeue_io(inode); | ||
259 | 348 | ||
260 | /* | 349 | /* |
261 | * Even if we don't actually write the inode itself here, | 350 | * Even if we don't actually write the inode itself here, |
@@ -270,16 +359,16 @@ __writeback_single_inode(struct inode *inode, struct writeback_control *wbc) | |||
270 | /* | 359 | /* |
271 | * It's a data-integrity sync. We must wait. | 360 | * It's a data-integrity sync. We must wait. |
272 | */ | 361 | */ |
273 | if (inode->i_state & I_LOCK) { | 362 | if (inode->i_state & I_SYNC) { |
274 | DEFINE_WAIT_BIT(wq, &inode->i_state, __I_LOCK); | 363 | DEFINE_WAIT_BIT(wq, &inode->i_state, __I_SYNC); |
275 | 364 | ||
276 | wqh = bit_waitqueue(&inode->i_state, __I_LOCK); | 365 | wqh = bit_waitqueue(&inode->i_state, __I_SYNC); |
277 | do { | 366 | do { |
278 | spin_unlock(&inode_lock); | 367 | spin_unlock(&inode_lock); |
279 | __wait_on_bit(wqh, &wq, inode_wait, | 368 | __wait_on_bit(wqh, &wq, inode_wait, |
280 | TASK_UNINTERRUPTIBLE); | 369 | TASK_UNINTERRUPTIBLE); |
281 | spin_lock(&inode_lock); | 370 | spin_lock(&inode_lock); |
282 | } while (inode->i_state & I_LOCK); | 371 | } while (inode->i_state & I_SYNC); |
283 | } | 372 | } |
284 | return __sync_single_inode(inode, wbc); | 373 | return __sync_single_inode(inode, wbc); |
285 | } | 374 | } |
@@ -312,7 +401,7 @@ __writeback_single_inode(struct inode *inode, struct writeback_control *wbc) | |||
312 | * The inodes to be written are parked on sb->s_io. They are moved back onto | 401 | * The inodes to be written are parked on sb->s_io. They are moved back onto |
313 | * sb->s_dirty as they are selected for writing. This way, none can be missed | 402 | * sb->s_dirty as they are selected for writing. This way, none can be missed |
314 | * on the writer throttling path, and we get decent balancing between many | 403 | * on the writer throttling path, and we get decent balancing between many |
315 | * throttled threads: we don't want them all piling up on __wait_on_inode. | 404 | * throttled threads: we don't want them all piling up on inode_sync_wait. |
316 | */ | 405 | */ |
317 | static void | 406 | static void |
318 | sync_sb_inodes(struct super_block *sb, struct writeback_control *wbc) | 407 | sync_sb_inodes(struct super_block *sb, struct writeback_control *wbc) |
@@ -320,7 +409,7 @@ sync_sb_inodes(struct super_block *sb, struct writeback_control *wbc) | |||
320 | const unsigned long start = jiffies; /* livelock avoidance */ | 409 | const unsigned long start = jiffies; /* livelock avoidance */ |
321 | 410 | ||
322 | if (!wbc->for_kupdate || list_empty(&sb->s_io)) | 411 | if (!wbc->for_kupdate || list_empty(&sb->s_io)) |
323 | list_splice_init(&sb->s_dirty, &sb->s_io); | 412 | queue_io(sb, wbc->older_than_this); |
324 | 413 | ||
325 | while (!list_empty(&sb->s_io)) { | 414 | while (!list_empty(&sb->s_io)) { |
326 | struct inode *inode = list_entry(sb->s_io.prev, | 415 | struct inode *inode = list_entry(sb->s_io.prev, |
@@ -330,7 +419,7 @@ sync_sb_inodes(struct super_block *sb, struct writeback_control *wbc) | |||
330 | long pages_skipped; | 419 | long pages_skipped; |
331 | 420 | ||
332 | if (!bdi_cap_writeback_dirty(bdi)) { | 421 | if (!bdi_cap_writeback_dirty(bdi)) { |
333 | list_move(&inode->i_list, &sb->s_dirty); | 422 | redirty_tail(inode); |
334 | if (sb_is_blkdev_sb(sb)) { | 423 | if (sb_is_blkdev_sb(sb)) { |
335 | /* | 424 | /* |
336 | * Dirty memory-backed blockdev: the ramdisk | 425 | * Dirty memory-backed blockdev: the ramdisk |
@@ -350,14 +439,14 @@ sync_sb_inodes(struct super_block *sb, struct writeback_control *wbc) | |||
350 | wbc->encountered_congestion = 1; | 439 | wbc->encountered_congestion = 1; |
351 | if (!sb_is_blkdev_sb(sb)) | 440 | if (!sb_is_blkdev_sb(sb)) |
352 | break; /* Skip a congested fs */ | 441 | break; /* Skip a congested fs */ |
353 | list_move(&inode->i_list, &sb->s_dirty); | 442 | requeue_io(inode); |
354 | continue; /* Skip a congested blockdev */ | 443 | continue; /* Skip a congested blockdev */ |
355 | } | 444 | } |
356 | 445 | ||
357 | if (wbc->bdi && bdi != wbc->bdi) { | 446 | if (wbc->bdi && bdi != wbc->bdi) { |
358 | if (!sb_is_blkdev_sb(sb)) | 447 | if (!sb_is_blkdev_sb(sb)) |
359 | break; /* fs has the wrong queue */ | 448 | break; /* fs has the wrong queue */ |
360 | list_move(&inode->i_list, &sb->s_dirty); | 449 | requeue_io(inode); |
361 | continue; /* blockdev has wrong queue */ | 450 | continue; /* blockdev has wrong queue */ |
362 | } | 451 | } |
363 | 452 | ||
@@ -365,11 +454,6 @@ sync_sb_inodes(struct super_block *sb, struct writeback_control *wbc) | |||
365 | if (time_after(inode->dirtied_when, start)) | 454 | if (time_after(inode->dirtied_when, start)) |
366 | break; | 455 | break; |
367 | 456 | ||
368 | /* Was this inode dirtied too recently? */ | ||
369 | if (wbc->older_than_this && time_after(inode->dirtied_when, | ||
370 | *wbc->older_than_this)) | ||
371 | break; | ||
372 | |||
373 | /* Is another pdflush already flushing this queue? */ | 457 | /* Is another pdflush already flushing this queue? */ |
374 | if (current_is_pdflush() && !writeback_acquire(bdi)) | 458 | if (current_is_pdflush() && !writeback_acquire(bdi)) |
375 | break; | 459 | break; |
@@ -389,7 +473,7 @@ sync_sb_inodes(struct super_block *sb, struct writeback_control *wbc) | |||
389 | * writeback is not making progress due to locked | 473 | * writeback is not making progress due to locked |
390 | * buffers. Skip this inode for now. | 474 | * buffers. Skip this inode for now. |
391 | */ | 475 | */ |
392 | list_move(&inode->i_list, &sb->s_dirty); | 476 | redirty_tail(inode); |
393 | } | 477 | } |
394 | spin_unlock(&inode_lock); | 478 | spin_unlock(&inode_lock); |
395 | iput(inode); | 479 | iput(inode); |
@@ -398,6 +482,8 @@ sync_sb_inodes(struct super_block *sb, struct writeback_control *wbc) | |||
398 | if (wbc->nr_to_write <= 0) | 482 | if (wbc->nr_to_write <= 0) |
399 | break; | 483 | break; |
400 | } | 484 | } |
485 | if (!list_empty(&sb->s_more_io)) | ||
486 | wbc->more_io = 1; | ||
401 | return; /* Leave any unwritten inodes on s_io */ | 487 | return; /* Leave any unwritten inodes on s_io */ |
402 | } | 488 | } |
403 | 489 | ||
@@ -407,7 +493,7 @@ sync_sb_inodes(struct super_block *sb, struct writeback_control *wbc) | |||
407 | * Note: | 493 | * Note: |
408 | * We don't need to grab a reference to superblock here. If it has non-empty | 494 | * We don't need to grab a reference to superblock here. If it has non-empty |
409 | * ->s_dirty it's hadn't been killed yet and kill_super() won't proceed | 495 | * ->s_dirty it's hadn't been killed yet and kill_super() won't proceed |
410 | * past sync_inodes_sb() until both the ->s_dirty and ->s_io lists are | 496 | * past sync_inodes_sb() until the ->s_dirty/s_io/s_more_io lists are all |
411 | * empty. Since __sync_single_inode() regains inode_lock before it finally moves | 497 | * empty. Since __sync_single_inode() regains inode_lock before it finally moves |
412 | * inode from superblock lists we are OK. | 498 | * inode from superblock lists we are OK. |
413 | * | 499 | * |
@@ -430,7 +516,7 @@ writeback_inodes(struct writeback_control *wbc) | |||
430 | restart: | 516 | restart: |
431 | sb = sb_entry(super_blocks.prev); | 517 | sb = sb_entry(super_blocks.prev); |
432 | for (; sb != sb_entry(&super_blocks); sb = sb_entry(sb->s_list.prev)) { | 518 | for (; sb != sb_entry(&super_blocks); sb = sb_entry(sb->s_list.prev)) { |
433 | if (!list_empty(&sb->s_dirty) || !list_empty(&sb->s_io)) { | 519 | if (sb_has_dirty_inodes(sb)) { |
434 | /* we're making our own get_super here */ | 520 | /* we're making our own get_super here */ |
435 | sb->s_count++; | 521 | sb->s_count++; |
436 | spin_unlock(&sb_lock); | 522 | spin_unlock(&sb_lock); |
@@ -584,7 +670,7 @@ int write_inode_now(struct inode *inode, int sync) | |||
584 | ret = __writeback_single_inode(inode, &wbc); | 670 | ret = __writeback_single_inode(inode, &wbc); |
585 | spin_unlock(&inode_lock); | 671 | spin_unlock(&inode_lock); |
586 | if (sync) | 672 | if (sync) |
587 | wait_on_inode(inode); | 673 | inode_sync_wait(inode); |
588 | return ret; | 674 | return ret; |
589 | } | 675 | } |
590 | EXPORT_SYMBOL(write_inode_now); | 676 | EXPORT_SYMBOL(write_inode_now); |
@@ -659,7 +745,7 @@ int generic_osync_inode(struct inode *inode, struct address_space *mapping, int | |||
659 | err = err2; | 745 | err = err2; |
660 | } | 746 | } |
661 | else | 747 | else |
662 | wait_on_inode(inode); | 748 | inode_sync_wait(inode); |
663 | 749 | ||
664 | return err; | 750 | return err; |
665 | } | 751 | } |
diff --git a/fs/fuse/dev.c b/fs/fuse/dev.c index 3ad22beb24c2..db534bcde45f 100644 --- a/fs/fuse/dev.c +++ b/fs/fuse/dev.c | |||
@@ -129,7 +129,7 @@ static struct fuse_req *get_reserved_req(struct fuse_conn *fc, | |||
129 | struct fuse_file *ff = file->private_data; | 129 | struct fuse_file *ff = file->private_data; |
130 | 130 | ||
131 | do { | 131 | do { |
132 | wait_event(fc->blocked_waitq, ff->reserved_req); | 132 | wait_event(fc->reserved_req_waitq, ff->reserved_req); |
133 | spin_lock(&fc->lock); | 133 | spin_lock(&fc->lock); |
134 | if (ff->reserved_req) { | 134 | if (ff->reserved_req) { |
135 | req = ff->reserved_req; | 135 | req = ff->reserved_req; |
@@ -155,7 +155,7 @@ static void put_reserved_req(struct fuse_conn *fc, struct fuse_req *req) | |||
155 | fuse_request_init(req); | 155 | fuse_request_init(req); |
156 | BUG_ON(ff->reserved_req); | 156 | BUG_ON(ff->reserved_req); |
157 | ff->reserved_req = req; | 157 | ff->reserved_req = req; |
158 | wake_up(&fc->blocked_waitq); | 158 | wake_up_all(&fc->reserved_req_waitq); |
159 | spin_unlock(&fc->lock); | 159 | spin_unlock(&fc->lock); |
160 | fput(file); | 160 | fput(file); |
161 | } | 161 | } |
@@ -224,13 +224,13 @@ static void request_end(struct fuse_conn *fc, struct fuse_req *req) | |||
224 | fc->blocked = 0; | 224 | fc->blocked = 0; |
225 | wake_up_all(&fc->blocked_waitq); | 225 | wake_up_all(&fc->blocked_waitq); |
226 | } | 226 | } |
227 | if (fc->num_background == FUSE_CONGESTION_THRESHOLD) { | ||
228 | clear_bdi_congested(&fc->bdi, READ); | ||
229 | clear_bdi_congested(&fc->bdi, WRITE); | ||
230 | } | ||
227 | fc->num_background--; | 231 | fc->num_background--; |
228 | } | 232 | } |
229 | spin_unlock(&fc->lock); | 233 | spin_unlock(&fc->lock); |
230 | dput(req->dentry); | ||
231 | mntput(req->vfsmount); | ||
232 | if (req->file) | ||
233 | fput(req->file); | ||
234 | wake_up(&req->waitq); | 234 | wake_up(&req->waitq); |
235 | if (end) | 235 | if (end) |
236 | end(fc, req); | 236 | end(fc, req); |
@@ -273,28 +273,41 @@ static void request_wait_answer(struct fuse_conn *fc, struct fuse_req *req) | |||
273 | queue_interrupt(fc, req); | 273 | queue_interrupt(fc, req); |
274 | } | 274 | } |
275 | 275 | ||
276 | if (req->force) { | 276 | if (!req->force) { |
277 | spin_unlock(&fc->lock); | ||
278 | wait_event(req->waitq, req->state == FUSE_REQ_FINISHED); | ||
279 | spin_lock(&fc->lock); | ||
280 | } else { | ||
281 | sigset_t oldset; | 277 | sigset_t oldset; |
282 | 278 | ||
283 | /* Only fatal signals may interrupt this */ | 279 | /* Only fatal signals may interrupt this */ |
284 | block_sigs(&oldset); | 280 | block_sigs(&oldset); |
285 | wait_answer_interruptible(fc, req); | 281 | wait_answer_interruptible(fc, req); |
286 | restore_sigs(&oldset); | 282 | restore_sigs(&oldset); |
283 | |||
284 | if (req->aborted) | ||
285 | goto aborted; | ||
286 | if (req->state == FUSE_REQ_FINISHED) | ||
287 | return; | ||
288 | |||
289 | /* Request is not yet in userspace, bail out */ | ||
290 | if (req->state == FUSE_REQ_PENDING) { | ||
291 | list_del(&req->list); | ||
292 | __fuse_put_request(req); | ||
293 | req->out.h.error = -EINTR; | ||
294 | return; | ||
295 | } | ||
287 | } | 296 | } |
288 | 297 | ||
289 | if (req->aborted) | 298 | /* |
290 | goto aborted; | 299 | * Either request is already in userspace, or it was forced. |
291 | if (req->state == FUSE_REQ_FINISHED) | 300 | * Wait it out. |
292 | return; | 301 | */ |
302 | spin_unlock(&fc->lock); | ||
303 | wait_event(req->waitq, req->state == FUSE_REQ_FINISHED); | ||
304 | spin_lock(&fc->lock); | ||
293 | 305 | ||
294 | req->out.h.error = -EINTR; | 306 | if (!req->aborted) |
295 | req->aborted = 1; | 307 | return; |
296 | 308 | ||
297 | aborted: | 309 | aborted: |
310 | BUG_ON(req->state != FUSE_REQ_FINISHED); | ||
298 | if (req->locked) { | 311 | if (req->locked) { |
299 | /* This is uninterruptible sleep, because data is | 312 | /* This is uninterruptible sleep, because data is |
300 | being copied to/from the buffers of req. During | 313 | being copied to/from the buffers of req. During |
@@ -305,14 +318,6 @@ static void request_wait_answer(struct fuse_conn *fc, struct fuse_req *req) | |||
305 | wait_event(req->waitq, !req->locked); | 318 | wait_event(req->waitq, !req->locked); |
306 | spin_lock(&fc->lock); | 319 | spin_lock(&fc->lock); |
307 | } | 320 | } |
308 | if (req->state == FUSE_REQ_PENDING) { | ||
309 | list_del(&req->list); | ||
310 | __fuse_put_request(req); | ||
311 | } else if (req->state == FUSE_REQ_SENT) { | ||
312 | spin_unlock(&fc->lock); | ||
313 | wait_event(req->waitq, req->state == FUSE_REQ_FINISHED); | ||
314 | spin_lock(&fc->lock); | ||
315 | } | ||
316 | } | 321 | } |
317 | 322 | ||
318 | static unsigned len_args(unsigned numargs, struct fuse_arg *args) | 323 | static unsigned len_args(unsigned numargs, struct fuse_arg *args) |
@@ -378,6 +383,10 @@ static void request_send_nowait(struct fuse_conn *fc, struct fuse_req *req) | |||
378 | fc->num_background++; | 383 | fc->num_background++; |
379 | if (fc->num_background == FUSE_MAX_BACKGROUND) | 384 | if (fc->num_background == FUSE_MAX_BACKGROUND) |
380 | fc->blocked = 1; | 385 | fc->blocked = 1; |
386 | if (fc->num_background == FUSE_CONGESTION_THRESHOLD) { | ||
387 | set_bdi_congested(&fc->bdi, READ); | ||
388 | set_bdi_congested(&fc->bdi, WRITE); | ||
389 | } | ||
381 | 390 | ||
382 | queue_request(fc, req); | 391 | queue_request(fc, req); |
383 | spin_unlock(&fc->lock); | 392 | spin_unlock(&fc->lock); |
@@ -738,11 +747,12 @@ static ssize_t fuse_dev_read(struct kiocb *iocb, const struct iovec *iov, | |||
738 | fuse_copy_finish(&cs); | 747 | fuse_copy_finish(&cs); |
739 | spin_lock(&fc->lock); | 748 | spin_lock(&fc->lock); |
740 | req->locked = 0; | 749 | req->locked = 0; |
741 | if (!err && req->aborted) | 750 | if (req->aborted) { |
742 | err = -ENOENT; | 751 | request_end(fc, req); |
752 | return -ENODEV; | ||
753 | } | ||
743 | if (err) { | 754 | if (err) { |
744 | if (!req->aborted) | 755 | req->out.h.error = -EIO; |
745 | req->out.h.error = -EIO; | ||
746 | request_end(fc, req); | 756 | request_end(fc, req); |
747 | return err; | 757 | return err; |
748 | } | 758 | } |
diff --git a/fs/fuse/dir.c b/fs/fuse/dir.c index bd5a772d8ccf..d1acab931330 100644 --- a/fs/fuse/dir.c +++ b/fs/fuse/dir.c | |||
@@ -288,12 +288,11 @@ static struct dentry *fuse_lookup(struct inode *dir, struct dentry *entry, | |||
288 | static void fuse_sync_release(struct fuse_conn *fc, struct fuse_file *ff, | 288 | static void fuse_sync_release(struct fuse_conn *fc, struct fuse_file *ff, |
289 | u64 nodeid, int flags) | 289 | u64 nodeid, int flags) |
290 | { | 290 | { |
291 | struct fuse_req *req; | 291 | fuse_release_fill(ff, nodeid, flags, FUSE_RELEASE); |
292 | 292 | ff->reserved_req->force = 1; | |
293 | req = fuse_release_fill(ff, nodeid, flags, FUSE_RELEASE); | 293 | request_send(fc, ff->reserved_req); |
294 | req->force = 1; | 294 | fuse_put_request(fc, ff->reserved_req); |
295 | request_send(fc, req); | 295 | kfree(ff); |
296 | fuse_put_request(fc, req); | ||
297 | } | 296 | } |
298 | 297 | ||
299 | /* | 298 | /* |
@@ -664,7 +663,7 @@ static int fuse_link(struct dentry *entry, struct inode *newdir, | |||
664 | return err; | 663 | return err; |
665 | } | 664 | } |
666 | 665 | ||
667 | int fuse_do_getattr(struct inode *inode) | 666 | static int fuse_do_getattr(struct inode *inode) |
668 | { | 667 | { |
669 | int err; | 668 | int err; |
670 | struct fuse_attr_out arg; | 669 | struct fuse_attr_out arg; |
@@ -696,6 +695,20 @@ int fuse_do_getattr(struct inode *inode) | |||
696 | } | 695 | } |
697 | 696 | ||
698 | /* | 697 | /* |
698 | * Check if attributes are still valid, and if not send a GETATTR | ||
699 | * request to refresh them. | ||
700 | */ | ||
701 | static int fuse_refresh_attributes(struct inode *inode) | ||
702 | { | ||
703 | struct fuse_inode *fi = get_fuse_inode(inode); | ||
704 | |||
705 | if (fi->i_time < get_jiffies_64()) | ||
706 | return fuse_do_getattr(inode); | ||
707 | else | ||
708 | return 0; | ||
709 | } | ||
710 | |||
711 | /* | ||
699 | * Calling into a user-controlled filesystem gives the filesystem | 712 | * Calling into a user-controlled filesystem gives the filesystem |
700 | * daemon ptrace-like capabilities over the requester process. This | 713 | * daemon ptrace-like capabilities over the requester process. This |
701 | * means, that the filesystem daemon is able to record the exact | 714 | * means, that the filesystem daemon is able to record the exact |
@@ -724,30 +737,6 @@ static int fuse_allow_task(struct fuse_conn *fc, struct task_struct *task) | |||
724 | return 0; | 737 | return 0; |
725 | } | 738 | } |
726 | 739 | ||
727 | /* | ||
728 | * Check whether the inode attributes are still valid | ||
729 | * | ||
730 | * If the attribute validity timeout has expired, then fetch the fresh | ||
731 | * attributes with a 'getattr' request | ||
732 | * | ||
733 | * I'm not sure why cached attributes are never returned for the root | ||
734 | * inode, this is probably being too cautious. | ||
735 | */ | ||
736 | static int fuse_revalidate(struct dentry *entry) | ||
737 | { | ||
738 | struct inode *inode = entry->d_inode; | ||
739 | struct fuse_inode *fi = get_fuse_inode(inode); | ||
740 | struct fuse_conn *fc = get_fuse_conn(inode); | ||
741 | |||
742 | if (!fuse_allow_task(fc, current)) | ||
743 | return -EACCES; | ||
744 | if (get_node_id(inode) != FUSE_ROOT_ID && | ||
745 | fi->i_time >= get_jiffies_64()) | ||
746 | return 0; | ||
747 | |||
748 | return fuse_do_getattr(inode); | ||
749 | } | ||
750 | |||
751 | static int fuse_access(struct inode *inode, int mask) | 740 | static int fuse_access(struct inode *inode, int mask) |
752 | { | 741 | { |
753 | struct fuse_conn *fc = get_fuse_conn(inode); | 742 | struct fuse_conn *fc = get_fuse_conn(inode); |
@@ -795,16 +784,31 @@ static int fuse_access(struct inode *inode, int mask) | |||
795 | static int fuse_permission(struct inode *inode, int mask, struct nameidata *nd) | 784 | static int fuse_permission(struct inode *inode, int mask, struct nameidata *nd) |
796 | { | 785 | { |
797 | struct fuse_conn *fc = get_fuse_conn(inode); | 786 | struct fuse_conn *fc = get_fuse_conn(inode); |
787 | bool refreshed = false; | ||
788 | int err = 0; | ||
798 | 789 | ||
799 | if (!fuse_allow_task(fc, current)) | 790 | if (!fuse_allow_task(fc, current)) |
800 | return -EACCES; | 791 | return -EACCES; |
801 | else if (fc->flags & FUSE_DEFAULT_PERMISSIONS) { | 792 | |
793 | /* | ||
794 | * If attributes are needed, refresh them before proceeding | ||
795 | */ | ||
796 | if ((fc->flags & FUSE_DEFAULT_PERMISSIONS) || | ||
797 | ((mask & MAY_EXEC) && S_ISREG(inode->i_mode))) { | ||
798 | err = fuse_refresh_attributes(inode); | ||
799 | if (err) | ||
800 | return err; | ||
801 | |||
802 | refreshed = true; | ||
803 | } | ||
804 | |||
805 | if (fc->flags & FUSE_DEFAULT_PERMISSIONS) { | ||
802 | int err = generic_permission(inode, mask, NULL); | 806 | int err = generic_permission(inode, mask, NULL); |
803 | 807 | ||
804 | /* If permission is denied, try to refresh file | 808 | /* If permission is denied, try to refresh file |
805 | attributes. This is also needed, because the root | 809 | attributes. This is also needed, because the root |
806 | node will at first have no permissions */ | 810 | node will at first have no permissions */ |
807 | if (err == -EACCES) { | 811 | if (err == -EACCES && !refreshed) { |
808 | err = fuse_do_getattr(inode); | 812 | err = fuse_do_getattr(inode); |
809 | if (!err) | 813 | if (!err) |
810 | err = generic_permission(inode, mask, NULL); | 814 | err = generic_permission(inode, mask, NULL); |
@@ -814,17 +818,19 @@ static int fuse_permission(struct inode *inode, int mask, struct nameidata *nd) | |||
814 | exist. So if permissions are revoked this won't be | 818 | exist. So if permissions are revoked this won't be |
815 | noticed immediately, only after the attribute | 819 | noticed immediately, only after the attribute |
816 | timeout has expired */ | 820 | timeout has expired */ |
817 | 821 | } else if (nd && (nd->flags & (LOOKUP_ACCESS | LOOKUP_CHDIR))) { | |
818 | return err; | 822 | err = fuse_access(inode, mask); |
819 | } else { | 823 | } else if ((mask & MAY_EXEC) && S_ISREG(inode->i_mode)) { |
820 | int mode = inode->i_mode; | 824 | if (!(inode->i_mode & S_IXUGO)) { |
821 | if ((mask & MAY_EXEC) && !S_ISDIR(mode) && !(mode & S_IXUGO)) | 825 | if (refreshed) |
822 | return -EACCES; | 826 | return -EACCES; |
823 | 827 | ||
824 | if (nd && (nd->flags & (LOOKUP_ACCESS | LOOKUP_CHDIR))) | 828 | err = fuse_do_getattr(inode); |
825 | return fuse_access(inode, mask); | 829 | if (!err && !(inode->i_mode & S_IXUGO)) |
826 | return 0; | 830 | return -EACCES; |
831 | } | ||
827 | } | 832 | } |
833 | return err; | ||
828 | } | 834 | } |
829 | 835 | ||
830 | static int parse_dirfile(char *buf, size_t nbytes, struct file *file, | 836 | static int parse_dirfile(char *buf, size_t nbytes, struct file *file, |
@@ -859,6 +865,7 @@ static int fuse_readdir(struct file *file, void *dstbuf, filldir_t filldir) | |||
859 | struct page *page; | 865 | struct page *page; |
860 | struct inode *inode = file->f_path.dentry->d_inode; | 866 | struct inode *inode = file->f_path.dentry->d_inode; |
861 | struct fuse_conn *fc = get_fuse_conn(inode); | 867 | struct fuse_conn *fc = get_fuse_conn(inode); |
868 | struct fuse_file *ff = file->private_data; | ||
862 | struct fuse_req *req; | 869 | struct fuse_req *req; |
863 | 870 | ||
864 | if (is_bad_inode(inode)) | 871 | if (is_bad_inode(inode)) |
@@ -875,7 +882,7 @@ static int fuse_readdir(struct file *file, void *dstbuf, filldir_t filldir) | |||
875 | } | 882 | } |
876 | req->num_pages = 1; | 883 | req->num_pages = 1; |
877 | req->pages[0] = page; | 884 | req->pages[0] = page; |
878 | fuse_read_fill(req, file, inode, file->f_pos, PAGE_SIZE, FUSE_READDIR); | 885 | fuse_read_fill(req, ff, inode, file->f_pos, PAGE_SIZE, FUSE_READDIR); |
879 | request_send(fc, req); | 886 | request_send(fc, req); |
880 | nbytes = req->out.args[0].size; | 887 | nbytes = req->out.args[0].size; |
881 | err = req->out.h.error; | 888 | err = req->out.h.error; |
@@ -980,23 +987,6 @@ static void iattr_to_fattr(struct iattr *iattr, struct fuse_setattr_in *arg) | |||
980 | } | 987 | } |
981 | } | 988 | } |
982 | 989 | ||
983 | static void fuse_vmtruncate(struct inode *inode, loff_t offset) | ||
984 | { | ||
985 | struct fuse_conn *fc = get_fuse_conn(inode); | ||
986 | int need_trunc; | ||
987 | |||
988 | spin_lock(&fc->lock); | ||
989 | need_trunc = inode->i_size > offset; | ||
990 | i_size_write(inode, offset); | ||
991 | spin_unlock(&fc->lock); | ||
992 | |||
993 | if (need_trunc) { | ||
994 | struct address_space *mapping = inode->i_mapping; | ||
995 | unmap_mapping_range(mapping, offset + PAGE_SIZE - 1, 0, 1); | ||
996 | truncate_inode_pages(mapping, offset); | ||
997 | } | ||
998 | } | ||
999 | |||
1000 | /* | 990 | /* |
1001 | * Set attributes, and at the same time refresh them. | 991 | * Set attributes, and at the same time refresh them. |
1002 | * | 992 | * |
@@ -1014,7 +1004,6 @@ static int fuse_setattr(struct dentry *entry, struct iattr *attr) | |||
1014 | struct fuse_setattr_in inarg; | 1004 | struct fuse_setattr_in inarg; |
1015 | struct fuse_attr_out outarg; | 1005 | struct fuse_attr_out outarg; |
1016 | int err; | 1006 | int err; |
1017 | int is_truncate = 0; | ||
1018 | 1007 | ||
1019 | if (fc->flags & FUSE_DEFAULT_PERMISSIONS) { | 1008 | if (fc->flags & FUSE_DEFAULT_PERMISSIONS) { |
1020 | err = inode_change_ok(inode, attr); | 1009 | err = inode_change_ok(inode, attr); |
@@ -1024,7 +1013,6 @@ static int fuse_setattr(struct dentry *entry, struct iattr *attr) | |||
1024 | 1013 | ||
1025 | if (attr->ia_valid & ATTR_SIZE) { | 1014 | if (attr->ia_valid & ATTR_SIZE) { |
1026 | unsigned long limit; | 1015 | unsigned long limit; |
1027 | is_truncate = 1; | ||
1028 | if (IS_SWAPFILE(inode)) | 1016 | if (IS_SWAPFILE(inode)) |
1029 | return -ETXTBSY; | 1017 | return -ETXTBSY; |
1030 | limit = current->signal->rlim[RLIMIT_FSIZE].rlim_cur; | 1018 | limit = current->signal->rlim[RLIMIT_FSIZE].rlim_cur; |
@@ -1051,30 +1039,38 @@ static int fuse_setattr(struct dentry *entry, struct iattr *attr) | |||
1051 | request_send(fc, req); | 1039 | request_send(fc, req); |
1052 | err = req->out.h.error; | 1040 | err = req->out.h.error; |
1053 | fuse_put_request(fc, req); | 1041 | fuse_put_request(fc, req); |
1054 | if (!err) { | 1042 | if (err) { |
1055 | if ((inode->i_mode ^ outarg.attr.mode) & S_IFMT) { | 1043 | if (err == -EINTR) |
1056 | make_bad_inode(inode); | 1044 | fuse_invalidate_attr(inode); |
1057 | err = -EIO; | 1045 | return err; |
1058 | } else { | 1046 | } |
1059 | if (is_truncate) | ||
1060 | fuse_vmtruncate(inode, outarg.attr.size); | ||
1061 | fuse_change_attributes(inode, &outarg.attr); | ||
1062 | fi->i_time = time_to_jiffies(outarg.attr_valid, | ||
1063 | outarg.attr_valid_nsec); | ||
1064 | } | ||
1065 | } else if (err == -EINTR) | ||
1066 | fuse_invalidate_attr(inode); | ||
1067 | 1047 | ||
1068 | return err; | 1048 | if ((inode->i_mode ^ outarg.attr.mode) & S_IFMT) { |
1049 | make_bad_inode(inode); | ||
1050 | return -EIO; | ||
1051 | } | ||
1052 | |||
1053 | fuse_change_attributes(inode, &outarg.attr); | ||
1054 | fi->i_time = time_to_jiffies(outarg.attr_valid, outarg.attr_valid_nsec); | ||
1055 | return 0; | ||
1069 | } | 1056 | } |
1070 | 1057 | ||
1071 | static int fuse_getattr(struct vfsmount *mnt, struct dentry *entry, | 1058 | static int fuse_getattr(struct vfsmount *mnt, struct dentry *entry, |
1072 | struct kstat *stat) | 1059 | struct kstat *stat) |
1073 | { | 1060 | { |
1074 | struct inode *inode = entry->d_inode; | 1061 | struct inode *inode = entry->d_inode; |
1075 | int err = fuse_revalidate(entry); | 1062 | struct fuse_inode *fi = get_fuse_inode(inode); |
1076 | if (!err) | 1063 | struct fuse_conn *fc = get_fuse_conn(inode); |
1064 | int err; | ||
1065 | |||
1066 | if (!fuse_allow_task(fc, current)) | ||
1067 | return -EACCES; | ||
1068 | |||
1069 | err = fuse_refresh_attributes(inode); | ||
1070 | if (!err) { | ||
1077 | generic_fillattr(inode, stat); | 1071 | generic_fillattr(inode, stat); |
1072 | stat->mode = fi->orig_i_mode; | ||
1073 | } | ||
1078 | 1074 | ||
1079 | return err; | 1075 | return err; |
1080 | } | 1076 | } |
diff --git a/fs/fuse/file.c b/fs/fuse/file.c index 11f22a3d728a..c4b98c03a46e 100644 --- a/fs/fuse/file.c +++ b/fs/fuse/file.c | |||
@@ -54,6 +54,7 @@ struct fuse_file *fuse_file_alloc(void) | |||
54 | kfree(ff); | 54 | kfree(ff); |
55 | ff = NULL; | 55 | ff = NULL; |
56 | } | 56 | } |
57 | atomic_set(&ff->count, 0); | ||
57 | } | 58 | } |
58 | return ff; | 59 | return ff; |
59 | } | 60 | } |
@@ -64,15 +65,39 @@ void fuse_file_free(struct fuse_file *ff) | |||
64 | kfree(ff); | 65 | kfree(ff); |
65 | } | 66 | } |
66 | 67 | ||
68 | static struct fuse_file *fuse_file_get(struct fuse_file *ff) | ||
69 | { | ||
70 | atomic_inc(&ff->count); | ||
71 | return ff; | ||
72 | } | ||
73 | |||
74 | static void fuse_release_end(struct fuse_conn *fc, struct fuse_req *req) | ||
75 | { | ||
76 | dput(req->dentry); | ||
77 | mntput(req->vfsmount); | ||
78 | fuse_put_request(fc, req); | ||
79 | } | ||
80 | |||
81 | static void fuse_file_put(struct fuse_file *ff) | ||
82 | { | ||
83 | if (atomic_dec_and_test(&ff->count)) { | ||
84 | struct fuse_req *req = ff->reserved_req; | ||
85 | struct fuse_conn *fc = get_fuse_conn(req->dentry->d_inode); | ||
86 | req->end = fuse_release_end; | ||
87 | request_send_background(fc, req); | ||
88 | kfree(ff); | ||
89 | } | ||
90 | } | ||
91 | |||
67 | void fuse_finish_open(struct inode *inode, struct file *file, | 92 | void fuse_finish_open(struct inode *inode, struct file *file, |
68 | struct fuse_file *ff, struct fuse_open_out *outarg) | 93 | struct fuse_file *ff, struct fuse_open_out *outarg) |
69 | { | 94 | { |
70 | if (outarg->open_flags & FOPEN_DIRECT_IO) | 95 | if (outarg->open_flags & FOPEN_DIRECT_IO) |
71 | file->f_op = &fuse_direct_io_file_operations; | 96 | file->f_op = &fuse_direct_io_file_operations; |
72 | if (!(outarg->open_flags & FOPEN_KEEP_CACHE)) | 97 | if (!(outarg->open_flags & FOPEN_KEEP_CACHE)) |
73 | invalidate_mapping_pages(inode->i_mapping, 0, -1); | 98 | invalidate_inode_pages2(inode->i_mapping); |
74 | ff->fh = outarg->fh; | 99 | ff->fh = outarg->fh; |
75 | file->private_data = ff; | 100 | file->private_data = fuse_file_get(ff); |
76 | } | 101 | } |
77 | 102 | ||
78 | int fuse_open_common(struct inode *inode, struct file *file, int isdir) | 103 | int fuse_open_common(struct inode *inode, struct file *file, int isdir) |
@@ -89,14 +114,6 @@ int fuse_open_common(struct inode *inode, struct file *file, int isdir) | |||
89 | if (err) | 114 | if (err) |
90 | return err; | 115 | return err; |
91 | 116 | ||
92 | /* If opening the root node, no lookup has been performed on | ||
93 | it, so the attributes must be refreshed */ | ||
94 | if (get_node_id(inode) == FUSE_ROOT_ID) { | ||
95 | err = fuse_do_getattr(inode); | ||
96 | if (err) | ||
97 | return err; | ||
98 | } | ||
99 | |||
100 | ff = fuse_file_alloc(); | 117 | ff = fuse_file_alloc(); |
101 | if (!ff) | 118 | if (!ff) |
102 | return -ENOMEM; | 119 | return -ENOMEM; |
@@ -113,8 +130,7 @@ int fuse_open_common(struct inode *inode, struct file *file, int isdir) | |||
113 | return err; | 130 | return err; |
114 | } | 131 | } |
115 | 132 | ||
116 | struct fuse_req *fuse_release_fill(struct fuse_file *ff, u64 nodeid, int flags, | 133 | void fuse_release_fill(struct fuse_file *ff, u64 nodeid, int flags, int opcode) |
117 | int opcode) | ||
118 | { | 134 | { |
119 | struct fuse_req *req = ff->reserved_req; | 135 | struct fuse_req *req = ff->reserved_req; |
120 | struct fuse_release_in *inarg = &req->misc.release_in; | 136 | struct fuse_release_in *inarg = &req->misc.release_in; |
@@ -126,25 +142,24 @@ struct fuse_req *fuse_release_fill(struct fuse_file *ff, u64 nodeid, int flags, | |||
126 | req->in.numargs = 1; | 142 | req->in.numargs = 1; |
127 | req->in.args[0].size = sizeof(struct fuse_release_in); | 143 | req->in.args[0].size = sizeof(struct fuse_release_in); |
128 | req->in.args[0].value = inarg; | 144 | req->in.args[0].value = inarg; |
129 | kfree(ff); | ||
130 | |||
131 | return req; | ||
132 | } | 145 | } |
133 | 146 | ||
134 | int fuse_release_common(struct inode *inode, struct file *file, int isdir) | 147 | int fuse_release_common(struct inode *inode, struct file *file, int isdir) |
135 | { | 148 | { |
136 | struct fuse_file *ff = file->private_data; | 149 | struct fuse_file *ff = file->private_data; |
137 | if (ff) { | 150 | if (ff) { |
138 | struct fuse_conn *fc = get_fuse_conn(inode); | 151 | fuse_release_fill(ff, get_node_id(inode), file->f_flags, |
139 | struct fuse_req *req; | 152 | isdir ? FUSE_RELEASEDIR : FUSE_RELEASE); |
140 | |||
141 | req = fuse_release_fill(ff, get_node_id(inode), file->f_flags, | ||
142 | isdir ? FUSE_RELEASEDIR : FUSE_RELEASE); | ||
143 | 153 | ||
144 | /* Hold vfsmount and dentry until release is finished */ | 154 | /* Hold vfsmount and dentry until release is finished */ |
145 | req->vfsmount = mntget(file->f_path.mnt); | 155 | ff->reserved_req->vfsmount = mntget(file->f_path.mnt); |
146 | req->dentry = dget(file->f_path.dentry); | 156 | ff->reserved_req->dentry = dget(file->f_path.dentry); |
147 | request_send_background(fc, req); | 157 | /* |
158 | * Normally this will send the RELEASE request, | ||
159 | * however if some asynchronous READ or WRITE requests | ||
160 | * are outstanding, the sending will be delayed | ||
161 | */ | ||
162 | fuse_file_put(ff); | ||
148 | } | 163 | } |
149 | 164 | ||
150 | /* Return value is ignored by VFS */ | 165 | /* Return value is ignored by VFS */ |
@@ -264,10 +279,9 @@ static int fuse_fsync(struct file *file, struct dentry *de, int datasync) | |||
264 | return fuse_fsync_common(file, de, datasync, 0); | 279 | return fuse_fsync_common(file, de, datasync, 0); |
265 | } | 280 | } |
266 | 281 | ||
267 | void fuse_read_fill(struct fuse_req *req, struct file *file, | 282 | void fuse_read_fill(struct fuse_req *req, struct fuse_file *ff, |
268 | struct inode *inode, loff_t pos, size_t count, int opcode) | 283 | struct inode *inode, loff_t pos, size_t count, int opcode) |
269 | { | 284 | { |
270 | struct fuse_file *ff = file->private_data; | ||
271 | struct fuse_read_in *inarg = &req->misc.read_in; | 285 | struct fuse_read_in *inarg = &req->misc.read_in; |
272 | 286 | ||
273 | inarg->fh = ff->fh; | 287 | inarg->fh = ff->fh; |
@@ -288,7 +302,8 @@ static size_t fuse_send_read(struct fuse_req *req, struct file *file, | |||
288 | struct inode *inode, loff_t pos, size_t count) | 302 | struct inode *inode, loff_t pos, size_t count) |
289 | { | 303 | { |
290 | struct fuse_conn *fc = get_fuse_conn(inode); | 304 | struct fuse_conn *fc = get_fuse_conn(inode); |
291 | fuse_read_fill(req, file, inode, pos, count, FUSE_READ); | 305 | struct fuse_file *ff = file->private_data; |
306 | fuse_read_fill(req, ff, inode, pos, count, FUSE_READ); | ||
292 | request_send(fc, req); | 307 | request_send(fc, req); |
293 | return req->out.args[0].size; | 308 | return req->out.args[0].size; |
294 | } | 309 | } |
@@ -337,20 +352,21 @@ static void fuse_readpages_end(struct fuse_conn *fc, struct fuse_req *req) | |||
337 | SetPageError(page); | 352 | SetPageError(page); |
338 | unlock_page(page); | 353 | unlock_page(page); |
339 | } | 354 | } |
355 | if (req->ff) | ||
356 | fuse_file_put(req->ff); | ||
340 | fuse_put_request(fc, req); | 357 | fuse_put_request(fc, req); |
341 | } | 358 | } |
342 | 359 | ||
343 | static void fuse_send_readpages(struct fuse_req *req, struct file *file, | 360 | static void fuse_send_readpages(struct fuse_req *req, struct fuse_file *ff, |
344 | struct inode *inode) | 361 | struct inode *inode) |
345 | { | 362 | { |
346 | struct fuse_conn *fc = get_fuse_conn(inode); | 363 | struct fuse_conn *fc = get_fuse_conn(inode); |
347 | loff_t pos = page_offset(req->pages[0]); | 364 | loff_t pos = page_offset(req->pages[0]); |
348 | size_t count = req->num_pages << PAGE_CACHE_SHIFT; | 365 | size_t count = req->num_pages << PAGE_CACHE_SHIFT; |
349 | req->out.page_zeroing = 1; | 366 | req->out.page_zeroing = 1; |
350 | fuse_read_fill(req, file, inode, pos, count, FUSE_READ); | 367 | fuse_read_fill(req, ff, inode, pos, count, FUSE_READ); |
351 | if (fc->async_read) { | 368 | if (fc->async_read) { |
352 | get_file(file); | 369 | req->ff = fuse_file_get(ff); |
353 | req->file = file; | ||
354 | req->end = fuse_readpages_end; | 370 | req->end = fuse_readpages_end; |
355 | request_send_background(fc, req); | 371 | request_send_background(fc, req); |
356 | } else { | 372 | } else { |
@@ -359,15 +375,15 @@ static void fuse_send_readpages(struct fuse_req *req, struct file *file, | |||
359 | } | 375 | } |
360 | } | 376 | } |
361 | 377 | ||
362 | struct fuse_readpages_data { | 378 | struct fuse_fill_data { |
363 | struct fuse_req *req; | 379 | struct fuse_req *req; |
364 | struct file *file; | 380 | struct fuse_file *ff; |
365 | struct inode *inode; | 381 | struct inode *inode; |
366 | }; | 382 | }; |
367 | 383 | ||
368 | static int fuse_readpages_fill(void *_data, struct page *page) | 384 | static int fuse_readpages_fill(void *_data, struct page *page) |
369 | { | 385 | { |
370 | struct fuse_readpages_data *data = _data; | 386 | struct fuse_fill_data *data = _data; |
371 | struct fuse_req *req = data->req; | 387 | struct fuse_req *req = data->req; |
372 | struct inode *inode = data->inode; | 388 | struct inode *inode = data->inode; |
373 | struct fuse_conn *fc = get_fuse_conn(inode); | 389 | struct fuse_conn *fc = get_fuse_conn(inode); |
@@ -376,7 +392,7 @@ static int fuse_readpages_fill(void *_data, struct page *page) | |||
376 | (req->num_pages == FUSE_MAX_PAGES_PER_REQ || | 392 | (req->num_pages == FUSE_MAX_PAGES_PER_REQ || |
377 | (req->num_pages + 1) * PAGE_CACHE_SIZE > fc->max_read || | 393 | (req->num_pages + 1) * PAGE_CACHE_SIZE > fc->max_read || |
378 | req->pages[req->num_pages - 1]->index + 1 != page->index)) { | 394 | req->pages[req->num_pages - 1]->index + 1 != page->index)) { |
379 | fuse_send_readpages(req, data->file, inode); | 395 | fuse_send_readpages(req, data->ff, inode); |
380 | data->req = req = fuse_get_req(fc); | 396 | data->req = req = fuse_get_req(fc); |
381 | if (IS_ERR(req)) { | 397 | if (IS_ERR(req)) { |
382 | unlock_page(page); | 398 | unlock_page(page); |
@@ -393,14 +409,14 @@ static int fuse_readpages(struct file *file, struct address_space *mapping, | |||
393 | { | 409 | { |
394 | struct inode *inode = mapping->host; | 410 | struct inode *inode = mapping->host; |
395 | struct fuse_conn *fc = get_fuse_conn(inode); | 411 | struct fuse_conn *fc = get_fuse_conn(inode); |
396 | struct fuse_readpages_data data; | 412 | struct fuse_fill_data data; |
397 | int err; | 413 | int err; |
398 | 414 | ||
399 | err = -EIO; | 415 | err = -EIO; |
400 | if (is_bad_inode(inode)) | 416 | if (is_bad_inode(inode)) |
401 | goto out; | 417 | goto out; |
402 | 418 | ||
403 | data.file = file; | 419 | data.ff = file->private_data; |
404 | data.inode = inode; | 420 | data.inode = inode; |
405 | data.req = fuse_get_req(fc); | 421 | data.req = fuse_get_req(fc); |
406 | err = PTR_ERR(data.req); | 422 | err = PTR_ERR(data.req); |
@@ -410,7 +426,7 @@ static int fuse_readpages(struct file *file, struct address_space *mapping, | |||
410 | err = read_cache_pages(mapping, pages, fuse_readpages_fill, &data); | 426 | err = read_cache_pages(mapping, pages, fuse_readpages_fill, &data); |
411 | if (!err) { | 427 | if (!err) { |
412 | if (data.req->num_pages) | 428 | if (data.req->num_pages) |
413 | fuse_send_readpages(data.req, file, inode); | 429 | fuse_send_readpages(data.req, data.ff, inode); |
414 | else | 430 | else |
415 | fuse_put_request(fc, data.req); | 431 | fuse_put_request(fc, data.req); |
416 | } | 432 | } |
diff --git a/fs/fuse/fuse_i.h b/fs/fuse/fuse_i.h index 68ae87cbafab..1764506fdd11 100644 --- a/fs/fuse/fuse_i.h +++ b/fs/fuse/fuse_i.h | |||
@@ -20,7 +20,10 @@ | |||
20 | #define FUSE_MAX_PAGES_PER_REQ 32 | 20 | #define FUSE_MAX_PAGES_PER_REQ 32 |
21 | 21 | ||
22 | /** Maximum number of outstanding background requests */ | 22 | /** Maximum number of outstanding background requests */ |
23 | #define FUSE_MAX_BACKGROUND 10 | 23 | #define FUSE_MAX_BACKGROUND 12 |
24 | |||
25 | /** Congestion starts at 75% of maximum */ | ||
26 | #define FUSE_CONGESTION_THRESHOLD (FUSE_MAX_BACKGROUND * 75 / 100) | ||
24 | 27 | ||
25 | /** It could be as large as PATH_MAX, but would that have any uses? */ | 28 | /** It could be as large as PATH_MAX, but would that have any uses? */ |
26 | #define FUSE_NAME_MAX 1024 | 29 | #define FUSE_NAME_MAX 1024 |
@@ -60,6 +63,10 @@ struct fuse_inode { | |||
60 | 63 | ||
61 | /** Time in jiffies until the file attributes are valid */ | 64 | /** Time in jiffies until the file attributes are valid */ |
62 | u64 i_time; | 65 | u64 i_time; |
66 | |||
67 | /** The sticky bit in inode->i_mode may have been removed, so | ||
68 | preserve the original mode */ | ||
69 | mode_t orig_i_mode; | ||
63 | }; | 70 | }; |
64 | 71 | ||
65 | /** FUSE specific file data */ | 72 | /** FUSE specific file data */ |
@@ -69,6 +76,9 @@ struct fuse_file { | |||
69 | 76 | ||
70 | /** File handle used by userspace */ | 77 | /** File handle used by userspace */ |
71 | u64 fh; | 78 | u64 fh; |
79 | |||
80 | /** Refcount */ | ||
81 | atomic_t count; | ||
72 | }; | 82 | }; |
73 | 83 | ||
74 | /** One input argument of a request */ | 84 | /** One input argument of a request */ |
@@ -213,7 +223,7 @@ struct fuse_req { | |||
213 | unsigned page_offset; | 223 | unsigned page_offset; |
214 | 224 | ||
215 | /** File used in the request (or NULL) */ | 225 | /** File used in the request (or NULL) */ |
216 | struct file *file; | 226 | struct fuse_file *ff; |
217 | 227 | ||
218 | /** vfsmount used in release */ | 228 | /** vfsmount used in release */ |
219 | struct vfsmount *vfsmount; | 229 | struct vfsmount *vfsmount; |
@@ -286,6 +296,9 @@ struct fuse_conn { | |||
286 | /** waitq for blocked connection */ | 296 | /** waitq for blocked connection */ |
287 | wait_queue_head_t blocked_waitq; | 297 | wait_queue_head_t blocked_waitq; |
288 | 298 | ||
299 | /** waitq for reserved requests */ | ||
300 | wait_queue_head_t reserved_req_waitq; | ||
301 | |||
289 | /** The next unique request id */ | 302 | /** The next unique request id */ |
290 | u64 reqctr; | 303 | u64 reqctr; |
291 | 304 | ||
@@ -414,7 +427,7 @@ void fuse_send_forget(struct fuse_conn *fc, struct fuse_req *req, | |||
414 | /** | 427 | /** |
415 | * Initialize READ or READDIR request | 428 | * Initialize READ or READDIR request |
416 | */ | 429 | */ |
417 | void fuse_read_fill(struct fuse_req *req, struct file *file, | 430 | void fuse_read_fill(struct fuse_req *req, struct fuse_file *ff, |
418 | struct inode *inode, loff_t pos, size_t count, int opcode); | 431 | struct inode *inode, loff_t pos, size_t count, int opcode); |
419 | 432 | ||
420 | /** | 433 | /** |
@@ -427,9 +440,9 @@ void fuse_file_free(struct fuse_file *ff); | |||
427 | void fuse_finish_open(struct inode *inode, struct file *file, | 440 | void fuse_finish_open(struct inode *inode, struct file *file, |
428 | struct fuse_file *ff, struct fuse_open_out *outarg); | 441 | struct fuse_file *ff, struct fuse_open_out *outarg); |
429 | 442 | ||
430 | /** */ | 443 | /** Fill in ff->reserved_req with a RELEASE request */ |
431 | struct fuse_req *fuse_release_fill(struct fuse_file *ff, u64 nodeid, int flags, | 444 | void fuse_release_fill(struct fuse_file *ff, u64 nodeid, int flags, int opcode); |
432 | int opcode); | 445 | |
433 | /** | 446 | /** |
434 | * Send RELEASE or RELEASEDIR request | 447 | * Send RELEASE or RELEASEDIR request |
435 | */ | 448 | */ |
@@ -524,11 +537,6 @@ void request_send_background(struct fuse_conn *fc, struct fuse_req *req); | |||
524 | void fuse_abort_conn(struct fuse_conn *fc); | 537 | void fuse_abort_conn(struct fuse_conn *fc); |
525 | 538 | ||
526 | /** | 539 | /** |
527 | * Get the attributes of a file | ||
528 | */ | ||
529 | int fuse_do_getattr(struct inode *inode); | ||
530 | |||
531 | /** | ||
532 | * Invalidate inode attributes | 540 | * Invalidate inode attributes |
533 | */ | 541 | */ |
534 | void fuse_invalidate_attr(struct inode *inode); | 542 | void fuse_invalidate_attr(struct inode *inode); |
diff --git a/fs/fuse/inode.c b/fs/fuse/inode.c index 5448f625ab56..fd0735715c14 100644 --- a/fs/fuse/inode.c +++ b/fs/fuse/inode.c | |||
@@ -109,20 +109,25 @@ static int fuse_remount_fs(struct super_block *sb, int *flags, char *data) | |||
109 | return 0; | 109 | return 0; |
110 | } | 110 | } |
111 | 111 | ||
112 | static void fuse_truncate(struct address_space *mapping, loff_t offset) | ||
113 | { | ||
114 | /* See vmtruncate() */ | ||
115 | unmap_mapping_range(mapping, offset + PAGE_SIZE - 1, 0, 1); | ||
116 | truncate_inode_pages(mapping, offset); | ||
117 | unmap_mapping_range(mapping, offset + PAGE_SIZE - 1, 0, 1); | ||
118 | } | ||
119 | |||
112 | void fuse_change_attributes(struct inode *inode, struct fuse_attr *attr) | 120 | void fuse_change_attributes(struct inode *inode, struct fuse_attr *attr) |
113 | { | 121 | { |
114 | struct fuse_conn *fc = get_fuse_conn(inode); | 122 | struct fuse_conn *fc = get_fuse_conn(inode); |
115 | if (S_ISREG(inode->i_mode) && i_size_read(inode) != attr->size) | 123 | struct fuse_inode *fi = get_fuse_inode(inode); |
116 | invalidate_mapping_pages(inode->i_mapping, 0, -1); | 124 | loff_t oldsize; |
117 | 125 | ||
118 | inode->i_ino = attr->ino; | 126 | inode->i_ino = attr->ino; |
119 | inode->i_mode = (inode->i_mode & S_IFMT) + (attr->mode & 07777); | 127 | inode->i_mode = (inode->i_mode & S_IFMT) | (attr->mode & 07777); |
120 | inode->i_nlink = attr->nlink; | 128 | inode->i_nlink = attr->nlink; |
121 | inode->i_uid = attr->uid; | 129 | inode->i_uid = attr->uid; |
122 | inode->i_gid = attr->gid; | 130 | inode->i_gid = attr->gid; |
123 | spin_lock(&fc->lock); | ||
124 | i_size_write(inode, attr->size); | ||
125 | spin_unlock(&fc->lock); | ||
126 | inode->i_blocks = attr->blocks; | 131 | inode->i_blocks = attr->blocks; |
127 | inode->i_atime.tv_sec = attr->atime; | 132 | inode->i_atime.tv_sec = attr->atime; |
128 | inode->i_atime.tv_nsec = attr->atimensec; | 133 | inode->i_atime.tv_nsec = attr->atimensec; |
@@ -130,6 +135,26 @@ void fuse_change_attributes(struct inode *inode, struct fuse_attr *attr) | |||
130 | inode->i_mtime.tv_nsec = attr->mtimensec; | 135 | inode->i_mtime.tv_nsec = attr->mtimensec; |
131 | inode->i_ctime.tv_sec = attr->ctime; | 136 | inode->i_ctime.tv_sec = attr->ctime; |
132 | inode->i_ctime.tv_nsec = attr->ctimensec; | 137 | inode->i_ctime.tv_nsec = attr->ctimensec; |
138 | |||
139 | /* | ||
140 | * Don't set the sticky bit in i_mode, unless we want the VFS | ||
141 | * to check permissions. This prevents failures due to the | ||
142 | * check in may_delete(). | ||
143 | */ | ||
144 | fi->orig_i_mode = inode->i_mode; | ||
145 | if (!(fc->flags & FUSE_DEFAULT_PERMISSIONS)) | ||
146 | inode->i_mode &= ~S_ISVTX; | ||
147 | |||
148 | spin_lock(&fc->lock); | ||
149 | oldsize = inode->i_size; | ||
150 | i_size_write(inode, attr->size); | ||
151 | spin_unlock(&fc->lock); | ||
152 | |||
153 | if (S_ISREG(inode->i_mode) && oldsize != attr->size) { | ||
154 | if (attr->size < oldsize) | ||
155 | fuse_truncate(inode->i_mapping, attr->size); | ||
156 | invalidate_inode_pages2(inode->i_mapping); | ||
157 | } | ||
133 | } | 158 | } |
134 | 159 | ||
135 | static void fuse_init_inode(struct inode *inode, struct fuse_attr *attr) | 160 | static void fuse_init_inode(struct inode *inode, struct fuse_attr *attr) |
@@ -232,6 +257,7 @@ static void fuse_put_super(struct super_block *sb) | |||
232 | kill_fasync(&fc->fasync, SIGIO, POLL_IN); | 257 | kill_fasync(&fc->fasync, SIGIO, POLL_IN); |
233 | wake_up_all(&fc->waitq); | 258 | wake_up_all(&fc->waitq); |
234 | wake_up_all(&fc->blocked_waitq); | 259 | wake_up_all(&fc->blocked_waitq); |
260 | wake_up_all(&fc->reserved_req_waitq); | ||
235 | mutex_lock(&fuse_mutex); | 261 | mutex_lock(&fuse_mutex); |
236 | list_del(&fc->entry); | 262 | list_del(&fc->entry); |
237 | fuse_ctl_remove_conn(fc); | 263 | fuse_ctl_remove_conn(fc); |
@@ -401,6 +427,7 @@ static int fuse_show_options(struct seq_file *m, struct vfsmount *mnt) | |||
401 | static struct fuse_conn *new_conn(void) | 427 | static struct fuse_conn *new_conn(void) |
402 | { | 428 | { |
403 | struct fuse_conn *fc; | 429 | struct fuse_conn *fc; |
430 | int err; | ||
404 | 431 | ||
405 | fc = kzalloc(sizeof(*fc), GFP_KERNEL); | 432 | fc = kzalloc(sizeof(*fc), GFP_KERNEL); |
406 | if (fc) { | 433 | if (fc) { |
@@ -409,6 +436,7 @@ static struct fuse_conn *new_conn(void) | |||
409 | atomic_set(&fc->count, 1); | 436 | atomic_set(&fc->count, 1); |
410 | init_waitqueue_head(&fc->waitq); | 437 | init_waitqueue_head(&fc->waitq); |
411 | init_waitqueue_head(&fc->blocked_waitq); | 438 | init_waitqueue_head(&fc->blocked_waitq); |
439 | init_waitqueue_head(&fc->reserved_req_waitq); | ||
412 | INIT_LIST_HEAD(&fc->pending); | 440 | INIT_LIST_HEAD(&fc->pending); |
413 | INIT_LIST_HEAD(&fc->processing); | 441 | INIT_LIST_HEAD(&fc->processing); |
414 | INIT_LIST_HEAD(&fc->io); | 442 | INIT_LIST_HEAD(&fc->io); |
@@ -416,10 +444,17 @@ static struct fuse_conn *new_conn(void) | |||
416 | atomic_set(&fc->num_waiting, 0); | 444 | atomic_set(&fc->num_waiting, 0); |
417 | fc->bdi.ra_pages = (VM_MAX_READAHEAD * 1024) / PAGE_CACHE_SIZE; | 445 | fc->bdi.ra_pages = (VM_MAX_READAHEAD * 1024) / PAGE_CACHE_SIZE; |
418 | fc->bdi.unplug_io_fn = default_unplug_io_fn; | 446 | fc->bdi.unplug_io_fn = default_unplug_io_fn; |
447 | err = bdi_init(&fc->bdi); | ||
448 | if (err) { | ||
449 | kfree(fc); | ||
450 | fc = NULL; | ||
451 | goto out; | ||
452 | } | ||
419 | fc->reqctr = 0; | 453 | fc->reqctr = 0; |
420 | fc->blocked = 1; | 454 | fc->blocked = 1; |
421 | get_random_bytes(&fc->scramble_key, sizeof(fc->scramble_key)); | 455 | get_random_bytes(&fc->scramble_key, sizeof(fc->scramble_key)); |
422 | } | 456 | } |
457 | out: | ||
423 | return fc; | 458 | return fc; |
424 | } | 459 | } |
425 | 460 | ||
@@ -429,6 +464,7 @@ void fuse_conn_put(struct fuse_conn *fc) | |||
429 | if (fc->destroy_req) | 464 | if (fc->destroy_req) |
430 | fuse_request_free(fc->destroy_req); | 465 | fuse_request_free(fc->destroy_req); |
431 | mutex_destroy(&fc->inst_mutex); | 466 | mutex_destroy(&fc->inst_mutex); |
467 | bdi_destroy(&fc->bdi); | ||
432 | kfree(fc); | 468 | kfree(fc); |
433 | } | 469 | } |
434 | } | 470 | } |
@@ -446,6 +482,7 @@ static struct inode *get_root_inode(struct super_block *sb, unsigned mode) | |||
446 | 482 | ||
447 | attr.mode = mode; | 483 | attr.mode = mode; |
448 | attr.ino = FUSE_ROOT_ID; | 484 | attr.ino = FUSE_ROOT_ID; |
485 | attr.nlink = 1; | ||
449 | return fuse_iget(sb, 1, 0, &attr); | 486 | return fuse_iget(sb, 1, 0, &attr); |
450 | } | 487 | } |
451 | 488 | ||
@@ -683,8 +720,7 @@ static inline void unregister_fuseblk(void) | |||
683 | static decl_subsys(fuse, NULL, NULL); | 720 | static decl_subsys(fuse, NULL, NULL); |
684 | static decl_subsys(connections, NULL, NULL); | 721 | static decl_subsys(connections, NULL, NULL); |
685 | 722 | ||
686 | static void fuse_inode_init_once(void *foo, struct kmem_cache *cachep, | 723 | static void fuse_inode_init_once(struct kmem_cache *cachep, void *foo) |
687 | unsigned long flags) | ||
688 | { | 724 | { |
689 | struct inode * inode = foo; | 725 | struct inode * inode = foo; |
690 | 726 | ||
diff --git a/fs/gfs2/main.c b/fs/gfs2/main.c index 79c91fd8381b..7ecfe0d3a491 100644 --- a/fs/gfs2/main.c +++ b/fs/gfs2/main.c | |||
@@ -24,7 +24,7 @@ | |||
24 | #include "util.h" | 24 | #include "util.h" |
25 | #include "glock.h" | 25 | #include "glock.h" |
26 | 26 | ||
27 | static void gfs2_init_inode_once(void *foo, struct kmem_cache *cachep, unsigned long flags) | 27 | static void gfs2_init_inode_once(struct kmem_cache *cachep, void *foo) |
28 | { | 28 | { |
29 | struct gfs2_inode *ip = foo; | 29 | struct gfs2_inode *ip = foo; |
30 | 30 | ||
@@ -34,7 +34,7 @@ static void gfs2_init_inode_once(void *foo, struct kmem_cache *cachep, unsigned | |||
34 | memset(ip->i_cache, 0, sizeof(ip->i_cache)); | 34 | memset(ip->i_cache, 0, sizeof(ip->i_cache)); |
35 | } | 35 | } |
36 | 36 | ||
37 | static void gfs2_init_glock_once(void *foo, struct kmem_cache *cachep, unsigned long flags) | 37 | static void gfs2_init_glock_once(struct kmem_cache *cachep, void *foo) |
38 | { | 38 | { |
39 | struct gfs2_glock *gl = foo; | 39 | struct gfs2_glock *gl = foo; |
40 | 40 | ||
diff --git a/fs/gfs2/ops_file.c b/fs/gfs2/ops_file.c index 7eb4b280ac66..bb11fd6752d3 100644 --- a/fs/gfs2/ops_file.c +++ b/fs/gfs2/ops_file.c | |||
@@ -406,7 +406,7 @@ static int gfs2_open(struct inode *inode, struct file *file) | |||
406 | 406 | ||
407 | if (!(file->f_flags & O_LARGEFILE) && | 407 | if (!(file->f_flags & O_LARGEFILE) && |
408 | ip->i_di.di_size > MAX_NON_LFS) { | 408 | ip->i_di.di_size > MAX_NON_LFS) { |
409 | error = -EFBIG; | 409 | error = -EOVERFLOW; |
410 | goto fail_gunlock; | 410 | goto fail_gunlock; |
411 | } | 411 | } |
412 | 412 | ||
diff --git a/fs/hfs/super.c b/fs/hfs/super.c index 6c5f92dfb500..16cbd902f8b9 100644 --- a/fs/hfs/super.c +++ b/fs/hfs/super.c | |||
@@ -430,7 +430,7 @@ static struct file_system_type hfs_fs_type = { | |||
430 | .fs_flags = FS_REQUIRES_DEV, | 430 | .fs_flags = FS_REQUIRES_DEV, |
431 | }; | 431 | }; |
432 | 432 | ||
433 | static void hfs_init_once(void *p, struct kmem_cache *cachep, unsigned long flags) | 433 | static void hfs_init_once(struct kmem_cache *cachep, void *p) |
434 | { | 434 | { |
435 | struct hfs_inode_info *i = p; | 435 | struct hfs_inode_info *i = p; |
436 | 436 | ||
diff --git a/fs/hfsplus/super.c b/fs/hfsplus/super.c index 7b0f2e5a44e2..ecf70dafb643 100644 --- a/fs/hfsplus/super.c +++ b/fs/hfsplus/super.c | |||
@@ -466,7 +466,7 @@ static struct file_system_type hfsplus_fs_type = { | |||
466 | .fs_flags = FS_REQUIRES_DEV, | 466 | .fs_flags = FS_REQUIRES_DEV, |
467 | }; | 467 | }; |
468 | 468 | ||
469 | static void hfsplus_init_once(void *p, struct kmem_cache *cachep, unsigned long flags) | 469 | static void hfsplus_init_once(struct kmem_cache *cachep, void *p) |
470 | { | 470 | { |
471 | struct hfsplus_inode_info *i = p; | 471 | struct hfsplus_inode_info *i = p; |
472 | 472 | ||
diff --git a/fs/hpfs/super.c b/fs/hpfs/super.c index 89612ee7c80d..00971d999964 100644 --- a/fs/hpfs/super.c +++ b/fs/hpfs/super.c | |||
@@ -173,7 +173,7 @@ static void hpfs_destroy_inode(struct inode *inode) | |||
173 | kmem_cache_free(hpfs_inode_cachep, hpfs_i(inode)); | 173 | kmem_cache_free(hpfs_inode_cachep, hpfs_i(inode)); |
174 | } | 174 | } |
175 | 175 | ||
176 | static void init_once(void * foo, struct kmem_cache * cachep, unsigned long flags) | 176 | static void init_once(struct kmem_cache *cachep, void *foo) |
177 | { | 177 | { |
178 | struct hpfs_inode_info *ei = (struct hpfs_inode_info *) foo; | 178 | struct hpfs_inode_info *ei = (struct hpfs_inode_info *) foo; |
179 | 179 | ||
diff --git a/fs/hugetlbfs/inode.c b/fs/hugetlbfs/inode.c index 04598e12c489..12aca8ed605f 100644 --- a/fs/hugetlbfs/inode.c +++ b/fs/hugetlbfs/inode.c | |||
@@ -384,7 +384,7 @@ static void hugetlbfs_forget_inode(struct inode *inode) __releases(inode_lock) | |||
384 | struct super_block *sb = inode->i_sb; | 384 | struct super_block *sb = inode->i_sb; |
385 | 385 | ||
386 | if (!hlist_unhashed(&inode->i_hash)) { | 386 | if (!hlist_unhashed(&inode->i_hash)) { |
387 | if (!(inode->i_state & (I_DIRTY|I_LOCK))) | 387 | if (!(inode->i_state & (I_DIRTY|I_SYNC))) |
388 | list_move(&inode->i_list, &inode_unused); | 388 | list_move(&inode->i_list, &inode_unused); |
389 | inodes_stat.nr_unused++; | 389 | inodes_stat.nr_unused++; |
390 | if (!sb || (sb->s_flags & MS_ACTIVE)) { | 390 | if (!sb || (sb->s_flags & MS_ACTIVE)) { |
@@ -697,7 +697,7 @@ static const struct address_space_operations hugetlbfs_aops = { | |||
697 | }; | 697 | }; |
698 | 698 | ||
699 | 699 | ||
700 | static void init_once(void *foo, struct kmem_cache *cachep, unsigned long flags) | 700 | static void init_once(struct kmem_cache *cachep, void *foo) |
701 | { | 701 | { |
702 | struct hugetlbfs_inode_info *ei = (struct hugetlbfs_inode_info *)foo; | 702 | struct hugetlbfs_inode_info *ei = (struct hugetlbfs_inode_info *)foo; |
703 | 703 | ||
@@ -933,16 +933,11 @@ struct file *hugetlb_file_setup(const char *name, size_t size) | |||
933 | if (!dentry) | 933 | if (!dentry) |
934 | goto out_shm_unlock; | 934 | goto out_shm_unlock; |
935 | 935 | ||
936 | error = -ENFILE; | ||
937 | file = get_empty_filp(); | ||
938 | if (!file) | ||
939 | goto out_dentry; | ||
940 | |||
941 | error = -ENOSPC; | 936 | error = -ENOSPC; |
942 | inode = hugetlbfs_get_inode(root->d_sb, current->fsuid, | 937 | inode = hugetlbfs_get_inode(root->d_sb, current->fsuid, |
943 | current->fsgid, S_IFREG | S_IRWXUGO, 0); | 938 | current->fsgid, S_IFREG | S_IRWXUGO, 0); |
944 | if (!inode) | 939 | if (!inode) |
945 | goto out_file; | 940 | goto out_dentry; |
946 | 941 | ||
947 | error = -ENOMEM; | 942 | error = -ENOMEM; |
948 | if (hugetlb_reserve_pages(inode, 0, size >> HPAGE_SHIFT)) | 943 | if (hugetlb_reserve_pages(inode, 0, size >> HPAGE_SHIFT)) |
@@ -951,17 +946,18 @@ struct file *hugetlb_file_setup(const char *name, size_t size) | |||
951 | d_instantiate(dentry, inode); | 946 | d_instantiate(dentry, inode); |
952 | inode->i_size = size; | 947 | inode->i_size = size; |
953 | inode->i_nlink = 0; | 948 | inode->i_nlink = 0; |
954 | file->f_path.mnt = mntget(hugetlbfs_vfsmount); | 949 | |
955 | file->f_path.dentry = dentry; | 950 | error = -ENFILE; |
956 | file->f_mapping = inode->i_mapping; | 951 | file = alloc_file(hugetlbfs_vfsmount, dentry, |
957 | file->f_op = &hugetlbfs_file_operations; | 952 | FMODE_WRITE | FMODE_READ, |
958 | file->f_mode = FMODE_WRITE | FMODE_READ; | 953 | &hugetlbfs_file_operations); |
954 | if (!file) | ||
955 | goto out_inode; | ||
956 | |||
959 | return file; | 957 | return file; |
960 | 958 | ||
961 | out_inode: | 959 | out_inode: |
962 | iput(inode); | 960 | iput(inode); |
963 | out_file: | ||
964 | put_filp(file); | ||
965 | out_dentry: | 961 | out_dentry: |
966 | dput(dentry); | 962 | dput(dentry); |
967 | out_shm_unlock: | 963 | out_shm_unlock: |
@@ -974,11 +970,15 @@ static int __init init_hugetlbfs_fs(void) | |||
974 | int error; | 970 | int error; |
975 | struct vfsmount *vfsmount; | 971 | struct vfsmount *vfsmount; |
976 | 972 | ||
973 | error = bdi_init(&hugetlbfs_backing_dev_info); | ||
974 | if (error) | ||
975 | return error; | ||
976 | |||
977 | hugetlbfs_inode_cachep = kmem_cache_create("hugetlbfs_inode_cache", | 977 | hugetlbfs_inode_cachep = kmem_cache_create("hugetlbfs_inode_cache", |
978 | sizeof(struct hugetlbfs_inode_info), | 978 | sizeof(struct hugetlbfs_inode_info), |
979 | 0, 0, init_once); | 979 | 0, 0, init_once); |
980 | if (hugetlbfs_inode_cachep == NULL) | 980 | if (hugetlbfs_inode_cachep == NULL) |
981 | return -ENOMEM; | 981 | goto out2; |
982 | 982 | ||
983 | error = register_filesystem(&hugetlbfs_fs_type); | 983 | error = register_filesystem(&hugetlbfs_fs_type); |
984 | if (error) | 984 | if (error) |
@@ -996,6 +996,8 @@ static int __init init_hugetlbfs_fs(void) | |||
996 | out: | 996 | out: |
997 | if (error) | 997 | if (error) |
998 | kmem_cache_destroy(hugetlbfs_inode_cachep); | 998 | kmem_cache_destroy(hugetlbfs_inode_cachep); |
999 | out2: | ||
1000 | bdi_destroy(&hugetlbfs_backing_dev_info); | ||
999 | return error; | 1001 | return error; |
1000 | } | 1002 | } |
1001 | 1003 | ||
@@ -1003,6 +1005,7 @@ static void __exit exit_hugetlbfs_fs(void) | |||
1003 | { | 1005 | { |
1004 | kmem_cache_destroy(hugetlbfs_inode_cachep); | 1006 | kmem_cache_destroy(hugetlbfs_inode_cachep); |
1005 | unregister_filesystem(&hugetlbfs_fs_type); | 1007 | unregister_filesystem(&hugetlbfs_fs_type); |
1008 | bdi_destroy(&hugetlbfs_backing_dev_info); | ||
1006 | } | 1009 | } |
1007 | 1010 | ||
1008 | module_init(init_hugetlbfs_fs) | 1011 | module_init(init_hugetlbfs_fs) |
diff --git a/fs/inode.c b/fs/inode.c index 21dab18b2f18..ed35383d0b6c 100644 --- a/fs/inode.c +++ b/fs/inode.c | |||
@@ -99,6 +99,15 @@ struct inodes_stat_t inodes_stat; | |||
99 | 99 | ||
100 | static struct kmem_cache * inode_cachep __read_mostly; | 100 | static struct kmem_cache * inode_cachep __read_mostly; |
101 | 101 | ||
102 | static void wake_up_inode(struct inode *inode) | ||
103 | { | ||
104 | /* | ||
105 | * Prevent speculative execution through spin_unlock(&inode_lock); | ||
106 | */ | ||
107 | smp_mb(); | ||
108 | wake_up_bit(&inode->i_state, __I_LOCK); | ||
109 | } | ||
110 | |||
102 | static struct inode *alloc_inode(struct super_block *sb) | 111 | static struct inode *alloc_inode(struct super_block *sb) |
103 | { | 112 | { |
104 | static const struct address_space_operations empty_aops; | 113 | static const struct address_space_operations empty_aops; |
@@ -215,7 +224,7 @@ void inode_init_once(struct inode *inode) | |||
215 | 224 | ||
216 | EXPORT_SYMBOL(inode_init_once); | 225 | EXPORT_SYMBOL(inode_init_once); |
217 | 226 | ||
218 | static void init_once(void * foo, struct kmem_cache * cachep, unsigned long flags) | 227 | static void init_once(struct kmem_cache * cachep, void *foo) |
219 | { | 228 | { |
220 | struct inode * inode = (struct inode *) foo; | 229 | struct inode * inode = (struct inode *) foo; |
221 | 230 | ||
@@ -232,7 +241,7 @@ void __iget(struct inode * inode) | |||
232 | return; | 241 | return; |
233 | } | 242 | } |
234 | atomic_inc(&inode->i_count); | 243 | atomic_inc(&inode->i_count); |
235 | if (!(inode->i_state & (I_DIRTY|I_LOCK))) | 244 | if (!(inode->i_state & (I_DIRTY|I_SYNC))) |
236 | list_move(&inode->i_list, &inode_in_use); | 245 | list_move(&inode->i_list, &inode_in_use); |
237 | inodes_stat.nr_unused--; | 246 | inodes_stat.nr_unused--; |
238 | } | 247 | } |
@@ -253,7 +262,7 @@ void clear_inode(struct inode *inode) | |||
253 | BUG_ON(inode->i_data.nrpages); | 262 | BUG_ON(inode->i_data.nrpages); |
254 | BUG_ON(!(inode->i_state & I_FREEING)); | 263 | BUG_ON(!(inode->i_state & I_FREEING)); |
255 | BUG_ON(inode->i_state & I_CLEAR); | 264 | BUG_ON(inode->i_state & I_CLEAR); |
256 | wait_on_inode(inode); | 265 | inode_sync_wait(inode); |
257 | DQUOT_DROP(inode); | 266 | DQUOT_DROP(inode); |
258 | if (inode->i_sb->s_op->clear_inode) | 267 | if (inode->i_sb->s_op->clear_inode) |
259 | inode->i_sb->s_op->clear_inode(inode); | 268 | inode->i_sb->s_op->clear_inode(inode); |
@@ -1071,7 +1080,7 @@ static void generic_forget_inode(struct inode *inode) | |||
1071 | struct super_block *sb = inode->i_sb; | 1080 | struct super_block *sb = inode->i_sb; |
1072 | 1081 | ||
1073 | if (!hlist_unhashed(&inode->i_hash)) { | 1082 | if (!hlist_unhashed(&inode->i_hash)) { |
1074 | if (!(inode->i_state & (I_DIRTY|I_LOCK))) | 1083 | if (!(inode->i_state & (I_DIRTY|I_SYNC))) |
1075 | list_move(&inode->i_list, &inode_unused); | 1084 | list_move(&inode->i_list, &inode_unused); |
1076 | inodes_stat.nr_unused++; | 1085 | inodes_stat.nr_unused++; |
1077 | if (sb->s_flags & MS_ACTIVE) { | 1086 | if (sb->s_flags & MS_ACTIVE) { |
@@ -1314,15 +1323,6 @@ static void __wait_on_freeing_inode(struct inode *inode) | |||
1314 | spin_lock(&inode_lock); | 1323 | spin_lock(&inode_lock); |
1315 | } | 1324 | } |
1316 | 1325 | ||
1317 | void wake_up_inode(struct inode *inode) | ||
1318 | { | ||
1319 | /* | ||
1320 | * Prevent speculative execution through spin_unlock(&inode_lock); | ||
1321 | */ | ||
1322 | smp_mb(); | ||
1323 | wake_up_bit(&inode->i_state, __I_LOCK); | ||
1324 | } | ||
1325 | |||
1326 | /* | 1326 | /* |
1327 | * We rarely want to lock two inodes that do not have a parent/child | 1327 | * We rarely want to lock two inodes that do not have a parent/child |
1328 | * relationship (such as directory, child inode) simultaneously. The | 1328 | * relationship (such as directory, child inode) simultaneously. The |
@@ -1396,7 +1396,7 @@ void __init inode_init_early(void) | |||
1396 | INIT_HLIST_HEAD(&inode_hashtable[loop]); | 1396 | INIT_HLIST_HEAD(&inode_hashtable[loop]); |
1397 | } | 1397 | } |
1398 | 1398 | ||
1399 | void __init inode_init(unsigned long mempages) | 1399 | void __init inode_init(void) |
1400 | { | 1400 | { |
1401 | int loop; | 1401 | int loop; |
1402 | 1402 | ||
diff --git a/fs/inotify_user.c b/fs/inotify_user.c index 9bf2f6c09df6..5e009331c01f 100644 --- a/fs/inotify_user.c +++ b/fs/inotify_user.c | |||
@@ -31,6 +31,7 @@ | |||
31 | #include <linux/list.h> | 31 | #include <linux/list.h> |
32 | #include <linux/inotify.h> | 32 | #include <linux/inotify.h> |
33 | #include <linux/syscalls.h> | 33 | #include <linux/syscalls.h> |
34 | #include <linux/magic.h> | ||
34 | 35 | ||
35 | #include <asm/ioctls.h> | 36 | #include <asm/ioctls.h> |
36 | 37 | ||
@@ -684,7 +685,8 @@ static int | |||
684 | inotify_get_sb(struct file_system_type *fs_type, int flags, | 685 | inotify_get_sb(struct file_system_type *fs_type, int flags, |
685 | const char *dev_name, void *data, struct vfsmount *mnt) | 686 | const char *dev_name, void *data, struct vfsmount *mnt) |
686 | { | 687 | { |
687 | return get_sb_pseudo(fs_type, "inotify", NULL, 0xBAD1DEA, mnt); | 688 | return get_sb_pseudo(fs_type, "inotify", NULL, |
689 | INOTIFYFS_SUPER_MAGIC, mnt); | ||
688 | } | 690 | } |
689 | 691 | ||
690 | static struct file_system_type inotify_fs_type = { | 692 | static struct file_system_type inotify_fs_type = { |
diff --git a/fs/isofs/compress.c b/fs/isofs/compress.c index 6bbbdb53581d..37dbd6404787 100644 --- a/fs/isofs/compress.c +++ b/fs/isofs/compress.c | |||
@@ -33,7 +33,7 @@ static char zisofs_sink_page[PAGE_CACHE_SIZE]; | |||
33 | * allocation; this avoids failures at block-decompression time. | 33 | * allocation; this avoids failures at block-decompression time. |
34 | */ | 34 | */ |
35 | static void *zisofs_zlib_workspace; | 35 | static void *zisofs_zlib_workspace; |
36 | static struct semaphore zisofs_zlib_semaphore; | 36 | static DEFINE_MUTEX(zisofs_zlib_lock); |
37 | 37 | ||
38 | /* | 38 | /* |
39 | * When decompressing, we typically obtain more than one page | 39 | * When decompressing, we typically obtain more than one page |
@@ -180,9 +180,9 @@ static int zisofs_readpage(struct file *file, struct page *page) | |||
180 | 180 | ||
181 | /* First block is special since it may be fractional. | 181 | /* First block is special since it may be fractional. |
182 | We also wait for it before grabbing the zlib | 182 | We also wait for it before grabbing the zlib |
183 | semaphore; odds are that the subsequent blocks are | 183 | mutex; odds are that the subsequent blocks are |
184 | going to come in in short order so we don't hold | 184 | going to come in in short order so we don't hold |
185 | the zlib semaphore longer than necessary. */ | 185 | the zlib mutex longer than necessary. */ |
186 | 186 | ||
187 | if ( !bh || (wait_on_buffer(bh), !buffer_uptodate(bh)) ) { | 187 | if ( !bh || (wait_on_buffer(bh), !buffer_uptodate(bh)) ) { |
188 | printk(KERN_DEBUG "zisofs: Hit null buffer, fpage = %d, xpage = %d, csize = %ld\n", | 188 | printk(KERN_DEBUG "zisofs: Hit null buffer, fpage = %d, xpage = %d, csize = %ld\n", |
@@ -194,7 +194,7 @@ static int zisofs_readpage(struct file *file, struct page *page) | |||
194 | csize -= stream.avail_in; | 194 | csize -= stream.avail_in; |
195 | 195 | ||
196 | stream.workspace = zisofs_zlib_workspace; | 196 | stream.workspace = zisofs_zlib_workspace; |
197 | down(&zisofs_zlib_semaphore); | 197 | mutex_lock(&zisofs_zlib_lock); |
198 | 198 | ||
199 | zerr = zlib_inflateInit(&stream); | 199 | zerr = zlib_inflateInit(&stream); |
200 | if ( zerr != Z_OK ) { | 200 | if ( zerr != Z_OK ) { |
@@ -281,7 +281,7 @@ static int zisofs_readpage(struct file *file, struct page *page) | |||
281 | zlib_inflateEnd(&stream); | 281 | zlib_inflateEnd(&stream); |
282 | 282 | ||
283 | z_eio: | 283 | z_eio: |
284 | up(&zisofs_zlib_semaphore); | 284 | mutex_unlock(&zisofs_zlib_lock); |
285 | 285 | ||
286 | b_eio: | 286 | b_eio: |
287 | for ( i = 0 ; i < haveblocks ; i++ ) { | 287 | for ( i = 0 ; i < haveblocks ; i++ ) { |
@@ -317,31 +317,16 @@ const struct address_space_operations zisofs_aops = { | |||
317 | /* No bmap operation supported */ | 317 | /* No bmap operation supported */ |
318 | }; | 318 | }; |
319 | 319 | ||
320 | static int initialized; | ||
321 | |||
322 | int __init zisofs_init(void) | 320 | int __init zisofs_init(void) |
323 | { | 321 | { |
324 | if ( initialized ) { | ||
325 | printk("zisofs_init: called more than once\n"); | ||
326 | return 0; | ||
327 | } | ||
328 | |||
329 | zisofs_zlib_workspace = vmalloc(zlib_inflate_workspacesize()); | 322 | zisofs_zlib_workspace = vmalloc(zlib_inflate_workspacesize()); |
330 | if ( !zisofs_zlib_workspace ) | 323 | if ( !zisofs_zlib_workspace ) |
331 | return -ENOMEM; | 324 | return -ENOMEM; |
332 | init_MUTEX(&zisofs_zlib_semaphore); | ||
333 | 325 | ||
334 | initialized = 1; | ||
335 | return 0; | 326 | return 0; |
336 | } | 327 | } |
337 | 328 | ||
338 | void zisofs_cleanup(void) | 329 | void zisofs_cleanup(void) |
339 | { | 330 | { |
340 | if ( !initialized ) { | ||
341 | printk("zisofs_cleanup: called without initialization\n"); | ||
342 | return; | ||
343 | } | ||
344 | |||
345 | vfree(zisofs_zlib_workspace); | 331 | vfree(zisofs_zlib_workspace); |
346 | initialized = 0; | ||
347 | } | 332 | } |
diff --git a/fs/isofs/inode.c b/fs/isofs/inode.c index 043b470fd3b6..aa359a2e4ce6 100644 --- a/fs/isofs/inode.c +++ b/fs/isofs/inode.c | |||
@@ -73,7 +73,7 @@ static void isofs_destroy_inode(struct inode *inode) | |||
73 | kmem_cache_free(isofs_inode_cachep, ISOFS_I(inode)); | 73 | kmem_cache_free(isofs_inode_cachep, ISOFS_I(inode)); |
74 | } | 74 | } |
75 | 75 | ||
76 | static void init_once(void *foo, struct kmem_cache *cachep, unsigned long flags) | 76 | static void init_once(struct kmem_cache *cachep, void *foo) |
77 | { | 77 | { |
78 | struct iso_inode_info *ei = foo; | 78 | struct iso_inode_info *ei = foo; |
79 | 79 | ||
diff --git a/fs/isofs/namei.c b/fs/isofs/namei.c index c8c7e5138a01..e2b4dad39ca9 100644 --- a/fs/isofs/namei.c +++ b/fs/isofs/namei.c | |||
@@ -158,7 +158,8 @@ isofs_find_entry(struct inode *dir, struct dentry *dentry, | |||
158 | struct dentry *isofs_lookup(struct inode *dir, struct dentry *dentry, struct nameidata *nd) | 158 | struct dentry *isofs_lookup(struct inode *dir, struct dentry *dentry, struct nameidata *nd) |
159 | { | 159 | { |
160 | int found; | 160 | int found; |
161 | unsigned long block, offset; | 161 | unsigned long uninitialized_var(block); |
162 | unsigned long uninitialized_var(offset); | ||
162 | struct inode *inode; | 163 | struct inode *inode; |
163 | struct page *page; | 164 | struct page *page; |
164 | 165 | ||
diff --git a/fs/jffs2/super.c b/fs/jffs2/super.c index be2b70c2ec16..ffa447511e6a 100644 --- a/fs/jffs2/super.c +++ b/fs/jffs2/super.c | |||
@@ -43,7 +43,7 @@ static void jffs2_destroy_inode(struct inode *inode) | |||
43 | kmem_cache_free(jffs2_inode_cachep, JFFS2_INODE_INFO(inode)); | 43 | kmem_cache_free(jffs2_inode_cachep, JFFS2_INODE_INFO(inode)); |
44 | } | 44 | } |
45 | 45 | ||
46 | static void jffs2_i_init_once(void * foo, struct kmem_cache * cachep, unsigned long flags) | 46 | static void jffs2_i_init_once(struct kmem_cache *cachep, void *foo) |
47 | { | 47 | { |
48 | struct jffs2_inode_info *ei = (struct jffs2_inode_info *) foo; | 48 | struct jffs2_inode_info *ei = (struct jffs2_inode_info *) foo; |
49 | 49 | ||
diff --git a/fs/jfs/jfs_metapage.c b/fs/jfs/jfs_metapage.c index 941369c1ac8d..f5cd8d38af7a 100644 --- a/fs/jfs/jfs_metapage.c +++ b/fs/jfs/jfs_metapage.c | |||
@@ -180,7 +180,7 @@ static inline void remove_metapage(struct page *page, struct metapage *mp) | |||
180 | 180 | ||
181 | #endif | 181 | #endif |
182 | 182 | ||
183 | static void init_once(void *foo, struct kmem_cache *cachep, unsigned long flags) | 183 | static void init_once(struct kmem_cache *cachep, void *foo) |
184 | { | 184 | { |
185 | struct metapage *mp = (struct metapage *)foo; | 185 | struct metapage *mp = (struct metapage *)foo; |
186 | 186 | ||
diff --git a/fs/jfs/jfs_txnmgr.c b/fs/jfs/jfs_txnmgr.c index 7aa1f7004eaf..e7c60ae6b5b2 100644 --- a/fs/jfs/jfs_txnmgr.c +++ b/fs/jfs/jfs_txnmgr.c | |||
@@ -1289,7 +1289,14 @@ int txCommit(tid_t tid, /* transaction identifier */ | |||
1289 | * commit the transaction synchronously, so the last iput | 1289 | * commit the transaction synchronously, so the last iput |
1290 | * will be done by the calling thread (or later) | 1290 | * will be done by the calling thread (or later) |
1291 | */ | 1291 | */ |
1292 | if (tblk->u.ip->i_state & I_LOCK) | 1292 | /* |
1293 | * I believe this code is no longer needed. Splitting I_LOCK | ||
1294 | * into two bits, I_LOCK and I_SYNC should prevent this | ||
1295 | * deadlock as well. But since I don't have a JFS testload | ||
1296 | * to verify this, only a trivial s/I_LOCK/I_SYNC/ was done. | ||
1297 | * Joern | ||
1298 | */ | ||
1299 | if (tblk->u.ip->i_state & I_SYNC) | ||
1293 | tblk->xflag &= ~COMMIT_LAZY; | 1300 | tblk->xflag &= ~COMMIT_LAZY; |
1294 | } | 1301 | } |
1295 | 1302 | ||
diff --git a/fs/jfs/super.c b/fs/jfs/super.c index 4b372f550652..cff60c171943 100644 --- a/fs/jfs/super.c +++ b/fs/jfs/super.c | |||
@@ -750,7 +750,7 @@ static struct file_system_type jfs_fs_type = { | |||
750 | .fs_flags = FS_REQUIRES_DEV, | 750 | .fs_flags = FS_REQUIRES_DEV, |
751 | }; | 751 | }; |
752 | 752 | ||
753 | static void init_once(void *foo, struct kmem_cache * cachep, unsigned long flags) | 753 | static void init_once(struct kmem_cache *cachep, void *foo) |
754 | { | 754 | { |
755 | struct jfs_inode_info *jfs_ip = (struct jfs_inode_info *) foo; | 755 | struct jfs_inode_info *jfs_ip = (struct jfs_inode_info *) foo; |
756 | 756 | ||
diff --git a/fs/libfs.c b/fs/libfs.c index f2b32d3a9093..ae51481e45e5 100644 --- a/fs/libfs.c +++ b/fs/libfs.c | |||
@@ -371,8 +371,8 @@ int simple_write_begin(struct file *file, struct address_space *mapping, | |||
371 | return simple_prepare_write(file, page, from, from+len); | 371 | return simple_prepare_write(file, page, from, from+len); |
372 | } | 372 | } |
373 | 373 | ||
374 | int simple_commit_write(struct file *file, struct page *page, | 374 | static int simple_commit_write(struct file *file, struct page *page, |
375 | unsigned from, unsigned to) | 375 | unsigned from, unsigned to) |
376 | { | 376 | { |
377 | struct inode *inode = page->mapping->host; | 377 | struct inode *inode = page->mapping->host; |
378 | loff_t pos = ((loff_t)page->index << PAGE_CACHE_SHIFT) + to; | 378 | loff_t pos = ((loff_t)page->index << PAGE_CACHE_SHIFT) + to; |
@@ -686,7 +686,6 @@ EXPORT_SYMBOL(generic_read_dir); | |||
686 | EXPORT_SYMBOL(get_sb_pseudo); | 686 | EXPORT_SYMBOL(get_sb_pseudo); |
687 | EXPORT_SYMBOL(simple_write_begin); | 687 | EXPORT_SYMBOL(simple_write_begin); |
688 | EXPORT_SYMBOL(simple_write_end); | 688 | EXPORT_SYMBOL(simple_write_end); |
689 | EXPORT_SYMBOL(simple_commit_write); | ||
690 | EXPORT_SYMBOL(simple_dir_inode_operations); | 689 | EXPORT_SYMBOL(simple_dir_inode_operations); |
691 | EXPORT_SYMBOL(simple_dir_operations); | 690 | EXPORT_SYMBOL(simple_dir_operations); |
692 | EXPORT_SYMBOL(simple_empty); | 691 | EXPORT_SYMBOL(simple_empty); |
diff --git a/fs/locks.c b/fs/locks.c index 7f9a3ea47418..0127a2846819 100644 --- a/fs/locks.c +++ b/fs/locks.c | |||
@@ -199,7 +199,7 @@ EXPORT_SYMBOL(locks_init_lock); | |||
199 | * Initialises the fields of the file lock which are invariant for | 199 | * Initialises the fields of the file lock which are invariant for |
200 | * free file_locks. | 200 | * free file_locks. |
201 | */ | 201 | */ |
202 | static void init_once(void *foo, struct kmem_cache *cache, unsigned long flags) | 202 | static void init_once(struct kmem_cache *cache, void *foo) |
203 | { | 203 | { |
204 | struct file_lock *lock = (struct file_lock *) foo; | 204 | struct file_lock *lock = (struct file_lock *) foo; |
205 | 205 | ||
diff --git a/fs/minix/bitmap.c b/fs/minix/bitmap.c index 99a12f127769..703cc35e04b9 100644 --- a/fs/minix/bitmap.c +++ b/fs/minix/bitmap.c | |||
@@ -17,7 +17,7 @@ | |||
17 | #include <linux/bitops.h> | 17 | #include <linux/bitops.h> |
18 | #include <linux/sched.h> | 18 | #include <linux/sched.h> |
19 | 19 | ||
20 | static int nibblemap[] = { 4,3,3,2,3,2,2,1,3,2,2,1,2,1,1,0 }; | 20 | static const int nibblemap[] = { 4,3,3,2,3,2,2,1,3,2,2,1,2,1,1,0 }; |
21 | 21 | ||
22 | static unsigned long count_free(struct buffer_head *map[], unsigned numblocks, __u32 numbits) | 22 | static unsigned long count_free(struct buffer_head *map[], unsigned numblocks, __u32 numbits) |
23 | { | 23 | { |
diff --git a/fs/minix/inode.c b/fs/minix/inode.c index f4f3343b1800..bf4cd316af81 100644 --- a/fs/minix/inode.c +++ b/fs/minix/inode.c | |||
@@ -69,7 +69,7 @@ static void minix_destroy_inode(struct inode *inode) | |||
69 | kmem_cache_free(minix_inode_cachep, minix_i(inode)); | 69 | kmem_cache_free(minix_inode_cachep, minix_i(inode)); |
70 | } | 70 | } |
71 | 71 | ||
72 | static void init_once(void * foo, struct kmem_cache * cachep, unsigned long flags) | 72 | static void init_once(struct kmem_cache * cachep, void *foo) |
73 | { | 73 | { |
74 | struct minix_inode_info *ei = (struct minix_inode_info *) foo; | 74 | struct minix_inode_info *ei = (struct minix_inode_info *) foo; |
75 | 75 | ||
diff --git a/fs/minix/itree_v1.c b/fs/minix/itree_v1.c index 1a5f3bf0bcec..82d6554b02fe 100644 --- a/fs/minix/itree_v1.c +++ b/fs/minix/itree_v1.c | |||
@@ -23,11 +23,16 @@ static inline block_t *i_data(struct inode *inode) | |||
23 | static int block_to_path(struct inode * inode, long block, int offsets[DEPTH]) | 23 | static int block_to_path(struct inode * inode, long block, int offsets[DEPTH]) |
24 | { | 24 | { |
25 | int n = 0; | 25 | int n = 0; |
26 | char b[BDEVNAME_SIZE]; | ||
26 | 27 | ||
27 | if (block < 0) { | 28 | if (block < 0) { |
28 | printk("minix_bmap: block<0\n"); | 29 | printk("MINIX-fs: block_to_path: block %ld < 0 on dev %s\n", |
30 | block, bdevname(inode->i_sb->s_bdev, b)); | ||
29 | } else if (block >= (minix_sb(inode->i_sb)->s_max_size/BLOCK_SIZE)) { | 31 | } else if (block >= (minix_sb(inode->i_sb)->s_max_size/BLOCK_SIZE)) { |
30 | printk("minix_bmap: block>big\n"); | 32 | if (printk_ratelimit()) |
33 | printk("MINIX-fs: block_to_path: " | ||
34 | "block %ld too big on dev %s\n", | ||
35 | block, bdevname(inode->i_sb->s_bdev, b)); | ||
31 | } else if (block < 7) { | 36 | } else if (block < 7) { |
32 | offsets[n++] = block; | 37 | offsets[n++] = block; |
33 | } else if ((block -= 7) < 512) { | 38 | } else if ((block -= 7) < 512) { |
diff --git a/fs/minix/itree_v2.c b/fs/minix/itree_v2.c index ad8f0dec4ef4..f23010969369 100644 --- a/fs/minix/itree_v2.c +++ b/fs/minix/itree_v2.c | |||
@@ -23,12 +23,17 @@ static inline block_t *i_data(struct inode *inode) | |||
23 | static int block_to_path(struct inode * inode, long block, int offsets[DEPTH]) | 23 | static int block_to_path(struct inode * inode, long block, int offsets[DEPTH]) |
24 | { | 24 | { |
25 | int n = 0; | 25 | int n = 0; |
26 | char b[BDEVNAME_SIZE]; | ||
26 | struct super_block *sb = inode->i_sb; | 27 | struct super_block *sb = inode->i_sb; |
27 | 28 | ||
28 | if (block < 0) { | 29 | if (block < 0) { |
29 | printk("minix_bmap: block<0\n"); | 30 | printk("MINIX-fs: block_to_path: block %ld < 0 on dev %s\n", |
31 | block, bdevname(sb->s_bdev, b)); | ||
30 | } else if (block >= (minix_sb(inode->i_sb)->s_max_size/sb->s_blocksize)) { | 32 | } else if (block >= (minix_sb(inode->i_sb)->s_max_size/sb->s_blocksize)) { |
31 | printk("minix_bmap: block>big\n"); | 33 | if (printk_ratelimit()) |
34 | printk("MINIX-fs: block_to_path: " | ||
35 | "block %ld too big on dev %s\n", | ||
36 | block, bdevname(sb->s_bdev, b)); | ||
32 | } else if (block < 7) { | 37 | } else if (block < 7) { |
33 | offsets[n++] = block; | 38 | offsets[n++] = block; |
34 | } else if ((block -= 7) < 256) { | 39 | } else if ((block -= 7) < 256) { |
diff --git a/fs/namei.c b/fs/namei.c index b40b8084eefc..464eeccb675b 100644 --- a/fs/namei.c +++ b/fs/namei.c | |||
@@ -30,7 +30,6 @@ | |||
30 | #include <linux/capability.h> | 30 | #include <linux/capability.h> |
31 | #include <linux/file.h> | 31 | #include <linux/file.h> |
32 | #include <linux/fcntl.h> | 32 | #include <linux/fcntl.h> |
33 | #include <linux/namei.h> | ||
34 | #include <asm/namei.h> | 33 | #include <asm/namei.h> |
35 | #include <asm/uaccess.h> | 34 | #include <asm/uaccess.h> |
36 | 35 | ||
@@ -228,10 +227,14 @@ int generic_permission(struct inode *inode, int mask, | |||
228 | 227 | ||
229 | int permission(struct inode *inode, int mask, struct nameidata *nd) | 228 | int permission(struct inode *inode, int mask, struct nameidata *nd) |
230 | { | 229 | { |
231 | umode_t mode = inode->i_mode; | ||
232 | int retval, submask; | 230 | int retval, submask; |
231 | struct vfsmount *mnt = NULL; | ||
232 | |||
233 | if (nd) | ||
234 | mnt = nd->mnt; | ||
233 | 235 | ||
234 | if (mask & MAY_WRITE) { | 236 | if (mask & MAY_WRITE) { |
237 | umode_t mode = inode->i_mode; | ||
235 | 238 | ||
236 | /* | 239 | /* |
237 | * Nobody gets write access to a read-only fs. | 240 | * Nobody gets write access to a read-only fs. |
@@ -247,22 +250,34 @@ int permission(struct inode *inode, int mask, struct nameidata *nd) | |||
247 | return -EACCES; | 250 | return -EACCES; |
248 | } | 251 | } |
249 | 252 | ||
250 | 253 | if ((mask & MAY_EXEC) && S_ISREG(inode->i_mode)) { | |
251 | /* | 254 | /* |
252 | * MAY_EXEC on regular files requires special handling: We override | 255 | * MAY_EXEC on regular files is denied if the fs is mounted |
253 | * filesystem execute permissions if the mode bits aren't set or | 256 | * with the "noexec" flag. |
254 | * the fs is mounted with the "noexec" flag. | 257 | */ |
255 | */ | 258 | if (mnt && (mnt->mnt_flags & MNT_NOEXEC)) |
256 | if ((mask & MAY_EXEC) && S_ISREG(mode) && (!(mode & S_IXUGO) || | 259 | return -EACCES; |
257 | (nd && nd->mnt && (nd->mnt->mnt_flags & MNT_NOEXEC)))) | 260 | } |
258 | return -EACCES; | ||
259 | 261 | ||
260 | /* Ordinary permission routines do not understand MAY_APPEND. */ | 262 | /* Ordinary permission routines do not understand MAY_APPEND. */ |
261 | submask = mask & ~MAY_APPEND; | 263 | submask = mask & ~MAY_APPEND; |
262 | if (inode->i_op && inode->i_op->permission) | 264 | if (inode->i_op && inode->i_op->permission) { |
263 | retval = inode->i_op->permission(inode, submask, nd); | 265 | retval = inode->i_op->permission(inode, submask, nd); |
264 | else | 266 | if (!retval) { |
267 | /* | ||
268 | * Exec permission on a regular file is denied if none | ||
269 | * of the execute bits are set. | ||
270 | * | ||
271 | * This check should be done by the ->permission() | ||
272 | * method. | ||
273 | */ | ||
274 | if ((mask & MAY_EXEC) && S_ISREG(inode->i_mode) && | ||
275 | !(inode->i_mode & S_IXUGO)) | ||
276 | return -EACCES; | ||
277 | } | ||
278 | } else { | ||
265 | retval = generic_permission(inode, submask, NULL); | 279 | retval = generic_permission(inode, submask, NULL); |
280 | } | ||
266 | if (retval) | 281 | if (retval) |
267 | return retval; | 282 | return retval; |
268 | 283 | ||
@@ -1273,7 +1288,8 @@ int __user_path_lookup_open(const char __user *name, unsigned int lookup_flags, | |||
1273 | return err; | 1288 | return err; |
1274 | } | 1289 | } |
1275 | 1290 | ||
1276 | static inline struct dentry *__lookup_hash_kern(struct qstr *name, struct dentry *base, struct nameidata *nd) | 1291 | static struct dentry *__lookup_hash(struct qstr *name, |
1292 | struct dentry *base, struct nameidata *nd) | ||
1277 | { | 1293 | { |
1278 | struct dentry *dentry; | 1294 | struct dentry *dentry; |
1279 | struct inode *inode; | 1295 | struct inode *inode; |
@@ -1313,31 +1329,18 @@ out: | |||
1313 | * needs parent already locked. Doesn't follow mounts. | 1329 | * needs parent already locked. Doesn't follow mounts. |
1314 | * SMP-safe. | 1330 | * SMP-safe. |
1315 | */ | 1331 | */ |
1316 | static inline struct dentry * __lookup_hash(struct qstr *name, struct dentry *base, struct nameidata *nd) | 1332 | static struct dentry *lookup_hash(struct nameidata *nd) |
1317 | { | 1333 | { |
1318 | struct dentry *dentry; | ||
1319 | struct inode *inode; | ||
1320 | int err; | 1334 | int err; |
1321 | 1335 | ||
1322 | inode = base->d_inode; | 1336 | err = permission(nd->dentry->d_inode, MAY_EXEC, nd); |
1323 | |||
1324 | err = permission(inode, MAY_EXEC, nd); | ||
1325 | dentry = ERR_PTR(err); | ||
1326 | if (err) | 1337 | if (err) |
1327 | goto out; | 1338 | return ERR_PTR(err); |
1328 | |||
1329 | dentry = __lookup_hash_kern(name, base, nd); | ||
1330 | out: | ||
1331 | return dentry; | ||
1332 | } | ||
1333 | |||
1334 | static struct dentry *lookup_hash(struct nameidata *nd) | ||
1335 | { | ||
1336 | return __lookup_hash(&nd->last, nd->dentry, nd); | 1339 | return __lookup_hash(&nd->last, nd->dentry, nd); |
1337 | } | 1340 | } |
1338 | 1341 | ||
1339 | /* SMP-safe */ | 1342 | static int __lookup_one_len(const char *name, struct qstr *this, |
1340 | static inline int __lookup_one_len(const char *name, struct qstr *this, struct dentry *base, int len) | 1343 | struct dentry *base, int len) |
1341 | { | 1344 | { |
1342 | unsigned long hash; | 1345 | unsigned long hash; |
1343 | unsigned int c; | 1346 | unsigned int c; |
@@ -1358,6 +1361,17 @@ static inline int __lookup_one_len(const char *name, struct qstr *this, struct d | |||
1358 | return 0; | 1361 | return 0; |
1359 | } | 1362 | } |
1360 | 1363 | ||
1364 | /** | ||
1365 | * lookup_one_len: filesystem helper to lookup single pathname component | ||
1366 | * @name: pathname component to lookup | ||
1367 | * @base: base directory to lookup from | ||
1368 | * @len: maximum length @len should be interpreted to | ||
1369 | * | ||
1370 | * Note that this routine is purely a helper for filesystem useage and should | ||
1371 | * not be called by generic code. Also note that by using this function to | ||
1372 | * nameidata argument is passed to the filesystem methods and a filesystem | ||
1373 | * using this helper needs to be prepared for that. | ||
1374 | */ | ||
1361 | struct dentry *lookup_one_len(const char *name, struct dentry *base, int len) | 1375 | struct dentry *lookup_one_len(const char *name, struct dentry *base, int len) |
1362 | { | 1376 | { |
1363 | int err; | 1377 | int err; |
@@ -1366,18 +1380,33 @@ struct dentry *lookup_one_len(const char *name, struct dentry *base, int len) | |||
1366 | err = __lookup_one_len(name, &this, base, len); | 1380 | err = __lookup_one_len(name, &this, base, len); |
1367 | if (err) | 1381 | if (err) |
1368 | return ERR_PTR(err); | 1382 | return ERR_PTR(err); |
1383 | |||
1384 | err = permission(base->d_inode, MAY_EXEC, NULL); | ||
1385 | if (err) | ||
1386 | return ERR_PTR(err); | ||
1369 | return __lookup_hash(&this, base, NULL); | 1387 | return __lookup_hash(&this, base, NULL); |
1370 | } | 1388 | } |
1371 | 1389 | ||
1372 | struct dentry *lookup_one_len_kern(const char *name, struct dentry *base, int len) | 1390 | /** |
1391 | * lookup_one_noperm - bad hack for sysfs | ||
1392 | * @name: pathname component to lookup | ||
1393 | * @base: base directory to lookup from | ||
1394 | * | ||
1395 | * This is a variant of lookup_one_len that doesn't perform any permission | ||
1396 | * checks. It's a horrible hack to work around the braindead sysfs | ||
1397 | * architecture and should not be used anywhere else. | ||
1398 | * | ||
1399 | * DON'T USE THIS FUNCTION EVER, thanks. | ||
1400 | */ | ||
1401 | struct dentry *lookup_one_noperm(const char *name, struct dentry *base) | ||
1373 | { | 1402 | { |
1374 | int err; | 1403 | int err; |
1375 | struct qstr this; | 1404 | struct qstr this; |
1376 | 1405 | ||
1377 | err = __lookup_one_len(name, &this, base, len); | 1406 | err = __lookup_one_len(name, &this, base, strlen(name)); |
1378 | if (err) | 1407 | if (err) |
1379 | return ERR_PTR(err); | 1408 | return ERR_PTR(err); |
1380 | return __lookup_hash_kern(&this, base, NULL); | 1409 | return __lookup_hash(&this, base, NULL); |
1381 | } | 1410 | } |
1382 | 1411 | ||
1383 | int fastcall __user_walk_fd(int dfd, const char __user *name, unsigned flags, | 1412 | int fastcall __user_walk_fd(int dfd, const char __user *name, unsigned flags, |
@@ -1579,10 +1608,6 @@ int may_open(struct nameidata *nd, int acc_mode, int flag) | |||
1579 | if (S_ISDIR(inode->i_mode) && (flag & FMODE_WRITE)) | 1608 | if (S_ISDIR(inode->i_mode) && (flag & FMODE_WRITE)) |
1580 | return -EISDIR; | 1609 | return -EISDIR; |
1581 | 1610 | ||
1582 | error = vfs_permission(nd, acc_mode); | ||
1583 | if (error) | ||
1584 | return error; | ||
1585 | |||
1586 | /* | 1611 | /* |
1587 | * FIFO's, sockets and device files are special: they don't | 1612 | * FIFO's, sockets and device files are special: they don't |
1588 | * actually live on the filesystem itself, and as such you | 1613 | * actually live on the filesystem itself, and as such you |
@@ -1597,6 +1622,10 @@ int may_open(struct nameidata *nd, int acc_mode, int flag) | |||
1597 | flag &= ~O_TRUNC; | 1622 | flag &= ~O_TRUNC; |
1598 | } else if (IS_RDONLY(inode) && (flag & FMODE_WRITE)) | 1623 | } else if (IS_RDONLY(inode) && (flag & FMODE_WRITE)) |
1599 | return -EROFS; | 1624 | return -EROFS; |
1625 | |||
1626 | error = vfs_permission(nd, acc_mode); | ||
1627 | if (error) | ||
1628 | return error; | ||
1600 | /* | 1629 | /* |
1601 | * An append-only file must be opened in append mode for writing. | 1630 | * An append-only file must be opened in append mode for writing. |
1602 | */ | 1631 | */ |
diff --git a/fs/namespace.c b/fs/namespace.c index ddbda13c2d31..07daa7972591 100644 --- a/fs/namespace.c +++ b/fs/namespace.c | |||
@@ -1791,7 +1791,7 @@ static void __init init_mount_tree(void) | |||
1791 | set_fs_root(current->fs, ns->root, ns->root->mnt_root); | 1791 | set_fs_root(current->fs, ns->root, ns->root->mnt_root); |
1792 | } | 1792 | } |
1793 | 1793 | ||
1794 | void __init mnt_init(unsigned long mempages) | 1794 | void __init mnt_init(void) |
1795 | { | 1795 | { |
1796 | struct list_head *d; | 1796 | struct list_head *d; |
1797 | unsigned int nr_hash; | 1797 | unsigned int nr_hash; |
diff --git a/fs/ncpfs/inode.c b/fs/ncpfs/inode.c index 7f8536dbdedc..e1cb70c643f8 100644 --- a/fs/ncpfs/inode.c +++ b/fs/ncpfs/inode.c | |||
@@ -56,7 +56,7 @@ static void ncp_destroy_inode(struct inode *inode) | |||
56 | kmem_cache_free(ncp_inode_cachep, NCP_FINFO(inode)); | 56 | kmem_cache_free(ncp_inode_cachep, NCP_FINFO(inode)); |
57 | } | 57 | } |
58 | 58 | ||
59 | static void init_once(void * foo, struct kmem_cache * cachep, unsigned long flags) | 59 | static void init_once(struct kmem_cache *cachep, void *foo) |
60 | { | 60 | { |
61 | struct ncp_inode_info *ei = (struct ncp_inode_info *) foo; | 61 | struct ncp_inode_info *ei = (struct ncp_inode_info *) foo; |
62 | 62 | ||
diff --git a/fs/nfs/client.c b/fs/nfs/client.c index a532ee12740a..70587f383f10 100644 --- a/fs/nfs/client.c +++ b/fs/nfs/client.c | |||
@@ -627,6 +627,7 @@ static void nfs_server_set_fsinfo(struct nfs_server *server, struct nfs_fsinfo * | |||
627 | if (server->rsize > NFS_MAX_FILE_IO_SIZE) | 627 | if (server->rsize > NFS_MAX_FILE_IO_SIZE) |
628 | server->rsize = NFS_MAX_FILE_IO_SIZE; | 628 | server->rsize = NFS_MAX_FILE_IO_SIZE; |
629 | server->rpages = (server->rsize + PAGE_CACHE_SIZE - 1) >> PAGE_CACHE_SHIFT; | 629 | server->rpages = (server->rsize + PAGE_CACHE_SIZE - 1) >> PAGE_CACHE_SHIFT; |
630 | |||
630 | server->backing_dev_info.ra_pages = server->rpages * NFS_MAX_READAHEAD; | 631 | server->backing_dev_info.ra_pages = server->rpages * NFS_MAX_READAHEAD; |
631 | 632 | ||
632 | if (server->wsize > max_rpc_payload) | 633 | if (server->wsize > max_rpc_payload) |
@@ -677,6 +678,10 @@ static int nfs_probe_fsinfo(struct nfs_server *server, struct nfs_fh *mntfh, str | |||
677 | goto out_error; | 678 | goto out_error; |
678 | 679 | ||
679 | nfs_server_set_fsinfo(server, &fsinfo); | 680 | nfs_server_set_fsinfo(server, &fsinfo); |
681 | error = bdi_init(&server->backing_dev_info); | ||
682 | if (error) | ||
683 | goto out_error; | ||
684 | |||
680 | 685 | ||
681 | /* Get some general file system info */ | 686 | /* Get some general file system info */ |
682 | if (server->namelen == 0) { | 687 | if (server->namelen == 0) { |
@@ -756,6 +761,7 @@ void nfs_free_server(struct nfs_server *server) | |||
756 | nfs_put_client(server->nfs_client); | 761 | nfs_put_client(server->nfs_client); |
757 | 762 | ||
758 | nfs_free_iostats(server->io_stats); | 763 | nfs_free_iostats(server->io_stats); |
764 | bdi_destroy(&server->backing_dev_info); | ||
759 | kfree(server); | 765 | kfree(server); |
760 | nfs_release_automount_timer(); | 766 | nfs_release_automount_timer(); |
761 | dprintk("<-- nfs_free_server()\n"); | 767 | dprintk("<-- nfs_free_server()\n"); |
diff --git a/fs/nfs/inode.c b/fs/nfs/inode.c index 035c769b715e..6c22453d77ae 100644 --- a/fs/nfs/inode.c +++ b/fs/nfs/inode.c | |||
@@ -1154,7 +1154,7 @@ static inline void nfs4_init_once(struct nfs_inode *nfsi) | |||
1154 | #endif | 1154 | #endif |
1155 | } | 1155 | } |
1156 | 1156 | ||
1157 | static void init_once(void * foo, struct kmem_cache * cachep, unsigned long flags) | 1157 | static void init_once(struct kmem_cache * cachep, void *foo) |
1158 | { | 1158 | { |
1159 | struct nfs_inode *nfsi = (struct nfs_inode *) foo; | 1159 | struct nfs_inode *nfsi = (struct nfs_inode *) foo; |
1160 | 1160 | ||
diff --git a/fs/nfs/write.c b/fs/nfs/write.c index e2bb66c34406..0cf9d1cd9bd2 100644 --- a/fs/nfs/write.c +++ b/fs/nfs/write.c | |||
@@ -242,10 +242,8 @@ static void nfs_end_page_writeback(struct page *page) | |||
242 | struct nfs_server *nfss = NFS_SERVER(inode); | 242 | struct nfs_server *nfss = NFS_SERVER(inode); |
243 | 243 | ||
244 | end_page_writeback(page); | 244 | end_page_writeback(page); |
245 | if (atomic_long_dec_return(&nfss->writeback) < NFS_CONGESTION_OFF_THRESH) { | 245 | if (atomic_long_dec_return(&nfss->writeback) < NFS_CONGESTION_OFF_THRESH) |
246 | clear_bdi_congested(&nfss->backing_dev_info, WRITE); | 246 | clear_bdi_congested(&nfss->backing_dev_info, WRITE); |
247 | congestion_end(WRITE); | ||
248 | } | ||
249 | } | 247 | } |
250 | 248 | ||
251 | /* | 249 | /* |
@@ -449,6 +447,7 @@ nfs_mark_request_commit(struct nfs_page *req) | |||
449 | NFS_PAGE_TAG_COMMIT); | 447 | NFS_PAGE_TAG_COMMIT); |
450 | spin_unlock(&inode->i_lock); | 448 | spin_unlock(&inode->i_lock); |
451 | inc_zone_page_state(req->wb_page, NR_UNSTABLE_NFS); | 449 | inc_zone_page_state(req->wb_page, NR_UNSTABLE_NFS); |
450 | inc_bdi_stat(req->wb_page->mapping->backing_dev_info, BDI_RECLAIMABLE); | ||
452 | __mark_inode_dirty(inode, I_DIRTY_DATASYNC); | 451 | __mark_inode_dirty(inode, I_DIRTY_DATASYNC); |
453 | } | 452 | } |
454 | 453 | ||
@@ -535,6 +534,8 @@ static void nfs_cancel_commit_list(struct list_head *head) | |||
535 | while(!list_empty(head)) { | 534 | while(!list_empty(head)) { |
536 | req = nfs_list_entry(head->next); | 535 | req = nfs_list_entry(head->next); |
537 | dec_zone_page_state(req->wb_page, NR_UNSTABLE_NFS); | 536 | dec_zone_page_state(req->wb_page, NR_UNSTABLE_NFS); |
537 | dec_bdi_stat(req->wb_page->mapping->backing_dev_info, | ||
538 | BDI_RECLAIMABLE); | ||
538 | nfs_list_remove_request(req); | 539 | nfs_list_remove_request(req); |
539 | clear_bit(PG_NEED_COMMIT, &(req)->wb_flags); | 540 | clear_bit(PG_NEED_COMMIT, &(req)->wb_flags); |
540 | nfs_inode_remove_request(req); | 541 | nfs_inode_remove_request(req); |
@@ -1195,6 +1196,8 @@ nfs_commit_list(struct inode *inode, struct list_head *head, int how) | |||
1195 | nfs_list_remove_request(req); | 1196 | nfs_list_remove_request(req); |
1196 | nfs_mark_request_commit(req); | 1197 | nfs_mark_request_commit(req); |
1197 | dec_zone_page_state(req->wb_page, NR_UNSTABLE_NFS); | 1198 | dec_zone_page_state(req->wb_page, NR_UNSTABLE_NFS); |
1199 | dec_bdi_stat(req->wb_page->mapping->backing_dev_info, | ||
1200 | BDI_RECLAIMABLE); | ||
1198 | nfs_clear_page_tag_locked(req); | 1201 | nfs_clear_page_tag_locked(req); |
1199 | } | 1202 | } |
1200 | return -ENOMEM; | 1203 | return -ENOMEM; |
@@ -1220,6 +1223,8 @@ static void nfs_commit_done(struct rpc_task *task, void *calldata) | |||
1220 | nfs_list_remove_request(req); | 1223 | nfs_list_remove_request(req); |
1221 | clear_bit(PG_NEED_COMMIT, &(req)->wb_flags); | 1224 | clear_bit(PG_NEED_COMMIT, &(req)->wb_flags); |
1222 | dec_zone_page_state(req->wb_page, NR_UNSTABLE_NFS); | 1225 | dec_zone_page_state(req->wb_page, NR_UNSTABLE_NFS); |
1226 | dec_bdi_stat(req->wb_page->mapping->backing_dev_info, | ||
1227 | BDI_RECLAIMABLE); | ||
1223 | 1228 | ||
1224 | dprintk("NFS: commit (%s/%Ld %d@%Ld)", | 1229 | dprintk("NFS: commit (%s/%Ld %d@%Ld)", |
1225 | req->wb_context->path.dentry->d_inode->i_sb->s_id, | 1230 | req->wb_context->path.dentry->d_inode->i_sb->s_id, |
diff --git a/fs/nfsd/vfs.c b/fs/nfsd/vfs.c index 2a8d665b134b..819545d21670 100644 --- a/fs/nfsd/vfs.c +++ b/fs/nfsd/vfs.c | |||
@@ -368,7 +368,7 @@ nfsd_setattr(struct svc_rqst *rqstp, struct svc_fh *fhp, struct iattr *iap, | |||
368 | 368 | ||
369 | /* Revoke setuid/setgid bit on chown/chgrp */ | 369 | /* Revoke setuid/setgid bit on chown/chgrp */ |
370 | if ((iap->ia_valid & ATTR_UID) && iap->ia_uid != inode->i_uid) | 370 | if ((iap->ia_valid & ATTR_UID) && iap->ia_uid != inode->i_uid) |
371 | iap->ia_valid |= ATTR_KILL_SUID; | 371 | iap->ia_valid |= ATTR_KILL_SUID | ATTR_KILL_PRIV; |
372 | if ((iap->ia_valid & ATTR_GID) && iap->ia_gid != inode->i_gid) | 372 | if ((iap->ia_valid & ATTR_GID) && iap->ia_gid != inode->i_gid) |
373 | iap->ia_valid |= ATTR_KILL_SGID; | 373 | iap->ia_valid |= ATTR_KILL_SGID; |
374 | 374 | ||
@@ -865,6 +865,15 @@ static int nfsd_direct_splice_actor(struct pipe_inode_info *pipe, | |||
865 | return __splice_from_pipe(pipe, sd, nfsd_splice_actor); | 865 | return __splice_from_pipe(pipe, sd, nfsd_splice_actor); |
866 | } | 866 | } |
867 | 867 | ||
868 | static inline int svc_msnfs(struct svc_fh *ffhp) | ||
869 | { | ||
870 | #ifdef MSNFS | ||
871 | return (ffhp->fh_export->ex_flags & NFSEXP_MSNFS); | ||
872 | #else | ||
873 | return 0; | ||
874 | #endif | ||
875 | } | ||
876 | |||
868 | static __be32 | 877 | static __be32 |
869 | nfsd_vfs_read(struct svc_rqst *rqstp, struct svc_fh *fhp, struct file *file, | 878 | nfsd_vfs_read(struct svc_rqst *rqstp, struct svc_fh *fhp, struct file *file, |
870 | loff_t offset, struct kvec *vec, int vlen, unsigned long *count) | 879 | loff_t offset, struct kvec *vec, int vlen, unsigned long *count) |
@@ -877,11 +886,9 @@ nfsd_vfs_read(struct svc_rqst *rqstp, struct svc_fh *fhp, struct file *file, | |||
877 | 886 | ||
878 | err = nfserr_perm; | 887 | err = nfserr_perm; |
879 | inode = file->f_path.dentry->d_inode; | 888 | inode = file->f_path.dentry->d_inode; |
880 | #ifdef MSNFS | 889 | |
881 | if ((fhp->fh_export->ex_flags & NFSEXP_MSNFS) && | 890 | if (svc_msnfs(fhp) && !lock_may_read(inode, offset, *count)) |
882 | (!lock_may_read(inode, offset, *count))) | ||
883 | goto out; | 891 | goto out; |
884 | #endif | ||
885 | 892 | ||
886 | /* Get readahead parameters */ | 893 | /* Get readahead parameters */ |
887 | ra = nfsd_get_raparms(inode->i_sb->s_dev, inode->i_ino); | 894 | ra = nfsd_get_raparms(inode->i_sb->s_dev, inode->i_ino); |
@@ -930,7 +937,7 @@ out: | |||
930 | static void kill_suid(struct dentry *dentry) | 937 | static void kill_suid(struct dentry *dentry) |
931 | { | 938 | { |
932 | struct iattr ia; | 939 | struct iattr ia; |
933 | ia.ia_valid = ATTR_KILL_SUID | ATTR_KILL_SGID; | 940 | ia.ia_valid = ATTR_KILL_SUID | ATTR_KILL_SGID | ATTR_KILL_PRIV; |
934 | 941 | ||
935 | mutex_lock(&dentry->d_inode->i_mutex); | 942 | mutex_lock(&dentry->d_inode->i_mutex); |
936 | notify_change(dentry, &ia); | 943 | notify_change(dentry, &ia); |
diff --git a/fs/nls/Kconfig b/fs/nls/Kconfig index 976ecccd6f56..a39edc41becc 100644 --- a/fs/nls/Kconfig +++ b/fs/nls/Kconfig | |||
@@ -2,10 +2,8 @@ | |||
2 | # Native language support configuration | 2 | # Native language support configuration |
3 | # | 3 | # |
4 | 4 | ||
5 | menu "Native Language Support" | 5 | menuconfig NLS |
6 | 6 | tristate "Native language support" | |
7 | config NLS | ||
8 | tristate "Base native language support" | ||
9 | ---help--- | 7 | ---help--- |
10 | The base Native Language Support. A number of filesystems | 8 | The base Native Language Support. A number of filesystems |
11 | depend on it (e.g. FAT, JOLIET, NT, BEOS filesystems), as well | 9 | depend on it (e.g. FAT, JOLIET, NT, BEOS filesystems), as well |
@@ -17,9 +15,10 @@ config NLS | |||
17 | To compile this code as a module, choose M here: the module | 15 | To compile this code as a module, choose M here: the module |
18 | will be called nls_base. | 16 | will be called nls_base. |
19 | 17 | ||
18 | if NLS | ||
19 | |||
20 | config NLS_DEFAULT | 20 | config NLS_DEFAULT |
21 | string "Default NLS Option" | 21 | string "Default NLS Option" |
22 | depends on NLS | ||
23 | default "iso8859-1" | 22 | default "iso8859-1" |
24 | ---help--- | 23 | ---help--- |
25 | The default NLS used when mounting file system. Note, that this is | 24 | The default NLS used when mounting file system. Note, that this is |
@@ -39,7 +38,6 @@ config NLS_DEFAULT | |||
39 | 38 | ||
40 | config NLS_CODEPAGE_437 | 39 | config NLS_CODEPAGE_437 |
41 | tristate "Codepage 437 (United States, Canada)" | 40 | tristate "Codepage 437 (United States, Canada)" |
42 | depends on NLS | ||
43 | help | 41 | help |
44 | The Microsoft FAT file system family can deal with filenames in | 42 | The Microsoft FAT file system family can deal with filenames in |
45 | native language character sets. These character sets are stored | 43 | native language character sets. These character sets are stored |
@@ -52,7 +50,6 @@ config NLS_CODEPAGE_437 | |||
52 | 50 | ||
53 | config NLS_CODEPAGE_737 | 51 | config NLS_CODEPAGE_737 |
54 | tristate "Codepage 737 (Greek)" | 52 | tristate "Codepage 737 (Greek)" |
55 | depends on NLS | ||
56 | help | 53 | help |
57 | The Microsoft FAT file system family can deal with filenames in | 54 | The Microsoft FAT file system family can deal with filenames in |
58 | native language character sets. These character sets are stored | 55 | native language character sets. These character sets are stored |
@@ -65,7 +62,6 @@ config NLS_CODEPAGE_737 | |||
65 | 62 | ||
66 | config NLS_CODEPAGE_775 | 63 | config NLS_CODEPAGE_775 |
67 | tristate "Codepage 775 (Baltic Rim)" | 64 | tristate "Codepage 775 (Baltic Rim)" |
68 | depends on NLS | ||
69 | help | 65 | help |
70 | The Microsoft FAT file system family can deal with filenames in | 66 | The Microsoft FAT file system family can deal with filenames in |
71 | native language character sets. These character sets are stored | 67 | native language character sets. These character sets are stored |
@@ -79,7 +75,6 @@ config NLS_CODEPAGE_775 | |||
79 | 75 | ||
80 | config NLS_CODEPAGE_850 | 76 | config NLS_CODEPAGE_850 |
81 | tristate "Codepage 850 (Europe)" | 77 | tristate "Codepage 850 (Europe)" |
82 | depends on NLS | ||
83 | ---help--- | 78 | ---help--- |
84 | The Microsoft FAT file system family can deal with filenames in | 79 | The Microsoft FAT file system family can deal with filenames in |
85 | native language character sets. These character sets are stored in | 80 | native language character sets. These character sets are stored in |
@@ -96,7 +91,6 @@ config NLS_CODEPAGE_850 | |||
96 | 91 | ||
97 | config NLS_CODEPAGE_852 | 92 | config NLS_CODEPAGE_852 |
98 | tristate "Codepage 852 (Central/Eastern Europe)" | 93 | tristate "Codepage 852 (Central/Eastern Europe)" |
99 | depends on NLS | ||
100 | ---help--- | 94 | ---help--- |
101 | The Microsoft FAT file system family can deal with filenames in | 95 | The Microsoft FAT file system family can deal with filenames in |
102 | native language character sets. These character sets are stored in | 96 | native language character sets. These character sets are stored in |
@@ -112,7 +106,6 @@ config NLS_CODEPAGE_852 | |||
112 | 106 | ||
113 | config NLS_CODEPAGE_855 | 107 | config NLS_CODEPAGE_855 |
114 | tristate "Codepage 855 (Cyrillic)" | 108 | tristate "Codepage 855 (Cyrillic)" |
115 | depends on NLS | ||
116 | help | 109 | help |
117 | The Microsoft FAT file system family can deal with filenames in | 110 | The Microsoft FAT file system family can deal with filenames in |
118 | native language character sets. These character sets are stored in | 111 | native language character sets. These character sets are stored in |
@@ -124,7 +117,6 @@ config NLS_CODEPAGE_855 | |||
124 | 117 | ||
125 | config NLS_CODEPAGE_857 | 118 | config NLS_CODEPAGE_857 |
126 | tristate "Codepage 857 (Turkish)" | 119 | tristate "Codepage 857 (Turkish)" |
127 | depends on NLS | ||
128 | help | 120 | help |
129 | The Microsoft FAT file system family can deal with filenames in | 121 | The Microsoft FAT file system family can deal with filenames in |
130 | native language character sets. These character sets are stored in | 122 | native language character sets. These character sets are stored in |
@@ -136,7 +128,6 @@ config NLS_CODEPAGE_857 | |||
136 | 128 | ||
137 | config NLS_CODEPAGE_860 | 129 | config NLS_CODEPAGE_860 |
138 | tristate "Codepage 860 (Portuguese)" | 130 | tristate "Codepage 860 (Portuguese)" |
139 | depends on NLS | ||
140 | help | 131 | help |
141 | The Microsoft FAT file system family can deal with filenames in | 132 | The Microsoft FAT file system family can deal with filenames in |
142 | native language character sets. These character sets are stored in | 133 | native language character sets. These character sets are stored in |
@@ -148,7 +139,6 @@ config NLS_CODEPAGE_860 | |||
148 | 139 | ||
149 | config NLS_CODEPAGE_861 | 140 | config NLS_CODEPAGE_861 |
150 | tristate "Codepage 861 (Icelandic)" | 141 | tristate "Codepage 861 (Icelandic)" |
151 | depends on NLS | ||
152 | help | 142 | help |
153 | The Microsoft FAT file system family can deal with filenames in | 143 | The Microsoft FAT file system family can deal with filenames in |
154 | native language character sets. These character sets are stored in | 144 | native language character sets. These character sets are stored in |
@@ -160,7 +150,6 @@ config NLS_CODEPAGE_861 | |||
160 | 150 | ||
161 | config NLS_CODEPAGE_862 | 151 | config NLS_CODEPAGE_862 |
162 | tristate "Codepage 862 (Hebrew)" | 152 | tristate "Codepage 862 (Hebrew)" |
163 | depends on NLS | ||
164 | help | 153 | help |
165 | The Microsoft FAT file system family can deal with filenames in | 154 | The Microsoft FAT file system family can deal with filenames in |
166 | native language character sets. These character sets are stored in | 155 | native language character sets. These character sets are stored in |
@@ -172,7 +161,6 @@ config NLS_CODEPAGE_862 | |||
172 | 161 | ||
173 | config NLS_CODEPAGE_863 | 162 | config NLS_CODEPAGE_863 |
174 | tristate "Codepage 863 (Canadian French)" | 163 | tristate "Codepage 863 (Canadian French)" |
175 | depends on NLS | ||
176 | help | 164 | help |
177 | The Microsoft FAT file system family can deal with filenames in | 165 | The Microsoft FAT file system family can deal with filenames in |
178 | native language character sets. These character sets are stored in | 166 | native language character sets. These character sets are stored in |
@@ -185,7 +173,6 @@ config NLS_CODEPAGE_863 | |||
185 | 173 | ||
186 | config NLS_CODEPAGE_864 | 174 | config NLS_CODEPAGE_864 |
187 | tristate "Codepage 864 (Arabic)" | 175 | tristate "Codepage 864 (Arabic)" |
188 | depends on NLS | ||
189 | help | 176 | help |
190 | The Microsoft FAT file system family can deal with filenames in | 177 | The Microsoft FAT file system family can deal with filenames in |
191 | native language character sets. These character sets are stored in | 178 | native language character sets. These character sets are stored in |
@@ -197,7 +184,6 @@ config NLS_CODEPAGE_864 | |||
197 | 184 | ||
198 | config NLS_CODEPAGE_865 | 185 | config NLS_CODEPAGE_865 |
199 | tristate "Codepage 865 (Norwegian, Danish)" | 186 | tristate "Codepage 865 (Norwegian, Danish)" |
200 | depends on NLS | ||
201 | help | 187 | help |
202 | The Microsoft FAT file system family can deal with filenames in | 188 | The Microsoft FAT file system family can deal with filenames in |
203 | native language character sets. These character sets are stored in | 189 | native language character sets. These character sets are stored in |
@@ -210,7 +196,6 @@ config NLS_CODEPAGE_865 | |||
210 | 196 | ||
211 | config NLS_CODEPAGE_866 | 197 | config NLS_CODEPAGE_866 |
212 | tristate "Codepage 866 (Cyrillic/Russian)" | 198 | tristate "Codepage 866 (Cyrillic/Russian)" |
213 | depends on NLS | ||
214 | help | 199 | help |
215 | The Microsoft FAT file system family can deal with filenames in | 200 | The Microsoft FAT file system family can deal with filenames in |
216 | native language character sets. These character sets are stored in | 201 | native language character sets. These character sets are stored in |
@@ -223,7 +208,6 @@ config NLS_CODEPAGE_866 | |||
223 | 208 | ||
224 | config NLS_CODEPAGE_869 | 209 | config NLS_CODEPAGE_869 |
225 | tristate "Codepage 869 (Greek)" | 210 | tristate "Codepage 869 (Greek)" |
226 | depends on NLS | ||
227 | help | 211 | help |
228 | The Microsoft FAT file system family can deal with filenames in | 212 | The Microsoft FAT file system family can deal with filenames in |
229 | native language character sets. These character sets are stored in | 213 | native language character sets. These character sets are stored in |
@@ -235,7 +219,6 @@ config NLS_CODEPAGE_869 | |||
235 | 219 | ||
236 | config NLS_CODEPAGE_936 | 220 | config NLS_CODEPAGE_936 |
237 | tristate "Simplified Chinese charset (CP936, GB2312)" | 221 | tristate "Simplified Chinese charset (CP936, GB2312)" |
238 | depends on NLS | ||
239 | help | 222 | help |
240 | The Microsoft FAT file system family can deal with filenames in | 223 | The Microsoft FAT file system family can deal with filenames in |
241 | native language character sets. These character sets are stored in | 224 | native language character sets. These character sets are stored in |
@@ -248,7 +231,6 @@ config NLS_CODEPAGE_936 | |||
248 | 231 | ||
249 | config NLS_CODEPAGE_950 | 232 | config NLS_CODEPAGE_950 |
250 | tristate "Traditional Chinese charset (Big5)" | 233 | tristate "Traditional Chinese charset (Big5)" |
251 | depends on NLS | ||
252 | help | 234 | help |
253 | The Microsoft FAT file system family can deal with filenames in | 235 | The Microsoft FAT file system family can deal with filenames in |
254 | native language character sets. These character sets are stored in | 236 | native language character sets. These character sets are stored in |
@@ -261,7 +243,6 @@ config NLS_CODEPAGE_950 | |||
261 | 243 | ||
262 | config NLS_CODEPAGE_932 | 244 | config NLS_CODEPAGE_932 |
263 | tristate "Japanese charsets (Shift-JIS, EUC-JP)" | 245 | tristate "Japanese charsets (Shift-JIS, EUC-JP)" |
264 | depends on NLS | ||
265 | help | 246 | help |
266 | The Microsoft FAT file system family can deal with filenames in | 247 | The Microsoft FAT file system family can deal with filenames in |
267 | native language character sets. These character sets are stored in | 248 | native language character sets. These character sets are stored in |
@@ -275,7 +256,6 @@ config NLS_CODEPAGE_932 | |||
275 | 256 | ||
276 | config NLS_CODEPAGE_949 | 257 | config NLS_CODEPAGE_949 |
277 | tristate "Korean charset (CP949, EUC-KR)" | 258 | tristate "Korean charset (CP949, EUC-KR)" |
278 | depends on NLS | ||
279 | help | 259 | help |
280 | The Microsoft FAT file system family can deal with filenames in | 260 | The Microsoft FAT file system family can deal with filenames in |
281 | native language character sets. These character sets are stored in | 261 | native language character sets. These character sets are stored in |
@@ -287,7 +267,6 @@ config NLS_CODEPAGE_949 | |||
287 | 267 | ||
288 | config NLS_CODEPAGE_874 | 268 | config NLS_CODEPAGE_874 |
289 | tristate "Thai charset (CP874, TIS-620)" | 269 | tristate "Thai charset (CP874, TIS-620)" |
290 | depends on NLS | ||
291 | help | 270 | help |
292 | The Microsoft FAT file system family can deal with filenames in | 271 | The Microsoft FAT file system family can deal with filenames in |
293 | native language character sets. These character sets are stored in | 272 | native language character sets. These character sets are stored in |
@@ -299,7 +278,6 @@ config NLS_CODEPAGE_874 | |||
299 | 278 | ||
300 | config NLS_ISO8859_8 | 279 | config NLS_ISO8859_8 |
301 | tristate "Hebrew charsets (ISO-8859-8, CP1255)" | 280 | tristate "Hebrew charsets (ISO-8859-8, CP1255)" |
302 | depends on NLS | ||
303 | help | 281 | help |
304 | If you want to display filenames with native language characters | 282 | If you want to display filenames with native language characters |
305 | from the Microsoft FAT file system family or from JOLIET CD-ROMs | 283 | from the Microsoft FAT file system family or from JOLIET CD-ROMs |
@@ -309,7 +287,6 @@ config NLS_ISO8859_8 | |||
309 | 287 | ||
310 | config NLS_CODEPAGE_1250 | 288 | config NLS_CODEPAGE_1250 |
311 | tristate "Windows CP1250 (Slavic/Central European Languages)" | 289 | tristate "Windows CP1250 (Slavic/Central European Languages)" |
312 | depends on NLS | ||
313 | help | 290 | help |
314 | If you want to display filenames with native language characters | 291 | If you want to display filenames with native language characters |
315 | from the Microsoft FAT file system family or from JOLIET CDROMs | 292 | from the Microsoft FAT file system family or from JOLIET CDROMs |
@@ -321,7 +298,6 @@ config NLS_CODEPAGE_1250 | |||
321 | 298 | ||
322 | config NLS_CODEPAGE_1251 | 299 | config NLS_CODEPAGE_1251 |
323 | tristate "Windows CP1251 (Bulgarian, Belarusian)" | 300 | tristate "Windows CP1251 (Bulgarian, Belarusian)" |
324 | depends on NLS | ||
325 | help | 301 | help |
326 | The Microsoft FAT file system family can deal with filenames in | 302 | The Microsoft FAT file system family can deal with filenames in |
327 | native language character sets. These character sets are stored in | 303 | native language character sets. These character sets are stored in |
@@ -334,7 +310,6 @@ config NLS_CODEPAGE_1251 | |||
334 | 310 | ||
335 | config NLS_ASCII | 311 | config NLS_ASCII |
336 | tristate "ASCII (United States)" | 312 | tristate "ASCII (United States)" |
337 | depends on NLS | ||
338 | help | 313 | help |
339 | An ASCII NLS module is needed if you want to override the | 314 | An ASCII NLS module is needed if you want to override the |
340 | DEFAULT NLS with this very basic charset and don't want any | 315 | DEFAULT NLS with this very basic charset and don't want any |
@@ -342,7 +317,6 @@ config NLS_ASCII | |||
342 | 317 | ||
343 | config NLS_ISO8859_1 | 318 | config NLS_ISO8859_1 |
344 | tristate "NLS ISO 8859-1 (Latin 1; Western European Languages)" | 319 | tristate "NLS ISO 8859-1 (Latin 1; Western European Languages)" |
345 | depends on NLS | ||
346 | help | 320 | help |
347 | If you want to display filenames with native language characters | 321 | If you want to display filenames with native language characters |
348 | from the Microsoft FAT file system family or from JOLIET CD-ROMs | 322 | from the Microsoft FAT file system family or from JOLIET CD-ROMs |
@@ -355,7 +329,6 @@ config NLS_ISO8859_1 | |||
355 | 329 | ||
356 | config NLS_ISO8859_2 | 330 | config NLS_ISO8859_2 |
357 | tristate "NLS ISO 8859-2 (Latin 2; Slavic/Central European Languages)" | 331 | tristate "NLS ISO 8859-2 (Latin 2; Slavic/Central European Languages)" |
358 | depends on NLS | ||
359 | help | 332 | help |
360 | If you want to display filenames with native language characters | 333 | If you want to display filenames with native language characters |
361 | from the Microsoft FAT file system family or from JOLIET CD-ROMs | 334 | from the Microsoft FAT file system family or from JOLIET CD-ROMs |
@@ -367,7 +340,6 @@ config NLS_ISO8859_2 | |||
367 | 340 | ||
368 | config NLS_ISO8859_3 | 341 | config NLS_ISO8859_3 |
369 | tristate "NLS ISO 8859-3 (Latin 3; Esperanto, Galician, Maltese, Turkish)" | 342 | tristate "NLS ISO 8859-3 (Latin 3; Esperanto, Galician, Maltese, Turkish)" |
370 | depends on NLS | ||
371 | help | 343 | help |
372 | If you want to display filenames with native language characters | 344 | If you want to display filenames with native language characters |
373 | from the Microsoft FAT file system family or from JOLIET CD-ROMs | 345 | from the Microsoft FAT file system family or from JOLIET CD-ROMs |
@@ -378,7 +350,6 @@ config NLS_ISO8859_3 | |||
378 | 350 | ||
379 | config NLS_ISO8859_4 | 351 | config NLS_ISO8859_4 |
380 | tristate "NLS ISO 8859-4 (Latin 4; old Baltic charset)" | 352 | tristate "NLS ISO 8859-4 (Latin 4; old Baltic charset)" |
381 | depends on NLS | ||
382 | help | 353 | help |
383 | If you want to display filenames with native language characters | 354 | If you want to display filenames with native language characters |
384 | from the Microsoft FAT file system family or from JOLIET CD-ROMs | 355 | from the Microsoft FAT file system family or from JOLIET CD-ROMs |
@@ -389,7 +360,6 @@ config NLS_ISO8859_4 | |||
389 | 360 | ||
390 | config NLS_ISO8859_5 | 361 | config NLS_ISO8859_5 |
391 | tristate "NLS ISO 8859-5 (Cyrillic)" | 362 | tristate "NLS ISO 8859-5 (Cyrillic)" |
392 | depends on NLS | ||
393 | help | 363 | help |
394 | If you want to display filenames with native language characters | 364 | If you want to display filenames with native language characters |
395 | from the Microsoft FAT file system family or from JOLIET CD-ROMs | 365 | from the Microsoft FAT file system family or from JOLIET CD-ROMs |
@@ -401,7 +371,6 @@ config NLS_ISO8859_5 | |||
401 | 371 | ||
402 | config NLS_ISO8859_6 | 372 | config NLS_ISO8859_6 |
403 | tristate "NLS ISO 8859-6 (Arabic)" | 373 | tristate "NLS ISO 8859-6 (Arabic)" |
404 | depends on NLS | ||
405 | help | 374 | help |
406 | If you want to display filenames with native language characters | 375 | If you want to display filenames with native language characters |
407 | from the Microsoft FAT file system family or from JOLIET CD-ROMs | 376 | from the Microsoft FAT file system family or from JOLIET CD-ROMs |
@@ -411,7 +380,6 @@ config NLS_ISO8859_6 | |||
411 | 380 | ||
412 | config NLS_ISO8859_7 | 381 | config NLS_ISO8859_7 |
413 | tristate "NLS ISO 8859-7 (Modern Greek)" | 382 | tristate "NLS ISO 8859-7 (Modern Greek)" |
414 | depends on NLS | ||
415 | help | 383 | help |
416 | If you want to display filenames with native language characters | 384 | If you want to display filenames with native language characters |
417 | from the Microsoft FAT file system family or from JOLIET CD-ROMs | 385 | from the Microsoft FAT file system family or from JOLIET CD-ROMs |
@@ -421,7 +389,6 @@ config NLS_ISO8859_7 | |||
421 | 389 | ||
422 | config NLS_ISO8859_9 | 390 | config NLS_ISO8859_9 |
423 | tristate "NLS ISO 8859-9 (Latin 5; Turkish)" | 391 | tristate "NLS ISO 8859-9 (Latin 5; Turkish)" |
424 | depends on NLS | ||
425 | help | 392 | help |
426 | If you want to display filenames with native language characters | 393 | If you want to display filenames with native language characters |
427 | from the Microsoft FAT file system family or from JOLIET CD-ROMs | 394 | from the Microsoft FAT file system family or from JOLIET CD-ROMs |
@@ -432,7 +399,6 @@ config NLS_ISO8859_9 | |||
432 | 399 | ||
433 | config NLS_ISO8859_13 | 400 | config NLS_ISO8859_13 |
434 | tristate "NLS ISO 8859-13 (Latin 7; Baltic)" | 401 | tristate "NLS ISO 8859-13 (Latin 7; Baltic)" |
435 | depends on NLS | ||
436 | help | 402 | help |
437 | If you want to display filenames with native language characters | 403 | If you want to display filenames with native language characters |
438 | from the Microsoft FAT file system family or from JOLIET CD-ROMs | 404 | from the Microsoft FAT file system family or from JOLIET CD-ROMs |
@@ -443,7 +409,6 @@ config NLS_ISO8859_13 | |||
443 | 409 | ||
444 | config NLS_ISO8859_14 | 410 | config NLS_ISO8859_14 |
445 | tristate "NLS ISO 8859-14 (Latin 8; Celtic)" | 411 | tristate "NLS ISO 8859-14 (Latin 8; Celtic)" |
446 | depends on NLS | ||
447 | help | 412 | help |
448 | If you want to display filenames with native language characters | 413 | If you want to display filenames with native language characters |
449 | from the Microsoft FAT file system family or from JOLIET CD-ROMs | 414 | from the Microsoft FAT file system family or from JOLIET CD-ROMs |
@@ -455,7 +420,6 @@ config NLS_ISO8859_14 | |||
455 | 420 | ||
456 | config NLS_ISO8859_15 | 421 | config NLS_ISO8859_15 |
457 | tristate "NLS ISO 8859-15 (Latin 9; Western European Languages with Euro)" | 422 | tristate "NLS ISO 8859-15 (Latin 9; Western European Languages with Euro)" |
458 | depends on NLS | ||
459 | ---help--- | 423 | ---help--- |
460 | If you want to display filenames with native language characters | 424 | If you want to display filenames with native language characters |
461 | from the Microsoft FAT file system family or from JOLIET CD-ROMs | 425 | from the Microsoft FAT file system family or from JOLIET CD-ROMs |
@@ -472,7 +436,6 @@ config NLS_ISO8859_15 | |||
472 | 436 | ||
473 | config NLS_KOI8_R | 437 | config NLS_KOI8_R |
474 | tristate "NLS KOI8-R (Russian)" | 438 | tristate "NLS KOI8-R (Russian)" |
475 | depends on NLS | ||
476 | help | 439 | help |
477 | If you want to display filenames with native language characters | 440 | If you want to display filenames with native language characters |
478 | from the Microsoft FAT file system family or from JOLIET CD-ROMs | 441 | from the Microsoft FAT file system family or from JOLIET CD-ROMs |
@@ -482,7 +445,6 @@ config NLS_KOI8_R | |||
482 | 445 | ||
483 | config NLS_KOI8_U | 446 | config NLS_KOI8_U |
484 | tristate "NLS KOI8-U/RU (Ukrainian, Belarusian)" | 447 | tristate "NLS KOI8-U/RU (Ukrainian, Belarusian)" |
485 | depends on NLS | ||
486 | help | 448 | help |
487 | If you want to display filenames with native language characters | 449 | If you want to display filenames with native language characters |
488 | from the Microsoft FAT file system family or from JOLIET CD-ROMs | 450 | from the Microsoft FAT file system family or from JOLIET CD-ROMs |
@@ -492,7 +454,6 @@ config NLS_KOI8_U | |||
492 | 454 | ||
493 | config NLS_UTF8 | 455 | config NLS_UTF8 |
494 | tristate "NLS UTF-8" | 456 | tristate "NLS UTF-8" |
495 | depends on NLS | ||
496 | help | 457 | help |
497 | If you want to display filenames with native language characters | 458 | If you want to display filenames with native language characters |
498 | from the Microsoft FAT file system family or from JOLIET CD-ROMs | 459 | from the Microsoft FAT file system family or from JOLIET CD-ROMs |
@@ -500,5 +461,4 @@ config NLS_UTF8 | |||
500 | input/output character sets. Say Y here for the UTF-8 encoding of | 461 | input/output character sets. Say Y here for the UTF-8 encoding of |
501 | the Unicode/ISO9646 universal character set. | 462 | the Unicode/ISO9646 universal character set. |
502 | 463 | ||
503 | endmenu | 464 | endif # NLS |
504 | |||
diff --git a/fs/nls/nls_ascii.c b/fs/nls/nls_ascii.c index 6993faea28ac..7020e940f74e 100644 --- a/fs/nls/nls_ascii.c +++ b/fs/nls/nls_ascii.c | |||
@@ -13,7 +13,7 @@ | |||
13 | #include <linux/nls.h> | 13 | #include <linux/nls.h> |
14 | #include <linux/errno.h> | 14 | #include <linux/errno.h> |
15 | 15 | ||
16 | static wchar_t charset2uni[256] = { | 16 | static const wchar_t charset2uni[256] = { |
17 | /* 0x00*/ | 17 | /* 0x00*/ |
18 | 0x0000, 0x0001, 0x0002, 0x0003, | 18 | 0x0000, 0x0001, 0x0002, 0x0003, |
19 | 0x0004, 0x0005, 0x0006, 0x0007, | 19 | 0x0004, 0x0005, 0x0006, 0x0007, |
@@ -56,7 +56,7 @@ static wchar_t charset2uni[256] = { | |||
56 | 0x007c, 0x007d, 0x007e, 0x007f, | 56 | 0x007c, 0x007d, 0x007e, 0x007f, |
57 | }; | 57 | }; |
58 | 58 | ||
59 | static unsigned char page00[256] = { | 59 | static const unsigned char page00[256] = { |
60 | 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, /* 0x00-0x07 */ | 60 | 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, /* 0x00-0x07 */ |
61 | 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, /* 0x08-0x0f */ | 61 | 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, /* 0x08-0x0f */ |
62 | 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17, /* 0x10-0x17 */ | 62 | 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17, /* 0x10-0x17 */ |
@@ -75,11 +75,11 @@ static unsigned char page00[256] = { | |||
75 | 0x78, 0x79, 0x7a, 0x7b, 0x7c, 0x7d, 0x7e, 0x7f, /* 0x78-0x7f */ | 75 | 0x78, 0x79, 0x7a, 0x7b, 0x7c, 0x7d, 0x7e, 0x7f, /* 0x78-0x7f */ |
76 | }; | 76 | }; |
77 | 77 | ||
78 | static unsigned char *page_uni2charset[256] = { | 78 | static const unsigned char *const page_uni2charset[256] = { |
79 | page00, | 79 | page00, |
80 | }; | 80 | }; |
81 | 81 | ||
82 | static unsigned char charset2lower[256] = { | 82 | static const unsigned char charset2lower[256] = { |
83 | 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, /* 0x00-0x07 */ | 83 | 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, /* 0x00-0x07 */ |
84 | 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, /* 0x08-0x0f */ | 84 | 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, /* 0x08-0x0f */ |
85 | 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17, /* 0x10-0x17 */ | 85 | 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17, /* 0x10-0x17 */ |
@@ -98,7 +98,7 @@ static unsigned char charset2lower[256] = { | |||
98 | 0x78, 0x79, 0x7a, 0x7b, 0x7c, 0x7d, 0x7e, 0x7f, /* 0x78-0x7f */ | 98 | 0x78, 0x79, 0x7a, 0x7b, 0x7c, 0x7d, 0x7e, 0x7f, /* 0x78-0x7f */ |
99 | }; | 99 | }; |
100 | 100 | ||
101 | static unsigned char charset2upper[256] = { | 101 | static const unsigned char charset2upper[256] = { |
102 | 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, /* 0x00-0x07 */ | 102 | 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, /* 0x00-0x07 */ |
103 | 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, /* 0x08-0x0f */ | 103 | 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, /* 0x08-0x0f */ |
104 | 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17, /* 0x10-0x17 */ | 104 | 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17, /* 0x10-0x17 */ |
@@ -119,7 +119,7 @@ static unsigned char charset2upper[256] = { | |||
119 | 119 | ||
120 | static int uni2char(wchar_t uni, unsigned char *out, int boundlen) | 120 | static int uni2char(wchar_t uni, unsigned char *out, int boundlen) |
121 | { | 121 | { |
122 | unsigned char *uni2charset; | 122 | const unsigned char *uni2charset; |
123 | unsigned char cl = uni & 0x00ff; | 123 | unsigned char cl = uni & 0x00ff; |
124 | unsigned char ch = (uni & 0xff00) >> 8; | 124 | unsigned char ch = (uni & 0xff00) >> 8; |
125 | 125 | ||
diff --git a/fs/nls/nls_base.c b/fs/nls/nls_base.c index 7dfdab98729b..e7905816c4ca 100644 --- a/fs/nls/nls_base.c +++ b/fs/nls/nls_base.c | |||
@@ -34,7 +34,7 @@ struct utf8_table { | |||
34 | long lval; | 34 | long lval; |
35 | }; | 35 | }; |
36 | 36 | ||
37 | static struct utf8_table utf8_table[] = | 37 | static const struct utf8_table utf8_table[] = |
38 | { | 38 | { |
39 | {0x80, 0x00, 0*6, 0x7F, 0, /* 1 byte sequence */}, | 39 | {0x80, 0x00, 0*6, 0x7F, 0, /* 1 byte sequence */}, |
40 | {0xE0, 0xC0, 1*6, 0x7FF, 0x80, /* 2 byte sequence */}, | 40 | {0xE0, 0xC0, 1*6, 0x7FF, 0x80, /* 2 byte sequence */}, |
@@ -50,7 +50,7 @@ utf8_mbtowc(wchar_t *p, const __u8 *s, int n) | |||
50 | { | 50 | { |
51 | long l; | 51 | long l; |
52 | int c0, c, nc; | 52 | int c0, c, nc; |
53 | struct utf8_table *t; | 53 | const struct utf8_table *t; |
54 | 54 | ||
55 | nc = 0; | 55 | nc = 0; |
56 | c0 = *s; | 56 | c0 = *s; |
@@ -109,7 +109,7 @@ utf8_wctomb(__u8 *s, wchar_t wc, int maxlen) | |||
109 | { | 109 | { |
110 | long l; | 110 | long l; |
111 | int c, nc; | 111 | int c, nc; |
112 | struct utf8_table *t; | 112 | const struct utf8_table *t; |
113 | 113 | ||
114 | if (s == 0) | 114 | if (s == 0) |
115 | return 0; | 115 | return 0; |
@@ -240,7 +240,7 @@ void unload_nls(struct nls_table *nls) | |||
240 | module_put(nls->owner); | 240 | module_put(nls->owner); |
241 | } | 241 | } |
242 | 242 | ||
243 | static wchar_t charset2uni[256] = { | 243 | static const wchar_t charset2uni[256] = { |
244 | /* 0x00*/ | 244 | /* 0x00*/ |
245 | 0x0000, 0x0001, 0x0002, 0x0003, | 245 | 0x0000, 0x0001, 0x0002, 0x0003, |
246 | 0x0004, 0x0005, 0x0006, 0x0007, | 246 | 0x0004, 0x0005, 0x0006, 0x0007, |
@@ -323,7 +323,7 @@ static wchar_t charset2uni[256] = { | |||
323 | 0x00fc, 0x00fd, 0x00fe, 0x00ff, | 323 | 0x00fc, 0x00fd, 0x00fe, 0x00ff, |
324 | }; | 324 | }; |
325 | 325 | ||
326 | static unsigned char page00[256] = { | 326 | static const unsigned char page00[256] = { |
327 | 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, /* 0x00-0x07 */ | 327 | 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, /* 0x00-0x07 */ |
328 | 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, /* 0x08-0x0f */ | 328 | 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, /* 0x08-0x0f */ |
329 | 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17, /* 0x10-0x17 */ | 329 | 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17, /* 0x10-0x17 */ |
@@ -359,11 +359,11 @@ static unsigned char page00[256] = { | |||
359 | 0xf8, 0xf9, 0xfa, 0xfb, 0xfc, 0xfd, 0xfe, 0xff, /* 0xf8-0xff */ | 359 | 0xf8, 0xf9, 0xfa, 0xfb, 0xfc, 0xfd, 0xfe, 0xff, /* 0xf8-0xff */ |
360 | }; | 360 | }; |
361 | 361 | ||
362 | static unsigned char *page_uni2charset[256] = { | 362 | static const unsigned char *const page_uni2charset[256] = { |
363 | page00 | 363 | page00 |
364 | }; | 364 | }; |
365 | 365 | ||
366 | static unsigned char charset2lower[256] = { | 366 | static const unsigned char charset2lower[256] = { |
367 | 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, /* 0x00-0x07 */ | 367 | 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, /* 0x00-0x07 */ |
368 | 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, /* 0x08-0x0f */ | 368 | 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, /* 0x08-0x0f */ |
369 | 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17, /* 0x10-0x17 */ | 369 | 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17, /* 0x10-0x17 */ |
@@ -399,7 +399,7 @@ static unsigned char charset2lower[256] = { | |||
399 | 0xf8, 0xf9, 0xfa, 0xfb, 0xfc, 0xfd, 0xfe, 0xff, /* 0xf8-0xff */ | 399 | 0xf8, 0xf9, 0xfa, 0xfb, 0xfc, 0xfd, 0xfe, 0xff, /* 0xf8-0xff */ |
400 | }; | 400 | }; |
401 | 401 | ||
402 | static unsigned char charset2upper[256] = { | 402 | static const unsigned char charset2upper[256] = { |
403 | 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, /* 0x00-0x07 */ | 403 | 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, /* 0x00-0x07 */ |
404 | 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, /* 0x08-0x0f */ | 404 | 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, /* 0x08-0x0f */ |
405 | 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17, /* 0x10-0x17 */ | 405 | 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17, /* 0x10-0x17 */ |
@@ -438,7 +438,7 @@ static unsigned char charset2upper[256] = { | |||
438 | 438 | ||
439 | static int uni2char(wchar_t uni, unsigned char *out, int boundlen) | 439 | static int uni2char(wchar_t uni, unsigned char *out, int boundlen) |
440 | { | 440 | { |
441 | unsigned char *uni2charset; | 441 | const unsigned char *uni2charset; |
442 | unsigned char cl = uni & 0x00ff; | 442 | unsigned char cl = uni & 0x00ff; |
443 | unsigned char ch = (uni & 0xff00) >> 8; | 443 | unsigned char ch = (uni & 0xff00) >> 8; |
444 | 444 | ||
diff --git a/fs/nls/nls_cp1250.c b/fs/nls/nls_cp1250.c index 570aa69846a0..c8471fe78e4e 100644 --- a/fs/nls/nls_cp1250.c +++ b/fs/nls/nls_cp1250.c | |||
@@ -13,7 +13,7 @@ | |||
13 | #include <linux/nls.h> | 13 | #include <linux/nls.h> |
14 | #include <linux/errno.h> | 14 | #include <linux/errno.h> |
15 | 15 | ||
16 | static wchar_t charset2uni[256] = { | 16 | static const wchar_t charset2uni[256] = { |
17 | /* 0x00*/ | 17 | /* 0x00*/ |
18 | 0x0000, 0x0001, 0x0002, 0x0003, | 18 | 0x0000, 0x0001, 0x0002, 0x0003, |
19 | 0x0004, 0x0005, 0x0006, 0x0007, | 19 | 0x0004, 0x0005, 0x0006, 0x0007, |
@@ -96,7 +96,7 @@ static wchar_t charset2uni[256] = { | |||
96 | 0x00fc, 0x00fd, 0x0163, 0x02d9, | 96 | 0x00fc, 0x00fd, 0x0163, 0x02d9, |
97 | }; | 97 | }; |
98 | 98 | ||
99 | static unsigned char page00[256] = { | 99 | static const unsigned char page00[256] = { |
100 | 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, /* 0x00-0x07 */ | 100 | 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, /* 0x00-0x07 */ |
101 | 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, /* 0x08-0x0f */ | 101 | 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, /* 0x08-0x0f */ |
102 | 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17, /* 0x10-0x17 */ | 102 | 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17, /* 0x10-0x17 */ |
@@ -132,7 +132,7 @@ static unsigned char page00[256] = { | |||
132 | 0x00, 0x00, 0xfa, 0x00, 0xfc, 0xfd, 0x00, 0x00, /* 0xf8-0xff */ | 132 | 0x00, 0x00, 0xfa, 0x00, 0xfc, 0xfd, 0x00, 0x00, /* 0xf8-0xff */ |
133 | }; | 133 | }; |
134 | 134 | ||
135 | static unsigned char page01[256] = { | 135 | static const unsigned char page01[256] = { |
136 | 0x00, 0x00, 0xc3, 0xe3, 0xa5, 0xb9, 0xc6, 0xe6, /* 0x00-0x07 */ | 136 | 0x00, 0x00, 0xc3, 0xe3, 0xa5, 0xb9, 0xc6, 0xe6, /* 0x00-0x07 */ |
137 | 0x00, 0x00, 0x00, 0x00, 0xc8, 0xe8, 0xcf, 0xef, /* 0x08-0x0f */ | 137 | 0x00, 0x00, 0x00, 0x00, 0xc8, 0xe8, 0xcf, 0xef, /* 0x08-0x0f */ |
138 | 0xd0, 0xf0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x10-0x17 */ | 138 | 0xd0, 0xf0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x10-0x17 */ |
@@ -152,7 +152,7 @@ static unsigned char page01[256] = { | |||
152 | 152 | ||
153 | }; | 153 | }; |
154 | 154 | ||
155 | static unsigned char page02[256] = { | 155 | static const unsigned char page02[256] = { |
156 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x00-0x07 */ | 156 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x00-0x07 */ |
157 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x08-0x0f */ | 157 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x08-0x0f */ |
158 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x10-0x17 */ | 158 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x10-0x17 */ |
@@ -184,7 +184,7 @@ static unsigned char page02[256] = { | |||
184 | 0xa2, 0xff, 0x00, 0xb2, 0x00, 0xbd, 0x00, 0x00, /* 0xd8-0xdf */ | 184 | 0xa2, 0xff, 0x00, 0xb2, 0x00, 0xbd, 0x00, 0x00, /* 0xd8-0xdf */ |
185 | }; | 185 | }; |
186 | 186 | ||
187 | static unsigned char page20[256] = { | 187 | static const unsigned char page20[256] = { |
188 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x00-0x07 */ | 188 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x00-0x07 */ |
189 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x08-0x0f */ | 189 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x08-0x0f */ |
190 | 0x00, 0x00, 0x00, 0x96, 0x97, 0x00, 0x00, 0x00, /* 0x10-0x17 */ | 190 | 0x00, 0x00, 0x00, 0x96, 0x97, 0x00, 0x00, 0x00, /* 0x10-0x17 */ |
@@ -210,7 +210,7 @@ static unsigned char page20[256] = { | |||
210 | 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00, /* 0xa8-0xaf */ | 210 | 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00, /* 0xa8-0xaf */ |
211 | }; | 211 | }; |
212 | 212 | ||
213 | static unsigned char page21[256] = { | 213 | static const unsigned char page21[256] = { |
214 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x00-0x07 */ | 214 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x00-0x07 */ |
215 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x08-0x0f */ | 215 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x08-0x0f */ |
216 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x10-0x17 */ | 216 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x10-0x17 */ |
@@ -218,7 +218,7 @@ static unsigned char page21[256] = { | |||
218 | 0x00, 0x00, 0x99, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x20-0x27 */ | 218 | 0x00, 0x00, 0x99, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x20-0x27 */ |
219 | }; | 219 | }; |
220 | 220 | ||
221 | static unsigned char *page_uni2charset[256] = { | 221 | static const unsigned char *const page_uni2charset[256] = { |
222 | page00, page01, page02, NULL, NULL, NULL, NULL, NULL, | 222 | page00, page01, page02, NULL, NULL, NULL, NULL, NULL, |
223 | NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, | 223 | NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, |
224 | NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, | 224 | NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, |
@@ -226,7 +226,7 @@ static unsigned char *page_uni2charset[256] = { | |||
226 | page20, page21, NULL, NULL, NULL, NULL, NULL, NULL, | 226 | page20, page21, NULL, NULL, NULL, NULL, NULL, NULL, |
227 | }; | 227 | }; |
228 | 228 | ||
229 | static unsigned char charset2lower[256] = { | 229 | static const unsigned char charset2lower[256] = { |
230 | 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, /* 0x00-0x07 */ | 230 | 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, /* 0x00-0x07 */ |
231 | 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, /* 0x08-0x0f */ | 231 | 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, /* 0x08-0x0f */ |
232 | 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17, /* 0x10-0x17 */ | 232 | 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17, /* 0x10-0x17 */ |
@@ -262,7 +262,7 @@ static unsigned char charset2lower[256] = { | |||
262 | 0xf8, 0xf9, 0xfa, 0xfb, 0xfc, 0xfd, 0xfe, 0xff, /* 0xf8-0xff */ | 262 | 0xf8, 0xf9, 0xfa, 0xfb, 0xfc, 0xfd, 0xfe, 0xff, /* 0xf8-0xff */ |
263 | }; | 263 | }; |
264 | 264 | ||
265 | static unsigned char charset2upper[256] = { | 265 | static const unsigned char charset2upper[256] = { |
266 | 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, /* 0x00-0x07 */ | 266 | 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, /* 0x00-0x07 */ |
267 | 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, /* 0x08-0x0f */ | 267 | 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, /* 0x08-0x0f */ |
268 | 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17, /* 0x10-0x17 */ | 268 | 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17, /* 0x10-0x17 */ |
@@ -300,7 +300,7 @@ static unsigned char charset2upper[256] = { | |||
300 | 300 | ||
301 | static int uni2char(wchar_t uni, unsigned char *out, int boundlen) | 301 | static int uni2char(wchar_t uni, unsigned char *out, int boundlen) |
302 | { | 302 | { |
303 | unsigned char *uni2charset; | 303 | const unsigned char *uni2charset; |
304 | unsigned char cl = uni & 0x00ff; | 304 | unsigned char cl = uni & 0x00ff; |
305 | unsigned char ch = (uni & 0xff00) >> 8; | 305 | unsigned char ch = (uni & 0xff00) >> 8; |
306 | 306 | ||
diff --git a/fs/nls/nls_cp1251.c b/fs/nls/nls_cp1251.c index f114afa069db..1939b46e772f 100644 --- a/fs/nls/nls_cp1251.c +++ b/fs/nls/nls_cp1251.c | |||
@@ -13,7 +13,7 @@ | |||
13 | #include <linux/nls.h> | 13 | #include <linux/nls.h> |
14 | #include <linux/errno.h> | 14 | #include <linux/errno.h> |
15 | 15 | ||
16 | static wchar_t charset2uni[256] = { | 16 | static const wchar_t charset2uni[256] = { |
17 | /* 0x00*/ | 17 | /* 0x00*/ |
18 | 0x0000, 0x0001, 0x0002, 0x0003, | 18 | 0x0000, 0x0001, 0x0002, 0x0003, |
19 | 0x0004, 0x0005, 0x0006, 0x0007, | 19 | 0x0004, 0x0005, 0x0006, 0x0007, |
@@ -96,7 +96,7 @@ static wchar_t charset2uni[256] = { | |||
96 | 0x044c, 0x044d, 0x044e, 0x044f, | 96 | 0x044c, 0x044d, 0x044e, 0x044f, |
97 | }; | 97 | }; |
98 | 98 | ||
99 | static unsigned char page00[256] = { | 99 | static const unsigned char page00[256] = { |
100 | 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, /* 0x00-0x07 */ | 100 | 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, /* 0x00-0x07 */ |
101 | 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, /* 0x08-0x0f */ | 101 | 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, /* 0x08-0x0f */ |
102 | 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17, /* 0x10-0x17 */ | 102 | 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17, /* 0x10-0x17 */ |
@@ -132,7 +132,7 @@ static unsigned char page00[256] = { | |||
132 | 0x00, 0x00, 0x00, 0xbb, 0x00, 0x00, 0x00, 0x00, /* 0xf8-0xff */ | 132 | 0x00, 0x00, 0x00, 0xbb, 0x00, 0x00, 0x00, 0x00, /* 0xf8-0xff */ |
133 | }; | 133 | }; |
134 | 134 | ||
135 | static unsigned char page04[256] = { | 135 | static const unsigned char page04[256] = { |
136 | 0x00, 0xa8, 0x80, 0x81, 0xaa, 0xbd, 0xb2, 0xaf, /* 0x00-0x07 */ | 136 | 0x00, 0xa8, 0x80, 0x81, 0xaa, 0xbd, 0xb2, 0xaf, /* 0x00-0x07 */ |
137 | 0xa3, 0x8a, 0x8c, 0x8e, 0x8d, 0x00, 0xa1, 0x8f, /* 0x08-0x0f */ | 137 | 0xa3, 0x8a, 0x8c, 0x8e, 0x8d, 0x00, 0xa1, 0x8f, /* 0x08-0x0f */ |
138 | 0xc0, 0xc1, 0xc2, 0xc3, 0xc4, 0xc5, 0xc6, 0xc7, /* 0x10-0x17 */ | 138 | 0xc0, 0xc1, 0xc2, 0xc3, 0xc4, 0xc5, 0xc6, 0xc7, /* 0x10-0x17 */ |
@@ -155,7 +155,7 @@ static unsigned char page04[256] = { | |||
155 | 0x00, 0xa5, 0xb4, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x90-0x97 */ | 155 | 0x00, 0xa5, 0xb4, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x90-0x97 */ |
156 | }; | 156 | }; |
157 | 157 | ||
158 | static unsigned char page20[256] = { | 158 | static const unsigned char page20[256] = { |
159 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x00-0x07 */ | 159 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x00-0x07 */ |
160 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x08-0x0f */ | 160 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x08-0x0f */ |
161 | 0x00, 0x00, 0x00, 0x96, 0x97, 0x00, 0x00, 0x00, /* 0x10-0x17 */ | 161 | 0x00, 0x00, 0x00, 0x96, 0x97, 0x00, 0x00, 0x00, /* 0x10-0x17 */ |
@@ -166,7 +166,7 @@ static unsigned char page20[256] = { | |||
166 | 0x00, 0x8b, 0x9b, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x38-0x3f */ | 166 | 0x00, 0x8b, 0x9b, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x38-0x3f */ |
167 | }; | 167 | }; |
168 | 168 | ||
169 | static unsigned char page21[256] = { | 169 | static const unsigned char page21[256] = { |
170 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x00-0x07 */ | 170 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x00-0x07 */ |
171 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x08-0x0f */ | 171 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x08-0x0f */ |
172 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xb9, 0x00, /* 0x10-0x17 */ | 172 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xb9, 0x00, /* 0x10-0x17 */ |
@@ -174,7 +174,7 @@ static unsigned char page21[256] = { | |||
174 | 0x00, 0x00, 0x99, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x20-0x27 */ | 174 | 0x00, 0x00, 0x99, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x20-0x27 */ |
175 | }; | 175 | }; |
176 | 176 | ||
177 | static unsigned char *page_uni2charset[256] = { | 177 | static const unsigned char *const page_uni2charset[256] = { |
178 | page00, NULL, NULL, NULL, page04, NULL, NULL, NULL, | 178 | page00, NULL, NULL, NULL, page04, NULL, NULL, NULL, |
179 | NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, | 179 | NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, |
180 | NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, | 180 | NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, |
@@ -182,7 +182,7 @@ static unsigned char *page_uni2charset[256] = { | |||
182 | page20, page21, NULL, NULL, NULL, NULL, NULL, NULL, | 182 | page20, page21, NULL, NULL, NULL, NULL, NULL, NULL, |
183 | }; | 183 | }; |
184 | 184 | ||
185 | static unsigned char charset2lower[256] = { | 185 | static const unsigned char charset2lower[256] = { |
186 | 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, /* 0x00-0x07 */ | 186 | 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, /* 0x00-0x07 */ |
187 | 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, /* 0x08-0x0f */ | 187 | 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, /* 0x08-0x0f */ |
188 | 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17, /* 0x10-0x17 */ | 188 | 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17, /* 0x10-0x17 */ |
@@ -217,7 +217,7 @@ static unsigned char charset2lower[256] = { | |||
217 | 0xf8, 0xf9, 0xfa, 0xfb, 0xfc, 0xfd, 0xfe, 0xff, /* 0xf8-0xff */ | 217 | 0xf8, 0xf9, 0xfa, 0xfb, 0xfc, 0xfd, 0xfe, 0xff, /* 0xf8-0xff */ |
218 | }; | 218 | }; |
219 | 219 | ||
220 | static unsigned char charset2upper[256] = { | 220 | static const unsigned char charset2upper[256] = { |
221 | 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, /* 0x00-0x07 */ | 221 | 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, /* 0x00-0x07 */ |
222 | 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, /* 0x08-0x0f */ | 222 | 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, /* 0x08-0x0f */ |
223 | 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17, /* 0x10-0x17 */ | 223 | 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17, /* 0x10-0x17 */ |
@@ -254,7 +254,7 @@ static unsigned char charset2upper[256] = { | |||
254 | 254 | ||
255 | static int uni2char(wchar_t uni, unsigned char *out, int boundlen) | 255 | static int uni2char(wchar_t uni, unsigned char *out, int boundlen) |
256 | { | 256 | { |
257 | unsigned char *uni2charset; | 257 | const unsigned char *uni2charset; |
258 | unsigned char cl = uni & 0x00ff; | 258 | unsigned char cl = uni & 0x00ff; |
259 | unsigned char ch = (uni & 0xff00) >> 8; | 259 | unsigned char ch = (uni & 0xff00) >> 8; |
260 | 260 | ||
diff --git a/fs/nls/nls_cp1255.c b/fs/nls/nls_cp1255.c index e57f2cbf5bc0..8120ae2e091a 100644 --- a/fs/nls/nls_cp1255.c +++ b/fs/nls/nls_cp1255.c | |||
@@ -11,7 +11,7 @@ | |||
11 | #include <linux/nls.h> | 11 | #include <linux/nls.h> |
12 | #include <linux/errno.h> | 12 | #include <linux/errno.h> |
13 | 13 | ||
14 | static wchar_t charset2uni[256] = { | 14 | static const wchar_t charset2uni[256] = { |
15 | /* 0x00*/ | 15 | /* 0x00*/ |
16 | 0x0000, 0x0001, 0x0002, 0x0003, | 16 | 0x0000, 0x0001, 0x0002, 0x0003, |
17 | 0x0004, 0x0005, 0x0006, 0x0007, | 17 | 0x0004, 0x0005, 0x0006, 0x0007, |
@@ -94,7 +94,7 @@ static wchar_t charset2uni[256] = { | |||
94 | 0x0000, 0x0000, 0x0000, 0x0000, | 94 | 0x0000, 0x0000, 0x0000, 0x0000, |
95 | }; | 95 | }; |
96 | 96 | ||
97 | static unsigned char page00[256] = { | 97 | static const unsigned char page00[256] = { |
98 | 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, /* 0x00-0x07 */ | 98 | 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, /* 0x00-0x07 */ |
99 | 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, /* 0x08-0x0f */ | 99 | 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, /* 0x08-0x0f */ |
100 | 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17, /* 0x10-0x17 */ | 100 | 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17, /* 0x10-0x17 */ |
@@ -129,7 +129,7 @@ static unsigned char page00[256] = { | |||
129 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xba, /* 0xf0-0xf7 */ | 129 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xba, /* 0xf0-0xf7 */ |
130 | }; | 130 | }; |
131 | 131 | ||
132 | static unsigned char page01[256] = { | 132 | static const unsigned char page01[256] = { |
133 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x00-0x07 */ | 133 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x00-0x07 */ |
134 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x08-0x0f */ | 134 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x08-0x0f */ |
135 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x10-0x17 */ | 135 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x10-0x17 */ |
@@ -152,7 +152,7 @@ static unsigned char page01[256] = { | |||
152 | 0x00, 0x00, 0x83, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x90-0x97 */ | 152 | 0x00, 0x00, 0x83, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x90-0x97 */ |
153 | }; | 153 | }; |
154 | 154 | ||
155 | static unsigned char page02[256] = { | 155 | static const unsigned char page02[256] = { |
156 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x00-0x07 */ | 156 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x00-0x07 */ |
157 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x08-0x0f */ | 157 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x08-0x0f */ |
158 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x10-0x17 */ | 158 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x10-0x17 */ |
@@ -184,7 +184,7 @@ static unsigned char page02[256] = { | |||
184 | 0x00, 0x00, 0x00, 0x00, 0x98, 0x00, 0x00, 0x00, /* 0xd8-0xdf */ | 184 | 0x00, 0x00, 0x00, 0x00, 0x98, 0x00, 0x00, 0x00, /* 0xd8-0xdf */ |
185 | }; | 185 | }; |
186 | 186 | ||
187 | static unsigned char page05[256] = { | 187 | static const unsigned char page05[256] = { |
188 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x00-0x07 */ | 188 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x00-0x07 */ |
189 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x08-0x0f */ | 189 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x08-0x0f */ |
190 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x10-0x17 */ | 190 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x10-0x17 */ |
@@ -219,7 +219,7 @@ static unsigned char page05[256] = { | |||
219 | 0xd4, 0xd5, 0xd6, 0xd7, 0xd8, 0x00, 0x00, 0x00, /* 0xf0-0xf7 */ | 219 | 0xd4, 0xd5, 0xd6, 0xd7, 0xd8, 0x00, 0x00, 0x00, /* 0xf0-0xf7 */ |
220 | }; | 220 | }; |
221 | 221 | ||
222 | static unsigned char page20[256] = { | 222 | static const unsigned char page20[256] = { |
223 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x00-0x07 */ | 223 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x00-0x07 */ |
224 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfd, 0xfe, /* 0x08-0x0f */ | 224 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfd, 0xfe, /* 0x08-0x0f */ |
225 | 0x00, 0x00, 0x00, 0x96, 0x97, 0x00, 0x00, 0x00, /* 0x10-0x17 */ | 225 | 0x00, 0x00, 0x00, 0x96, 0x97, 0x00, 0x00, 0x00, /* 0x10-0x17 */ |
@@ -245,7 +245,7 @@ static unsigned char page20[256] = { | |||
245 | 0x00, 0x00, 0xa4, 0x00, 0x80, 0x00, 0x00, 0x00, /* 0xa8-0xaf */ | 245 | 0x00, 0x00, 0xa4, 0x00, 0x80, 0x00, 0x00, 0x00, /* 0xa8-0xaf */ |
246 | }; | 246 | }; |
247 | 247 | ||
248 | static unsigned char page21[256] = { | 248 | static const unsigned char page21[256] = { |
249 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x00-0x07 */ | 249 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x00-0x07 */ |
250 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x08-0x0f */ | 250 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x08-0x0f */ |
251 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xb9, 0x00, /* 0x10-0x17 */ | 251 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xb9, 0x00, /* 0x10-0x17 */ |
@@ -253,7 +253,7 @@ static unsigned char page21[256] = { | |||
253 | 0x00, 0x00, 0x99, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x20-0x27 */ | 253 | 0x00, 0x00, 0x99, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x20-0x27 */ |
254 | }; | 254 | }; |
255 | 255 | ||
256 | static unsigned char *page_uni2charset[256] = { | 256 | static const unsigned char *const page_uni2charset[256] = { |
257 | page00, page01, page02, NULL, NULL, page05, NULL, NULL, | 257 | page00, page01, page02, NULL, NULL, page05, NULL, NULL, |
258 | NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, | 258 | NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, |
259 | NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, | 259 | NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, |
@@ -261,7 +261,7 @@ static unsigned char *page_uni2charset[256] = { | |||
261 | page20, page21, NULL, NULL, NULL, NULL, NULL, NULL, | 261 | page20, page21, NULL, NULL, NULL, NULL, NULL, NULL, |
262 | }; | 262 | }; |
263 | 263 | ||
264 | static unsigned char charset2lower[256] = { | 264 | static const unsigned char charset2lower[256] = { |
265 | 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, /* 0x00-0x07 */ | 265 | 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, /* 0x00-0x07 */ |
266 | 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, /* 0x08-0x0f */ | 266 | 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, /* 0x08-0x0f */ |
267 | 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17, /* 0x10-0x17 */ | 267 | 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17, /* 0x10-0x17 */ |
@@ -297,7 +297,7 @@ static unsigned char charset2lower[256] = { | |||
297 | 0xf8, 0xf9, 0xfa, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xf8-0xff */ | 297 | 0xf8, 0xf9, 0xfa, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xf8-0xff */ |
298 | }; | 298 | }; |
299 | 299 | ||
300 | static unsigned char charset2upper[256] = { | 300 | static const unsigned char charset2upper[256] = { |
301 | 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, /* 0x00-0x07 */ | 301 | 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, /* 0x00-0x07 */ |
302 | 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, /* 0x08-0x0f */ | 302 | 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, /* 0x08-0x0f */ |
303 | 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17, /* 0x10-0x17 */ | 303 | 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17, /* 0x10-0x17 */ |
@@ -335,7 +335,7 @@ static unsigned char charset2upper[256] = { | |||
335 | 335 | ||
336 | static int uni2char(wchar_t uni, unsigned char *out, int boundlen) | 336 | static int uni2char(wchar_t uni, unsigned char *out, int boundlen) |
337 | { | 337 | { |
338 | unsigned char *uni2charset; | 338 | const unsigned char *uni2charset; |
339 | unsigned char cl = uni & 0x00ff; | 339 | unsigned char cl = uni & 0x00ff; |
340 | unsigned char ch = (uni & 0xff00) >> 8; | 340 | unsigned char ch = (uni & 0xff00) >> 8; |
341 | 341 | ||
diff --git a/fs/nls/nls_cp437.c b/fs/nls/nls_cp437.c index d41930ce4a44..ff37a4628ce4 100644 --- a/fs/nls/nls_cp437.c +++ b/fs/nls/nls_cp437.c | |||
@@ -13,7 +13,7 @@ | |||
13 | #include <linux/nls.h> | 13 | #include <linux/nls.h> |
14 | #include <linux/errno.h> | 14 | #include <linux/errno.h> |
15 | 15 | ||
16 | static wchar_t charset2uni[256] = { | 16 | static const wchar_t charset2uni[256] = { |
17 | /* 0x00*/ | 17 | /* 0x00*/ |
18 | 0x0000, 0x0001, 0x0002, 0x0003, | 18 | 0x0000, 0x0001, 0x0002, 0x0003, |
19 | 0x0004, 0x0005, 0x0006, 0x0007, | 19 | 0x0004, 0x0005, 0x0006, 0x0007, |
@@ -96,7 +96,7 @@ static wchar_t charset2uni[256] = { | |||
96 | 0x207f, 0x00b2, 0x25a0, 0x00a0, | 96 | 0x207f, 0x00b2, 0x25a0, 0x00a0, |
97 | }; | 97 | }; |
98 | 98 | ||
99 | static unsigned char page00[256] = { | 99 | static const unsigned char page00[256] = { |
100 | 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, /* 0x00-0x07 */ | 100 | 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, /* 0x00-0x07 */ |
101 | 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, /* 0x08-0x0f */ | 101 | 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, /* 0x08-0x0f */ |
102 | 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17, /* 0x10-0x17 */ | 102 | 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17, /* 0x10-0x17 */ |
@@ -132,7 +132,7 @@ static unsigned char page00[256] = { | |||
132 | 0x00, 0x97, 0xa3, 0x96, 0x81, 0x00, 0x00, 0x98, /* 0xf8-0xff */ | 132 | 0x00, 0x97, 0xa3, 0x96, 0x81, 0x00, 0x00, 0x98, /* 0xf8-0xff */ |
133 | }; | 133 | }; |
134 | 134 | ||
135 | static unsigned char page01[256] = { | 135 | static const unsigned char page01[256] = { |
136 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x00-0x07 */ | 136 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x00-0x07 */ |
137 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x08-0x0f */ | 137 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x08-0x0f */ |
138 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x10-0x17 */ | 138 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x10-0x17 */ |
@@ -155,7 +155,7 @@ static unsigned char page01[256] = { | |||
155 | 0x00, 0x00, 0x9f, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x90-0x97 */ | 155 | 0x00, 0x00, 0x9f, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x90-0x97 */ |
156 | }; | 156 | }; |
157 | 157 | ||
158 | static unsigned char page03[256] = { | 158 | static const unsigned char page03[256] = { |
159 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x00-0x07 */ | 159 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x00-0x07 */ |
160 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x08-0x0f */ | 160 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x08-0x0f */ |
161 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x10-0x17 */ | 161 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x10-0x17 */ |
@@ -184,7 +184,7 @@ static unsigned char page03[256] = { | |||
184 | 0xe3, 0x00, 0x00, 0xe5, 0xe7, 0x00, 0xed, 0x00, /* 0xc0-0xc7 */ | 184 | 0xe3, 0x00, 0x00, 0xe5, 0xe7, 0x00, 0xed, 0x00, /* 0xc0-0xc7 */ |
185 | }; | 185 | }; |
186 | 186 | ||
187 | static unsigned char page20[256] = { | 187 | static const unsigned char page20[256] = { |
188 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x00-0x07 */ | 188 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x00-0x07 */ |
189 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x08-0x0f */ | 189 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x08-0x0f */ |
190 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x10-0x17 */ | 190 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x10-0x17 */ |
@@ -209,7 +209,7 @@ static unsigned char page20[256] = { | |||
209 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x9e, /* 0xa0-0xa7 */ | 209 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x9e, /* 0xa0-0xa7 */ |
210 | }; | 210 | }; |
211 | 211 | ||
212 | static unsigned char page22[256] = { | 212 | static const unsigned char page22[256] = { |
213 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x00-0x07 */ | 213 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x00-0x07 */ |
214 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x08-0x0f */ | 214 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x08-0x0f */ |
215 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x10-0x17 */ | 215 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x10-0x17 */ |
@@ -225,7 +225,7 @@ static unsigned char page22[256] = { | |||
225 | 0x00, 0xf0, 0x00, 0x00, 0xf3, 0xf2, 0x00, 0x00, /* 0x60-0x67 */ | 225 | 0x00, 0xf0, 0x00, 0x00, 0xf3, 0xf2, 0x00, 0x00, /* 0x60-0x67 */ |
226 | }; | 226 | }; |
227 | 227 | ||
228 | static unsigned char page23[256] = { | 228 | static const unsigned char page23[256] = { |
229 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x00-0x07 */ | 229 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x00-0x07 */ |
230 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x08-0x0f */ | 230 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x08-0x0f */ |
231 | 0xa9, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x10-0x17 */ | 231 | 0xa9, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x10-0x17 */ |
@@ -233,7 +233,7 @@ static unsigned char page23[256] = { | |||
233 | 0xf4, 0xf5, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x20-0x27 */ | 233 | 0xf4, 0xf5, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x20-0x27 */ |
234 | }; | 234 | }; |
235 | 235 | ||
236 | static unsigned char page25[256] = { | 236 | static const unsigned char page25[256] = { |
237 | 0xc4, 0x00, 0xb3, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x00-0x07 */ | 237 | 0xc4, 0x00, 0xb3, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x00-0x07 */ |
238 | 0x00, 0x00, 0x00, 0x00, 0xda, 0x00, 0x00, 0x00, /* 0x08-0x0f */ | 238 | 0x00, 0x00, 0x00, 0x00, 0xda, 0x00, 0x00, 0x00, /* 0x08-0x0f */ |
239 | 0xbf, 0x00, 0x00, 0x00, 0xc0, 0x00, 0x00, 0x00, /* 0x10-0x17 */ | 239 | 0xbf, 0x00, 0x00, 0x00, 0xc0, 0x00, 0x00, 0x00, /* 0x10-0x17 */ |
@@ -258,7 +258,7 @@ static unsigned char page25[256] = { | |||
258 | 0xfe, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xa0-0xa7 */ | 258 | 0xfe, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xa0-0xa7 */ |
259 | }; | 259 | }; |
260 | 260 | ||
261 | static unsigned char *page_uni2charset[256] = { | 261 | static const unsigned char *const page_uni2charset[256] = { |
262 | page00, page01, NULL, page03, NULL, NULL, NULL, NULL, | 262 | page00, page01, NULL, page03, NULL, NULL, NULL, NULL, |
263 | NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, | 263 | NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, |
264 | NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, | 264 | NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, |
@@ -266,7 +266,7 @@ static unsigned char *page_uni2charset[256] = { | |||
266 | page20, NULL, page22, page23, NULL, page25, NULL, NULL, | 266 | page20, NULL, page22, page23, NULL, page25, NULL, NULL, |
267 | }; | 267 | }; |
268 | 268 | ||
269 | static unsigned char charset2lower[256] = { | 269 | static const unsigned char charset2lower[256] = { |
270 | 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, /* 0x00-0x07 */ | 270 | 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, /* 0x00-0x07 */ |
271 | 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, /* 0x08-0x0f */ | 271 | 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, /* 0x08-0x0f */ |
272 | 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17, /* 0x10-0x17 */ | 272 | 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17, /* 0x10-0x17 */ |
@@ -302,7 +302,7 @@ static unsigned char charset2lower[256] = { | |||
302 | 0xf8, 0xf9, 0xfa, 0xfb, 0xfc, 0xfd, 0xfe, 0xff, /* 0xf8-0xff */ | 302 | 0xf8, 0xf9, 0xfa, 0xfb, 0xfc, 0xfd, 0xfe, 0xff, /* 0xf8-0xff */ |
303 | }; | 303 | }; |
304 | 304 | ||
305 | static unsigned char charset2upper[256] = { | 305 | static const unsigned char charset2upper[256] = { |
306 | 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, /* 0x00-0x07 */ | 306 | 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, /* 0x00-0x07 */ |
307 | 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, /* 0x08-0x0f */ | 307 | 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, /* 0x08-0x0f */ |
308 | 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17, /* 0x10-0x17 */ | 308 | 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17, /* 0x10-0x17 */ |
@@ -340,7 +340,7 @@ static unsigned char charset2upper[256] = { | |||
340 | 340 | ||
341 | static int uni2char(wchar_t uni, unsigned char *out, int boundlen) | 341 | static int uni2char(wchar_t uni, unsigned char *out, int boundlen) |
342 | { | 342 | { |
343 | unsigned char *uni2charset; | 343 | const unsigned char *uni2charset; |
344 | unsigned char cl = uni & 0x00ff; | 344 | unsigned char cl = uni & 0x00ff; |
345 | unsigned char ch = (uni & 0xff00) >> 8; | 345 | unsigned char ch = (uni & 0xff00) >> 8; |
346 | 346 | ||
diff --git a/fs/nls/nls_cp737.c b/fs/nls/nls_cp737.c index d21f8790aa19..f5576b8be1b9 100644 --- a/fs/nls/nls_cp737.c +++ b/fs/nls/nls_cp737.c | |||
@@ -13,7 +13,7 @@ | |||
13 | #include <linux/nls.h> | 13 | #include <linux/nls.h> |
14 | #include <linux/errno.h> | 14 | #include <linux/errno.h> |
15 | 15 | ||
16 | static wchar_t charset2uni[256] = { | 16 | static const wchar_t charset2uni[256] = { |
17 | /* 0x00*/ | 17 | /* 0x00*/ |
18 | 0x0000, 0x0001, 0x0002, 0x0003, | 18 | 0x0000, 0x0001, 0x0002, 0x0003, |
19 | 0x0004, 0x0005, 0x0006, 0x0007, | 19 | 0x0004, 0x0005, 0x0006, 0x0007, |
@@ -96,7 +96,7 @@ static wchar_t charset2uni[256] = { | |||
96 | 0x207f, 0x00b2, 0x25a0, 0x00a0, | 96 | 0x207f, 0x00b2, 0x25a0, 0x00a0, |
97 | }; | 97 | }; |
98 | 98 | ||
99 | static unsigned char page00[256] = { | 99 | static const unsigned char page00[256] = { |
100 | 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, /* 0x00-0x07 */ | 100 | 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, /* 0x00-0x07 */ |
101 | 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, /* 0x08-0x0f */ | 101 | 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, /* 0x08-0x0f */ |
102 | 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17, /* 0x10-0x17 */ | 102 | 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17, /* 0x10-0x17 */ |
@@ -131,7 +131,7 @@ static unsigned char page00[256] = { | |||
131 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf6, /* 0xf0-0xf7 */ | 131 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf6, /* 0xf0-0xf7 */ |
132 | }; | 132 | }; |
133 | 133 | ||
134 | static unsigned char page03[256] = { | 134 | static const unsigned char page03[256] = { |
135 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x00-0x07 */ | 135 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x00-0x07 */ |
136 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x08-0x0f */ | 136 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x08-0x0f */ |
137 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x10-0x17 */ | 137 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x10-0x17 */ |
@@ -161,7 +161,7 @@ static unsigned char page03[256] = { | |||
161 | 0xaf, 0xe0, 0xe4, 0xe8, 0xe6, 0xe7, 0xe9, 0x00, /* 0xc8-0xcf */ | 161 | 0xaf, 0xe0, 0xe4, 0xe8, 0xe6, 0xe7, 0xe9, 0x00, /* 0xc8-0xcf */ |
162 | }; | 162 | }; |
163 | 163 | ||
164 | static unsigned char page20[256] = { | 164 | static const unsigned char page20[256] = { |
165 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x00-0x07 */ | 165 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x00-0x07 */ |
166 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x08-0x0f */ | 166 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x08-0x0f */ |
167 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x10-0x17 */ | 167 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x10-0x17 */ |
@@ -180,7 +180,7 @@ static unsigned char page20[256] = { | |||
180 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfc, /* 0x78-0x7f */ | 180 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfc, /* 0x78-0x7f */ |
181 | }; | 181 | }; |
182 | 182 | ||
183 | static unsigned char page22[256] = { | 183 | static const unsigned char page22[256] = { |
184 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x00-0x07 */ | 184 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x00-0x07 */ |
185 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x08-0x0f */ | 185 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x08-0x0f */ |
186 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x10-0x17 */ | 186 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x10-0x17 */ |
@@ -196,7 +196,7 @@ static unsigned char page22[256] = { | |||
196 | 0x00, 0x00, 0x00, 0x00, 0xf3, 0xf2, 0x00, 0x00, /* 0x60-0x67 */ | 196 | 0x00, 0x00, 0x00, 0x00, 0xf3, 0xf2, 0x00, 0x00, /* 0x60-0x67 */ |
197 | }; | 197 | }; |
198 | 198 | ||
199 | static unsigned char page25[256] = { | 199 | static const unsigned char page25[256] = { |
200 | 0xc4, 0x00, 0xb3, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x00-0x07 */ | 200 | 0xc4, 0x00, 0xb3, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x00-0x07 */ |
201 | 0x00, 0x00, 0x00, 0x00, 0xda, 0x00, 0x00, 0x00, /* 0x08-0x0f */ | 201 | 0x00, 0x00, 0x00, 0x00, 0xda, 0x00, 0x00, 0x00, /* 0x08-0x0f */ |
202 | 0xbf, 0x00, 0x00, 0x00, 0xc0, 0x00, 0x00, 0x00, /* 0x10-0x17 */ | 202 | 0xbf, 0x00, 0x00, 0x00, 0xc0, 0x00, 0x00, 0x00, /* 0x10-0x17 */ |
@@ -221,7 +221,7 @@ static unsigned char page25[256] = { | |||
221 | 0xfe, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xa0-0xa7 */ | 221 | 0xfe, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xa0-0xa7 */ |
222 | }; | 222 | }; |
223 | 223 | ||
224 | static unsigned char *page_uni2charset[256] = { | 224 | static const unsigned char *const page_uni2charset[256] = { |
225 | page00, NULL, NULL, page03, NULL, NULL, NULL, NULL, | 225 | page00, NULL, NULL, page03, NULL, NULL, NULL, NULL, |
226 | NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, | 226 | NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, |
227 | NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, | 227 | NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, |
@@ -229,7 +229,7 @@ static unsigned char *page_uni2charset[256] = { | |||
229 | page20, NULL, page22, NULL, NULL, page25, NULL, NULL, | 229 | page20, NULL, page22, NULL, NULL, page25, NULL, NULL, |
230 | }; | 230 | }; |
231 | 231 | ||
232 | static unsigned char charset2lower[256] = { | 232 | static const unsigned char charset2lower[256] = { |
233 | 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, /* 0x00-0x07 */ | 233 | 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, /* 0x00-0x07 */ |
234 | 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, /* 0x08-0x0f */ | 234 | 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, /* 0x08-0x0f */ |
235 | 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17, /* 0x10-0x17 */ | 235 | 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17, /* 0x10-0x17 */ |
@@ -265,7 +265,7 @@ static unsigned char charset2lower[256] = { | |||
265 | 0xf8, 0xf9, 0xfa, 0xfb, 0xfc, 0xfd, 0xfe, 0xff, /* 0xf8-0xff */ | 265 | 0xf8, 0xf9, 0xfa, 0xfb, 0xfc, 0xfd, 0xfe, 0xff, /* 0xf8-0xff */ |
266 | }; | 266 | }; |
267 | 267 | ||
268 | static unsigned char charset2upper[256] = { | 268 | static const unsigned char charset2upper[256] = { |
269 | 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, /* 0x00-0x07 */ | 269 | 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, /* 0x00-0x07 */ |
270 | 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, /* 0x08-0x0f */ | 270 | 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, /* 0x08-0x0f */ |
271 | 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17, /* 0x10-0x17 */ | 271 | 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17, /* 0x10-0x17 */ |
@@ -303,7 +303,7 @@ static unsigned char charset2upper[256] = { | |||
303 | 303 | ||
304 | static int uni2char(wchar_t uni, unsigned char *out, int boundlen) | 304 | static int uni2char(wchar_t uni, unsigned char *out, int boundlen) |
305 | { | 305 | { |
306 | unsigned char *uni2charset; | 306 | const unsigned char *uni2charset; |
307 | unsigned char cl = uni & 0x00ff; | 307 | unsigned char cl = uni & 0x00ff; |
308 | unsigned char ch = (uni & 0xff00) >> 8; | 308 | unsigned char ch = (uni & 0xff00) >> 8; |
309 | 309 | ||
diff --git a/fs/nls/nls_cp775.c b/fs/nls/nls_cp775.c index c97714c38a90..4905635d1c00 100644 --- a/fs/nls/nls_cp775.c +++ b/fs/nls/nls_cp775.c | |||
@@ -13,7 +13,7 @@ | |||
13 | #include <linux/nls.h> | 13 | #include <linux/nls.h> |
14 | #include <linux/errno.h> | 14 | #include <linux/errno.h> |
15 | 15 | ||
16 | static wchar_t charset2uni[256] = { | 16 | static const wchar_t charset2uni[256] = { |
17 | /* 0x00*/ | 17 | /* 0x00*/ |
18 | 0x0000, 0x0001, 0x0002, 0x0003, | 18 | 0x0000, 0x0001, 0x0002, 0x0003, |
19 | 0x0004, 0x0005, 0x0006, 0x0007, | 19 | 0x0004, 0x0005, 0x0006, 0x0007, |
@@ -96,7 +96,7 @@ static wchar_t charset2uni[256] = { | |||
96 | 0x00b3, 0x00b2, 0x25a0, 0x00a0, | 96 | 0x00b3, 0x00b2, 0x25a0, 0x00a0, |
97 | }; | 97 | }; |
98 | 98 | ||
99 | static unsigned char page00[256] = { | 99 | static const unsigned char page00[256] = { |
100 | 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, /* 0x00-0x07 */ | 100 | 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, /* 0x00-0x07 */ |
101 | 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, /* 0x08-0x0f */ | 101 | 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, /* 0x08-0x0f */ |
102 | 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17, /* 0x10-0x17 */ | 102 | 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17, /* 0x10-0x17 */ |
@@ -132,7 +132,7 @@ static unsigned char page00[256] = { | |||
132 | 0x9b, 0x00, 0x00, 0x00, 0x81, 0x00, 0x00, 0x00, /* 0xf8-0xff */ | 132 | 0x9b, 0x00, 0x00, 0x00, 0x81, 0x00, 0x00, 0x00, /* 0xf8-0xff */ |
133 | }; | 133 | }; |
134 | 134 | ||
135 | static unsigned char page01[256] = { | 135 | static const unsigned char page01[256] = { |
136 | 0xa0, 0x83, 0x00, 0x00, 0xb5, 0xd0, 0x80, 0x87, /* 0x00-0x07 */ | 136 | 0xa0, 0x83, 0x00, 0x00, 0xb5, 0xd0, 0x80, 0x87, /* 0x00-0x07 */ |
137 | 0x00, 0x00, 0x00, 0x00, 0xb6, 0xd1, 0x00, 0x00, /* 0x08-0x0f */ | 137 | 0x00, 0x00, 0x00, 0x00, 0xb6, 0xd1, 0x00, 0x00, /* 0x08-0x0f */ |
138 | 0x00, 0x00, 0xed, 0x89, 0x00, 0x00, 0xb8, 0xd3, /* 0x10-0x17 */ | 138 | 0x00, 0x00, 0xed, 0x89, 0x00, 0x00, 0xb8, 0xd3, /* 0x10-0x17 */ |
@@ -151,21 +151,21 @@ static unsigned char page01[256] = { | |||
151 | 0x00, 0x8d, 0xa5, 0xa3, 0xa4, 0xcf, 0xd8, 0x00, /* 0x78-0x7f */ | 151 | 0x00, 0x8d, 0xa5, 0xa3, 0xa4, 0xcf, 0xd8, 0x00, /* 0x78-0x7f */ |
152 | }; | 152 | }; |
153 | 153 | ||
154 | static unsigned char page20[256] = { | 154 | static const unsigned char page20[256] = { |
155 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x00-0x07 */ | 155 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x00-0x07 */ |
156 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x08-0x0f */ | 156 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x08-0x0f */ |
157 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x10-0x17 */ | 157 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x10-0x17 */ |
158 | 0x00, 0xef, 0x00, 0x00, 0xf2, 0xa6, 0xf7, 0x00, /* 0x18-0x1f */ | 158 | 0x00, 0xef, 0x00, 0x00, 0xf2, 0xa6, 0xf7, 0x00, /* 0x18-0x1f */ |
159 | }; | 159 | }; |
160 | 160 | ||
161 | static unsigned char page22[256] = { | 161 | static const unsigned char page22[256] = { |
162 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x00-0x07 */ | 162 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x00-0x07 */ |
163 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x08-0x0f */ | 163 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x08-0x0f */ |
164 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x10-0x17 */ | 164 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x10-0x17 */ |
165 | 0x00, 0xf9, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x18-0x1f */ | 165 | 0x00, 0xf9, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x18-0x1f */ |
166 | }; | 166 | }; |
167 | 167 | ||
168 | static unsigned char page25[256] = { | 168 | static const unsigned char page25[256] = { |
169 | 0xc4, 0x00, 0xb3, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x00-0x07 */ | 169 | 0xc4, 0x00, 0xb3, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x00-0x07 */ |
170 | 0x00, 0x00, 0x00, 0x00, 0xda, 0x00, 0x00, 0x00, /* 0x08-0x0f */ | 170 | 0x00, 0x00, 0x00, 0x00, 0xda, 0x00, 0x00, 0x00, /* 0x08-0x0f */ |
171 | 0xbf, 0x00, 0x00, 0x00, 0xc0, 0x00, 0x00, 0x00, /* 0x10-0x17 */ | 171 | 0xbf, 0x00, 0x00, 0x00, 0xc0, 0x00, 0x00, 0x00, /* 0x10-0x17 */ |
@@ -190,7 +190,7 @@ static unsigned char page25[256] = { | |||
190 | 0xfe, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xa0-0xa7 */ | 190 | 0xfe, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xa0-0xa7 */ |
191 | }; | 191 | }; |
192 | 192 | ||
193 | static unsigned char *page_uni2charset[256] = { | 193 | static const unsigned char *const page_uni2charset[256] = { |
194 | page00, page01, NULL, NULL, NULL, NULL, NULL, NULL, | 194 | page00, page01, NULL, NULL, NULL, NULL, NULL, NULL, |
195 | NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, | 195 | NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, |
196 | NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, | 196 | NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, |
@@ -198,7 +198,7 @@ static unsigned char *page_uni2charset[256] = { | |||
198 | page20, NULL, page22, NULL, NULL, page25, NULL, NULL, | 198 | page20, NULL, page22, NULL, NULL, page25, NULL, NULL, |
199 | }; | 199 | }; |
200 | 200 | ||
201 | static unsigned char charset2lower[256] = { | 201 | static const unsigned char charset2lower[256] = { |
202 | 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, /* 0x00-0x07 */ | 202 | 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, /* 0x00-0x07 */ |
203 | 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, /* 0x08-0x0f */ | 203 | 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, /* 0x08-0x0f */ |
204 | 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17, /* 0x10-0x17 */ | 204 | 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17, /* 0x10-0x17 */ |
@@ -234,7 +234,7 @@ static unsigned char charset2lower[256] = { | |||
234 | 0xf8, 0xf9, 0xfa, 0xfb, 0xfc, 0xfd, 0xfe, 0xff, /* 0xf8-0xff */ | 234 | 0xf8, 0xf9, 0xfa, 0xfb, 0xfc, 0xfd, 0xfe, 0xff, /* 0xf8-0xff */ |
235 | }; | 235 | }; |
236 | 236 | ||
237 | static unsigned char charset2upper[256] = { | 237 | static const unsigned char charset2upper[256] = { |
238 | 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, /* 0x00-0x07 */ | 238 | 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, /* 0x00-0x07 */ |
239 | 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, /* 0x08-0x0f */ | 239 | 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, /* 0x08-0x0f */ |
240 | 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17, /* 0x10-0x17 */ | 240 | 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17, /* 0x10-0x17 */ |
@@ -272,7 +272,7 @@ static unsigned char charset2upper[256] = { | |||
272 | 272 | ||
273 | static int uni2char(wchar_t uni, unsigned char *out, int boundlen) | 273 | static int uni2char(wchar_t uni, unsigned char *out, int boundlen) |
274 | { | 274 | { |
275 | unsigned char *uni2charset; | 275 | const unsigned char *uni2charset; |
276 | unsigned char cl = uni & 0x00ff; | 276 | unsigned char cl = uni & 0x00ff; |
277 | unsigned char ch = (uni & 0xff00) >> 8; | 277 | unsigned char ch = (uni & 0xff00) >> 8; |
278 | 278 | ||
diff --git a/fs/nls/nls_cp850.c b/fs/nls/nls_cp850.c index 843b7d975ba2..fe5bdad50e2b 100644 --- a/fs/nls/nls_cp850.c +++ b/fs/nls/nls_cp850.c | |||
@@ -13,7 +13,7 @@ | |||
13 | #include <linux/nls.h> | 13 | #include <linux/nls.h> |
14 | #include <linux/errno.h> | 14 | #include <linux/errno.h> |
15 | 15 | ||
16 | static wchar_t charset2uni[256] = { | 16 | static const wchar_t charset2uni[256] = { |
17 | /* 0x00*/ | 17 | /* 0x00*/ |
18 | 0x0000, 0x0001, 0x0002, 0x0003, | 18 | 0x0000, 0x0001, 0x0002, 0x0003, |
19 | 0x0004, 0x0005, 0x0006, 0x0007, | 19 | 0x0004, 0x0005, 0x0006, 0x0007, |
@@ -96,7 +96,7 @@ static wchar_t charset2uni[256] = { | |||
96 | 0x00b3, 0x00b2, 0x25a0, 0x00a0, | 96 | 0x00b3, 0x00b2, 0x25a0, 0x00a0, |
97 | }; | 97 | }; |
98 | 98 | ||
99 | static unsigned char page00[256] = { | 99 | static const unsigned char page00[256] = { |
100 | 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, /* 0x00-0x07 */ | 100 | 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, /* 0x00-0x07 */ |
101 | 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, /* 0x08-0x0f */ | 101 | 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, /* 0x08-0x0f */ |
102 | 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17, /* 0x10-0x17 */ | 102 | 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17, /* 0x10-0x17 */ |
@@ -132,7 +132,7 @@ static unsigned char page00[256] = { | |||
132 | 0x9b, 0x97, 0xa3, 0x96, 0x81, 0xec, 0xe7, 0x98, /* 0xf8-0xff */ | 132 | 0x9b, 0x97, 0xa3, 0x96, 0x81, 0xec, 0xe7, 0x98, /* 0xf8-0xff */ |
133 | }; | 133 | }; |
134 | 134 | ||
135 | static unsigned char page01[256] = { | 135 | static const unsigned char page01[256] = { |
136 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x00-0x07 */ | 136 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x00-0x07 */ |
137 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x08-0x0f */ | 137 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x08-0x0f */ |
138 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x10-0x17 */ | 138 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x10-0x17 */ |
@@ -155,13 +155,13 @@ static unsigned char page01[256] = { | |||
155 | 0x00, 0x00, 0x9f, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x90-0x97 */ | 155 | 0x00, 0x00, 0x9f, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x90-0x97 */ |
156 | }; | 156 | }; |
157 | 157 | ||
158 | static unsigned char page20[256] = { | 158 | static const unsigned char page20[256] = { |
159 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x00-0x07 */ | 159 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x00-0x07 */ |
160 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x08-0x0f */ | 160 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x08-0x0f */ |
161 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf2, /* 0x10-0x17 */ | 161 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf2, /* 0x10-0x17 */ |
162 | }; | 162 | }; |
163 | 163 | ||
164 | static unsigned char page25[256] = { | 164 | static const unsigned char page25[256] = { |
165 | 0xc4, 0x00, 0xb3, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x00-0x07 */ | 165 | 0xc4, 0x00, 0xb3, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x00-0x07 */ |
166 | 0x00, 0x00, 0x00, 0x00, 0xda, 0x00, 0x00, 0x00, /* 0x08-0x0f */ | 166 | 0x00, 0x00, 0x00, 0x00, 0xda, 0x00, 0x00, 0x00, /* 0x08-0x0f */ |
167 | 0xbf, 0x00, 0x00, 0x00, 0xc0, 0x00, 0x00, 0x00, /* 0x10-0x17 */ | 167 | 0xbf, 0x00, 0x00, 0x00, 0xc0, 0x00, 0x00, 0x00, /* 0x10-0x17 */ |
@@ -186,7 +186,7 @@ static unsigned char page25[256] = { | |||
186 | 0xfe, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xa0-0xa7 */ | 186 | 0xfe, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xa0-0xa7 */ |
187 | }; | 187 | }; |
188 | 188 | ||
189 | static unsigned char *page_uni2charset[256] = { | 189 | static const unsigned char *const page_uni2charset[256] = { |
190 | page00, page01, NULL, NULL, NULL, NULL, NULL, NULL, | 190 | page00, page01, NULL, NULL, NULL, NULL, NULL, NULL, |
191 | NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, | 191 | NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, |
192 | NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, | 192 | NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, |
@@ -194,7 +194,7 @@ static unsigned char *page_uni2charset[256] = { | |||
194 | page20, NULL, NULL, NULL, NULL, page25, NULL, NULL, | 194 | page20, NULL, NULL, NULL, NULL, page25, NULL, NULL, |
195 | }; | 195 | }; |
196 | 196 | ||
197 | static unsigned char charset2lower[256] = { | 197 | static const unsigned char charset2lower[256] = { |
198 | 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, /* 0x00-0x07 */ | 198 | 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, /* 0x00-0x07 */ |
199 | 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, /* 0x08-0x0f */ | 199 | 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, /* 0x08-0x0f */ |
200 | 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17, /* 0x10-0x17 */ | 200 | 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17, /* 0x10-0x17 */ |
@@ -230,7 +230,7 @@ static unsigned char charset2lower[256] = { | |||
230 | 0xf8, 0xf9, 0xfa, 0xfb, 0xfc, 0xfd, 0xfe, 0xff, /* 0xf8-0xff */ | 230 | 0xf8, 0xf9, 0xfa, 0xfb, 0xfc, 0xfd, 0xfe, 0xff, /* 0xf8-0xff */ |
231 | }; | 231 | }; |
232 | 232 | ||
233 | static unsigned char charset2upper[256] = { | 233 | static const unsigned char charset2upper[256] = { |
234 | 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, /* 0x00-0x07 */ | 234 | 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, /* 0x00-0x07 */ |
235 | 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, /* 0x08-0x0f */ | 235 | 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, /* 0x08-0x0f */ |
236 | 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17, /* 0x10-0x17 */ | 236 | 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17, /* 0x10-0x17 */ |
@@ -268,7 +268,7 @@ static unsigned char charset2upper[256] = { | |||
268 | 268 | ||
269 | static int uni2char(wchar_t uni, unsigned char *out, int boundlen) | 269 | static int uni2char(wchar_t uni, unsigned char *out, int boundlen) |
270 | { | 270 | { |
271 | unsigned char *uni2charset; | 271 | const unsigned char *uni2charset; |
272 | unsigned char cl = uni & 0x00ff; | 272 | unsigned char cl = uni & 0x00ff; |
273 | unsigned char ch = (uni & 0xff00) >> 8; | 273 | unsigned char ch = (uni & 0xff00) >> 8; |
274 | 274 | ||
diff --git a/fs/nls/nls_cp852.c b/fs/nls/nls_cp852.c index 83cfd844d5ca..ceb1c0166dd8 100644 --- a/fs/nls/nls_cp852.c +++ b/fs/nls/nls_cp852.c | |||
@@ -13,7 +13,7 @@ | |||
13 | #include <linux/nls.h> | 13 | #include <linux/nls.h> |
14 | #include <linux/errno.h> | 14 | #include <linux/errno.h> |
15 | 15 | ||
16 | static wchar_t charset2uni[256] = { | 16 | static const wchar_t charset2uni[256] = { |
17 | /* 0x00*/ | 17 | /* 0x00*/ |
18 | 0x0000, 0x0001, 0x0002, 0x0003, | 18 | 0x0000, 0x0001, 0x0002, 0x0003, |
19 | 0x0004, 0x0005, 0x0006, 0x0007, | 19 | 0x0004, 0x0005, 0x0006, 0x0007, |
@@ -96,7 +96,7 @@ static wchar_t charset2uni[256] = { | |||
96 | 0x0158, 0x0159, 0x25a0, 0x00a0, | 96 | 0x0158, 0x0159, 0x25a0, 0x00a0, |
97 | }; | 97 | }; |
98 | 98 | ||
99 | static unsigned char page00[256] = { | 99 | static const unsigned char page00[256] = { |
100 | 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, /* 0x00-0x07 */ | 100 | 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, /* 0x00-0x07 */ |
101 | 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, /* 0x08-0x0f */ | 101 | 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, /* 0x08-0x0f */ |
102 | 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17, /* 0x10-0x17 */ | 102 | 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17, /* 0x10-0x17 */ |
@@ -132,7 +132,7 @@ static unsigned char page00[256] = { | |||
132 | 0x00, 0x00, 0xa3, 0x00, 0x81, 0xec, 0x00, 0x00, /* 0xf8-0xff */ | 132 | 0x00, 0x00, 0xa3, 0x00, 0x81, 0xec, 0x00, 0x00, /* 0xf8-0xff */ |
133 | }; | 133 | }; |
134 | 134 | ||
135 | static unsigned char page01[256] = { | 135 | static const unsigned char page01[256] = { |
136 | 0x00, 0x00, 0xc6, 0xc7, 0xa4, 0xa5, 0x8f, 0x86, /* 0x00-0x07 */ | 136 | 0x00, 0x00, 0xc6, 0xc7, 0xa4, 0xa5, 0x8f, 0x86, /* 0x00-0x07 */ |
137 | 0x00, 0x00, 0x00, 0x00, 0xac, 0x9f, 0xd2, 0xd4, /* 0x08-0x0f */ | 137 | 0x00, 0x00, 0x00, 0x00, 0xac, 0x9f, 0xd2, 0xd4, /* 0x08-0x0f */ |
138 | 0xd1, 0xd0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x10-0x17 */ | 138 | 0xd1, 0xd0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x10-0x17 */ |
@@ -151,7 +151,7 @@ static unsigned char page01[256] = { | |||
151 | 0x00, 0x8d, 0xab, 0xbd, 0xbe, 0xa6, 0xa7, 0x00, /* 0x78-0x7f */ | 151 | 0x00, 0x8d, 0xab, 0xbd, 0xbe, 0xa6, 0xa7, 0x00, /* 0x78-0x7f */ |
152 | }; | 152 | }; |
153 | 153 | ||
154 | static unsigned char page02[256] = { | 154 | static const unsigned char page02[256] = { |
155 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x00-0x07 */ | 155 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x00-0x07 */ |
156 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x08-0x0f */ | 156 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x08-0x0f */ |
157 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x10-0x17 */ | 157 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x10-0x17 */ |
@@ -183,7 +183,7 @@ static unsigned char page02[256] = { | |||
183 | 0xf4, 0xfa, 0x00, 0xf2, 0x00, 0xf1, 0x00, 0x00, /* 0xd8-0xdf */ | 183 | 0xf4, 0xfa, 0x00, 0xf2, 0x00, 0xf1, 0x00, 0x00, /* 0xd8-0xdf */ |
184 | }; | 184 | }; |
185 | 185 | ||
186 | static unsigned char page25[256] = { | 186 | static const unsigned char page25[256] = { |
187 | 0xc4, 0x00, 0xb3, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x00-0x07 */ | 187 | 0xc4, 0x00, 0xb3, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x00-0x07 */ |
188 | 0x00, 0x00, 0x00, 0x00, 0xda, 0x00, 0x00, 0x00, /* 0x08-0x0f */ | 188 | 0x00, 0x00, 0x00, 0x00, 0xda, 0x00, 0x00, 0x00, /* 0x08-0x0f */ |
189 | 0xbf, 0x00, 0x00, 0x00, 0xc0, 0x00, 0x00, 0x00, /* 0x10-0x17 */ | 189 | 0xbf, 0x00, 0x00, 0x00, 0xc0, 0x00, 0x00, 0x00, /* 0x10-0x17 */ |
@@ -208,7 +208,7 @@ static unsigned char page25[256] = { | |||
208 | 0xfe, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xa0-0xa7 */ | 208 | 0xfe, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xa0-0xa7 */ |
209 | }; | 209 | }; |
210 | 210 | ||
211 | static unsigned char *page_uni2charset[256] = { | 211 | static const unsigned char *const page_uni2charset[256] = { |
212 | page00, page01, page02, NULL, NULL, NULL, NULL, NULL, | 212 | page00, page01, page02, NULL, NULL, NULL, NULL, NULL, |
213 | NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, | 213 | NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, |
214 | NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, | 214 | NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, |
@@ -216,7 +216,7 @@ static unsigned char *page_uni2charset[256] = { | |||
216 | NULL, NULL, NULL, NULL, NULL, page25, NULL, NULL, | 216 | NULL, NULL, NULL, NULL, NULL, page25, NULL, NULL, |
217 | }; | 217 | }; |
218 | 218 | ||
219 | static unsigned char charset2lower[256] = { | 219 | static const unsigned char charset2lower[256] = { |
220 | 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, /* 0x00-0x07 */ | 220 | 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, /* 0x00-0x07 */ |
221 | 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, /* 0x08-0x0f */ | 221 | 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, /* 0x08-0x0f */ |
222 | 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17, /* 0x10-0x17 */ | 222 | 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17, /* 0x10-0x17 */ |
@@ -252,7 +252,7 @@ static unsigned char charset2lower[256] = { | |||
252 | 0xf8, 0xf9, 0xfa, 0xfb, 0xfd, 0xfd, 0xfe, 0xff, /* 0xf8-0xff */ | 252 | 0xf8, 0xf9, 0xfa, 0xfb, 0xfd, 0xfd, 0xfe, 0xff, /* 0xf8-0xff */ |
253 | }; | 253 | }; |
254 | 254 | ||
255 | static unsigned char charset2upper[256] = { | 255 | static const unsigned char charset2upper[256] = { |
256 | 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, /* 0x00-0x07 */ | 256 | 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, /* 0x00-0x07 */ |
257 | 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, /* 0x08-0x0f */ | 257 | 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, /* 0x08-0x0f */ |
258 | 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17, /* 0x10-0x17 */ | 258 | 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17, /* 0x10-0x17 */ |
@@ -290,7 +290,7 @@ static unsigned char charset2upper[256] = { | |||
290 | 290 | ||
291 | static int uni2char(wchar_t uni, unsigned char *out, int boundlen) | 291 | static int uni2char(wchar_t uni, unsigned char *out, int boundlen) |
292 | { | 292 | { |
293 | unsigned char *uni2charset; | 293 | const unsigned char *uni2charset; |
294 | unsigned char cl = uni & 0x00ff; | 294 | unsigned char cl = uni & 0x00ff; |
295 | unsigned char ch = (uni & 0xff00) >> 8; | 295 | unsigned char ch = (uni & 0xff00) >> 8; |
296 | 296 | ||
diff --git a/fs/nls/nls_cp855.c b/fs/nls/nls_cp855.c index 9190b7b574ff..cc7f5fb2e0c2 100644 --- a/fs/nls/nls_cp855.c +++ b/fs/nls/nls_cp855.c | |||
@@ -13,7 +13,7 @@ | |||
13 | #include <linux/nls.h> | 13 | #include <linux/nls.h> |
14 | #include <linux/errno.h> | 14 | #include <linux/errno.h> |
15 | 15 | ||
16 | static wchar_t charset2uni[256] = { | 16 | static const wchar_t charset2uni[256] = { |
17 | /* 0x00*/ | 17 | /* 0x00*/ |
18 | 0x0000, 0x0001, 0x0002, 0x0003, | 18 | 0x0000, 0x0001, 0x0002, 0x0003, |
19 | 0x0004, 0x0005, 0x0006, 0x0007, | 19 | 0x0004, 0x0005, 0x0006, 0x0007, |
@@ -96,7 +96,7 @@ static wchar_t charset2uni[256] = { | |||
96 | 0x0427, 0x00a7, 0x25a0, 0x00a0, | 96 | 0x0427, 0x00a7, 0x25a0, 0x00a0, |
97 | }; | 97 | }; |
98 | 98 | ||
99 | static unsigned char page00[256] = { | 99 | static const unsigned char page00[256] = { |
100 | 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, /* 0x00-0x07 */ | 100 | 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, /* 0x00-0x07 */ |
101 | 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, /* 0x08-0x0f */ | 101 | 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, /* 0x08-0x0f */ |
102 | 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17, /* 0x10-0x17 */ | 102 | 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17, /* 0x10-0x17 */ |
@@ -124,7 +124,7 @@ static unsigned char page00[256] = { | |||
124 | 0x00, 0x00, 0x00, 0xaf, 0x00, 0x00, 0x00, 0x00, /* 0xb8-0xbf */ | 124 | 0x00, 0x00, 0x00, 0xaf, 0x00, 0x00, 0x00, 0x00, /* 0xb8-0xbf */ |
125 | }; | 125 | }; |
126 | 126 | ||
127 | static unsigned char page04[256] = { | 127 | static const unsigned char page04[256] = { |
128 | 0x00, 0x85, 0x81, 0x83, 0x87, 0x89, 0x8b, 0x8d, /* 0x00-0x07 */ | 128 | 0x00, 0x85, 0x81, 0x83, 0x87, 0x89, 0x8b, 0x8d, /* 0x00-0x07 */ |
129 | 0x8f, 0x91, 0x93, 0x95, 0x97, 0x00, 0x99, 0x9b, /* 0x08-0x0f */ | 129 | 0x8f, 0x91, 0x93, 0x95, 0x97, 0x00, 0x99, 0x9b, /* 0x08-0x0f */ |
130 | 0xa1, 0xa3, 0xec, 0xad, 0xa7, 0xa9, 0xea, 0xf4, /* 0x10-0x17 */ | 130 | 0xa1, 0xa3, 0xec, 0xad, 0xa7, 0xa9, 0xea, 0xf4, /* 0x10-0x17 */ |
@@ -139,13 +139,13 @@ static unsigned char page04[256] = { | |||
139 | 0x8e, 0x90, 0x92, 0x94, 0x96, 0x00, 0x98, 0x9a, /* 0x58-0x5f */ | 139 | 0x8e, 0x90, 0x92, 0x94, 0x96, 0x00, 0x98, 0x9a, /* 0x58-0x5f */ |
140 | }; | 140 | }; |
141 | 141 | ||
142 | static unsigned char page21[256] = { | 142 | static const unsigned char page21[256] = { |
143 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x00-0x07 */ | 143 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x00-0x07 */ |
144 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x08-0x0f */ | 144 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x08-0x0f */ |
145 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xef, 0x00, /* 0x10-0x17 */ | 145 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xef, 0x00, /* 0x10-0x17 */ |
146 | }; | 146 | }; |
147 | 147 | ||
148 | static unsigned char page25[256] = { | 148 | static const unsigned char page25[256] = { |
149 | 0xc4, 0x00, 0xb3, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x00-0x07 */ | 149 | 0xc4, 0x00, 0xb3, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x00-0x07 */ |
150 | 0x00, 0x00, 0x00, 0x00, 0xda, 0x00, 0x00, 0x00, /* 0x08-0x0f */ | 150 | 0x00, 0x00, 0x00, 0x00, 0xda, 0x00, 0x00, 0x00, /* 0x08-0x0f */ |
151 | 0xbf, 0x00, 0x00, 0x00, 0xc0, 0x00, 0x00, 0x00, /* 0x10-0x17 */ | 151 | 0xbf, 0x00, 0x00, 0x00, 0xc0, 0x00, 0x00, 0x00, /* 0x10-0x17 */ |
@@ -170,7 +170,7 @@ static unsigned char page25[256] = { | |||
170 | 0xfe, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xa0-0xa7 */ | 170 | 0xfe, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xa0-0xa7 */ |
171 | }; | 171 | }; |
172 | 172 | ||
173 | static unsigned char *page_uni2charset[256] = { | 173 | static const unsigned char *const page_uni2charset[256] = { |
174 | page00, NULL, NULL, NULL, page04, NULL, NULL, NULL, | 174 | page00, NULL, NULL, NULL, page04, NULL, NULL, NULL, |
175 | NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, | 175 | NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, |
176 | NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, | 176 | NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, |
@@ -178,7 +178,7 @@ static unsigned char *page_uni2charset[256] = { | |||
178 | NULL, page21, NULL, NULL, NULL, page25, NULL, NULL, | 178 | NULL, page21, NULL, NULL, NULL, page25, NULL, NULL, |
179 | }; | 179 | }; |
180 | 180 | ||
181 | static unsigned char charset2lower[256] = { | 181 | static const unsigned char charset2lower[256] = { |
182 | 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, /* 0x00-0x07 */ | 182 | 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, /* 0x00-0x07 */ |
183 | 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, /* 0x08-0x0f */ | 183 | 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, /* 0x08-0x0f */ |
184 | 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17, /* 0x10-0x17 */ | 184 | 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17, /* 0x10-0x17 */ |
@@ -214,7 +214,7 @@ static unsigned char charset2lower[256] = { | |||
214 | 0xf7, 0xf9, 0xf9, 0xfb, 0xfb, 0xfd, 0xfe, 0xff, /* 0xf8-0xff */ | 214 | 0xf7, 0xf9, 0xf9, 0xfb, 0xfb, 0xfd, 0xfe, 0xff, /* 0xf8-0xff */ |
215 | }; | 215 | }; |
216 | 216 | ||
217 | static unsigned char charset2upper[256] = { | 217 | static const unsigned char charset2upper[256] = { |
218 | 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, /* 0x00-0x07 */ | 218 | 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, /* 0x00-0x07 */ |
219 | 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, /* 0x08-0x0f */ | 219 | 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, /* 0x08-0x0f */ |
220 | 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17, /* 0x10-0x17 */ | 220 | 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17, /* 0x10-0x17 */ |
@@ -252,7 +252,7 @@ static unsigned char charset2upper[256] = { | |||
252 | 252 | ||
253 | static int uni2char(wchar_t uni, unsigned char *out, int boundlen) | 253 | static int uni2char(wchar_t uni, unsigned char *out, int boundlen) |
254 | { | 254 | { |
255 | unsigned char *uni2charset; | 255 | const unsigned char *uni2charset; |
256 | unsigned char cl = uni & 0x00ff; | 256 | unsigned char cl = uni & 0x00ff; |
257 | unsigned char ch = (uni & 0xff00) >> 8; | 257 | unsigned char ch = (uni & 0xff00) >> 8; |
258 | 258 | ||
diff --git a/fs/nls/nls_cp857.c b/fs/nls/nls_cp857.c index ef3d36db8082..e418e198e8d8 100644 --- a/fs/nls/nls_cp857.c +++ b/fs/nls/nls_cp857.c | |||
@@ -13,7 +13,7 @@ | |||
13 | #include <linux/nls.h> | 13 | #include <linux/nls.h> |
14 | #include <linux/errno.h> | 14 | #include <linux/errno.h> |
15 | 15 | ||
16 | static wchar_t charset2uni[256] = { | 16 | static const wchar_t charset2uni[256] = { |
17 | /* 0x00*/ | 17 | /* 0x00*/ |
18 | 0x0000, 0x0001, 0x0002, 0x0003, | 18 | 0x0000, 0x0001, 0x0002, 0x0003, |
19 | 0x0004, 0x0005, 0x0006, 0x0007, | 19 | 0x0004, 0x0005, 0x0006, 0x0007, |
@@ -96,7 +96,7 @@ static wchar_t charset2uni[256] = { | |||
96 | 0x00b3, 0x00b2, 0x25a0, 0x00a0, | 96 | 0x00b3, 0x00b2, 0x25a0, 0x00a0, |
97 | }; | 97 | }; |
98 | 98 | ||
99 | static unsigned char page00[256] = { | 99 | static const unsigned char page00[256] = { |
100 | 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, /* 0x00-0x07 */ | 100 | 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, /* 0x00-0x07 */ |
101 | 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, /* 0x08-0x0f */ | 101 | 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, /* 0x08-0x0f */ |
102 | 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17, /* 0x10-0x17 */ | 102 | 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17, /* 0x10-0x17 */ |
@@ -132,7 +132,7 @@ static unsigned char page00[256] = { | |||
132 | 0x9b, 0x97, 0xa3, 0x96, 0x81, 0x00, 0x00, 0xed, /* 0xf8-0xff */ | 132 | 0x9b, 0x97, 0xa3, 0x96, 0x81, 0x00, 0x00, 0xed, /* 0xf8-0xff */ |
133 | }; | 133 | }; |
134 | 134 | ||
135 | static unsigned char page01[256] = { | 135 | static const unsigned char page01[256] = { |
136 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x00-0x07 */ | 136 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x00-0x07 */ |
137 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x08-0x0f */ | 137 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x08-0x0f */ |
138 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x10-0x17 */ | 138 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x10-0x17 */ |
@@ -147,7 +147,7 @@ static unsigned char page01[256] = { | |||
147 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x9e, 0x9f, /* 0x58-0x5f */ | 147 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x9e, 0x9f, /* 0x58-0x5f */ |
148 | }; | 148 | }; |
149 | 149 | ||
150 | static unsigned char page25[256] = { | 150 | static const unsigned char page25[256] = { |
151 | 0xc4, 0x00, 0xb3, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x00-0x07 */ | 151 | 0xc4, 0x00, 0xb3, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x00-0x07 */ |
152 | 0x00, 0x00, 0x00, 0x00, 0xda, 0x00, 0x00, 0x00, /* 0x08-0x0f */ | 152 | 0x00, 0x00, 0x00, 0x00, 0xda, 0x00, 0x00, 0x00, /* 0x08-0x0f */ |
153 | 0xbf, 0x00, 0x00, 0x00, 0xc0, 0x00, 0x00, 0x00, /* 0x10-0x17 */ | 153 | 0xbf, 0x00, 0x00, 0x00, 0xc0, 0x00, 0x00, 0x00, /* 0x10-0x17 */ |
@@ -172,7 +172,7 @@ static unsigned char page25[256] = { | |||
172 | 0xfe, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xa0-0xa7 */ | 172 | 0xfe, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xa0-0xa7 */ |
173 | }; | 173 | }; |
174 | 174 | ||
175 | static unsigned char *page_uni2charset[256] = { | 175 | static const unsigned char *const page_uni2charset[256] = { |
176 | page00, page01, NULL, NULL, NULL, NULL, NULL, NULL, | 176 | page00, page01, NULL, NULL, NULL, NULL, NULL, NULL, |
177 | NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, | 177 | NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, |
178 | NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, | 178 | NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, |
@@ -180,7 +180,7 @@ static unsigned char *page_uni2charset[256] = { | |||
180 | NULL, NULL, NULL, NULL, NULL, page25, NULL, NULL, | 180 | NULL, NULL, NULL, NULL, NULL, page25, NULL, NULL, |
181 | }; | 181 | }; |
182 | 182 | ||
183 | static unsigned char charset2lower[256] = { | 183 | static const unsigned char charset2lower[256] = { |
184 | 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, /* 0x00-0x07 */ | 184 | 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, /* 0x00-0x07 */ |
185 | 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, /* 0x08-0x0f */ | 185 | 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, /* 0x08-0x0f */ |
186 | 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17, /* 0x10-0x17 */ | 186 | 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17, /* 0x10-0x17 */ |
@@ -216,7 +216,7 @@ static unsigned char charset2lower[256] = { | |||
216 | 0xf8, 0xf9, 0xfa, 0xfb, 0xfc, 0xfd, 0xfe, 0xff, /* 0xf8-0xff */ | 216 | 0xf8, 0xf9, 0xfa, 0xfb, 0xfc, 0xfd, 0xfe, 0xff, /* 0xf8-0xff */ |
217 | }; | 217 | }; |
218 | 218 | ||
219 | static unsigned char charset2upper[256] = { | 219 | static const unsigned char charset2upper[256] = { |
220 | 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, /* 0x00-0x07 */ | 220 | 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, /* 0x00-0x07 */ |
221 | 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, /* 0x08-0x0f */ | 221 | 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, /* 0x08-0x0f */ |
222 | 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17, /* 0x10-0x17 */ | 222 | 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17, /* 0x10-0x17 */ |
@@ -254,7 +254,7 @@ static unsigned char charset2upper[256] = { | |||
254 | 254 | ||
255 | static int uni2char(wchar_t uni, unsigned char *out, int boundlen) | 255 | static int uni2char(wchar_t uni, unsigned char *out, int boundlen) |
256 | { | 256 | { |
257 | unsigned char *uni2charset; | 257 | const unsigned char *uni2charset; |
258 | unsigned char cl = uni & 0x00ff; | 258 | unsigned char cl = uni & 0x00ff; |
259 | unsigned char ch = (uni & 0xff00) >> 8; | 259 | unsigned char ch = (uni & 0xff00) >> 8; |
260 | 260 | ||
diff --git a/fs/nls/nls_cp860.c b/fs/nls/nls_cp860.c index 7e2fb6645893..a86c97d1aa34 100644 --- a/fs/nls/nls_cp860.c +++ b/fs/nls/nls_cp860.c | |||
@@ -13,7 +13,7 @@ | |||
13 | #include <linux/nls.h> | 13 | #include <linux/nls.h> |
14 | #include <linux/errno.h> | 14 | #include <linux/errno.h> |
15 | 15 | ||
16 | static wchar_t charset2uni[256] = { | 16 | static const wchar_t charset2uni[256] = { |
17 | /* 0x00*/ | 17 | /* 0x00*/ |
18 | 0x0000, 0x0001, 0x0002, 0x0003, | 18 | 0x0000, 0x0001, 0x0002, 0x0003, |
19 | 0x0004, 0x0005, 0x0006, 0x0007, | 19 | 0x0004, 0x0005, 0x0006, 0x0007, |
@@ -96,7 +96,7 @@ static wchar_t charset2uni[256] = { | |||
96 | 0x207f, 0x00b2, 0x25a0, 0x00a0, | 96 | 0x207f, 0x00b2, 0x25a0, 0x00a0, |
97 | }; | 97 | }; |
98 | 98 | ||
99 | static unsigned char page00[256] = { | 99 | static const unsigned char page00[256] = { |
100 | 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, /* 0x00-0x07 */ | 100 | 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, /* 0x00-0x07 */ |
101 | 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, /* 0x08-0x0f */ | 101 | 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, /* 0x08-0x0f */ |
102 | 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17, /* 0x10-0x17 */ | 102 | 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17, /* 0x10-0x17 */ |
@@ -132,7 +132,7 @@ static unsigned char page00[256] = { | |||
132 | 0x00, 0x97, 0xa3, 0x00, 0x81, 0x00, 0x00, 0x00, /* 0xf8-0xff */ | 132 | 0x00, 0x97, 0xa3, 0x00, 0x81, 0x00, 0x00, 0x00, /* 0xf8-0xff */ |
133 | }; | 133 | }; |
134 | 134 | ||
135 | static unsigned char page03[256] = { | 135 | static const unsigned char page03[256] = { |
136 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x00-0x07 */ | 136 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x00-0x07 */ |
137 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x08-0x0f */ | 137 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x08-0x0f */ |
138 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x10-0x17 */ | 138 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x10-0x17 */ |
@@ -161,7 +161,7 @@ static unsigned char page03[256] = { | |||
161 | 0xe3, 0x00, 0x00, 0xe5, 0xe7, 0x00, 0xed, 0x00, /* 0xc0-0xc7 */ | 161 | 0xe3, 0x00, 0x00, 0xe5, 0xe7, 0x00, 0xed, 0x00, /* 0xc0-0xc7 */ |
162 | }; | 162 | }; |
163 | 163 | ||
164 | static unsigned char page20[256] = { | 164 | static const unsigned char page20[256] = { |
165 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x00-0x07 */ | 165 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x00-0x07 */ |
166 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x08-0x0f */ | 166 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x08-0x0f */ |
167 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x10-0x17 */ | 167 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x10-0x17 */ |
@@ -186,7 +186,7 @@ static unsigned char page20[256] = { | |||
186 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x9e, /* 0xa0-0xa7 */ | 186 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x9e, /* 0xa0-0xa7 */ |
187 | }; | 187 | }; |
188 | 188 | ||
189 | static unsigned char page22[256] = { | 189 | static const unsigned char page22[256] = { |
190 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x00-0x07 */ | 190 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x00-0x07 */ |
191 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x08-0x0f */ | 191 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x08-0x0f */ |
192 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x10-0x17 */ | 192 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x10-0x17 */ |
@@ -202,7 +202,7 @@ static unsigned char page22[256] = { | |||
202 | 0x00, 0xf0, 0x00, 0x00, 0xf3, 0xf2, 0x00, 0x00, /* 0x60-0x67 */ | 202 | 0x00, 0xf0, 0x00, 0x00, 0xf3, 0xf2, 0x00, 0x00, /* 0x60-0x67 */ |
203 | }; | 203 | }; |
204 | 204 | ||
205 | static unsigned char page23[256] = { | 205 | static const unsigned char page23[256] = { |
206 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x00-0x07 */ | 206 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x00-0x07 */ |
207 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x08-0x0f */ | 207 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x08-0x0f */ |
208 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x10-0x17 */ | 208 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x10-0x17 */ |
@@ -210,7 +210,7 @@ static unsigned char page23[256] = { | |||
210 | 0xf4, 0xf5, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x20-0x27 */ | 210 | 0xf4, 0xf5, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x20-0x27 */ |
211 | }; | 211 | }; |
212 | 212 | ||
213 | static unsigned char page25[256] = { | 213 | static const unsigned char page25[256] = { |
214 | 0xc4, 0x00, 0xb3, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x00-0x07 */ | 214 | 0xc4, 0x00, 0xb3, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x00-0x07 */ |
215 | 0x00, 0x00, 0x00, 0x00, 0xda, 0x00, 0x00, 0x00, /* 0x08-0x0f */ | 215 | 0x00, 0x00, 0x00, 0x00, 0xda, 0x00, 0x00, 0x00, /* 0x08-0x0f */ |
216 | 0xbf, 0x00, 0x00, 0x00, 0xc0, 0x00, 0x00, 0x00, /* 0x10-0x17 */ | 216 | 0xbf, 0x00, 0x00, 0x00, 0xc0, 0x00, 0x00, 0x00, /* 0x10-0x17 */ |
@@ -235,7 +235,7 @@ static unsigned char page25[256] = { | |||
235 | 0xfe, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xa0-0xa7 */ | 235 | 0xfe, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xa0-0xa7 */ |
236 | }; | 236 | }; |
237 | 237 | ||
238 | static unsigned char *page_uni2charset[256] = { | 238 | static const unsigned char *const page_uni2charset[256] = { |
239 | page00, NULL, NULL, page03, NULL, NULL, NULL, NULL, | 239 | page00, NULL, NULL, page03, NULL, NULL, NULL, NULL, |
240 | NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, | 240 | NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, |
241 | NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, | 241 | NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, |
@@ -243,7 +243,7 @@ static unsigned char *page_uni2charset[256] = { | |||
243 | page20, NULL, page22, page23, NULL, page25, NULL, NULL, | 243 | page20, NULL, page22, page23, NULL, page25, NULL, NULL, |
244 | }; | 244 | }; |
245 | 245 | ||
246 | static unsigned char charset2lower[256] = { | 246 | static const unsigned char charset2lower[256] = { |
247 | 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, /* 0x00-0x07 */ | 247 | 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, /* 0x00-0x07 */ |
248 | 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, /* 0x08-0x0f */ | 248 | 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, /* 0x08-0x0f */ |
249 | 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17, /* 0x10-0x17 */ | 249 | 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17, /* 0x10-0x17 */ |
@@ -279,7 +279,7 @@ static unsigned char charset2lower[256] = { | |||
279 | 0xf8, 0xf9, 0xfa, 0xfb, 0xfc, 0xfd, 0xfe, 0xff, /* 0xf8-0xff */ | 279 | 0xf8, 0xf9, 0xfa, 0xfb, 0xfc, 0xfd, 0xfe, 0xff, /* 0xf8-0xff */ |
280 | }; | 280 | }; |
281 | 281 | ||
282 | static unsigned char charset2upper[256] = { | 282 | static const unsigned char charset2upper[256] = { |
283 | 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, /* 0x00-0x07 */ | 283 | 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, /* 0x00-0x07 */ |
284 | 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, /* 0x08-0x0f */ | 284 | 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, /* 0x08-0x0f */ |
285 | 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17, /* 0x10-0x17 */ | 285 | 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17, /* 0x10-0x17 */ |
@@ -317,7 +317,7 @@ static unsigned char charset2upper[256] = { | |||
317 | 317 | ||
318 | static int uni2char(wchar_t uni, unsigned char *out, int boundlen) | 318 | static int uni2char(wchar_t uni, unsigned char *out, int boundlen) |
319 | { | 319 | { |
320 | unsigned char *uni2charset; | 320 | const unsigned char *uni2charset; |
321 | unsigned char cl = uni & 0x00ff; | 321 | unsigned char cl = uni & 0x00ff; |
322 | unsigned char ch = (uni & 0xff00) >> 8; | 322 | unsigned char ch = (uni & 0xff00) >> 8; |
323 | 323 | ||
diff --git a/fs/nls/nls_cp861.c b/fs/nls/nls_cp861.c index 66d8d808ccf1..bd920227acdf 100644 --- a/fs/nls/nls_cp861.c +++ b/fs/nls/nls_cp861.c | |||
@@ -13,7 +13,7 @@ | |||
13 | #include <linux/nls.h> | 13 | #include <linux/nls.h> |
14 | #include <linux/errno.h> | 14 | #include <linux/errno.h> |
15 | 15 | ||
16 | static wchar_t charset2uni[256] = { | 16 | static const wchar_t charset2uni[256] = { |
17 | /* 0x00*/ | 17 | /* 0x00*/ |
18 | 0x0000, 0x0001, 0x0002, 0x0003, | 18 | 0x0000, 0x0001, 0x0002, 0x0003, |
19 | 0x0004, 0x0005, 0x0006, 0x0007, | 19 | 0x0004, 0x0005, 0x0006, 0x0007, |
@@ -96,7 +96,7 @@ static wchar_t charset2uni[256] = { | |||
96 | 0x207f, 0x00b2, 0x25a0, 0x00a0, | 96 | 0x207f, 0x00b2, 0x25a0, 0x00a0, |
97 | }; | 97 | }; |
98 | 98 | ||
99 | static unsigned char page00[256] = { | 99 | static const unsigned char page00[256] = { |
100 | 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, /* 0x00-0x07 */ | 100 | 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, /* 0x00-0x07 */ |
101 | 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, /* 0x08-0x0f */ | 101 | 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, /* 0x08-0x0f */ |
102 | 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17, /* 0x10-0x17 */ | 102 | 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17, /* 0x10-0x17 */ |
@@ -132,7 +132,7 @@ static unsigned char page00[256] = { | |||
132 | 0x9b, 0x00, 0xa3, 0x96, 0x81, 0x98, 0x95, 0x00, /* 0xf8-0xff */ | 132 | 0x9b, 0x00, 0xa3, 0x96, 0x81, 0x98, 0x95, 0x00, /* 0xf8-0xff */ |
133 | }; | 133 | }; |
134 | 134 | ||
135 | static unsigned char page01[256] = { | 135 | static const unsigned char page01[256] = { |
136 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x00-0x07 */ | 136 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x00-0x07 */ |
137 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x08-0x0f */ | 137 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x08-0x0f */ |
138 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x10-0x17 */ | 138 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x10-0x17 */ |
@@ -155,7 +155,7 @@ static unsigned char page01[256] = { | |||
155 | 0x00, 0x00, 0x9f, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x90-0x97 */ | 155 | 0x00, 0x00, 0x9f, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x90-0x97 */ |
156 | }; | 156 | }; |
157 | 157 | ||
158 | static unsigned char page03[256] = { | 158 | static const unsigned char page03[256] = { |
159 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x00-0x07 */ | 159 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x00-0x07 */ |
160 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x08-0x0f */ | 160 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x08-0x0f */ |
161 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x10-0x17 */ | 161 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x10-0x17 */ |
@@ -184,7 +184,7 @@ static unsigned char page03[256] = { | |||
184 | 0xe3, 0x00, 0x00, 0xe5, 0xe7, 0x00, 0xed, 0x00, /* 0xc0-0xc7 */ | 184 | 0xe3, 0x00, 0x00, 0xe5, 0xe7, 0x00, 0xed, 0x00, /* 0xc0-0xc7 */ |
185 | }; | 185 | }; |
186 | 186 | ||
187 | static unsigned char page20[256] = { | 187 | static const unsigned char page20[256] = { |
188 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x00-0x07 */ | 188 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x00-0x07 */ |
189 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x08-0x0f */ | 189 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x08-0x0f */ |
190 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x10-0x17 */ | 190 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x10-0x17 */ |
@@ -209,7 +209,7 @@ static unsigned char page20[256] = { | |||
209 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x9e, /* 0xa0-0xa7 */ | 209 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x9e, /* 0xa0-0xa7 */ |
210 | }; | 210 | }; |
211 | 211 | ||
212 | static unsigned char page22[256] = { | 212 | static const unsigned char page22[256] = { |
213 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x00-0x07 */ | 213 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x00-0x07 */ |
214 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x08-0x0f */ | 214 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x08-0x0f */ |
215 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x10-0x17 */ | 215 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x10-0x17 */ |
@@ -225,7 +225,7 @@ static unsigned char page22[256] = { | |||
225 | 0x00, 0xf0, 0x00, 0x00, 0xf3, 0xf2, 0x00, 0x00, /* 0x60-0x67 */ | 225 | 0x00, 0xf0, 0x00, 0x00, 0xf3, 0xf2, 0x00, 0x00, /* 0x60-0x67 */ |
226 | }; | 226 | }; |
227 | 227 | ||
228 | static unsigned char page23[256] = { | 228 | static const unsigned char page23[256] = { |
229 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x00-0x07 */ | 229 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x00-0x07 */ |
230 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x08-0x0f */ | 230 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x08-0x0f */ |
231 | 0xa9, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x10-0x17 */ | 231 | 0xa9, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x10-0x17 */ |
@@ -233,7 +233,7 @@ static unsigned char page23[256] = { | |||
233 | 0xf4, 0xf5, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x20-0x27 */ | 233 | 0xf4, 0xf5, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x20-0x27 */ |
234 | }; | 234 | }; |
235 | 235 | ||
236 | static unsigned char page25[256] = { | 236 | static const unsigned char page25[256] = { |
237 | 0xc4, 0x00, 0xb3, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x00-0x07 */ | 237 | 0xc4, 0x00, 0xb3, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x00-0x07 */ |
238 | 0x00, 0x00, 0x00, 0x00, 0xda, 0x00, 0x00, 0x00, /* 0x08-0x0f */ | 238 | 0x00, 0x00, 0x00, 0x00, 0xda, 0x00, 0x00, 0x00, /* 0x08-0x0f */ |
239 | 0xbf, 0x00, 0x00, 0x00, 0xc0, 0x00, 0x00, 0x00, /* 0x10-0x17 */ | 239 | 0xbf, 0x00, 0x00, 0x00, 0xc0, 0x00, 0x00, 0x00, /* 0x10-0x17 */ |
@@ -258,7 +258,7 @@ static unsigned char page25[256] = { | |||
258 | 0xfe, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xa0-0xa7 */ | 258 | 0xfe, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xa0-0xa7 */ |
259 | }; | 259 | }; |
260 | 260 | ||
261 | static unsigned char *page_uni2charset[256] = { | 261 | static const unsigned char *const page_uni2charset[256] = { |
262 | page00, page01, NULL, page03, NULL, NULL, NULL, NULL, | 262 | page00, page01, NULL, page03, NULL, NULL, NULL, NULL, |
263 | NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, | 263 | NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, |
264 | NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, | 264 | NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, |
@@ -266,7 +266,7 @@ static unsigned char *page_uni2charset[256] = { | |||
266 | page20, NULL, page22, page23, NULL, page25, NULL, NULL, | 266 | page20, NULL, page22, page23, NULL, page25, NULL, NULL, |
267 | }; | 267 | }; |
268 | 268 | ||
269 | static unsigned char charset2lower[256] = { | 269 | static const unsigned char charset2lower[256] = { |
270 | 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, /* 0x00-0x07 */ | 270 | 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, /* 0x00-0x07 */ |
271 | 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, /* 0x08-0x0f */ | 271 | 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, /* 0x08-0x0f */ |
272 | 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17, /* 0x10-0x17 */ | 272 | 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17, /* 0x10-0x17 */ |
@@ -302,7 +302,7 @@ static unsigned char charset2lower[256] = { | |||
302 | 0xf8, 0xf9, 0xfa, 0xfb, 0xfc, 0xfd, 0xfe, 0xff, /* 0xf8-0xff */ | 302 | 0xf8, 0xf9, 0xfa, 0xfb, 0xfc, 0xfd, 0xfe, 0xff, /* 0xf8-0xff */ |
303 | }; | 303 | }; |
304 | 304 | ||
305 | static unsigned char charset2upper[256] = { | 305 | static const unsigned char charset2upper[256] = { |
306 | 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, /* 0x00-0x07 */ | 306 | 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, /* 0x00-0x07 */ |
307 | 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, /* 0x08-0x0f */ | 307 | 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, /* 0x08-0x0f */ |
308 | 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17, /* 0x10-0x17 */ | 308 | 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17, /* 0x10-0x17 */ |
@@ -340,7 +340,7 @@ static unsigned char charset2upper[256] = { | |||
340 | 340 | ||
341 | static int uni2char(wchar_t uni, unsigned char *out, int boundlen) | 341 | static int uni2char(wchar_t uni, unsigned char *out, int boundlen) |
342 | { | 342 | { |
343 | unsigned char *uni2charset; | 343 | const unsigned char *uni2charset; |
344 | unsigned char cl = uni & 0x00ff; | 344 | unsigned char cl = uni & 0x00ff; |
345 | unsigned char ch = (uni & 0xff00) >> 8; | 345 | unsigned char ch = (uni & 0xff00) >> 8; |
346 | 346 | ||
diff --git a/fs/nls/nls_cp862.c b/fs/nls/nls_cp862.c index 360ba388485f..e9b68eb3daf0 100644 --- a/fs/nls/nls_cp862.c +++ b/fs/nls/nls_cp862.c | |||
@@ -13,7 +13,7 @@ | |||
13 | #include <linux/nls.h> | 13 | #include <linux/nls.h> |
14 | #include <linux/errno.h> | 14 | #include <linux/errno.h> |
15 | 15 | ||
16 | static wchar_t charset2uni[256] = { | 16 | static const wchar_t charset2uni[256] = { |
17 | /* 0x00*/ | 17 | /* 0x00*/ |
18 | 0x0000, 0x0001, 0x0002, 0x0003, | 18 | 0x0000, 0x0001, 0x0002, 0x0003, |
19 | 0x0004, 0x0005, 0x0006, 0x0007, | 19 | 0x0004, 0x0005, 0x0006, 0x0007, |
@@ -96,7 +96,7 @@ static wchar_t charset2uni[256] = { | |||
96 | 0x207f, 0x00b2, 0x25a0, 0x00a0, | 96 | 0x207f, 0x00b2, 0x25a0, 0x00a0, |
97 | }; | 97 | }; |
98 | 98 | ||
99 | static unsigned char page00[256] = { | 99 | static const unsigned char page00[256] = { |
100 | 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, /* 0x00-0x07 */ | 100 | 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, /* 0x00-0x07 */ |
101 | 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, /* 0x08-0x0f */ | 101 | 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, /* 0x08-0x0f */ |
102 | 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17, /* 0x10-0x17 */ | 102 | 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17, /* 0x10-0x17 */ |
@@ -132,7 +132,7 @@ static unsigned char page00[256] = { | |||
132 | 0x00, 0x00, 0xa3, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xf8-0xff */ | 132 | 0x00, 0x00, 0xa3, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xf8-0xff */ |
133 | }; | 133 | }; |
134 | 134 | ||
135 | static unsigned char page01[256] = { | 135 | static const unsigned char page01[256] = { |
136 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x00-0x07 */ | 136 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x00-0x07 */ |
137 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x08-0x0f */ | 137 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x08-0x0f */ |
138 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x10-0x17 */ | 138 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x10-0x17 */ |
@@ -155,7 +155,7 @@ static unsigned char page01[256] = { | |||
155 | 0x00, 0x00, 0x9f, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x90-0x97 */ | 155 | 0x00, 0x00, 0x9f, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x90-0x97 */ |
156 | }; | 156 | }; |
157 | 157 | ||
158 | static unsigned char page03[256] = { | 158 | static const unsigned char page03[256] = { |
159 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x00-0x07 */ | 159 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x00-0x07 */ |
160 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x08-0x0f */ | 160 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x08-0x0f */ |
161 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x10-0x17 */ | 161 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x10-0x17 */ |
@@ -184,7 +184,7 @@ static unsigned char page03[256] = { | |||
184 | 0xe3, 0x00, 0x00, 0xe5, 0xe7, 0x00, 0xed, 0x00, /* 0xc0-0xc7 */ | 184 | 0xe3, 0x00, 0x00, 0xe5, 0xe7, 0x00, 0xed, 0x00, /* 0xc0-0xc7 */ |
185 | }; | 185 | }; |
186 | 186 | ||
187 | static unsigned char page05[256] = { | 187 | static const unsigned char page05[256] = { |
188 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x00-0x07 */ | 188 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x00-0x07 */ |
189 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x08-0x0f */ | 189 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x08-0x0f */ |
190 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x10-0x17 */ | 190 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x10-0x17 */ |
@@ -218,7 +218,7 @@ static unsigned char page05[256] = { | |||
218 | 0x98, 0x99, 0x9a, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xe8-0xef */ | 218 | 0x98, 0x99, 0x9a, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xe8-0xef */ |
219 | }; | 219 | }; |
220 | 220 | ||
221 | static unsigned char page20[256] = { | 221 | static const unsigned char page20[256] = { |
222 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x00-0x07 */ | 222 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x00-0x07 */ |
223 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x08-0x0f */ | 223 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x08-0x0f */ |
224 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x10-0x17 */ | 224 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x10-0x17 */ |
@@ -243,7 +243,7 @@ static unsigned char page20[256] = { | |||
243 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x9e, /* 0xa0-0xa7 */ | 243 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x9e, /* 0xa0-0xa7 */ |
244 | }; | 244 | }; |
245 | 245 | ||
246 | static unsigned char page22[256] = { | 246 | static const unsigned char page22[256] = { |
247 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x00-0x07 */ | 247 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x00-0x07 */ |
248 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x08-0x0f */ | 248 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x08-0x0f */ |
249 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x10-0x17 */ | 249 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x10-0x17 */ |
@@ -259,7 +259,7 @@ static unsigned char page22[256] = { | |||
259 | 0x00, 0xf0, 0x00, 0x00, 0xf3, 0xf2, 0x00, 0x00, /* 0x60-0x67 */ | 259 | 0x00, 0xf0, 0x00, 0x00, 0xf3, 0xf2, 0x00, 0x00, /* 0x60-0x67 */ |
260 | }; | 260 | }; |
261 | 261 | ||
262 | static unsigned char page23[256] = { | 262 | static const unsigned char page23[256] = { |
263 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x00-0x07 */ | 263 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x00-0x07 */ |
264 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x08-0x0f */ | 264 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x08-0x0f */ |
265 | 0xa9, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x10-0x17 */ | 265 | 0xa9, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x10-0x17 */ |
@@ -267,7 +267,7 @@ static unsigned char page23[256] = { | |||
267 | 0xf4, 0xf5, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x20-0x27 */ | 267 | 0xf4, 0xf5, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x20-0x27 */ |
268 | }; | 268 | }; |
269 | 269 | ||
270 | static unsigned char page25[256] = { | 270 | static const unsigned char page25[256] = { |
271 | 0xc4, 0x00, 0xb3, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x00-0x07 */ | 271 | 0xc4, 0x00, 0xb3, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x00-0x07 */ |
272 | 0x00, 0x00, 0x00, 0x00, 0xda, 0x00, 0x00, 0x00, /* 0x08-0x0f */ | 272 | 0x00, 0x00, 0x00, 0x00, 0xda, 0x00, 0x00, 0x00, /* 0x08-0x0f */ |
273 | 0xbf, 0x00, 0x00, 0x00, 0xc0, 0x00, 0x00, 0x00, /* 0x10-0x17 */ | 273 | 0xbf, 0x00, 0x00, 0x00, 0xc0, 0x00, 0x00, 0x00, /* 0x10-0x17 */ |
@@ -292,7 +292,7 @@ static unsigned char page25[256] = { | |||
292 | 0xfe, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xa0-0xa7 */ | 292 | 0xfe, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xa0-0xa7 */ |
293 | }; | 293 | }; |
294 | 294 | ||
295 | static unsigned char *page_uni2charset[256] = { | 295 | static const unsigned char *const page_uni2charset[256] = { |
296 | page00, page01, NULL, page03, NULL, page05, NULL, NULL, | 296 | page00, page01, NULL, page03, NULL, page05, NULL, NULL, |
297 | NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, | 297 | NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, |
298 | NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, | 298 | NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, |
@@ -300,7 +300,7 @@ static unsigned char *page_uni2charset[256] = { | |||
300 | page20, NULL, page22, page23, NULL, page25, NULL, NULL, | 300 | page20, NULL, page22, page23, NULL, page25, NULL, NULL, |
301 | }; | 301 | }; |
302 | 302 | ||
303 | static unsigned char charset2lower[256] = { | 303 | static const unsigned char charset2lower[256] = { |
304 | 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, /* 0x00-0x07 */ | 304 | 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, /* 0x00-0x07 */ |
305 | 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, /* 0x08-0x0f */ | 305 | 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, /* 0x08-0x0f */ |
306 | 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17, /* 0x10-0x17 */ | 306 | 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17, /* 0x10-0x17 */ |
@@ -336,7 +336,7 @@ static unsigned char charset2lower[256] = { | |||
336 | 0xf8, 0xf9, 0xfa, 0xfb, 0xfc, 0xfd, 0xfe, 0xff, /* 0xf8-0xff */ | 336 | 0xf8, 0xf9, 0xfa, 0xfb, 0xfc, 0xfd, 0xfe, 0xff, /* 0xf8-0xff */ |
337 | }; | 337 | }; |
338 | 338 | ||
339 | static unsigned char charset2upper[256] = { | 339 | static const unsigned char charset2upper[256] = { |
340 | 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, /* 0x00-0x07 */ | 340 | 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, /* 0x00-0x07 */ |
341 | 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, /* 0x08-0x0f */ | 341 | 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, /* 0x08-0x0f */ |
342 | 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17, /* 0x10-0x17 */ | 342 | 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17, /* 0x10-0x17 */ |
@@ -374,7 +374,7 @@ static unsigned char charset2upper[256] = { | |||
374 | 374 | ||
375 | static int uni2char(wchar_t uni, unsigned char *out, int boundlen) | 375 | static int uni2char(wchar_t uni, unsigned char *out, int boundlen) |
376 | { | 376 | { |
377 | unsigned char *uni2charset; | 377 | const unsigned char *uni2charset; |
378 | unsigned char cl = uni & 0x00ff; | 378 | unsigned char cl = uni & 0x00ff; |
379 | unsigned char ch = (uni & 0xff00) >> 8; | 379 | unsigned char ch = (uni & 0xff00) >> 8; |
380 | 380 | ||
diff --git a/fs/nls/nls_cp863.c b/fs/nls/nls_cp863.c index 656a93113e37..f8a9b07ab4e2 100644 --- a/fs/nls/nls_cp863.c +++ b/fs/nls/nls_cp863.c | |||
@@ -13,7 +13,7 @@ | |||
13 | #include <linux/nls.h> | 13 | #include <linux/nls.h> |
14 | #include <linux/errno.h> | 14 | #include <linux/errno.h> |
15 | 15 | ||
16 | static wchar_t charset2uni[256] = { | 16 | static const wchar_t charset2uni[256] = { |
17 | /* 0x00*/ | 17 | /* 0x00*/ |
18 | 0x0000, 0x0001, 0x0002, 0x0003, | 18 | 0x0000, 0x0001, 0x0002, 0x0003, |
19 | 0x0004, 0x0005, 0x0006, 0x0007, | 19 | 0x0004, 0x0005, 0x0006, 0x0007, |
@@ -96,7 +96,7 @@ static wchar_t charset2uni[256] = { | |||
96 | 0x207f, 0x00b2, 0x25a0, 0x00a0, | 96 | 0x207f, 0x00b2, 0x25a0, 0x00a0, |
97 | }; | 97 | }; |
98 | 98 | ||
99 | static unsigned char page00[256] = { | 99 | static const unsigned char page00[256] = { |
100 | 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, /* 0x00-0x07 */ | 100 | 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, /* 0x00-0x07 */ |
101 | 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, /* 0x08-0x0f */ | 101 | 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, /* 0x08-0x0f */ |
102 | 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17, /* 0x10-0x17 */ | 102 | 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17, /* 0x10-0x17 */ |
@@ -132,7 +132,7 @@ static unsigned char page00[256] = { | |||
132 | 0x00, 0x97, 0xa3, 0x96, 0x81, 0x00, 0x00, 0x00, /* 0xf8-0xff */ | 132 | 0x00, 0x97, 0xa3, 0x96, 0x81, 0x00, 0x00, 0x00, /* 0xf8-0xff */ |
133 | }; | 133 | }; |
134 | 134 | ||
135 | static unsigned char page01[256] = { | 135 | static const unsigned char page01[256] = { |
136 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x00-0x07 */ | 136 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x00-0x07 */ |
137 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x08-0x0f */ | 137 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x08-0x0f */ |
138 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x10-0x17 */ | 138 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x10-0x17 */ |
@@ -155,7 +155,7 @@ static unsigned char page01[256] = { | |||
155 | 0x00, 0x00, 0x9f, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x90-0x97 */ | 155 | 0x00, 0x00, 0x9f, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x90-0x97 */ |
156 | }; | 156 | }; |
157 | 157 | ||
158 | static unsigned char page03[256] = { | 158 | static const unsigned char page03[256] = { |
159 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x00-0x07 */ | 159 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x00-0x07 */ |
160 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x08-0x0f */ | 160 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x08-0x0f */ |
161 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x10-0x17 */ | 161 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x10-0x17 */ |
@@ -184,7 +184,7 @@ static unsigned char page03[256] = { | |||
184 | 0xe3, 0x00, 0x00, 0xe5, 0xe7, 0x00, 0xed, 0x00, /* 0xc0-0xc7 */ | 184 | 0xe3, 0x00, 0x00, 0xe5, 0xe7, 0x00, 0xed, 0x00, /* 0xc0-0xc7 */ |
185 | }; | 185 | }; |
186 | 186 | ||
187 | static unsigned char page20[256] = { | 187 | static const unsigned char page20[256] = { |
188 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x00-0x07 */ | 188 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x00-0x07 */ |
189 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x08-0x0f */ | 189 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x08-0x0f */ |
190 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x8d, /* 0x10-0x17 */ | 190 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x8d, /* 0x10-0x17 */ |
@@ -203,7 +203,7 @@ static unsigned char page20[256] = { | |||
203 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfc, /* 0x78-0x7f */ | 203 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfc, /* 0x78-0x7f */ |
204 | }; | 204 | }; |
205 | 205 | ||
206 | static unsigned char page22[256] = { | 206 | static const unsigned char page22[256] = { |
207 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x00-0x07 */ | 207 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x00-0x07 */ |
208 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x08-0x0f */ | 208 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x08-0x0f */ |
209 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x10-0x17 */ | 209 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x10-0x17 */ |
@@ -219,7 +219,7 @@ static unsigned char page22[256] = { | |||
219 | 0x00, 0xf0, 0x00, 0x00, 0xf3, 0xf2, 0x00, 0x00, /* 0x60-0x67 */ | 219 | 0x00, 0xf0, 0x00, 0x00, 0xf3, 0xf2, 0x00, 0x00, /* 0x60-0x67 */ |
220 | }; | 220 | }; |
221 | 221 | ||
222 | static unsigned char page23[256] = { | 222 | static const unsigned char page23[256] = { |
223 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x00-0x07 */ | 223 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x00-0x07 */ |
224 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x08-0x0f */ | 224 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x08-0x0f */ |
225 | 0xa9, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x10-0x17 */ | 225 | 0xa9, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x10-0x17 */ |
@@ -227,7 +227,7 @@ static unsigned char page23[256] = { | |||
227 | 0xf4, 0xf5, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x20-0x27 */ | 227 | 0xf4, 0xf5, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x20-0x27 */ |
228 | }; | 228 | }; |
229 | 229 | ||
230 | static unsigned char page25[256] = { | 230 | static const unsigned char page25[256] = { |
231 | 0xc4, 0x00, 0xb3, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x00-0x07 */ | 231 | 0xc4, 0x00, 0xb3, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x00-0x07 */ |
232 | 0x00, 0x00, 0x00, 0x00, 0xda, 0x00, 0x00, 0x00, /* 0x08-0x0f */ | 232 | 0x00, 0x00, 0x00, 0x00, 0xda, 0x00, 0x00, 0x00, /* 0x08-0x0f */ |
233 | 0xbf, 0x00, 0x00, 0x00, 0xc0, 0x00, 0x00, 0x00, /* 0x10-0x17 */ | 233 | 0xbf, 0x00, 0x00, 0x00, 0xc0, 0x00, 0x00, 0x00, /* 0x10-0x17 */ |
@@ -252,7 +252,7 @@ static unsigned char page25[256] = { | |||
252 | 0xfe, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xa0-0xa7 */ | 252 | 0xfe, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xa0-0xa7 */ |
253 | }; | 253 | }; |
254 | 254 | ||
255 | static unsigned char *page_uni2charset[256] = { | 255 | static const unsigned char *const page_uni2charset[256] = { |
256 | page00, page01, NULL, page03, NULL, NULL, NULL, NULL, | 256 | page00, page01, NULL, page03, NULL, NULL, NULL, NULL, |
257 | NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, | 257 | NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, |
258 | NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, | 258 | NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, |
@@ -260,7 +260,7 @@ static unsigned char *page_uni2charset[256] = { | |||
260 | page20, NULL, page22, page23, NULL, page25, NULL, NULL, | 260 | page20, NULL, page22, page23, NULL, page25, NULL, NULL, |
261 | }; | 261 | }; |
262 | 262 | ||
263 | static unsigned char charset2lower[256] = { | 263 | static const unsigned char charset2lower[256] = { |
264 | 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, /* 0x00-0x07 */ | 264 | 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, /* 0x00-0x07 */ |
265 | 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, /* 0x08-0x0f */ | 265 | 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, /* 0x08-0x0f */ |
266 | 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17, /* 0x10-0x17 */ | 266 | 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17, /* 0x10-0x17 */ |
@@ -296,7 +296,7 @@ static unsigned char charset2lower[256] = { | |||
296 | 0xf8, 0xf9, 0xfa, 0xfb, 0xfc, 0xfd, 0xfe, 0xff, /* 0xf8-0xff */ | 296 | 0xf8, 0xf9, 0xfa, 0xfb, 0xfc, 0xfd, 0xfe, 0xff, /* 0xf8-0xff */ |
297 | }; | 297 | }; |
298 | 298 | ||
299 | static unsigned char charset2upper[256] = { | 299 | static const unsigned char charset2upper[256] = { |
300 | 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, /* 0x00-0x07 */ | 300 | 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, /* 0x00-0x07 */ |
301 | 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, /* 0x08-0x0f */ | 301 | 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, /* 0x08-0x0f */ |
302 | 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17, /* 0x10-0x17 */ | 302 | 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17, /* 0x10-0x17 */ |
@@ -334,7 +334,7 @@ static unsigned char charset2upper[256] = { | |||
334 | 334 | ||
335 | static int uni2char(wchar_t uni, unsigned char *out, int boundlen) | 335 | static int uni2char(wchar_t uni, unsigned char *out, int boundlen) |
336 | { | 336 | { |
337 | unsigned char *uni2charset; | 337 | const unsigned char *uni2charset; |
338 | unsigned char cl = uni & 0x00ff; | 338 | unsigned char cl = uni & 0x00ff; |
339 | unsigned char ch = (uni & 0xff00) >> 8; | 339 | unsigned char ch = (uni & 0xff00) >> 8; |
340 | 340 | ||
diff --git a/fs/nls/nls_cp864.c b/fs/nls/nls_cp864.c index 01ca7309753e..8d31f435fc6f 100644 --- a/fs/nls/nls_cp864.c +++ b/fs/nls/nls_cp864.c | |||
@@ -13,7 +13,7 @@ | |||
13 | #include <linux/nls.h> | 13 | #include <linux/nls.h> |
14 | #include <linux/errno.h> | 14 | #include <linux/errno.h> |
15 | 15 | ||
16 | static wchar_t charset2uni[256] = { | 16 | static const wchar_t charset2uni[256] = { |
17 | /* 0x00*/ | 17 | /* 0x00*/ |
18 | 0x0000, 0x0001, 0x0002, 0x0003, | 18 | 0x0000, 0x0001, 0x0002, 0x0003, |
19 | 0x0004, 0x0005, 0x0006, 0x0007, | 19 | 0x0004, 0x0005, 0x0006, 0x0007, |
@@ -96,7 +96,7 @@ static wchar_t charset2uni[256] = { | |||
96 | 0xfed9, 0xfef1, 0x25a0, 0x0000, | 96 | 0xfed9, 0xfef1, 0x25a0, 0x0000, |
97 | }; | 97 | }; |
98 | 98 | ||
99 | static unsigned char page00[256] = { | 99 | static const unsigned char page00[256] = { |
100 | 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, /* 0x00-0x07 */ | 100 | 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, /* 0x00-0x07 */ |
101 | 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, /* 0x08-0x0f */ | 101 | 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, /* 0x08-0x0f */ |
102 | 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17, /* 0x10-0x17 */ | 102 | 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17, /* 0x10-0x17 */ |
@@ -131,7 +131,7 @@ static unsigned char page00[256] = { | |||
131 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xdd, /* 0xf0-0xf7 */ | 131 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xdd, /* 0xf0-0xf7 */ |
132 | }; | 132 | }; |
133 | 133 | ||
134 | static unsigned char page03[256] = { | 134 | static const unsigned char page03[256] = { |
135 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x00-0x07 */ | 135 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x00-0x07 */ |
136 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x08-0x0f */ | 136 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x08-0x0f */ |
137 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x10-0x17 */ | 137 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x10-0x17 */ |
@@ -160,7 +160,7 @@ static unsigned char page03[256] = { | |||
160 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x92, 0x00, /* 0xc0-0xc7 */ | 160 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x92, 0x00, /* 0xc0-0xc7 */ |
161 | }; | 161 | }; |
162 | 162 | ||
163 | static unsigned char page06[256] = { | 163 | static const unsigned char page06[256] = { |
164 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x00-0x07 */ | 164 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x00-0x07 */ |
165 | 0x00, 0x00, 0x00, 0x00, 0xac, 0x00, 0x00, 0x00, /* 0x08-0x0f */ | 165 | 0x00, 0x00, 0x00, 0x00, 0xac, 0x00, 0x00, 0x00, /* 0x08-0x0f */ |
166 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x10-0x17 */ | 166 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x10-0x17 */ |
@@ -177,7 +177,7 @@ static unsigned char page06[256] = { | |||
177 | 0xb8, 0xb9, 0x25, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x68-0x6f */ | 177 | 0xb8, 0xb9, 0x25, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x68-0x6f */ |
178 | }; | 178 | }; |
179 | 179 | ||
180 | static unsigned char page22[256] = { | 180 | static const unsigned char page22[256] = { |
181 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x00-0x07 */ | 181 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x00-0x07 */ |
182 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x08-0x0f */ | 182 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x08-0x0f */ |
183 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x10-0x17 */ | 183 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x10-0x17 */ |
@@ -190,7 +190,7 @@ static unsigned char page22[256] = { | |||
190 | 0x96, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x48-0x4f */ | 190 | 0x96, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x48-0x4f */ |
191 | }; | 191 | }; |
192 | 192 | ||
193 | static unsigned char page25[256] = { | 193 | static const unsigned char page25[256] = { |
194 | 0x85, 0x00, 0x86, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x00-0x07 */ | 194 | 0x85, 0x00, 0x86, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x00-0x07 */ |
195 | 0x00, 0x00, 0x00, 0x00, 0x8d, 0x00, 0x00, 0x00, /* 0x08-0x0f */ | 195 | 0x00, 0x00, 0x00, 0x00, 0x8d, 0x00, 0x00, 0x00, /* 0x08-0x0f */ |
196 | 0x8c, 0x00, 0x00, 0x00, 0x8e, 0x00, 0x00, 0x00, /* 0x10-0x17 */ | 196 | 0x8c, 0x00, 0x00, 0x00, 0x8e, 0x00, 0x00, 0x00, /* 0x10-0x17 */ |
@@ -215,7 +215,7 @@ static unsigned char page25[256] = { | |||
215 | 0xfe, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xa0-0xa7 */ | 215 | 0xfe, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xa0-0xa7 */ |
216 | }; | 216 | }; |
217 | 217 | ||
218 | static unsigned char pagefe[256] = { | 218 | static const unsigned char pagefe[256] = { |
219 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x00-0x07 */ | 219 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x00-0x07 */ |
220 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x08-0x0f */ | 220 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x08-0x0f */ |
221 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x10-0x17 */ | 221 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x10-0x17 */ |
@@ -251,7 +251,7 @@ static unsigned char pagefe[256] = { | |||
251 | 0x9a, 0x00, 0x00, 0x9d, 0x9e, 0x00, 0x00, 0x00, /* 0xf8-0xff */ | 251 | 0x9a, 0x00, 0x00, 0x9d, 0x9e, 0x00, 0x00, 0x00, /* 0xf8-0xff */ |
252 | }; | 252 | }; |
253 | 253 | ||
254 | static unsigned char *page_uni2charset[256] = { | 254 | static const unsigned char *const page_uni2charset[256] = { |
255 | page00, NULL, NULL, page03, NULL, NULL, page06, NULL, | 255 | page00, NULL, NULL, page03, NULL, NULL, page06, NULL, |
256 | NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, | 256 | NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, |
257 | NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, | 257 | NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, |
@@ -286,7 +286,7 @@ static unsigned char *page_uni2charset[256] = { | |||
286 | NULL, NULL, NULL, NULL, NULL, NULL, pagefe, NULL, | 286 | NULL, NULL, NULL, NULL, NULL, NULL, pagefe, NULL, |
287 | }; | 287 | }; |
288 | 288 | ||
289 | static unsigned char charset2lower[256] = { | 289 | static const unsigned char charset2lower[256] = { |
290 | 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, /* 0x00-0x07 */ | 290 | 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, /* 0x00-0x07 */ |
291 | 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, /* 0x08-0x0f */ | 291 | 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, /* 0x08-0x0f */ |
292 | 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17, /* 0x10-0x17 */ | 292 | 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17, /* 0x10-0x17 */ |
@@ -322,7 +322,7 @@ static unsigned char charset2lower[256] = { | |||
322 | 0xf8, 0xf9, 0xfa, 0xfb, 0xfc, 0xfd, 0xfe, 0x00, /* 0xf8-0xff */ | 322 | 0xf8, 0xf9, 0xfa, 0xfb, 0xfc, 0xfd, 0xfe, 0x00, /* 0xf8-0xff */ |
323 | }; | 323 | }; |
324 | 324 | ||
325 | static unsigned char charset2upper[256] = { | 325 | static const unsigned char charset2upper[256] = { |
326 | 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, /* 0x00-0x07 */ | 326 | 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, /* 0x00-0x07 */ |
327 | 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, /* 0x08-0x0f */ | 327 | 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, /* 0x08-0x0f */ |
328 | 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17, /* 0x10-0x17 */ | 328 | 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17, /* 0x10-0x17 */ |
@@ -360,7 +360,7 @@ static unsigned char charset2upper[256] = { | |||
360 | 360 | ||
361 | static int uni2char(wchar_t uni, unsigned char *out, int boundlen) | 361 | static int uni2char(wchar_t uni, unsigned char *out, int boundlen) |
362 | { | 362 | { |
363 | unsigned char *uni2charset; | 363 | const unsigned char *uni2charset; |
364 | unsigned char cl = uni & 0x00ff; | 364 | unsigned char cl = uni & 0x00ff; |
365 | unsigned char ch = (uni & 0xff00) >> 8; | 365 | unsigned char ch = (uni & 0xff00) >> 8; |
366 | 366 | ||
diff --git a/fs/nls/nls_cp865.c b/fs/nls/nls_cp865.c index 5ba6ee13e109..4bd902fe3ec9 100644 --- a/fs/nls/nls_cp865.c +++ b/fs/nls/nls_cp865.c | |||
@@ -13,7 +13,7 @@ | |||
13 | #include <linux/nls.h> | 13 | #include <linux/nls.h> |
14 | #include <linux/errno.h> | 14 | #include <linux/errno.h> |
15 | 15 | ||
16 | static wchar_t charset2uni[256] = { | 16 | static const wchar_t charset2uni[256] = { |
17 | /* 0x00*/ | 17 | /* 0x00*/ |
18 | 0x0000, 0x0001, 0x0002, 0x0003, | 18 | 0x0000, 0x0001, 0x0002, 0x0003, |
19 | 0x0004, 0x0005, 0x0006, 0x0007, | 19 | 0x0004, 0x0005, 0x0006, 0x0007, |
@@ -96,7 +96,7 @@ static wchar_t charset2uni[256] = { | |||
96 | 0x207f, 0x00b2, 0x25a0, 0x00a0, | 96 | 0x207f, 0x00b2, 0x25a0, 0x00a0, |
97 | }; | 97 | }; |
98 | 98 | ||
99 | static unsigned char page00[256] = { | 99 | static const unsigned char page00[256] = { |
100 | 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, /* 0x00-0x07 */ | 100 | 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, /* 0x00-0x07 */ |
101 | 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, /* 0x08-0x0f */ | 101 | 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, /* 0x08-0x0f */ |
102 | 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17, /* 0x10-0x17 */ | 102 | 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17, /* 0x10-0x17 */ |
@@ -132,7 +132,7 @@ static unsigned char page00[256] = { | |||
132 | 0x9b, 0x97, 0xa3, 0x96, 0x81, 0x00, 0x00, 0x98, /* 0xf8-0xff */ | 132 | 0x9b, 0x97, 0xa3, 0x96, 0x81, 0x00, 0x00, 0x98, /* 0xf8-0xff */ |
133 | }; | 133 | }; |
134 | 134 | ||
135 | static unsigned char page01[256] = { | 135 | static const unsigned char page01[256] = { |
136 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x00-0x07 */ | 136 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x00-0x07 */ |
137 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x08-0x0f */ | 137 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x08-0x0f */ |
138 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x10-0x17 */ | 138 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x10-0x17 */ |
@@ -155,7 +155,7 @@ static unsigned char page01[256] = { | |||
155 | 0x00, 0x00, 0x9f, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x90-0x97 */ | 155 | 0x00, 0x00, 0x9f, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x90-0x97 */ |
156 | }; | 156 | }; |
157 | 157 | ||
158 | static unsigned char page03[256] = { | 158 | static const unsigned char page03[256] = { |
159 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x00-0x07 */ | 159 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x00-0x07 */ |
160 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x08-0x0f */ | 160 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x08-0x0f */ |
161 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x10-0x17 */ | 161 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x10-0x17 */ |
@@ -184,7 +184,7 @@ static unsigned char page03[256] = { | |||
184 | 0xe3, 0x00, 0x00, 0xe5, 0xe7, 0x00, 0xed, 0x00, /* 0xc0-0xc7 */ | 184 | 0xe3, 0x00, 0x00, 0xe5, 0xe7, 0x00, 0xed, 0x00, /* 0xc0-0xc7 */ |
185 | }; | 185 | }; |
186 | 186 | ||
187 | static unsigned char page20[256] = { | 187 | static const unsigned char page20[256] = { |
188 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x00-0x07 */ | 188 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x00-0x07 */ |
189 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x08-0x0f */ | 189 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x08-0x0f */ |
190 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x10-0x17 */ | 190 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x10-0x17 */ |
@@ -209,7 +209,7 @@ static unsigned char page20[256] = { | |||
209 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x9e, /* 0xa0-0xa7 */ | 209 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x9e, /* 0xa0-0xa7 */ |
210 | }; | 210 | }; |
211 | 211 | ||
212 | static unsigned char page22[256] = { | 212 | static const unsigned char page22[256] = { |
213 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x00-0x07 */ | 213 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x00-0x07 */ |
214 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x08-0x0f */ | 214 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x08-0x0f */ |
215 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x10-0x17 */ | 215 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x10-0x17 */ |
@@ -225,7 +225,7 @@ static unsigned char page22[256] = { | |||
225 | 0x00, 0xf0, 0x00, 0x00, 0xf3, 0xf2, 0x00, 0x00, /* 0x60-0x67 */ | 225 | 0x00, 0xf0, 0x00, 0x00, 0xf3, 0xf2, 0x00, 0x00, /* 0x60-0x67 */ |
226 | }; | 226 | }; |
227 | 227 | ||
228 | static unsigned char page23[256] = { | 228 | static const unsigned char page23[256] = { |
229 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x00-0x07 */ | 229 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x00-0x07 */ |
230 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x08-0x0f */ | 230 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x08-0x0f */ |
231 | 0xa9, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x10-0x17 */ | 231 | 0xa9, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x10-0x17 */ |
@@ -233,7 +233,7 @@ static unsigned char page23[256] = { | |||
233 | 0xf4, 0xf5, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x20-0x27 */ | 233 | 0xf4, 0xf5, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x20-0x27 */ |
234 | }; | 234 | }; |
235 | 235 | ||
236 | static unsigned char page25[256] = { | 236 | static const unsigned char page25[256] = { |
237 | 0xc4, 0x00, 0xb3, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x00-0x07 */ | 237 | 0xc4, 0x00, 0xb3, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x00-0x07 */ |
238 | 0x00, 0x00, 0x00, 0x00, 0xda, 0x00, 0x00, 0x00, /* 0x08-0x0f */ | 238 | 0x00, 0x00, 0x00, 0x00, 0xda, 0x00, 0x00, 0x00, /* 0x08-0x0f */ |
239 | 0xbf, 0x00, 0x00, 0x00, 0xc0, 0x00, 0x00, 0x00, /* 0x10-0x17 */ | 239 | 0xbf, 0x00, 0x00, 0x00, 0xc0, 0x00, 0x00, 0x00, /* 0x10-0x17 */ |
@@ -258,7 +258,7 @@ static unsigned char page25[256] = { | |||
258 | 0xfe, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xa0-0xa7 */ | 258 | 0xfe, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xa0-0xa7 */ |
259 | }; | 259 | }; |
260 | 260 | ||
261 | static unsigned char *page_uni2charset[256] = { | 261 | static const unsigned char *const page_uni2charset[256] = { |
262 | page00, page01, NULL, page03, NULL, NULL, NULL, NULL, | 262 | page00, page01, NULL, page03, NULL, NULL, NULL, NULL, |
263 | NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, | 263 | NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, |
264 | NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, | 264 | NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, |
@@ -266,7 +266,7 @@ static unsigned char *page_uni2charset[256] = { | |||
266 | page20, NULL, page22, page23, NULL, page25, NULL, NULL, | 266 | page20, NULL, page22, page23, NULL, page25, NULL, NULL, |
267 | }; | 267 | }; |
268 | 268 | ||
269 | static unsigned char charset2lower[256] = { | 269 | static const unsigned char charset2lower[256] = { |
270 | 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, /* 0x00-0x07 */ | 270 | 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, /* 0x00-0x07 */ |
271 | 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, /* 0x08-0x0f */ | 271 | 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, /* 0x08-0x0f */ |
272 | 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17, /* 0x10-0x17 */ | 272 | 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17, /* 0x10-0x17 */ |
@@ -302,7 +302,7 @@ static unsigned char charset2lower[256] = { | |||
302 | 0xf8, 0xf9, 0xfa, 0xfb, 0xfc, 0xfd, 0xfe, 0xff, /* 0xf8-0xff */ | 302 | 0xf8, 0xf9, 0xfa, 0xfb, 0xfc, 0xfd, 0xfe, 0xff, /* 0xf8-0xff */ |
303 | }; | 303 | }; |
304 | 304 | ||
305 | static unsigned char charset2upper[256] = { | 305 | static const unsigned char charset2upper[256] = { |
306 | 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, /* 0x00-0x07 */ | 306 | 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, /* 0x00-0x07 */ |
307 | 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, /* 0x08-0x0f */ | 307 | 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, /* 0x08-0x0f */ |
308 | 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17, /* 0x10-0x17 */ | 308 | 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17, /* 0x10-0x17 */ |
@@ -340,7 +340,7 @@ static unsigned char charset2upper[256] = { | |||
340 | 340 | ||
341 | static int uni2char(wchar_t uni, unsigned char *out, int boundlen) | 341 | static int uni2char(wchar_t uni, unsigned char *out, int boundlen) |
342 | { | 342 | { |
343 | unsigned char *uni2charset; | 343 | const unsigned char *uni2charset; |
344 | unsigned char cl = uni & 0x00ff; | 344 | unsigned char cl = uni & 0x00ff; |
345 | unsigned char ch = (uni & 0xff00) >> 8; | 345 | unsigned char ch = (uni & 0xff00) >> 8; |
346 | 346 | ||
diff --git a/fs/nls/nls_cp866.c b/fs/nls/nls_cp866.c index c5f82221c9fe..bdc7cb391398 100644 --- a/fs/nls/nls_cp866.c +++ b/fs/nls/nls_cp866.c | |||
@@ -13,7 +13,7 @@ | |||
13 | #include <linux/nls.h> | 13 | #include <linux/nls.h> |
14 | #include <linux/errno.h> | 14 | #include <linux/errno.h> |
15 | 15 | ||
16 | static wchar_t charset2uni[256] = { | 16 | static const wchar_t charset2uni[256] = { |
17 | /* 0x00*/ | 17 | /* 0x00*/ |
18 | 0x0000, 0x0001, 0x0002, 0x0003, | 18 | 0x0000, 0x0001, 0x0002, 0x0003, |
19 | 0x0004, 0x0005, 0x0006, 0x0007, | 19 | 0x0004, 0x0005, 0x0006, 0x0007, |
@@ -96,7 +96,7 @@ static wchar_t charset2uni[256] = { | |||
96 | 0x2116, 0x00a4, 0x25a0, 0x00a0, | 96 | 0x2116, 0x00a4, 0x25a0, 0x00a0, |
97 | }; | 97 | }; |
98 | 98 | ||
99 | static unsigned char page00[256] = { | 99 | static const unsigned char page00[256] = { |
100 | 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, /* 0x00-0x07 */ | 100 | 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, /* 0x00-0x07 */ |
101 | 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, /* 0x08-0x0f */ | 101 | 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, /* 0x08-0x0f */ |
102 | 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17, /* 0x10-0x17 */ | 102 | 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17, /* 0x10-0x17 */ |
@@ -123,7 +123,7 @@ static unsigned char page00[256] = { | |||
123 | 0xf8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfa, /* 0xb0-0xb7 */ | 123 | 0xf8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfa, /* 0xb0-0xb7 */ |
124 | }; | 124 | }; |
125 | 125 | ||
126 | static unsigned char page04[256] = { | 126 | static const unsigned char page04[256] = { |
127 | 0x00, 0xf0, 0x00, 0x00, 0xf2, 0x00, 0x00, 0xf4, /* 0x00-0x07 */ | 127 | 0x00, 0xf0, 0x00, 0x00, 0xf2, 0x00, 0x00, 0xf4, /* 0x00-0x07 */ |
128 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf6, 0x00, /* 0x08-0x0f */ | 128 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf6, 0x00, /* 0x08-0x0f */ |
129 | 0x80, 0x81, 0x82, 0x83, 0x84, 0x85, 0x86, 0x87, /* 0x10-0x17 */ | 129 | 0x80, 0x81, 0x82, 0x83, 0x84, 0x85, 0x86, 0x87, /* 0x10-0x17 */ |
@@ -138,20 +138,20 @@ static unsigned char page04[256] = { | |||
138 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf7, 0x00, /* 0x58-0x5f */ | 138 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf7, 0x00, /* 0x58-0x5f */ |
139 | }; | 139 | }; |
140 | 140 | ||
141 | static unsigned char page21[256] = { | 141 | static const unsigned char page21[256] = { |
142 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x00-0x07 */ | 142 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x00-0x07 */ |
143 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x08-0x0f */ | 143 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x08-0x0f */ |
144 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfc, 0x00, /* 0x10-0x17 */ | 144 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfc, 0x00, /* 0x10-0x17 */ |
145 | }; | 145 | }; |
146 | 146 | ||
147 | static unsigned char page22[256] = { | 147 | static const unsigned char page22[256] = { |
148 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x00-0x07 */ | 148 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x00-0x07 */ |
149 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x08-0x0f */ | 149 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x08-0x0f */ |
150 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x10-0x17 */ | 150 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x10-0x17 */ |
151 | 0x00, 0xf9, 0xfb, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x18-0x1f */ | 151 | 0x00, 0xf9, 0xfb, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x18-0x1f */ |
152 | }; | 152 | }; |
153 | 153 | ||
154 | static unsigned char page25[256] = { | 154 | static const unsigned char page25[256] = { |
155 | 0xc4, 0x00, 0xb3, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x00-0x07 */ | 155 | 0xc4, 0x00, 0xb3, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x00-0x07 */ |
156 | 0x00, 0x00, 0x00, 0x00, 0xda, 0x00, 0x00, 0x00, /* 0x08-0x0f */ | 156 | 0x00, 0x00, 0x00, 0x00, 0xda, 0x00, 0x00, 0x00, /* 0x08-0x0f */ |
157 | 0xbf, 0x00, 0x00, 0x00, 0xc0, 0x00, 0x00, 0x00, /* 0x10-0x17 */ | 157 | 0xbf, 0x00, 0x00, 0x00, 0xc0, 0x00, 0x00, 0x00, /* 0x10-0x17 */ |
@@ -176,7 +176,7 @@ static unsigned char page25[256] = { | |||
176 | 0xfe, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xa0-0xa7 */ | 176 | 0xfe, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xa0-0xa7 */ |
177 | }; | 177 | }; |
178 | 178 | ||
179 | static unsigned char *page_uni2charset[256] = { | 179 | static const unsigned char *const page_uni2charset[256] = { |
180 | page00, NULL, NULL, NULL, page04, NULL, NULL, NULL, | 180 | page00, NULL, NULL, NULL, page04, NULL, NULL, NULL, |
181 | NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, | 181 | NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, |
182 | NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, | 182 | NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, |
@@ -184,7 +184,7 @@ static unsigned char *page_uni2charset[256] = { | |||
184 | NULL, page21, page22, NULL, NULL, page25, NULL, NULL, | 184 | NULL, page21, page22, NULL, NULL, page25, NULL, NULL, |
185 | }; | 185 | }; |
186 | 186 | ||
187 | static unsigned char charset2lower[256] = { | 187 | static const unsigned char charset2lower[256] = { |
188 | 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, /* 0x00-0x07 */ | 188 | 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, /* 0x00-0x07 */ |
189 | 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, /* 0x08-0x0f */ | 189 | 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, /* 0x08-0x0f */ |
190 | 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17, /* 0x10-0x17 */ | 190 | 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17, /* 0x10-0x17 */ |
@@ -220,7 +220,7 @@ static unsigned char charset2lower[256] = { | |||
220 | 0xf8, 0xf9, 0xfa, 0xfb, 0xfc, 0xfd, 0xfe, 0xff, /* 0xf8-0xff */ | 220 | 0xf8, 0xf9, 0xfa, 0xfb, 0xfc, 0xfd, 0xfe, 0xff, /* 0xf8-0xff */ |
221 | }; | 221 | }; |
222 | 222 | ||
223 | static unsigned char charset2upper[256] = { | 223 | static const unsigned char charset2upper[256] = { |
224 | 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, /* 0x00-0x07 */ | 224 | 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, /* 0x00-0x07 */ |
225 | 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, /* 0x08-0x0f */ | 225 | 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, /* 0x08-0x0f */ |
226 | 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17, /* 0x10-0x17 */ | 226 | 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17, /* 0x10-0x17 */ |
@@ -258,7 +258,7 @@ static unsigned char charset2upper[256] = { | |||
258 | 258 | ||
259 | static int uni2char(wchar_t uni, unsigned char *out, int boundlen) | 259 | static int uni2char(wchar_t uni, unsigned char *out, int boundlen) |
260 | { | 260 | { |
261 | unsigned char *uni2charset; | 261 | const unsigned char *uni2charset; |
262 | unsigned char cl = uni & 0x00ff; | 262 | unsigned char cl = uni & 0x00ff; |
263 | unsigned char ch = (uni & 0xff00) >> 8; | 263 | unsigned char ch = (uni & 0xff00) >> 8; |
264 | 264 | ||
diff --git a/fs/nls/nls_cp869.c b/fs/nls/nls_cp869.c index 8d4015124d11..9f283a2b151a 100644 --- a/fs/nls/nls_cp869.c +++ b/fs/nls/nls_cp869.c | |||
@@ -13,7 +13,7 @@ | |||
13 | #include <linux/nls.h> | 13 | #include <linux/nls.h> |
14 | #include <linux/errno.h> | 14 | #include <linux/errno.h> |
15 | 15 | ||
16 | static wchar_t charset2uni[256] = { | 16 | static const wchar_t charset2uni[256] = { |
17 | /* 0x00*/ | 17 | /* 0x00*/ |
18 | 0x0000, 0x0001, 0x0002, 0x0003, | 18 | 0x0000, 0x0001, 0x0002, 0x0003, |
19 | 0x0004, 0x0005, 0x0006, 0x0007, | 19 | 0x0004, 0x0005, 0x0006, 0x0007, |
@@ -96,7 +96,7 @@ static wchar_t charset2uni[256] = { | |||
96 | 0x03b0, 0x03ce, 0x25a0, 0x00a0, | 96 | 0x03b0, 0x03ce, 0x25a0, 0x00a0, |
97 | }; | 97 | }; |
98 | 98 | ||
99 | static unsigned char page00[256] = { | 99 | static const unsigned char page00[256] = { |
100 | 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, /* 0x00-0x07 */ | 100 | 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, /* 0x00-0x07 */ |
101 | 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, /* 0x08-0x0f */ | 101 | 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, /* 0x08-0x0f */ |
102 | 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17, /* 0x10-0x17 */ | 102 | 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17, /* 0x10-0x17 */ |
@@ -124,7 +124,7 @@ static unsigned char page00[256] = { | |||
124 | 0x00, 0x00, 0x00, 0xaf, 0x00, 0xab, 0x00, 0x00, /* 0xb8-0xbf */ | 124 | 0x00, 0x00, 0x00, 0xaf, 0x00, 0xab, 0x00, 0x00, /* 0xb8-0xbf */ |
125 | }; | 125 | }; |
126 | 126 | ||
127 | static unsigned char page03[256] = { | 127 | static const unsigned char page03[256] = { |
128 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x00-0x07 */ | 128 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x00-0x07 */ |
129 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x08-0x0f */ | 129 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x08-0x0f */ |
130 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x10-0x17 */ | 130 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x10-0x17 */ |
@@ -154,14 +154,14 @@ static unsigned char page03[256] = { | |||
154 | 0xf6, 0xfa, 0xa0, 0xfb, 0xa2, 0xa3, 0xfd, 0x00, /* 0xc8-0xcf */ | 154 | 0xf6, 0xfa, 0xa0, 0xfb, 0xa2, 0xa3, 0xfd, 0x00, /* 0xc8-0xcf */ |
155 | }; | 155 | }; |
156 | 156 | ||
157 | static unsigned char page20[256] = { | 157 | static const unsigned char page20[256] = { |
158 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x00-0x07 */ | 158 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x00-0x07 */ |
159 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x08-0x0f */ | 159 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x08-0x0f */ |
160 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x8e, 0x00, 0x00, /* 0x10-0x17 */ | 160 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x8e, 0x00, 0x00, /* 0x10-0x17 */ |
161 | 0x8b, 0x8c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x18-0x1f */ | 161 | 0x8b, 0x8c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x18-0x1f */ |
162 | }; | 162 | }; |
163 | 163 | ||
164 | static unsigned char page25[256] = { | 164 | static const unsigned char page25[256] = { |
165 | 0xc4, 0x00, 0xb3, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x00-0x07 */ | 165 | 0xc4, 0x00, 0xb3, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x00-0x07 */ |
166 | 0x00, 0x00, 0x00, 0x00, 0xda, 0x00, 0x00, 0x00, /* 0x08-0x0f */ | 166 | 0x00, 0x00, 0x00, 0x00, 0xda, 0x00, 0x00, 0x00, /* 0x08-0x0f */ |
167 | 0xbf, 0x00, 0x00, 0x00, 0xc0, 0x00, 0x00, 0x00, /* 0x10-0x17 */ | 167 | 0xbf, 0x00, 0x00, 0x00, 0xc0, 0x00, 0x00, 0x00, /* 0x10-0x17 */ |
@@ -186,7 +186,7 @@ static unsigned char page25[256] = { | |||
186 | 0xfe, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xa0-0xa7 */ | 186 | 0xfe, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xa0-0xa7 */ |
187 | }; | 187 | }; |
188 | 188 | ||
189 | static unsigned char *page_uni2charset[256] = { | 189 | static const unsigned char *const page_uni2charset[256] = { |
190 | page00, NULL, NULL, page03, NULL, NULL, NULL, NULL, | 190 | page00, NULL, NULL, page03, NULL, NULL, NULL, NULL, |
191 | NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, | 191 | NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, |
192 | NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, | 192 | NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, |
@@ -194,7 +194,7 @@ static unsigned char *page_uni2charset[256] = { | |||
194 | page20, NULL, NULL, NULL, NULL, page25, NULL, NULL, | 194 | page20, NULL, NULL, NULL, NULL, page25, NULL, NULL, |
195 | }; | 195 | }; |
196 | 196 | ||
197 | static unsigned char charset2lower[256] = { | 197 | static const unsigned char charset2lower[256] = { |
198 | 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, /* 0x00-0x07 */ | 198 | 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, /* 0x00-0x07 */ |
199 | 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, /* 0x08-0x0f */ | 199 | 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, /* 0x08-0x0f */ |
200 | 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17, /* 0x10-0x17 */ | 200 | 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17, /* 0x10-0x17 */ |
@@ -230,7 +230,7 @@ static unsigned char charset2lower[256] = { | |||
230 | 0xf8, 0xf9, 0xfa, 0xfb, 0xfc, 0xfd, 0xfe, 0xff, /* 0xf8-0xff */ | 230 | 0xf8, 0xf9, 0xfa, 0xfb, 0xfc, 0xfd, 0xfe, 0xff, /* 0xf8-0xff */ |
231 | }; | 231 | }; |
232 | 232 | ||
233 | static unsigned char charset2upper[256] = { | 233 | static const unsigned char charset2upper[256] = { |
234 | 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, /* 0x00-0x07 */ | 234 | 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, /* 0x00-0x07 */ |
235 | 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, /* 0x08-0x0f */ | 235 | 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, /* 0x08-0x0f */ |
236 | 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17, /* 0x10-0x17 */ | 236 | 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17, /* 0x10-0x17 */ |
@@ -268,7 +268,7 @@ static unsigned char charset2upper[256] = { | |||
268 | 268 | ||
269 | static int uni2char(wchar_t uni, unsigned char *out, int boundlen) | 269 | static int uni2char(wchar_t uni, unsigned char *out, int boundlen) |
270 | { | 270 | { |
271 | unsigned char *uni2charset; | 271 | const unsigned char *uni2charset; |
272 | unsigned char cl = uni & 0x00ff; | 272 | unsigned char cl = uni & 0x00ff; |
273 | unsigned char ch = (uni & 0xff00) >> 8; | 273 | unsigned char ch = (uni & 0xff00) >> 8; |
274 | 274 | ||
diff --git a/fs/nls/nls_cp874.c b/fs/nls/nls_cp874.c index df042052c2db..0b3c4886f8c0 100644 --- a/fs/nls/nls_cp874.c +++ b/fs/nls/nls_cp874.c | |||
@@ -13,7 +13,7 @@ | |||
13 | #include <linux/nls.h> | 13 | #include <linux/nls.h> |
14 | #include <linux/errno.h> | 14 | #include <linux/errno.h> |
15 | 15 | ||
16 | static wchar_t charset2uni[256] = { | 16 | static const wchar_t charset2uni[256] = { |
17 | /* 0x00*/ | 17 | /* 0x00*/ |
18 | 0x0000, 0x0001, 0x0002, 0x0003, | 18 | 0x0000, 0x0001, 0x0002, 0x0003, |
19 | 0x0004, 0x0005, 0x0006, 0x0007, | 19 | 0x0004, 0x0005, 0x0006, 0x0007, |
@@ -96,7 +96,7 @@ static wchar_t charset2uni[256] = { | |||
96 | 0x0000, 0x0000, 0x0000, 0x0000, | 96 | 0x0000, 0x0000, 0x0000, 0x0000, |
97 | }; | 97 | }; |
98 | 98 | ||
99 | static unsigned char page00[256] = { | 99 | static const unsigned char page00[256] = { |
100 | 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, /* 0x00-0x07 */ | 100 | 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, /* 0x00-0x07 */ |
101 | 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, /* 0x08-0x0f */ | 101 | 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, /* 0x08-0x0f */ |
102 | 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17, /* 0x10-0x17 */ | 102 | 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17, /* 0x10-0x17 */ |
@@ -121,7 +121,7 @@ static unsigned char page00[256] = { | |||
121 | 0xa0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xa0-0xa7 */ | 121 | 0xa0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xa0-0xa7 */ |
122 | }; | 122 | }; |
123 | 123 | ||
124 | static unsigned char page0e[256] = { | 124 | static const unsigned char page0e[256] = { |
125 | 0x00, 0xa1, 0xa2, 0xa3, 0xa4, 0xa5, 0xa6, 0xa7, /* 0x00-0x07 */ | 125 | 0x00, 0xa1, 0xa2, 0xa3, 0xa4, 0xa5, 0xa6, 0xa7, /* 0x00-0x07 */ |
126 | 0xa8, 0xa9, 0xaa, 0xab, 0xac, 0xad, 0xae, 0xaf, /* 0x08-0x0f */ | 126 | 0xa8, 0xa9, 0xaa, 0xab, 0xac, 0xad, 0xae, 0xaf, /* 0x08-0x0f */ |
127 | 0xb0, 0xb1, 0xb2, 0xb3, 0xb4, 0xb5, 0xb6, 0xb7, /* 0x10-0x17 */ | 127 | 0xb0, 0xb1, 0xb2, 0xb3, 0xb4, 0xb5, 0xb6, 0xb7, /* 0x10-0x17 */ |
@@ -136,7 +136,7 @@ static unsigned char page0e[256] = { | |||
136 | 0xf8, 0xf9, 0xfa, 0xfb, 0x00, 0x00, 0x00, 0x00, /* 0x58-0x5f */ | 136 | 0xf8, 0xf9, 0xfa, 0xfb, 0x00, 0x00, 0x00, 0x00, /* 0x58-0x5f */ |
137 | }; | 137 | }; |
138 | 138 | ||
139 | static unsigned char page20[256] = { | 139 | static const unsigned char page20[256] = { |
140 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x00-0x07 */ | 140 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x00-0x07 */ |
141 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x08-0x0f */ | 141 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x08-0x0f */ |
142 | 0x00, 0x00, 0x00, 0x96, 0x97, 0x00, 0x00, 0x00, /* 0x10-0x17 */ | 142 | 0x00, 0x00, 0x00, 0x96, 0x97, 0x00, 0x00, 0x00, /* 0x10-0x17 */ |
@@ -144,7 +144,7 @@ static unsigned char page20[256] = { | |||
144 | 0x00, 0x00, 0x95, 0x00, 0x00, 0x00, 0x85, 0x00, /* 0x20-0x27 */ | 144 | 0x00, 0x00, 0x95, 0x00, 0x00, 0x00, 0x85, 0x00, /* 0x20-0x27 */ |
145 | }; | 145 | }; |
146 | 146 | ||
147 | static unsigned char *page_uni2charset[256] = { | 147 | static const unsigned char *const page_uni2charset[256] = { |
148 | page00, NULL, NULL, NULL, NULL, NULL, NULL, NULL, | 148 | page00, NULL, NULL, NULL, NULL, NULL, NULL, NULL, |
149 | NULL, NULL, NULL, NULL, NULL, NULL, page0e, NULL, | 149 | NULL, NULL, NULL, NULL, NULL, NULL, page0e, NULL, |
150 | NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, | 150 | NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, |
@@ -152,7 +152,7 @@ static unsigned char *page_uni2charset[256] = { | |||
152 | page20, NULL, NULL, NULL, NULL, NULL, NULL, NULL, | 152 | page20, NULL, NULL, NULL, NULL, NULL, NULL, NULL, |
153 | }; | 153 | }; |
154 | 154 | ||
155 | static unsigned char charset2lower[256] = { | 155 | static const unsigned char charset2lower[256] = { |
156 | 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, /* 0x00-0x07 */ | 156 | 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, /* 0x00-0x07 */ |
157 | 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, /* 0x08-0x0f */ | 157 | 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, /* 0x08-0x0f */ |
158 | 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17, /* 0x10-0x17 */ | 158 | 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17, /* 0x10-0x17 */ |
@@ -188,7 +188,7 @@ static unsigned char charset2lower[256] = { | |||
188 | 0xf8, 0xf9, 0xfa, 0xfb, 0x00, 0x00, 0x00, 0x00, /* 0xf8-0xff */ | 188 | 0xf8, 0xf9, 0xfa, 0xfb, 0x00, 0x00, 0x00, 0x00, /* 0xf8-0xff */ |
189 | }; | 189 | }; |
190 | 190 | ||
191 | static unsigned char charset2upper[256] = { | 191 | static const unsigned char charset2upper[256] = { |
192 | 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, /* 0x00-0x07 */ | 192 | 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, /* 0x00-0x07 */ |
193 | 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, /* 0x08-0x0f */ | 193 | 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, /* 0x08-0x0f */ |
194 | 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17, /* 0x10-0x17 */ | 194 | 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17, /* 0x10-0x17 */ |
@@ -226,7 +226,7 @@ static unsigned char charset2upper[256] = { | |||
226 | 226 | ||
227 | static int uni2char(wchar_t uni, unsigned char *out, int boundlen) | 227 | static int uni2char(wchar_t uni, unsigned char *out, int boundlen) |
228 | { | 228 | { |
229 | unsigned char *uni2charset; | 229 | const unsigned char *uni2charset; |
230 | unsigned char cl = uni & 0x00ff; | 230 | unsigned char cl = uni & 0x00ff; |
231 | unsigned char ch = (uni & 0xff00) >> 8; | 231 | unsigned char ch = (uni & 0xff00) >> 8; |
232 | 232 | ||
diff --git a/fs/nls/nls_cp932.c b/fs/nls/nls_cp932.c index 2a9ccf3bc7ef..0ffed6f1cebb 100644 --- a/fs/nls/nls_cp932.c +++ b/fs/nls/nls_cp932.c | |||
@@ -13,7 +13,7 @@ | |||
13 | #include <linux/nls.h> | 13 | #include <linux/nls.h> |
14 | #include <linux/errno.h> | 14 | #include <linux/errno.h> |
15 | 15 | ||
16 | static wchar_t c2u_81[256] = { | 16 | static const wchar_t c2u_81[256] = { |
17 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x00-0x07 */ | 17 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x00-0x07 */ |
18 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x08-0x0F */ | 18 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x08-0x0F */ |
19 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x10-0x17 */ | 19 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x10-0x17 */ |
@@ -49,7 +49,7 @@ static wchar_t c2u_81[256] = { | |||
49 | 0x0000,0x0000,0x0000,0x0000,0x25EF,0x0000,0x0000,0x0000,/* 0xF8-0xFF */ | 49 | 0x0000,0x0000,0x0000,0x0000,0x25EF,0x0000,0x0000,0x0000,/* 0xF8-0xFF */ |
50 | }; | 50 | }; |
51 | 51 | ||
52 | static wchar_t c2u_82[256] = { | 52 | static const wchar_t c2u_82[256] = { |
53 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x00-0x07 */ | 53 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x00-0x07 */ |
54 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x08-0x0F */ | 54 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x08-0x0F */ |
55 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x10-0x17 */ | 55 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x10-0x17 */ |
@@ -84,7 +84,7 @@ static wchar_t c2u_82[256] = { | |||
84 | 0x3092,0x3093,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0xF0-0xF7 */ | 84 | 0x3092,0x3093,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0xF0-0xF7 */ |
85 | }; | 85 | }; |
86 | 86 | ||
87 | static wchar_t c2u_83[256] = { | 87 | static const wchar_t c2u_83[256] = { |
88 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x00-0x07 */ | 88 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x00-0x07 */ |
89 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x08-0x0F */ | 89 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x08-0x0F */ |
90 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x10-0x17 */ | 90 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x10-0x17 */ |
@@ -115,7 +115,7 @@ static wchar_t c2u_83[256] = { | |||
115 | 0x03C3,0x03C4,0x03C5,0x03C6,0x03C7,0x03C8,0x03C9,0x0000,/* 0xD0-0xD7 */ | 115 | 0x03C3,0x03C4,0x03C5,0x03C6,0x03C7,0x03C8,0x03C9,0x0000,/* 0xD0-0xD7 */ |
116 | }; | 116 | }; |
117 | 117 | ||
118 | static wchar_t c2u_84[256] = { | 118 | static const wchar_t c2u_84[256] = { |
119 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x00-0x07 */ | 119 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x00-0x07 */ |
120 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x08-0x0F */ | 120 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x08-0x0F */ |
121 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x10-0x17 */ | 121 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x10-0x17 */ |
@@ -143,7 +143,7 @@ static wchar_t c2u_84[256] = { | |||
143 | 0x2537,0x253F,0x251D,0x2530,0x2525,0x2538,0x2542,0x0000,/* 0xB8-0xBF */ | 143 | 0x2537,0x253F,0x251D,0x2530,0x2525,0x2538,0x2542,0x0000,/* 0xB8-0xBF */ |
144 | }; | 144 | }; |
145 | 145 | ||
146 | static wchar_t c2u_87[256] = { | 146 | static const wchar_t c2u_87[256] = { |
147 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x00-0x07 */ | 147 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x00-0x07 */ |
148 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x08-0x0F */ | 148 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x08-0x0F */ |
149 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x10-0x17 */ | 149 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x10-0x17 */ |
@@ -167,7 +167,7 @@ static wchar_t c2u_87[256] = { | |||
167 | 0x221F,0x22BF,0x2235,0x2229,0x222A,0x0000,0x0000,0x0000,/* 0x98-0x9F */ | 167 | 0x221F,0x22BF,0x2235,0x2229,0x222A,0x0000,0x0000,0x0000,/* 0x98-0x9F */ |
168 | }; | 168 | }; |
169 | 169 | ||
170 | static wchar_t c2u_88[256] = { | 170 | static const wchar_t c2u_88[256] = { |
171 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x00-0x07 */ | 171 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x00-0x07 */ |
172 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x08-0x0F */ | 172 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x08-0x0F */ |
173 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x10-0x17 */ | 173 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x10-0x17 */ |
@@ -203,7 +203,7 @@ static wchar_t c2u_88[256] = { | |||
203 | 0x5F15,0x98F2,0x6DEB,0x80E4,0x852D,0x0000,0x0000,0x0000,/* 0xF8-0xFF */ | 203 | 0x5F15,0x98F2,0x6DEB,0x80E4,0x852D,0x0000,0x0000,0x0000,/* 0xF8-0xFF */ |
204 | }; | 204 | }; |
205 | 205 | ||
206 | static wchar_t c2u_89[256] = { | 206 | static const wchar_t c2u_89[256] = { |
207 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x00-0x07 */ | 207 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x00-0x07 */ |
208 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x08-0x0F */ | 208 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x08-0x0F */ |
209 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x10-0x17 */ | 209 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x10-0x17 */ |
@@ -239,7 +239,7 @@ static wchar_t c2u_89[256] = { | |||
239 | 0x6062,0x61D0,0x6212,0x62D0,0x6539,0x0000,0x0000,0x0000,/* 0xF8-0xFF */ | 239 | 0x6062,0x61D0,0x6212,0x62D0,0x6539,0x0000,0x0000,0x0000,/* 0xF8-0xFF */ |
240 | }; | 240 | }; |
241 | 241 | ||
242 | static wchar_t c2u_8A[256] = { | 242 | static const wchar_t c2u_8A[256] = { |
243 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x00-0x07 */ | 243 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x00-0x07 */ |
244 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x08-0x0F */ | 244 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x08-0x0F */ |
245 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x10-0x17 */ | 245 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x10-0x17 */ |
@@ -275,7 +275,7 @@ static wchar_t c2u_8A[256] = { | |||
275 | 0x65D7,0x65E2,0x671F,0x68CB,0x68C4,0x0000,0x0000,0x0000,/* 0xF8-0xFF */ | 275 | 0x65D7,0x65E2,0x671F,0x68CB,0x68C4,0x0000,0x0000,0x0000,/* 0xF8-0xFF */ |
276 | }; | 276 | }; |
277 | 277 | ||
278 | static wchar_t c2u_8B[256] = { | 278 | static const wchar_t c2u_8B[256] = { |
279 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x00-0x07 */ | 279 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x00-0x07 */ |
280 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x08-0x0F */ | 280 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x08-0x0F */ |
281 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x10-0x17 */ | 281 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x10-0x17 */ |
@@ -311,7 +311,7 @@ static wchar_t c2u_8B[256] = { | |||
311 | 0x4E32,0x6ADB,0x91E7,0x5C51,0x5C48,0x0000,0x0000,0x0000,/* 0xF8-0xFF */ | 311 | 0x4E32,0x6ADB,0x91E7,0x5C51,0x5C48,0x0000,0x0000,0x0000,/* 0xF8-0xFF */ |
312 | }; | 312 | }; |
313 | 313 | ||
314 | static wchar_t c2u_8C[256] = { | 314 | static const wchar_t c2u_8C[256] = { |
315 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x00-0x07 */ | 315 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x00-0x07 */ |
316 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x08-0x0F */ | 316 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x08-0x0F */ |
317 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x10-0x17 */ | 317 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x10-0x17 */ |
@@ -347,7 +347,7 @@ static wchar_t c2u_8C[256] = { | |||
347 | 0x52B9,0x52FE,0x539A,0x53E3,0x5411,0x0000,0x0000,0x0000,/* 0xF8-0xFF */ | 347 | 0x52B9,0x52FE,0x539A,0x53E3,0x5411,0x0000,0x0000,0x0000,/* 0xF8-0xFF */ |
348 | }; | 348 | }; |
349 | 349 | ||
350 | static wchar_t c2u_8D[256] = { | 350 | static const wchar_t c2u_8D[256] = { |
351 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x00-0x07 */ | 351 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x00-0x07 */ |
352 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x08-0x0F */ | 352 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x08-0x0F */ |
353 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x10-0x17 */ | 353 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x10-0x17 */ |
@@ -383,7 +383,7 @@ static wchar_t c2u_8D[256] = { | |||
383 | 0x9BAD,0x7B39,0x5319,0x518A,0x5237,0x0000,0x0000,0x0000,/* 0xF8-0xFF */ | 383 | 0x9BAD,0x7B39,0x5319,0x518A,0x5237,0x0000,0x0000,0x0000,/* 0xF8-0xFF */ |
384 | }; | 384 | }; |
385 | 385 | ||
386 | static wchar_t c2u_8E[256] = { | 386 | static const wchar_t c2u_8E[256] = { |
387 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x00-0x07 */ | 387 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x00-0x07 */ |
388 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x08-0x0F */ | 388 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x08-0x0F */ |
389 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x10-0x17 */ | 389 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x10-0x17 */ |
@@ -419,7 +419,7 @@ static wchar_t c2u_8E[256] = { | |||
419 | 0x7DAC,0x9700,0x56DA,0x53CE,0x5468,0x0000,0x0000,0x0000,/* 0xF8-0xFF */ | 419 | 0x7DAC,0x9700,0x56DA,0x53CE,0x5468,0x0000,0x0000,0x0000,/* 0xF8-0xFF */ |
420 | }; | 420 | }; |
421 | 421 | ||
422 | static wchar_t c2u_8F[256] = { | 422 | static const wchar_t c2u_8F[256] = { |
423 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x00-0x07 */ | 423 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x00-0x07 */ |
424 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x08-0x0F */ | 424 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x08-0x0F */ |
425 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x10-0x17 */ | 425 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x10-0x17 */ |
@@ -455,7 +455,7 @@ static wchar_t c2u_8F[256] = { | |||
455 | 0x91B8,0x9320,0x5631,0x57F4,0x98FE,0x0000,0x0000,0x0000,/* 0xF8-0xFF */ | 455 | 0x91B8,0x9320,0x5631,0x57F4,0x98FE,0x0000,0x0000,0x0000,/* 0xF8-0xFF */ |
456 | }; | 456 | }; |
457 | 457 | ||
458 | static wchar_t c2u_90[256] = { | 458 | static const wchar_t c2u_90[256] = { |
459 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x00-0x07 */ | 459 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x00-0x07 */ |
460 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x08-0x0F */ | 460 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x08-0x0F */ |
461 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x10-0x17 */ | 461 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x10-0x17 */ |
@@ -491,7 +491,7 @@ static wchar_t c2u_90[256] = { | |||
491 | 0x717D,0x65CB,0x7A7F,0x7BAD,0x7DDA,0x0000,0x0000,0x0000,/* 0xF8-0xFF */ | 491 | 0x717D,0x65CB,0x7A7F,0x7BAD,0x7DDA,0x0000,0x0000,0x0000,/* 0xF8-0xFF */ |
492 | }; | 492 | }; |
493 | 493 | ||
494 | static wchar_t c2u_91[256] = { | 494 | static const wchar_t c2u_91[256] = { |
495 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x00-0x07 */ | 495 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x00-0x07 */ |
496 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x08-0x0F */ | 496 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x08-0x0F */ |
497 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x10-0x17 */ | 497 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x10-0x17 */ |
@@ -527,7 +527,7 @@ static wchar_t c2u_91[256] = { | |||
527 | 0x8AFE,0x8338,0x51E7,0x86F8,0x53EA,0x0000,0x0000,0x0000,/* 0xF8-0xFF */ | 527 | 0x8AFE,0x8338,0x51E7,0x86F8,0x53EA,0x0000,0x0000,0x0000,/* 0xF8-0xFF */ |
528 | }; | 528 | }; |
529 | 529 | ||
530 | static wchar_t c2u_92[256] = { | 530 | static const wchar_t c2u_92[256] = { |
531 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x00-0x07 */ | 531 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x00-0x07 */ |
532 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x08-0x0F */ | 532 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x08-0x0F */ |
533 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x10-0x17 */ | 533 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x10-0x17 */ |
@@ -563,7 +563,7 @@ static wchar_t c2u_92[256] = { | |||
563 | 0x8247,0x8A02,0x8AE6,0x8E44,0x9013,0x0000,0x0000,0x0000,/* 0xF8-0xFF */ | 563 | 0x8247,0x8A02,0x8AE6,0x8E44,0x9013,0x0000,0x0000,0x0000,/* 0xF8-0xFF */ |
564 | }; | 564 | }; |
565 | 565 | ||
566 | static wchar_t c2u_93[256] = { | 566 | static const wchar_t c2u_93[256] = { |
567 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x00-0x07 */ | 567 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x00-0x07 */ |
568 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x08-0x0F */ | 568 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x08-0x0F */ |
569 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x10-0x17 */ | 569 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x10-0x17 */ |
@@ -599,7 +599,7 @@ static wchar_t c2u_93[256] = { | |||
599 | 0x8679,0x5EFF,0x65E5,0x4E73,0x5165,0x0000,0x0000,0x0000,/* 0xF8-0xFF */ | 599 | 0x8679,0x5EFF,0x65E5,0x4E73,0x5165,0x0000,0x0000,0x0000,/* 0xF8-0xFF */ |
600 | }; | 600 | }; |
601 | 601 | ||
602 | static wchar_t c2u_94[256] = { | 602 | static const wchar_t c2u_94[256] = { |
603 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x00-0x07 */ | 603 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x00-0x07 */ |
604 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x08-0x0F */ | 604 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x08-0x0F */ |
605 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x10-0x17 */ | 605 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x10-0x17 */ |
@@ -635,7 +635,7 @@ static wchar_t c2u_94[256] = { | |||
635 | 0x6787,0x6BD8,0x7435,0x7709,0x7F8E,0x0000,0x0000,0x0000,/* 0xF8-0xFF */ | 635 | 0x6787,0x6BD8,0x7435,0x7709,0x7F8E,0x0000,0x0000,0x0000,/* 0xF8-0xFF */ |
636 | }; | 636 | }; |
637 | 637 | ||
638 | static wchar_t c2u_95[256] = { | 638 | static const wchar_t c2u_95[256] = { |
639 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x00-0x07 */ | 639 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x00-0x07 */ |
640 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x08-0x0F */ | 640 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x08-0x0F */ |
641 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x10-0x17 */ | 641 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x10-0x17 */ |
@@ -671,7 +671,7 @@ static wchar_t c2u_95[256] = { | |||
671 | 0x62B1,0x6367,0x653E,0x65B9,0x670B,0x0000,0x0000,0x0000,/* 0xF8-0xFF */ | 671 | 0x62B1,0x6367,0x653E,0x65B9,0x670B,0x0000,0x0000,0x0000,/* 0xF8-0xFF */ |
672 | }; | 672 | }; |
673 | 673 | ||
674 | static wchar_t c2u_96[256] = { | 674 | static const wchar_t c2u_96[256] = { |
675 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x00-0x07 */ | 675 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x00-0x07 */ |
676 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x08-0x0F */ | 676 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x08-0x0F */ |
677 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x10-0x17 */ | 677 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x10-0x17 */ |
@@ -707,7 +707,7 @@ static wchar_t c2u_96[256] = { | |||
707 | 0x9453,0x6109,0x6108,0x6CB9,0x7652,0x0000,0x0000,0x0000,/* 0xF8-0xFF */ | 707 | 0x9453,0x6109,0x6108,0x6CB9,0x7652,0x0000,0x0000,0x0000,/* 0xF8-0xFF */ |
708 | }; | 708 | }; |
709 | 709 | ||
710 | static wchar_t c2u_97[256] = { | 710 | static const wchar_t c2u_97[256] = { |
711 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x00-0x07 */ | 711 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x00-0x07 */ |
712 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x08-0x0F */ | 712 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x08-0x0F */ |
713 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x10-0x17 */ | 713 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x10-0x17 */ |
@@ -743,7 +743,7 @@ static wchar_t c2u_97[256] = { | |||
743 | 0x6F23,0x7149,0x7C3E,0x7DF4,0x806F,0x0000,0x0000,0x0000,/* 0xF8-0xFF */ | 743 | 0x6F23,0x7149,0x7C3E,0x7DF4,0x806F,0x0000,0x0000,0x0000,/* 0xF8-0xFF */ |
744 | }; | 744 | }; |
745 | 745 | ||
746 | static wchar_t c2u_98[256] = { | 746 | static const wchar_t c2u_98[256] = { |
747 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x00-0x07 */ | 747 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x00-0x07 */ |
748 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x08-0x0F */ | 748 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x08-0x0F */ |
749 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x10-0x17 */ | 749 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x10-0x17 */ |
@@ -779,7 +779,7 @@ static wchar_t c2u_98[256] = { | |||
779 | 0x5080,0x509A,0x5085,0x50B4,0x50B2,0x0000,0x0000,0x0000,/* 0xF8-0xFF */ | 779 | 0x5080,0x509A,0x5085,0x50B4,0x50B2,0x0000,0x0000,0x0000,/* 0xF8-0xFF */ |
780 | }; | 780 | }; |
781 | 781 | ||
782 | static wchar_t c2u_99[256] = { | 782 | static const wchar_t c2u_99[256] = { |
783 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x00-0x07 */ | 783 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x00-0x07 */ |
784 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x08-0x0F */ | 784 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x08-0x0F */ |
785 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x10-0x17 */ | 785 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x10-0x17 */ |
@@ -815,7 +815,7 @@ static wchar_t c2u_99[256] = { | |||
815 | 0x54A5,0x54AC,0x54C4,0x54C8,0x54A8,0x0000,0x0000,0x0000,/* 0xF8-0xFF */ | 815 | 0x54A5,0x54AC,0x54C4,0x54C8,0x54A8,0x0000,0x0000,0x0000,/* 0xF8-0xFF */ |
816 | }; | 816 | }; |
817 | 817 | ||
818 | static wchar_t c2u_9A[256] = { | 818 | static const wchar_t c2u_9A[256] = { |
819 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x00-0x07 */ | 819 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x00-0x07 */ |
820 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x08-0x0F */ | 820 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x08-0x0F */ |
821 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x10-0x17 */ | 821 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x10-0x17 */ |
@@ -851,7 +851,7 @@ static wchar_t c2u_9A[256] = { | |||
851 | 0x5962,0x5960,0x5967,0x596C,0x5969,0x0000,0x0000,0x0000,/* 0xF8-0xFF */ | 851 | 0x5962,0x5960,0x5967,0x596C,0x5969,0x0000,0x0000,0x0000,/* 0xF8-0xFF */ |
852 | }; | 852 | }; |
853 | 853 | ||
854 | static wchar_t c2u_9B[256] = { | 854 | static const wchar_t c2u_9B[256] = { |
855 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x00-0x07 */ | 855 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x00-0x07 */ |
856 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x08-0x0F */ | 856 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x08-0x0F */ |
857 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x10-0x17 */ | 857 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x10-0x17 */ |
@@ -887,7 +887,7 @@ static wchar_t c2u_9B[256] = { | |||
887 | 0x5EC1,0x5EC2,0x5EC8,0x5ED0,0x5ECF,0x0000,0x0000,0x0000,/* 0xF8-0xFF */ | 887 | 0x5EC1,0x5EC2,0x5EC8,0x5ED0,0x5ECF,0x0000,0x0000,0x0000,/* 0xF8-0xFF */ |
888 | }; | 888 | }; |
889 | 889 | ||
890 | static wchar_t c2u_9C[256] = { | 890 | static const wchar_t c2u_9C[256] = { |
891 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x00-0x07 */ | 891 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x00-0x07 */ |
892 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x08-0x0F */ | 892 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x08-0x0F */ |
893 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x10-0x17 */ | 893 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x10-0x17 */ |
@@ -923,7 +923,7 @@ static wchar_t c2u_9C[256] = { | |||
923 | 0x6209,0x620D,0x620C,0x6214,0x621B,0x0000,0x0000,0x0000,/* 0xF8-0xFF */ | 923 | 0x6209,0x620D,0x620C,0x6214,0x621B,0x0000,0x0000,0x0000,/* 0xF8-0xFF */ |
924 | }; | 924 | }; |
925 | 925 | ||
926 | static wchar_t c2u_9D[256] = { | 926 | static const wchar_t c2u_9D[256] = { |
927 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x00-0x07 */ | 927 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x00-0x07 */ |
928 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x08-0x0F */ | 928 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x08-0x0F */ |
929 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x10-0x17 */ | 929 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x10-0x17 */ |
@@ -959,7 +959,7 @@ static wchar_t c2u_9D[256] = { | |||
959 | 0x66C1,0x66B9,0x66C9,0x66BE,0x66BC,0x0000,0x0000,0x0000,/* 0xF8-0xFF */ | 959 | 0x66C1,0x66B9,0x66C9,0x66BE,0x66BC,0x0000,0x0000,0x0000,/* 0xF8-0xFF */ |
960 | }; | 960 | }; |
961 | 961 | ||
962 | static wchar_t c2u_9E[256] = { | 962 | static const wchar_t c2u_9E[256] = { |
963 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x00-0x07 */ | 963 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x00-0x07 */ |
964 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x08-0x0F */ | 964 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x08-0x0F */ |
965 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x10-0x17 */ | 965 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x10-0x17 */ |
@@ -995,7 +995,7 @@ static wchar_t c2u_9E[256] = { | |||
995 | 0x6A8D,0x6AA0,0x6A84,0x6AA2,0x6AA3,0x0000,0x0000,0x0000,/* 0xF8-0xFF */ | 995 | 0x6A8D,0x6AA0,0x6A84,0x6AA2,0x6AA3,0x0000,0x0000,0x0000,/* 0xF8-0xFF */ |
996 | }; | 996 | }; |
997 | 997 | ||
998 | static wchar_t c2u_9F[256] = { | 998 | static const wchar_t c2u_9F[256] = { |
999 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x00-0x07 */ | 999 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x00-0x07 */ |
1000 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x08-0x0F */ | 1000 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x08-0x0F */ |
1001 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x10-0x17 */ | 1001 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x10-0x17 */ |
@@ -1031,7 +1031,7 @@ static wchar_t c2u_9F[256] = { | |||
1031 | 0x6EF2,0x6F31,0x6EEF,0x6F32,0x6ECC,0x0000,0x0000,0x0000,/* 0xF8-0xFF */ | 1031 | 0x6EF2,0x6F31,0x6EEF,0x6F32,0x6ECC,0x0000,0x0000,0x0000,/* 0xF8-0xFF */ |
1032 | }; | 1032 | }; |
1033 | 1033 | ||
1034 | static wchar_t c2u_E0[256] = { | 1034 | static const wchar_t c2u_E0[256] = { |
1035 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x00-0x07 */ | 1035 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x00-0x07 */ |
1036 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x08-0x0F */ | 1036 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x08-0x0F */ |
1037 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x10-0x17 */ | 1037 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x10-0x17 */ |
@@ -1067,7 +1067,7 @@ static wchar_t c2u_E0[256] = { | |||
1067 | 0x74A7,0x74CA,0x74CF,0x74D4,0x73F1,0x0000,0x0000,0x0000,/* 0xF8-0xFF */ | 1067 | 0x74A7,0x74CA,0x74CF,0x74D4,0x73F1,0x0000,0x0000,0x0000,/* 0xF8-0xFF */ |
1068 | }; | 1068 | }; |
1069 | 1069 | ||
1070 | static wchar_t c2u_E1[256] = { | 1070 | static const wchar_t c2u_E1[256] = { |
1071 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x00-0x07 */ | 1071 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x00-0x07 */ |
1072 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x08-0x0F */ | 1072 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x08-0x0F */ |
1073 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x10-0x17 */ | 1073 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x10-0x17 */ |
@@ -1103,7 +1103,7 @@ static wchar_t c2u_E1[256] = { | |||
1103 | 0x78BE,0x78BC,0x78C5,0x78CA,0x78EC,0x0000,0x0000,0x0000,/* 0xF8-0xFF */ | 1103 | 0x78BE,0x78BC,0x78C5,0x78CA,0x78EC,0x0000,0x0000,0x0000,/* 0xF8-0xFF */ |
1104 | }; | 1104 | }; |
1105 | 1105 | ||
1106 | static wchar_t c2u_E2[256] = { | 1106 | static const wchar_t c2u_E2[256] = { |
1107 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x00-0x07 */ | 1107 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x00-0x07 */ |
1108 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x08-0x0F */ | 1108 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x08-0x0F */ |
1109 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x10-0x17 */ | 1109 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x10-0x17 */ |
@@ -1139,7 +1139,7 @@ static wchar_t c2u_E2[256] = { | |||
1139 | 0x7CF2,0x7CF4,0x7CF6,0x7CFA,0x7D06,0x0000,0x0000,0x0000,/* 0xF8-0xFF */ | 1139 | 0x7CF2,0x7CF4,0x7CF6,0x7CFA,0x7D06,0x0000,0x0000,0x0000,/* 0xF8-0xFF */ |
1140 | }; | 1140 | }; |
1141 | 1141 | ||
1142 | static wchar_t c2u_E3[256] = { | 1142 | static const wchar_t c2u_E3[256] = { |
1143 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x00-0x07 */ | 1143 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x00-0x07 */ |
1144 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x08-0x0F */ | 1144 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x08-0x0F */ |
1145 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x10-0x17 */ | 1145 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x10-0x17 */ |
@@ -1175,7 +1175,7 @@ static wchar_t c2u_E3[256] = { | |||
1175 | 0x811B,0x8129,0x8123,0x812F,0x814B,0x0000,0x0000,0x0000,/* 0xF8-0xFF */ | 1175 | 0x811B,0x8129,0x8123,0x812F,0x814B,0x0000,0x0000,0x0000,/* 0xF8-0xFF */ |
1176 | }; | 1176 | }; |
1177 | 1177 | ||
1178 | static wchar_t c2u_E4[256] = { | 1178 | static const wchar_t c2u_E4[256] = { |
1179 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x00-0x07 */ | 1179 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x00-0x07 */ |
1180 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x08-0x0F */ | 1180 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x08-0x0F */ |
1181 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x10-0x17 */ | 1181 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x10-0x17 */ |
@@ -1211,7 +1211,7 @@ static wchar_t c2u_E4[256] = { | |||
1211 | 0x84FC,0x8540,0x8563,0x8558,0x8548,0x0000,0x0000,0x0000,/* 0xF8-0xFF */ | 1211 | 0x84FC,0x8540,0x8563,0x8558,0x8548,0x0000,0x0000,0x0000,/* 0xF8-0xFF */ |
1212 | }; | 1212 | }; |
1213 | 1213 | ||
1214 | static wchar_t c2u_E5[256] = { | 1214 | static const wchar_t c2u_E5[256] = { |
1215 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x00-0x07 */ | 1215 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x00-0x07 */ |
1216 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x08-0x0F */ | 1216 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x08-0x0F */ |
1217 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x10-0x17 */ | 1217 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x10-0x17 */ |
@@ -1247,7 +1247,7 @@ static wchar_t c2u_E5[256] = { | |||
1247 | 0x8938,0x894C,0x891D,0x8960,0x895E,0x0000,0x0000,0x0000,/* 0xF8-0xFF */ | 1247 | 0x8938,0x894C,0x891D,0x8960,0x895E,0x0000,0x0000,0x0000,/* 0xF8-0xFF */ |
1248 | }; | 1248 | }; |
1249 | 1249 | ||
1250 | static wchar_t c2u_E6[256] = { | 1250 | static const wchar_t c2u_E6[256] = { |
1251 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x00-0x07 */ | 1251 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x00-0x07 */ |
1252 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x08-0x0F */ | 1252 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x08-0x0F */ |
1253 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x10-0x17 */ | 1253 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x10-0x17 */ |
@@ -1283,7 +1283,7 @@ static wchar_t c2u_E6[256] = { | |||
1283 | 0x8E42,0x8E35,0x8E30,0x8E34,0x8E4A,0x0000,0x0000,0x0000,/* 0xF8-0xFF */ | 1283 | 0x8E42,0x8E35,0x8E30,0x8E34,0x8E4A,0x0000,0x0000,0x0000,/* 0xF8-0xFF */ |
1284 | }; | 1284 | }; |
1285 | 1285 | ||
1286 | static wchar_t c2u_E7[256] = { | 1286 | static const wchar_t c2u_E7[256] = { |
1287 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x00-0x07 */ | 1287 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x00-0x07 */ |
1288 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x08-0x0F */ | 1288 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x08-0x0F */ |
1289 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x10-0x17 */ | 1289 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x10-0x17 */ |
@@ -1319,7 +1319,7 @@ static wchar_t c2u_E7[256] = { | |||
1319 | 0x92E9,0x930F,0x92FA,0x9344,0x932E,0x0000,0x0000,0x0000,/* 0xF8-0xFF */ | 1319 | 0x92E9,0x930F,0x92FA,0x9344,0x932E,0x0000,0x0000,0x0000,/* 0xF8-0xFF */ |
1320 | }; | 1320 | }; |
1321 | 1321 | ||
1322 | static wchar_t c2u_E8[256] = { | 1322 | static const wchar_t c2u_E8[256] = { |
1323 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x00-0x07 */ | 1323 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x00-0x07 */ |
1324 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x08-0x0F */ | 1324 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x08-0x0F */ |
1325 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x10-0x17 */ | 1325 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x10-0x17 */ |
@@ -1355,7 +1355,7 @@ static wchar_t c2u_E8[256] = { | |||
1355 | 0x984F,0x984B,0x986B,0x986F,0x9870,0x0000,0x0000,0x0000,/* 0xF8-0xFF */ | 1355 | 0x984F,0x984B,0x986B,0x986F,0x9870,0x0000,0x0000,0x0000,/* 0xF8-0xFF */ |
1356 | }; | 1356 | }; |
1357 | 1357 | ||
1358 | static wchar_t c2u_E9[256] = { | 1358 | static const wchar_t c2u_E9[256] = { |
1359 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x00-0x07 */ | 1359 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x00-0x07 */ |
1360 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x08-0x0F */ | 1360 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x08-0x0F */ |
1361 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x10-0x17 */ | 1361 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x10-0x17 */ |
@@ -1391,7 +1391,7 @@ static wchar_t c2u_E9[256] = { | |||
1391 | 0x9D41,0x9D3F,0x9D3E,0x9D46,0x9D48,0x0000,0x0000,0x0000,/* 0xF8-0xFF */ | 1391 | 0x9D41,0x9D3F,0x9D3E,0x9D46,0x9D48,0x0000,0x0000,0x0000,/* 0xF8-0xFF */ |
1392 | }; | 1392 | }; |
1393 | 1393 | ||
1394 | static wchar_t c2u_EA[256] = { | 1394 | static const wchar_t c2u_EA[256] = { |
1395 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x00-0x07 */ | 1395 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x00-0x07 */ |
1396 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x08-0x0F */ | 1396 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x08-0x0F */ |
1397 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x10-0x17 */ | 1397 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x10-0x17 */ |
@@ -1416,7 +1416,7 @@ static wchar_t c2u_EA[256] = { | |||
1416 | 0x69C7,0x9059,0x7464,0x51DC,0x7199,0x0000,0x0000,0x0000,/* 0xA0-0xA7 */ | 1416 | 0x69C7,0x9059,0x7464,0x51DC,0x7199,0x0000,0x0000,0x0000,/* 0xA0-0xA7 */ |
1417 | }; | 1417 | }; |
1418 | 1418 | ||
1419 | static wchar_t c2u_ED[256] = { | 1419 | static const wchar_t c2u_ED[256] = { |
1420 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x00-0x07 */ | 1420 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x00-0x07 */ |
1421 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x08-0x0F */ | 1421 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x08-0x0F */ |
1422 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x10-0x17 */ | 1422 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x10-0x17 */ |
@@ -1452,7 +1452,7 @@ static wchar_t c2u_ED[256] = { | |||
1452 | 0x7147,0xFA15,0x71C1,0x71FE,0x72B1,0x0000,0x0000,0x0000,/* 0xF8-0xFF */ | 1452 | 0x7147,0xFA15,0x71C1,0x71FE,0x72B1,0x0000,0x0000,0x0000,/* 0xF8-0xFF */ |
1453 | }; | 1453 | }; |
1454 | 1454 | ||
1455 | static wchar_t c2u_EE[256] = { | 1455 | static const wchar_t c2u_EE[256] = { |
1456 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x00-0x07 */ | 1456 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x00-0x07 */ |
1457 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x08-0x0F */ | 1457 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x08-0x0F */ |
1458 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x10-0x17 */ | 1458 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x10-0x17 */ |
@@ -1488,7 +1488,7 @@ static wchar_t c2u_EE[256] = { | |||
1488 | 0x2179,0xFFE2,0xFFE4,0xFF07,0xFF02,0x0000,0x0000,0x0000,/* 0xF8-0xFF */ | 1488 | 0x2179,0xFFE2,0xFFE4,0xFF07,0xFF02,0x0000,0x0000,0x0000,/* 0xF8-0xFF */ |
1489 | }; | 1489 | }; |
1490 | 1490 | ||
1491 | static wchar_t c2u_FA[256] = { | 1491 | static const wchar_t c2u_FA[256] = { |
1492 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x00-0x07 */ | 1492 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x00-0x07 */ |
1493 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x08-0x0F */ | 1493 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x08-0x0F */ |
1494 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x10-0x17 */ | 1494 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x10-0x17 */ |
@@ -1524,7 +1524,7 @@ static wchar_t c2u_FA[256] = { | |||
1524 | 0x6C6F,0x6CDA,0x6D04,0x6D87,0x6D6F,0x0000,0x0000,0x0000,/* 0xF8-0xFF */ | 1524 | 0x6C6F,0x6CDA,0x6D04,0x6D87,0x6D6F,0x0000,0x0000,0x0000,/* 0xF8-0xFF */ |
1525 | }; | 1525 | }; |
1526 | 1526 | ||
1527 | static wchar_t c2u_FB[256] = { | 1527 | static const wchar_t c2u_FB[256] = { |
1528 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x00-0x07 */ | 1528 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x00-0x07 */ |
1529 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x08-0x0F */ | 1529 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x08-0x0F */ |
1530 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x10-0x17 */ | 1530 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x10-0x17 */ |
@@ -1560,7 +1560,7 @@ static wchar_t c2u_FB[256] = { | |||
1560 | 0x9927,0xFA2C,0x999E,0x9A4E,0x9AD9,0x0000,0x0000,0x0000,/* 0xF8-0xFF */ | 1560 | 0x9927,0xFA2C,0x999E,0x9A4E,0x9AD9,0x0000,0x0000,0x0000,/* 0xF8-0xFF */ |
1561 | }; | 1561 | }; |
1562 | 1562 | ||
1563 | static wchar_t c2u_FC[256] = { | 1563 | static const wchar_t c2u_FC[256] = { |
1564 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x00-0x07 */ | 1564 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x00-0x07 */ |
1565 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x08-0x0F */ | 1565 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x08-0x0F */ |
1566 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x10-0x17 */ | 1566 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x10-0x17 */ |
@@ -1573,7 +1573,7 @@ static wchar_t c2u_FC[256] = { | |||
1573 | 0x9D6B,0xFA2D,0x9E19,0x9ED1,0x0000,0x0000,0x0000,0x0000,/* 0x48-0x4F */ | 1573 | 0x9D6B,0xFA2D,0x9E19,0x9ED1,0x0000,0x0000,0x0000,0x0000,/* 0x48-0x4F */ |
1574 | }; | 1574 | }; |
1575 | 1575 | ||
1576 | static wchar_t *page_charset2uni[256] = { | 1576 | static const wchar_t *page_charset2uni[256] = { |
1577 | NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, | 1577 | NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, |
1578 | NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, | 1578 | NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, |
1579 | NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, | 1579 | NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, |
@@ -1608,7 +1608,7 @@ static wchar_t *page_charset2uni[256] = { | |||
1608 | NULL, NULL, c2u_FA, c2u_FB, c2u_FC, NULL, NULL, NULL, | 1608 | NULL, NULL, c2u_FA, c2u_FB, c2u_FC, NULL, NULL, NULL, |
1609 | }; | 1609 | }; |
1610 | 1610 | ||
1611 | static unsigned char u2c_00hi[256 - 0xA0][2] = { | 1611 | static const unsigned char u2c_00hi[256 - 0xA0][2] = { |
1612 | {0x00, 0x00}, {0x00, 0x00}, {0x81, 0x91}, {0x81, 0x92},/* 0xA0-0xA3 */ | 1612 | {0x00, 0x00}, {0x00, 0x00}, {0x81, 0x91}, {0x81, 0x92},/* 0xA0-0xA3 */ |
1613 | {0x00, 0x00}, {0x00, 0x00}, {0x00, 0x00}, {0x81, 0x98},/* 0xA4-0xA7 */ | 1613 | {0x00, 0x00}, {0x00, 0x00}, {0x00, 0x00}, {0x81, 0x98},/* 0xA4-0xA7 */ |
1614 | {0x81, 0x4E}, {0x00, 0x00}, {0x00, 0x00}, {0x00, 0x00},/* 0xA8-0xAB */ | 1614 | {0x81, 0x4E}, {0x00, 0x00}, {0x00, 0x00}, {0x00, 0x00},/* 0xA8-0xAB */ |
@@ -1635,7 +1635,7 @@ static unsigned char u2c_00hi[256 - 0xA0][2] = { | |||
1635 | {0x00, 0x00}, {0x00, 0x00}, {0x00, 0x00}, {0x00, 0x00},/* 0xFC-0xFF */ | 1635 | {0x00, 0x00}, {0x00, 0x00}, {0x00, 0x00}, {0x00, 0x00},/* 0xFC-0xFF */ |
1636 | }; | 1636 | }; |
1637 | 1637 | ||
1638 | static unsigned char u2c_03[512] = { | 1638 | static const unsigned char u2c_03[512] = { |
1639 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x00-0x03 */ | 1639 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x00-0x03 */ |
1640 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x04-0x07 */ | 1640 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x04-0x07 */ |
1641 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x08-0x0B */ | 1641 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x08-0x0B */ |
@@ -1690,7 +1690,7 @@ static unsigned char u2c_03[512] = { | |||
1690 | 0x83, 0xD5, 0x83, 0xD6, 0x00, 0x00, 0x00, 0x00, /* 0xC8-0xCB */ | 1690 | 0x83, 0xD5, 0x83, 0xD6, 0x00, 0x00, 0x00, 0x00, /* 0xC8-0xCB */ |
1691 | }; | 1691 | }; |
1692 | 1692 | ||
1693 | static unsigned char u2c_04[512] = { | 1693 | static const unsigned char u2c_04[512] = { |
1694 | 0x00, 0x00, 0x84, 0x46, 0x00, 0x00, 0x00, 0x00, /* 0x00-0x03 */ | 1694 | 0x00, 0x00, 0x84, 0x46, 0x00, 0x00, 0x00, 0x00, /* 0x00-0x03 */ |
1695 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x04-0x07 */ | 1695 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x04-0x07 */ |
1696 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x08-0x0B */ | 1696 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x08-0x0B */ |
@@ -1714,7 +1714,7 @@ static unsigned char u2c_04[512] = { | |||
1714 | 0x00, 0x00, 0x84, 0x76, 0x00, 0x00, 0x00, 0x00, /* 0x50-0x53 */ | 1714 | 0x00, 0x00, 0x84, 0x76, 0x00, 0x00, 0x00, 0x00, /* 0x50-0x53 */ |
1715 | }; | 1715 | }; |
1716 | 1716 | ||
1717 | static unsigned char u2c_20[512] = { | 1717 | static const unsigned char u2c_20[512] = { |
1718 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x00-0x03 */ | 1718 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x00-0x03 */ |
1719 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x04-0x07 */ | 1719 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x04-0x07 */ |
1720 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x08-0x0B */ | 1720 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x08-0x0B */ |
@@ -1732,7 +1732,7 @@ static unsigned char u2c_20[512] = { | |||
1732 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x81, 0xA6, /* 0x38-0x3B */ | 1732 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x81, 0xA6, /* 0x38-0x3B */ |
1733 | }; | 1733 | }; |
1734 | 1734 | ||
1735 | static unsigned char u2c_21[512] = { | 1735 | static const unsigned char u2c_21[512] = { |
1736 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x81, 0x8E, /* 0x00-0x03 */ | 1736 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x81, 0x8E, /* 0x00-0x03 */ |
1737 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x04-0x07 */ | 1737 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x04-0x07 */ |
1738 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x08-0x0B */ | 1738 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x08-0x0B */ |
@@ -1790,7 +1790,7 @@ static unsigned char u2c_21[512] = { | |||
1790 | 0x81, 0xCC, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xD4-0xD7 */ | 1790 | 0x81, 0xCC, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xD4-0xD7 */ |
1791 | }; | 1791 | }; |
1792 | 1792 | ||
1793 | static unsigned char u2c_22[512] = { | 1793 | static const unsigned char u2c_22[512] = { |
1794 | 0x81, 0xCD, 0x00, 0x00, 0x81, 0xDD, 0x81, 0xCE, /* 0x00-0x03 */ | 1794 | 0x81, 0xCD, 0x00, 0x00, 0x81, 0xDD, 0x81, 0xCE, /* 0x00-0x03 */ |
1795 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x81, 0xDE, /* 0x04-0x07 */ | 1795 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x81, 0xDE, /* 0x04-0x07 */ |
1796 | 0x81, 0xB8, 0x00, 0x00, 0x00, 0x00, 0x81, 0xB9, /* 0x08-0x0B */ | 1796 | 0x81, 0xB8, 0x00, 0x00, 0x00, 0x00, 0x81, 0xB9, /* 0x08-0x0B */ |
@@ -1842,7 +1842,7 @@ static unsigned char u2c_22[512] = { | |||
1842 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x87, 0x99, /* 0xBC-0xBF */ | 1842 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x87, 0x99, /* 0xBC-0xBF */ |
1843 | }; | 1843 | }; |
1844 | 1844 | ||
1845 | static unsigned char u2c_23[512] = { | 1845 | static const unsigned char u2c_23[512] = { |
1846 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x00-0x03 */ | 1846 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x00-0x03 */ |
1847 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x04-0x07 */ | 1847 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x04-0x07 */ |
1848 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x08-0x0B */ | 1848 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x08-0x0B */ |
@@ -1850,7 +1850,7 @@ static unsigned char u2c_23[512] = { | |||
1850 | 0x00, 0x00, 0x00, 0x00, 0x81, 0xDC, 0x00, 0x00, /* 0x10-0x13 */ | 1850 | 0x00, 0x00, 0x00, 0x00, 0x81, 0xDC, 0x00, 0x00, /* 0x10-0x13 */ |
1851 | }; | 1851 | }; |
1852 | 1852 | ||
1853 | static unsigned char u2c_24[512] = { | 1853 | static const unsigned char u2c_24[512] = { |
1854 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x00-0x03 */ | 1854 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x00-0x03 */ |
1855 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x04-0x07 */ | 1855 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x04-0x07 */ |
1856 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x08-0x0B */ | 1856 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x08-0x0B */ |
@@ -1882,7 +1882,7 @@ static unsigned char u2c_24[512] = { | |||
1882 | 0x87, 0x50, 0x87, 0x51, 0x87, 0x52, 0x87, 0x53, /* 0x70-0x73 */ | 1882 | 0x87, 0x50, 0x87, 0x51, 0x87, 0x52, 0x87, 0x53, /* 0x70-0x73 */ |
1883 | }; | 1883 | }; |
1884 | 1884 | ||
1885 | static unsigned char u2c_25[512] = { | 1885 | static const unsigned char u2c_25[512] = { |
1886 | 0x84, 0x9F, 0x84, 0xAA, 0x84, 0xA0, 0x84, 0xAB, /* 0x00-0x03 */ | 1886 | 0x84, 0x9F, 0x84, 0xAA, 0x84, 0xA0, 0x84, 0xAB, /* 0x00-0x03 */ |
1887 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x04-0x07 */ | 1887 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x04-0x07 */ |
1888 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x08-0x0B */ | 1888 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x08-0x0B */ |
@@ -1946,7 +1946,7 @@ static unsigned char u2c_25[512] = { | |||
1946 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x81, 0xFC, /* 0xEC-0xEF */ | 1946 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x81, 0xFC, /* 0xEC-0xEF */ |
1947 | }; | 1947 | }; |
1948 | 1948 | ||
1949 | static unsigned char u2c_26[512] = { | 1949 | static const unsigned char u2c_26[512] = { |
1950 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x00-0x03 */ | 1950 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x00-0x03 */ |
1951 | 0x00, 0x00, 0x81, 0x9A, 0x81, 0x99, 0x00, 0x00, /* 0x04-0x07 */ | 1951 | 0x00, 0x00, 0x81, 0x9A, 0x81, 0x99, 0x00, 0x00, /* 0x04-0x07 */ |
1952 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x08-0x0B */ | 1952 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x08-0x0B */ |
@@ -1977,7 +1977,7 @@ static unsigned char u2c_26[512] = { | |||
1977 | 0x00, 0x00, 0x81, 0xF3, 0x00, 0x00, 0x81, 0xF2, /* 0x6C-0x6F */ | 1977 | 0x00, 0x00, 0x81, 0xF3, 0x00, 0x00, 0x81, 0xF2, /* 0x6C-0x6F */ |
1978 | }; | 1978 | }; |
1979 | 1979 | ||
1980 | static unsigned char u2c_30[512] = { | 1980 | static const unsigned char u2c_30[512] = { |
1981 | 0x81, 0x40, 0x81, 0x41, 0x81, 0x42, 0x81, 0x56, /* 0x00-0x03 */ | 1981 | 0x81, 0x40, 0x81, 0x41, 0x81, 0x42, 0x81, 0x56, /* 0x00-0x03 */ |
1982 | 0x00, 0x00, 0x81, 0x58, 0x81, 0x59, 0x81, 0x5A, /* 0x04-0x07 */ | 1982 | 0x00, 0x00, 0x81, 0x58, 0x81, 0x59, 0x81, 0x5A, /* 0x04-0x07 */ |
1983 | 0x81, 0x71, 0x81, 0x72, 0x81, 0x73, 0x81, 0x74, /* 0x08-0x0B */ | 1983 | 0x81, 0x71, 0x81, 0x72, 0x81, 0x73, 0x81, 0x74, /* 0x08-0x0B */ |
@@ -2045,7 +2045,7 @@ static unsigned char u2c_30[512] = { | |||
2045 | 0x81, 0x5B, 0x81, 0x52, 0x81, 0x53, 0x00, 0x00, /* 0xFC-0xFF */ | 2045 | 0x81, 0x5B, 0x81, 0x52, 0x81, 0x53, 0x00, 0x00, /* 0xFC-0xFF */ |
2046 | }; | 2046 | }; |
2047 | 2047 | ||
2048 | static unsigned char u2c_32[512] = { | 2048 | static const unsigned char u2c_32[512] = { |
2049 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x00-0x03 */ | 2049 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x00-0x03 */ |
2050 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x04-0x07 */ | 2050 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x04-0x07 */ |
2051 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x08-0x0B */ | 2051 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x08-0x0B */ |
@@ -2092,7 +2092,7 @@ static unsigned char u2c_32[512] = { | |||
2092 | 0x87, 0x89, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xA8-0xAB */ | 2092 | 0x87, 0x89, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xA8-0xAB */ |
2093 | }; | 2093 | }; |
2094 | 2094 | ||
2095 | static unsigned char u2c_33[512] = { | 2095 | static const unsigned char u2c_33[512] = { |
2096 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x87, 0x65, /* 0x00-0x03 */ | 2096 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x87, 0x65, /* 0x00-0x03 */ |
2097 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x04-0x07 */ | 2097 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x04-0x07 */ |
2098 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x08-0x0B */ | 2098 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x08-0x0B */ |
@@ -2148,7 +2148,7 @@ static unsigned char u2c_33[512] = { | |||
2148 | 0x00, 0x00, 0x87, 0x83, 0x00, 0x00, 0x00, 0x00, /* 0xCC-0xCF */ | 2148 | 0x00, 0x00, 0x87, 0x83, 0x00, 0x00, 0x00, 0x00, /* 0xCC-0xCF */ |
2149 | }; | 2149 | }; |
2150 | 2150 | ||
2151 | static unsigned char u2c_4E[512] = { | 2151 | static const unsigned char u2c_4E[512] = { |
2152 | 0x88, 0xEA, 0x92, 0x9A, 0x00, 0x00, 0x8E, 0xB5, /* 0x00-0x03 */ | 2152 | 0x88, 0xEA, 0x92, 0x9A, 0x00, 0x00, 0x8E, 0xB5, /* 0x00-0x03 */ |
2153 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x96, 0x9C, /* 0x04-0x07 */ | 2153 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x96, 0x9C, /* 0x04-0x07 */ |
2154 | 0x8F, 0xE4, 0x8E, 0x4F, 0x8F, 0xE3, 0x89, 0xBA, /* 0x08-0x0B */ | 2154 | 0x8F, 0xE4, 0x8E, 0x4F, 0x8F, 0xE3, 0x89, 0xBA, /* 0x08-0x0B */ |
@@ -2216,7 +2216,7 @@ static unsigned char u2c_4E[512] = { | |||
2216 | 0xED, 0x4E, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xFC-0xFF */ | 2216 | 0xED, 0x4E, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xFC-0xFF */ |
2217 | }; | 2217 | }; |
2218 | 2218 | ||
2219 | static unsigned char u2c_4F[512] = { | 2219 | static const unsigned char u2c_4F[512] = { |
2220 | 0xED, 0x4F, 0x8A, 0xE9, 0x00, 0x00, 0xED, 0x50, /* 0x00-0x03 */ | 2220 | 0xED, 0x4F, 0x8A, 0xE9, 0x00, 0x00, 0xED, 0x50, /* 0x00-0x03 */ |
2221 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x04-0x07 */ | 2221 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x04-0x07 */ |
2222 | 0x00, 0x00, 0x98, 0xC2, 0x88, 0xC9, 0x00, 0x00, /* 0x08-0x0B */ | 2222 | 0x00, 0x00, 0x98, 0xC2, 0x88, 0xC9, 0x00, 0x00, /* 0x08-0x0B */ |
@@ -2284,7 +2284,7 @@ static unsigned char u2c_4F[512] = { | |||
2284 | 0x00, 0x00, 0x00, 0x00, 0x98, 0xEA, 0xED, 0x5A, /* 0xFC-0xFF */ | 2284 | 0x00, 0x00, 0x00, 0x00, 0x98, 0xEA, 0xED, 0x5A, /* 0xFC-0xFF */ |
2285 | }; | 2285 | }; |
2286 | 2286 | ||
2287 | static unsigned char u2c_50[512] = { | 2287 | static const unsigned char u2c_50[512] = { |
2288 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x00-0x03 */ | 2288 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x00-0x03 */ |
2289 | 0x00, 0x00, 0x98, 0xE4, 0x98, 0xED, 0x00, 0x00, /* 0x04-0x07 */ | 2289 | 0x00, 0x00, 0x98, 0xE4, 0x98, 0xED, 0x00, 0x00, /* 0x04-0x07 */ |
2290 | 0x00, 0x00, 0x91, 0x71, 0x00, 0x00, 0x8C, 0xC2, /* 0x08-0x0B */ | 2290 | 0x00, 0x00, 0x91, 0x71, 0x00, 0x00, 0x8C, 0xC2, /* 0x08-0x0B */ |
@@ -2351,7 +2351,7 @@ static unsigned char u2c_50[512] = { | |||
2351 | 0x00, 0x00, 0x99, 0x4A, 0x00, 0x00, 0x95, 0xC6, /* 0xF8-0xFB */ | 2351 | 0x00, 0x00, 0x99, 0x4A, 0x00, 0x00, 0x95, 0xC6, /* 0xF8-0xFB */ |
2352 | }; | 2352 | }; |
2353 | 2353 | ||
2354 | static unsigned char u2c_51[512] = { | 2354 | static const unsigned char u2c_51[512] = { |
2355 | 0x8B, 0x56, 0x99, 0x4D, 0x99, 0x4E, 0x00, 0x00, /* 0x00-0x03 */ | 2355 | 0x8B, 0x56, 0x99, 0x4D, 0x99, 0x4E, 0x00, 0x00, /* 0x00-0x03 */ |
2356 | 0x89, 0xAD, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x04-0x07 */ | 2356 | 0x89, 0xAD, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x04-0x07 */ |
2357 | 0x00, 0x00, 0x99, 0x4C, 0x00, 0x00, 0x00, 0x00, /* 0x08-0x0B */ | 2357 | 0x00, 0x00, 0x99, 0x4C, 0x00, 0x00, 0x00, 0x00, /* 0x08-0x0B */ |
@@ -2419,7 +2419,7 @@ static unsigned char u2c_51[512] = { | |||
2419 | 0x00, 0x00, 0x94, 0x9F, 0x99, 0x82, 0x00, 0x00, /* 0xFC-0xFF */ | 2419 | 0x00, 0x00, 0x94, 0x9F, 0x99, 0x82, 0x00, 0x00, /* 0xFC-0xFF */ |
2420 | }; | 2420 | }; |
2421 | 2421 | ||
2422 | static unsigned char u2c_52[512] = { | 2422 | static const unsigned char u2c_52[512] = { |
2423 | 0x93, 0x81, 0x00, 0x00, 0x00, 0x00, 0x90, 0x6E, /* 0x00-0x03 */ | 2423 | 0x93, 0x81, 0x00, 0x00, 0x00, 0x00, 0x90, 0x6E, /* 0x00-0x03 */ |
2424 | 0x99, 0x83, 0x00, 0x00, 0x95, 0xAA, 0x90, 0xD8, /* 0x04-0x07 */ | 2424 | 0x99, 0x83, 0x00, 0x00, 0x95, 0xAA, 0x90, 0xD8, /* 0x04-0x07 */ |
2425 | 0x8A, 0xA0, 0x00, 0x00, 0x8A, 0xA7, 0x99, 0x84, /* 0x08-0x0B */ | 2425 | 0x8A, 0xA0, 0x00, 0x00, 0x8A, 0xA7, 0x99, 0x84, /* 0x08-0x0B */ |
@@ -2487,7 +2487,7 @@ static unsigned char u2c_52[512] = { | |||
2487 | 0x00, 0x00, 0x00, 0x00, 0x8C, 0xF9, 0x96, 0xDC, /* 0xFC-0xFF */ | 2487 | 0x00, 0x00, 0x00, 0x00, 0x8C, 0xF9, 0x96, 0xDC, /* 0xFC-0xFF */ |
2488 | }; | 2488 | }; |
2489 | 2489 | ||
2490 | static unsigned char u2c_53[512] = { | 2490 | static const unsigned char u2c_53[512] = { |
2491 | 0xED, 0x6C, 0x96, 0xE6, 0x93, 0xF5, 0x00, 0x00, /* 0x00-0x03 */ | 2491 | 0xED, 0x6C, 0x96, 0xE6, 0x93, 0xF5, 0x00, 0x00, /* 0x00-0x03 */ |
2492 | 0x00, 0x00, 0x95, 0xEF, 0x99, 0xB0, 0xED, 0x6D, /* 0x04-0x07 */ | 2492 | 0x00, 0x00, 0x95, 0xEF, 0x99, 0xB0, 0xED, 0x6D, /* 0x04-0x07 */ |
2493 | 0x99, 0xB1, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x08-0x0B */ | 2493 | 0x99, 0xB1, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x08-0x0B */ |
@@ -2554,7 +2554,7 @@ static unsigned char u2c_53[512] = { | |||
2554 | 0x8E, 0x69, 0x00, 0x00, 0x99, 0xDB, 0x00, 0x00, /* 0xF8-0xFB */ | 2554 | 0x8E, 0x69, 0x00, 0x00, 0x99, 0xDB, 0x00, 0x00, /* 0xF8-0xFB */ |
2555 | }; | 2555 | }; |
2556 | 2556 | ||
2557 | static unsigned char u2c_54[512] = { | 2557 | static const unsigned char u2c_54[512] = { |
2558 | 0x00, 0x00, 0x99, 0xDC, 0x00, 0x00, 0x8B, 0x68, /* 0x00-0x03 */ | 2558 | 0x00, 0x00, 0x99, 0xDC, 0x00, 0x00, 0x8B, 0x68, /* 0x00-0x03 */ |
2559 | 0x8A, 0x65, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x04-0x07 */ | 2559 | 0x8A, 0x65, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x04-0x07 */ |
2560 | 0x8D, 0x87, 0x8B, 0x67, 0x92, 0xDD, 0x89, 0x44, /* 0x08-0x0B */ | 2560 | 0x8D, 0x87, 0x8B, 0x67, 0x92, 0xDD, 0x89, 0x44, /* 0x08-0x0B */ |
@@ -2622,7 +2622,7 @@ static unsigned char u2c_54[512] = { | |||
2622 | 0x00, 0x00, 0x9A, 0x4A, 0x00, 0x00, 0xED, 0x77, /* 0xFC-0xFF */ | 2622 | 0x00, 0x00, 0x9A, 0x4A, 0x00, 0x00, 0xED, 0x77, /* 0xFC-0xFF */ |
2623 | }; | 2623 | }; |
2624 | 2624 | ||
2625 | static unsigned char u2c_55[512] = { | 2625 | static const unsigned char u2c_55[512] = { |
2626 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x00-0x03 */ | 2626 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x00-0x03 */ |
2627 | 0x89, 0x53, 0x00, 0x00, 0x8D, 0xB4, 0x90, 0x4F, /* 0x04-0x07 */ | 2627 | 0x89, 0x53, 0x00, 0x00, 0x8D, 0xB4, 0x90, 0x4F, /* 0x04-0x07 */ |
2628 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x08-0x0B */ | 2628 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x08-0x0B */ |
@@ -2690,7 +2690,7 @@ static unsigned char u2c_55[512] = { | |||
2690 | 0x00, 0x00, 0x9A, 0x75, 0x9A, 0x74, 0x00, 0x00, /* 0xFC-0xFF */ | 2690 | 0x00, 0x00, 0x9A, 0x75, 0x9A, 0x74, 0x00, 0x00, /* 0xFC-0xFF */ |
2691 | }; | 2691 | }; |
2692 | 2692 | ||
2693 | static unsigned char u2c_56[512] = { | 2693 | static const unsigned char u2c_56[512] = { |
2694 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x00-0x03 */ | 2694 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x00-0x03 */ |
2695 | 0x00, 0x00, 0x00, 0x00, 0x92, 0x51, 0x00, 0x00, /* 0x04-0x07 */ | 2695 | 0x00, 0x00, 0x00, 0x00, 0x92, 0x51, 0x00, 0x00, /* 0x04-0x07 */ |
2696 | 0x00, 0x00, 0x89, 0xC3, 0x00, 0x00, 0x00, 0x00, /* 0x08-0x0B */ | 2696 | 0x00, 0x00, 0x89, 0xC3, 0x00, 0x00, 0x00, 0x00, /* 0x08-0x0B */ |
@@ -2758,7 +2758,7 @@ static unsigned char u2c_56[512] = { | |||
2758 | 0x00, 0x00, 0x8D, 0x91, 0x00, 0x00, 0x9A, 0x9C, /* 0xFC-0xFF */ | 2758 | 0x00, 0x00, 0x8D, 0x91, 0x00, 0x00, 0x9A, 0x9C, /* 0xFC-0xFF */ |
2759 | }; | 2759 | }; |
2760 | 2760 | ||
2761 | static unsigned char u2c_57[512] = { | 2761 | static const unsigned char u2c_57[512] = { |
2762 | 0x9A, 0x9B, 0x00, 0x00, 0x00, 0x00, 0x95, 0xDE, /* 0x00-0x03 */ | 2762 | 0x9A, 0x9B, 0x00, 0x00, 0x00, 0x00, 0x95, 0xDE, /* 0x00-0x03 */ |
2763 | 0x9A, 0x9D, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x04-0x07 */ | 2763 | 0x9A, 0x9D, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x04-0x07 */ |
2764 | 0x9A, 0x9F, 0x9A, 0x9E, 0x00, 0x00, 0x9A, 0xA0, /* 0x08-0x0B */ | 2764 | 0x9A, 0x9F, 0x9A, 0x9E, 0x00, 0x00, 0x9A, 0xA0, /* 0x08-0x0B */ |
@@ -2826,7 +2826,7 @@ static unsigned char u2c_57[512] = { | |||
2826 | 0x8D, 0xE9, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xFC-0xFF */ | 2826 | 0x8D, 0xE9, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xFC-0xFF */ |
2827 | }; | 2827 | }; |
2828 | 2828 | ||
2829 | static unsigned char u2c_58[512] = { | 2829 | static const unsigned char u2c_58[512] = { |
2830 | 0x96, 0x78, 0x00, 0x00, 0x93, 0xB0, 0x00, 0x00, /* 0x00-0x03 */ | 2830 | 0x96, 0x78, 0x00, 0x00, 0x93, 0xB0, 0x00, 0x00, /* 0x00-0x03 */ |
2831 | 0x00, 0x00, 0x8C, 0x98, 0x91, 0xCD, 0x00, 0x00, /* 0x04-0x07 */ | 2831 | 0x00, 0x00, 0x8C, 0x98, 0x91, 0xCD, 0x00, 0x00, /* 0x04-0x07 */ |
2832 | 0x00, 0x00, 0x00, 0x00, 0x9A, 0xBF, 0x9A, 0xC2, /* 0x08-0x0B */ | 2832 | 0x00, 0x00, 0x00, 0x00, 0x9A, 0xBF, 0x9A, 0xC2, /* 0x08-0x0B */ |
@@ -2894,7 +2894,7 @@ static unsigned char u2c_58[512] = { | |||
2894 | 0x9A, 0xE5, 0x9A, 0xE6, 0x00, 0x00, 0x00, 0x00, /* 0xFC-0xFF */ | 2894 | 0x9A, 0xE5, 0x9A, 0xE6, 0x00, 0x00, 0x00, 0x00, /* 0xFC-0xFF */ |
2895 | }; | 2895 | }; |
2896 | 2896 | ||
2897 | static unsigned char u2c_59[512] = { | 2897 | static const unsigned char u2c_59[512] = { |
2898 | 0x00, 0x00, 0x00, 0x00, 0x9A, 0xE7, 0x00, 0x00, /* 0x00-0x03 */ | 2898 | 0x00, 0x00, 0x00, 0x00, 0x9A, 0xE7, 0x00, 0x00, /* 0x00-0x03 */ |
2899 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x04-0x07 */ | 2899 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x04-0x07 */ |
2900 | 0x00, 0x00, 0x95, 0xCF, 0x9A, 0xE8, 0xED, 0x83, /* 0x08-0x0B */ | 2900 | 0x00, 0x00, 0x95, 0xCF, 0x9A, 0xE8, 0xED, 0x83, /* 0x08-0x0B */ |
@@ -2962,7 +2962,7 @@ static unsigned char u2c_59[512] = { | |||
2962 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x8E, 0x70, /* 0xFC-0xFF */ | 2962 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x8E, 0x70, /* 0xFC-0xFF */ |
2963 | }; | 2963 | }; |
2964 | 2964 | ||
2965 | static unsigned char u2c_5A[512] = { | 2965 | static const unsigned char u2c_5A[512] = { |
2966 | 0x00, 0x00, 0x88, 0xD0, 0x00, 0x00, 0x88, 0xA1, /* 0x00-0x03 */ | 2966 | 0x00, 0x00, 0x88, 0xD0, 0x00, 0x00, 0x88, 0xA1, /* 0x00-0x03 */ |
2967 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x04-0x07 */ | 2967 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x04-0x07 */ |
2968 | 0x00, 0x00, 0x9B, 0x51, 0x00, 0x00, 0x00, 0x00, /* 0x08-0x0B */ | 2968 | 0x00, 0x00, 0x9B, 0x51, 0x00, 0x00, 0x00, 0x00, /* 0x08-0x0B */ |
@@ -3029,7 +3029,7 @@ static unsigned char u2c_5A[512] = { | |||
3029 | 0x00, 0x00, 0x00, 0x00, 0x9B, 0x65, 0x9B, 0x66, /* 0xF8-0xFB */ | 3029 | 0x00, 0x00, 0x00, 0x00, 0x9B, 0x65, 0x9B, 0x66, /* 0xF8-0xFB */ |
3030 | }; | 3030 | }; |
3031 | 3031 | ||
3032 | static unsigned char u2c_5B[512] = { | 3032 | static const unsigned char u2c_5B[512] = { |
3033 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x00-0x03 */ | 3033 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x00-0x03 */ |
3034 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x04-0x07 */ | 3034 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x04-0x07 */ |
3035 | 0x00, 0x00, 0x8A, 0xF0, 0x00, 0x00, 0x9B, 0x68, /* 0x08-0x0B */ | 3035 | 0x00, 0x00, 0x8A, 0xF0, 0x00, 0x00, 0x9B, 0x68, /* 0x08-0x0B */ |
@@ -3097,7 +3097,7 @@ static unsigned char u2c_5B[512] = { | |||
3097 | 0x00, 0x00, 0x00, 0x00, 0x91, 0xCE, 0x8E, 0xF5, /* 0xFC-0xFF */ | 3097 | 0x00, 0x00, 0x00, 0x00, 0x91, 0xCE, 0x8E, 0xF5, /* 0xFC-0xFF */ |
3098 | }; | 3098 | }; |
3099 | 3099 | ||
3100 | static unsigned char u2c_5C[512] = { | 3100 | static const unsigned char u2c_5C[512] = { |
3101 | 0x00, 0x00, 0x95, 0x95, 0x90, 0xEA, 0x00, 0x00, /* 0x00-0x03 */ | 3101 | 0x00, 0x00, 0x95, 0x95, 0x90, 0xEA, 0x00, 0x00, /* 0x00-0x03 */ |
3102 | 0x8E, 0xCB, 0x9B, 0x91, 0x8F, 0xAB, 0x9B, 0x92, /* 0x04-0x07 */ | 3102 | 0x8E, 0xCB, 0x9B, 0x91, 0x8F, 0xAB, 0x9B, 0x92, /* 0x04-0x07 */ |
3103 | 0x9B, 0x93, 0x88, 0xD1, 0x91, 0xB8, 0x90, 0x71, /* 0x08-0x0B */ | 3103 | 0x9B, 0x93, 0x88, 0xD1, 0x91, 0xB8, 0x90, 0x71, /* 0x08-0x0B */ |
@@ -3165,7 +3165,7 @@ static unsigned char u2c_5C[512] = { | |||
3165 | 0x00, 0x00, 0x9B, 0xB5, 0x00, 0x00, 0x00, 0x00, /* 0xFC-0xFF */ | 3165 | 0x00, 0x00, 0x9B, 0xB5, 0x00, 0x00, 0x00, 0x00, /* 0xFC-0xFF */ |
3166 | }; | 3166 | }; |
3167 | 3167 | ||
3168 | static unsigned char u2c_5D[512] = { | 3168 | static const unsigned char u2c_5D[512] = { |
3169 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x00-0x03 */ | 3169 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x00-0x03 */ |
3170 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x90, 0x92, /* 0x04-0x07 */ | 3170 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x90, 0x92, /* 0x04-0x07 */ |
3171 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x9B, 0xBA, /* 0x08-0x0B */ | 3171 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x9B, 0xBA, /* 0x08-0x0B */ |
@@ -3233,7 +3233,7 @@ static unsigned char u2c_5D[512] = { | |||
3233 | 0x00, 0x00, 0x92, 0x46, 0x8B, 0xD0, 0x00, 0x00, /* 0xFC-0xFF */ | 3233 | 0x00, 0x00, 0x92, 0x46, 0x8B, 0xD0, 0x00, 0x00, /* 0xFC-0xFF */ |
3234 | }; | 3234 | }; |
3235 | 3235 | ||
3236 | static unsigned char u2c_5E[512] = { | 3236 | static const unsigned char u2c_5E[512] = { |
3237 | 0x00, 0x00, 0x00, 0x00, 0x8E, 0x73, 0x95, 0x7A, /* 0x00-0x03 */ | 3237 | 0x00, 0x00, 0x00, 0x00, 0x8E, 0x73, 0x95, 0x7A, /* 0x00-0x03 */ |
3238 | 0x00, 0x00, 0x00, 0x00, 0x94, 0xBF, 0x00, 0x00, /* 0x04-0x07 */ | 3238 | 0x00, 0x00, 0x00, 0x00, 0x94, 0xBF, 0x00, 0x00, /* 0x04-0x07 */ |
3239 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x9B, 0xE1, /* 0x08-0x0B */ | 3239 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x9B, 0xE1, /* 0x08-0x0B */ |
@@ -3301,7 +3301,7 @@ static unsigned char u2c_5E[512] = { | |||
3301 | 0x94, 0x55, 0x00, 0x00, 0x9C, 0x4F, 0x93, 0xF9, /* 0xFC-0xFF */ | 3301 | 0x94, 0x55, 0x00, 0x00, 0x9C, 0x4F, 0x93, 0xF9, /* 0xFC-0xFF */ |
3302 | }; | 3302 | }; |
3303 | 3303 | ||
3304 | static unsigned char u2c_5F[512] = { | 3304 | static const unsigned char u2c_5F[512] = { |
3305 | 0x00, 0x00, 0x95, 0xD9, 0x00, 0x00, 0x9C, 0x50, /* 0x00-0x03 */ | 3305 | 0x00, 0x00, 0x95, 0xD9, 0x00, 0x00, 0x9C, 0x50, /* 0x00-0x03 */ |
3306 | 0x98, 0x4D, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x04-0x07 */ | 3306 | 0x98, 0x4D, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x04-0x07 */ |
3307 | 0x00, 0x00, 0x9C, 0x51, 0x95, 0xBE, 0x9C, 0x54, /* 0x08-0x0B */ | 3307 | 0x00, 0x00, 0x9C, 0x51, 0x95, 0xBE, 0x9C, 0x54, /* 0x08-0x0B */ |
@@ -3369,7 +3369,7 @@ static unsigned char u2c_5F[512] = { | |||
3369 | 0x00, 0x00, 0x8D, 0x9A, 0x00, 0x00, 0x9C, 0x7C, /* 0xFC-0xFF */ | 3369 | 0x00, 0x00, 0x8D, 0x9A, 0x00, 0x00, 0x9C, 0x7C, /* 0xFC-0xFF */ |
3370 | }; | 3370 | }; |
3371 | 3371 | ||
3372 | static unsigned char u2c_60[512] = { | 3372 | static const unsigned char u2c_60[512] = { |
3373 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x00-0x03 */ | 3373 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x00-0x03 */ |
3374 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x04-0x07 */ | 3374 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x04-0x07 */ |
3375 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x08-0x0B */ | 3375 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x08-0x0B */ |
@@ -3436,7 +3436,7 @@ static unsigned char u2c_60[512] = { | |||
3436 | 0x00, 0x00, 0x8E, 0xE4, 0x9C, 0xB7, 0x9C, 0xBA, /* 0xF8-0xFB */ | 3436 | 0x00, 0x00, 0x8E, 0xE4, 0x9C, 0xB7, 0x9C, 0xBA, /* 0xF8-0xFB */ |
3437 | }; | 3437 | }; |
3438 | 3438 | ||
3439 | static unsigned char u2c_61[512] = { | 3439 | static const unsigned char u2c_61[512] = { |
3440 | 0x9C, 0xB5, 0x8F, 0x44, 0x00, 0x00, 0x9C, 0xB8, /* 0x00-0x03 */ | 3440 | 0x9C, 0xB5, 0x8F, 0x44, 0x00, 0x00, 0x9C, 0xB8, /* 0x00-0x03 */ |
3441 | 0x00, 0x00, 0x00, 0x00, 0x9C, 0xB2, 0x00, 0x00, /* 0x04-0x07 */ | 3441 | 0x00, 0x00, 0x00, 0x00, 0x9C, 0xB2, 0x00, 0x00, /* 0x04-0x07 */ |
3442 | 0x96, 0xFA, 0x96, 0xF9, 0x00, 0x00, 0x00, 0x00, /* 0x08-0x0B */ | 3442 | 0x96, 0xFA, 0x96, 0xF9, 0x00, 0x00, 0x00, 0x00, /* 0x08-0x0B */ |
@@ -3504,7 +3504,7 @@ static unsigned char u2c_61[512] = { | |||
3504 | 0x9C, 0xF4, 0x9C, 0xF3, 0x9C, 0xF5, 0x9C, 0xF2, /* 0xFC-0xFF */ | 3504 | 0x9C, 0xF4, 0x9C, 0xF3, 0x9C, 0xF5, 0x9C, 0xF2, /* 0xFC-0xFF */ |
3505 | }; | 3505 | }; |
3506 | 3506 | ||
3507 | static unsigned char u2c_62[512] = { | 3507 | static const unsigned char u2c_62[512] = { |
3508 | 0x9C, 0xF6, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x00-0x03 */ | 3508 | 0x9C, 0xF6, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x00-0x03 */ |
3509 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x04-0x07 */ | 3509 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x04-0x07 */ |
3510 | 0x9C, 0xF7, 0x9C, 0xF8, 0x95, 0xE8, 0x00, 0x00, /* 0x08-0x0B */ | 3510 | 0x9C, 0xF7, 0x9C, 0xF8, 0x95, 0xE8, 0x00, 0x00, /* 0x08-0x0B */ |
@@ -3572,7 +3572,7 @@ static unsigned char u2c_62[512] = { | |||
3572 | 0x00, 0x00, 0x00, 0x00, 0x8F, 0x45, 0x9D, 0x5C, /* 0xFC-0xFF */ | 3572 | 0x00, 0x00, 0x00, 0x00, 0x8F, 0x45, 0x9D, 0x5C, /* 0xFC-0xFF */ |
3573 | }; | 3573 | }; |
3574 | 3574 | ||
3575 | static unsigned char u2c_63[512] = { | 3575 | static const unsigned char u2c_63[512] = { |
3576 | 0x00, 0x00, 0x8E, 0x9D, 0x9D, 0x6B, 0x00, 0x00, /* 0x00-0x03 */ | 3576 | 0x00, 0x00, 0x8E, 0x9D, 0x9D, 0x6B, 0x00, 0x00, /* 0x00-0x03 */ |
3577 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x8E, 0x77, /* 0x04-0x07 */ | 3577 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x8E, 0x77, /* 0x04-0x07 */ |
3578 | 0x9D, 0x6C, 0x88, 0xC2, 0x00, 0x00, 0x00, 0x00, /* 0x08-0x0B */ | 3578 | 0x9D, 0x6C, 0x88, 0xC2, 0x00, 0x00, 0x00, 0x00, /* 0x08-0x0B */ |
@@ -3639,7 +3639,7 @@ static unsigned char u2c_63[512] = { | |||
3639 | 0x00, 0x00, 0x00, 0x00, 0x97, 0x68, 0x00, 0x00, /* 0xF8-0xFB */ | 3639 | 0x00, 0x00, 0x00, 0x00, 0x97, 0x68, 0x00, 0x00, /* 0xF8-0xFB */ |
3640 | }; | 3640 | }; |
3641 | 3641 | ||
3642 | static unsigned char u2c_64[512] = { | 3642 | static const unsigned char u2c_64[512] = { |
3643 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x00-0x03 */ | 3643 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x00-0x03 */ |
3644 | 0x00, 0x00, 0x00, 0x00, 0x9D, 0x8C, 0x00, 0x00, /* 0x04-0x07 */ | 3644 | 0x00, 0x00, 0x00, 0x00, 0x9D, 0x8C, 0x00, 0x00, /* 0x04-0x07 */ |
3645 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x08-0x0B */ | 3645 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x08-0x0B */ |
@@ -3707,7 +3707,7 @@ static unsigned char u2c_64[512] = { | |||
3707 | 0x00, 0x00, 0x9D, 0xB4, 0x8F, 0xEF, 0x00, 0x00, /* 0xFC-0xFF */ | 3707 | 0x00, 0x00, 0x9D, 0xB4, 0x8F, 0xEF, 0x00, 0x00, /* 0xFC-0xFF */ |
3708 | }; | 3708 | }; |
3709 | 3709 | ||
3710 | static unsigned char u2c_65[512] = { | 3710 | static const unsigned char u2c_65[512] = { |
3711 | 0x9D, 0xB3, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x00-0x03 */ | 3711 | 0x9D, 0xB3, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x00-0x03 */ |
3712 | 0x00, 0x00, 0x9D, 0xB7, 0x00, 0x00, 0x00, 0x00, /* 0x04-0x07 */ | 3712 | 0x00, 0x00, 0x9D, 0xB7, 0x00, 0x00, 0x00, 0x00, /* 0x04-0x07 */ |
3713 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x08-0x0B */ | 3713 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x08-0x0B */ |
@@ -3774,7 +3774,7 @@ static unsigned char u2c_65[512] = { | |||
3774 | 0x00, 0x00, 0x00, 0x00, 0x89, 0xA0, 0x9D, 0xDF, /* 0xF8-0xFB */ | 3774 | 0x00, 0x00, 0x00, 0x00, 0x89, 0xA0, 0x9D, 0xDF, /* 0xF8-0xFB */ |
3775 | }; | 3775 | }; |
3776 | 3776 | ||
3777 | static unsigned char u2c_66[512] = { | 3777 | static const unsigned char u2c_66[512] = { |
3778 | 0xED, 0xB2, 0x00, 0x00, 0x8D, 0x56, 0x9D, 0xDE, /* 0x00-0x03 */ | 3778 | 0xED, 0xB2, 0x00, 0x00, 0x8D, 0x56, 0x9D, 0xDE, /* 0x00-0x03 */ |
3779 | 0x00, 0x00, 0x00, 0x00, 0x8D, 0xA9, 0x8F, 0xB8, /* 0x04-0x07 */ | 3779 | 0x00, 0x00, 0x00, 0x00, 0x8D, 0xA9, 0x8F, 0xB8, /* 0x04-0x07 */ |
3780 | 0x00, 0x00, 0xED, 0xB5, 0x9D, 0xDD, 0x00, 0x00, /* 0x08-0x0B */ | 3780 | 0x00, 0x00, 0xED, 0xB5, 0x9D, 0xDD, 0x00, 0x00, /* 0x08-0x0B */ |
@@ -3842,7 +3842,7 @@ static unsigned char u2c_66[512] = { | |||
3842 | 0x99, 0xD6, 0x91, 0x5D, 0x91, 0x5C, 0x91, 0xD6, /* 0xFC-0xFF */ | 3842 | 0x99, 0xD6, 0x91, 0x5D, 0x91, 0x5C, 0x91, 0xD6, /* 0xFC-0xFF */ |
3843 | }; | 3843 | }; |
3844 | 3844 | ||
3845 | static unsigned char u2c_67[512] = { | 3845 | static const unsigned char u2c_67[512] = { |
3846 | 0x8D, 0xC5, 0x00, 0x00, 0x00, 0x00, 0x98, 0xF0, /* 0x00-0x03 */ | 3846 | 0x8D, 0xC5, 0x00, 0x00, 0x00, 0x00, 0x98, 0xF0, /* 0x00-0x03 */ |
3847 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x04-0x07 */ | 3847 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x04-0x07 */ |
3848 | 0x8C, 0x8E, 0x97, 0x4C, 0x00, 0x00, 0x95, 0xFC, /* 0x08-0x0B */ | 3848 | 0x8C, 0x8E, 0x97, 0x4C, 0x00, 0x00, 0x95, 0xFC, /* 0x08-0x0B */ |
@@ -3910,7 +3910,7 @@ static unsigned char u2c_67[512] = { | |||
3910 | 0x00, 0x00, 0x00, 0x00, 0x96, 0x8F, 0x8A, 0x60, /* 0xFC-0xFF */ | 3910 | 0x00, 0x00, 0x00, 0x00, 0x96, 0x8F, 0x8A, 0x60, /* 0xFC-0xFF */ |
3911 | }; | 3911 | }; |
3912 | 3912 | ||
3913 | static unsigned char u2c_68[512] = { | 3913 | static const unsigned char u2c_68[512] = { |
3914 | 0x00, 0x00, 0xED, 0xC9, 0x92, 0xCC, 0x93, 0xC8, /* 0x00-0x03 */ | 3914 | 0x00, 0x00, 0xED, 0xC9, 0x92, 0xCC, 0x93, 0xC8, /* 0x00-0x03 */ |
3915 | 0x89, 0x68, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x04-0x07 */ | 3915 | 0x89, 0x68, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x04-0x07 */ |
3916 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x08-0x0B */ | 3916 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x08-0x0B */ |
@@ -3977,7 +3977,7 @@ static unsigned char u2c_68[512] = { | |||
3977 | 0x00, 0x00, 0x9E, 0xA8, 0x8A, 0xBB, 0x00, 0x00, /* 0xF8-0xFB */ | 3977 | 0x00, 0x00, 0x9E, 0xA8, 0x8A, 0xBB, 0x00, 0x00, /* 0xF8-0xFB */ |
3978 | }; | 3978 | }; |
3979 | 3979 | ||
3980 | static unsigned char u2c_69[512] = { | 3980 | static const unsigned char u2c_69[512] = { |
3981 | 0x98, 0x6F, 0x9E, 0x96, 0x00, 0x00, 0x00, 0x00, /* 0x00-0x03 */ | 3981 | 0x98, 0x6F, 0x9E, 0x96, 0x00, 0x00, 0x00, 0x00, /* 0x00-0x03 */ |
3982 | 0x9E, 0xA4, 0x88, 0xD6, 0x00, 0x00, 0x00, 0x00, /* 0x04-0x07 */ | 3982 | 0x9E, 0xA4, 0x88, 0xD6, 0x00, 0x00, 0x00, 0x00, /* 0x04-0x07 */ |
3983 | 0x9E, 0x98, 0x00, 0x00, 0x00, 0x00, 0x96, 0xB8, /* 0x08-0x0B */ | 3983 | 0x9E, 0x98, 0x00, 0x00, 0x00, 0x00, 0x96, 0xB8, /* 0x08-0x0B */ |
@@ -4045,7 +4045,7 @@ static unsigned char u2c_69[512] = { | |||
4045 | 0x00, 0x00, 0x91, 0x85, 0x00, 0x00, 0x9E, 0xDB, /* 0xFC-0xFF */ | 4045 | 0x00, 0x00, 0x91, 0x85, 0x00, 0x00, 0x9E, 0xDB, /* 0xFC-0xFF */ |
4046 | }; | 4046 | }; |
4047 | 4047 | ||
4048 | static unsigned char u2c_6A[512] = { | 4048 | static const unsigned char u2c_6A[512] = { |
4049 | 0x00, 0x00, 0x00, 0x00, 0x9E, 0xD9, 0x00, 0x00, /* 0x00-0x03 */ | 4049 | 0x00, 0x00, 0x00, 0x00, 0x9E, 0xD9, 0x00, 0x00, /* 0x00-0x03 */ |
4050 | 0x00, 0x00, 0x9E, 0xE0, 0x00, 0x00, 0x00, 0x00, /* 0x04-0x07 */ | 4050 | 0x00, 0x00, 0x9E, 0xE0, 0x00, 0x00, 0x00, 0x00, /* 0x04-0x07 */ |
4051 | 0x00, 0x00, 0x00, 0x00, 0x9E, 0xE6, 0x94, 0xF3, /* 0x08-0x0B */ | 4051 | 0x00, 0x00, 0x00, 0x00, 0x9E, 0xE6, 0x94, 0xF3, /* 0x08-0x0B */ |
@@ -4112,7 +4112,7 @@ static unsigned char u2c_6A[512] = { | |||
4112 | 0x00, 0x00, 0x00, 0x00, 0x9F, 0x51, 0x9F, 0x4E, /* 0xF8-0xFB */ | 4112 | 0x00, 0x00, 0x00, 0x00, 0x9F, 0x51, 0x9F, 0x4E, /* 0xF8-0xFB */ |
4113 | }; | 4113 | }; |
4114 | 4114 | ||
4115 | static unsigned char u2c_6B[512] = { | 4115 | static const unsigned char u2c_6B[512] = { |
4116 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x00-0x03 */ | 4116 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x00-0x03 */ |
4117 | 0x97, 0x93, 0x9F, 0x4F, 0x00, 0x00, 0x00, 0x00, /* 0x04-0x07 */ | 4117 | 0x97, 0x93, 0x9F, 0x4F, 0x00, 0x00, 0x00, 0x00, /* 0x04-0x07 */ |
4118 | 0x00, 0x00, 0x00, 0x00, 0x9E, 0xDC, 0x00, 0x00, /* 0x08-0x0B */ | 4118 | 0x00, 0x00, 0x00, 0x00, 0x9E, 0xDC, 0x00, 0x00, /* 0x08-0x0B */ |
@@ -4177,7 +4177,7 @@ static unsigned char u2c_6B[512] = { | |||
4177 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x9F, 0x7D, /* 0xF0-0xF3 */ | 4177 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x9F, 0x7D, /* 0xF0-0xF3 */ |
4178 | }; | 4178 | }; |
4179 | 4179 | ||
4180 | static unsigned char u2c_6C[512] = { | 4180 | static const unsigned char u2c_6C[512] = { |
4181 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x00-0x03 */ | 4181 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x00-0x03 */ |
4182 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x04-0x07 */ | 4182 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x04-0x07 */ |
4183 | 0x9F, 0x81, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x08-0x0B */ | 4183 | 0x9F, 0x81, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x08-0x0B */ |
@@ -4242,7 +4242,7 @@ static unsigned char u2c_6C[512] = { | |||
4242 | 0x91, 0xD7, 0x9F, 0x96, 0x00, 0x00, 0x89, 0x6A, /* 0xF0-0xF3 */ | 4242 | 0x91, 0xD7, 0x9F, 0x96, 0x00, 0x00, 0x89, 0x6A, /* 0xF0-0xF3 */ |
4243 | }; | 4243 | }; |
4244 | 4244 | ||
4245 | static unsigned char u2c_6D[512] = { | 4245 | static const unsigned char u2c_6D[512] = { |
4246 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x00-0x03 */ | 4246 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x00-0x03 */ |
4247 | 0xED, 0xDE, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x04-0x07 */ | 4247 | 0xED, 0xDE, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x04-0x07 */ |
4248 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x97, 0x6D, /* 0x08-0x0B */ | 4248 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x97, 0x6D, /* 0x08-0x0B */ |
@@ -4310,7 +4310,7 @@ static unsigned char u2c_6D[512] = { | |||
4310 | 0xED, 0xE6, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xFC-0xFF */ | 4310 | 0xED, 0xE6, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xFC-0xFF */ |
4311 | }; | 4311 | }; |
4312 | 4312 | ||
4313 | static unsigned char u2c_6E[512] = { | 4313 | static const unsigned char u2c_6E[512] = { |
4314 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x00-0x03 */ | 4314 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x00-0x03 */ |
4315 | 0x00, 0x00, 0x90, 0xB4, 0x00, 0x00, 0x8A, 0x89, /* 0x04-0x07 */ | 4315 | 0x00, 0x00, 0x90, 0xB4, 0x00, 0x00, 0x8A, 0x89, /* 0x04-0x07 */ |
4316 | 0x8D, 0xCF, 0x8F, 0xC2, 0x9F, 0xBB, 0x8F, 0x61, /* 0x08-0x0B */ | 4316 | 0x8D, 0xCF, 0x8F, 0xC2, 0x9F, 0xBB, 0x8F, 0x61, /* 0x08-0x0B */ |
@@ -4378,7 +4378,7 @@ static unsigned char u2c_6E[512] = { | |||
4378 | 0x00, 0x00, 0x00, 0x00, 0x9F, 0xF6, 0x9F, 0xDE, /* 0xFC-0xFF */ | 4378 | 0x00, 0x00, 0x00, 0x00, 0x9F, 0xF6, 0x9F, 0xDE, /* 0xFC-0xFF */ |
4379 | }; | 4379 | }; |
4380 | 4380 | ||
4381 | static unsigned char u2c_6F[512] = { | 4381 | static const unsigned char u2c_6F[512] = { |
4382 | 0x00, 0x00, 0x8B, 0x99, 0x95, 0x59, 0x00, 0x00, /* 0x00-0x03 */ | 4382 | 0x00, 0x00, 0x8B, 0x99, 0x95, 0x59, 0x00, 0x00, /* 0x00-0x03 */ |
4383 | 0x00, 0x00, 0x00, 0x00, 0x8E, 0xBD, 0x00, 0x00, /* 0x04-0x07 */ | 4383 | 0x00, 0x00, 0x00, 0x00, 0x8E, 0xBD, 0x00, 0x00, /* 0x04-0x07 */ |
4384 | 0x00, 0x00, 0x8D, 0x97, 0x00, 0x00, 0x00, 0x00, /* 0x08-0x0B */ | 4384 | 0x00, 0x00, 0x8D, 0x97, 0x00, 0x00, 0x00, 0x00, /* 0x08-0x0B */ |
@@ -4446,7 +4446,7 @@ static unsigned char u2c_6F[512] = { | |||
4446 | 0x00, 0x00, 0x00, 0x00, 0xE0, 0x68, 0x00, 0x00, /* 0xFC-0xFF */ | 4446 | 0x00, 0x00, 0x00, 0x00, 0xE0, 0x68, 0x00, 0x00, /* 0xFC-0xFF */ |
4447 | }; | 4447 | }; |
4448 | 4448 | ||
4449 | static unsigned char u2c_70[512] = { | 4449 | static const unsigned char u2c_70[512] = { |
4450 | 0x00, 0x00, 0xE0, 0x66, 0x00, 0x00, 0x00, 0x00, /* 0x00-0x03 */ | 4450 | 0x00, 0x00, 0xE0, 0x66, 0x00, 0x00, 0x00, 0x00, /* 0x00-0x03 */ |
4451 | 0x00, 0x00, 0xED, 0xEF, 0x00, 0x00, 0xED, 0xF0, /* 0x04-0x07 */ | 4451 | 0x00, 0x00, 0xED, 0xEF, 0x00, 0x00, 0xED, 0xF0, /* 0x04-0x07 */ |
4452 | 0x00, 0x00, 0xE0, 0x62, 0x00, 0x00, 0xE0, 0x63, /* 0x08-0x0B */ | 4452 | 0x00, 0x00, 0xE0, 0x62, 0x00, 0x00, 0xE0, 0x63, /* 0x08-0x0B */ |
@@ -4514,7 +4514,7 @@ static unsigned char u2c_70[512] = { | |||
4514 | 0x00, 0x00, 0xE0, 0x82, 0x00, 0x00, 0x00, 0x00, /* 0xFC-0xFF */ | 4514 | 0x00, 0x00, 0xE0, 0x82, 0x00, 0x00, 0x00, 0x00, /* 0xFC-0xFF */ |
4515 | }; | 4515 | }; |
4516 | 4516 | ||
4517 | static unsigned char u2c_71[512] = { | 4517 | static const unsigned char u2c_71[512] = { |
4518 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x00-0x03 */ | 4518 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x00-0x03 */ |
4519 | 0xED, 0xF5, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x04-0x07 */ | 4519 | 0xED, 0xF5, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x04-0x07 */ |
4520 | 0x00, 0x00, 0xE0, 0x81, 0x00, 0x00, 0x00, 0x00, /* 0x08-0x0B */ | 4520 | 0x00, 0x00, 0xE0, 0x81, 0x00, 0x00, 0x00, 0x00, /* 0x08-0x0B */ |
@@ -4582,7 +4582,7 @@ static unsigned char u2c_71[512] = { | |||
4582 | 0xE0, 0x9E, 0x00, 0x00, 0xED, 0xFB, 0xE0, 0xA0, /* 0xFC-0xFF */ | 4582 | 0xE0, 0x9E, 0x00, 0x00, 0xED, 0xFB, 0xE0, 0xA0, /* 0xFC-0xFF */ |
4583 | }; | 4583 | }; |
4584 | 4584 | ||
4585 | static unsigned char u2c_72[512] = { | 4585 | static const unsigned char u2c_72[512] = { |
4586 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x00-0x03 */ | 4586 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x00-0x03 */ |
4587 | 0x00, 0x00, 0x00, 0x00, 0x94, 0x9A, 0x00, 0x00, /* 0x04-0x07 */ | 4587 | 0x00, 0x00, 0x00, 0x00, 0x94, 0x9A, 0x00, 0x00, /* 0x04-0x07 */ |
4588 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x08-0x0B */ | 4588 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x08-0x0B */ |
@@ -4650,7 +4650,7 @@ static unsigned char u2c_72[512] = { | |||
4650 | 0x98, 0x54, 0x94, 0x82, 0x00, 0x00, 0x00, 0x00, /* 0xFC-0xFF */ | 4650 | 0x98, 0x54, 0x94, 0x82, 0x00, 0x00, 0x00, 0x00, /* 0xFC-0xFF */ |
4651 | }; | 4651 | }; |
4652 | 4652 | ||
4653 | static unsigned char u2c_73[512] = { | 4653 | static const unsigned char u2c_73[512] = { |
4654 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x00-0x03 */ | 4654 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x00-0x03 */ |
4655 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x04-0x07 */ | 4655 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x04-0x07 */ |
4656 | 0x00, 0x00, 0x00, 0x00, 0xE0, 0xC7, 0x00, 0x00, /* 0x08-0x0B */ | 4656 | 0x00, 0x00, 0x00, 0x00, 0xE0, 0xC7, 0x00, 0x00, /* 0x08-0x0B */ |
@@ -4718,7 +4718,7 @@ static unsigned char u2c_73[512] = { | |||
4718 | 0x00, 0x00, 0x00, 0x00, 0x8C, 0xBB, 0x00, 0x00, /* 0xFC-0xFF */ | 4718 | 0x00, 0x00, 0x00, 0x00, 0x8C, 0xBB, 0x00, 0x00, /* 0xFC-0xFF */ |
4719 | }; | 4719 | }; |
4720 | 4720 | ||
4721 | static unsigned char u2c_74[512] = { | 4721 | static const unsigned char u2c_74[512] = { |
4722 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x8B, 0x85, /* 0x00-0x03 */ | 4722 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x8B, 0x85, /* 0x00-0x03 */ |
4723 | 0x00, 0x00, 0xE0, 0xE4, 0x97, 0x9D, 0xEE, 0x49, /* 0x04-0x07 */ | 4723 | 0x00, 0x00, 0xE0, 0xE4, 0x97, 0x9D, 0xEE, 0x49, /* 0x04-0x07 */ |
4724 | 0x00, 0x00, 0x97, 0xAE, 0x00, 0x00, 0x00, 0x00, /* 0x08-0x0B */ | 4724 | 0x00, 0x00, 0x97, 0xAE, 0x00, 0x00, 0x00, 0x00, /* 0x08-0x0B */ |
@@ -4785,7 +4785,7 @@ static unsigned char u2c_74[512] = { | |||
4785 | 0xE1, 0x48, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xF8-0xFB */ | 4785 | 0xE1, 0x48, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xF8-0xFB */ |
4786 | }; | 4786 | }; |
4787 | 4787 | ||
4788 | static unsigned char u2c_75[512] = { | 4788 | static const unsigned char u2c_75[512] = { |
4789 | 0x00, 0x00, 0xEE, 0x52, 0x00, 0x00, 0xE1, 0x4B, /* 0x00-0x03 */ | 4789 | 0x00, 0x00, 0xEE, 0x52, 0x00, 0x00, 0xE1, 0x4B, /* 0x00-0x03 */ |
4790 | 0xE1, 0x4A, 0xE1, 0x4C, 0x00, 0x00, 0x00, 0x00, /* 0x04-0x07 */ | 4790 | 0xE1, 0x4A, 0xE1, 0x4C, 0x00, 0x00, 0x00, 0x00, /* 0x04-0x07 */ |
4791 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x08-0x0B */ | 4791 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x08-0x0B */ |
@@ -4853,7 +4853,7 @@ static unsigned char u2c_75[512] = { | |||
4853 | 0xE1, 0x80, 0x00, 0x00, 0xE1, 0x7D, 0xE1, 0x7E, /* 0xFC-0xFF */ | 4853 | 0xE1, 0x80, 0x00, 0x00, 0xE1, 0x7D, 0xE1, 0x7E, /* 0xFC-0xFF */ |
4854 | }; | 4854 | }; |
4855 | 4855 | ||
4856 | static unsigned char u2c_76[512] = { | 4856 | static const unsigned char u2c_76[512] = { |
4857 | 0x00, 0x00, 0xE1, 0x81, 0x00, 0x00, 0x00, 0x00, /* 0x00-0x03 */ | 4857 | 0x00, 0x00, 0xE1, 0x81, 0x00, 0x00, 0x00, 0x00, /* 0x00-0x03 */ |
4858 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x04-0x07 */ | 4858 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x04-0x07 */ |
4859 | 0x00, 0x00, 0xE1, 0x88, 0x00, 0x00, 0xE1, 0x86, /* 0x08-0x0B */ | 4859 | 0x00, 0x00, 0xE1, 0x88, 0x00, 0x00, 0xE1, 0x86, /* 0x08-0x0B */ |
@@ -4921,7 +4921,7 @@ static unsigned char u2c_76[512] = { | |||
4921 | 0x00, 0x00, 0x00, 0x00, 0x8F, 0x82, 0x00, 0x00, /* 0xFC-0xFF */ | 4921 | 0x00, 0x00, 0x00, 0x00, 0x8F, 0x82, 0x00, 0x00, /* 0xFC-0xFF */ |
4922 | }; | 4922 | }; |
4923 | 4923 | ||
4924 | static unsigned char u2c_77[512] = { | 4924 | static const unsigned char u2c_77[512] = { |
4925 | 0x00, 0x00, 0x8F, 0xC8, 0x00, 0x00, 0x00, 0x00, /* 0x00-0x03 */ | 4925 | 0x00, 0x00, 0x8F, 0xC8, 0x00, 0x00, 0x00, 0x00, /* 0x00-0x03 */ |
4926 | 0xE1, 0xBE, 0x00, 0x00, 0x00, 0x00, 0xE1, 0xBD, /* 0x04-0x07 */ | 4926 | 0xE1, 0xBE, 0x00, 0x00, 0x00, 0x00, 0xE1, 0xBD, /* 0x04-0x07 */ |
4927 | 0xE1, 0xBC, 0x94, 0xFB, 0x00, 0x00, 0x8A, 0xC5, /* 0x08-0x0B */ | 4927 | 0xE1, 0xBC, 0x94, 0xFB, 0x00, 0x00, 0x8A, 0xC5, /* 0x08-0x0B */ |
@@ -4989,7 +4989,7 @@ static unsigned char u2c_77[512] = { | |||
4989 | 0xE1, 0xE3, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xFC-0xFF */ | 4989 | 0xE1, 0xE3, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xFC-0xFF */ |
4990 | }; | 4990 | }; |
4991 | 4991 | ||
4992 | static unsigned char u2c_78[512] = { | 4992 | static const unsigned char u2c_78[512] = { |
4993 | 0x00, 0x00, 0x00, 0x00, 0x8D, 0xBB, 0x00, 0x00, /* 0x00-0x03 */ | 4993 | 0x00, 0x00, 0x00, 0x00, 0x8D, 0xBB, 0x00, 0x00, /* 0x00-0x03 */ |
4994 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x04-0x07 */ | 4994 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x04-0x07 */ |
4995 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x08-0x0B */ | 4995 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x08-0x0B */ |
@@ -5057,7 +5057,7 @@ static unsigned char u2c_78[512] = { | |||
5057 | 0x00, 0x00, 0xE2, 0x42, 0x00, 0x00, 0x00, 0x00, /* 0xFC-0xFF */ | 5057 | 0x00, 0x00, 0xE2, 0x42, 0x00, 0x00, 0x00, 0x00, /* 0xFC-0xFF */ |
5058 | }; | 5058 | }; |
5059 | 5059 | ||
5060 | static unsigned char u2c_79[512] = { | 5060 | static const unsigned char u2c_79[512] = { |
5061 | 0x00, 0x00, 0x8F, 0xCA, 0x00, 0x00, 0x00, 0x00, /* 0x00-0x03 */ | 5061 | 0x00, 0x00, 0x8F, 0xCA, 0x00, 0x00, 0x00, 0x00, /* 0x00-0x03 */ |
5062 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xE2, 0x44, /* 0x04-0x07 */ | 5062 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xE2, 0x44, /* 0x04-0x07 */ |
5063 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x08-0x0B */ | 5063 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x08-0x0B */ |
@@ -5124,7 +5124,7 @@ static unsigned char u2c_79[512] = { | |||
5124 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x88, 0xDA, /* 0xF8-0xFB */ | 5124 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x88, 0xDA, /* 0xF8-0xFB */ |
5125 | }; | 5125 | }; |
5126 | 5126 | ||
5127 | static unsigned char u2c_7A[512] = { | 5127 | static const unsigned char u2c_7A[512] = { |
5128 | 0x8B, 0x48, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x00-0x03 */ | 5128 | 0x8B, 0x48, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x00-0x03 */ |
5129 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x04-0x07 */ | 5129 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x04-0x07 */ |
5130 | 0xE2, 0x62, 0x00, 0x00, 0x00, 0x00, 0x92, 0xF6, /* 0x08-0x0B */ | 5130 | 0xE2, 0x62, 0x00, 0x00, 0x00, 0x00, 0x92, 0xF6, /* 0x08-0x0B */ |
@@ -5192,7 +5192,7 @@ static unsigned char u2c_7A[512] = { | |||
5192 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x8A, 0xC6, /* 0xFC-0xFF */ | 5192 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x8A, 0xC6, /* 0xFC-0xFF */ |
5193 | }; | 5193 | }; |
5194 | 5194 | ||
5195 | static unsigned char u2c_7B[512] = { | 5195 | static const unsigned char u2c_7B[512] = { |
5196 | 0x00, 0x00, 0x00, 0x00, 0xE2, 0x93, 0x00, 0x00, /* 0x00-0x03 */ | 5196 | 0x00, 0x00, 0x00, 0x00, 0xE2, 0x93, 0x00, 0x00, /* 0x00-0x03 */ |
5197 | 0xE2, 0xA0, 0x00, 0x00, 0xE2, 0x96, 0x00, 0x00, /* 0x04-0x07 */ | 5197 | 0xE2, 0xA0, 0x00, 0x00, 0xE2, 0x96, 0x00, 0x00, /* 0x04-0x07 */ |
5198 | 0x8B, 0x88, 0x00, 0x00, 0xE2, 0x95, 0xE2, 0xA2, /* 0x08-0x0B */ | 5198 | 0x8B, 0x88, 0x00, 0x00, 0xE2, 0x95, 0xE2, 0xA2, /* 0x08-0x0B */ |
@@ -5258,7 +5258,7 @@ static unsigned char u2c_7B[512] = { | |||
5258 | 0x00, 0x00, 0x00, 0x00, 0xE2, 0xCC, 0xE2, 0xC9, /* 0xF4-0xF7 */ | 5258 | 0x00, 0x00, 0x00, 0x00, 0xE2, 0xCC, 0xE2, 0xC9, /* 0xF4-0xF7 */ |
5259 | }; | 5259 | }; |
5260 | 5260 | ||
5261 | static unsigned char u2c_7C[512] = { | 5261 | static const unsigned char u2c_7C[512] = { |
5262 | 0xE2, 0xC5, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x00-0x03 */ | 5262 | 0xE2, 0xC5, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x00-0x03 */ |
5263 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xE2, 0xC6, /* 0x04-0x07 */ | 5263 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xE2, 0xC6, /* 0x04-0x07 */ |
5264 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x08-0x0B */ | 5264 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x08-0x0B */ |
@@ -5326,7 +5326,7 @@ static unsigned char u2c_7C[512] = { | |||
5326 | 0x00, 0x00, 0x00, 0x00, 0x8B, 0x8A, 0x00, 0x00, /* 0xFC-0xFF */ | 5326 | 0x00, 0x00, 0x00, 0x00, 0x8B, 0x8A, 0x00, 0x00, /* 0xFC-0xFF */ |
5327 | }; | 5327 | }; |
5328 | 5328 | ||
5329 | static unsigned char u2c_7D[512] = { | 5329 | static const unsigned char u2c_7D[512] = { |
5330 | 0x8B, 0x49, 0x00, 0x00, 0xE3, 0x40, 0x00, 0x00, /* 0x00-0x03 */ | 5330 | 0x8B, 0x49, 0x00, 0x00, 0xE3, 0x40, 0x00, 0x00, /* 0x00-0x03 */ |
5331 | 0x96, 0xF1, 0x8D, 0x67, 0xE2, 0xFC, 0x00, 0x00, /* 0x04-0x07 */ | 5331 | 0x96, 0xF1, 0x8D, 0x67, 0xE2, 0xFC, 0x00, 0x00, /* 0x04-0x07 */ |
5332 | 0x00, 0x00, 0x00, 0x00, 0xE3, 0x43, 0x96, 0xE4, /* 0x08-0x0B */ | 5332 | 0x00, 0x00, 0x00, 0x00, 0xE3, 0x43, 0x96, 0xE4, /* 0x08-0x0B */ |
@@ -5393,7 +5393,7 @@ static unsigned char u2c_7D[512] = { | |||
5393 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xE3, 0x6B, /* 0xF8-0xFB */ | 5393 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xE3, 0x6B, /* 0xF8-0xFB */ |
5394 | }; | 5394 | }; |
5395 | 5395 | ||
5396 | static unsigned char u2c_7E[512] = { | 5396 | static const unsigned char u2c_7E[512] = { |
5397 | 0x00, 0x00, 0x89, 0x8F, 0x00, 0x00, 0x00, 0x00, /* 0x00-0x03 */ | 5397 | 0x00, 0x00, 0x89, 0x8F, 0x00, 0x00, 0x00, 0x00, /* 0x00-0x03 */ |
5398 | 0x93, 0xEA, 0xE3, 0x6E, 0x00, 0x00, 0x00, 0x00, /* 0x04-0x07 */ | 5398 | 0x93, 0xEA, 0xE3, 0x6E, 0x00, 0x00, 0x00, 0x00, /* 0x04-0x07 */ |
5399 | 0x00, 0x00, 0xE3, 0x75, 0xE3, 0x6F, 0xE3, 0x76, /* 0x08-0x0B */ | 5399 | 0x00, 0x00, 0xE3, 0x75, 0xE3, 0x6F, 0xE3, 0x76, /* 0x08-0x0B */ |
@@ -5437,7 +5437,7 @@ static unsigned char u2c_7E[512] = { | |||
5437 | 0xE3, 0x9C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x9C-0x9F */ | 5437 | 0xE3, 0x9C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x9C-0x9F */ |
5438 | }; | 5438 | }; |
5439 | 5439 | ||
5440 | static unsigned char u2c_7F[512] = { | 5440 | static const unsigned char u2c_7F[512] = { |
5441 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x00-0x03 */ | 5441 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x00-0x03 */ |
5442 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x04-0x07 */ | 5442 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x04-0x07 */ |
5443 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x08-0x0B */ | 5443 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x08-0x0B */ |
@@ -5505,7 +5505,7 @@ static unsigned char u2c_7F[512] = { | |||
5505 | 0x97, 0x83, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xFC-0xFF */ | 5505 | 0x97, 0x83, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xFC-0xFF */ |
5506 | }; | 5506 | }; |
5507 | 5507 | ||
5508 | static unsigned char u2c_80[512] = { | 5508 | static const unsigned char u2c_80[512] = { |
5509 | 0x97, 0x73, 0x98, 0x56, 0x00, 0x00, 0x8D, 0x6C, /* 0x00-0x03 */ | 5509 | 0x97, 0x73, 0x98, 0x56, 0x00, 0x00, 0x8D, 0x6C, /* 0x00-0x03 */ |
5510 | 0xE3, 0xCC, 0x8E, 0xD2, 0xE3, 0xCB, 0x00, 0x00, /* 0x04-0x07 */ | 5510 | 0xE3, 0xCC, 0x8E, 0xD2, 0xE3, 0xCB, 0x00, 0x00, /* 0x04-0x07 */ |
5511 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xE3, 0xCD, /* 0x08-0x0B */ | 5511 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xE3, 0xCD, /* 0x08-0x0B */ |
@@ -5573,7 +5573,7 @@ static unsigned char u2c_80[512] = { | |||
5573 | 0xE4, 0x45, 0x94, 0x5C, 0x00, 0x00, 0x00, 0x00, /* 0xFC-0xFF */ | 5573 | 0xE4, 0x45, 0x94, 0x5C, 0x00, 0x00, 0x00, 0x00, /* 0xFC-0xFF */ |
5574 | }; | 5574 | }; |
5575 | 5575 | ||
5576 | static unsigned char u2c_81[512] = { | 5576 | static const unsigned char u2c_81[512] = { |
5577 | 0x00, 0x00, 0x00, 0x00, 0x8E, 0x89, 0x00, 0x00, /* 0x00-0x03 */ | 5577 | 0x00, 0x00, 0x00, 0x00, 0x8E, 0x89, 0x00, 0x00, /* 0x00-0x03 */ |
5578 | 0x00, 0x00, 0x8B, 0xBA, 0x90, 0xC6, 0x98, 0x65, /* 0x04-0x07 */ | 5578 | 0x00, 0x00, 0x8B, 0xBA, 0x90, 0xC6, 0x98, 0x65, /* 0x04-0x07 */ |
5579 | 0x96, 0xAC, 0xE3, 0xF5, 0x90, 0xD2, 0x00, 0x00, /* 0x08-0x0B */ | 5579 | 0x96, 0xAC, 0xE3, 0xF5, 0x90, 0xD2, 0x00, 0x00, /* 0x08-0x0B */ |
@@ -5641,7 +5641,7 @@ static unsigned char u2c_81[512] = { | |||
5641 | 0x89, 0x50, 0x00, 0x00, 0xE4, 0x6B, 0x00, 0x00, /* 0xFC-0xFF */ | 5641 | 0x89, 0x50, 0x00, 0x00, 0xE4, 0x6B, 0x00, 0x00, /* 0xFC-0xFF */ |
5642 | }; | 5642 | }; |
5643 | 5643 | ||
5644 | static unsigned char u2c_82[512] = { | 5644 | static const unsigned char u2c_82[512] = { |
5645 | 0x00, 0x00, 0xE4, 0x6C, 0xE4, 0x6D, 0x00, 0x00, /* 0x00-0x03 */ | 5645 | 0x00, 0x00, 0xE4, 0x6C, 0xE4, 0x6D, 0x00, 0x00, /* 0x00-0x03 */ |
5646 | 0x00, 0x00, 0xE4, 0x6E, 0x00, 0x00, 0xE4, 0x6F, /* 0x04-0x07 */ | 5646 | 0x00, 0x00, 0xE4, 0x6E, 0x00, 0x00, 0xE4, 0x6F, /* 0x04-0x07 */ |
5647 | 0x8B, 0xBB, 0x9D, 0xA8, 0xE4, 0x70, 0x00, 0x00, /* 0x08-0x0B */ | 5647 | 0x8B, 0xBB, 0x9D, 0xA8, 0xE4, 0x70, 0x00, 0x00, /* 0x08-0x0B */ |
@@ -5708,7 +5708,7 @@ static unsigned char u2c_82[512] = { | |||
5708 | 0x00, 0x00, 0xE4, 0x99, 0xE4, 0x95, 0xE4, 0x98, /* 0xF8-0xFB */ | 5708 | 0x00, 0x00, 0xE4, 0x99, 0xE4, 0x95, 0xE4, 0x98, /* 0xF8-0xFB */ |
5709 | }; | 5709 | }; |
5710 | 5710 | ||
5711 | static unsigned char u2c_83[512] = { | 5711 | static const unsigned char u2c_83[512] = { |
5712 | 0x00, 0x00, 0xEE, 0x76, 0x96, 0xCE, 0xE4, 0x97, /* 0x00-0x03 */ | 5712 | 0x00, 0x00, 0xEE, 0x76, 0x96, 0xCE, 0xE4, 0x97, /* 0x00-0x03 */ |
5713 | 0x89, 0xD6, 0x8A, 0x9D, 0xE4, 0x9B, 0x00, 0x00, /* 0x04-0x07 */ | 5713 | 0x89, 0xD6, 0x8A, 0x9D, 0xE4, 0x9B, 0x00, 0x00, /* 0x04-0x07 */ |
5714 | 0x00, 0x00, 0xE4, 0x9D, 0x00, 0x00, 0x00, 0x00, /* 0x08-0x0B */ | 5714 | 0x00, 0x00, 0xE4, 0x9D, 0x00, 0x00, 0x00, 0x00, /* 0x08-0x0B */ |
@@ -5776,7 +5776,7 @@ static unsigned char u2c_83[512] = { | |||
5776 | 0x00, 0x00, 0xE4, 0xC1, 0x00, 0x00, 0x00, 0x00, /* 0xFC-0xFF */ | 5776 | 0x00, 0x00, 0xE4, 0xC1, 0x00, 0x00, 0x00, 0x00, /* 0xFC-0xFF */ |
5777 | }; | 5777 | }; |
5778 | 5778 | ||
5779 | static unsigned char u2c_84[512] = { | 5779 | static const unsigned char u2c_84[512] = { |
5780 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xE4, 0xC2, /* 0x00-0x03 */ | 5780 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xE4, 0xC2, /* 0x00-0x03 */ |
5781 | 0x93, 0xB8, 0x00, 0x00, 0x00, 0x00, 0xE4, 0xC7, /* 0x04-0x07 */ | 5781 | 0x93, 0xB8, 0x00, 0x00, 0x00, 0x00, 0xE4, 0xC7, /* 0x04-0x07 */ |
5782 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xE4, 0xC4, /* 0x08-0x0B */ | 5782 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xE4, 0xC4, /* 0x08-0x0B */ |
@@ -5844,7 +5844,7 @@ static unsigned char u2c_84[512] = { | |||
5844 | 0xE4, 0xF8, 0x00, 0x00, 0x00, 0x00, 0xE4, 0xF0, /* 0xFC-0xFF */ | 5844 | 0xE4, 0xF8, 0x00, 0x00, 0x00, 0x00, 0xE4, 0xF0, /* 0xFC-0xFF */ |
5845 | }; | 5845 | }; |
5846 | 5846 | ||
5847 | static unsigned char u2c_85[512] = { | 5847 | static const unsigned char u2c_85[512] = { |
5848 | 0x8E, 0xC1, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x00-0x03 */ | 5848 | 0x8E, 0xC1, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x00-0x03 */ |
5849 | 0x00, 0x00, 0x00, 0x00, 0xE4, 0xCF, 0x00, 0x00, /* 0x04-0x07 */ | 5849 | 0x00, 0x00, 0x00, 0x00, 0xE4, 0xCF, 0x00, 0x00, /* 0x04-0x07 */ |
5850 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x08-0x0B */ | 5850 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x08-0x0B */ |
@@ -5912,7 +5912,7 @@ static unsigned char u2c_85[512] = { | |||
5912 | 0x00, 0x00, 0x00, 0x00, 0xE5, 0x60, 0x00, 0x00, /* 0xFC-0xFF */ | 5912 | 0x00, 0x00, 0x00, 0x00, 0xE5, 0x60, 0x00, 0x00, /* 0xFC-0xFF */ |
5913 | }; | 5913 | }; |
5914 | 5914 | ||
5915 | static unsigned char u2c_86[512] = { | 5915 | static const unsigned char u2c_86[512] = { |
5916 | 0x00, 0x00, 0x00, 0x00, 0xE5, 0x41, 0x00, 0x00, /* 0x00-0x03 */ | 5916 | 0x00, 0x00, 0x00, 0x00, 0xE5, 0x41, 0x00, 0x00, /* 0x00-0x03 */ |
5917 | 0x00, 0x00, 0x00, 0x00, 0xE5, 0x62, 0x91, 0x68, /* 0x04-0x07 */ | 5917 | 0x00, 0x00, 0x00, 0x00, 0xE5, 0x62, 0x91, 0x68, /* 0x04-0x07 */ |
5918 | 0x00, 0x00, 0x00, 0x00, 0xE5, 0x5D, 0xE5, 0x5F, /* 0x08-0x0B */ | 5918 | 0x00, 0x00, 0x00, 0x00, 0xE5, 0x5D, 0xE5, 0x5F, /* 0x08-0x0B */ |
@@ -5980,7 +5980,7 @@ static unsigned char u2c_86[512] = { | |||
5980 | 0x00, 0x00, 0x00, 0x00, 0x89, 0xE9, 0x00, 0x00, /* 0xFC-0xFF */ | 5980 | 0x00, 0x00, 0x00, 0x00, 0x89, 0xE9, 0x00, 0x00, /* 0xFC-0xFF */ |
5981 | }; | 5981 | }; |
5982 | 5982 | ||
5983 | static unsigned char u2c_87[512] = { | 5983 | static const unsigned char u2c_87[512] = { |
5984 | 0xE5, 0x86, 0x00, 0x00, 0x96, 0x49, 0xE5, 0x87, /* 0x00-0x03 */ | 5984 | 0xE5, 0x86, 0x00, 0x00, 0x96, 0x49, 0xE5, 0x87, /* 0x00-0x03 */ |
5985 | 0x00, 0x00, 0x00, 0x00, 0xE5, 0x84, 0x00, 0x00, /* 0x04-0x07 */ | 5985 | 0x00, 0x00, 0x00, 0x00, 0xE5, 0x84, 0x00, 0x00, /* 0x04-0x07 */ |
5986 | 0xE5, 0x85, 0xE5, 0x8A, 0xE5, 0x8D, 0x00, 0x00, /* 0x08-0x0B */ | 5986 | 0xE5, 0x85, 0xE5, 0x8A, 0xE5, 0x8D, 0x00, 0x00, /* 0x08-0x0B */ |
@@ -6048,7 +6048,7 @@ static unsigned char u2c_87[512] = { | |||
6048 | 0x00, 0x00, 0x00, 0x00, 0xE5, 0xB7, 0x00, 0x00, /* 0xFC-0xFF */ | 6048 | 0x00, 0x00, 0x00, 0x00, 0xE5, 0xB7, 0x00, 0x00, /* 0xFC-0xFF */ |
6049 | }; | 6049 | }; |
6050 | 6050 | ||
6051 | static unsigned char u2c_88[512] = { | 6051 | static const unsigned char u2c_88[512] = { |
6052 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x00-0x03 */ | 6052 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x00-0x03 */ |
6053 | 0x00, 0x00, 0xE5, 0xA2, 0x00, 0x00, 0xEE, 0x85, /* 0x04-0x07 */ | 6053 | 0x00, 0x00, 0xE5, 0xA2, 0x00, 0x00, 0xEE, 0x85, /* 0x04-0x07 */ |
6054 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x08-0x0B */ | 6054 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x08-0x0B */ |
@@ -6116,7 +6116,7 @@ static unsigned char u2c_88[512] = { | |||
6116 | 0xE5, 0xE7, 0x90, 0xBB, 0x90, 0x9E, 0x00, 0x00, /* 0xFC-0xFF */ | 6116 | 0xE5, 0xE7, 0x90, 0xBB, 0x90, 0x9E, 0x00, 0x00, /* 0xFC-0xFF */ |
6117 | }; | 6117 | }; |
6118 | 6118 | ||
6119 | static unsigned char u2c_89[512] = { | 6119 | static const unsigned char u2c_89[512] = { |
6120 | 0x00, 0x00, 0x00, 0x00, 0xE5, 0xE6, 0x00, 0x00, /* 0x00-0x03 */ | 6120 | 0x00, 0x00, 0x00, 0x00, 0xE5, 0xE6, 0x00, 0x00, /* 0x00-0x03 */ |
6121 | 0xE5, 0xEB, 0x00, 0x00, 0x00, 0x00, 0x95, 0xA1, /* 0x04-0x07 */ | 6121 | 0xE5, 0xEB, 0x00, 0x00, 0x00, 0x00, 0x95, 0xA1, /* 0x04-0x07 */ |
6122 | 0x00, 0x00, 0x00, 0x00, 0xE5, 0xED, 0x00, 0x00, /* 0x08-0x0B */ | 6122 | 0x00, 0x00, 0x00, 0x00, 0xE5, 0xED, 0x00, 0x00, /* 0x08-0x0B */ |
@@ -6183,7 +6183,7 @@ static unsigned char u2c_89[512] = { | |||
6183 | 0xE6, 0x5C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xF8-0xFB */ | 6183 | 0xE6, 0x5C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xF8-0xFB */ |
6184 | }; | 6184 | }; |
6185 | 6185 | ||
6186 | static unsigned char u2c_8A[512] = { | 6186 | static const unsigned char u2c_8A[512] = { |
6187 | 0x8C, 0xBE, 0x00, 0x00, 0x92, 0xF9, 0xE6, 0x5D, /* 0x00-0x03 */ | 6187 | 0x8C, 0xBE, 0x00, 0x00, 0x92, 0xF9, 0xE6, 0x5D, /* 0x00-0x03 */ |
6188 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x04-0x07 */ | 6188 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x04-0x07 */ |
6189 | 0x8C, 0x76, 0x00, 0x00, 0x90, 0x75, 0x00, 0x00, /* 0x08-0x0B */ | 6189 | 0x8C, 0x76, 0x00, 0x00, 0x90, 0x75, 0x00, 0x00, /* 0x08-0x0B */ |
@@ -6251,7 +6251,7 @@ static unsigned char u2c_8A[512] = { | |||
6251 | 0x00, 0x00, 0x00, 0x00, 0x91, 0xF8, 0x00, 0x00, /* 0xFC-0xFF */ | 6251 | 0x00, 0x00, 0x00, 0x00, 0x91, 0xF8, 0x00, 0x00, /* 0xFC-0xFF */ |
6252 | }; | 6252 | }; |
6253 | 6253 | ||
6254 | static unsigned char u2c_8B[512] = { | 6254 | static const unsigned char u2c_8B[512] = { |
6255 | 0x96, 0x64, 0x89, 0x79, 0x88, 0xE0, 0x00, 0x00, /* 0x00-0x03 */ | 6255 | 0x96, 0x64, 0x89, 0x79, 0x88, 0xE0, 0x00, 0x00, /* 0x00-0x03 */ |
6256 | 0x93, 0xA3, 0x00, 0x00, 0x00, 0x00, 0xE6, 0x89, /* 0x04-0x07 */ | 6256 | 0x93, 0xA3, 0x00, 0x00, 0x00, 0x00, 0xE6, 0x89, /* 0x04-0x07 */ |
6257 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x08-0x0B */ | 6257 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x08-0x0B */ |
@@ -6294,7 +6294,7 @@ static unsigned char u2c_8B[512] = { | |||
6294 | 0x00, 0x00, 0xE6, 0xAA, 0xE6, 0xAB, 0x00, 0x00, /* 0x98-0x9B */ | 6294 | 0x00, 0x00, 0xE6, 0xAA, 0xE6, 0xAB, 0x00, 0x00, /* 0x98-0x9B */ |
6295 | }; | 6295 | }; |
6296 | 6296 | ||
6297 | static unsigned char u2c_8C[512] = { | 6297 | static const unsigned char u2c_8C[512] = { |
6298 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x00-0x03 */ | 6298 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x00-0x03 */ |
6299 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x04-0x07 */ | 6299 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x04-0x07 */ |
6300 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x08-0x0B */ | 6300 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x08-0x0B */ |
@@ -6362,7 +6362,7 @@ static unsigned char u2c_8C[512] = { | |||
6362 | 0x8D, 0x77, 0xE6, 0xCE, 0x00, 0x00, 0x00, 0x00, /* 0xFC-0xFF */ | 6362 | 0x8D, 0x77, 0xE6, 0xCE, 0x00, 0x00, 0x00, 0x00, /* 0xFC-0xFF */ |
6363 | }; | 6363 | }; |
6364 | 6364 | ||
6365 | static unsigned char u2c_8D[512] = { | 6365 | static const unsigned char u2c_8D[512] = { |
6366 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x00-0x03 */ | 6366 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x00-0x03 */ |
6367 | 0xE6, 0xD1, 0xE6, 0xD2, 0x00, 0x00, 0xE6, 0xD4, /* 0x04-0x07 */ | 6367 | 0xE6, 0xD1, 0xE6, 0xD2, 0x00, 0x00, 0xE6, 0xD4, /* 0x04-0x07 */ |
6368 | 0x91, 0xA1, 0x00, 0x00, 0xE6, 0xD3, 0x8A, 0xE4, /* 0x08-0x0B */ | 6368 | 0x91, 0xA1, 0x00, 0x00, 0xE6, 0xD3, 0x8A, 0xE4, /* 0x08-0x0B */ |
@@ -6430,7 +6430,7 @@ static unsigned char u2c_8D[512] = { | |||
6430 | 0xE6, 0xF0, 0x00, 0x00, 0x00, 0x00, 0xE6, 0xF3, /* 0xFC-0xFF */ | 6430 | 0xE6, 0xF0, 0x00, 0x00, 0x00, 0x00, 0xE6, 0xF3, /* 0xFC-0xFF */ |
6431 | }; | 6431 | }; |
6432 | 6432 | ||
6433 | static unsigned char u2c_8E[512] = { | 6433 | static const unsigned char u2c_8E[512] = { |
6434 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x00-0x03 */ | 6434 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x00-0x03 */ |
6435 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x04-0x07 */ | 6435 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x04-0x07 */ |
6436 | 0xE6, 0xF1, 0xE6, 0xF2, 0x97, 0x78, 0x00, 0x00, /* 0x08-0x0B */ | 6436 | 0xE6, 0xF1, 0xE6, 0xF2, 0x97, 0x78, 0x00, 0x00, /* 0x08-0x0B */ |
@@ -6498,7 +6498,7 @@ static unsigned char u2c_8E[512] = { | |||
6498 | 0xE7, 0x64, 0x8C, 0x79, 0xE7, 0x67, 0x00, 0x00, /* 0xFC-0xFF */ | 6498 | 0xE7, 0x64, 0x8C, 0x79, 0xE7, 0x67, 0x00, 0x00, /* 0xFC-0xFF */ |
6499 | }; | 6499 | }; |
6500 | 6500 | ||
6501 | static unsigned char u2c_8F[512] = { | 6501 | static const unsigned char u2c_8F[512] = { |
6502 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x8A, 0x72, /* 0x00-0x03 */ | 6502 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x8A, 0x72, /* 0x00-0x03 */ |
6503 | 0x00, 0x00, 0xE7, 0x69, 0x00, 0x00, 0x00, 0x00, /* 0x04-0x07 */ | 6503 | 0x00, 0x00, 0xE7, 0x69, 0x00, 0x00, 0x00, 0x00, /* 0x04-0x07 */ |
6504 | 0x00, 0x00, 0x8D, 0xDA, 0xE7, 0x68, 0x00, 0x00, /* 0x08-0x0B */ | 6504 | 0x00, 0x00, 0x8D, 0xDA, 0xE7, 0x68, 0x00, 0x00, /* 0x08-0x0B */ |
@@ -6566,7 +6566,7 @@ static unsigned char u2c_8F[512] = { | |||
6566 | 0x00, 0x00, 0x92, 0xC7, 0x00, 0x00, 0x00, 0x00, /* 0xFC-0xFF */ | 6566 | 0x00, 0x00, 0x92, 0xC7, 0x00, 0x00, 0x00, 0x00, /* 0xFC-0xFF */ |
6567 | }; | 6567 | }; |
6568 | 6568 | ||
6569 | static unsigned char u2c_90[512] = { | 6569 | static const unsigned char u2c_90[512] = { |
6570 | 0x91, 0xDE, 0x91, 0x97, 0x00, 0x00, 0x93, 0xA6, /* 0x00-0x03 */ | 6570 | 0x91, 0xDE, 0x91, 0x97, 0x00, 0x00, 0x93, 0xA6, /* 0x00-0x03 */ |
6571 | 0x00, 0x00, 0xE7, 0x90, 0x8B, 0x74, 0x00, 0x00, /* 0x04-0x07 */ | 6571 | 0x00, 0x00, 0xE7, 0x90, 0x8B, 0x74, 0x00, 0x00, /* 0x04-0x07 */ |
6572 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xE7, 0x99, /* 0x08-0x0B */ | 6572 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xE7, 0x99, /* 0x08-0x0B */ |
@@ -6634,7 +6634,7 @@ static unsigned char u2c_90[512] = { | |||
6634 | 0x00, 0x00, 0x93, 0x73, 0x00, 0x00, 0x00, 0x00, /* 0xFC-0xFF */ | 6634 | 0x00, 0x00, 0x93, 0x73, 0x00, 0x00, 0x00, 0x00, /* 0xFC-0xFF */ |
6635 | }; | 6635 | }; |
6636 | 6636 | ||
6637 | static unsigned char u2c_91[512] = { | 6637 | static const unsigned char u2c_91[512] = { |
6638 | 0x00, 0x00, 0x00, 0x00, 0xE7, 0xBD, 0x00, 0x00, /* 0x00-0x03 */ | 6638 | 0x00, 0x00, 0x00, 0x00, 0xE7, 0xBD, 0x00, 0x00, /* 0x00-0x03 */ |
6639 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x04-0x07 */ | 6639 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x04-0x07 */ |
6640 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x08-0x0B */ | 6640 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x08-0x0B */ |
@@ -6702,7 +6702,7 @@ static unsigned char u2c_91[512] = { | |||
6702 | 0xE7, 0xDD, 0x00, 0x00, 0x00, 0x00, 0xE7, 0xE1, /* 0xFC-0xFF */ | 6702 | 0xE7, 0xDD, 0x00, 0x00, 0x00, 0x00, 0xE7, 0xE1, /* 0xFC-0xFF */ |
6703 | }; | 6703 | }; |
6704 | 6704 | ||
6705 | static unsigned char u2c_92[512] = { | 6705 | static const unsigned char u2c_92[512] = { |
6706 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x00-0x03 */ | 6706 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x00-0x03 */ |
6707 | 0x00, 0x00, 0x00, 0x00, 0xEE, 0xA5, 0x00, 0x00, /* 0x04-0x07 */ | 6707 | 0x00, 0x00, 0x00, 0x00, 0xEE, 0xA5, 0x00, 0x00, /* 0x04-0x07 */ |
6708 | 0x00, 0x00, 0x00, 0x00, 0xEE, 0xA7, 0x00, 0x00, /* 0x08-0x0B */ | 6708 | 0x00, 0x00, 0x00, 0x00, 0xEE, 0xA7, 0x00, 0x00, /* 0x08-0x0B */ |
@@ -6770,7 +6770,7 @@ static unsigned char u2c_92[512] = { | |||
6770 | 0x8D, 0x7C, 0x00, 0x00, 0x00, 0x00, 0xEE, 0xC0, /* 0xFC-0xFF */ | 6770 | 0x8D, 0x7C, 0x00, 0x00, 0x00, 0x00, 0xEE, 0xC0, /* 0xFC-0xFF */ |
6771 | }; | 6771 | }; |
6772 | 6772 | ||
6773 | static unsigned char u2c_93[512] = { | 6773 | static const unsigned char u2c_93[512] = { |
6774 | 0x00, 0x00, 0x00, 0x00, 0xEE, 0xC2, 0x00, 0x00, /* 0x00-0x03 */ | 6774 | 0x00, 0x00, 0x00, 0x00, 0xEE, 0xC2, 0x00, 0x00, /* 0x00-0x03 */ |
6775 | 0x00, 0x00, 0x00, 0x00, 0x8E, 0x4B, 0x00, 0x00, /* 0x04-0x07 */ | 6775 | 0x00, 0x00, 0x00, 0x00, 0x8E, 0x4B, 0x00, 0x00, /* 0x04-0x07 */ |
6776 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x08-0x0B */ | 6776 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x08-0x0B */ |
@@ -6837,7 +6837,7 @@ static unsigned char u2c_93[512] = { | |||
6837 | 0xEE, 0xC8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xF8-0xFB */ | 6837 | 0xEE, 0xC8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xF8-0xFB */ |
6838 | }; | 6838 | }; |
6839 | 6839 | ||
6840 | static unsigned char u2c_94[512] = { | 6840 | static const unsigned char u2c_94[512] = { |
6841 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xE8, 0x5E, /* 0x00-0x03 */ | 6841 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xE8, 0x5E, /* 0x00-0x03 */ |
6842 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xE8, 0x5F, /* 0x04-0x07 */ | 6842 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xE8, 0x5F, /* 0x04-0x07 */ |
6843 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x08-0x0B */ | 6843 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x08-0x0B */ |
@@ -6874,7 +6874,7 @@ static unsigned char u2c_94[512] = { | |||
6874 | 0x00, 0x00, 0xE8, 0x76, 0x00, 0x00, 0x00, 0x00, /* 0x80-0x83 */ | 6874 | 0x00, 0x00, 0xE8, 0x76, 0x00, 0x00, 0x00, 0x00, /* 0x80-0x83 */ |
6875 | }; | 6875 | }; |
6876 | 6876 | ||
6877 | static unsigned char u2c_95[512] = { | 6877 | static const unsigned char u2c_95[512] = { |
6878 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x00-0x03 */ | 6878 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x00-0x03 */ |
6879 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x04-0x07 */ | 6879 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x04-0x07 */ |
6880 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x08-0x0B */ | 6880 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x08-0x0B */ |
@@ -6936,7 +6936,7 @@ static unsigned char u2c_95[512] = { | |||
6936 | 0x00, 0x00, 0xE8, 0x92, 0x00, 0x00, 0x00, 0x00, /* 0xE4-0xE7 */ | 6936 | 0x00, 0x00, 0xE8, 0x92, 0x00, 0x00, 0x00, 0x00, /* 0xE4-0xE7 */ |
6937 | }; | 6937 | }; |
6938 | 6938 | ||
6939 | static unsigned char u2c_96[512] = { | 6939 | static const unsigned char u2c_96[512] = { |
6940 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x00-0x03 */ | 6940 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x00-0x03 */ |
6941 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x04-0x07 */ | 6941 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x04-0x07 */ |
6942 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x08-0x0B */ | 6942 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x08-0x0B */ |
@@ -7003,7 +7003,7 @@ static unsigned char u2c_96[512] = { | |||
7003 | 0x00, 0x00, 0xE8, 0xB9, 0x00, 0x00, 0x93, 0x64, /* 0xF8-0xFB */ | 7003 | 0x00, 0x00, 0xE8, 0xB9, 0x00, 0x00, 0x93, 0x64, /* 0xF8-0xFB */ |
7004 | }; | 7004 | }; |
7005 | 7005 | ||
7006 | static unsigned char u2c_97[512] = { | 7006 | static const unsigned char u2c_97[512] = { |
7007 | 0x8E, 0xF9, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x00-0x03 */ | 7007 | 0x8E, 0xF9, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x00-0x03 */ |
7008 | 0xE8, 0xBA, 0x00, 0x00, 0xE8, 0xBB, 0x90, 0x6B, /* 0x04-0x07 */ | 7008 | 0xE8, 0xBA, 0x00, 0x00, 0xE8, 0xBB, 0x90, 0x6B, /* 0x04-0x07 */ |
7009 | 0xE8, 0xBC, 0x00, 0x00, 0x97, 0xEC, 0x00, 0x00, /* 0x08-0x0B */ | 7009 | 0xE8, 0xBC, 0x00, 0x00, 0x97, 0xEC, 0x00, 0x00, /* 0x08-0x0B */ |
@@ -7071,7 +7071,7 @@ static unsigned char u2c_97[512] = { | |||
7071 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x8B, 0xBF, /* 0xFC-0xFF */ | 7071 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x8B, 0xBF, /* 0xFC-0xFF */ |
7072 | }; | 7072 | }; |
7073 | 7073 | ||
7074 | static unsigned char u2c_98[512] = { | 7074 | static const unsigned char u2c_98[512] = { |
7075 | 0x00, 0x00, 0x95, 0xC5, 0x92, 0xB8, 0x8D, 0xA0, /* 0x00-0x03 */ | 7075 | 0x00, 0x00, 0x95, 0xC5, 0x92, 0xB8, 0x8D, 0xA0, /* 0x00-0x03 */ |
7076 | 0x00, 0x00, 0x8D, 0x80, 0x8F, 0x87, 0x00, 0x00, /* 0x04-0x07 */ | 7076 | 0x00, 0x00, 0x8D, 0x80, 0x8F, 0x87, 0x00, 0x00, /* 0x04-0x07 */ |
7077 | 0x90, 0x7B, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x08-0x0B */ | 7077 | 0x90, 0x7B, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x08-0x0B */ |
@@ -7139,7 +7139,7 @@ static unsigned char u2c_98[512] = { | |||
7139 | 0x8E, 0x94, 0x96, 0x4F, 0x8F, 0xFC, 0x00, 0x00, /* 0xFC-0xFF */ | 7139 | 0x8E, 0x94, 0x96, 0x4F, 0x8F, 0xFC, 0x00, 0x00, /* 0xFC-0xFF */ |
7140 | }; | 7140 | }; |
7141 | 7141 | ||
7142 | static unsigned char u2c_99[512] = { | 7142 | static const unsigned char u2c_99[512] = { |
7143 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xE9, 0x4C, /* 0x00-0x03 */ | 7143 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xE9, 0x4C, /* 0x00-0x03 */ |
7144 | 0x00, 0x00, 0x96, 0xDD, 0x00, 0x00, 0x00, 0x00, /* 0x04-0x07 */ | 7144 | 0x00, 0x00, 0x96, 0xDD, 0x00, 0x00, 0x00, 0x00, /* 0x04-0x07 */ |
7145 | 0x00, 0x00, 0xE9, 0x4D, 0x97, 0x7B, 0x00, 0x00, /* 0x08-0x0B */ | 7145 | 0x00, 0x00, 0xE9, 0x4D, 0x97, 0x7B, 0x00, 0x00, /* 0x08-0x0B */ |
@@ -7207,7 +7207,7 @@ static unsigned char u2c_99[512] = { | |||
7207 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x8F, 0x78, /* 0xFC-0xFF */ | 7207 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x8F, 0x78, /* 0xFC-0xFF */ |
7208 | }; | 7208 | }; |
7209 | 7209 | ||
7210 | static unsigned char u2c_9A[512] = { | 7210 | static const unsigned char u2c_9A[512] = { |
7211 | 0x00, 0x00, 0xE9, 0x74, 0x00, 0x00, 0x00, 0x00, /* 0x00-0x03 */ | 7211 | 0x00, 0x00, 0xE9, 0x74, 0x00, 0x00, 0x00, 0x00, /* 0x00-0x03 */ |
7212 | 0x00, 0x00, 0xE9, 0x76, 0x00, 0x00, 0x00, 0x00, /* 0x04-0x07 */ | 7212 | 0x00, 0x00, 0xE9, 0x76, 0x00, 0x00, 0x00, 0x00, /* 0x04-0x07 */ |
7213 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x08-0x0B */ | 7213 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x08-0x0B */ |
@@ -7274,7 +7274,7 @@ static unsigned char u2c_9A[512] = { | |||
7274 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xE9, 0x9F, /* 0xF8-0xFB */ | 7274 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xE9, 0x9F, /* 0xF8-0xFB */ |
7275 | }; | 7275 | }; |
7276 | 7276 | ||
7277 | static unsigned char u2c_9B[512] = { | 7277 | static const unsigned char u2c_9B[512] = { |
7278 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x00-0x03 */ | 7278 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x00-0x03 */ |
7279 | 0x00, 0x00, 0x00, 0x00, 0xE9, 0xA0, 0x00, 0x00, /* 0x04-0x07 */ | 7279 | 0x00, 0x00, 0x00, 0x00, 0xE9, 0xA0, 0x00, 0x00, /* 0x04-0x07 */ |
7280 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x08-0x0B */ | 7280 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x08-0x0B */ |
@@ -7340,7 +7340,7 @@ static unsigned char u2c_9B[512] = { | |||
7340 | 0x00, 0x00, 0x88, 0xB1, 0x00, 0x00, 0x00, 0x00, /* 0xF4-0xF7 */ | 7340 | 0x00, 0x00, 0x88, 0xB1, 0x00, 0x00, 0x00, 0x00, /* 0xF4-0xF7 */ |
7341 | }; | 7341 | }; |
7342 | 7342 | ||
7343 | static unsigned char u2c_9C[512] = { | 7343 | static const unsigned char u2c_9C[512] = { |
7344 | 0xEE, 0xE7, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x00-0x03 */ | 7344 | 0xEE, 0xE7, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x00-0x03 */ |
7345 | 0xE9, 0xD8, 0x00, 0x00, 0xE9, 0xD4, 0x00, 0x00, /* 0x04-0x07 */ | 7345 | 0xE9, 0xD8, 0x00, 0x00, 0xE9, 0xD4, 0x00, 0x00, /* 0x04-0x07 */ |
7346 | 0xE9, 0xD5, 0xE9, 0xD1, 0xE9, 0xD7, 0x00, 0x00, /* 0x08-0x0B */ | 7346 | 0xE9, 0xD5, 0xE9, 0xD1, 0xE9, 0xD7, 0x00, 0x00, /* 0x08-0x0B */ |
@@ -7406,7 +7406,7 @@ static unsigned char u2c_9C[512] = { | |||
7406 | 0x96, 0xC2, 0x00, 0x00, 0x93, 0xCE, 0x00, 0x00, /* 0xF4-0xF7 */ | 7406 | 0x96, 0xC2, 0x00, 0x00, 0x93, 0xCE, 0x00, 0x00, /* 0xF4-0xF7 */ |
7407 | }; | 7407 | }; |
7408 | 7408 | ||
7409 | static unsigned char u2c_9D[512] = { | 7409 | static const unsigned char u2c_9D[512] = { |
7410 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xE9, 0xEE, /* 0x00-0x03 */ | 7410 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xE9, 0xEE, /* 0x00-0x03 */ |
7411 | 0x00, 0x00, 0x00, 0x00, 0xE9, 0xEF, 0x93, 0xBC, /* 0x04-0x07 */ | 7411 | 0x00, 0x00, 0x00, 0x00, 0xE9, 0xEF, 0x93, 0xBC, /* 0x04-0x07 */ |
7412 | 0xE9, 0xEC, 0xE9, 0xEB, 0x00, 0x00, 0x00, 0x00, /* 0x08-0x0B */ | 7412 | 0xE9, 0xEC, 0xE9, 0xEB, 0x00, 0x00, 0x00, 0x00, /* 0x08-0x0B */ |
@@ -7474,7 +7474,7 @@ static unsigned char u2c_9D[512] = { | |||
7474 | 0x00, 0x00, 0xEA, 0x5E, 0x00, 0x00, 0x00, 0x00, /* 0xFC-0xFF */ | 7474 | 0x00, 0x00, 0xEA, 0x5E, 0x00, 0x00, 0x00, 0x00, /* 0xFC-0xFF */ |
7475 | }; | 7475 | }; |
7476 | 7476 | ||
7477 | static unsigned char u2c_9E[512] = { | 7477 | static const unsigned char u2c_9E[512] = { |
7478 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x00-0x03 */ | 7478 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x00-0x03 */ |
7479 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x04-0x07 */ | 7479 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x04-0x07 */ |
7480 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x08-0x0B */ | 7480 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x08-0x0B */ |
@@ -7542,7 +7542,7 @@ static unsigned char u2c_9E[512] = { | |||
7542 | 0xEA, 0x85, 0xEA, 0x86, 0x00, 0x00, 0x00, 0x00, /* 0xFC-0xFF */ | 7542 | 0xEA, 0x85, 0xEA, 0x86, 0x00, 0x00, 0x00, 0x00, /* 0xFC-0xFF */ |
7543 | }; | 7543 | }; |
7544 | 7544 | ||
7545 | static unsigned char u2c_9F[512] = { | 7545 | static const unsigned char u2c_9F[512] = { |
7546 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x00-0x03 */ | 7546 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x00-0x03 */ |
7547 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xEA, 0x87, /* 0x04-0x07 */ | 7547 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xEA, 0x87, /* 0x04-0x07 */ |
7548 | 0xEA, 0x88, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x08-0x0B */ | 7548 | 0xEA, 0x88, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x08-0x0B */ |
@@ -7587,11 +7587,11 @@ static unsigned char u2c_9F[512] = { | |||
7587 | 0xEA, 0x9E, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xA0-0xA3 */ | 7587 | 0xEA, 0x9E, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xA0-0xA3 */ |
7588 | }; | 7588 | }; |
7589 | 7589 | ||
7590 | static unsigned char u2c_DC[512] = { | 7590 | static const unsigned char u2c_DC[512] = { |
7591 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x00-0x03 */ | 7591 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x00-0x03 */ |
7592 | }; | 7592 | }; |
7593 | 7593 | ||
7594 | static unsigned char u2c_F9[512] = { | 7594 | static const unsigned char u2c_F9[512] = { |
7595 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x00-0x03 */ | 7595 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x00-0x03 */ |
7596 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x04-0x07 */ | 7596 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x04-0x07 */ |
7597 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x08-0x0B */ | 7597 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x08-0x0B */ |
@@ -7651,7 +7651,7 @@ static unsigned char u2c_F9[512] = { | |||
7651 | 0xEE, 0xCD, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xDC-0xDF */ | 7651 | 0xEE, 0xCD, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xDC-0xDF */ |
7652 | }; | 7652 | }; |
7653 | 7653 | ||
7654 | static unsigned char u2c_FA[512] = { | 7654 | static const unsigned char u2c_FA[512] = { |
7655 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x00-0x03 */ | 7655 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x00-0x03 */ |
7656 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x04-0x07 */ | 7656 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x04-0x07 */ |
7657 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x08-0x0B */ | 7657 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x08-0x0B */ |
@@ -7666,7 +7666,7 @@ static unsigned char u2c_FA[512] = { | |||
7666 | 0xEE, 0xDD, 0xEE, 0xEA, 0x00, 0x00, 0x00, 0x00, /* 0x2C-0x2F */ | 7666 | 0xEE, 0xDD, 0xEE, 0xEA, 0x00, 0x00, 0x00, 0x00, /* 0x2C-0x2F */ |
7667 | }; | 7667 | }; |
7668 | 7668 | ||
7669 | static unsigned char u2c_FF[512] = { | 7669 | static const unsigned char u2c_FF[512] = { |
7670 | 0x00, 0x00, 0x81, 0x49, 0xEE, 0xFC, 0x81, 0x94, /* 0x00-0x03 */ | 7670 | 0x00, 0x00, 0x81, 0x49, 0xEE, 0xFC, 0x81, 0x94, /* 0x00-0x03 */ |
7671 | 0x81, 0x90, 0x81, 0x93, 0x81, 0x95, 0xEE, 0xFB, /* 0x04-0x07 */ | 7671 | 0x81, 0x90, 0x81, 0x93, 0x81, 0x95, 0xEE, 0xFB, /* 0x04-0x07 */ |
7672 | 0x81, 0x69, 0x81, 0x6A, 0x81, 0x96, 0x81, 0x7B, /* 0x08-0x0B */ | 7672 | 0x81, 0x69, 0x81, 0x6A, 0x81, 0x96, 0x81, 0x7B, /* 0x08-0x0B */ |
@@ -7728,7 +7728,7 @@ static unsigned char u2c_FF[512] = { | |||
7728 | 0xEE, 0xFA, 0x81, 0x8F, 0x00, 0x00, 0x00, 0x00, /* 0xE4-0xE7 */ | 7728 | 0xEE, 0xFA, 0x81, 0x8F, 0x00, 0x00, 0x00, 0x00, /* 0xE4-0xE7 */ |
7729 | }; | 7729 | }; |
7730 | 7730 | ||
7731 | static unsigned char *page_uni2charset[256] = { | 7731 | static const unsigned char *const page_uni2charset[256] = { |
7732 | NULL, NULL, NULL, u2c_03, u2c_04, NULL, NULL, NULL, | 7732 | NULL, NULL, NULL, u2c_03, u2c_04, NULL, NULL, NULL, |
7733 | NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, | 7733 | NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, |
7734 | NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, | 7734 | NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, |
@@ -7762,7 +7762,7 @@ static unsigned char *page_uni2charset[256] = { | |||
7762 | NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, | 7762 | NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, |
7763 | NULL, u2c_F9, u2c_FA, NULL, NULL, NULL, NULL, u2c_FF, }; | 7763 | NULL, u2c_F9, u2c_FA, NULL, NULL, NULL, NULL, u2c_FF, }; |
7764 | 7764 | ||
7765 | static unsigned char charset2lower[256] = { | 7765 | static const unsigned char charset2lower[256] = { |
7766 | 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, /* 0x00-0x07 */ | 7766 | 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, /* 0x00-0x07 */ |
7767 | 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, /* 0x08-0x0f */ | 7767 | 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, /* 0x08-0x0f */ |
7768 | 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17, /* 0x10-0x17 */ | 7768 | 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17, /* 0x10-0x17 */ |
@@ -7798,7 +7798,7 @@ static unsigned char charset2lower[256] = { | |||
7798 | 0xf8, 0xf9, 0xfa, 0xfb, 0xfc, 0xfd, 0xfe, 0xff, /* 0xf8-0xff */ | 7798 | 0xf8, 0xf9, 0xfa, 0xfb, 0xfc, 0xfd, 0xfe, 0xff, /* 0xf8-0xff */ |
7799 | }; | 7799 | }; |
7800 | 7800 | ||
7801 | static unsigned char charset2upper[256] = { | 7801 | static const unsigned char charset2upper[256] = { |
7802 | 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, /* 0x00-0x07 */ | 7802 | 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, /* 0x00-0x07 */ |
7803 | 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, /* 0x08-0x0f */ | 7803 | 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, /* 0x08-0x0f */ |
7804 | 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17, /* 0x10-0x17 */ | 7804 | 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17, /* 0x10-0x17 */ |
@@ -7837,7 +7837,7 @@ static unsigned char charset2upper[256] = { | |||
7837 | static int uni2char(const wchar_t uni, | 7837 | static int uni2char(const wchar_t uni, |
7838 | unsigned char *out, int boundlen) | 7838 | unsigned char *out, int boundlen) |
7839 | { | 7839 | { |
7840 | unsigned char *uni2charset; | 7840 | const unsigned char *uni2charset; |
7841 | unsigned char cl = uni&0xFF; | 7841 | unsigned char cl = uni&0xFF; |
7842 | unsigned char ch = (uni>>8)&0xFF; | 7842 | unsigned char ch = (uni>>8)&0xFF; |
7843 | 7843 | ||
@@ -7878,7 +7878,7 @@ static int char2uni(const unsigned char *rawstring, int boundlen, | |||
7878 | wchar_t *uni) | 7878 | wchar_t *uni) |
7879 | { | 7879 | { |
7880 | unsigned char ch, cl; | 7880 | unsigned char ch, cl; |
7881 | wchar_t *charset2uni; | 7881 | const wchar_t *charset2uni; |
7882 | 7882 | ||
7883 | if (boundlen <= 0) | 7883 | if (boundlen <= 0) |
7884 | return -ENAMETOOLONG; | 7884 | return -ENAMETOOLONG; |
diff --git a/fs/nls/nls_cp936.c b/fs/nls/nls_cp936.c index 65e640c61c8b..82770301bc3d 100644 --- a/fs/nls/nls_cp936.c +++ b/fs/nls/nls_cp936.c | |||
@@ -13,7 +13,7 @@ | |||
13 | #include <linux/nls.h> | 13 | #include <linux/nls.h> |
14 | #include <linux/errno.h> | 14 | #include <linux/errno.h> |
15 | 15 | ||
16 | static wchar_t c2u_81[256] = { | 16 | static const wchar_t c2u_81[256] = { |
17 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x00-0x07 */ | 17 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x00-0x07 */ |
18 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x08-0x0F */ | 18 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x08-0x0F */ |
19 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x10-0x17 */ | 19 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x10-0x17 */ |
@@ -49,7 +49,7 @@ static wchar_t c2u_81[256] = { | |||
49 | 0x4F99,0x4F9A,0x4F9C,0x4F9E,0x4F9F,0x4FA1,0x4FA2,0x0000,/* 0xF8-0xFF */ | 49 | 0x4F99,0x4F9A,0x4F9C,0x4F9E,0x4F9F,0x4FA1,0x4FA2,0x0000,/* 0xF8-0xFF */ |
50 | }; | 50 | }; |
51 | 51 | ||
52 | static wchar_t c2u_82[256] = { | 52 | static const wchar_t c2u_82[256] = { |
53 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x00-0x07 */ | 53 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x00-0x07 */ |
54 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x08-0x0F */ | 54 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x08-0x0F */ |
55 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x10-0x17 */ | 55 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x10-0x17 */ |
@@ -85,7 +85,7 @@ static wchar_t c2u_82[256] = { | |||
85 | 0x50B4,0x50B5,0x50B6,0x50B7,0x50B8,0x50B9,0x50BC,0x0000,/* 0xF8-0xFF */ | 85 | 0x50B4,0x50B5,0x50B6,0x50B7,0x50B8,0x50B9,0x50BC,0x0000,/* 0xF8-0xFF */ |
86 | }; | 86 | }; |
87 | 87 | ||
88 | static wchar_t c2u_83[256] = { | 88 | static const wchar_t c2u_83[256] = { |
89 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x00-0x07 */ | 89 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x00-0x07 */ |
90 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x08-0x0F */ | 90 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x08-0x0F */ |
91 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x10-0x17 */ | 91 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x10-0x17 */ |
@@ -121,7 +121,7 @@ static wchar_t c2u_83[256] = { | |||
121 | 0x51D0,0x51D2,0x51D3,0x51D4,0x51D5,0x51D6,0x51D7,0x0000,/* 0xF8-0xFF */ | 121 | 0x51D0,0x51D2,0x51D3,0x51D4,0x51D5,0x51D6,0x51D7,0x0000,/* 0xF8-0xFF */ |
122 | }; | 122 | }; |
123 | 123 | ||
124 | static wchar_t c2u_84[256] = { | 124 | static const wchar_t c2u_84[256] = { |
125 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x00-0x07 */ | 125 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x00-0x07 */ |
126 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x08-0x0F */ | 126 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x08-0x0F */ |
127 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x10-0x17 */ | 127 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x10-0x17 */ |
@@ -157,7 +157,7 @@ static wchar_t c2u_84[256] = { | |||
157 | 0x5304,0x5307,0x5309,0x530A,0x530B,0x530C,0x530E,0x0000,/* 0xF8-0xFF */ | 157 | 0x5304,0x5307,0x5309,0x530A,0x530B,0x530C,0x530E,0x0000,/* 0xF8-0xFF */ |
158 | }; | 158 | }; |
159 | 159 | ||
160 | static wchar_t c2u_85[256] = { | 160 | static const wchar_t c2u_85[256] = { |
161 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x00-0x07 */ | 161 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x00-0x07 */ |
162 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x08-0x0F */ | 162 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x08-0x0F */ |
163 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x10-0x17 */ | 163 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x10-0x17 */ |
@@ -193,7 +193,7 @@ static wchar_t c2u_85[256] = { | |||
193 | 0x5497,0x5498,0x549C,0x549E,0x549F,0x54A0,0x54A1,0x0000,/* 0xF8-0xFF */ | 193 | 0x5497,0x5498,0x549C,0x549E,0x549F,0x54A0,0x54A1,0x0000,/* 0xF8-0xFF */ |
194 | }; | 194 | }; |
195 | 195 | ||
196 | static wchar_t c2u_86[256] = { | 196 | static const wchar_t c2u_86[256] = { |
197 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x00-0x07 */ | 197 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x00-0x07 */ |
198 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x08-0x0F */ | 198 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x08-0x0F */ |
199 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x10-0x17 */ | 199 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x10-0x17 */ |
@@ -229,7 +229,7 @@ static wchar_t c2u_86[256] = { | |||
229 | 0x55FB,0x55FC,0x55FF,0x5602,0x5603,0x5604,0x5605,0x0000,/* 0xF8-0xFF */ | 229 | 0x55FB,0x55FC,0x55FF,0x5602,0x5603,0x5604,0x5605,0x0000,/* 0xF8-0xFF */ |
230 | }; | 230 | }; |
231 | 231 | ||
232 | static wchar_t c2u_87[256] = { | 232 | static const wchar_t c2u_87[256] = { |
233 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x00-0x07 */ | 233 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x00-0x07 */ |
234 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x08-0x0F */ | 234 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x08-0x0F */ |
235 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x10-0x17 */ | 235 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x10-0x17 */ |
@@ -265,7 +265,7 @@ static wchar_t c2u_87[256] = { | |||
265 | 0x570B,0x570C,0x570D,0x570E,0x570F,0x5710,0x5711,0x0000,/* 0xF8-0xFF */ | 265 | 0x570B,0x570C,0x570D,0x570E,0x570F,0x5710,0x5711,0x0000,/* 0xF8-0xFF */ |
266 | }; | 266 | }; |
267 | 267 | ||
268 | static wchar_t c2u_88[256] = { | 268 | static const wchar_t c2u_88[256] = { |
269 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x00-0x07 */ | 269 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x00-0x07 */ |
270 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x08-0x0F */ | 270 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x08-0x0F */ |
271 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x10-0x17 */ | 271 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x10-0x17 */ |
@@ -301,7 +301,7 @@ static wchar_t c2u_88[256] = { | |||
301 | 0x5837,0x5838,0x5839,0x583A,0x583B,0x583C,0x583D,0x0000,/* 0xF8-0xFF */ | 301 | 0x5837,0x5838,0x5839,0x583A,0x583B,0x583C,0x583D,0x0000,/* 0xF8-0xFF */ |
302 | }; | 302 | }; |
303 | 303 | ||
304 | static wchar_t c2u_89[256] = { | 304 | static const wchar_t c2u_89[256] = { |
305 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x00-0x07 */ | 305 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x00-0x07 */ |
306 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x08-0x0F */ | 306 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x08-0x0F */ |
307 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x10-0x17 */ | 307 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x10-0x17 */ |
@@ -337,7 +337,7 @@ static wchar_t c2u_89[256] = { | |||
337 | 0x592C,0x5930,0x5932,0x5933,0x5935,0x5936,0x593B,0x0000,/* 0xF8-0xFF */ | 337 | 0x592C,0x5930,0x5932,0x5933,0x5935,0x5936,0x593B,0x0000,/* 0xF8-0xFF */ |
338 | }; | 338 | }; |
339 | 339 | ||
340 | static wchar_t c2u_8A[256] = { | 340 | static const wchar_t c2u_8A[256] = { |
341 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x00-0x07 */ | 341 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x00-0x07 */ |
342 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x08-0x0F */ | 342 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x08-0x0F */ |
343 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x10-0x17 */ | 343 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x10-0x17 */ |
@@ -373,7 +373,7 @@ static wchar_t c2u_8A[256] = { | |||
373 | 0x5A59,0x5A5B,0x5A5C,0x5A5D,0x5A5E,0x5A5F,0x5A60,0x0000,/* 0xF8-0xFF */ | 373 | 0x5A59,0x5A5B,0x5A5C,0x5A5D,0x5A5E,0x5A5F,0x5A60,0x0000,/* 0xF8-0xFF */ |
374 | }; | 374 | }; |
375 | 375 | ||
376 | static wchar_t c2u_8B[256] = { | 376 | static const wchar_t c2u_8B[256] = { |
377 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x00-0x07 */ | 377 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x00-0x07 */ |
378 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x08-0x0F */ | 378 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x08-0x0F */ |
379 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x10-0x17 */ | 379 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x10-0x17 */ |
@@ -409,7 +409,7 @@ static wchar_t c2u_8B[256] = { | |||
409 | 0x5B41,0x5B42,0x5B43,0x5B44,0x5B45,0x5B46,0x5B47,0x0000,/* 0xF8-0xFF */ | 409 | 0x5B41,0x5B42,0x5B43,0x5B44,0x5B45,0x5B46,0x5B47,0x0000,/* 0xF8-0xFF */ |
410 | }; | 410 | }; |
411 | 411 | ||
412 | static wchar_t c2u_8C[256] = { | 412 | static const wchar_t c2u_8C[256] = { |
413 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x00-0x07 */ | 413 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x00-0x07 */ |
414 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x08-0x0F */ | 414 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x08-0x0F */ |
415 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x10-0x17 */ | 415 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x10-0x17 */ |
@@ -445,7 +445,7 @@ static wchar_t c2u_8C[256] = { | |||
445 | 0x5CA0,0x5CA1,0x5CA4,0x5CA5,0x5CA6,0x5CA7,0x5CA8,0x0000,/* 0xF8-0xFF */ | 445 | 0x5CA0,0x5CA1,0x5CA4,0x5CA5,0x5CA6,0x5CA7,0x5CA8,0x0000,/* 0xF8-0xFF */ |
446 | }; | 446 | }; |
447 | 447 | ||
448 | static wchar_t c2u_8D[256] = { | 448 | static const wchar_t c2u_8D[256] = { |
449 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x00-0x07 */ | 449 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x00-0x07 */ |
450 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x08-0x0F */ | 450 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x08-0x0F */ |
451 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x10-0x17 */ | 451 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x10-0x17 */ |
@@ -481,7 +481,7 @@ static wchar_t c2u_8D[256] = { | |||
481 | 0x5D98,0x5D9A,0x5D9B,0x5D9C,0x5D9E,0x5D9F,0x5DA0,0x0000,/* 0xF8-0xFF */ | 481 | 0x5D98,0x5D9A,0x5D9B,0x5D9C,0x5D9E,0x5D9F,0x5DA0,0x0000,/* 0xF8-0xFF */ |
482 | }; | 482 | }; |
483 | 483 | ||
484 | static wchar_t c2u_8E[256] = { | 484 | static const wchar_t c2u_8E[256] = { |
485 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x00-0x07 */ | 485 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x00-0x07 */ |
486 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x08-0x0F */ | 486 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x08-0x0F */ |
487 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x10-0x17 */ | 487 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x10-0x17 */ |
@@ -517,7 +517,7 @@ static wchar_t c2u_8E[256] = { | |||
517 | 0x5EBF,0x5EC0,0x5EC1,0x5EC2,0x5EC3,0x5EC4,0x5EC5,0x0000,/* 0xF8-0xFF */ | 517 | 0x5EBF,0x5EC0,0x5EC1,0x5EC2,0x5EC3,0x5EC4,0x5EC5,0x0000,/* 0xF8-0xFF */ |
518 | }; | 518 | }; |
519 | 519 | ||
520 | static wchar_t c2u_8F[256] = { | 520 | static const wchar_t c2u_8F[256] = { |
521 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x00-0x07 */ | 521 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x00-0x07 */ |
522 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x08-0x0F */ | 522 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x08-0x0F */ |
523 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x10-0x17 */ | 523 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x10-0x17 */ |
@@ -553,7 +553,7 @@ static wchar_t c2u_8F[256] = { | |||
553 | 0x5FF4,0x5FF6,0x5FF7,0x5FF9,0x5FFA,0x5FFC,0x6007,0x0000,/* 0xF8-0xFF */ | 553 | 0x5FF4,0x5FF6,0x5FF7,0x5FF9,0x5FFA,0x5FFC,0x6007,0x0000,/* 0xF8-0xFF */ |
554 | }; | 554 | }; |
555 | 555 | ||
556 | static wchar_t c2u_90[256] = { | 556 | static const wchar_t c2u_90[256] = { |
557 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x00-0x07 */ | 557 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x00-0x07 */ |
558 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x08-0x0F */ | 558 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x08-0x0F */ |
559 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x10-0x17 */ | 559 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x10-0x17 */ |
@@ -589,7 +589,7 @@ static wchar_t c2u_90[256] = { | |||
589 | 0x6140,0x6141,0x6142,0x6143,0x6144,0x6145,0x6146,0x0000,/* 0xF8-0xFF */ | 589 | 0x6140,0x6141,0x6142,0x6143,0x6144,0x6145,0x6146,0x0000,/* 0xF8-0xFF */ |
590 | }; | 590 | }; |
591 | 591 | ||
592 | static wchar_t c2u_91[256] = { | 592 | static const wchar_t c2u_91[256] = { |
593 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x00-0x07 */ | 593 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x00-0x07 */ |
594 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x08-0x0F */ | 594 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x08-0x0F */ |
595 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x10-0x17 */ | 595 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x10-0x17 */ |
@@ -625,7 +625,7 @@ static wchar_t c2u_91[256] = { | |||
625 | 0x623B,0x623C,0x6242,0x6244,0x6245,0x6246,0x624A,0x0000,/* 0xF8-0xFF */ | 625 | 0x623B,0x623C,0x6242,0x6244,0x6245,0x6246,0x624A,0x0000,/* 0xF8-0xFF */ |
626 | }; | 626 | }; |
627 | 627 | ||
628 | static wchar_t c2u_92[256] = { | 628 | static const wchar_t c2u_92[256] = { |
629 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x00-0x07 */ | 629 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x00-0x07 */ |
630 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x08-0x0F */ | 630 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x08-0x0F */ |
631 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x10-0x17 */ | 631 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x10-0x17 */ |
@@ -661,7 +661,7 @@ static wchar_t c2u_92[256] = { | |||
661 | 0x63B5,0x63B6,0x63B9,0x63BB,0x63BD,0x63BF,0x63C0,0x0000,/* 0xF8-0xFF */ | 661 | 0x63B5,0x63B6,0x63B9,0x63BB,0x63BD,0x63BF,0x63C0,0x0000,/* 0xF8-0xFF */ |
662 | }; | 662 | }; |
663 | 663 | ||
664 | static wchar_t c2u_93[256] = { | 664 | static const wchar_t c2u_93[256] = { |
665 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x00-0x07 */ | 665 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x00-0x07 */ |
666 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x08-0x0F */ | 666 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x08-0x0F */ |
667 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x10-0x17 */ | 667 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x10-0x17 */ |
@@ -697,7 +697,7 @@ static wchar_t c2u_93[256] = { | |||
697 | 0x64D1,0x64D3,0x64D4,0x64D5,0x64D6,0x64D9,0x64DA,0x0000,/* 0xF8-0xFF */ | 697 | 0x64D1,0x64D3,0x64D4,0x64D5,0x64D6,0x64D9,0x64DA,0x0000,/* 0xF8-0xFF */ |
698 | }; | 698 | }; |
699 | 699 | ||
700 | static wchar_t c2u_94[256] = { | 700 | static const wchar_t c2u_94[256] = { |
701 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x00-0x07 */ | 701 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x00-0x07 */ |
702 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x08-0x0F */ | 702 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x08-0x0F */ |
703 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x10-0x17 */ | 703 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x10-0x17 */ |
@@ -733,7 +733,7 @@ static wchar_t c2u_94[256] = { | |||
733 | 0x65DE,0x65DF,0x65E1,0x65E3,0x65E4,0x65EA,0x65EB,0x0000,/* 0xF8-0xFF */ | 733 | 0x65DE,0x65DF,0x65E1,0x65E3,0x65E4,0x65EA,0x65EB,0x0000,/* 0xF8-0xFF */ |
734 | }; | 734 | }; |
735 | 735 | ||
736 | static wchar_t c2u_95[256] = { | 736 | static const wchar_t c2u_95[256] = { |
737 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x00-0x07 */ | 737 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x00-0x07 */ |
738 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x08-0x0F */ | 738 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x08-0x0F */ |
739 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x10-0x17 */ | 739 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x10-0x17 */ |
@@ -769,7 +769,7 @@ static wchar_t c2u_95[256] = { | |||
769 | 0x66F8,0x66FA,0x66FB,0x66FD,0x6701,0x6702,0x6703,0x0000,/* 0xF8-0xFF */ | 769 | 0x66F8,0x66FA,0x66FB,0x66FD,0x6701,0x6702,0x6703,0x0000,/* 0xF8-0xFF */ |
770 | }; | 770 | }; |
771 | 771 | ||
772 | static wchar_t c2u_96[256] = { | 772 | static const wchar_t c2u_96[256] = { |
773 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x00-0x07 */ | 773 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x00-0x07 */ |
774 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x08-0x0F */ | 774 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x08-0x0F */ |
775 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x10-0x17 */ | 775 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x10-0x17 */ |
@@ -805,7 +805,7 @@ static wchar_t c2u_96[256] = { | |||
805 | 0x6852,0x6856,0x6857,0x6858,0x6859,0x685A,0x685B,0x0000,/* 0xF8-0xFF */ | 805 | 0x6852,0x6856,0x6857,0x6858,0x6859,0x685A,0x685B,0x0000,/* 0xF8-0xFF */ |
806 | }; | 806 | }; |
807 | 807 | ||
808 | static wchar_t c2u_97[256] = { | 808 | static const wchar_t c2u_97[256] = { |
809 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x00-0x07 */ | 809 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x00-0x07 */ |
810 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x08-0x0F */ | 810 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x08-0x0F */ |
811 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x10-0x17 */ | 811 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x10-0x17 */ |
@@ -841,7 +841,7 @@ static wchar_t c2u_97[256] = { | |||
841 | 0x6955,0x6956,0x6958,0x6959,0x695B,0x695C,0x695F,0x0000,/* 0xF8-0xFF */ | 841 | 0x6955,0x6956,0x6958,0x6959,0x695B,0x695C,0x695F,0x0000,/* 0xF8-0xFF */ |
842 | }; | 842 | }; |
843 | 843 | ||
844 | static wchar_t c2u_98[256] = { | 844 | static const wchar_t c2u_98[256] = { |
845 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x00-0x07 */ | 845 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x00-0x07 */ |
846 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x08-0x0F */ | 846 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x08-0x0F */ |
847 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x10-0x17 */ | 847 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x10-0x17 */ |
@@ -877,7 +877,7 @@ static wchar_t c2u_98[256] = { | |||
877 | 0x6A52,0x6A53,0x6A54,0x6A55,0x6A56,0x6A57,0x6A5A,0x0000,/* 0xF8-0xFF */ | 877 | 0x6A52,0x6A53,0x6A54,0x6A55,0x6A56,0x6A57,0x6A5A,0x0000,/* 0xF8-0xFF */ |
878 | }; | 878 | }; |
879 | 879 | ||
880 | static wchar_t c2u_99[256] = { | 880 | static const wchar_t c2u_99[256] = { |
881 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x00-0x07 */ | 881 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x00-0x07 */ |
882 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x08-0x0F */ | 882 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x08-0x0F */ |
883 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x10-0x17 */ | 883 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x10-0x17 */ |
@@ -913,7 +913,7 @@ static wchar_t c2u_99[256] = { | |||
913 | 0x6B28,0x6B29,0x6B2A,0x6B2B,0x6B2C,0x6B2D,0x6B2E,0x0000,/* 0xF8-0xFF */ | 913 | 0x6B28,0x6B29,0x6B2A,0x6B2B,0x6B2C,0x6B2D,0x6B2E,0x0000,/* 0xF8-0xFF */ |
914 | }; | 914 | }; |
915 | 915 | ||
916 | static wchar_t c2u_9A[256] = { | 916 | static const wchar_t c2u_9A[256] = { |
917 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x00-0x07 */ | 917 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x00-0x07 */ |
918 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x08-0x0F */ | 918 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x08-0x0F */ |
919 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x10-0x17 */ | 919 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x10-0x17 */ |
@@ -949,7 +949,7 @@ static wchar_t c2u_9A[256] = { | |||
949 | 0x6C4E,0x6C4F,0x6C51,0x6C52,0x6C53,0x6C56,0x6C58,0x0000,/* 0xF8-0xFF */ | 949 | 0x6C4E,0x6C4F,0x6C51,0x6C52,0x6C53,0x6C56,0x6C58,0x0000,/* 0xF8-0xFF */ |
950 | }; | 950 | }; |
951 | 951 | ||
952 | static wchar_t c2u_9B[256] = { | 952 | static const wchar_t c2u_9B[256] = { |
953 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x00-0x07 */ | 953 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x00-0x07 */ |
954 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x08-0x0F */ | 954 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x08-0x0F */ |
955 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x10-0x17 */ | 955 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x10-0x17 */ |
@@ -985,7 +985,7 @@ static wchar_t c2u_9B[256] = { | |||
985 | 0x6DBE,0x6DC1,0x6DC2,0x6DC3,0x6DC8,0x6DC9,0x6DCA,0x0000,/* 0xF8-0xFF */ | 985 | 0x6DBE,0x6DC1,0x6DC2,0x6DC3,0x6DC8,0x6DC9,0x6DCA,0x0000,/* 0xF8-0xFF */ |
986 | }; | 986 | }; |
987 | 987 | ||
988 | static wchar_t c2u_9C[256] = { | 988 | static const wchar_t c2u_9C[256] = { |
989 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x00-0x07 */ | 989 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x00-0x07 */ |
990 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x08-0x0F */ | 990 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x08-0x0F */ |
991 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x10-0x17 */ | 991 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x10-0x17 */ |
@@ -1021,7 +1021,7 @@ static wchar_t c2u_9C[256] = { | |||
1021 | 0x6EE7,0x6EEA,0x6EEB,0x6EEC,0x6EED,0x6EEE,0x6EEF,0x0000,/* 0xF8-0xFF */ | 1021 | 0x6EE7,0x6EEA,0x6EEB,0x6EEC,0x6EED,0x6EEE,0x6EEF,0x0000,/* 0xF8-0xFF */ |
1022 | }; | 1022 | }; |
1023 | 1023 | ||
1024 | static wchar_t c2u_9D[256] = { | 1024 | static const wchar_t c2u_9D[256] = { |
1025 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x00-0x07 */ | 1025 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x00-0x07 */ |
1026 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x08-0x0F */ | 1026 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x08-0x0F */ |
1027 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x10-0x17 */ | 1027 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x10-0x17 */ |
@@ -1057,7 +1057,7 @@ static wchar_t c2u_9D[256] = { | |||
1057 | 0x6FDC,0x6FDD,0x6FDF,0x6FE2,0x6FE3,0x6FE4,0x6FE5,0x0000,/* 0xF8-0xFF */ | 1057 | 0x6FDC,0x6FDD,0x6FDF,0x6FE2,0x6FE3,0x6FE4,0x6FE5,0x0000,/* 0xF8-0xFF */ |
1058 | }; | 1058 | }; |
1059 | 1059 | ||
1060 | static wchar_t c2u_9E[256] = { | 1060 | static const wchar_t c2u_9E[256] = { |
1061 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x00-0x07 */ | 1061 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x00-0x07 */ |
1062 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x08-0x0F */ | 1062 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x08-0x0F */ |
1063 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x10-0x17 */ | 1063 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x10-0x17 */ |
@@ -1093,7 +1093,7 @@ static wchar_t c2u_9E[256] = { | |||
1093 | 0x70D2,0x70D3,0x70D4,0x70D5,0x70D6,0x70D7,0x70DA,0x0000,/* 0xF8-0xFF */ | 1093 | 0x70D2,0x70D3,0x70D4,0x70D5,0x70D6,0x70D7,0x70DA,0x0000,/* 0xF8-0xFF */ |
1094 | }; | 1094 | }; |
1095 | 1095 | ||
1096 | static wchar_t c2u_9F[256] = { | 1096 | static const wchar_t c2u_9F[256] = { |
1097 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x00-0x07 */ | 1097 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x00-0x07 */ |
1098 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x08-0x0F */ | 1098 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x08-0x0F */ |
1099 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x10-0x17 */ | 1099 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x10-0x17 */ |
@@ -1129,7 +1129,7 @@ static wchar_t c2u_9F[256] = { | |||
1129 | 0x71CC,0x71CD,0x71CF,0x71D0,0x71D1,0x71D2,0x71D3,0x0000,/* 0xF8-0xFF */ | 1129 | 0x71CC,0x71CD,0x71CF,0x71D0,0x71D1,0x71D2,0x71D3,0x0000,/* 0xF8-0xFF */ |
1130 | }; | 1130 | }; |
1131 | 1131 | ||
1132 | static wchar_t c2u_A0[256] = { | 1132 | static const wchar_t c2u_A0[256] = { |
1133 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x00-0x07 */ | 1133 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x00-0x07 */ |
1134 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x08-0x0F */ | 1134 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x08-0x0F */ |
1135 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x10-0x17 */ | 1135 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x10-0x17 */ |
@@ -1165,7 +1165,7 @@ static wchar_t c2u_A0[256] = { | |||
1165 | 0x72D3,0x72D4,0x72D5,0x72D6,0x72D8,0x72DA,0x72DB,0x0000,/* 0xF8-0xFF */ | 1165 | 0x72D3,0x72D4,0x72D5,0x72D6,0x72D8,0x72DA,0x72DB,0x0000,/* 0xF8-0xFF */ |
1166 | }; | 1166 | }; |
1167 | 1167 | ||
1168 | static wchar_t c2u_A1[256] = { | 1168 | static const wchar_t c2u_A1[256] = { |
1169 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x00-0x07 */ | 1169 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x00-0x07 */ |
1170 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x08-0x0F */ | 1170 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x08-0x0F */ |
1171 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x10-0x17 */ | 1171 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x10-0x17 */ |
@@ -1201,7 +1201,7 @@ static wchar_t c2u_A1[256] = { | |||
1201 | 0x25B2,0x203B,0x2192,0x2190,0x2191,0x2193,0x3013,0x0000,/* 0xF8-0xFF */ | 1201 | 0x25B2,0x203B,0x2192,0x2190,0x2191,0x2193,0x3013,0x0000,/* 0xF8-0xFF */ |
1202 | }; | 1202 | }; |
1203 | 1203 | ||
1204 | static wchar_t c2u_A2[256] = { | 1204 | static const wchar_t c2u_A2[256] = { |
1205 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x00-0x07 */ | 1205 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x00-0x07 */ |
1206 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x08-0x0F */ | 1206 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x08-0x0F */ |
1207 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x10-0x17 */ | 1207 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x10-0x17 */ |
@@ -1237,7 +1237,7 @@ static wchar_t c2u_A2[256] = { | |||
1237 | 0x2167,0x2168,0x2169,0x216A,0x216B,0x0000,0x0000,0x0000,/* 0xF8-0xFF */ | 1237 | 0x2167,0x2168,0x2169,0x216A,0x216B,0x0000,0x0000,0x0000,/* 0xF8-0xFF */ |
1238 | }; | 1238 | }; |
1239 | 1239 | ||
1240 | static wchar_t c2u_A3[256] = { | 1240 | static const wchar_t c2u_A3[256] = { |
1241 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x00-0x07 */ | 1241 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x00-0x07 */ |
1242 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x08-0x0F */ | 1242 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x08-0x0F */ |
1243 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x10-0x17 */ | 1243 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x10-0x17 */ |
@@ -1273,7 +1273,7 @@ static wchar_t c2u_A3[256] = { | |||
1273 | 0xFF58,0xFF59,0xFF5A,0xFF5B,0xFF5C,0xFF5D,0xFFE3,0x0000,/* 0xF8-0xFF */ | 1273 | 0xFF58,0xFF59,0xFF5A,0xFF5B,0xFF5C,0xFF5D,0xFFE3,0x0000,/* 0xF8-0xFF */ |
1274 | }; | 1274 | }; |
1275 | 1275 | ||
1276 | static wchar_t c2u_A4[256] = { | 1276 | static const wchar_t c2u_A4[256] = { |
1277 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x00-0x07 */ | 1277 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x00-0x07 */ |
1278 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x08-0x0F */ | 1278 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x08-0x0F */ |
1279 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x10-0x17 */ | 1279 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x10-0x17 */ |
@@ -1308,7 +1308,7 @@ static wchar_t c2u_A4[256] = { | |||
1308 | 0x3090,0x3091,0x3092,0x3093,0x0000,0x0000,0x0000,0x0000,/* 0xF0-0xF7 */ | 1308 | 0x3090,0x3091,0x3092,0x3093,0x0000,0x0000,0x0000,0x0000,/* 0xF0-0xF7 */ |
1309 | }; | 1309 | }; |
1310 | 1310 | ||
1311 | static wchar_t c2u_A5[256] = { | 1311 | static const wchar_t c2u_A5[256] = { |
1312 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x00-0x07 */ | 1312 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x00-0x07 */ |
1313 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x08-0x0F */ | 1313 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x08-0x0F */ |
1314 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x10-0x17 */ | 1314 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x10-0x17 */ |
@@ -1343,7 +1343,7 @@ static wchar_t c2u_A5[256] = { | |||
1343 | 0x30F0,0x30F1,0x30F2,0x30F3,0x30F4,0x30F5,0x30F6,0x0000,/* 0xF0-0xF7 */ | 1343 | 0x30F0,0x30F1,0x30F2,0x30F3,0x30F4,0x30F5,0x30F6,0x0000,/* 0xF0-0xF7 */ |
1344 | }; | 1344 | }; |
1345 | 1345 | ||
1346 | static wchar_t c2u_A6[256] = { | 1346 | static const wchar_t c2u_A6[256] = { |
1347 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x00-0x07 */ | 1347 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x00-0x07 */ |
1348 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x08-0x0F */ | 1348 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x08-0x0F */ |
1349 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x10-0x17 */ | 1349 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x10-0x17 */ |
@@ -1378,7 +1378,7 @@ static wchar_t c2u_A6[256] = { | |||
1378 | 0xFE37,0xFE38,0xFE31,0x0000,0xFE33,0xFE34,0x0000,0x0000,/* 0xF0-0xF7 */ | 1378 | 0xFE37,0xFE38,0xFE31,0x0000,0xFE33,0xFE34,0x0000,0x0000,/* 0xF0-0xF7 */ |
1379 | }; | 1379 | }; |
1380 | 1380 | ||
1381 | static wchar_t c2u_A7[256] = { | 1381 | static const wchar_t c2u_A7[256] = { |
1382 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x00-0x07 */ | 1382 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x00-0x07 */ |
1383 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x08-0x0F */ | 1383 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x08-0x0F */ |
1384 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x10-0x17 */ | 1384 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x10-0x17 */ |
@@ -1413,7 +1413,7 @@ static wchar_t c2u_A7[256] = { | |||
1413 | 0x044E,0x044F,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0xF0-0xF7 */ | 1413 | 0x044E,0x044F,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0xF0-0xF7 */ |
1414 | }; | 1414 | }; |
1415 | 1415 | ||
1416 | static wchar_t c2u_A8[256] = { | 1416 | static const wchar_t c2u_A8[256] = { |
1417 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x00-0x07 */ | 1417 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x00-0x07 */ |
1418 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x08-0x0F */ | 1418 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x08-0x0F */ |
1419 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x10-0x17 */ | 1419 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x10-0x17 */ |
@@ -1447,7 +1447,7 @@ static wchar_t c2u_A8[256] = { | |||
1447 | 0x3128,0x3129,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0xE8-0xEF */ | 1447 | 0x3128,0x3129,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0xE8-0xEF */ |
1448 | }; | 1448 | }; |
1449 | 1449 | ||
1450 | static wchar_t c2u_A9[256] = { | 1450 | static const wchar_t c2u_A9[256] = { |
1451 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x00-0x07 */ | 1451 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x00-0x07 */ |
1452 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x08-0x0F */ | 1452 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x08-0x0F */ |
1453 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x10-0x17 */ | 1453 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x10-0x17 */ |
@@ -1481,7 +1481,7 @@ static wchar_t c2u_A9[256] = { | |||
1481 | 0x2544,0x2545,0x2546,0x2547,0x2548,0x2549,0x254A,0x254B,/* 0xE8-0xEF */ | 1481 | 0x2544,0x2545,0x2546,0x2547,0x2548,0x2549,0x254A,0x254B,/* 0xE8-0xEF */ |
1482 | }; | 1482 | }; |
1483 | 1483 | ||
1484 | static wchar_t c2u_AA[256] = { | 1484 | static const wchar_t c2u_AA[256] = { |
1485 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x00-0x07 */ | 1485 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x00-0x07 */ |
1486 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x08-0x0F */ | 1486 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x08-0x0F */ |
1487 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x10-0x17 */ | 1487 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x10-0x17 */ |
@@ -1506,7 +1506,7 @@ static wchar_t c2u_AA[256] = { | |||
1506 | 0x7371,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0xA0-0xA7 */ | 1506 | 0x7371,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0xA0-0xA7 */ |
1507 | }; | 1507 | }; |
1508 | 1508 | ||
1509 | static wchar_t c2u_AB[256] = { | 1509 | static const wchar_t c2u_AB[256] = { |
1510 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x00-0x07 */ | 1510 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x00-0x07 */ |
1511 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x08-0x0F */ | 1511 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x08-0x0F */ |
1512 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x10-0x17 */ | 1512 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x10-0x17 */ |
@@ -1531,7 +1531,7 @@ static wchar_t c2u_AB[256] = { | |||
1531 | 0x73F7,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0xA0-0xA7 */ | 1531 | 0x73F7,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0xA0-0xA7 */ |
1532 | }; | 1532 | }; |
1533 | 1533 | ||
1534 | static wchar_t c2u_AC[256] = { | 1534 | static const wchar_t c2u_AC[256] = { |
1535 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x00-0x07 */ | 1535 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x00-0x07 */ |
1536 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x08-0x0F */ | 1536 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x08-0x0F */ |
1537 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x10-0x17 */ | 1537 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x10-0x17 */ |
@@ -1556,7 +1556,7 @@ static wchar_t c2u_AC[256] = { | |||
1556 | 0x747A,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0xA0-0xA7 */ | 1556 | 0x747A,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0xA0-0xA7 */ |
1557 | }; | 1557 | }; |
1558 | 1558 | ||
1559 | static wchar_t c2u_AD[256] = { | 1559 | static const wchar_t c2u_AD[256] = { |
1560 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x00-0x07 */ | 1560 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x00-0x07 */ |
1561 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x08-0x0F */ | 1561 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x08-0x0F */ |
1562 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x10-0x17 */ | 1562 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x10-0x17 */ |
@@ -1581,7 +1581,7 @@ static wchar_t c2u_AD[256] = { | |||
1581 | 0x74F2,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0xA0-0xA7 */ | 1581 | 0x74F2,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0xA0-0xA7 */ |
1582 | }; | 1582 | }; |
1583 | 1583 | ||
1584 | static wchar_t c2u_AE[256] = { | 1584 | static const wchar_t c2u_AE[256] = { |
1585 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x00-0x07 */ | 1585 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x00-0x07 */ |
1586 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x08-0x0F */ | 1586 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x08-0x0F */ |
1587 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x10-0x17 */ | 1587 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x10-0x17 */ |
@@ -1606,7 +1606,7 @@ static wchar_t c2u_AE[256] = { | |||
1606 | 0x7587,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0xA0-0xA7 */ | 1606 | 0x7587,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0xA0-0xA7 */ |
1607 | }; | 1607 | }; |
1608 | 1608 | ||
1609 | static wchar_t c2u_AF[256] = { | 1609 | static const wchar_t c2u_AF[256] = { |
1610 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x00-0x07 */ | 1610 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x00-0x07 */ |
1611 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x08-0x0F */ | 1611 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x08-0x0F */ |
1612 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x10-0x17 */ | 1612 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x10-0x17 */ |
@@ -1631,7 +1631,7 @@ static wchar_t c2u_AF[256] = { | |||
1631 | 0x7644,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0xA0-0xA7 */ | 1631 | 0x7644,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0xA0-0xA7 */ |
1632 | }; | 1632 | }; |
1633 | 1633 | ||
1634 | static wchar_t c2u_B0[256] = { | 1634 | static const wchar_t c2u_B0[256] = { |
1635 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x00-0x07 */ | 1635 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x00-0x07 */ |
1636 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x08-0x0F */ | 1636 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x08-0x0F */ |
1637 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x10-0x17 */ | 1637 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x10-0x17 */ |
@@ -1667,7 +1667,7 @@ static wchar_t c2u_B0[256] = { | |||
1667 | 0x508D,0x8C24,0x82DE,0x80DE,0x5305,0x8912,0x5265,0x0000,/* 0xF8-0xFF */ | 1667 | 0x508D,0x8C24,0x82DE,0x80DE,0x5305,0x8912,0x5265,0x0000,/* 0xF8-0xFF */ |
1668 | }; | 1668 | }; |
1669 | 1669 | ||
1670 | static wchar_t c2u_B1[256] = { | 1670 | static const wchar_t c2u_B1[256] = { |
1671 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x00-0x07 */ | 1671 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x00-0x07 */ |
1672 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x08-0x0F */ | 1672 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x08-0x0F */ |
1673 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x10-0x17 */ | 1673 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x10-0x17 */ |
@@ -1703,7 +1703,7 @@ static wchar_t c2u_B1[256] = { | |||
1703 | 0x5175,0x51B0,0x67C4,0x4E19,0x79C9,0x997C,0x70B3,0x0000,/* 0xF8-0xFF */ | 1703 | 0x5175,0x51B0,0x67C4,0x4E19,0x79C9,0x997C,0x70B3,0x0000,/* 0xF8-0xFF */ |
1704 | }; | 1704 | }; |
1705 | 1705 | ||
1706 | static wchar_t c2u_B2[256] = { | 1706 | static const wchar_t c2u_B2[256] = { |
1707 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x00-0x07 */ | 1707 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x00-0x07 */ |
1708 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x08-0x0F */ | 1708 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x08-0x0F */ |
1709 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x10-0x17 */ | 1709 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x10-0x17 */ |
@@ -1739,7 +1739,7 @@ static wchar_t c2u_B2[256] = { | |||
1739 | 0x7F20,0x94F2,0x4EA7,0x9610,0x98A4,0x660C,0x7316,0x0000,/* 0xF8-0xFF */ | 1739 | 0x7F20,0x94F2,0x4EA7,0x9610,0x98A4,0x660C,0x7316,0x0000,/* 0xF8-0xFF */ |
1740 | }; | 1740 | }; |
1741 | 1741 | ||
1742 | static wchar_t c2u_B3[256] = { | 1742 | static const wchar_t c2u_B3[256] = { |
1743 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x00-0x07 */ | 1743 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x00-0x07 */ |
1744 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x08-0x0F */ | 1744 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x08-0x0F */ |
1745 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x10-0x17 */ | 1745 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x10-0x17 */ |
@@ -1775,7 +1775,7 @@ static wchar_t c2u_B3[256] = { | |||
1775 | 0x53A8,0x8E87,0x9504,0x96CF,0x6EC1,0x9664,0x695A,0x0000,/* 0xF8-0xFF */ | 1775 | 0x53A8,0x8E87,0x9504,0x96CF,0x6EC1,0x9664,0x695A,0x0000,/* 0xF8-0xFF */ |
1776 | }; | 1776 | }; |
1777 | 1777 | ||
1778 | static wchar_t c2u_B4[256] = { | 1778 | static const wchar_t c2u_B4[256] = { |
1779 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x00-0x07 */ | 1779 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x00-0x07 */ |
1780 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x08-0x0F */ | 1780 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x08-0x0F */ |
1781 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x10-0x17 */ | 1781 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x10-0x17 */ |
@@ -1811,7 +1811,7 @@ static wchar_t c2u_B4[256] = { | |||
1811 | 0x5E26,0x6B86,0x4EE3,0x8D37,0x888B,0x5F85,0x902E,0x0000,/* 0xF8-0xFF */ | 1811 | 0x5E26,0x6B86,0x4EE3,0x8D37,0x888B,0x5F85,0x902E,0x0000,/* 0xF8-0xFF */ |
1812 | }; | 1812 | }; |
1813 | 1813 | ||
1814 | static wchar_t c2u_B5[256] = { | 1814 | static const wchar_t c2u_B5[256] = { |
1815 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x00-0x07 */ | 1815 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x00-0x07 */ |
1816 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x08-0x0F */ | 1816 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x08-0x0F */ |
1817 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x10-0x17 */ | 1817 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x10-0x17 */ |
@@ -1847,7 +1847,7 @@ static wchar_t c2u_B5[256] = { | |||
1847 | 0x8DCC,0x7239,0x789F,0x8776,0x8FED,0x8C0D,0x53E0,0x0000,/* 0xF8-0xFF */ | 1847 | 0x8DCC,0x7239,0x789F,0x8776,0x8FED,0x8C0D,0x53E0,0x0000,/* 0xF8-0xFF */ |
1848 | }; | 1848 | }; |
1849 | 1849 | ||
1850 | static wchar_t c2u_B6[256] = { | 1850 | static const wchar_t c2u_B6[256] = { |
1851 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x00-0x07 */ | 1851 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x00-0x07 */ |
1852 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x08-0x0F */ | 1852 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x08-0x0F */ |
1853 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x10-0x17 */ | 1853 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x10-0x17 */ |
@@ -1883,7 +1883,7 @@ static wchar_t c2u_B6[256] = { | |||
1883 | 0x800C,0x513F,0x8033,0x5C14,0x9975,0x6D31,0x4E8C,0x0000,/* 0xF8-0xFF */ | 1883 | 0x800C,0x513F,0x8033,0x5C14,0x9975,0x6D31,0x4E8C,0x0000,/* 0xF8-0xFF */ |
1884 | }; | 1884 | }; |
1885 | 1885 | ||
1886 | static wchar_t c2u_B7[256] = { | 1886 | static const wchar_t c2u_B7[256] = { |
1887 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x00-0x07 */ | 1887 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x00-0x07 */ |
1888 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x08-0x0F */ | 1888 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x08-0x0F */ |
1889 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x10-0x17 */ | 1889 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x10-0x17 */ |
@@ -1919,7 +1919,7 @@ static wchar_t c2u_B7[256] = { | |||
1919 | 0x8F90,0x5E45,0x6C1F,0x7B26,0x4F0F,0x4FD8,0x670D,0x0000,/* 0xF8-0xFF */ | 1919 | 0x8F90,0x5E45,0x6C1F,0x7B26,0x4F0F,0x4FD8,0x670D,0x0000,/* 0xF8-0xFF */ |
1920 | }; | 1920 | }; |
1921 | 1921 | ||
1922 | static wchar_t c2u_B8[256] = { | 1922 | static const wchar_t c2u_B8[256] = { |
1923 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x00-0x07 */ | 1923 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x00-0x07 */ |
1924 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x08-0x0F */ | 1924 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x08-0x0F */ |
1925 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x10-0x17 */ | 1925 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x10-0x17 */ |
@@ -1955,7 +1955,7 @@ static wchar_t c2u_B8[256] = { | |||
1955 | 0x7ED9,0x6839,0x8DDF,0x8015,0x66F4,0x5E9A,0x7FB9,0x0000,/* 0xF8-0xFF */ | 1955 | 0x7ED9,0x6839,0x8DDF,0x8015,0x66F4,0x5E9A,0x7FB9,0x0000,/* 0xF8-0xFF */ |
1956 | }; | 1956 | }; |
1957 | 1957 | ||
1958 | static wchar_t c2u_B9[256] = { | 1958 | static const wchar_t c2u_B9[256] = { |
1959 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x00-0x07 */ | 1959 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x00-0x07 */ |
1960 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x08-0x0F */ | 1960 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x08-0x0F */ |
1961 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x10-0x17 */ | 1961 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x10-0x17 */ |
@@ -1991,7 +1991,7 @@ static wchar_t c2u_B9[256] = { | |||
1991 | 0x9505,0x90ED,0x56FD,0x679C,0x88F9,0x8FC7,0x54C8,0x0000,/* 0xF8-0xFF */ | 1991 | 0x9505,0x90ED,0x56FD,0x679C,0x88F9,0x8FC7,0x54C8,0x0000,/* 0xF8-0xFF */ |
1992 | }; | 1992 | }; |
1993 | 1993 | ||
1994 | static wchar_t c2u_BA[256] = { | 1994 | static const wchar_t c2u_BA[256] = { |
1995 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x00-0x07 */ | 1995 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x00-0x07 */ |
1996 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x08-0x0F */ | 1996 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x08-0x0F */ |
1997 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x10-0x17 */ | 1997 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x10-0x17 */ |
@@ -2027,7 +2027,7 @@ static wchar_t c2u_BA[256] = { | |||
2027 | 0x58F6,0x846B,0x80E1,0x8774,0x72D0,0x7CCA,0x6E56,0x0000,/* 0xF8-0xFF */ | 2027 | 0x58F6,0x846B,0x80E1,0x8774,0x72D0,0x7CCA,0x6E56,0x0000,/* 0xF8-0xFF */ |
2028 | }; | 2028 | }; |
2029 | 2029 | ||
2030 | static wchar_t c2u_BB[256] = { | 2030 | static const wchar_t c2u_BB[256] = { |
2031 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x00-0x07 */ | 2031 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x00-0x07 */ |
2032 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x08-0x0F */ | 2032 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x08-0x0F */ |
2033 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x10-0x17 */ | 2033 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x10-0x17 */ |
@@ -2063,7 +2063,7 @@ static wchar_t c2u_BB[256] = { | |||
2063 | 0x573E,0x57FA,0x673A,0x7578,0x7A3D,0x79EF,0x7B95,0x0000,/* 0xF8-0xFF */ | 2063 | 0x573E,0x57FA,0x673A,0x7578,0x7A3D,0x79EF,0x7B95,0x0000,/* 0xF8-0xFF */ |
2064 | }; | 2064 | }; |
2065 | 2065 | ||
2066 | static wchar_t c2u_BC[256] = { | 2066 | static const wchar_t c2u_BC[256] = { |
2067 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x00-0x07 */ | 2067 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x00-0x07 */ |
2068 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x08-0x0F */ | 2068 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x08-0x0F */ |
2069 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x10-0x17 */ | 2069 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x10-0x17 */ |
@@ -2099,7 +2099,7 @@ static wchar_t c2u_BC[256] = { | |||
2099 | 0x9274,0x8DF5,0x8D31,0x89C1,0x952E,0x7BAD,0x4EF6,0x0000,/* 0xF8-0xFF */ | 2099 | 0x9274,0x8DF5,0x8D31,0x89C1,0x952E,0x7BAD,0x4EF6,0x0000,/* 0xF8-0xFF */ |
2100 | }; | 2100 | }; |
2101 | 2101 | ||
2102 | static wchar_t c2u_BD[256] = { | 2102 | static const wchar_t c2u_BD[256] = { |
2103 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x00-0x07 */ | 2103 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x00-0x07 */ |
2104 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x08-0x0F */ | 2104 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x08-0x0F */ |
2105 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x10-0x17 */ | 2105 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x10-0x17 */ |
@@ -2135,7 +2135,7 @@ static wchar_t c2u_BD[256] = { | |||
2135 | 0x8FDB,0x9773,0x664B,0x7981,0x8FD1,0x70EC,0x6D78,0x0000,/* 0xF8-0xFF */ | 2135 | 0x8FDB,0x9773,0x664B,0x7981,0x8FD1,0x70EC,0x6D78,0x0000,/* 0xF8-0xFF */ |
2136 | }; | 2136 | }; |
2137 | 2137 | ||
2138 | static wchar_t c2u_BE[256] = { | 2138 | static const wchar_t c2u_BE[256] = { |
2139 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x00-0x07 */ | 2139 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x00-0x07 */ |
2140 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x08-0x0F */ | 2140 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x08-0x0F */ |
2141 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x10-0x17 */ | 2141 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x10-0x17 */ |
@@ -2171,7 +2171,7 @@ static wchar_t c2u_BE[256] = { | |||
2171 | 0x7EDD,0x5747,0x83CC,0x94A7,0x519B,0x541B,0x5CFB,0x0000,/* 0xF8-0xFF */ | 2171 | 0x7EDD,0x5747,0x83CC,0x94A7,0x519B,0x541B,0x5CFB,0x0000,/* 0xF8-0xFF */ |
2172 | }; | 2172 | }; |
2173 | 2173 | ||
2174 | static wchar_t c2u_BF[256] = { | 2174 | static const wchar_t c2u_BF[256] = { |
2175 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x00-0x07 */ | 2175 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x00-0x07 */ |
2176 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x08-0x0F */ | 2176 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x08-0x0F */ |
2177 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x10-0x17 */ | 2177 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x10-0x17 */ |
@@ -2207,7 +2207,7 @@ static wchar_t c2u_BF[256] = { | |||
2207 | 0x76D4,0x5CBF,0x7AA5,0x8475,0x594E,0x9B41,0x5080,0x0000,/* 0xF8-0xFF */ | 2207 | 0x76D4,0x5CBF,0x7AA5,0x8475,0x594E,0x9B41,0x5080,0x0000,/* 0xF8-0xFF */ |
2208 | }; | 2208 | }; |
2209 | 2209 | ||
2210 | static wchar_t c2u_C0[256] = { | 2210 | static const wchar_t c2u_C0[256] = { |
2211 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x00-0x07 */ | 2211 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x00-0x07 */ |
2212 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x08-0x0F */ | 2212 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x08-0x0F */ |
2213 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x10-0x17 */ | 2213 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x10-0x17 */ |
@@ -2243,7 +2243,7 @@ static wchar_t c2u_C0[256] = { | |||
2243 | 0x52B1,0x783E,0x5386,0x5229,0x5088,0x4F8B,0x4FD0,0x0000,/* 0xF8-0xFF */ | 2243 | 0x52B1,0x783E,0x5386,0x5229,0x5088,0x4F8B,0x4FD0,0x0000,/* 0xF8-0xFF */ |
2244 | }; | 2244 | }; |
2245 | 2245 | ||
2246 | static wchar_t c2u_C1[256] = { | 2246 | static const wchar_t c2u_C1[256] = { |
2247 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x00-0x07 */ | 2247 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x00-0x07 */ |
2248 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x08-0x0F */ | 2248 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x08-0x0F */ |
2249 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x10-0x17 */ | 2249 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x10-0x17 */ |
@@ -2279,7 +2279,7 @@ static wchar_t c2u_C1[256] = { | |||
2279 | 0x67F3,0x516D,0x9F99,0x804B,0x5499,0x7B3C,0x7ABF,0x0000,/* 0xF8-0xFF */ | 2279 | 0x67F3,0x516D,0x9F99,0x804B,0x5499,0x7B3C,0x7ABF,0x0000,/* 0xF8-0xFF */ |
2280 | }; | 2280 | }; |
2281 | 2281 | ||
2282 | static wchar_t c2u_C2[256] = { | 2282 | static const wchar_t c2u_C2[256] = { |
2283 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x00-0x07 */ | 2283 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x00-0x07 */ |
2284 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x08-0x0F */ | 2284 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x08-0x0F */ |
2285 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x10-0x17 */ | 2285 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x10-0x17 */ |
@@ -2315,7 +2315,7 @@ static wchar_t c2u_C2[256] = { | |||
2315 | 0x9992,0x86EE,0x6EE1,0x8513,0x66FC,0x6162,0x6F2B,0x0000,/* 0xF8-0xFF */ | 2315 | 0x9992,0x86EE,0x6EE1,0x8513,0x66FC,0x6162,0x6F2B,0x0000,/* 0xF8-0xFF */ |
2316 | }; | 2316 | }; |
2317 | 2317 | ||
2318 | static wchar_t c2u_C3[256] = { | 2318 | static const wchar_t c2u_C3[256] = { |
2319 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x00-0x07 */ | 2319 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x00-0x07 */ |
2320 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x08-0x0F */ | 2320 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x08-0x0F */ |
2321 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x10-0x17 */ | 2321 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x10-0x17 */ |
@@ -2351,7 +2351,7 @@ static wchar_t c2u_C3[256] = { | |||
2351 | 0x879F,0x9E23,0x94ED,0x540D,0x547D,0x8C2C,0x6478,0x0000,/* 0xF8-0xFF */ | 2351 | 0x879F,0x9E23,0x94ED,0x540D,0x547D,0x8C2C,0x6478,0x0000,/* 0xF8-0xFF */ |
2352 | }; | 2352 | }; |
2353 | 2353 | ||
2354 | static wchar_t c2u_C4[256] = { | 2354 | static const wchar_t c2u_C4[256] = { |
2355 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x00-0x07 */ | 2355 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x00-0x07 */ |
2356 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x08-0x0F */ | 2356 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x08-0x0F */ |
2357 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x10-0x17 */ | 2357 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x10-0x17 */ |
@@ -2387,7 +2387,7 @@ static wchar_t c2u_C4[256] = { | |||
2387 | 0x954D,0x6D85,0x60A8,0x67E0,0x72DE,0x51DD,0x5B81,0x0000,/* 0xF8-0xFF */ | 2387 | 0x954D,0x6D85,0x60A8,0x67E0,0x72DE,0x51DD,0x5B81,0x0000,/* 0xF8-0xFF */ |
2388 | }; | 2388 | }; |
2389 | 2389 | ||
2390 | static wchar_t c2u_C5[256] = { | 2390 | static const wchar_t c2u_C5[256] = { |
2391 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x00-0x07 */ | 2391 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x00-0x07 */ |
2392 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x08-0x0F */ | 2392 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x08-0x0F */ |
2393 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x10-0x17 */ | 2393 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x10-0x17 */ |
@@ -2423,7 +2423,7 @@ static wchar_t c2u_C5[256] = { | |||
2423 | 0x7812,0x9739,0x6279,0x62AB,0x5288,0x7435,0x6BD7,0x0000,/* 0xF8-0xFF */ | 2423 | 0x7812,0x9739,0x6279,0x62AB,0x5288,0x7435,0x6BD7,0x0000,/* 0xF8-0xFF */ |
2424 | }; | 2424 | }; |
2425 | 2425 | ||
2426 | static wchar_t c2u_C6[256] = { | 2426 | static const wchar_t c2u_C6[256] = { |
2427 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x00-0x07 */ | 2427 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x00-0x07 */ |
2428 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x08-0x0F */ | 2428 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x08-0x0F */ |
2429 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x10-0x17 */ | 2429 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x10-0x17 */ |
@@ -2459,7 +2459,7 @@ static wchar_t c2u_C6[256] = { | |||
2459 | 0x6C14,0x8FC4,0x5F03,0x6C7D,0x6CE3,0x8BAB,0x6390,0x0000,/* 0xF8-0xFF */ | 2459 | 0x6C14,0x8FC4,0x5F03,0x6C7D,0x6CE3,0x8BAB,0x6390,0x0000,/* 0xF8-0xFF */ |
2460 | }; | 2460 | }; |
2461 | 2461 | ||
2462 | static wchar_t c2u_C7[256] = { | 2462 | static const wchar_t c2u_C7[256] = { |
2463 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x00-0x07 */ | 2463 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x00-0x07 */ |
2464 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x08-0x0F */ | 2464 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x08-0x0F */ |
2465 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x10-0x17 */ | 2465 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x10-0x17 */ |
@@ -2495,7 +2495,7 @@ static wchar_t c2u_C7[256] = { | |||
2495 | 0x533A,0x86C6,0x66F2,0x8EAF,0x5C48,0x9A71,0x6E20,0x0000,/* 0xF8-0xFF */ | 2495 | 0x533A,0x86C6,0x66F2,0x8EAF,0x5C48,0x9A71,0x6E20,0x0000,/* 0xF8-0xFF */ |
2496 | }; | 2496 | }; |
2497 | 2497 | ||
2498 | static wchar_t c2u_C8[256] = { | 2498 | static const wchar_t c2u_C8[256] = { |
2499 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x00-0x07 */ | 2499 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x00-0x07 */ |
2500 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x08-0x0F */ | 2500 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x08-0x0F */ |
2501 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x10-0x17 */ | 2501 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x10-0x17 */ |
@@ -2531,7 +2531,7 @@ static wchar_t c2u_C8[256] = { | |||
2531 | 0x8428,0x816E,0x9CC3,0x585E,0x8D5B,0x4E09,0x53C1,0x0000,/* 0xF8-0xFF */ | 2531 | 0x8428,0x816E,0x9CC3,0x585E,0x8D5B,0x4E09,0x53C1,0x0000,/* 0xF8-0xFF */ |
2532 | }; | 2532 | }; |
2533 | 2533 | ||
2534 | static wchar_t c2u_C9[256] = { | 2534 | static const wchar_t c2u_C9[256] = { |
2535 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x00-0x07 */ | 2535 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x00-0x07 */ |
2536 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x08-0x0F */ | 2536 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x08-0x0F */ |
2537 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x10-0x17 */ | 2537 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x10-0x17 */ |
@@ -2567,7 +2567,7 @@ static wchar_t c2u_C9[256] = { | |||
2567 | 0x6E17,0x58F0,0x751F,0x7525,0x7272,0x5347,0x7EF3,0x0000,/* 0xF8-0xFF */ | 2567 | 0x6E17,0x58F0,0x751F,0x7525,0x7272,0x5347,0x7EF3,0x0000,/* 0xF8-0xFF */ |
2568 | }; | 2568 | }; |
2569 | 2569 | ||
2570 | static wchar_t c2u_CA[256] = { | 2570 | static const wchar_t c2u_CA[256] = { |
2571 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x00-0x07 */ | 2571 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x00-0x07 */ |
2572 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x08-0x0F */ | 2572 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x08-0x0F */ |
2573 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x10-0x17 */ | 2573 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x10-0x17 */ |
@@ -2603,7 +2603,7 @@ static wchar_t c2u_CA[256] = { | |||
2603 | 0x675F,0x620D,0x7AD6,0x5885,0x5EB6,0x6570,0x6F31,0x0000,/* 0xF8-0xFF */ | 2603 | 0x675F,0x620D,0x7AD6,0x5885,0x5EB6,0x6570,0x6F31,0x0000,/* 0xF8-0xFF */ |
2604 | }; | 2604 | }; |
2605 | 2605 | ||
2606 | static wchar_t c2u_CB[256] = { | 2606 | static const wchar_t c2u_CB[256] = { |
2607 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x00-0x07 */ | 2607 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x00-0x07 */ |
2608 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x08-0x0F */ | 2608 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x08-0x0F */ |
2609 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x10-0x17 */ | 2609 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x10-0x17 */ |
@@ -2639,7 +2639,7 @@ static wchar_t c2u_CB[256] = { | |||
2639 | 0x9501,0x6240,0x584C,0x4ED6,0x5B83,0x5979,0x5854,0x0000,/* 0xF8-0xFF */ | 2639 | 0x9501,0x6240,0x584C,0x4ED6,0x5B83,0x5979,0x5854,0x0000,/* 0xF8-0xFF */ |
2640 | }; | 2640 | }; |
2641 | 2641 | ||
2642 | static wchar_t c2u_CC[256] = { | 2642 | static const wchar_t c2u_CC[256] = { |
2643 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x00-0x07 */ | 2643 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x00-0x07 */ |
2644 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x08-0x0F */ | 2644 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x08-0x0F */ |
2645 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x10-0x17 */ | 2645 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x10-0x17 */ |
@@ -2675,7 +2675,7 @@ static wchar_t c2u_CC[256] = { | |||
2675 | 0x8DF3,0x8D34,0x94C1,0x5E16,0x5385,0x542C,0x70C3,0x0000,/* 0xF8-0xFF */ | 2675 | 0x8DF3,0x8D34,0x94C1,0x5E16,0x5385,0x542C,0x70C3,0x0000,/* 0xF8-0xFF */ |
2676 | }; | 2676 | }; |
2677 | 2677 | ||
2678 | static wchar_t c2u_CD[256] = { | 2678 | static const wchar_t c2u_CD[256] = { |
2679 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x00-0x07 */ | 2679 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x00-0x07 */ |
2680 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x08-0x0F */ | 2680 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x08-0x0F */ |
2681 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x10-0x17 */ | 2681 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x10-0x17 */ |
@@ -2711,7 +2711,7 @@ static wchar_t c2u_CD[256] = { | |||
2711 | 0x7F51,0x5F80,0x65FA,0x671B,0x5FD8,0x5984,0x5A01,0x0000,/* 0xF8-0xFF */ | 2711 | 0x7F51,0x5F80,0x65FA,0x671B,0x5FD8,0x5984,0x5A01,0x0000,/* 0xF8-0xFF */ |
2712 | }; | 2712 | }; |
2713 | 2713 | ||
2714 | static wchar_t c2u_CE[256] = { | 2714 | static const wchar_t c2u_CE[256] = { |
2715 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x00-0x07 */ | 2715 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x00-0x07 */ |
2716 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x08-0x0F */ | 2716 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x08-0x0F */ |
2717 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x10-0x17 */ | 2717 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x10-0x17 */ |
@@ -2747,7 +2747,7 @@ static wchar_t c2u_CE[256] = { | |||
2747 | 0x7852,0x77FD,0x6670,0x563B,0x5438,0x9521,0x727A,0x0000,/* 0xF8-0xFF */ | 2747 | 0x7852,0x77FD,0x6670,0x563B,0x5438,0x9521,0x727A,0x0000,/* 0xF8-0xFF */ |
2748 | }; | 2748 | }; |
2749 | 2749 | ||
2750 | static wchar_t c2u_CF[256] = { | 2750 | static const wchar_t c2u_CF[256] = { |
2751 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x00-0x07 */ | 2751 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x00-0x07 */ |
2752 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x08-0x0F */ | 2752 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x08-0x0F */ |
2753 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x10-0x17 */ | 2753 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x10-0x17 */ |
@@ -2783,7 +2783,7 @@ static wchar_t c2u_CF[256] = { | |||
2783 | 0x54EE,0x56A3,0x9500,0x6D88,0x5BB5,0x6DC6,0x6653,0x0000,/* 0xF8-0xFF */ | 2783 | 0x54EE,0x56A3,0x9500,0x6D88,0x5BB5,0x6DC6,0x6653,0x0000,/* 0xF8-0xFF */ |
2784 | }; | 2784 | }; |
2785 | 2785 | ||
2786 | static wchar_t c2u_D0[256] = { | 2786 | static const wchar_t c2u_D0[256] = { |
2787 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x00-0x07 */ | 2787 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x00-0x07 */ |
2788 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x08-0x0F */ | 2788 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x08-0x0F */ |
2789 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x10-0x17 */ | 2789 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x10-0x17 */ |
@@ -2819,7 +2819,7 @@ static wchar_t c2u_D0[256] = { | |||
2819 | 0x7EED,0x8F69,0x55A7,0x5BA3,0x60AC,0x65CB,0x7384,0x0000,/* 0xF8-0xFF */ | 2819 | 0x7EED,0x8F69,0x55A7,0x5BA3,0x60AC,0x65CB,0x7384,0x0000,/* 0xF8-0xFF */ |
2820 | }; | 2820 | }; |
2821 | 2821 | ||
2822 | static wchar_t c2u_D1[256] = { | 2822 | static const wchar_t c2u_D1[256] = { |
2823 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x00-0x07 */ | 2823 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x00-0x07 */ |
2824 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x08-0x0F */ | 2824 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x08-0x0F */ |
2825 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x10-0x17 */ | 2825 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x10-0x17 */ |
@@ -2855,7 +2855,7 @@ static wchar_t c2u_D1[256] = { | |||
2855 | 0x517B,0x6837,0x6F3E,0x9080,0x8170,0x5996,0x7476,0x0000,/* 0xF8-0xFF */ | 2855 | 0x517B,0x6837,0x6F3E,0x9080,0x8170,0x5996,0x7476,0x0000,/* 0xF8-0xFF */ |
2856 | }; | 2856 | }; |
2857 | 2857 | ||
2858 | static wchar_t c2u_D2[256] = { | 2858 | static const wchar_t c2u_D2[256] = { |
2859 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x00-0x07 */ | 2859 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x00-0x07 */ |
2860 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x08-0x0F */ | 2860 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x08-0x0F */ |
2861 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x10-0x17 */ | 2861 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x10-0x17 */ |
@@ -2891,7 +2891,7 @@ static wchar_t c2u_D2[256] = { | |||
2891 | 0x94F6,0x6DEB,0x5BC5,0x996E,0x5C39,0x5F15,0x9690,0x0000,/* 0xF8-0xFF */ | 2891 | 0x94F6,0x6DEB,0x5BC5,0x996E,0x5C39,0x5F15,0x9690,0x0000,/* 0xF8-0xFF */ |
2892 | }; | 2892 | }; |
2893 | 2893 | ||
2894 | static wchar_t c2u_D3[256] = { | 2894 | static const wchar_t c2u_D3[256] = { |
2895 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x00-0x07 */ | 2895 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x00-0x07 */ |
2896 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x08-0x0F */ | 2896 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x08-0x0F */ |
2897 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x10-0x17 */ | 2897 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x10-0x17 */ |
@@ -2927,7 +2927,7 @@ static wchar_t c2u_D3[256] = { | |||
2927 | 0x5CEA,0x5FA1,0x6108,0x6B32,0x72F1,0x80B2,0x8A89,0x0000,/* 0xF8-0xFF */ | 2927 | 0x5CEA,0x5FA1,0x6108,0x6B32,0x72F1,0x80B2,0x8A89,0x0000,/* 0xF8-0xFF */ |
2928 | }; | 2928 | }; |
2929 | 2929 | ||
2930 | static wchar_t c2u_D4[256] = { | 2930 | static const wchar_t c2u_D4[256] = { |
2931 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x00-0x07 */ | 2931 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x00-0x07 */ |
2932 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x08-0x0F */ | 2932 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x08-0x0F */ |
2933 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x10-0x17 */ | 2933 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x10-0x17 */ |
@@ -2963,7 +2963,7 @@ static wchar_t c2u_D4[256] = { | |||
2963 | 0x66FE,0x8D60,0x624E,0x55B3,0x6E23,0x672D,0x8F67,0x0000,/* 0xF8-0xFF */ | 2963 | 0x66FE,0x8D60,0x624E,0x55B3,0x6E23,0x672D,0x8F67,0x0000,/* 0xF8-0xFF */ |
2964 | }; | 2964 | }; |
2965 | 2965 | ||
2966 | static wchar_t c2u_D5[256] = { | 2966 | static const wchar_t c2u_D5[256] = { |
2967 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x00-0x07 */ | 2967 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x00-0x07 */ |
2968 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x08-0x0F */ | 2968 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x08-0x0F */ |
2969 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x10-0x17 */ | 2969 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x10-0x17 */ |
@@ -2999,7 +2999,7 @@ static wchar_t c2u_D5[256] = { | |||
2999 | 0x72F0,0x4E89,0x6014,0x6574,0x62EF,0x6B63,0x653F,0x0000,/* 0xF8-0xFF */ | 2999 | 0x72F0,0x4E89,0x6014,0x6574,0x62EF,0x6B63,0x653F,0x0000,/* 0xF8-0xFF */ |
3000 | }; | 3000 | }; |
3001 | 3001 | ||
3002 | static wchar_t c2u_D6[256] = { | 3002 | static const wchar_t c2u_D6[256] = { |
3003 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x00-0x07 */ | 3003 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x00-0x07 */ |
3004 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x08-0x0F */ | 3004 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x08-0x0F */ |
3005 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x10-0x17 */ | 3005 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x10-0x17 */ |
@@ -3035,7 +3035,7 @@ static wchar_t c2u_D6[256] = { | |||
3035 | 0x8457,0x67F1,0x52A9,0x86C0,0x8D2E,0x94F8,0x7B51,0x0000,/* 0xF8-0xFF */ | 3035 | 0x8457,0x67F1,0x52A9,0x86C0,0x8D2E,0x94F8,0x7B51,0x0000,/* 0xF8-0xFF */ |
3036 | }; | 3036 | }; |
3037 | 3037 | ||
3038 | static wchar_t c2u_D7[256] = { | 3038 | static const wchar_t c2u_D7[256] = { |
3039 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x00-0x07 */ | 3039 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x00-0x07 */ |
3040 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x08-0x0F */ | 3040 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x08-0x0F */ |
3041 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x10-0x17 */ | 3041 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x10-0x17 */ |
@@ -3071,7 +3071,7 @@ static wchar_t c2u_D7[256] = { | |||
3071 | 0x5750,0x5EA7,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0xF8-0xFF */ | 3071 | 0x5750,0x5EA7,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0xF8-0xFF */ |
3072 | }; | 3072 | }; |
3073 | 3073 | ||
3074 | static wchar_t c2u_D8[256] = { | 3074 | static const wchar_t c2u_D8[256] = { |
3075 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x00-0x07 */ | 3075 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x00-0x07 */ |
3076 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x08-0x0F */ | 3076 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x08-0x0F */ |
3077 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x10-0x17 */ | 3077 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x10-0x17 */ |
@@ -3107,7 +3107,7 @@ static wchar_t c2u_D8[256] = { | |||
3107 | 0x4F09,0x4F2B,0x4F5E,0x4F67,0x6538,0x4F5A,0x4F5D,0x0000,/* 0xF8-0xFF */ | 3107 | 0x4F09,0x4F2B,0x4F5E,0x4F67,0x6538,0x4F5A,0x4F5D,0x0000,/* 0xF8-0xFF */ |
3108 | }; | 3108 | }; |
3109 | 3109 | ||
3110 | static wchar_t c2u_D9[256] = { | 3110 | static const wchar_t c2u_D9[256] = { |
3111 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x00-0x07 */ | 3111 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x00-0x07 */ |
3112 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x08-0x0F */ | 3112 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x08-0x0F */ |
3113 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x10-0x17 */ | 3113 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x10-0x17 */ |
@@ -3143,7 +3143,7 @@ static wchar_t c2u_D9[256] = { | |||
3143 | 0x5B34,0x8803,0x7FB8,0x51AB,0x51B1,0x51BD,0x51BC,0x0000,/* 0xF8-0xFF */ | 3143 | 0x5B34,0x8803,0x7FB8,0x51AB,0x51B1,0x51BD,0x51BC,0x0000,/* 0xF8-0xFF */ |
3144 | }; | 3144 | }; |
3145 | 3145 | ||
3146 | static wchar_t c2u_DA[256] = { | 3146 | static const wchar_t c2u_DA[256] = { |
3147 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x00-0x07 */ | 3147 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x00-0x07 */ |
3148 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x08-0x0F */ | 3148 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x08-0x0F */ |
3149 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x10-0x17 */ | 3149 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x10-0x17 */ |
@@ -3179,7 +3179,7 @@ static wchar_t c2u_DA[256] = { | |||
3179 | 0x9099,0x90AC,0x90A1,0x90B4,0x90B3,0x90B6,0x90BA,0x0000,/* 0xF8-0xFF */ | 3179 | 0x9099,0x90AC,0x90A1,0x90B4,0x90B3,0x90B6,0x90BA,0x0000,/* 0xF8-0xFF */ |
3180 | }; | 3180 | }; |
3181 | 3181 | ||
3182 | static wchar_t c2u_DB[256] = { | 3182 | static const wchar_t c2u_DB[256] = { |
3183 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x00-0x07 */ | 3183 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x00-0x07 */ |
3184 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x08-0x0F */ | 3184 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x08-0x0F */ |
3185 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x10-0x17 */ | 3185 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x10-0x17 */ |
@@ -3215,7 +3215,7 @@ static wchar_t c2u_DB[256] = { | |||
3215 | 0x57D2,0x57B8,0x57F4,0x57EF,0x57F8,0x57E4,0x57DD,0x0000,/* 0xF8-0xFF */ | 3215 | 0x57D2,0x57B8,0x57F4,0x57EF,0x57F8,0x57E4,0x57DD,0x0000,/* 0xF8-0xFF */ |
3216 | }; | 3216 | }; |
3217 | 3217 | ||
3218 | static wchar_t c2u_DC[256] = { | 3218 | static const wchar_t c2u_DC[256] = { |
3219 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x00-0x07 */ | 3219 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x00-0x07 */ |
3220 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x08-0x0F */ | 3220 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x08-0x0F */ |
3221 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x10-0x17 */ | 3221 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x10-0x17 */ |
@@ -3251,7 +3251,7 @@ static wchar_t c2u_DC[256] = { | |||
3251 | 0x8317,0x8360,0x832D,0x833A,0x8333,0x8366,0x8365,0x0000,/* 0xF8-0xFF */ | 3251 | 0x8317,0x8360,0x832D,0x833A,0x8333,0x8366,0x8365,0x0000,/* 0xF8-0xFF */ |
3252 | }; | 3252 | }; |
3253 | 3253 | ||
3254 | static wchar_t c2u_DD[256] = { | 3254 | static const wchar_t c2u_DD[256] = { |
3255 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x00-0x07 */ | 3255 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x00-0x07 */ |
3256 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x08-0x0F */ | 3256 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x08-0x0F */ |
3257 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x10-0x17 */ | 3257 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x10-0x17 */ |
@@ -3287,7 +3287,7 @@ static wchar_t c2u_DD[256] = { | |||
3287 | 0x850C,0x750D,0x8538,0x84F0,0x8539,0x851F,0x853A,0x0000,/* 0xF8-0xFF */ | 3287 | 0x850C,0x750D,0x8538,0x84F0,0x8539,0x851F,0x853A,0x0000,/* 0xF8-0xFF */ |
3288 | }; | 3288 | }; |
3289 | 3289 | ||
3290 | static wchar_t c2u_DE[256] = { | 3290 | static const wchar_t c2u_DE[256] = { |
3291 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x00-0x07 */ | 3291 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x00-0x07 */ |
3292 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x08-0x0F */ | 3292 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x08-0x0F */ |
3293 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x10-0x17 */ | 3293 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x10-0x17 */ |
@@ -3323,7 +3323,7 @@ static wchar_t c2u_DE[256] = { | |||
3323 | 0x640C,0x6426,0x6421,0x645E,0x6484,0x646D,0x6496,0x0000,/* 0xF8-0xFF */ | 3323 | 0x640C,0x6426,0x6421,0x645E,0x6484,0x646D,0x6496,0x0000,/* 0xF8-0xFF */ |
3324 | }; | 3324 | }; |
3325 | 3325 | ||
3326 | static wchar_t c2u_DF[256] = { | 3326 | static const wchar_t c2u_DF[256] = { |
3327 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x00-0x07 */ | 3327 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x00-0x07 */ |
3328 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x08-0x0F */ | 3328 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x08-0x0F */ |
3329 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x10-0x17 */ | 3329 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x10-0x17 */ |
@@ -3359,7 +3359,7 @@ static wchar_t c2u_DF[256] = { | |||
3359 | 0x5549,0x556D,0x5541,0x5555,0x553F,0x5550,0x553C,0x0000,/* 0xF8-0xFF */ | 3359 | 0x5549,0x556D,0x5541,0x5555,0x553F,0x5550,0x553C,0x0000,/* 0xF8-0xFF */ |
3360 | }; | 3360 | }; |
3361 | 3361 | ||
3362 | static wchar_t c2u_E0[256] = { | 3362 | static const wchar_t c2u_E0[256] = { |
3363 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x00-0x07 */ | 3363 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x00-0x07 */ |
3364 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x08-0x0F */ | 3364 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x08-0x0F */ |
3365 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x10-0x17 */ | 3365 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x10-0x17 */ |
@@ -3395,7 +3395,7 @@ static wchar_t c2u_E0[256] = { | |||
3395 | 0x5E0F,0x5E19,0x5E14,0x5E11,0x5E31,0x5E3B,0x5E3C,0x0000,/* 0xF8-0xFF */ | 3395 | 0x5E0F,0x5E19,0x5E14,0x5E11,0x5E31,0x5E3B,0x5E3C,0x0000,/* 0xF8-0xFF */ |
3396 | }; | 3396 | }; |
3397 | 3397 | ||
3398 | static wchar_t c2u_E1[256] = { | 3398 | static const wchar_t c2u_E1[256] = { |
3399 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x00-0x07 */ | 3399 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x00-0x07 */ |
3400 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x08-0x0F */ | 3400 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x08-0x0F */ |
3401 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x10-0x17 */ | 3401 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x10-0x17 */ |
@@ -3431,7 +3431,7 @@ static wchar_t c2u_E1[256] = { | |||
3431 | 0x72F2,0x72F4,0x72F7,0x7301,0x72F3,0x7303,0x72FA,0x0000,/* 0xF8-0xFF */ | 3431 | 0x72F2,0x72F4,0x72F7,0x7301,0x72F3,0x7303,0x72FA,0x0000,/* 0xF8-0xFF */ |
3432 | }; | 3432 | }; |
3433 | 3433 | ||
3434 | static wchar_t c2u_E2[256] = { | 3434 | static const wchar_t c2u_E2[256] = { |
3435 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x00-0x07 */ | 3435 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x00-0x07 */ |
3436 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x08-0x0F */ | 3436 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x08-0x0F */ |
3437 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x10-0x17 */ | 3437 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x10-0x17 */ |
@@ -3467,7 +3467,7 @@ static wchar_t c2u_E2[256] = { | |||
3467 | 0x603F,0x6021,0x6078,0x6079,0x607B,0x607A,0x6042,0x0000,/* 0xF8-0xFF */ | 3467 | 0x603F,0x6021,0x6078,0x6079,0x607B,0x607A,0x6042,0x0000,/* 0xF8-0xFF */ |
3468 | }; | 3468 | }; |
3469 | 3469 | ||
3470 | static wchar_t c2u_E3[256] = { | 3470 | static const wchar_t c2u_E3[256] = { |
3471 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x00-0x07 */ | 3471 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x00-0x07 */ |
3472 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x08-0x0F */ | 3472 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x08-0x0F */ |
3473 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x10-0x17 */ | 3473 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x10-0x17 */ |
@@ -3503,7 +3503,7 @@ static wchar_t c2u_E3[256] = { | |||
3503 | 0x6CFA,0x6CEB,0x6CEE,0x6CB1,0x6CD3,0x6CEF,0x6CFE,0x0000,/* 0xF8-0xFF */ | 3503 | 0x6CFA,0x6CEB,0x6CEE,0x6CB1,0x6CD3,0x6CEF,0x6CFE,0x0000,/* 0xF8-0xFF */ |
3504 | }; | 3504 | }; |
3505 | 3505 | ||
3506 | static wchar_t c2u_E4[256] = { | 3506 | static const wchar_t c2u_E4[256] = { |
3507 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x00-0x07 */ | 3507 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x00-0x07 */ |
3508 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x08-0x0F */ | 3508 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x08-0x0F */ |
3509 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x10-0x17 */ | 3509 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x10-0x17 */ |
@@ -3539,7 +3539,7 @@ static wchar_t c2u_E4[256] = { | |||
3539 | 0x6F8D,0x6F8C,0x6F78,0x6F72,0x6F7C,0x6F7A,0x6FD1,0x0000,/* 0xF8-0xFF */ | 3539 | 0x6F8D,0x6F8C,0x6F78,0x6F72,0x6F7C,0x6F7A,0x6FD1,0x0000,/* 0xF8-0xFF */ |
3540 | }; | 3540 | }; |
3541 | 3541 | ||
3542 | static wchar_t c2u_E5[256] = { | 3542 | static const wchar_t c2u_E5[256] = { |
3543 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x00-0x07 */ | 3543 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x00-0x07 */ |
3544 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x08-0x0F */ | 3544 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x08-0x0F */ |
3545 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x10-0x17 */ | 3545 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x10-0x17 */ |
@@ -3575,7 +3575,7 @@ static wchar_t c2u_E5[256] = { | |||
3575 | 0x5C6E,0x5981,0x5983,0x598D,0x59A9,0x59AA,0x59A3,0x0000,/* 0xF8-0xFF */ | 3575 | 0x5C6E,0x5981,0x5983,0x598D,0x59A9,0x59AA,0x59A3,0x0000,/* 0xF8-0xFF */ |
3576 | }; | 3576 | }; |
3577 | 3577 | ||
3578 | static wchar_t c2u_E6[256] = { | 3578 | static const wchar_t c2u_E6[256] = { |
3579 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x00-0x07 */ | 3579 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x00-0x07 */ |
3580 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x08-0x0F */ | 3580 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x08-0x0F */ |
3581 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x10-0x17 */ | 3581 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x10-0x17 */ |
@@ -3611,7 +3611,7 @@ static wchar_t c2u_E6[256] = { | |||
3611 | 0x9AA7,0x7E9F,0x7EA1,0x7EA3,0x7EA5,0x7EA8,0x7EA9,0x0000,/* 0xF8-0xFF */ | 3611 | 0x9AA7,0x7E9F,0x7EA1,0x7EA3,0x7EA5,0x7EA8,0x7EA9,0x0000,/* 0xF8-0xFF */ |
3612 | }; | 3612 | }; |
3613 | 3613 | ||
3614 | static wchar_t c2u_E7[256] = { | 3614 | static const wchar_t c2u_E7[256] = { |
3615 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x00-0x07 */ | 3615 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x00-0x07 */ |
3616 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x08-0x0F */ | 3616 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x08-0x0F */ |
3617 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x10-0x17 */ | 3617 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x10-0x17 */ |
@@ -3647,7 +3647,7 @@ static wchar_t c2u_E7[256] = { | |||
3647 | 0x745B,0x7426,0x7425,0x7428,0x7430,0x742E,0x742C,0x0000,/* 0xF8-0xFF */ | 3647 | 0x745B,0x7426,0x7425,0x7428,0x7430,0x742E,0x742C,0x0000,/* 0xF8-0xFF */ |
3648 | }; | 3648 | }; |
3649 | 3649 | ||
3650 | static wchar_t c2u_E8[256] = { | 3650 | static const wchar_t c2u_E8[256] = { |
3651 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x00-0x07 */ | 3651 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x00-0x07 */ |
3652 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x08-0x0F */ | 3652 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x08-0x0F */ |
3653 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x10-0x17 */ | 3653 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x10-0x17 */ |
@@ -3683,7 +3683,7 @@ static wchar_t c2u_E8[256] = { | |||
3683 | 0x686B,0x68C2,0x696E,0x68FC,0x691F,0x6920,0x68F9,0x0000,/* 0xF8-0xFF */ | 3683 | 0x686B,0x68C2,0x696E,0x68FC,0x691F,0x6920,0x68F9,0x0000,/* 0xF8-0xFF */ |
3684 | }; | 3684 | }; |
3685 | 3685 | ||
3686 | static wchar_t c2u_E9[256] = { | 3686 | static const wchar_t c2u_E9[256] = { |
3687 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x00-0x07 */ | 3687 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x00-0x07 */ |
3688 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x08-0x0F */ | 3688 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x08-0x0F */ |
3689 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x10-0x17 */ | 3689 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x10-0x17 */ |
@@ -3719,7 +3719,7 @@ static wchar_t c2u_E9[256] = { | |||
3719 | 0x8F7C,0x8F7E,0x8F81,0x8F82,0x8F84,0x8F87,0x8F8B,0x0000,/* 0xF8-0xFF */ | 3719 | 0x8F7C,0x8F7E,0x8F81,0x8F82,0x8F84,0x8F87,0x8F8B,0x0000,/* 0xF8-0xFF */ |
3720 | }; | 3720 | }; |
3721 | 3721 | ||
3722 | static wchar_t c2u_EA[256] = { | 3722 | static const wchar_t c2u_EA[256] = { |
3723 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x00-0x07 */ | 3723 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x00-0x07 */ |
3724 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x08-0x0F */ | 3724 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x08-0x0F */ |
3725 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x10-0x17 */ | 3725 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x10-0x17 */ |
@@ -3755,7 +3755,7 @@ static wchar_t c2u_EA[256] = { | |||
3755 | 0x728B,0x728D,0x728F,0x7292,0x6308,0x6332,0x63B0,0x0000,/* 0xF8-0xFF */ | 3755 | 0x728B,0x728D,0x728F,0x7292,0x6308,0x6332,0x63B0,0x0000,/* 0xF8-0xFF */ |
3756 | }; | 3756 | }; |
3757 | 3757 | ||
3758 | static wchar_t c2u_EB[256] = { | 3758 | static const wchar_t c2u_EB[256] = { |
3759 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x00-0x07 */ | 3759 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x00-0x07 */ |
3760 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x08-0x0F */ | 3760 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x08-0x0F */ |
3761 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x10-0x17 */ | 3761 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x10-0x17 */ |
@@ -3791,7 +3791,7 @@ static wchar_t c2u_EB[256] = { | |||
3791 | 0x6ED5,0x81A3,0x81AA,0x81CC,0x6726,0x81CA,0x81BB,0x0000,/* 0xF8-0xFF */ | 3791 | 0x6ED5,0x81A3,0x81AA,0x81CC,0x6726,0x81CA,0x81BB,0x0000,/* 0xF8-0xFF */ |
3792 | }; | 3792 | }; |
3793 | 3793 | ||
3794 | static wchar_t c2u_EC[256] = { | 3794 | static const wchar_t c2u_EC[256] = { |
3795 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x00-0x07 */ | 3795 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x00-0x07 */ |
3796 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x08-0x0F */ | 3796 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x08-0x0F */ |
3797 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x10-0x17 */ | 3797 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x10-0x17 */ |
@@ -3827,7 +3827,7 @@ static wchar_t c2u_EC[256] = { | |||
3827 | 0x7985,0x798A,0x799A,0x79A7,0x79B3,0x5FD1,0x5FD0,0x0000,/* 0xF8-0xFF */ | 3827 | 0x7985,0x798A,0x799A,0x79A7,0x79B3,0x5FD1,0x5FD0,0x0000,/* 0xF8-0xFF */ |
3828 | }; | 3828 | }; |
3829 | 3829 | ||
3830 | static wchar_t c2u_ED[256] = { | 3830 | static const wchar_t c2u_ED[256] = { |
3831 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x00-0x07 */ | 3831 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x00-0x07 */ |
3832 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x08-0x0F */ | 3832 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x08-0x0F */ |
3833 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x10-0x17 */ | 3833 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x10-0x17 */ |
@@ -3863,7 +3863,7 @@ static wchar_t c2u_ED[256] = { | |||
3863 | 0x7738,0x7750,0x7751,0x7747,0x7743,0x775A,0x7768,0x0000,/* 0xF8-0xFF */ | 3863 | 0x7738,0x7750,0x7751,0x7747,0x7743,0x775A,0x7768,0x0000,/* 0xF8-0xFF */ |
3864 | }; | 3864 | }; |
3865 | 3865 | ||
3866 | static wchar_t c2u_EE[256] = { | 3866 | static const wchar_t c2u_EE[256] = { |
3867 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x00-0x07 */ | 3867 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x00-0x07 */ |
3868 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x08-0x0F */ | 3868 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x08-0x0F */ |
3869 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x10-0x17 */ | 3869 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x10-0x17 */ |
@@ -3899,7 +3899,7 @@ static wchar_t c2u_EE[256] = { | |||
3899 | 0x94E0,0x94E2,0x94E4,0x94E5,0x94E7,0x94E8,0x94EA,0x0000,/* 0xF8-0xFF */ | 3899 | 0x94E0,0x94E2,0x94E4,0x94E5,0x94E7,0x94E8,0x94EA,0x0000,/* 0xF8-0xFF */ |
3900 | }; | 3900 | }; |
3901 | 3901 | ||
3902 | static wchar_t c2u_EF[256] = { | 3902 | static const wchar_t c2u_EF[256] = { |
3903 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x00-0x07 */ | 3903 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x00-0x07 */ |
3904 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x08-0x0F */ | 3904 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x08-0x0F */ |
3905 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x10-0x17 */ | 3905 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x10-0x17 */ |
@@ -3935,7 +3935,7 @@ static wchar_t c2u_EF[256] = { | |||
3935 | 0x79EB,0x7A06,0x5D47,0x7A03,0x7A02,0x7A1E,0x7A14,0x0000,/* 0xF8-0xFF */ | 3935 | 0x79EB,0x7A06,0x5D47,0x7A03,0x7A02,0x7A1E,0x7A14,0x0000,/* 0xF8-0xFF */ |
3936 | }; | 3936 | }; |
3937 | 3937 | ||
3938 | static wchar_t c2u_F0[256] = { | 3938 | static const wchar_t c2u_F0[256] = { |
3939 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x00-0x07 */ | 3939 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x00-0x07 */ |
3940 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x08-0x0F */ | 3940 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x08-0x0F */ |
3941 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x10-0x17 */ | 3941 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x10-0x17 */ |
@@ -3971,7 +3971,7 @@ static wchar_t c2u_F0[256] = { | |||
3971 | 0x760C,0x7617,0x760A,0x7625,0x7618,0x7615,0x7619,0x0000,/* 0xF8-0xFF */ | 3971 | 0x760C,0x7617,0x760A,0x7625,0x7618,0x7615,0x7619,0x0000,/* 0xF8-0xFF */ |
3972 | }; | 3972 | }; |
3973 | 3973 | ||
3974 | static wchar_t c2u_F1[256] = { | 3974 | static const wchar_t c2u_F1[256] = { |
3975 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x00-0x07 */ | 3975 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x00-0x07 */ |
3976 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x08-0x0F */ | 3976 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x08-0x0F */ |
3977 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x10-0x17 */ | 3977 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x10-0x17 */ |
@@ -4007,7 +4007,7 @@ static wchar_t c2u_F1[256] = { | |||
4007 | 0x8052,0x8069,0x8071,0x8983,0x9878,0x9880,0x9883,0x0000,/* 0xF8-0xFF */ | 4007 | 0x8052,0x8069,0x8071,0x8983,0x9878,0x9880,0x9883,0x0000,/* 0xF8-0xFF */ |
4008 | }; | 4008 | }; |
4009 | 4009 | ||
4010 | static wchar_t c2u_F2[256] = { | 4010 | static const wchar_t c2u_F2[256] = { |
4011 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x00-0x07 */ | 4011 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x00-0x07 */ |
4012 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x08-0x0F */ | 4012 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x08-0x0F */ |
4013 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x10-0x17 */ | 4013 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x10-0x17 */ |
@@ -4043,7 +4043,7 @@ static wchar_t c2u_F2[256] = { | |||
4043 | 0x8764,0x8759,0x8765,0x8793,0x87AF,0x87A8,0x87D2,0x0000,/* 0xF8-0xFF */ | 4043 | 0x8764,0x8759,0x8765,0x8793,0x87AF,0x87A8,0x87D2,0x0000,/* 0xF8-0xFF */ |
4044 | }; | 4044 | }; |
4045 | 4045 | ||
4046 | static wchar_t c2u_F3[256] = { | 4046 | static const wchar_t c2u_F3[256] = { |
4047 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x00-0x07 */ | 4047 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x00-0x07 */ |
4048 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x08-0x0F */ | 4048 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x08-0x0F */ |
4049 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x10-0x17 */ | 4049 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x10-0x17 */ |
@@ -4079,7 +4079,7 @@ static wchar_t c2u_F3[256] = { | |||
4079 | 0x7BEA,0x7C0C,0x7BFE,0x7BFC,0x7C0F,0x7C16,0x7C0B,0x0000,/* 0xF8-0xFF */ | 4079 | 0x7BEA,0x7C0C,0x7BFE,0x7BFC,0x7C0F,0x7C16,0x7C0B,0x0000,/* 0xF8-0xFF */ |
4080 | }; | 4080 | }; |
4081 | 4081 | ||
4082 | static wchar_t c2u_F4[256] = { | 4082 | static const wchar_t c2u_F4[256] = { |
4083 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x00-0x07 */ | 4083 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x00-0x07 */ |
4084 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x08-0x0F */ | 4084 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x08-0x0F */ |
4085 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x10-0x17 */ | 4085 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x10-0x17 */ |
@@ -4115,7 +4115,7 @@ static wchar_t c2u_F4[256] = { | |||
4115 | 0x8C47,0x8C49,0x914A,0x9150,0x914E,0x914F,0x9164,0x0000,/* 0xF8-0xFF */ | 4115 | 0x8C47,0x8C49,0x914A,0x9150,0x914E,0x914F,0x9164,0x0000,/* 0xF8-0xFF */ |
4116 | }; | 4116 | }; |
4117 | 4117 | ||
4118 | static wchar_t c2u_F5[256] = { | 4118 | static const wchar_t c2u_F5[256] = { |
4119 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x00-0x07 */ | 4119 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x00-0x07 */ |
4120 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x08-0x0F */ | 4120 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x08-0x0F */ |
4121 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x10-0x17 */ | 4121 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x10-0x17 */ |
@@ -4151,7 +4151,7 @@ static wchar_t c2u_F5[256] = { | |||
4151 | 0x8C98,0x8C94,0x659B,0x89D6,0x89DE,0x89DA,0x89DC,0x0000,/* 0xF8-0xFF */ | 4151 | 0x8C98,0x8C94,0x659B,0x89D6,0x89DE,0x89DA,0x89DC,0x0000,/* 0xF8-0xFF */ |
4152 | }; | 4152 | }; |
4153 | 4153 | ||
4154 | static wchar_t c2u_F6[256] = { | 4154 | static const wchar_t c2u_F6[256] = { |
4155 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x00-0x07 */ | 4155 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x00-0x07 */ |
4156 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x08-0x0F */ | 4156 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x08-0x0F */ |
4157 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x10-0x17 */ | 4157 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x10-0x17 */ |
@@ -4187,7 +4187,7 @@ static wchar_t c2u_F6[256] = { | |||
4187 | 0x9CBD,0x9CC4,0x9CC5,0x9CC6,0x9CC7,0x9CCA,0x9CCB,0x0000,/* 0xF8-0xFF */ | 4187 | 0x9CBD,0x9CC4,0x9CC5,0x9CC6,0x9CC7,0x9CCA,0x9CCB,0x0000,/* 0xF8-0xFF */ |
4188 | }; | 4188 | }; |
4189 | 4189 | ||
4190 | static wchar_t c2u_F7[256] = { | 4190 | static const wchar_t c2u_F7[256] = { |
4191 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x00-0x07 */ | 4191 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x00-0x07 */ |
4192 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x08-0x0F */ | 4192 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x08-0x0F */ |
4193 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x10-0x17 */ | 4193 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x10-0x17 */ |
@@ -4223,7 +4223,7 @@ static wchar_t c2u_F7[256] = { | |||
4223 | 0x9F2C,0x9F2F,0x9F39,0x9F37,0x9F3D,0x9F3E,0x9F44,0x0000,/* 0xF8-0xFF */ | 4223 | 0x9F2C,0x9F2F,0x9F39,0x9F37,0x9F3D,0x9F3E,0x9F44,0x0000,/* 0xF8-0xFF */ |
4224 | }; | 4224 | }; |
4225 | 4225 | ||
4226 | static wchar_t c2u_F8[256] = { | 4226 | static const wchar_t c2u_F8[256] = { |
4227 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x00-0x07 */ | 4227 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x00-0x07 */ |
4228 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x08-0x0F */ | 4228 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x08-0x0F */ |
4229 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x10-0x17 */ | 4229 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x10-0x17 */ |
@@ -4248,7 +4248,7 @@ static wchar_t c2u_F8[256] = { | |||
4248 | 0x9D42,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0xA0-0xA7 */ | 4248 | 0x9D42,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0xA0-0xA7 */ |
4249 | }; | 4249 | }; |
4250 | 4250 | ||
4251 | static wchar_t c2u_F9[256] = { | 4251 | static const wchar_t c2u_F9[256] = { |
4252 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x00-0x07 */ | 4252 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x00-0x07 */ |
4253 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x08-0x0F */ | 4253 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x08-0x0F */ |
4254 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x10-0x17 */ | 4254 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x10-0x17 */ |
@@ -4273,7 +4273,7 @@ static wchar_t c2u_F9[256] = { | |||
4273 | 0x9DA2,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0xA0-0xA7 */ | 4273 | 0x9DA2,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0xA0-0xA7 */ |
4274 | }; | 4274 | }; |
4275 | 4275 | ||
4276 | static wchar_t c2u_FA[256] = { | 4276 | static const wchar_t c2u_FA[256] = { |
4277 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x00-0x07 */ | 4277 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x00-0x07 */ |
4278 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x08-0x0F */ | 4278 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x08-0x0F */ |
4279 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x10-0x17 */ | 4279 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x10-0x17 */ |
@@ -4298,7 +4298,7 @@ static wchar_t c2u_FA[256] = { | |||
4298 | 0x9E02,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0xA0-0xA7 */ | 4298 | 0x9E02,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0xA0-0xA7 */ |
4299 | }; | 4299 | }; |
4300 | 4300 | ||
4301 | static wchar_t c2u_FB[256] = { | 4301 | static const wchar_t c2u_FB[256] = { |
4302 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x00-0x07 */ | 4302 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x00-0x07 */ |
4303 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x08-0x0F */ | 4303 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x08-0x0F */ |
4304 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x10-0x17 */ | 4304 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x10-0x17 */ |
@@ -4323,7 +4323,7 @@ static wchar_t c2u_FB[256] = { | |||
4323 | 0x9EAA,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0xA0-0xA7 */ | 4323 | 0x9EAA,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0xA0-0xA7 */ |
4324 | }; | 4324 | }; |
4325 | 4325 | ||
4326 | static wchar_t c2u_FC[256] = { | 4326 | static const wchar_t c2u_FC[256] = { |
4327 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x00-0x07 */ | 4327 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x00-0x07 */ |
4328 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x08-0x0F */ | 4328 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x08-0x0F */ |
4329 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x10-0x17 */ | 4329 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x10-0x17 */ |
@@ -4348,7 +4348,7 @@ static wchar_t c2u_FC[256] = { | |||
4348 | 0x9F31,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0xA0-0xA7 */ | 4348 | 0x9F31,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0xA0-0xA7 */ |
4349 | }; | 4349 | }; |
4350 | 4350 | ||
4351 | static wchar_t c2u_FD[256] = { | 4351 | static const wchar_t c2u_FD[256] = { |
4352 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x00-0x07 */ | 4352 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x00-0x07 */ |
4353 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x08-0x0F */ | 4353 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x08-0x0F */ |
4354 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x10-0x17 */ | 4354 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x10-0x17 */ |
@@ -4373,7 +4373,7 @@ static wchar_t c2u_FD[256] = { | |||
4373 | 0xF9F1,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0xA0-0xA7 */ | 4373 | 0xF9F1,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0xA0-0xA7 */ |
4374 | }; | 4374 | }; |
4375 | 4375 | ||
4376 | static wchar_t c2u_FE[256] = { | 4376 | static const wchar_t c2u_FE[256] = { |
4377 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x00-0x07 */ | 4377 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x00-0x07 */ |
4378 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x08-0x0F */ | 4378 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x08-0x0F */ |
4379 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x10-0x17 */ | 4379 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x10-0x17 */ |
@@ -4386,7 +4386,7 @@ static wchar_t c2u_FE[256] = { | |||
4386 | 0xFA1F,0xFA20,0xFA21,0xFA23,0xFA24,0xFA27,0xFA28,0xFA29,/* 0x48-0x4F */ | 4386 | 0xFA1F,0xFA20,0xFA21,0xFA23,0xFA24,0xFA27,0xFA28,0xFA29,/* 0x48-0x4F */ |
4387 | }; | 4387 | }; |
4388 | 4388 | ||
4389 | static wchar_t *page_charset2uni[256] = { | 4389 | static const wchar_t *page_charset2uni[256] = { |
4390 | NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, | 4390 | NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, |
4391 | NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, | 4391 | NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, |
4392 | NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, | 4392 | NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, |
@@ -4421,7 +4421,7 @@ static wchar_t *page_charset2uni[256] = { | |||
4421 | c2u_F8, c2u_F9, c2u_FA, c2u_FB, c2u_FC, c2u_FD, c2u_FE, NULL, | 4421 | c2u_F8, c2u_F9, c2u_FA, c2u_FB, c2u_FC, c2u_FD, c2u_FE, NULL, |
4422 | }; | 4422 | }; |
4423 | 4423 | ||
4424 | static unsigned char u2c_00[512] = { | 4424 | static const unsigned char u2c_00[512] = { |
4425 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x00-0x03 */ | 4425 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x00-0x03 */ |
4426 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x04-0x07 */ | 4426 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x04-0x07 */ |
4427 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x08-0x0B */ | 4427 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x08-0x0B */ |
@@ -4488,7 +4488,7 @@ static unsigned char u2c_00[512] = { | |||
4488 | 0xA8, 0xB9, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xFC-0xFF */ | 4488 | 0xA8, 0xB9, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xFC-0xFF */ |
4489 | }; | 4489 | }; |
4490 | 4490 | ||
4491 | static unsigned char u2c_01[512] = { | 4491 | static const unsigned char u2c_01[512] = { |
4492 | 0xA8, 0xA1, 0xA8, 0xA1, 0x00, 0x00, 0x00, 0x00, /* 0x00-0x03 */ | 4492 | 0xA8, 0xA1, 0xA8, 0xA1, 0x00, 0x00, 0x00, 0x00, /* 0x00-0x03 */ |
4493 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x04-0x07 */ | 4493 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x04-0x07 */ |
4494 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x08-0x0B */ | 4494 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x08-0x0B */ |
@@ -4548,7 +4548,7 @@ static unsigned char u2c_01[512] = { | |||
4548 | 0xA8, 0xB8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xDC-0xDF */ | 4548 | 0xA8, 0xB8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xDC-0xDF */ |
4549 | }; | 4549 | }; |
4550 | 4550 | ||
4551 | static unsigned char u2c_02[512] = { | 4551 | static const unsigned char u2c_02[512] = { |
4552 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x00-0x03 */ | 4552 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x00-0x03 */ |
4553 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x04-0x07 */ | 4553 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x04-0x07 */ |
4554 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x08-0x0B */ | 4554 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x08-0x0B */ |
@@ -4607,7 +4607,7 @@ static unsigned char u2c_02[512] = { | |||
4607 | 0x00, 0x00, 0xA8, 0x42, 0x00, 0x00, 0x00, 0x00, /* 0xD8-0xDB */ | 4607 | 0x00, 0x00, 0xA8, 0x42, 0x00, 0x00, 0x00, 0x00, /* 0xD8-0xDB */ |
4608 | }; | 4608 | }; |
4609 | 4609 | ||
4610 | static unsigned char u2c_03[512] = { | 4610 | static const unsigned char u2c_03[512] = { |
4611 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x00-0x03 */ | 4611 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x00-0x03 */ |
4612 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x04-0x07 */ | 4612 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x04-0x07 */ |
4613 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x08-0x0B */ | 4613 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x08-0x0B */ |
@@ -4662,7 +4662,7 @@ static unsigned char u2c_03[512] = { | |||
4662 | 0xA6, 0xD7, 0xA6, 0xD8, 0x00, 0x00, 0x00, 0x00, /* 0xC8-0xCB */ | 4662 | 0xA6, 0xD7, 0xA6, 0xD8, 0x00, 0x00, 0x00, 0x00, /* 0xC8-0xCB */ |
4663 | }; | 4663 | }; |
4664 | 4664 | ||
4665 | static unsigned char u2c_04[512] = { | 4665 | static const unsigned char u2c_04[512] = { |
4666 | 0x00, 0x00, 0xA7, 0xA7, 0x00, 0x00, 0x00, 0x00, /* 0x00-0x03 */ | 4666 | 0x00, 0x00, 0xA7, 0xA7, 0x00, 0x00, 0x00, 0x00, /* 0x00-0x03 */ |
4667 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x04-0x07 */ | 4667 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x04-0x07 */ |
4668 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x08-0x0B */ | 4668 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x08-0x0B */ |
@@ -4686,7 +4686,7 @@ static unsigned char u2c_04[512] = { | |||
4686 | 0x00, 0x00, 0xA7, 0xD7, 0x00, 0x00, 0x00, 0x00, /* 0x50-0x53 */ | 4686 | 0x00, 0x00, 0xA7, 0xD7, 0x00, 0x00, 0x00, 0x00, /* 0x50-0x53 */ |
4687 | }; | 4687 | }; |
4688 | 4688 | ||
4689 | static unsigned char u2c_20[512] = { | 4689 | static const unsigned char u2c_20[512] = { |
4690 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x00-0x03 */ | 4690 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x00-0x03 */ |
4691 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x04-0x07 */ | 4691 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x04-0x07 */ |
4692 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x08-0x0B */ | 4692 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x08-0x0B */ |
@@ -4705,7 +4705,7 @@ static unsigned char u2c_20[512] = { | |||
4705 | 0x00, 0x00, 0x00, 0x00, 0xA3, 0xFE, 0x00, 0x00, /* 0x3C-0x3F */ | 4705 | 0x00, 0x00, 0x00, 0x00, 0xA3, 0xFE, 0x00, 0x00, /* 0x3C-0x3F */ |
4706 | }; | 4706 | }; |
4707 | 4707 | ||
4708 | static unsigned char u2c_21[512] = { | 4708 | static const unsigned char u2c_21[512] = { |
4709 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xA1, 0xE6, /* 0x00-0x03 */ | 4709 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xA1, 0xE6, /* 0x00-0x03 */ |
4710 | 0x00, 0x00, 0xA8, 0x47, 0x00, 0x00, 0x00, 0x00, /* 0x04-0x07 */ | 4710 | 0x00, 0x00, 0xA8, 0x47, 0x00, 0x00, 0x00, 0x00, /* 0x04-0x07 */ |
4711 | 0x00, 0x00, 0xA8, 0x48, 0x00, 0x00, 0x00, 0x00, /* 0x08-0x0B */ | 4711 | 0x00, 0x00, 0xA8, 0x48, 0x00, 0x00, 0x00, 0x00, /* 0x08-0x0B */ |
@@ -4748,7 +4748,7 @@ static unsigned char u2c_21[512] = { | |||
4748 | 0xA8, 0x4B, 0xA8, 0x4C, 0x00, 0x00, 0x00, 0x00, /* 0x98-0x9B */ | 4748 | 0xA8, 0x4B, 0xA8, 0x4C, 0x00, 0x00, 0x00, 0x00, /* 0x98-0x9B */ |
4749 | }; | 4749 | }; |
4750 | 4750 | ||
4751 | static unsigned char u2c_22[512] = { | 4751 | static const unsigned char u2c_22[512] = { |
4752 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x00-0x03 */ | 4752 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x00-0x03 */ |
4753 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x04-0x07 */ | 4753 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x04-0x07 */ |
4754 | 0xA1, 0xCA, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x08-0x0B */ | 4754 | 0xA1, 0xCA, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x08-0x0B */ |
@@ -4800,7 +4800,7 @@ static unsigned char u2c_22[512] = { | |||
4800 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xA8, 0x53, /* 0xBC-0xBF */ | 4800 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xA8, 0x53, /* 0xBC-0xBF */ |
4801 | }; | 4801 | }; |
4802 | 4802 | ||
4803 | static unsigned char u2c_23[512] = { | 4803 | static const unsigned char u2c_23[512] = { |
4804 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x00-0x03 */ | 4804 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x00-0x03 */ |
4805 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x04-0x07 */ | 4805 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x04-0x07 */ |
4806 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x08-0x0B */ | 4806 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x08-0x0B */ |
@@ -4808,7 +4808,7 @@ static unsigned char u2c_23[512] = { | |||
4808 | 0x00, 0x00, 0x00, 0x00, 0xA1, 0xD0, 0x00, 0x00, /* 0x10-0x13 */ | 4808 | 0x00, 0x00, 0x00, 0x00, 0xA1, 0xD0, 0x00, 0x00, /* 0x10-0x13 */ |
4809 | }; | 4809 | }; |
4810 | 4810 | ||
4811 | static unsigned char u2c_24[512] = { | 4811 | static const unsigned char u2c_24[512] = { |
4812 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x00-0x03 */ | 4812 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x00-0x03 */ |
4813 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x04-0x07 */ | 4813 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x04-0x07 */ |
4814 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x08-0x0B */ | 4814 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x08-0x0B */ |
@@ -4851,7 +4851,7 @@ static unsigned char u2c_24[512] = { | |||
4851 | 0xA2, 0xC1, 0xA2, 0xC2, 0xA2, 0xC3, 0xA2, 0xC4, /* 0x98-0x9B */ | 4851 | 0xA2, 0xC1, 0xA2, 0xC2, 0xA2, 0xC3, 0xA2, 0xC4, /* 0x98-0x9B */ |
4852 | }; | 4852 | }; |
4853 | 4853 | ||
4854 | static unsigned char u2c_25[512] = { | 4854 | static const unsigned char u2c_25[512] = { |
4855 | 0xA9, 0xA4, 0xA9, 0xA5, 0xA9, 0xA6, 0xA9, 0xA7, /* 0x00-0x03 */ | 4855 | 0xA9, 0xA4, 0xA9, 0xA5, 0xA9, 0xA6, 0xA9, 0xA7, /* 0x00-0x03 */ |
4856 | 0xA9, 0xA8, 0xA9, 0xA9, 0xA9, 0xAA, 0xA9, 0xAB, /* 0x04-0x07 */ | 4856 | 0xA9, 0xA8, 0xA9, 0xA9, 0xA9, 0xAA, 0xA9, 0xAB, /* 0x04-0x07 */ |
4857 | 0xA9, 0xAC, 0xA9, 0xAD, 0xA9, 0xAE, 0xA9, 0xAF, /* 0x08-0x0B */ | 4857 | 0xA9, 0xAC, 0xA9, 0xAD, 0xA9, 0xAE, 0xA9, 0xAF, /* 0x08-0x0B */ |
@@ -4919,7 +4919,7 @@ static unsigned char u2c_25[512] = { | |||
4919 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xFC-0xFF */ | 4919 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xFC-0xFF */ |
4920 | }; | 4920 | }; |
4921 | 4921 | ||
4922 | static unsigned char u2c_26[512] = { | 4922 | static const unsigned char u2c_26[512] = { |
4923 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x00-0x03 */ | 4923 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x00-0x03 */ |
4924 | 0x00, 0x00, 0xA1, 0xEF, 0xA1, 0xEE, 0x00, 0x00, /* 0x04-0x07 */ | 4924 | 0x00, 0x00, 0xA1, 0xEF, 0xA1, 0xEE, 0x00, 0x00, /* 0x04-0x07 */ |
4925 | 0x00, 0x00, 0xA8, 0x91, 0x00, 0x00, 0x00, 0x00, /* 0x08-0x0B */ | 4925 | 0x00, 0x00, 0xA8, 0x91, 0x00, 0x00, 0x00, 0x00, /* 0x08-0x0B */ |
@@ -4939,7 +4939,7 @@ static unsigned char u2c_26[512] = { | |||
4939 | 0xA1, 0xE2, 0x00, 0x00, 0xA1, 0xE1, 0x00, 0x00, /* 0x40-0x43 */ | 4939 | 0xA1, 0xE2, 0x00, 0x00, 0xA1, 0xE1, 0x00, 0x00, /* 0x40-0x43 */ |
4940 | }; | 4940 | }; |
4941 | 4941 | ||
4942 | static unsigned char u2c_30[512] = { | 4942 | static const unsigned char u2c_30[512] = { |
4943 | 0xA1, 0xA1, 0xA1, 0xA2, 0xA1, 0xA3, 0xA1, 0xA8, /* 0x00-0x03 */ | 4943 | 0xA1, 0xA1, 0xA1, 0xA2, 0xA1, 0xA3, 0xA1, 0xA8, /* 0x00-0x03 */ |
4944 | 0x00, 0x00, 0xA1, 0xA9, 0xA9, 0x65, 0xA9, 0x96, /* 0x04-0x07 */ | 4944 | 0x00, 0x00, 0xA1, 0xA9, 0xA9, 0x65, 0xA9, 0x96, /* 0x04-0x07 */ |
4945 | 0xA1, 0xB4, 0xA1, 0xB5, 0xA1, 0xB6, 0xA1, 0xB7, /* 0x08-0x0B */ | 4945 | 0xA1, 0xB4, 0xA1, 0xB5, 0xA1, 0xB6, 0xA1, 0xB7, /* 0x08-0x0B */ |
@@ -5007,7 +5007,7 @@ static unsigned char u2c_30[512] = { | |||
5007 | 0xA9, 0x60, 0xA9, 0x63, 0xA9, 0x64, 0x00, 0x00, /* 0xFC-0xFF */ | 5007 | 0xA9, 0x60, 0xA9, 0x63, 0xA9, 0x64, 0x00, 0x00, /* 0xFC-0xFF */ |
5008 | }; | 5008 | }; |
5009 | 5009 | ||
5010 | static unsigned char u2c_31[512] = { | 5010 | static const unsigned char u2c_31[512] = { |
5011 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x00-0x03 */ | 5011 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x00-0x03 */ |
5012 | 0x00, 0x00, 0xA8, 0xC5, 0xA8, 0xC6, 0xA8, 0xC7, /* 0x04-0x07 */ | 5012 | 0x00, 0x00, 0xA8, 0xC5, 0xA8, 0xC6, 0xA8, 0xC7, /* 0x04-0x07 */ |
5013 | 0xA8, 0xC8, 0xA8, 0xC9, 0xA8, 0xCA, 0xA8, 0xCB, /* 0x08-0x0B */ | 5013 | 0xA8, 0xC8, 0xA8, 0xC9, 0xA8, 0xCA, 0xA8, 0xCB, /* 0x08-0x0B */ |
@@ -5051,7 +5051,7 @@ static unsigned char u2c_31[512] = { | |||
5051 | 0xB6, 0xA1, 0xCC, 0xEC, 0xB5, 0xD8, 0xC8, 0xCB, /* 0x9C-0x9F */ | 5051 | 0xB6, 0xA1, 0xCC, 0xEC, 0xB5, 0xD8, 0xC8, 0xCB, /* 0x9C-0x9F */ |
5052 | }; | 5052 | }; |
5053 | 5053 | ||
5054 | static unsigned char u2c_32[512] = { | 5054 | static const unsigned char u2c_32[512] = { |
5055 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x00-0x03 */ | 5055 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x00-0x03 */ |
5056 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x04-0x07 */ | 5056 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x04-0x07 */ |
5057 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x08-0x0B */ | 5057 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x08-0x0B */ |
@@ -5100,7 +5100,7 @@ static unsigned char u2c_32[512] = { | |||
5100 | 0xD2, 0xB9, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xB0-0xB3 */ | 5100 | 0xD2, 0xB9, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xB0-0xB3 */ |
5101 | }; | 5101 | }; |
5102 | 5102 | ||
5103 | static unsigned char u2c_33[512] = { | 5103 | static const unsigned char u2c_33[512] = { |
5104 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x00-0x03 */ | 5104 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x00-0x03 */ |
5105 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x04-0x07 */ | 5105 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x04-0x07 */ |
5106 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x08-0x0B */ | 5106 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x08-0x0B */ |
@@ -5158,7 +5158,7 @@ static unsigned char u2c_33[512] = { | |||
5158 | 0x00, 0x00, 0xA9, 0x54, 0x00, 0x00, 0x00, 0x00, /* 0xD4-0xD7 */ | 5158 | 0x00, 0x00, 0xA9, 0x54, 0x00, 0x00, 0x00, 0x00, /* 0xD4-0xD7 */ |
5159 | }; | 5159 | }; |
5160 | 5160 | ||
5161 | static unsigned char u2c_4E[512] = { | 5161 | static const unsigned char u2c_4E[512] = { |
5162 | 0xD2, 0xBB, 0xB6, 0xA1, 0x81, 0x40, 0xC6, 0xDF, /* 0x00-0x03 */ | 5162 | 0xD2, 0xBB, 0xB6, 0xA1, 0x81, 0x40, 0xC6, 0xDF, /* 0x00-0x03 */ |
5163 | 0x81, 0x41, 0x81, 0x42, 0x81, 0x43, 0xCD, 0xF2, /* 0x04-0x07 */ | 5163 | 0x81, 0x41, 0x81, 0x42, 0x81, 0x43, 0xCD, 0xF2, /* 0x04-0x07 */ |
5164 | 0xD5, 0xC9, 0xC8, 0xFD, 0xC9, 0xCF, 0xCF, 0xC2, /* 0x08-0x0B */ | 5164 | 0xD5, 0xC9, 0xC8, 0xFD, 0xC9, 0xCF, 0xCF, 0xC2, /* 0x08-0x0B */ |
@@ -5226,7 +5226,7 @@ static unsigned char u2c_4E[512] = { | |||
5226 | 0x81, 0xA9, 0xB7, 0xDD, 0x81, 0xAA, 0xB7, 0xC2, /* 0xFC-0xFF */ | 5226 | 0x81, 0xA9, 0xB7, 0xDD, 0x81, 0xAA, 0xB7, 0xC2, /* 0xFC-0xFF */ |
5227 | }; | 5227 | }; |
5228 | 5228 | ||
5229 | static unsigned char u2c_4F[512] = { | 5229 | static const unsigned char u2c_4F[512] = { |
5230 | 0x81, 0xAB, 0xC6, 0xF3, 0x81, 0xAC, 0x81, 0xAD, /* 0x00-0x03 */ | 5230 | 0x81, 0xAB, 0xC6, 0xF3, 0x81, 0xAC, 0x81, 0xAD, /* 0x00-0x03 */ |
5231 | 0x81, 0xAE, 0x81, 0xAF, 0x81, 0xB0, 0x81, 0xB1, /* 0x04-0x07 */ | 5231 | 0x81, 0xAE, 0x81, 0xAF, 0x81, 0xB0, 0x81, 0xB1, /* 0x04-0x07 */ |
5232 | 0x81, 0xB2, 0xD8, 0xF8, 0xD2, 0xC1, 0x81, 0xB3, /* 0x08-0x0B */ | 5232 | 0x81, 0xB2, 0xD8, 0xF8, 0xD2, 0xC1, 0x81, 0xB3, /* 0x08-0x0B */ |
@@ -5294,7 +5294,7 @@ static unsigned char u2c_4F[512] = { | |||
5294 | 0x82, 0x71, 0x82, 0x72, 0xD9, 0xC2, 0x82, 0x73, /* 0xFC-0xFF */ | 5294 | 0x82, 0x71, 0x82, 0x72, 0xD9, 0xC2, 0x82, 0x73, /* 0xFC-0xFF */ |
5295 | }; | 5295 | }; |
5296 | 5296 | ||
5297 | static unsigned char u2c_50[512] = { | 5297 | static const unsigned char u2c_50[512] = { |
5298 | 0x82, 0x74, 0x82, 0x75, 0x82, 0x76, 0x82, 0x77, /* 0x00-0x03 */ | 5298 | 0x82, 0x74, 0x82, 0x75, 0x82, 0x76, 0x82, 0x77, /* 0x00-0x03 */ |
5299 | 0x82, 0x78, 0x82, 0x79, 0x82, 0x7A, 0x82, 0x7B, /* 0x04-0x07 */ | 5299 | 0x82, 0x78, 0x82, 0x79, 0x82, 0x7A, 0x82, 0x7B, /* 0x04-0x07 */ |
5300 | 0x82, 0x7C, 0x82, 0x7D, 0x82, 0x7E, 0x82, 0x80, /* 0x08-0x0B */ | 5300 | 0x82, 0x7C, 0x82, 0x7D, 0x82, 0x7E, 0x82, 0x80, /* 0x08-0x0B */ |
@@ -5362,7 +5362,7 @@ static unsigned char u2c_50[512] = { | |||
5362 | 0x83, 0x74, 0x83, 0x75, 0x83, 0x76, 0x83, 0x77, /* 0xFC-0xFF */ | 5362 | 0x83, 0x74, 0x83, 0x75, 0x83, 0x76, 0x83, 0x77, /* 0xFC-0xFF */ |
5363 | }; | 5363 | }; |
5364 | 5364 | ||
5365 | static unsigned char u2c_51[512] = { | 5365 | static const unsigned char u2c_51[512] = { |
5366 | 0x83, 0x78, 0x83, 0x79, 0x83, 0x7A, 0x83, 0x7B, /* 0x00-0x03 */ | 5366 | 0x83, 0x78, 0x83, 0x79, 0x83, 0x7A, 0x83, 0x7B, /* 0x00-0x03 */ |
5367 | 0x83, 0x7C, 0x83, 0x7D, 0xD9, 0xD3, 0xD9, 0xD8, /* 0x04-0x07 */ | 5367 | 0x83, 0x7C, 0x83, 0x7D, 0xD9, 0xD3, 0xD9, 0xD8, /* 0x04-0x07 */ |
5368 | 0x83, 0x7E, 0x83, 0x80, 0x83, 0x81, 0xD9, 0xD9, /* 0x08-0x0B */ | 5368 | 0x83, 0x7E, 0x83, 0x80, 0x83, 0x81, 0xD9, 0xD9, /* 0x08-0x0B */ |
@@ -5430,7 +5430,7 @@ static unsigned char u2c_51[512] = { | |||
5430 | 0xDB, 0xCA, 0xBA, 0xAF, 0x84, 0x54, 0xD4, 0xE4, /* 0xFC-0xFF */ | 5430 | 0xDB, 0xCA, 0xBA, 0xAF, 0x84, 0x54, 0xD4, 0xE4, /* 0xFC-0xFF */ |
5431 | }; | 5431 | }; |
5432 | 5432 | ||
5433 | static unsigned char u2c_52[512] = { | 5433 | static const unsigned char u2c_52[512] = { |
5434 | 0xB5, 0xB6, 0xB5, 0xF3, 0xD8, 0xD6, 0xC8, 0xD0, /* 0x00-0x03 */ | 5434 | 0xB5, 0xB6, 0xB5, 0xF3, 0xD8, 0xD6, 0xC8, 0xD0, /* 0x00-0x03 */ |
5435 | 0x84, 0x55, 0x84, 0x56, 0xB7, 0xD6, 0xC7, 0xD0, /* 0x04-0x07 */ | 5435 | 0x84, 0x55, 0x84, 0x56, 0xB7, 0xD6, 0xC7, 0xD0, /* 0x04-0x07 */ |
5436 | 0xD8, 0xD7, 0x84, 0x57, 0xBF, 0xAF, 0x84, 0x58, /* 0x08-0x0B */ | 5436 | 0xD8, 0xD7, 0x84, 0x57, 0xBF, 0xAF, 0x84, 0x58, /* 0x08-0x0B */ |
@@ -5498,7 +5498,7 @@ static unsigned char u2c_52[512] = { | |||
5498 | 0x84, 0xF3, 0x84, 0xF4, 0xB9, 0xB4, 0xCE, 0xF0, /* 0xFC-0xFF */ | 5498 | 0x84, 0xF3, 0x84, 0xF4, 0xB9, 0xB4, 0xCE, 0xF0, /* 0xFC-0xFF */ |
5499 | }; | 5499 | }; |
5500 | 5500 | ||
5501 | static unsigned char u2c_53[512] = { | 5501 | static const unsigned char u2c_53[512] = { |
5502 | 0xD4, 0xC8, 0x84, 0xF5, 0x84, 0xF6, 0x84, 0xF7, /* 0x00-0x03 */ | 5502 | 0xD4, 0xC8, 0x84, 0xF5, 0x84, 0xF6, 0x84, 0xF7, /* 0x00-0x03 */ |
5503 | 0x84, 0xF8, 0xB0, 0xFC, 0xB4, 0xD2, 0x84, 0xF9, /* 0x04-0x07 */ | 5503 | 0x84, 0xF8, 0xB0, 0xFC, 0xB4, 0xD2, 0x84, 0xF9, /* 0x04-0x07 */ |
5504 | 0xD0, 0xD9, 0x84, 0xFA, 0x84, 0xFB, 0x84, 0xFC, /* 0x08-0x0B */ | 5504 | 0xD0, 0xD9, 0x84, 0xFA, 0x84, 0xFB, 0x84, 0xFC, /* 0x08-0x0B */ |
@@ -5566,7 +5566,7 @@ static unsigned char u2c_53[512] = { | |||
5566 | 0xB5, 0xF0, 0xDF, 0xB4, 0x85, 0xB6, 0x85, 0xB7, /* 0xFC-0xFF */ | 5566 | 0xB5, 0xF0, 0xDF, 0xB4, 0x85, 0xB6, 0x85, 0xB7, /* 0xFC-0xFF */ |
5567 | }; | 5567 | }; |
5568 | 5568 | ||
5569 | static unsigned char u2c_54[512] = { | 5569 | static const unsigned char u2c_54[512] = { |
5570 | 0x85, 0xB8, 0xD3, 0xF5, 0x85, 0xB9, 0xB3, 0xD4, /* 0x00-0x03 */ | 5570 | 0x85, 0xB8, 0xD3, 0xF5, 0x85, 0xB9, 0xB3, 0xD4, /* 0x00-0x03 */ |
5571 | 0xB8, 0xF7, 0x85, 0xBA, 0xDF, 0xBA, 0x85, 0xBB, /* 0x04-0x07 */ | 5571 | 0xB8, 0xF7, 0x85, 0xBA, 0xDF, 0xBA, 0x85, 0xBB, /* 0x04-0x07 */ |
5572 | 0xBA, 0xCF, 0xBC, 0xAA, 0xB5, 0xF5, 0x85, 0xBC, /* 0x08-0x0B */ | 5572 | 0xBA, 0xCF, 0xBC, 0xAA, 0xB5, 0xF5, 0x85, 0xBC, /* 0x08-0x0B */ |
@@ -5634,7 +5634,7 @@ static unsigned char u2c_54[512] = { | |||
5634 | 0xBA, 0xDF, 0xDF, 0xEC, 0x86, 0x64, 0xDB, 0xC1, /* 0xFC-0xFF */ | 5634 | 0xBA, 0xDF, 0xDF, 0xEC, 0x86, 0x64, 0xDB, 0xC1, /* 0xFC-0xFF */ |
5635 | }; | 5635 | }; |
5636 | 5636 | ||
5637 | static unsigned char u2c_55[512] = { | 5637 | static const unsigned char u2c_55[512] = { |
5638 | 0x86, 0x65, 0xD1, 0xE4, 0x86, 0x66, 0x86, 0x67, /* 0x00-0x03 */ | 5638 | 0x86, 0x65, 0xD1, 0xE4, 0x86, 0x66, 0x86, 0x67, /* 0x00-0x03 */ |
5639 | 0x86, 0x68, 0x86, 0x69, 0xCB, 0xF4, 0xB4, 0xBD, /* 0x04-0x07 */ | 5639 | 0x86, 0x68, 0x86, 0x69, 0xCB, 0xF4, 0xB4, 0xBD, /* 0x04-0x07 */ |
5640 | 0x86, 0x6A, 0xB0, 0xA6, 0x86, 0x6B, 0x86, 0x6C, /* 0x08-0x0B */ | 5640 | 0x86, 0x6A, 0xB0, 0xA6, 0x86, 0x6B, 0x86, 0x6C, /* 0x08-0x0B */ |
@@ -5702,7 +5702,7 @@ static unsigned char u2c_55[512] = { | |||
5702 | 0x86, 0xF9, 0xCB, 0xD4, 0xE0, 0xD5, 0x86, 0xFA, /* 0xFC-0xFF */ | 5702 | 0x86, 0xF9, 0xCB, 0xD4, 0xE0, 0xD5, 0x86, 0xFA, /* 0xFC-0xFF */ |
5703 | }; | 5703 | }; |
5704 | 5704 | ||
5705 | static unsigned char u2c_56[512] = { | 5705 | static const unsigned char u2c_56[512] = { |
5706 | 0xE0, 0xD6, 0xE0, 0xD2, 0x86, 0xFB, 0x86, 0xFC, /* 0x00-0x03 */ | 5706 | 0xE0, 0xD6, 0xE0, 0xD2, 0x86, 0xFB, 0x86, 0xFC, /* 0x00-0x03 */ |
5707 | 0x86, 0xFD, 0x86, 0xFE, 0x87, 0x40, 0x87, 0x41, /* 0x04-0x07 */ | 5707 | 0x86, 0xFD, 0x86, 0xFE, 0x87, 0x40, 0x87, 0x41, /* 0x04-0x07 */ |
5708 | 0xE0, 0xD0, 0xBC, 0xCE, 0x87, 0x42, 0x87, 0x43, /* 0x08-0x0B */ | 5708 | 0xE0, 0xD0, 0xBC, 0xCE, 0x87, 0x42, 0x87, 0x43, /* 0x08-0x0B */ |
@@ -5770,7 +5770,7 @@ static unsigned char u2c_56[512] = { | |||
5770 | 0x87, 0xF2, 0xB9, 0xFA, 0xCD, 0xBC, 0xE0, 0xF3, /* 0xFC-0xFF */ | 5770 | 0x87, 0xF2, 0xB9, 0xFA, 0xCD, 0xBC, 0xE0, 0xF3, /* 0xFC-0xFF */ |
5771 | }; | 5771 | }; |
5772 | 5772 | ||
5773 | static unsigned char u2c_57[512] = { | 5773 | static const unsigned char u2c_57[512] = { |
5774 | 0x87, 0xF3, 0x87, 0xF4, 0x87, 0xF5, 0xC6, 0xD4, /* 0x00-0x03 */ | 5774 | 0x87, 0xF3, 0x87, 0xF4, 0x87, 0xF5, 0xC6, 0xD4, /* 0x00-0x03 */ |
5775 | 0xE0, 0xF4, 0x87, 0xF6, 0xD4, 0xB2, 0x87, 0xF7, /* 0x04-0x07 */ | 5775 | 0xE0, 0xF4, 0x87, 0xF6, 0xD4, 0xB2, 0x87, 0xF7, /* 0x04-0x07 */ |
5776 | 0xC8, 0xA6, 0xE0, 0xF6, 0xE0, 0xF5, 0x87, 0xF8, /* 0x08-0x0B */ | 5776 | 0xC8, 0xA6, 0xE0, 0xF6, 0xE0, 0xF5, 0x87, 0xF8, /* 0x08-0x0B */ |
@@ -5838,7 +5838,7 @@ static unsigned char u2c_57[512] = { | |||
5838 | 0x88, 0xCE, 0xDC, 0xA3, 0x88, 0xCF, 0x88, 0xD0, /* 0xFC-0xFF */ | 5838 | 0x88, 0xCE, 0xDC, 0xA3, 0x88, 0xCF, 0x88, 0xD0, /* 0xFC-0xFF */ |
5839 | }; | 5839 | }; |
5840 | 5840 | ||
5841 | static unsigned char u2c_58[512] = { | 5841 | static const unsigned char u2c_58[512] = { |
5842 | 0xDC, 0xA5, 0x88, 0xD1, 0xCC, 0xC3, 0x88, 0xD2, /* 0x00-0x03 */ | 5842 | 0xDC, 0xA5, 0x88, 0xD1, 0xCC, 0xC3, 0x88, 0xD2, /* 0x00-0x03 */ |
5843 | 0x88, 0xD3, 0x88, 0xD4, 0xB6, 0xD1, 0xDD, 0xC0, /* 0x04-0x07 */ | 5843 | 0x88, 0xD3, 0x88, 0xD4, 0xB6, 0xD1, 0xDD, 0xC0, /* 0x04-0x07 */ |
5844 | 0x88, 0xD5, 0x88, 0xD6, 0x88, 0xD7, 0xDC, 0xA1, /* 0x08-0x0B */ | 5844 | 0x88, 0xD5, 0x88, 0xD6, 0x88, 0xD7, 0xDC, 0xA1, /* 0x08-0x0B */ |
@@ -5906,7 +5906,7 @@ static unsigned char u2c_58[512] = { | |||
5906 | 0x89, 0xDA, 0x89, 0xDB, 0x89, 0xDC, 0x89, 0xDD, /* 0xFC-0xFF */ | 5906 | 0x89, 0xDA, 0x89, 0xDB, 0x89, 0xDC, 0x89, 0xDD, /* 0xFC-0xFF */ |
5907 | }; | 5907 | }; |
5908 | 5908 | ||
5909 | static unsigned char u2c_59[512] = { | 5909 | static const unsigned char u2c_59[512] = { |
5910 | 0x89, 0xDE, 0x89, 0xDF, 0xE2, 0xBA, 0x89, 0xE0, /* 0x00-0x03 */ | 5910 | 0x89, 0xDE, 0x89, 0xDF, 0xE2, 0xBA, 0x89, 0xE0, /* 0x00-0x03 */ |
5911 | 0xB4, 0xA6, 0x89, 0xE1, 0x89, 0xE2, 0xB1, 0xB8, /* 0x04-0x07 */ | 5911 | 0xB4, 0xA6, 0x89, 0xE1, 0x89, 0xE2, 0xB1, 0xB8, /* 0x04-0x07 */ |
5912 | 0x89, 0xE3, 0x89, 0xE4, 0x89, 0xE5, 0x89, 0xE6, /* 0x08-0x0B */ | 5912 | 0x89, 0xE3, 0x89, 0xE4, 0x89, 0xE5, 0x89, 0xE6, /* 0x08-0x0B */ |
@@ -5974,7 +5974,7 @@ static unsigned char u2c_59[512] = { | |||
5974 | 0x8A, 0xB8, 0x8A, 0xB9, 0x8A, 0xBA, 0xD7, 0xCB, /* 0xFC-0xFF */ | 5974 | 0x8A, 0xB8, 0x8A, 0xB9, 0x8A, 0xBA, 0xD7, 0xCB, /* 0xFC-0xFF */ |
5975 | }; | 5975 | }; |
5976 | 5976 | ||
5977 | static unsigned char u2c_5A[512] = { | 5977 | static const unsigned char u2c_5A[512] = { |
5978 | 0x8A, 0xBB, 0xCD, 0xFE, 0x8A, 0xBC, 0xCD, 0xDE, /* 0x00-0x03 */ | 5978 | 0x8A, 0xBB, 0xCD, 0xFE, 0x8A, 0xBC, 0xCD, 0xDE, /* 0x00-0x03 */ |
5979 | 0xC2, 0xA6, 0xE6, 0xAB, 0xE6, 0xAC, 0xBD, 0xBF, /* 0x04-0x07 */ | 5979 | 0xC2, 0xA6, 0xE6, 0xAB, 0xE6, 0xAC, 0xBD, 0xBF, /* 0x04-0x07 */ |
5980 | 0xE6, 0xAE, 0xE6, 0xB3, 0x8A, 0xBD, 0x8A, 0xBE, /* 0x08-0x0B */ | 5980 | 0xE6, 0xAE, 0xE6, 0xB3, 0x8A, 0xBD, 0x8A, 0xBE, /* 0x08-0x0B */ |
@@ -6042,7 +6042,7 @@ static unsigned char u2c_5A[512] = { | |||
6042 | 0x8B, 0xBA, 0x8B, 0xBB, 0x8B, 0xBC, 0x8B, 0xBD, /* 0xFC-0xFF */ | 6042 | 0x8B, 0xBA, 0x8B, 0xBB, 0x8B, 0xBC, 0x8B, 0xBD, /* 0xFC-0xFF */ |
6043 | }; | 6043 | }; |
6044 | 6044 | ||
6045 | static unsigned char u2c_5B[512] = { | 6045 | static const unsigned char u2c_5B[512] = { |
6046 | 0x8B, 0xBE, 0x8B, 0xBF, 0x8B, 0xC0, 0x8B, 0xC1, /* 0x00-0x03 */ | 6046 | 0x8B, 0xBE, 0x8B, 0xBF, 0x8B, 0xC0, 0x8B, 0xC1, /* 0x00-0x03 */ |
6047 | 0x8B, 0xC2, 0x8B, 0xC3, 0x8B, 0xC4, 0x8B, 0xC5, /* 0x04-0x07 */ | 6047 | 0x8B, 0xC2, 0x8B, 0xC3, 0x8B, 0xC4, 0x8B, 0xC5, /* 0x04-0x07 */ |
6048 | 0x8B, 0xC6, 0xE6, 0xD2, 0x8B, 0xC7, 0x8B, 0xC8, /* 0x08-0x0B */ | 6048 | 0x8B, 0xC6, 0xE6, 0xD2, 0x8B, 0xC7, 0x8B, 0xC8, /* 0x08-0x0B */ |
@@ -6110,7 +6110,7 @@ static unsigned char u2c_5B[512] = { | |||
6110 | 0xB5, 0xBC, 0x8C, 0x9C, 0x8C, 0x9D, 0xCA, 0xD9, /* 0xFC-0xFF */ | 6110 | 0xB5, 0xBC, 0x8C, 0x9C, 0x8C, 0x9D, 0xCA, 0xD9, /* 0xFC-0xFF */ |
6111 | }; | 6111 | }; |
6112 | 6112 | ||
6113 | static unsigned char u2c_5C[512] = { | 6113 | static const unsigned char u2c_5C[512] = { |
6114 | 0x8C, 0x9E, 0xB7, 0xE2, 0x8C, 0x9F, 0x8C, 0xA0, /* 0x00-0x03 */ | 6114 | 0x8C, 0x9E, 0xB7, 0xE2, 0x8C, 0x9F, 0x8C, 0xA0, /* 0x00-0x03 */ |
6115 | 0xC9, 0xE4, 0x8C, 0xA1, 0xBD, 0xAB, 0x8C, 0xA2, /* 0x04-0x07 */ | 6115 | 0xC9, 0xE4, 0x8C, 0xA1, 0xBD, 0xAB, 0x8C, 0xA2, /* 0x04-0x07 */ |
6116 | 0x8C, 0xA3, 0xCE, 0xBE, 0xD7, 0xF0, 0x8C, 0xA4, /* 0x08-0x0B */ | 6116 | 0x8C, 0xA3, 0xCE, 0xBE, 0xD7, 0xF0, 0x8C, 0xA4, /* 0x08-0x0B */ |
@@ -6178,7 +6178,7 @@ static unsigned char u2c_5C[512] = { | |||
6178 | 0x8D, 0x7A, 0x8D, 0x7B, 0x8D, 0x7C, 0x8D, 0x7D, /* 0xFC-0xFF */ | 6178 | 0x8D, 0x7A, 0x8D, 0x7B, 0x8D, 0x7C, 0x8D, 0x7D, /* 0xFC-0xFF */ |
6179 | }; | 6179 | }; |
6180 | 6180 | ||
6181 | static unsigned char u2c_5D[512] = { | 6181 | static const unsigned char u2c_5D[512] = { |
6182 | 0x8D, 0x7E, 0x8D, 0x80, 0xE1, 0xC0, 0xE1, 0xC1, /* 0x00-0x03 */ | 6182 | 0x8D, 0x7E, 0x8D, 0x80, 0xE1, 0xC0, 0xE1, 0xC1, /* 0x00-0x03 */ |
6183 | 0x8D, 0x81, 0x8D, 0x82, 0xE1, 0xC7, 0xB3, 0xE7, /* 0x04-0x07 */ | 6183 | 0x8D, 0x81, 0x8D, 0x82, 0xE1, 0xC7, 0xB3, 0xE7, /* 0x04-0x07 */ |
6184 | 0x8D, 0x83, 0x8D, 0x84, 0x8D, 0x85, 0x8D, 0x86, /* 0x08-0x0B */ | 6184 | 0x8D, 0x83, 0x8D, 0x84, 0x8D, 0x85, 0x8D, 0x86, /* 0x08-0x0B */ |
@@ -6246,7 +6246,7 @@ static unsigned char u2c_5D[512] = { | |||
6246 | 0x8E, 0x87, 0xD9, 0xE3, 0xBD, 0xED, 0x8E, 0x88, /* 0xFC-0xFF */ | 6246 | 0x8E, 0x87, 0xD9, 0xE3, 0xBD, 0xED, 0x8E, 0x88, /* 0xFC-0xFF */ |
6247 | }; | 6247 | }; |
6248 | 6248 | ||
6249 | static unsigned char u2c_5E[512] = { | 6249 | static const unsigned char u2c_5E[512] = { |
6250 | 0x8E, 0x89, 0xB1, 0xD2, 0xCA, 0xD0, 0xB2, 0xBC, /* 0x00-0x03 */ | 6250 | 0x8E, 0x89, 0xB1, 0xD2, 0xCA, 0xD0, 0xB2, 0xBC, /* 0x00-0x03 */ |
6251 | 0x8E, 0x8A, 0xCB, 0xA7, 0xB7, 0xAB, 0x8E, 0x8B, /* 0x04-0x07 */ | 6251 | 0x8E, 0x8A, 0xCB, 0xA7, 0xB7, 0xAB, 0x8E, 0x8B, /* 0x04-0x07 */ |
6252 | 0xCA, 0xA6, 0x8E, 0x8C, 0x8E, 0x8D, 0x8E, 0x8E, /* 0x08-0x0B */ | 6252 | 0xCA, 0xA6, 0x8E, 0x8C, 0x8E, 0x8D, 0x8E, 0x8E, /* 0x08-0x0B */ |
@@ -6314,7 +6314,7 @@ static unsigned char u2c_5E[512] = { | |||
6314 | 0x8F, 0x69, 0x8F, 0x6A, 0xDE, 0xC3, 0xD8, 0xA5, /* 0xFC-0xFF */ | 6314 | 0x8F, 0x69, 0x8F, 0x6A, 0xDE, 0xC3, 0xD8, 0xA5, /* 0xFC-0xFF */ |
6315 | }; | 6315 | }; |
6316 | 6316 | ||
6317 | static unsigned char u2c_5F[512] = { | 6317 | static const unsigned char u2c_5F[512] = { |
6318 | 0xBF, 0xAA, 0xDB, 0xCD, 0xD2, 0xEC, 0xC6, 0xFA, /* 0x00-0x03 */ | 6318 | 0xBF, 0xAA, 0xDB, 0xCD, 0xD2, 0xEC, 0xC6, 0xFA, /* 0x00-0x03 */ |
6319 | 0xC5, 0xAA, 0x8F, 0x6B, 0x8F, 0x6C, 0x8F, 0x6D, /* 0x04-0x07 */ | 6319 | 0xC5, 0xAA, 0x8F, 0x6B, 0x8F, 0x6C, 0x8F, 0x6D, /* 0x04-0x07 */ |
6320 | 0xDE, 0xC4, 0x8F, 0x6E, 0xB1, 0xD7, 0xDF, 0xAE, /* 0x08-0x0B */ | 6320 | 0xDE, 0xC4, 0x8F, 0x6E, 0xB1, 0xD7, 0xDF, 0xAE, /* 0x08-0x0B */ |
@@ -6382,7 +6382,7 @@ static unsigned char u2c_5F[512] = { | |||
6382 | 0x8F, 0xFD, 0xBA, 0xF6, 0xE2, 0xE9, 0xB7, 0xDE, /* 0xFC-0xFF */ | 6382 | 0x8F, 0xFD, 0xBA, 0xF6, 0xE2, 0xE9, 0xB7, 0xDE, /* 0xFC-0xFF */ |
6383 | }; | 6383 | }; |
6384 | 6384 | ||
6385 | static unsigned char u2c_60[512] = { | 6385 | static const unsigned char u2c_60[512] = { |
6386 | 0xBB, 0xB3, 0xCC, 0xAC, 0xCB, 0xCB, 0xE2, 0xE4, /* 0x00-0x03 */ | 6386 | 0xBB, 0xB3, 0xCC, 0xAC, 0xCB, 0xCB, 0xE2, 0xE4, /* 0x00-0x03 */ |
6387 | 0xE2, 0xE6, 0xE2, 0xEA, 0xE2, 0xEB, 0x8F, 0xFE, /* 0x04-0x07 */ | 6387 | 0xE2, 0xE6, 0xE2, 0xEA, 0xE2, 0xEB, 0x8F, 0xFE, /* 0x04-0x07 */ |
6388 | 0x90, 0x40, 0x90, 0x41, 0xE2, 0xF7, 0x90, 0x42, /* 0x08-0x0B */ | 6388 | 0x90, 0x40, 0x90, 0x41, 0xE2, 0xF7, 0x90, 0x42, /* 0x08-0x0B */ |
@@ -6450,7 +6450,7 @@ static unsigned char u2c_60[512] = { | |||
6450 | 0x90, 0xC6, 0x90, 0xC7, 0x90, 0xC8, 0x90, 0xC9, /* 0xFC-0xFF */ | 6450 | 0x90, 0xC6, 0x90, 0xC7, 0x90, 0xC8, 0x90, 0xC9, /* 0xFC-0xFF */ |
6451 | }; | 6451 | }; |
6452 | 6452 | ||
6453 | static unsigned char u2c_61[512] = { | 6453 | static const unsigned char u2c_61[512] = { |
6454 | 0xE3, 0xB8, 0xB3, 0xEE, 0x90, 0xCA, 0x90, 0xCB, /* 0x00-0x03 */ | 6454 | 0xE3, 0xB8, 0xB3, 0xEE, 0x90, 0xCA, 0x90, 0xCB, /* 0x00-0x03 */ |
6455 | 0x90, 0xCC, 0x90, 0xCD, 0xED, 0xA9, 0x90, 0xCE, /* 0x04-0x07 */ | 6455 | 0x90, 0xCC, 0x90, 0xCD, 0xED, 0xA9, 0x90, 0xCE, /* 0x04-0x07 */ |
6456 | 0xD3, 0xFA, 0xD3, 0xE4, 0x90, 0xCF, 0x90, 0xD0, /* 0x08-0x0B */ | 6456 | 0xD3, 0xFA, 0xD3, 0xE4, 0x90, 0xCF, 0x90, 0xD0, /* 0x08-0x0B */ |
@@ -6518,7 +6518,7 @@ static unsigned char u2c_61[512] = { | |||
6518 | 0x91, 0xD6, 0x91, 0xD7, 0x91, 0xD8, 0xDC, 0xB2, /* 0xFC-0xFF */ | 6518 | 0x91, 0xD6, 0x91, 0xD7, 0x91, 0xD8, 0xDC, 0xB2, /* 0xFC-0xFF */ |
6519 | }; | 6519 | }; |
6520 | 6520 | ||
6521 | static unsigned char u2c_62[512] = { | 6521 | static const unsigned char u2c_62[512] = { |
6522 | 0x91, 0xD9, 0x91, 0xDA, 0x91, 0xDB, 0x91, 0xDC, /* 0x00-0x03 */ | 6522 | 0x91, 0xD9, 0x91, 0xDA, 0x91, 0xDB, 0x91, 0xDC, /* 0x00-0x03 */ |
6523 | 0x91, 0xDD, 0x91, 0xDE, 0xED, 0xB0, 0x91, 0xDF, /* 0x04-0x07 */ | 6523 | 0x91, 0xDD, 0x91, 0xDE, 0xED, 0xB0, 0x91, 0xDF, /* 0x04-0x07 */ |
6524 | 0xB8, 0xEA, 0x91, 0xE0, 0xCE, 0xEC, 0xEA, 0xA7, /* 0x08-0x0B */ | 6524 | 0xB8, 0xEA, 0x91, 0xE0, 0xCE, 0xEC, 0xEA, 0xA7, /* 0x08-0x0B */ |
@@ -6586,7 +6586,7 @@ static unsigned char u2c_62[512] = { | |||
6586 | 0xC6, 0xB4, 0xD7, 0xA7, 0xCA, 0xB0, 0xC4, 0xC3, /* 0xFC-0xFF */ | 6586 | 0xC6, 0xB4, 0xD7, 0xA7, 0xCA, 0xB0, 0xC4, 0xC3, /* 0xFC-0xFF */ |
6587 | }; | 6587 | }; |
6588 | 6588 | ||
6589 | static unsigned char u2c_63[512] = { | 6589 | static const unsigned char u2c_63[512] = { |
6590 | 0x92, 0x93, 0xB3, 0xD6, 0xB9, 0xD2, 0x92, 0x94, /* 0x00-0x03 */ | 6590 | 0x92, 0x93, 0xB3, 0xD6, 0xB9, 0xD2, 0x92, 0x94, /* 0x00-0x03 */ |
6591 | 0x92, 0x95, 0x92, 0x96, 0x92, 0x97, 0xD6, 0xB8, /* 0x04-0x07 */ | 6591 | 0x92, 0x95, 0x92, 0x96, 0x92, 0x97, 0xD6, 0xB8, /* 0x04-0x07 */ |
6592 | 0xEA, 0xFC, 0xB0, 0xB4, 0x92, 0x98, 0x92, 0x99, /* 0x08-0x0B */ | 6592 | 0xEA, 0xFC, 0xB0, 0xB4, 0x92, 0x98, 0x92, 0x99, /* 0x08-0x0B */ |
@@ -6654,7 +6654,7 @@ static unsigned char u2c_63[512] = { | |||
6654 | 0x93, 0x67, 0xC0, 0xBF, 0x93, 0x68, 0xDE, 0xEC, /* 0xFC-0xFF */ | 6654 | 0x93, 0x67, 0xC0, 0xBF, 0x93, 0x68, 0xDE, 0xEC, /* 0xFC-0xFF */ |
6655 | }; | 6655 | }; |
6656 | 6656 | ||
6657 | static unsigned char u2c_64[512] = { | 6657 | static const unsigned char u2c_64[512] = { |
6658 | 0xB2, 0xF3, 0xB8, 0xE9, 0xC2, 0xA7, 0x93, 0x69, /* 0x00-0x03 */ | 6658 | 0xB2, 0xF3, 0xB8, 0xE9, 0xC2, 0xA7, 0x93, 0x69, /* 0x00-0x03 */ |
6659 | 0x93, 0x6A, 0xBD, 0xC1, 0x93, 0x6B, 0x93, 0x6C, /* 0x04-0x07 */ | 6659 | 0x93, 0x6A, 0xBD, 0xC1, 0x93, 0x6B, 0x93, 0x6C, /* 0x04-0x07 */ |
6660 | 0x93, 0x6D, 0x93, 0x6E, 0x93, 0x6F, 0xDE, 0xF5, /* 0x08-0x0B */ | 6660 | 0x93, 0x6D, 0x93, 0x6E, 0x93, 0x6F, 0xDE, 0xF5, /* 0x08-0x0B */ |
@@ -6722,7 +6722,7 @@ static unsigned char u2c_64[512] = { | |||
6722 | 0x94, 0x5D, 0x94, 0x5E, 0x94, 0x5F, 0x94, 0x60, /* 0xFC-0xFF */ | 6722 | 0x94, 0x5D, 0x94, 0x5E, 0x94, 0x5F, 0x94, 0x60, /* 0xFC-0xFF */ |
6723 | }; | 6723 | }; |
6724 | 6724 | ||
6725 | static unsigned char u2c_65[512] = { | 6725 | static const unsigned char u2c_65[512] = { |
6726 | 0xC5, 0xCA, 0x94, 0x61, 0x94, 0x62, 0x94, 0x63, /* 0x00-0x03 */ | 6726 | 0xC5, 0xCA, 0x94, 0x61, 0x94, 0x62, 0x94, 0x63, /* 0x00-0x03 */ |
6727 | 0x94, 0x64, 0x94, 0x65, 0x94, 0x66, 0x94, 0x67, /* 0x04-0x07 */ | 6727 | 0x94, 0x64, 0x94, 0x65, 0x94, 0x66, 0x94, 0x67, /* 0x04-0x07 */ |
6728 | 0x94, 0x68, 0xDF, 0xAB, 0x94, 0x69, 0x94, 0x6A, /* 0x08-0x0B */ | 6728 | 0x94, 0x68, 0xDF, 0xAB, 0x94, 0x69, 0x94, 0x6A, /* 0x08-0x0B */ |
@@ -6790,7 +6790,7 @@ static unsigned char u2c_65[512] = { | |||
6790 | 0x95, 0x47, 0x95, 0x48, 0x95, 0x49, 0x95, 0x4A, /* 0xFC-0xFF */ | 6790 | 0x95, 0x47, 0x95, 0x48, 0x95, 0x49, 0x95, 0x4A, /* 0xFC-0xFF */ |
6791 | }; | 6791 | }; |
6792 | 6792 | ||
6793 | static unsigned char u2c_66[512] = { | 6793 | static const unsigned char u2c_66[512] = { |
6794 | 0xEA, 0xC0, 0x95, 0x4B, 0xB0, 0xBA, 0xEA, 0xBE, /* 0x00-0x03 */ | 6794 | 0xEA, 0xC0, 0x95, 0x4B, 0xB0, 0xBA, 0xEA, 0xBE, /* 0x00-0x03 */ |
6795 | 0x95, 0x4C, 0x95, 0x4D, 0xC0, 0xA5, 0x95, 0x4E, /* 0x04-0x07 */ | 6795 | 0x95, 0x4C, 0x95, 0x4D, 0xC0, 0xA5, 0x95, 0x4E, /* 0x04-0x07 */ |
6796 | 0x95, 0x4F, 0x95, 0x50, 0xEA, 0xBB, 0x95, 0x51, /* 0x08-0x0B */ | 6796 | 0x95, 0x4F, 0x95, 0x50, 0xEA, 0xBB, 0x95, 0x51, /* 0x08-0x0B */ |
@@ -6858,7 +6858,7 @@ static unsigned char u2c_66[512] = { | |||
6858 | 0xC2, 0xFC, 0x95, 0xFB, 0xD4, 0xF8, 0xCC, 0xE6, /* 0xFC-0xFF */ | 6858 | 0xC2, 0xFC, 0x95, 0xFB, 0xD4, 0xF8, 0xCC, 0xE6, /* 0xFC-0xFF */ |
6859 | }; | 6859 | }; |
6860 | 6860 | ||
6861 | static unsigned char u2c_67[512] = { | 6861 | static const unsigned char u2c_67[512] = { |
6862 | 0xD7, 0xEE, 0x95, 0xFC, 0x95, 0xFD, 0x95, 0xFE, /* 0x00-0x03 */ | 6862 | 0xD7, 0xEE, 0x95, 0xFC, 0x95, 0xFD, 0x95, 0xFE, /* 0x00-0x03 */ |
6863 | 0x96, 0x40, 0x96, 0x41, 0x96, 0x42, 0x96, 0x43, /* 0x04-0x07 */ | 6863 | 0x96, 0x40, 0x96, 0x41, 0x96, 0x42, 0x96, 0x43, /* 0x04-0x07 */ |
6864 | 0xD4, 0xC2, 0xD3, 0xD0, 0xEB, 0xC3, 0xC5, 0xF3, /* 0x08-0x0B */ | 6864 | 0xD4, 0xC2, 0xD3, 0xD0, 0xEB, 0xC3, 0xC5, 0xF3, /* 0x08-0x0B */ |
@@ -6926,7 +6926,7 @@ static unsigned char u2c_67[512] = { | |||
6926 | 0x96, 0xCC, 0xE8, 0xDF, 0x96, 0xCD, 0xCA, 0xC1, /* 0xFC-0xFF */ | 6926 | 0x96, 0xCC, 0xE8, 0xDF, 0x96, 0xCD, 0xCA, 0xC1, /* 0xFC-0xFF */ |
6927 | }; | 6927 | }; |
6928 | 6928 | ||
6929 | static unsigned char u2c_68[512] = { | 6929 | static const unsigned char u2c_68[512] = { |
6930 | 0xE8, 0xD9, 0x96, 0xCE, 0x96, 0xCF, 0x96, 0xD0, /* 0x00-0x03 */ | 6930 | 0xE8, 0xD9, 0x96, 0xCE, 0x96, 0xCF, 0x96, 0xD0, /* 0x00-0x03 */ |
6931 | 0x96, 0xD1, 0xD5, 0xA4, 0x96, 0xD2, 0xB1, 0xEA, /* 0x04-0x07 */ | 6931 | 0x96, 0xD1, 0xD5, 0xA4, 0x96, 0xD2, 0xB1, 0xEA, /* 0x04-0x07 */ |
6932 | 0xD5, 0xBB, 0xE8, 0xCE, 0xE8, 0xD0, 0xB6, 0xB0, /* 0x08-0x0B */ | 6932 | 0xD5, 0xBB, 0xE8, 0xCE, 0xE8, 0xD0, 0xB6, 0xB0, /* 0x08-0x0B */ |
@@ -6994,7 +6994,7 @@ static unsigned char u2c_68[512] = { | |||
6994 | 0xE8, 0xFB, 0x97, 0xB2, 0x97, 0xB3, 0x97, 0xB4, /* 0xFC-0xFF */ | 6994 | 0xE8, 0xFB, 0x97, 0xB2, 0x97, 0xB3, 0x97, 0xB4, /* 0xFC-0xFF */ |
6995 | }; | 6995 | }; |
6996 | 6996 | ||
6997 | static unsigned char u2c_69[512] = { | 6997 | static const unsigned char u2c_69[512] = { |
6998 | 0x97, 0xB5, 0xE9, 0xA4, 0x97, 0xB6, 0x97, 0xB7, /* 0x00-0x03 */ | 6998 | 0x97, 0xB5, 0xE9, 0xA4, 0x97, 0xB6, 0x97, 0xB7, /* 0x00-0x03 */ |
6999 | 0x97, 0xB8, 0xD2, 0xCE, 0x97, 0xB9, 0x97, 0xBA, /* 0x04-0x07 */ | 6999 | 0x97, 0xB8, 0xD2, 0xCE, 0x97, 0xB9, 0x97, 0xBA, /* 0x04-0x07 */ |
7000 | 0x97, 0xBB, 0x97, 0xBC, 0x97, 0xBD, 0xE9, 0xA3, /* 0x08-0x0B */ | 7000 | 0x97, 0xBB, 0x97, 0xBC, 0x97, 0xBD, 0xE9, 0xA3, /* 0x08-0x0B */ |
@@ -7062,7 +7062,7 @@ static unsigned char u2c_69[512] = { | |||
7062 | 0x98, 0xB3, 0xB2, 0xDB, 0x98, 0xB4, 0xE9, 0xC8, /* 0xFC-0xFF */ | 7062 | 0x98, 0xB3, 0xB2, 0xDB, 0x98, 0xB4, 0xE9, 0xC8, /* 0xFC-0xFF */ |
7063 | }; | 7063 | }; |
7064 | 7064 | ||
7065 | static unsigned char u2c_6A[512] = { | 7065 | static const unsigned char u2c_6A[512] = { |
7066 | 0x98, 0xB5, 0x98, 0xB6, 0x98, 0xB7, 0x98, 0xB8, /* 0x00-0x03 */ | 7066 | 0x98, 0xB5, 0x98, 0xB6, 0x98, 0xB7, 0x98, 0xB8, /* 0x00-0x03 */ |
7067 | 0x98, 0xB9, 0x98, 0xBA, 0x98, 0xBB, 0x98, 0xBC, /* 0x04-0x07 */ | 7067 | 0x98, 0xB9, 0x98, 0xBA, 0x98, 0xBB, 0x98, 0xBC, /* 0x04-0x07 */ |
7068 | 0x98, 0xBD, 0x98, 0xBE, 0xB7, 0xAE, 0x98, 0xBF, /* 0x08-0x0B */ | 7068 | 0x98, 0xBD, 0x98, 0xBE, 0xB7, 0xAE, 0x98, 0xBF, /* 0x08-0x0B */ |
@@ -7130,7 +7130,7 @@ static unsigned char u2c_6A[512] = { | |||
7130 | 0x99, 0xD2, 0x99, 0xD3, 0x99, 0xD4, 0x99, 0xD5, /* 0xFC-0xFF */ | 7130 | 0x99, 0xD2, 0x99, 0xD3, 0x99, 0xD4, 0x99, 0xD5, /* 0xFC-0xFF */ |
7131 | }; | 7131 | }; |
7132 | 7132 | ||
7133 | static unsigned char u2c_6B[512] = { | 7133 | static const unsigned char u2c_6B[512] = { |
7134 | 0x99, 0xD6, 0x99, 0xD7, 0x99, 0xD8, 0x99, 0xD9, /* 0x00-0x03 */ | 7134 | 0x99, 0xD6, 0x99, 0xD7, 0x99, 0xD8, 0x99, 0xD9, /* 0x00-0x03 */ |
7135 | 0x99, 0xDA, 0x99, 0xDB, 0x99, 0xDC, 0x99, 0xDD, /* 0x04-0x07 */ | 7135 | 0x99, 0xDA, 0x99, 0xDB, 0x99, 0xDC, 0x99, 0xDD, /* 0x04-0x07 */ |
7136 | 0x99, 0xDE, 0x99, 0xDF, 0x99, 0xE0, 0x99, 0xE1, /* 0x08-0x0B */ | 7136 | 0x99, 0xDE, 0x99, 0xDF, 0x99, 0xE0, 0x99, 0xE1, /* 0x08-0x0B */ |
@@ -7198,7 +7198,7 @@ static unsigned char u2c_6B[512] = { | |||
7198 | 0x9A, 0xCE, 0xEB, 0xA6, 0x9A, 0xCF, 0x9A, 0xD0, /* 0xFC-0xFF */ | 7198 | 0x9A, 0xCE, 0xEB, 0xA6, 0x9A, 0xCF, 0x9A, 0xD0, /* 0xFC-0xFF */ |
7199 | }; | 7199 | }; |
7200 | 7200 | ||
7201 | static unsigned char u2c_6C[512] = { | 7201 | static const unsigned char u2c_6C[512] = { |
7202 | 0x9A, 0xD1, 0x9A, 0xD2, 0x9A, 0xD3, 0x9A, 0xD4, /* 0x00-0x03 */ | 7202 | 0x9A, 0xD1, 0x9A, 0xD2, 0x9A, 0xD3, 0x9A, 0xD4, /* 0x00-0x03 */ |
7203 | 0x9A, 0xD5, 0xEB, 0xA9, 0xEB, 0xAB, 0xEB, 0xAA, /* 0x04-0x07 */ | 7203 | 0x9A, 0xD5, 0xEB, 0xA9, 0xEB, 0xAB, 0xEB, 0xAA, /* 0x04-0x07 */ |
7204 | 0x9A, 0xD6, 0x9A, 0xD7, 0x9A, 0xD8, 0x9A, 0xD9, /* 0x08-0x0B */ | 7204 | 0x9A, 0xD6, 0x9A, 0xD7, 0x9A, 0xD8, 0x9A, 0xD9, /* 0x08-0x0B */ |
@@ -7266,7 +7266,7 @@ static unsigned char u2c_6C[512] = { | |||
7266 | 0xC6, 0xC3, 0xD4, 0xF3, 0xE3, 0xFE, 0x9B, 0x8E, /* 0xFC-0xFF */ | 7266 | 0xC6, 0xC3, 0xD4, 0xF3, 0xE3, 0xFE, 0x9B, 0x8E, /* 0xFC-0xFF */ |
7267 | }; | 7267 | }; |
7268 | 7268 | ||
7269 | static unsigned char u2c_6D[512] = { | 7269 | static const unsigned char u2c_6D[512] = { |
7270 | 0x9B, 0x8F, 0xBD, 0xE0, 0x9B, 0x90, 0x9B, 0x91, /* 0x00-0x03 */ | 7270 | 0x9B, 0x8F, 0xBD, 0xE0, 0x9B, 0x90, 0x9B, 0x91, /* 0x00-0x03 */ |
7271 | 0xE4, 0xA7, 0x9B, 0x92, 0x9B, 0x93, 0xE4, 0xA6, /* 0x04-0x07 */ | 7271 | 0xE4, 0xA7, 0x9B, 0x92, 0x9B, 0x93, 0xE4, 0xA6, /* 0x04-0x07 */ |
7272 | 0x9B, 0x94, 0x9B, 0x95, 0x9B, 0x96, 0xD1, 0xF3, /* 0x08-0x0B */ | 7272 | 0x9B, 0x94, 0x9B, 0x95, 0x9B, 0x96, 0xD1, 0xF3, /* 0x08-0x0B */ |
@@ -7334,7 +7334,7 @@ static unsigned char u2c_6D[512] = { | |||
7334 | 0xED, 0xB5, 0x9C, 0x5D, 0x9C, 0x5E, 0x9C, 0x5F, /* 0xFC-0xFF */ | 7334 | 0xED, 0xB5, 0x9C, 0x5D, 0x9C, 0x5E, 0x9C, 0x5F, /* 0xFC-0xFF */ |
7335 | }; | 7335 | }; |
7336 | 7336 | ||
7337 | static unsigned char u2c_6E[512] = { | 7337 | static const unsigned char u2c_6E[512] = { |
7338 | 0x9C, 0x60, 0x9C, 0x61, 0x9C, 0x62, 0x9C, 0x63, /* 0x00-0x03 */ | 7338 | 0x9C, 0x60, 0x9C, 0x61, 0x9C, 0x62, 0x9C, 0x63, /* 0x00-0x03 */ |
7339 | 0x9C, 0x64, 0xC7, 0xE5, 0x9C, 0x65, 0x9C, 0x66, /* 0x04-0x07 */ | 7339 | 0x9C, 0x64, 0xC7, 0xE5, 0x9C, 0x65, 0x9C, 0x66, /* 0x04-0x07 */ |
7340 | 0x9C, 0x67, 0x9C, 0x68, 0xD4, 0xA8, 0x9C, 0x69, /* 0x08-0x0B */ | 7340 | 0x9C, 0x67, 0x9C, 0x68, 0xD4, 0xA8, 0x9C, 0x69, /* 0x08-0x0B */ |
@@ -7402,7 +7402,7 @@ static unsigned char u2c_6E[512] = { | |||
7402 | 0x9D, 0x4A, 0x9D, 0x4B, 0x9D, 0x4C, 0x9D, 0x4D, /* 0xFC-0xFF */ | 7402 | 0x9D, 0x4A, 0x9D, 0x4B, 0x9D, 0x4C, 0x9D, 0x4D, /* 0xFC-0xFF */ |
7403 | }; | 7403 | }; |
7404 | 7404 | ||
7405 | static unsigned char u2c_6F[512] = { | 7405 | static const unsigned char u2c_6F[512] = { |
7406 | 0x9D, 0x4E, 0x9D, 0x4F, 0xC6, 0xAF, 0x9D, 0x50, /* 0x00-0x03 */ | 7406 | 0x9D, 0x4E, 0x9D, 0x4F, 0xC6, 0xAF, 0x9D, 0x50, /* 0x00-0x03 */ |
7407 | 0x9D, 0x51, 0x9D, 0x52, 0xC6, 0xE1, 0x9D, 0x53, /* 0x04-0x07 */ | 7407 | 0x9D, 0x51, 0x9D, 0x52, 0xC6, 0xE1, 0x9D, 0x53, /* 0x04-0x07 */ |
7408 | 0x9D, 0x54, 0xE4, 0xF5, 0x9D, 0x55, 0x9D, 0x56, /* 0x08-0x0B */ | 7408 | 0x9D, 0x54, 0xE4, 0xF5, 0x9D, 0x55, 0x9D, 0x56, /* 0x08-0x0B */ |
@@ -7470,7 +7470,7 @@ static unsigned char u2c_6F[512] = { | |||
7470 | 0x9E, 0x54, 0x9E, 0x55, 0x9E, 0x56, 0x9E, 0x57, /* 0xFC-0xFF */ | 7470 | 0x9E, 0x54, 0x9E, 0x55, 0x9E, 0x56, 0x9E, 0x57, /* 0xFC-0xFF */ |
7471 | }; | 7471 | }; |
7472 | 7472 | ||
7473 | static unsigned char u2c_70[512] = { | 7473 | static const unsigned char u2c_70[512] = { |
7474 | 0x9E, 0x58, 0x9E, 0x59, 0x9E, 0x5A, 0x9E, 0x5B, /* 0x00-0x03 */ | 7474 | 0x9E, 0x58, 0x9E, 0x59, 0x9E, 0x5A, 0x9E, 0x5B, /* 0x00-0x03 */ |
7475 | 0x9E, 0x5C, 0x9E, 0x5D, 0x9E, 0x5E, 0x9E, 0x5F, /* 0x04-0x07 */ | 7475 | 0x9E, 0x5C, 0x9E, 0x5D, 0x9E, 0x5E, 0x9E, 0x5F, /* 0x04-0x07 */ |
7476 | 0x9E, 0x60, 0x9E, 0x61, 0x9E, 0x62, 0x9E, 0x63, /* 0x08-0x0B */ | 7476 | 0x9E, 0x60, 0x9E, 0x61, 0x9E, 0x62, 0x9E, 0x63, /* 0x08-0x0B */ |
@@ -7538,7 +7538,7 @@ static unsigned char u2c_70[512] = { | |||
7538 | 0x9F, 0x54, 0xB7, 0xE9, 0x9F, 0x55, 0x9F, 0x56, /* 0xFC-0xFF */ | 7538 | 0x9F, 0x54, 0xB7, 0xE9, 0x9F, 0x55, 0x9F, 0x56, /* 0xFC-0xFF */ |
7539 | }; | 7539 | }; |
7540 | 7540 | ||
7541 | static unsigned char u2c_71[512] = { | 7541 | static const unsigned char u2c_71[512] = { |
7542 | 0x9F, 0x57, 0x9F, 0x58, 0x9F, 0x59, 0x9F, 0x5A, /* 0x00-0x03 */ | 7542 | 0x9F, 0x57, 0x9F, 0x58, 0x9F, 0x59, 0x9F, 0x5A, /* 0x00-0x03 */ |
7543 | 0x9F, 0x5B, 0x9F, 0x5C, 0x9F, 0x5D, 0x9F, 0x5E, /* 0x04-0x07 */ | 7543 | 0x9F, 0x5B, 0x9F, 0x5C, 0x9F, 0x5D, 0x9F, 0x5E, /* 0x04-0x07 */ |
7544 | 0x9F, 0x5F, 0xD1, 0xC9, 0xBA, 0xB8, 0x9F, 0x60, /* 0x08-0x0B */ | 7544 | 0x9F, 0x5F, 0xD1, 0xC9, 0xBA, 0xB8, 0x9F, 0x60, /* 0x08-0x0B */ |
@@ -7606,7 +7606,7 @@ static unsigned char u2c_71[512] = { | |||
7606 | 0xA0, 0x61, 0xA0, 0x62, 0xA0, 0x63, 0xA0, 0x64, /* 0xFC-0xFF */ | 7606 | 0xA0, 0x61, 0xA0, 0x62, 0xA0, 0x63, 0xA0, 0x64, /* 0xFC-0xFF */ |
7607 | }; | 7607 | }; |
7608 | 7608 | ||
7609 | static unsigned char u2c_72[512] = { | 7609 | static const unsigned char u2c_72[512] = { |
7610 | 0xA0, 0x65, 0xA0, 0x66, 0xA0, 0x67, 0xA0, 0x68, /* 0x00-0x03 */ | 7610 | 0xA0, 0x65, 0xA0, 0x66, 0xA0, 0x67, 0xA0, 0x68, /* 0x00-0x03 */ |
7611 | 0xA0, 0x69, 0xA0, 0x6A, 0xB1, 0xAC, 0xA0, 0x6B, /* 0x04-0x07 */ | 7611 | 0xA0, 0x69, 0xA0, 0x6A, 0xB1, 0xAC, 0xA0, 0x6B, /* 0x04-0x07 */ |
7612 | 0xA0, 0x6C, 0xA0, 0x6D, 0xA0, 0x6E, 0xA0, 0x6F, /* 0x08-0x0B */ | 7612 | 0xA0, 0x6C, 0xA0, 0x6D, 0xA0, 0x6E, 0xA0, 0x6F, /* 0x08-0x0B */ |
@@ -7674,7 +7674,7 @@ static unsigned char u2c_72[512] = { | |||
7674 | 0xC0, 0xC7, 0xAA, 0x4E, 0xAA, 0x4F, 0xAA, 0x50, /* 0xFC-0xFF */ | 7674 | 0xC0, 0xC7, 0xAA, 0x4E, 0xAA, 0x4F, 0xAA, 0x50, /* 0xFC-0xFF */ |
7675 | }; | 7675 | }; |
7676 | 7676 | ||
7677 | static unsigned char u2c_73[512] = { | 7677 | static const unsigned char u2c_73[512] = { |
7678 | 0xAA, 0x51, 0xE1, 0xFB, 0xAA, 0x52, 0xE1, 0xFD, /* 0x00-0x03 */ | 7678 | 0xAA, 0x51, 0xE1, 0xFB, 0xAA, 0x52, 0xE1, 0xFD, /* 0x00-0x03 */ |
7679 | 0xAA, 0x53, 0xAA, 0x54, 0xAA, 0x55, 0xAA, 0x56, /* 0x04-0x07 */ | 7679 | 0xAA, 0x53, 0xAA, 0x54, 0xAA, 0x55, 0xAA, 0x56, /* 0x04-0x07 */ |
7680 | 0xAA, 0x57, 0xAA, 0x58, 0xE2, 0xA5, 0xAA, 0x59, /* 0x08-0x0B */ | 7680 | 0xAA, 0x57, 0xAA, 0x58, 0xE2, 0xA5, 0xAA, 0x59, /* 0x08-0x0B */ |
@@ -7742,7 +7742,7 @@ static unsigned char u2c_73[512] = { | |||
7742 | 0xAC, 0x44, 0xAC, 0x45, 0xAC, 0x46, 0xAC, 0x47, /* 0xFC-0xFF */ | 7742 | 0xAC, 0x44, 0xAC, 0x45, 0xAC, 0x46, 0xAC, 0x47, /* 0xFC-0xFF */ |
7743 | }; | 7743 | }; |
7744 | 7744 | ||
7745 | static unsigned char u2c_74[512] = { | 7745 | static const unsigned char u2c_74[512] = { |
7746 | 0xAC, 0x48, 0xAC, 0x49, 0xAC, 0x4A, 0xC7, 0xF2, /* 0x00-0x03 */ | 7746 | 0xAC, 0x48, 0xAC, 0x49, 0xAC, 0x4A, 0xC7, 0xF2, /* 0x00-0x03 */ |
7747 | 0xAC, 0x4B, 0xC0, 0xC5, 0xC0, 0xED, 0xAC, 0x4C, /* 0x04-0x07 */ | 7747 | 0xAC, 0x4B, 0xC0, 0xC5, 0xC0, 0xED, 0xAC, 0x4C, /* 0x04-0x07 */ |
7748 | 0xAC, 0x4D, 0xC1, 0xF0, 0xE7, 0xF0, 0xAC, 0x4E, /* 0x08-0x0B */ | 7748 | 0xAC, 0x4D, 0xC1, 0xF0, 0xE7, 0xF0, 0xAC, 0x4E, /* 0x08-0x0B */ |
@@ -7810,7 +7810,7 @@ static unsigned char u2c_74[512] = { | |||
7810 | 0xAE, 0x46, 0xAE, 0x47, 0xAE, 0x48, 0xEA, 0xB3, /* 0xFC-0xFF */ | 7810 | 0xAE, 0x46, 0xAE, 0x47, 0xAE, 0x48, 0xEA, 0xB3, /* 0xFC-0xFF */ |
7811 | }; | 7811 | }; |
7812 | 7812 | ||
7813 | static unsigned char u2c_75[512] = { | 7813 | static const unsigned char u2c_75[512] = { |
7814 | 0xAE, 0x49, 0xAE, 0x4A, 0xAE, 0x4B, 0xAE, 0x4C, /* 0x00-0x03 */ | 7814 | 0xAE, 0x49, 0xAE, 0x4A, 0xAE, 0x4B, 0xAE, 0x4C, /* 0x00-0x03 */ |
7815 | 0xD5, 0xE7, 0xAE, 0x4D, 0xAE, 0x4E, 0xAE, 0x4F, /* 0x04-0x07 */ | 7815 | 0xD5, 0xE7, 0xAE, 0x4D, 0xAE, 0x4E, 0xAE, 0x4F, /* 0x04-0x07 */ |
7816 | 0xAE, 0x50, 0xAE, 0x51, 0xAE, 0x52, 0xAE, 0x53, /* 0x08-0x0B */ | 7816 | 0xAE, 0x50, 0xAE, 0x51, 0xAE, 0x52, 0xAE, 0x53, /* 0x08-0x0B */ |
@@ -7878,7 +7878,7 @@ static unsigned char u2c_75[512] = { | |||
7878 | 0xF0, 0xF3, 0xAF, 0x79, 0xAF, 0x7A, 0xF0, 0xF4, /* 0xFC-0xFF */ | 7878 | 0xF0, 0xF3, 0xAF, 0x79, 0xAF, 0x7A, 0xF0, 0xF4, /* 0xFC-0xFF */ |
7879 | }; | 7879 | }; |
7880 | 7880 | ||
7881 | static unsigned char u2c_76[512] = { | 7881 | static const unsigned char u2c_76[512] = { |
7882 | 0xF0, 0xF6, 0xB4, 0xE1, 0xAF, 0x7B, 0xF0, 0xF1, /* 0x00-0x03 */ | 7882 | 0xF0, 0xF6, 0xB4, 0xE1, 0xAF, 0x7B, 0xF0, 0xF1, /* 0x00-0x03 */ |
7883 | 0xAF, 0x7C, 0xF0, 0xF7, 0xAF, 0x7D, 0xAF, 0x7E, /* 0x04-0x07 */ | 7883 | 0xAF, 0x7C, 0xF0, 0xF7, 0xAF, 0x7D, 0xAF, 0x7E, /* 0x04-0x07 */ |
7884 | 0xAF, 0x80, 0xAF, 0x81, 0xF0, 0xFA, 0xAF, 0x82, /* 0x08-0x0B */ | 7884 | 0xAF, 0x80, 0xAF, 0x81, 0xF0, 0xFA, 0xAF, 0x82, /* 0x08-0x0B */ |
@@ -7946,7 +7946,7 @@ static unsigned char u2c_76[512] = { | |||
7946 | 0xC5, 0xCE, 0xB1, 0x60, 0xB6, 0xDC, 0xB1, 0x61, /* 0xFC-0xFF */ | 7946 | 0xC5, 0xCE, 0xB1, 0x60, 0xB6, 0xDC, 0xB1, 0x61, /* 0xFC-0xFF */ |
7947 | }; | 7947 | }; |
7948 | 7948 | ||
7949 | static unsigned char u2c_77[512] = { | 7949 | static const unsigned char u2c_77[512] = { |
7950 | 0xB1, 0x62, 0xCA, 0xA1, 0xB1, 0x63, 0xB1, 0x64, /* 0x00-0x03 */ | 7950 | 0xB1, 0x62, 0xCA, 0xA1, 0xB1, 0x63, 0xB1, 0x64, /* 0x00-0x03 */ |
7951 | 0xED, 0xED, 0xB1, 0x65, 0xB1, 0x66, 0xED, 0xF0, /* 0x04-0x07 */ | 7951 | 0xED, 0xED, 0xB1, 0x65, 0xB1, 0x66, 0xED, 0xF0, /* 0x04-0x07 */ |
7952 | 0xED, 0xF1, 0xC3, 0xBC, 0xB1, 0x67, 0xBF, 0xB4, /* 0x08-0x0B */ | 7952 | 0xED, 0xF1, 0xC3, 0xBC, 0xB1, 0x67, 0xBF, 0xB4, /* 0x08-0x0B */ |
@@ -8014,7 +8014,7 @@ static unsigned char u2c_77[512] = { | |||
8014 | 0xB3, 0x4D, 0xCE, 0xF9, 0xB7, 0xAF, 0xBF, 0xF3, /* 0xFC-0xFF */ | 8014 | 0xB3, 0x4D, 0xCE, 0xF9, 0xB7, 0xAF, 0xBF, 0xF3, /* 0xFC-0xFF */ |
8015 | }; | 8015 | }; |
8016 | 8016 | ||
8017 | static unsigned char u2c_78[512] = { | 8017 | static const unsigned char u2c_78[512] = { |
8018 | 0xED, 0xB8, 0xC2, 0xEB, 0xC9, 0xB0, 0xB3, 0x4E, /* 0x00-0x03 */ | 8018 | 0xED, 0xB8, 0xC2, 0xEB, 0xC9, 0xB0, 0xB3, 0x4E, /* 0x00-0x03 */ |
8019 | 0xB3, 0x4F, 0xB3, 0x50, 0xB3, 0x51, 0xB3, 0x52, /* 0x04-0x07 */ | 8019 | 0xB3, 0x4F, 0xB3, 0x50, 0xB3, 0x51, 0xB3, 0x52, /* 0x04-0x07 */ |
8020 | 0xB3, 0x53, 0xED, 0xB9, 0xB3, 0x54, 0xB3, 0x55, /* 0x08-0x0B */ | 8020 | 0xB3, 0x53, 0xED, 0xB9, 0xB3, 0x54, 0xB3, 0x55, /* 0x08-0x0B */ |
@@ -8082,7 +8082,7 @@ static unsigned char u2c_78[512] = { | |||
8082 | 0xB4, 0x92, 0xB4, 0x93, 0xB4, 0x94, 0xB4, 0x95, /* 0xFC-0xFF */ | 8082 | 0xB4, 0x92, 0xB4, 0x93, 0xB4, 0x94, 0xB4, 0x95, /* 0xFC-0xFF */ |
8083 | }; | 8083 | }; |
8084 | 8084 | ||
8085 | static unsigned char u2c_79[512] = { | 8085 | static const unsigned char u2c_79[512] = { |
8086 | 0xB4, 0x96, 0xBD, 0xB8, 0xB4, 0x97, 0xB4, 0x98, /* 0x00-0x03 */ | 8086 | 0xB4, 0x96, 0xBD, 0xB8, 0xB4, 0x97, 0xB4, 0x98, /* 0x00-0x03 */ |
8087 | 0xB4, 0x99, 0xED, 0xE2, 0xB4, 0x9A, 0xB4, 0x9B, /* 0x04-0x07 */ | 8087 | 0xB4, 0x99, 0xED, 0xE2, 0xB4, 0x9A, 0xB4, 0x9B, /* 0x04-0x07 */ |
8088 | 0xB4, 0x9C, 0xB4, 0x9D, 0xB4, 0x9E, 0xB4, 0x9F, /* 0x08-0x0B */ | 8088 | 0xB4, 0x9C, 0xB4, 0x9D, 0xB4, 0x9E, 0xB4, 0x9F, /* 0x08-0x0B */ |
@@ -8150,7 +8150,7 @@ static unsigned char u2c_79[512] = { | |||
8150 | 0xB6, 0x8B, 0xBB, 0xE0, 0xB6, 0x8C, 0xB6, 0x8D, /* 0xFC-0xFF */ | 8150 | 0xB6, 0x8B, 0xBB, 0xE0, 0xB6, 0x8C, 0xB6, 0x8D, /* 0xFC-0xFF */ |
8151 | }; | 8151 | }; |
8152 | 8152 | ||
8153 | static unsigned char u2c_7A[512] = { | 8153 | static const unsigned char u2c_7A[512] = { |
8154 | 0xCF, 0xA1, 0xB6, 0x8E, 0xEF, 0xFC, 0xEF, 0xFB, /* 0x00-0x03 */ | 8154 | 0xCF, 0xA1, 0xB6, 0x8E, 0xEF, 0xFC, 0xEF, 0xFB, /* 0x00-0x03 */ |
8155 | 0xB6, 0x8F, 0xB6, 0x90, 0xEF, 0xF9, 0xB6, 0x91, /* 0x04-0x07 */ | 8155 | 0xB6, 0x8F, 0xB6, 0x90, 0xEF, 0xF9, 0xB6, 0x91, /* 0x04-0x07 */ |
8156 | 0xB6, 0x92, 0xB6, 0x93, 0xB6, 0x94, 0xB3, 0xCC, /* 0x08-0x0B */ | 8156 | 0xB6, 0x92, 0xB6, 0x93, 0xB6, 0x94, 0xB3, 0xCC, /* 0x08-0x0B */ |
@@ -8218,7 +8218,7 @@ static unsigned char u2c_7A[512] = { | |||
8218 | 0xB8, 0x86, 0xF3, 0xC4, 0xB8, 0x87, 0xB8, 0xCD, /* 0xFC-0xFF */ | 8218 | 0xB8, 0x86, 0xF3, 0xC4, 0xB8, 0x87, 0xB8, 0xCD, /* 0xFC-0xFF */ |
8219 | }; | 8219 | }; |
8220 | 8220 | ||
8221 | static unsigned char u2c_7B[512] = { | 8221 | static const unsigned char u2c_7B[512] = { |
8222 | 0xB8, 0x88, 0xB8, 0x89, 0xB8, 0x8A, 0xF3, 0xC6, /* 0x00-0x03 */ | 8222 | 0xB8, 0x88, 0xB8, 0x89, 0xB8, 0x8A, 0xF3, 0xC6, /* 0x00-0x03 */ |
8223 | 0xF3, 0xC7, 0xB8, 0x8B, 0xB0, 0xCA, 0xB8, 0x8C, /* 0x04-0x07 */ | 8223 | 0xF3, 0xC7, 0xB8, 0x8B, 0xB0, 0xCA, 0xB8, 0x8C, /* 0x04-0x07 */ |
8224 | 0xF3, 0xC5, 0xB8, 0x8D, 0xF3, 0xC9, 0xCB, 0xF1, /* 0x08-0x0B */ | 8224 | 0xF3, 0xC5, 0xB8, 0x8D, 0xF3, 0xC9, 0xCB, 0xF1, /* 0x08-0x0B */ |
@@ -8286,7 +8286,7 @@ static unsigned char u2c_7B[512] = { | |||
8286 | 0xF3, 0xFB, 0xBA, 0x68, 0xF3, 0xFA, 0xBA, 0x69, /* 0xFC-0xFF */ | 8286 | 0xF3, 0xFB, 0xBA, 0x68, 0xF3, 0xFA, 0xBA, 0x69, /* 0xFC-0xFF */ |
8287 | }; | 8287 | }; |
8288 | 8288 | ||
8289 | static unsigned char u2c_7C[512] = { | 8289 | static const unsigned char u2c_7C[512] = { |
8290 | 0xBA, 0x6A, 0xBA, 0x6B, 0xBA, 0x6C, 0xBA, 0x6D, /* 0x00-0x03 */ | 8290 | 0xBA, 0x6A, 0xBA, 0x6B, 0xBA, 0x6C, 0xBA, 0x6D, /* 0x00-0x03 */ |
8291 | 0xBA, 0x6E, 0xBA, 0x6F, 0xBA, 0x70, 0xB4, 0xD8, /* 0x04-0x07 */ | 8291 | 0xBA, 0x6E, 0xBA, 0x6F, 0xBA, 0x70, 0xB4, 0xD8, /* 0x04-0x07 */ |
8292 | 0xBA, 0x71, 0xBA, 0x72, 0xBA, 0x73, 0xF3, 0xFE, /* 0x08-0x0B */ | 8292 | 0xBA, 0x71, 0xBA, 0x72, 0xBA, 0x73, 0xF3, 0xFE, /* 0x08-0x0B */ |
@@ -8354,7 +8354,7 @@ static unsigned char u2c_7C[512] = { | |||
8354 | 0xBC, 0x6B, 0xBC, 0x6C, 0xBC, 0x6D, 0xBC, 0x6E, /* 0xFC-0xFF */ | 8354 | 0xBC, 0x6B, 0xBC, 0x6C, 0xBC, 0x6D, 0xBC, 0x6E, /* 0xFC-0xFF */ |
8355 | }; | 8355 | }; |
8356 | 8356 | ||
8357 | static unsigned char u2c_7D[512] = { | 8357 | static const unsigned char u2c_7D[512] = { |
8358 | 0xBC, 0x6F, 0xBC, 0x70, 0xBC, 0x71, 0xBC, 0x72, /* 0x00-0x03 */ | 8358 | 0xBC, 0x6F, 0xBC, 0x70, 0xBC, 0x71, 0xBC, 0x72, /* 0x00-0x03 */ |
8359 | 0xBC, 0x73, 0xBC, 0x74, 0xBC, 0x75, 0xBC, 0x76, /* 0x04-0x07 */ | 8359 | 0xBC, 0x73, 0xBC, 0x74, 0xBC, 0x75, 0xBC, 0x76, /* 0x04-0x07 */ |
8360 | 0xBC, 0x77, 0xBC, 0x78, 0xCE, 0xC9, 0xBC, 0x79, /* 0x08-0x0B */ | 8360 | 0xBC, 0x77, 0xBC, 0x78, 0xCE, 0xC9, 0xBC, 0x79, /* 0x08-0x0B */ |
@@ -8422,7 +8422,7 @@ static unsigned char u2c_7D[512] = { | |||
8422 | 0xBF, 0x41, 0xBF, 0x42, 0xBF, 0x43, 0xBF, 0x44, /* 0xFC-0xFF */ | 8422 | 0xBF, 0x41, 0xBF, 0x42, 0xBF, 0x43, 0xBF, 0x44, /* 0xFC-0xFF */ |
8423 | }; | 8423 | }; |
8424 | 8424 | ||
8425 | static unsigned char u2c_7E[512] = { | 8425 | static const unsigned char u2c_7E[512] = { |
8426 | 0xBF, 0x45, 0xBF, 0x46, 0xBF, 0x47, 0xBF, 0x48, /* 0x00-0x03 */ | 8426 | 0xBF, 0x45, 0xBF, 0x46, 0xBF, 0x47, 0xBF, 0x48, /* 0x00-0x03 */ |
8427 | 0xBF, 0x49, 0xBF, 0x4A, 0xBF, 0x4B, 0xBF, 0x4C, /* 0x04-0x07 */ | 8427 | 0xBF, 0x49, 0xBF, 0x4A, 0xBF, 0x4B, 0xBF, 0x4C, /* 0x04-0x07 */ |
8428 | 0xBF, 0x4D, 0xBF, 0x4E, 0xBF, 0x4F, 0xBF, 0x50, /* 0x08-0x0B */ | 8428 | 0xBF, 0x4D, 0xBF, 0x4E, 0xBF, 0x4F, 0xBF, 0x50, /* 0x08-0x0B */ |
@@ -8490,7 +8490,7 @@ static unsigned char u2c_7E[512] = { | |||
8490 | 0xD7, 0xDB, 0xD5, 0xC0, 0xE7, 0xBA, 0xC2, 0xCC, /* 0xFC-0xFF */ | 8490 | 0xD7, 0xDB, 0xD5, 0xC0, 0xE7, 0xBA, 0xC2, 0xCC, /* 0xFC-0xFF */ |
8491 | }; | 8491 | }; |
8492 | 8492 | ||
8493 | static unsigned char u2c_7F[512] = { | 8493 | static const unsigned char u2c_7F[512] = { |
8494 | 0xD7, 0xBA, 0xE7, 0xBB, 0xE7, 0xBC, 0xE7, 0xBD, /* 0x00-0x03 */ | 8494 | 0xD7, 0xBA, 0xE7, 0xBB, 0xE7, 0xBC, 0xE7, 0xBD, /* 0x00-0x03 */ |
8495 | 0xBC, 0xEA, 0xC3, 0xE5, 0xC0, 0xC2, 0xE7, 0xBE, /* 0x04-0x07 */ | 8495 | 0xBC, 0xEA, 0xC3, 0xE5, 0xC0, 0xC2, 0xE7, 0xBE, /* 0x04-0x07 */ |
8496 | 0xE7, 0xBF, 0xBC, 0xA9, 0xC0, 0x88, 0xE7, 0xC0, /* 0x08-0x0B */ | 8496 | 0xE7, 0xBF, 0xBC, 0xA9, 0xC0, 0x88, 0xE7, 0xC0, /* 0x08-0x0B */ |
@@ -8558,7 +8558,7 @@ static unsigned char u2c_7F[512] = { | |||
8558 | 0xD2, 0xED, 0xC2, 0x50, 0xC2, 0x51, 0xC2, 0x52, /* 0xFC-0xFF */ | 8558 | 0xD2, 0xED, 0xC2, 0x50, 0xC2, 0x51, 0xC2, 0x52, /* 0xFC-0xFF */ |
8559 | }; | 8559 | }; |
8560 | 8560 | ||
8561 | static unsigned char u2c_80[512] = { | 8561 | static const unsigned char u2c_80[512] = { |
8562 | 0xD2, 0xAB, 0xC0, 0xCF, 0xC2, 0x53, 0xBF, 0xBC, /* 0x00-0x03 */ | 8562 | 0xD2, 0xAB, 0xC0, 0xCF, 0xC2, 0x53, 0xBF, 0xBC, /* 0x00-0x03 */ |
8563 | 0xEB, 0xA3, 0xD5, 0xDF, 0xEA, 0xC8, 0xC2, 0x54, /* 0x04-0x07 */ | 8563 | 0xEB, 0xA3, 0xD5, 0xDF, 0xEA, 0xC8, 0xC2, 0x54, /* 0x04-0x07 */ |
8564 | 0xC2, 0x55, 0xC2, 0x56, 0xC2, 0x57, 0xF1, 0xF3, /* 0x08-0x0B */ | 8564 | 0xC2, 0x55, 0xC2, 0x56, 0xC2, 0x57, 0xF1, 0xF3, /* 0x08-0x0B */ |
@@ -8626,7 +8626,7 @@ static unsigned char u2c_80[512] = { | |||
8626 | 0xEB, 0xDD, 0xC4, 0xDC, 0xC3, 0x75, 0xC3, 0x76, /* 0xFC-0xFF */ | 8626 | 0xEB, 0xDD, 0xC4, 0xDC, 0xC3, 0x75, 0xC3, 0x76, /* 0xFC-0xFF */ |
8627 | }; | 8627 | }; |
8628 | 8628 | ||
8629 | static unsigned char u2c_81[512] = { | 8629 | static const unsigned char u2c_81[512] = { |
8630 | 0xC3, 0x77, 0xC3, 0x78, 0xD6, 0xAC, 0xC3, 0x79, /* 0x00-0x03 */ | 8630 | 0xC3, 0x77, 0xC3, 0x78, 0xD6, 0xAC, 0xC3, 0x79, /* 0x00-0x03 */ |
8631 | 0xC3, 0x7A, 0xC3, 0x7B, 0xB4, 0xE0, 0xC3, 0x7C, /* 0x04-0x07 */ | 8631 | 0xC3, 0x7A, 0xC3, 0x7B, 0xB4, 0xE0, 0xC3, 0x7C, /* 0x04-0x07 */ |
8632 | 0xC3, 0x7D, 0xC2, 0xF6, 0xBC, 0xB9, 0xC3, 0x7E, /* 0x08-0x0B */ | 8632 | 0xC3, 0x7D, 0xC2, 0xF6, 0xBC, 0xB9, 0xC3, 0x7E, /* 0x08-0x0B */ |
@@ -8694,7 +8694,7 @@ static unsigned char u2c_81[512] = { | |||
8694 | 0xBE, 0xCA, 0xC5, 0x60, 0xF4, 0xA7, 0xC5, 0x61, /* 0xFC-0xFF */ | 8694 | 0xBE, 0xCA, 0xC5, 0x60, 0xF4, 0xA7, 0xC5, 0x61, /* 0xFC-0xFF */ |
8695 | }; | 8695 | }; |
8696 | 8696 | ||
8697 | static unsigned char u2c_82[512] = { | 8697 | static const unsigned char u2c_82[512] = { |
8698 | 0xD2, 0xA8, 0xF4, 0xA8, 0xF4, 0xA9, 0xC5, 0x62, /* 0x00-0x03 */ | 8698 | 0xD2, 0xA8, 0xF4, 0xA8, 0xF4, 0xA9, 0xC5, 0x62, /* 0x00-0x03 */ |
8699 | 0xF4, 0xAA, 0xBE, 0xCB, 0xD3, 0xDF, 0xC5, 0x63, /* 0x04-0x07 */ | 8699 | 0xF4, 0xAA, 0xBE, 0xCB, 0xD3, 0xDF, 0xC5, 0x63, /* 0x04-0x07 */ |
8700 | 0xC5, 0x64, 0xC5, 0x65, 0xC5, 0x66, 0xC5, 0x67, /* 0x08-0x0B */ | 8700 | 0xC5, 0x64, 0xC5, 0x65, 0xC5, 0x66, 0xC5, 0x67, /* 0x08-0x0B */ |
@@ -8762,7 +8762,7 @@ static unsigned char u2c_82[512] = { | |||
8762 | 0xC6, 0x81, 0xC6, 0x82, 0xC6, 0x83, 0xC6, 0x84, /* 0xFC-0xFF */ | 8762 | 0xC6, 0x81, 0xC6, 0x82, 0xC6, 0x83, 0xC6, 0x84, /* 0xFC-0xFF */ |
8763 | }; | 8763 | }; |
8764 | 8764 | ||
8765 | static unsigned char u2c_83[512] = { | 8765 | static const unsigned char u2c_83[512] = { |
8766 | 0xC6, 0x85, 0xD7, 0xC2, 0xC3, 0xAF, 0xB7, 0xB6, /* 0x00-0x03 */ | 8766 | 0xC6, 0x85, 0xD7, 0xC2, 0xC3, 0xAF, 0xB7, 0xB6, /* 0x00-0x03 */ |
8767 | 0xC7, 0xD1, 0xC3, 0xA9, 0xDC, 0xE2, 0xDC, 0xD8, /* 0x04-0x07 */ | 8767 | 0xC7, 0xD1, 0xC3, 0xA9, 0xDC, 0xE2, 0xDC, 0xD8, /* 0x04-0x07 */ |
8768 | 0xDC, 0xEB, 0xDC, 0xD4, 0xC6, 0x86, 0xC6, 0x87, /* 0x08-0x0B */ | 8768 | 0xDC, 0xEB, 0xDC, 0xD4, 0xC6, 0x86, 0xC6, 0x87, /* 0x08-0x0B */ |
@@ -8830,7 +8830,7 @@ static unsigned char u2c_83[512] = { | |||
8830 | 0xC8, 0x49, 0xDD, 0xC4, 0xC8, 0x4A, 0xC8, 0x4B, /* 0xFC-0xFF */ | 8830 | 0xC8, 0x49, 0xDD, 0xC4, 0xC8, 0x4A, 0xC8, 0x4B, /* 0xFC-0xFF */ |
8831 | }; | 8831 | }; |
8832 | 8832 | ||
8833 | static unsigned char u2c_84[512] = { | 8833 | static const unsigned char u2c_84[512] = { |
8834 | 0xC8, 0x4C, 0xDD, 0xBD, 0xC8, 0x4D, 0xDD, 0xCD, /* 0x00-0x03 */ | 8834 | 0xC8, 0x4C, 0xDD, 0xBD, 0xC8, 0x4D, 0xDD, 0xCD, /* 0x00-0x03 */ |
8835 | 0xCC, 0xD1, 0xC8, 0x4E, 0xDD, 0xC9, 0xC8, 0x4F, /* 0x04-0x07 */ | 8835 | 0xCC, 0xD1, 0xC8, 0x4E, 0xDD, 0xC9, 0xC8, 0x4F, /* 0x04-0x07 */ |
8836 | 0xC8, 0x50, 0xC8, 0x51, 0xC8, 0x52, 0xDD, 0xC2, /* 0x08-0x0B */ | 8836 | 0xC8, 0x50, 0xC8, 0x51, 0xC8, 0x52, 0xDD, 0xC2, /* 0x08-0x0B */ |
@@ -8898,7 +8898,7 @@ static unsigned char u2c_84[512] = { | |||
8898 | 0xDE, 0xA4, 0xC9, 0x9C, 0xC9, 0x9D, 0xDE, 0xA3, /* 0xFC-0xFF */ | 8898 | 0xDE, 0xA4, 0xC9, 0x9C, 0xC9, 0x9D, 0xDE, 0xA3, /* 0xFC-0xFF */ |
8899 | }; | 8899 | }; |
8900 | 8900 | ||
8901 | static unsigned char u2c_85[512] = { | 8901 | static const unsigned char u2c_85[512] = { |
8902 | 0xC9, 0x9E, 0xC9, 0x9F, 0xC9, 0xA0, 0xCA, 0x40, /* 0x00-0x03 */ | 8902 | 0xC9, 0x9E, 0xC9, 0x9F, 0xC9, 0xA0, 0xCA, 0x40, /* 0x00-0x03 */ |
8903 | 0xCA, 0x41, 0xCA, 0x42, 0xCA, 0x43, 0xCA, 0x44, /* 0x04-0x07 */ | 8903 | 0xCA, 0x41, 0xCA, 0x42, 0xCA, 0x43, 0xCA, 0x44, /* 0x04-0x07 */ |
8904 | 0xCA, 0x45, 0xCA, 0x46, 0xCA, 0x47, 0xCA, 0x48, /* 0x08-0x0B */ | 8904 | 0xCA, 0x45, 0xCA, 0x46, 0xCA, 0x47, 0xCA, 0x48, /* 0x08-0x0B */ |
@@ -8966,7 +8966,7 @@ static unsigned char u2c_85[512] = { | |||
8966 | 0xCC, 0x42, 0xCC, 0x43, 0xCC, 0x44, 0xDE, 0xBD, /* 0xFC-0xFF */ | 8966 | 0xCC, 0x42, 0xCC, 0x43, 0xCC, 0x44, 0xDE, 0xBD, /* 0xFC-0xFF */ |
8967 | }; | 8967 | }; |
8968 | 8968 | ||
8969 | static unsigned char u2c_86[512] = { | 8969 | static const unsigned char u2c_86[512] = { |
8970 | 0xCC, 0x45, 0xCC, 0x46, 0xCC, 0x47, 0xCC, 0x48, /* 0x00-0x03 */ | 8970 | 0xCC, 0x45, 0xCC, 0x46, 0xCC, 0x47, 0xCC, 0x48, /* 0x00-0x03 */ |
8971 | 0xCC, 0x49, 0xDE, 0xBF, 0xCC, 0x4A, 0xCC, 0x4B, /* 0x04-0x07 */ | 8971 | 0xCC, 0x49, 0xDE, 0xBF, 0xCC, 0x4A, 0xCC, 0x4B, /* 0x04-0x07 */ |
8972 | 0xCC, 0x4C, 0xCC, 0x4D, 0xCC, 0x4E, 0xCC, 0x4F, /* 0x08-0x0B */ | 8972 | 0xCC, 0x4C, 0xCC, 0x4D, 0xCC, 0x4E, 0xCC, 0x4F, /* 0x08-0x0B */ |
@@ -9034,7 +9034,7 @@ static unsigned char u2c_86[512] = { | |||
9034 | 0xCD, 0x92, 0xCD, 0x93, 0xB6, 0xEA, 0xCD, 0x94, /* 0xFC-0xFF */ | 9034 | 0xCD, 0x92, 0xCD, 0x93, 0xB6, 0xEA, 0xCD, 0x94, /* 0xFC-0xFF */ |
9035 | }; | 9035 | }; |
9036 | 9036 | ||
9037 | static unsigned char u2c_87[512] = { | 9037 | static const unsigned char u2c_87[512] = { |
9038 | 0xCA, 0xF1, 0xCD, 0x95, 0xB7, 0xE4, 0xF2, 0xD7, /* 0x00-0x03 */ | 9038 | 0xCA, 0xF1, 0xCD, 0x95, 0xB7, 0xE4, 0xF2, 0xD7, /* 0x00-0x03 */ |
9039 | 0xCD, 0x96, 0xCD, 0x97, 0xCD, 0x98, 0xF2, 0xD8, /* 0x04-0x07 */ | 9039 | 0xCD, 0x96, 0xCD, 0x97, 0xCD, 0x98, 0xF2, 0xD8, /* 0x04-0x07 */ |
9040 | 0xF2, 0xDA, 0xF2, 0xDD, 0xF2, 0xDB, 0xCD, 0x99, /* 0x08-0x0B */ | 9040 | 0xF2, 0xDA, 0xF2, 0xDD, 0xF2, 0xDB, 0xCD, 0x99, /* 0x08-0x0B */ |
@@ -9102,7 +9102,7 @@ static unsigned char u2c_87[512] = { | |||
9102 | 0xCF, 0x82, 0xCF, 0x83, 0xF3, 0xB8, 0xCF, 0x84, /* 0xFC-0xFF */ | 9102 | 0xCF, 0x82, 0xCF, 0x83, 0xF3, 0xB8, 0xCF, 0x84, /* 0xFC-0xFF */ |
9103 | }; | 9103 | }; |
9104 | 9104 | ||
9105 | static unsigned char u2c_88[512] = { | 9105 | static const unsigned char u2c_88[512] = { |
9106 | 0xCF, 0x85, 0xCF, 0x86, 0xCF, 0x87, 0xD9, 0xF9, /* 0x00-0x03 */ | 9106 | 0xCF, 0x85, 0xCF, 0x86, 0xCF, 0x87, 0xD9, 0xF9, /* 0x00-0x03 */ |
9107 | 0xCF, 0x88, 0xCF, 0x89, 0xCF, 0x8A, 0xCF, 0x8B, /* 0x04-0x07 */ | 9107 | 0xCF, 0x88, 0xCF, 0x89, 0xCF, 0x8A, 0xCF, 0x8B, /* 0x04-0x07 */ |
9108 | 0xCF, 0x8C, 0xCF, 0x8D, 0xF3, 0xB9, 0xCF, 0x8E, /* 0x08-0x0B */ | 9108 | 0xCF, 0x8C, 0xCF, 0x8D, 0xF3, 0xB9, 0xCF, 0x8E, /* 0x08-0x0B */ |
@@ -9170,7 +9170,7 @@ static unsigned char u2c_88[512] = { | |||
9170 | 0xF1, 0xD3, 0xD1, 0x75, 0xF1, 0xD5, 0xD1, 0x76, /* 0xFC-0xFF */ | 9170 | 0xF1, 0xD3, 0xD1, 0x75, 0xF1, 0xD5, 0xD1, 0x76, /* 0xFC-0xFF */ |
9171 | }; | 9171 | }; |
9172 | 9172 | ||
9173 | static unsigned char u2c_89[512] = { | 9173 | static const unsigned char u2c_89[512] = { |
9174 | 0xD1, 0x77, 0xD1, 0x78, 0xB9, 0xD3, 0xD1, 0x79, /* 0x00-0x03 */ | 9174 | 0xD1, 0x77, 0xD1, 0x78, 0xB9, 0xD3, 0xD1, 0x79, /* 0x00-0x03 */ |
9175 | 0xD1, 0x7A, 0xD1, 0x7B, 0xD1, 0x7C, 0xD1, 0x7D, /* 0x04-0x07 */ | 9175 | 0xD1, 0x7A, 0xD1, 0x7B, 0xD1, 0x7C, 0xD1, 0x7D, /* 0x04-0x07 */ |
9176 | 0xD1, 0x7E, 0xD1, 0x80, 0xF1, 0xDB, 0xD1, 0x81, /* 0x08-0x0B */ | 9176 | 0xD1, 0x7E, 0xD1, 0x80, 0xF1, 0xDB, 0xD1, 0x81, /* 0x08-0x0B */ |
@@ -9238,7 +9238,7 @@ static unsigned char u2c_89[512] = { | |||
9238 | 0xD3, 0x81, 0xD3, 0x82, 0xD3, 0x83, 0xD3, 0x84, /* 0xFC-0xFF */ | 9238 | 0xD3, 0x81, 0xD3, 0x82, 0xD3, 0x83, 0xD3, 0x84, /* 0xFC-0xFF */ |
9239 | }; | 9239 | }; |
9240 | 9240 | ||
9241 | static unsigned char u2c_8A[512] = { | 9241 | static const unsigned char u2c_8A[512] = { |
9242 | 0xD1, 0xD4, 0xD3, 0x85, 0xD3, 0x86, 0xD3, 0x87, /* 0x00-0x03 */ | 9242 | 0xD1, 0xD4, 0xD3, 0x85, 0xD3, 0x86, 0xD3, 0x87, /* 0x00-0x03 */ |
9243 | 0xD3, 0x88, 0xD3, 0x89, 0xD3, 0x8A, 0xD9, 0xEA, /* 0x04-0x07 */ | 9243 | 0xD3, 0x88, 0xD3, 0x89, 0xD3, 0x8A, 0xD9, 0xEA, /* 0x04-0x07 */ |
9244 | 0xD3, 0x8B, 0xD3, 0x8C, 0xD3, 0x8D, 0xD3, 0x8E, /* 0x08-0x0B */ | 9244 | 0xD3, 0x8B, 0xD3, 0x8C, 0xD3, 0x8D, 0xD3, 0x8E, /* 0x08-0x0B */ |
@@ -9306,7 +9306,7 @@ static unsigned char u2c_8A[512] = { | |||
9306 | 0xD6, 0x58, 0xD6, 0x59, 0xD6, 0x5A, 0xD6, 0x5B, /* 0xFC-0xFF */ | 9306 | 0xD6, 0x58, 0xD6, 0x59, 0xD6, 0x5A, 0xD6, 0x5B, /* 0xFC-0xFF */ |
9307 | }; | 9307 | }; |
9308 | 9308 | ||
9309 | static unsigned char u2c_8B[512] = { | 9309 | static const unsigned char u2c_8B[512] = { |
9310 | 0xD6, 0x5C, 0xD6, 0x5D, 0xD6, 0x5E, 0xD6, 0x5F, /* 0x00-0x03 */ | 9310 | 0xD6, 0x5C, 0xD6, 0x5D, 0xD6, 0x5E, 0xD6, 0x5F, /* 0x00-0x03 */ |
9311 | 0xD6, 0x60, 0xD6, 0x61, 0xD6, 0x62, 0xE5, 0xC0, /* 0x04-0x07 */ | 9311 | 0xD6, 0x60, 0xD6, 0x61, 0xD6, 0x62, 0xE5, 0xC0, /* 0x04-0x07 */ |
9312 | 0xD6, 0x63, 0xD6, 0x64, 0xD6, 0x65, 0xD6, 0x66, /* 0x08-0x0B */ | 9312 | 0xD6, 0x63, 0xD6, 0x64, 0xD6, 0x65, 0xD6, 0x66, /* 0x08-0x0B */ |
@@ -9374,7 +9374,7 @@ static unsigned char u2c_8B[512] = { | |||
9374 | 0xDA, 0xC2, 0xB7, 0xCC, 0xBF, 0xCE, 0xDA, 0xC3, /* 0xFC-0xFF */ | 9374 | 0xDA, 0xC2, 0xB7, 0xCC, 0xBF, 0xCE, 0xDA, 0xC3, /* 0xFC-0xFF */ |
9375 | }; | 9375 | }; |
9376 | 9376 | ||
9377 | static unsigned char u2c_8C[512] = { | 9377 | static const unsigned char u2c_8C[512] = { |
9378 | 0xDA, 0xC4, 0xCB, 0xAD, 0xDA, 0xC5, 0xB5, 0xF7, /* 0x00-0x03 */ | 9378 | 0xDA, 0xC4, 0xCB, 0xAD, 0xDA, 0xC5, 0xB5, 0xF7, /* 0x00-0x03 */ |
9379 | 0xDA, 0xC6, 0xC1, 0xC2, 0xD7, 0xBB, 0xDA, 0xC7, /* 0x04-0x07 */ | 9379 | 0xDA, 0xC6, 0xC1, 0xC2, 0xD7, 0xBB, 0xDA, 0xC7, /* 0x04-0x07 */ |
9380 | 0xCC, 0xB8, 0xD7, 0x9F, 0xD2, 0xEA, 0xC4, 0xB1, /* 0x08-0x0B */ | 9380 | 0xCC, 0xB8, 0xD7, 0x9F, 0xD2, 0xEA, 0xC4, 0xB1, /* 0x08-0x0B */ |
@@ -9442,7 +9442,7 @@ static unsigned char u2c_8C[512] = { | |||
9442 | 0xD9, 0x8F, 0xD9, 0x90, 0xD9, 0x91, 0xD9, 0x92, /* 0xFC-0xFF */ | 9442 | 0xD9, 0x8F, 0xD9, 0x90, 0xD9, 0x91, 0xD9, 0x92, /* 0xFC-0xFF */ |
9443 | }; | 9443 | }; |
9444 | 9444 | ||
9445 | static unsigned char u2c_8D[512] = { | 9445 | static const unsigned char u2c_8D[512] = { |
9446 | 0xD9, 0x93, 0xD9, 0x94, 0xD9, 0x95, 0xD9, 0x96, /* 0x00-0x03 */ | 9446 | 0xD9, 0x93, 0xD9, 0x94, 0xD9, 0x95, 0xD9, 0x96, /* 0x00-0x03 */ |
9447 | 0xD9, 0x97, 0xD9, 0x98, 0xD9, 0x99, 0xD9, 0x9A, /* 0x04-0x07 */ | 9447 | 0xD9, 0x97, 0xD9, 0x98, 0xD9, 0x99, 0xD9, 0x9A, /* 0x04-0x07 */ |
9448 | 0xD9, 0x9B, 0xD9, 0x9C, 0xD9, 0x9D, 0xD9, 0x9E, /* 0x08-0x0B */ | 9448 | 0xD9, 0x9B, 0xD9, 0x9C, 0xD9, 0x9D, 0xD9, 0x9E, /* 0x08-0x0B */ |
@@ -9510,7 +9510,7 @@ static unsigned char u2c_8D[512] = { | |||
9510 | 0xDB, 0x52, 0xF5, 0xD5, 0xDB, 0x53, 0xDB, 0x54, /* 0xFC-0xFF */ | 9510 | 0xDB, 0x52, 0xF5, 0xD5, 0xDB, 0x53, 0xDB, 0x54, /* 0xFC-0xFF */ |
9511 | }; | 9511 | }; |
9512 | 9512 | ||
9513 | static unsigned char u2c_8E[512] = { | 9513 | static const unsigned char u2c_8E[512] = { |
9514 | 0xDB, 0x55, 0xDB, 0x56, 0xDB, 0x57, 0xDB, 0x58, /* 0x00-0x03 */ | 9514 | 0xDB, 0x55, 0xDB, 0x56, 0xDB, 0x57, 0xDB, 0x58, /* 0x00-0x03 */ |
9515 | 0xDB, 0x59, 0xF5, 0xBD, 0xDB, 0x5A, 0xDB, 0x5B, /* 0x04-0x07 */ | 9515 | 0xDB, 0x59, 0xF5, 0xBD, 0xDB, 0x5A, 0xDB, 0x5B, /* 0x04-0x07 */ |
9516 | 0xDB, 0x5C, 0xF5, 0xD4, 0xD3, 0xBB, 0xDB, 0x5D, /* 0x08-0x0B */ | 9516 | 0xDB, 0x5C, 0xF5, 0xD4, 0xD3, 0xBB, 0xDB, 0x5D, /* 0x08-0x0B */ |
@@ -9578,7 +9578,7 @@ static unsigned char u2c_8E[512] = { | |||
9578 | 0xDD, 0x57, 0xDD, 0x58, 0xDD, 0x59, 0xDD, 0x5A, /* 0xFC-0xFF */ | 9578 | 0xDD, 0x57, 0xDD, 0x58, 0xDD, 0x59, 0xDD, 0x5A, /* 0xFC-0xFF */ |
9579 | }; | 9579 | }; |
9580 | 9580 | ||
9581 | static unsigned char u2c_8F[512] = { | 9581 | static const unsigned char u2c_8F[512] = { |
9582 | 0xDD, 0x5B, 0xDD, 0x5C, 0xDD, 0x5D, 0xDD, 0x5E, /* 0x00-0x03 */ | 9582 | 0xDD, 0x5B, 0xDD, 0x5C, 0xDD, 0x5D, 0xDD, 0x5E, /* 0x00-0x03 */ |
9583 | 0xDD, 0x5F, 0xDD, 0x60, 0xDD, 0x61, 0xDD, 0x62, /* 0x04-0x07 */ | 9583 | 0xDD, 0x5F, 0xDD, 0x60, 0xDD, 0x61, 0xDD, 0x62, /* 0x04-0x07 */ |
9584 | 0xDD, 0x63, 0xDD, 0x64, 0xDD, 0x65, 0xDD, 0x66, /* 0x08-0x0B */ | 9584 | 0xDD, 0x63, 0xDD, 0x64, 0xDD, 0x65, 0xDD, 0x66, /* 0x08-0x0B */ |
@@ -9646,7 +9646,7 @@ static unsigned char u2c_8F[512] = { | |||
9646 | 0xDE, 0x97, 0xD7, 0xB7, 0xDE, 0x98, 0xDE, 0x99, /* 0xFC-0xFF */ | 9646 | 0xDE, 0x97, 0xD7, 0xB7, 0xDE, 0x98, 0xDE, 0x99, /* 0xFC-0xFF */ |
9647 | }; | 9647 | }; |
9648 | 9648 | ||
9649 | static unsigned char u2c_90[512] = { | 9649 | static const unsigned char u2c_90[512] = { |
9650 | 0xCD, 0xCB, 0xCB, 0xCD, 0xCA, 0xCA, 0xCC, 0xD3, /* 0x00-0x03 */ | 9650 | 0xCD, 0xCB, 0xCB, 0xCD, 0xCA, 0xCA, 0xCC, 0xD3, /* 0x00-0x03 */ |
9651 | 0xE5, 0xCC, 0xE5, 0xCB, 0xC4, 0xE6, 0xDE, 0x9A, /* 0x04-0x07 */ | 9651 | 0xE5, 0xCC, 0xE5, 0xCB, 0xC4, 0xE6, 0xDE, 0x9A, /* 0x04-0x07 */ |
9652 | 0xDE, 0x9B, 0xD1, 0xA1, 0xD1, 0xB7, 0xE5, 0xCD, /* 0x08-0x0B */ | 9652 | 0xDE, 0x9B, 0xD1, 0xA1, 0xD1, 0xB7, 0xE5, 0xCD, /* 0x08-0x0B */ |
@@ -9714,7 +9714,7 @@ static unsigned char u2c_90[512] = { | |||
9714 | 0xE0, 0x63, 0xB6, 0xBC, 0xDB, 0xB1, 0xE0, 0x64, /* 0xFC-0xFF */ | 9714 | 0xE0, 0x63, 0xB6, 0xBC, 0xDB, 0xB1, 0xE0, 0x64, /* 0xFC-0xFF */ |
9715 | }; | 9715 | }; |
9716 | 9716 | ||
9717 | static unsigned char u2c_91[512] = { | 9717 | static const unsigned char u2c_91[512] = { |
9718 | 0xE0, 0x65, 0xE0, 0x66, 0xB6, 0xF5, 0xE0, 0x67, /* 0x00-0x03 */ | 9718 | 0xE0, 0x65, 0xE0, 0x66, 0xB6, 0xF5, 0xE0, 0x67, /* 0x00-0x03 */ |
9719 | 0xDB, 0xB2, 0xE0, 0x68, 0xE0, 0x69, 0xE0, 0x6A, /* 0x04-0x07 */ | 9719 | 0xDB, 0xB2, 0xE0, 0x68, 0xE0, 0x69, 0xE0, 0x6A, /* 0x04-0x07 */ |
9720 | 0xE0, 0x6B, 0xE0, 0x6C, 0xE0, 0x6D, 0xE0, 0x6E, /* 0x08-0x0B */ | 9720 | 0xE0, 0x6B, 0xE0, 0x6C, 0xE0, 0x6D, 0xE0, 0x6E, /* 0x08-0x0B */ |
@@ -9782,7 +9782,7 @@ static unsigned char u2c_91[512] = { | |||
9782 | 0xE2, 0x56, 0xE2, 0x57, 0xE2, 0x58, 0xE2, 0x59, /* 0xFC-0xFF */ | 9782 | 0xE2, 0x56, 0xE2, 0x57, 0xE2, 0x58, 0xE2, 0x59, /* 0xFC-0xFF */ |
9783 | }; | 9783 | }; |
9784 | 9784 | ||
9785 | static unsigned char u2c_92[512] = { | 9785 | static const unsigned char u2c_92[512] = { |
9786 | 0xE2, 0x5A, 0xE2, 0x5B, 0xE2, 0x5C, 0xE2, 0x5D, /* 0x00-0x03 */ | 9786 | 0xE2, 0x5A, 0xE2, 0x5B, 0xE2, 0x5C, 0xE2, 0x5D, /* 0x00-0x03 */ |
9787 | 0xE2, 0x5E, 0xE2, 0x5F, 0xE2, 0x60, 0xE2, 0x61, /* 0x04-0x07 */ | 9787 | 0xE2, 0x5E, 0xE2, 0x5F, 0xE2, 0x60, 0xE2, 0x61, /* 0x04-0x07 */ |
9788 | 0xE2, 0x62, 0xE2, 0x63, 0xE2, 0x64, 0xE2, 0x65, /* 0x08-0x0B */ | 9788 | 0xE2, 0x62, 0xE2, 0x63, 0xE2, 0x64, 0xE2, 0x65, /* 0x08-0x0B */ |
@@ -9850,7 +9850,7 @@ static unsigned char u2c_92[512] = { | |||
9850 | 0xE4, 0x93, 0xE4, 0x94, 0xE4, 0x95, 0xE4, 0x96, /* 0xFC-0xFF */ | 9850 | 0xE4, 0x93, 0xE4, 0x94, 0xE4, 0x95, 0xE4, 0x96, /* 0xFC-0xFF */ |
9851 | }; | 9851 | }; |
9852 | 9852 | ||
9853 | static unsigned char u2c_93[512] = { | 9853 | static const unsigned char u2c_93[512] = { |
9854 | 0xE4, 0x97, 0xE4, 0x98, 0xE4, 0x99, 0xE4, 0x9A, /* 0x00-0x03 */ | 9854 | 0xE4, 0x97, 0xE4, 0x98, 0xE4, 0x99, 0xE4, 0x9A, /* 0x00-0x03 */ |
9855 | 0xE4, 0x9B, 0xE4, 0x9C, 0xE4, 0x9D, 0xE4, 0x9E, /* 0x04-0x07 */ | 9855 | 0xE4, 0x9B, 0xE4, 0x9C, 0xE4, 0x9D, 0xE4, 0x9E, /* 0x04-0x07 */ |
9856 | 0xE4, 0x9F, 0xE4, 0xA0, 0xE5, 0x40, 0xE5, 0x41, /* 0x08-0x0B */ | 9856 | 0xE4, 0x9F, 0xE4, 0xA0, 0xE5, 0x40, 0xE5, 0x41, /* 0x08-0x0B */ |
@@ -9918,7 +9918,7 @@ static unsigned char u2c_93[512] = { | |||
9918 | 0xE7, 0x6D, 0xE7, 0x6E, 0xE7, 0x6F, 0xE7, 0x70, /* 0xFC-0xFF */ | 9918 | 0xE7, 0x6D, 0xE7, 0x6E, 0xE7, 0x6F, 0xE7, 0x70, /* 0xFC-0xFF */ |
9919 | }; | 9919 | }; |
9920 | 9920 | ||
9921 | static unsigned char u2c_94[512] = { | 9921 | static const unsigned char u2c_94[512] = { |
9922 | 0xE7, 0x71, 0xE7, 0x72, 0xE7, 0x73, 0xE7, 0x74, /* 0x00-0x03 */ | 9922 | 0xE7, 0x71, 0xE7, 0x72, 0xE7, 0x73, 0xE7, 0x74, /* 0x00-0x03 */ |
9923 | 0xE7, 0x75, 0xE7, 0x76, 0xE7, 0x77, 0xE7, 0x78, /* 0x04-0x07 */ | 9923 | 0xE7, 0x75, 0xE7, 0x76, 0xE7, 0x77, 0xE7, 0x78, /* 0x04-0x07 */ |
9924 | 0xE7, 0x79, 0xE7, 0x7A, 0xE7, 0x7B, 0xE7, 0x7C, /* 0x08-0x0B */ | 9924 | 0xE7, 0x79, 0xE7, 0x7A, 0xE7, 0x7B, 0xE7, 0x7C, /* 0x08-0x0B */ |
@@ -9986,7 +9986,7 @@ static unsigned char u2c_94[512] = { | |||
9986 | 0xEF, 0xAA, 0xEF, 0xAB, 0xC1, 0xB4, 0xEF, 0xAC, /* 0xFC-0xFF */ | 9986 | 0xEF, 0xAA, 0xEF, 0xAB, 0xC1, 0xB4, 0xEF, 0xAC, /* 0xFC-0xFF */ |
9987 | }; | 9987 | }; |
9988 | 9988 | ||
9989 | static unsigned char u2c_95[512] = { | 9989 | static const unsigned char u2c_95[512] = { |
9990 | 0xCF, 0xFA, 0xCB, 0xF8, 0xEF, 0xAE, 0xEF, 0xAD, /* 0x00-0x03 */ | 9990 | 0xCF, 0xFA, 0xCB, 0xF8, 0xEF, 0xAE, 0xEF, 0xAD, /* 0x00-0x03 */ |
9991 | 0xB3, 0xFA, 0xB9, 0xF8, 0xEF, 0xAF, 0xEF, 0xB0, /* 0x04-0x07 */ | 9991 | 0xB3, 0xFA, 0xB9, 0xF8, 0xEF, 0xAF, 0xEF, 0xB0, /* 0x04-0x07 */ |
9992 | 0xD0, 0xE2, 0xEF, 0xB1, 0xEF, 0xB2, 0xB7, 0xE6, /* 0x08-0x0B */ | 9992 | 0xD0, 0xE2, 0xEF, 0xB1, 0xEF, 0xB2, 0xB7, 0xE6, /* 0x08-0x0B */ |
@@ -10054,7 +10054,7 @@ static unsigned char u2c_95[512] = { | |||
10054 | 0xE3, 0xCB, 0xC3, 0xF6, 0xE3, 0xCC, 0xEA, 0x5D, /* 0xFC-0xFF */ | 10054 | 0xE3, 0xCB, 0xC3, 0xF6, 0xE3, 0xCC, 0xEA, 0x5D, /* 0xFC-0xFF */ |
10055 | }; | 10055 | }; |
10056 | 10056 | ||
10057 | static unsigned char u2c_96[512] = { | 10057 | static const unsigned char u2c_96[512] = { |
10058 | 0xB7, 0xA7, 0xB8, 0xF3, 0xBA, 0xD2, 0xE3, 0xCD, /* 0x00-0x03 */ | 10058 | 0xB7, 0xA7, 0xB8, 0xF3, 0xBA, 0xD2, 0xE3, 0xCD, /* 0x00-0x03 */ |
10059 | 0xE3, 0xCE, 0xD4, 0xC4, 0xE3, 0xCF, 0xEA, 0x5E, /* 0x04-0x07 */ | 10059 | 0xE3, 0xCE, 0xD4, 0xC4, 0xE3, 0xCF, 0xEA, 0x5E, /* 0x04-0x07 */ |
10060 | 0xE3, 0xD0, 0xD1, 0xCB, 0xE3, 0xD1, 0xE3, 0xD2, /* 0x08-0x0B */ | 10060 | 0xE3, 0xD0, 0xD1, 0xCB, 0xE3, 0xD1, 0xE3, 0xD2, /* 0x08-0x0B */ |
@@ -10122,7 +10122,7 @@ static unsigned char u2c_96[512] = { | |||
10122 | 0xEB, 0x8B, 0xEB, 0x8C, 0xCE, 0xED, 0xEB, 0x8D, /* 0xFC-0xFF */ | 10122 | 0xEB, 0x8B, 0xEB, 0x8C, 0xCE, 0xED, 0xEB, 0x8D, /* 0xFC-0xFF */ |
10123 | }; | 10123 | }; |
10124 | 10124 | ||
10125 | static unsigned char u2c_97[512] = { | 10125 | static const unsigned char u2c_97[512] = { |
10126 | 0xD0, 0xE8, 0xF6, 0xAB, 0xEB, 0x8E, 0xEB, 0x8F, /* 0x00-0x03 */ | 10126 | 0xD0, 0xE8, 0xF6, 0xAB, 0xEB, 0x8E, 0xEB, 0x8F, /* 0x00-0x03 */ |
10127 | 0xCF, 0xF6, 0xEB, 0x90, 0xF6, 0xAA, 0xD5, 0xF0, /* 0x04-0x07 */ | 10127 | 0xCF, 0xF6, 0xEB, 0x90, 0xF6, 0xAA, 0xD5, 0xF0, /* 0x04-0x07 */ |
10128 | 0xF6, 0xAC, 0xC3, 0xB9, 0xEB, 0x91, 0xEB, 0x92, /* 0x08-0x0B */ | 10128 | 0xF6, 0xAC, 0xC3, 0xB9, 0xEB, 0x91, 0xEB, 0x92, /* 0x08-0x0B */ |
@@ -10190,7 +10190,7 @@ static unsigned char u2c_97[512] = { | |||
10190 | 0xED, 0x8E, 0xED, 0x8F, 0xED, 0x90, 0xED, 0x91, /* 0xFC-0xFF */ | 10190 | 0xED, 0x8E, 0xED, 0x8F, 0xED, 0x90, 0xED, 0x91, /* 0xFC-0xFF */ |
10191 | }; | 10191 | }; |
10192 | 10192 | ||
10193 | static unsigned char u2c_98[512] = { | 10193 | static const unsigned char u2c_98[512] = { |
10194 | 0xED, 0x92, 0xED, 0x93, 0xED, 0x94, 0xED, 0x95, /* 0x00-0x03 */ | 10194 | 0xED, 0x92, 0xED, 0x93, 0xED, 0x94, 0xED, 0x95, /* 0x00-0x03 */ |
10195 | 0xED, 0x96, 0xED, 0x97, 0xED, 0x98, 0xED, 0x99, /* 0x04-0x07 */ | 10195 | 0xED, 0x96, 0xED, 0x97, 0xED, 0x98, 0xED, 0x99, /* 0x04-0x07 */ |
10196 | 0xED, 0x9A, 0xED, 0x9B, 0xED, 0x9C, 0xED, 0x9D, /* 0x08-0x0B */ | 10196 | 0xED, 0x9A, 0xED, 0x9B, 0xED, 0x9C, 0xED, 0x9D, /* 0x08-0x0B */ |
@@ -10258,7 +10258,7 @@ static unsigned char u2c_98[512] = { | |||
10258 | 0xEF, 0x95, 0xEF, 0x96, 0xEF, 0x97, 0xEF, 0x98, /* 0xFC-0xFF */ | 10258 | 0xEF, 0x95, 0xEF, 0x96, 0xEF, 0x97, 0xEF, 0x98, /* 0xFC-0xFF */ |
10259 | }; | 10259 | }; |
10260 | 10260 | ||
10261 | static unsigned char u2c_99[512] = { | 10261 | static const unsigned char u2c_99[512] = { |
10262 | 0xEF, 0x99, 0xEF, 0x9A, 0xEF, 0x9B, 0xEF, 0x9C, /* 0x00-0x03 */ | 10262 | 0xEF, 0x99, 0xEF, 0x9A, 0xEF, 0x9B, 0xEF, 0x9C, /* 0x00-0x03 */ |
10263 | 0xEF, 0x9D, 0xEF, 0x9E, 0xEF, 0x9F, 0xEF, 0xA0, /* 0x04-0x07 */ | 10263 | 0xEF, 0x9D, 0xEF, 0x9E, 0xEF, 0x9F, 0xEF, 0xA0, /* 0x04-0x07 */ |
10264 | 0xF0, 0x40, 0xF0, 0x41, 0xF0, 0x42, 0xF0, 0x43, /* 0x08-0x0B */ | 10264 | 0xF0, 0x40, 0xF0, 0x41, 0xF0, 0x42, 0xF0, 0x43, /* 0x08-0x0B */ |
@@ -10326,7 +10326,7 @@ static unsigned char u2c_99[512] = { | |||
10326 | 0xF2, 0x42, 0xF2, 0x43, 0xF2, 0x44, 0xF2, 0x45, /* 0xFC-0xFF */ | 10326 | 0xF2, 0x42, 0xF2, 0x43, 0xF2, 0x44, 0xF2, 0x45, /* 0xFC-0xFF */ |
10327 | }; | 10327 | }; |
10328 | 10328 | ||
10329 | static unsigned char u2c_9A[512] = { | 10329 | static const unsigned char u2c_9A[512] = { |
10330 | 0xF2, 0x46, 0xF2, 0x47, 0xF2, 0x48, 0xF2, 0x49, /* 0x00-0x03 */ | 10330 | 0xF2, 0x46, 0xF2, 0x47, 0xF2, 0x48, 0xF2, 0x49, /* 0x00-0x03 */ |
10331 | 0xF2, 0x4A, 0xF2, 0x4B, 0xF2, 0x4C, 0xF2, 0x4D, /* 0x04-0x07 */ | 10331 | 0xF2, 0x4A, 0xF2, 0x4B, 0xF2, 0x4C, 0xF2, 0x4D, /* 0x04-0x07 */ |
10332 | 0xF2, 0x4E, 0xF2, 0x4F, 0xF2, 0x50, 0xF2, 0x51, /* 0x08-0x0B */ | 10332 | 0xF2, 0x4E, 0xF2, 0x4F, 0xF2, 0x50, 0xF2, 0x51, /* 0x08-0x0B */ |
@@ -10394,7 +10394,7 @@ static unsigned char u2c_9A[512] = { | |||
10394 | 0xF3, 0x97, 0xF3, 0x98, 0xF3, 0x99, 0xF3, 0x9A, /* 0xFC-0xFF */ | 10394 | 0xF3, 0x97, 0xF3, 0x98, 0xF3, 0x99, 0xF3, 0x9A, /* 0xFC-0xFF */ |
10395 | }; | 10395 | }; |
10396 | 10396 | ||
10397 | static unsigned char u2c_9B[512] = { | 10397 | static const unsigned char u2c_9B[512] = { |
10398 | 0xF3, 0x9B, 0xF3, 0x9C, 0xF3, 0x9D, 0xD7, 0xD7, /* 0x00-0x03 */ | 10398 | 0xF3, 0x9B, 0xF3, 0x9C, 0xF3, 0x9D, 0xD7, 0xD7, /* 0x00-0x03 */ |
10399 | 0xF3, 0x9E, 0xF3, 0x9F, 0xF3, 0xA0, 0xF4, 0x40, /* 0x04-0x07 */ | 10399 | 0xF3, 0x9E, 0xF3, 0x9F, 0xF3, 0xA0, 0xF4, 0x40, /* 0x04-0x07 */ |
10400 | 0xF7, 0xDC, 0xF4, 0x41, 0xF4, 0x42, 0xF4, 0x43, /* 0x08-0x0B */ | 10400 | 0xF7, 0xDC, 0xF4, 0x41, 0xF4, 0x42, 0xF4, 0x43, /* 0x08-0x0B */ |
@@ -10462,7 +10462,7 @@ static unsigned char u2c_9B[512] = { | |||
10462 | 0xF6, 0x60, 0xF6, 0x61, 0xF6, 0x62, 0xF6, 0x63, /* 0xFC-0xFF */ | 10462 | 0xF6, 0x60, 0xF6, 0x61, 0xF6, 0x62, 0xF6, 0x63, /* 0xFC-0xFF */ |
10463 | }; | 10463 | }; |
10464 | 10464 | ||
10465 | static unsigned char u2c_9C[512] = { | 10465 | static const unsigned char u2c_9C[512] = { |
10466 | 0xF6, 0x64, 0xF6, 0x65, 0xF6, 0x66, 0xF6, 0x67, /* 0x00-0x03 */ | 10466 | 0xF6, 0x64, 0xF6, 0x65, 0xF6, 0x66, 0xF6, 0x67, /* 0x00-0x03 */ |
10467 | 0xF6, 0x68, 0xF6, 0x69, 0xF6, 0x6A, 0xF6, 0x6B, /* 0x04-0x07 */ | 10467 | 0xF6, 0x68, 0xF6, 0x69, 0xF6, 0x6A, 0xF6, 0x6B, /* 0x04-0x07 */ |
10468 | 0xF6, 0x6C, 0xF6, 0x6D, 0xF6, 0x6E, 0xF6, 0x6F, /* 0x08-0x0B */ | 10468 | 0xF6, 0x6C, 0xF6, 0x6D, 0xF6, 0x6E, 0xF6, 0x6F, /* 0x08-0x0B */ |
@@ -10530,7 +10530,7 @@ static unsigned char u2c_9C[512] = { | |||
10530 | 0xF8, 0x59, 0xF8, 0x5A, 0xF8, 0x5B, 0xF8, 0x5C, /* 0xFC-0xFF */ | 10530 | 0xF8, 0x59, 0xF8, 0x5A, 0xF8, 0x5B, 0xF8, 0x5C, /* 0xFC-0xFF */ |
10531 | }; | 10531 | }; |
10532 | 10532 | ||
10533 | static unsigned char u2c_9D[512] = { | 10533 | static const unsigned char u2c_9D[512] = { |
10534 | 0xF8, 0x5D, 0xF8, 0x5E, 0xF8, 0x5F, 0xF8, 0x60, /* 0x00-0x03 */ | 10534 | 0xF8, 0x5D, 0xF8, 0x5E, 0xF8, 0x5F, 0xF8, 0x60, /* 0x00-0x03 */ |
10535 | 0xF8, 0x61, 0xF8, 0x62, 0xF8, 0x63, 0xF8, 0x64, /* 0x04-0x07 */ | 10535 | 0xF8, 0x61, 0xF8, 0x62, 0xF8, 0x63, 0xF8, 0x64, /* 0x04-0x07 */ |
10536 | 0xF8, 0x65, 0xF8, 0x66, 0xF8, 0x67, 0xF8, 0x68, /* 0x08-0x0B */ | 10536 | 0xF8, 0x65, 0xF8, 0x66, 0xF8, 0x67, 0xF8, 0x68, /* 0x08-0x0B */ |
@@ -10598,7 +10598,7 @@ static unsigned char u2c_9D[512] = { | |||
10598 | 0xFA, 0x9A, 0xFA, 0x9B, 0xFA, 0x9C, 0xFA, 0x9D, /* 0xFC-0xFF */ | 10598 | 0xFA, 0x9A, 0xFA, 0x9B, 0xFA, 0x9C, 0xFA, 0x9D, /* 0xFC-0xFF */ |
10599 | }; | 10599 | }; |
10600 | 10600 | ||
10601 | static unsigned char u2c_9E[512] = { | 10601 | static const unsigned char u2c_9E[512] = { |
10602 | 0xFA, 0x9E, 0xFA, 0x9F, 0xFA, 0xA0, 0xFB, 0x40, /* 0x00-0x03 */ | 10602 | 0xFA, 0x9E, 0xFA, 0x9F, 0xFA, 0xA0, 0xFB, 0x40, /* 0x00-0x03 */ |
10603 | 0xFB, 0x41, 0xFB, 0x42, 0xFB, 0x43, 0xFB, 0x44, /* 0x04-0x07 */ | 10603 | 0xFB, 0x41, 0xFB, 0x42, 0xFB, 0x43, 0xFB, 0x44, /* 0x04-0x07 */ |
10604 | 0xFB, 0x45, 0xFB, 0x46, 0xFB, 0x47, 0xFB, 0x48, /* 0x08-0x0B */ | 10604 | 0xFB, 0x45, 0xFB, 0x46, 0xFB, 0x47, 0xFB, 0x48, /* 0x08-0x0B */ |
@@ -10666,7 +10666,7 @@ static unsigned char u2c_9E[512] = { | |||
10666 | 0xED, 0xEB, 0xFC, 0x77, 0xF6, 0xBC, 0xFC, 0x78, /* 0xFC-0xFF */ | 10666 | 0xED, 0xEB, 0xFC, 0x77, 0xF6, 0xBC, 0xFC, 0x78, /* 0xFC-0xFF */ |
10667 | }; | 10667 | }; |
10668 | 10668 | ||
10669 | static unsigned char u2c_9F[512] = { | 10669 | static const unsigned char u2c_9F[512] = { |
10670 | 0xFC, 0x79, 0xFC, 0x7A, 0xFC, 0x7B, 0xFC, 0x7C, /* 0x00-0x03 */ | 10670 | 0xFC, 0x79, 0xFC, 0x7A, 0xFC, 0x7B, 0xFC, 0x7C, /* 0x00-0x03 */ |
10671 | 0xFC, 0x7D, 0xFC, 0x7E, 0xFC, 0x80, 0xFC, 0x81, /* 0x04-0x07 */ | 10671 | 0xFC, 0x7D, 0xFC, 0x7E, 0xFC, 0x80, 0xFC, 0x81, /* 0x04-0x07 */ |
10672 | 0xFC, 0x82, 0xFC, 0x83, 0xFC, 0x84, 0xF6, 0xBD, /* 0x08-0x0B */ | 10672 | 0xFC, 0x82, 0xFC, 0x83, 0xFC, 0x84, 0xF6, 0xBD, /* 0x08-0x0B */ |
@@ -10712,11 +10712,11 @@ static unsigned char u2c_9F[512] = { | |||
10712 | 0xFD, 0x9A, 0xFD, 0x9B, 0x00, 0x00, 0x00, 0x00, /* 0xA4-0xA7 */ | 10712 | 0xFD, 0x9A, 0xFD, 0x9B, 0x00, 0x00, 0x00, 0x00, /* 0xA4-0xA7 */ |
10713 | }; | 10713 | }; |
10714 | 10714 | ||
10715 | static unsigned char u2c_DC[512] = { | 10715 | static const unsigned char u2c_DC[512] = { |
10716 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x00-0x03 */ | 10716 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x00-0x03 */ |
10717 | }; | 10717 | }; |
10718 | 10718 | ||
10719 | static unsigned char u2c_F9[512] = { | 10719 | static const unsigned char u2c_F9[512] = { |
10720 | 0xD8, 0x4D, 0xB8, 0xFC, 0xDC, 0x87, 0xD9, 0x5A, /* 0x00-0x03 */ | 10720 | 0xD8, 0x4D, 0xB8, 0xFC, 0xDC, 0x87, 0xD9, 0x5A, /* 0x00-0x03 */ |
10721 | 0xBB, 0xAC, 0xB4, 0xAE, 0xBE, 0xE4, 0xFD, 0x94, /* 0x04-0x07 */ | 10721 | 0xBB, 0xAC, 0xB4, 0xAE, 0xBE, 0xE4, 0xFD, 0x94, /* 0x04-0x07 */ |
10722 | 0xFD, 0x94, 0xC6, 0xF5, 0xBD, 0xF0, 0xC0, 0xAE, /* 0x08-0x0B */ | 10722 | 0xFD, 0x94, 0xC6, 0xF5, 0xBD, 0xF0, 0xC0, 0xAE, /* 0x08-0x0B */ |
@@ -10784,7 +10784,7 @@ static unsigned char u2c_F9[512] = { | |||
10784 | 0xD7, 0x52, 0xCA, 0xB2, 0xB2, 0xE8, 0xB4, 0xCC, /* 0xFC-0xFF */ | 10784 | 0xD7, 0x52, 0xCA, 0xB2, 0xB2, 0xE8, 0xB4, 0xCC, /* 0xFC-0xFF */ |
10785 | }; | 10785 | }; |
10786 | 10786 | ||
10787 | static unsigned char u2c_FA[512] = { | 10787 | static const unsigned char u2c_FA[512] = { |
10788 | 0xC7, 0xD0, 0xB6, 0xC8, 0xCD, 0xD8, 0xCC, 0xC7, /* 0x00-0x03 */ | 10788 | 0xC7, 0xD0, 0xB6, 0xC8, 0xCD, 0xD8, 0xCC, 0xC7, /* 0x00-0x03 */ |
10789 | 0xD5, 0xAC, 0xB6, 0xB4, 0xB1, 0xA9, 0xDD, 0x97, /* 0x04-0x07 */ | 10789 | 0xD5, 0xAC, 0xB6, 0xB4, 0xB1, 0xA9, 0xDD, 0x97, /* 0x04-0x07 */ |
10790 | 0xD0, 0xD0, 0xBD, 0xB5, 0xD2, 0x8A, 0xC0, 0xAA, /* 0x08-0x0B */ | 10790 | 0xD0, 0xD0, 0xBD, 0xB5, 0xD2, 0x8A, 0xC0, 0xAA, /* 0x08-0x0B */ |
@@ -10799,7 +10799,7 @@ static unsigned char u2c_FA[512] = { | |||
10799 | 0xF0, 0x5E, 0xFA, 0x51, 0x00, 0x00, 0x00, 0x00, /* 0x2C-0x2F */ | 10799 | 0xF0, 0x5E, 0xFA, 0x51, 0x00, 0x00, 0x00, 0x00, /* 0x2C-0x2F */ |
10800 | }; | 10800 | }; |
10801 | 10801 | ||
10802 | static unsigned char u2c_FE[512] = { | 10802 | static const unsigned char u2c_FE[512] = { |
10803 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x00-0x03 */ | 10803 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x00-0x03 */ |
10804 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x04-0x07 */ | 10804 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x04-0x07 */ |
10805 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x08-0x0B */ | 10805 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x08-0x0B */ |
@@ -10829,7 +10829,7 @@ static unsigned char u2c_FE[512] = { | |||
10829 | 0xA9, 0x85, 0xA9, 0x86, 0xA9, 0x87, 0xA9, 0x88, /* 0x68-0x6B */ | 10829 | 0xA9, 0x85, 0xA9, 0x86, 0xA9, 0x87, 0xA9, 0x88, /* 0x68-0x6B */ |
10830 | }; | 10830 | }; |
10831 | 10831 | ||
10832 | static unsigned char u2c_FF[512] = { | 10832 | static const unsigned char u2c_FF[512] = { |
10833 | 0x00, 0x00, 0xA3, 0xA1, 0xA3, 0xA2, 0xA3, 0xA3, /* 0x00-0x03 */ | 10833 | 0x00, 0x00, 0xA3, 0xA1, 0xA3, 0xA2, 0xA3, 0xA3, /* 0x00-0x03 */ |
10834 | 0xA1, 0xE7, 0xA3, 0xA5, 0xA3, 0xA6, 0xA3, 0xA7, /* 0x04-0x07 */ | 10834 | 0xA1, 0xE7, 0xA3, 0xA5, 0xA3, 0xA6, 0xA3, 0xA7, /* 0x04-0x07 */ |
10835 | 0xA3, 0xA8, 0xA3, 0xA9, 0xA3, 0xAA, 0xA3, 0xAB, /* 0x08-0x0B */ | 10835 | 0xA3, 0xA8, 0xA3, 0xA9, 0xA3, 0xAA, 0xA3, 0xAB, /* 0x08-0x0B */ |
@@ -10891,7 +10891,7 @@ static unsigned char u2c_FF[512] = { | |||
10891 | 0xA9, 0x57, 0xA3, 0xA4, 0x00, 0x00, 0x00, 0x00, /* 0xE4-0xE7 */ | 10891 | 0xA9, 0x57, 0xA3, 0xA4, 0x00, 0x00, 0x00, 0x00, /* 0xE4-0xE7 */ |
10892 | }; | 10892 | }; |
10893 | 10893 | ||
10894 | static unsigned char *page_uni2charset[256] = { | 10894 | static const unsigned char *const page_uni2charset[256] = { |
10895 | u2c_00, u2c_01, u2c_02, u2c_03, u2c_04, NULL, NULL, NULL, | 10895 | u2c_00, u2c_01, u2c_02, u2c_03, u2c_04, NULL, NULL, NULL, |
10896 | NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, | 10896 | NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, |
10897 | NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, | 10897 | NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, |
@@ -10925,7 +10925,7 @@ static unsigned char *page_uni2charset[256] = { | |||
10925 | NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, | 10925 | NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, |
10926 | NULL, u2c_F9, u2c_FA, NULL, NULL, NULL, u2c_FE, u2c_FF, }; | 10926 | NULL, u2c_F9, u2c_FA, NULL, NULL, NULL, u2c_FE, u2c_FF, }; |
10927 | 10927 | ||
10928 | static unsigned char charset2lower[256] = { | 10928 | static const unsigned char charset2lower[256] = { |
10929 | 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, /* 0x00-0x07 */ | 10929 | 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, /* 0x00-0x07 */ |
10930 | 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, /* 0x08-0x0f */ | 10930 | 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, /* 0x08-0x0f */ |
10931 | 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17, /* 0x10-0x17 */ | 10931 | 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17, /* 0x10-0x17 */ |
@@ -10961,7 +10961,7 @@ static unsigned char charset2lower[256] = { | |||
10961 | 0xf8, 0xf9, 0xfa, 0xfb, 0xfc, 0xfd, 0xfe, 0xff, /* 0xf8-0xff */ | 10961 | 0xf8, 0xf9, 0xfa, 0xfb, 0xfc, 0xfd, 0xfe, 0xff, /* 0xf8-0xff */ |
10962 | }; | 10962 | }; |
10963 | 10963 | ||
10964 | static unsigned char charset2upper[256] = { | 10964 | static const unsigned char charset2upper[256] = { |
10965 | 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, /* 0x00-0x07 */ | 10965 | 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, /* 0x00-0x07 */ |
10966 | 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, /* 0x08-0x0f */ | 10966 | 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, /* 0x08-0x0f */ |
10967 | 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17, /* 0x10-0x17 */ | 10967 | 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17, /* 0x10-0x17 */ |
@@ -11000,7 +11000,7 @@ static unsigned char charset2upper[256] = { | |||
11000 | static int uni2char(const wchar_t uni, | 11000 | static int uni2char(const wchar_t uni, |
11001 | unsigned char *out, int boundlen) | 11001 | unsigned char *out, int boundlen) |
11002 | { | 11002 | { |
11003 | unsigned char *uni2charset; | 11003 | const unsigned char *uni2charset; |
11004 | unsigned char cl = uni&0xFF; | 11004 | unsigned char cl = uni&0xFF; |
11005 | unsigned char ch = (uni>>8)&0xFF; | 11005 | unsigned char ch = (uni>>8)&0xFF; |
11006 | unsigned char out0,out1; | 11006 | unsigned char out0,out1; |
@@ -11050,7 +11050,7 @@ static int char2uni(const unsigned char *rawstring, int boundlen, | |||
11050 | wchar_t *uni) | 11050 | wchar_t *uni) |
11051 | { | 11051 | { |
11052 | unsigned char ch, cl; | 11052 | unsigned char ch, cl; |
11053 | wchar_t *charset2uni; | 11053 | const wchar_t *charset2uni; |
11054 | int n; | 11054 | int n; |
11055 | 11055 | ||
11056 | if (boundlen <= 0) | 11056 | if (boundlen <= 0) |
diff --git a/fs/nls/nls_cp949.c b/fs/nls/nls_cp949.c index 92ae19372f0f..8a7a2fe85c65 100644 --- a/fs/nls/nls_cp949.c +++ b/fs/nls/nls_cp949.c | |||
@@ -13,7 +13,7 @@ | |||
13 | #include <linux/nls.h> | 13 | #include <linux/nls.h> |
14 | #include <linux/errno.h> | 14 | #include <linux/errno.h> |
15 | 15 | ||
16 | static wchar_t c2u_81[256] = { | 16 | static const wchar_t c2u_81[256] = { |
17 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x00-0x07 */ | 17 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x00-0x07 */ |
18 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x08-0x0F */ | 18 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x08-0x0F */ |
19 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x10-0x17 */ | 19 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x10-0x17 */ |
@@ -49,7 +49,7 @@ static wchar_t c2u_81[256] = { | |||
49 | 0xAD09,0xAD0A,0xAD0B,0xAD0E,0xAD10,0xAD12,0xAD13,0x0000,/* 0xF8-0xFF */ | 49 | 0xAD09,0xAD0A,0xAD0B,0xAD0E,0xAD10,0xAD12,0xAD13,0x0000,/* 0xF8-0xFF */ |
50 | }; | 50 | }; |
51 | 51 | ||
52 | static wchar_t c2u_82[256] = { | 52 | static const wchar_t c2u_82[256] = { |
53 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x00-0x07 */ | 53 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x00-0x07 */ |
54 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x08-0x0F */ | 54 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x08-0x0F */ |
55 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x10-0x17 */ | 55 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x10-0x17 */ |
@@ -85,7 +85,7 @@ static wchar_t c2u_82[256] = { | |||
85 | 0xADF1,0xADF2,0xADF3,0xADF4,0xADF5,0xADF6,0xADF7,0x0000,/* 0xF8-0xFF */ | 85 | 0xADF1,0xADF2,0xADF3,0xADF4,0xADF5,0xADF6,0xADF7,0x0000,/* 0xF8-0xFF */ |
86 | }; | 86 | }; |
87 | 87 | ||
88 | static wchar_t c2u_83[256] = { | 88 | static const wchar_t c2u_83[256] = { |
89 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x00-0x07 */ | 89 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x00-0x07 */ |
90 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x08-0x0F */ | 90 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x08-0x0F */ |
91 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x10-0x17 */ | 91 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x10-0x17 */ |
@@ -121,7 +121,7 @@ static wchar_t c2u_83[256] = { | |||
121 | 0xAEDF,0xAEE0,0xAEE1,0xAEE2,0xAEE3,0xAEE4,0xAEE5,0x0000,/* 0xF8-0xFF */ | 121 | 0xAEDF,0xAEE0,0xAEE1,0xAEE2,0xAEE3,0xAEE4,0xAEE5,0x0000,/* 0xF8-0xFF */ |
122 | }; | 122 | }; |
123 | 123 | ||
124 | static wchar_t c2u_84[256] = { | 124 | static const wchar_t c2u_84[256] = { |
125 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x00-0x07 */ | 125 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x00-0x07 */ |
126 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x08-0x0F */ | 126 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x08-0x0F */ |
127 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x10-0x17 */ | 127 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x10-0x17 */ |
@@ -157,7 +157,7 @@ static wchar_t c2u_84[256] = { | |||
157 | 0xAFB5,0xAFB6,0xAFB7,0xAFBA,0xAFBB,0xAFBD,0xAFBE,0x0000,/* 0xF8-0xFF */ | 157 | 0xAFB5,0xAFB6,0xAFB7,0xAFBA,0xAFBB,0xAFBD,0xAFBE,0x0000,/* 0xF8-0xFF */ |
158 | }; | 158 | }; |
159 | 159 | ||
160 | static wchar_t c2u_85[256] = { | 160 | static const wchar_t c2u_85[256] = { |
161 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x00-0x07 */ | 161 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x00-0x07 */ |
162 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x08-0x0F */ | 162 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x08-0x0F */ |
163 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x10-0x17 */ | 163 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x10-0x17 */ |
@@ -193,7 +193,7 @@ static wchar_t c2u_85[256] = { | |||
193 | 0xB096,0xB097,0xB09B,0xB09D,0xB09E,0xB0A3,0xB0A4,0x0000,/* 0xF8-0xFF */ | 193 | 0xB096,0xB097,0xB09B,0xB09D,0xB09E,0xB0A3,0xB0A4,0x0000,/* 0xF8-0xFF */ |
194 | }; | 194 | }; |
195 | 195 | ||
196 | static wchar_t c2u_86[256] = { | 196 | static const wchar_t c2u_86[256] = { |
197 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x00-0x07 */ | 197 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x00-0x07 */ |
198 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x08-0x0F */ | 198 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x08-0x0F */ |
199 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x10-0x17 */ | 199 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x10-0x17 */ |
@@ -229,7 +229,7 @@ static wchar_t c2u_86[256] = { | |||
229 | 0xB195,0xB196,0xB197,0xB199,0xB19A,0xB19B,0xB19D,0x0000,/* 0xF8-0xFF */ | 229 | 0xB195,0xB196,0xB197,0xB199,0xB19A,0xB19B,0xB19D,0x0000,/* 0xF8-0xFF */ |
230 | }; | 230 | }; |
231 | 231 | ||
232 | static wchar_t c2u_87[256] = { | 232 | static const wchar_t c2u_87[256] = { |
233 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x00-0x07 */ | 233 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x00-0x07 */ |
234 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x08-0x0F */ | 234 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x08-0x0F */ |
235 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x10-0x17 */ | 235 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x10-0x17 */ |
@@ -265,7 +265,7 @@ static wchar_t c2u_87[256] = { | |||
265 | 0xB266,0xB267,0xB26A,0xB26B,0xB26C,0xB26D,0xB26E,0x0000,/* 0xF8-0xFF */ | 265 | 0xB266,0xB267,0xB26A,0xB26B,0xB26C,0xB26D,0xB26E,0x0000,/* 0xF8-0xFF */ |
266 | }; | 266 | }; |
267 | 267 | ||
268 | static wchar_t c2u_88[256] = { | 268 | static const wchar_t c2u_88[256] = { |
269 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x00-0x07 */ | 269 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x00-0x07 */ |
270 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x08-0x0F */ | 270 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x08-0x0F */ |
271 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x10-0x17 */ | 271 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x10-0x17 */ |
@@ -301,7 +301,7 @@ static wchar_t c2u_88[256] = { | |||
301 | 0xB359,0xB35A,0xB35D,0xB360,0xB361,0xB362,0xB363,0x0000,/* 0xF8-0xFF */ | 301 | 0xB359,0xB35A,0xB35D,0xB360,0xB361,0xB362,0xB363,0x0000,/* 0xF8-0xFF */ |
302 | }; | 302 | }; |
303 | 303 | ||
304 | static wchar_t c2u_89[256] = { | 304 | static const wchar_t c2u_89[256] = { |
305 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x00-0x07 */ | 305 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x00-0x07 */ |
306 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x08-0x0F */ | 306 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x08-0x0F */ |
307 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x10-0x17 */ | 307 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x10-0x17 */ |
@@ -337,7 +337,7 @@ static wchar_t c2u_89[256] = { | |||
337 | 0xB43E,0xB43F,0xB440,0xB441,0xB442,0xB443,0xB444,0x0000,/* 0xF8-0xFF */ | 337 | 0xB43E,0xB43F,0xB440,0xB441,0xB442,0xB443,0xB444,0x0000,/* 0xF8-0xFF */ |
338 | }; | 338 | }; |
339 | 339 | ||
340 | static wchar_t c2u_8A[256] = { | 340 | static const wchar_t c2u_8A[256] = { |
341 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x00-0x07 */ | 341 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x00-0x07 */ |
342 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x08-0x0F */ | 342 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x08-0x0F */ |
343 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x10-0x17 */ | 343 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x10-0x17 */ |
@@ -373,7 +373,7 @@ static wchar_t c2u_8A[256] = { | |||
373 | 0xB512,0xB513,0xB516,0xB517,0xB519,0xB51A,0xB51D,0x0000,/* 0xF8-0xFF */ | 373 | 0xB512,0xB513,0xB516,0xB517,0xB519,0xB51A,0xB51D,0x0000,/* 0xF8-0xFF */ |
374 | }; | 374 | }; |
375 | 375 | ||
376 | static wchar_t c2u_8B[256] = { | 376 | static const wchar_t c2u_8B[256] = { |
377 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x00-0x07 */ | 377 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x00-0x07 */ |
378 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x08-0x0F */ | 378 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x08-0x0F */ |
379 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x10-0x17 */ | 379 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x10-0x17 */ |
@@ -409,7 +409,7 @@ static wchar_t c2u_8B[256] = { | |||
409 | 0xB5F9,0xB5FA,0xB5FB,0xB5FC,0xB5FD,0xB5FE,0xB5FF,0x0000,/* 0xF8-0xFF */ | 409 | 0xB5F9,0xB5FA,0xB5FB,0xB5FC,0xB5FD,0xB5FE,0xB5FF,0x0000,/* 0xF8-0xFF */ |
410 | }; | 410 | }; |
411 | 411 | ||
412 | static wchar_t c2u_8C[256] = { | 412 | static const wchar_t c2u_8C[256] = { |
413 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x00-0x07 */ | 413 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x00-0x07 */ |
414 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x08-0x0F */ | 414 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x08-0x0F */ |
415 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x10-0x17 */ | 415 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x10-0x17 */ |
@@ -445,7 +445,7 @@ static wchar_t c2u_8C[256] = { | |||
445 | 0xB6BC,0xB6BD,0xB6BE,0xB6BF,0xB6C0,0xB6C1,0xB6C2,0x0000,/* 0xF8-0xFF */ | 445 | 0xB6BC,0xB6BD,0xB6BE,0xB6BF,0xB6C0,0xB6C1,0xB6C2,0x0000,/* 0xF8-0xFF */ |
446 | }; | 446 | }; |
447 | 447 | ||
448 | static wchar_t c2u_8D[256] = { | 448 | static const wchar_t c2u_8D[256] = { |
449 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x00-0x07 */ | 449 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x00-0x07 */ |
450 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x08-0x0F */ | 450 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x08-0x0F */ |
451 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x10-0x17 */ | 451 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x10-0x17 */ |
@@ -481,7 +481,7 @@ static wchar_t c2u_8D[256] = { | |||
481 | 0xB793,0xB794,0xB795,0xB79A,0xB79B,0xB79D,0xB79E,0x0000,/* 0xF8-0xFF */ | 481 | 0xB793,0xB794,0xB795,0xB79A,0xB79B,0xB79D,0xB79E,0x0000,/* 0xF8-0xFF */ |
482 | }; | 482 | }; |
483 | 483 | ||
484 | static wchar_t c2u_8E[256] = { | 484 | static const wchar_t c2u_8E[256] = { |
485 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x00-0x07 */ | 485 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x00-0x07 */ |
486 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x08-0x0F */ | 486 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x08-0x0F */ |
487 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x10-0x17 */ | 487 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x10-0x17 */ |
@@ -517,7 +517,7 @@ static wchar_t c2u_8E[256] = { | |||
517 | 0xB87E,0xB87F,0xB880,0xB881,0xB882,0xB883,0xB884,0x0000,/* 0xF8-0xFF */ | 517 | 0xB87E,0xB87F,0xB880,0xB881,0xB882,0xB883,0xB884,0x0000,/* 0xF8-0xFF */ |
518 | }; | 518 | }; |
519 | 519 | ||
520 | static wchar_t c2u_8F[256] = { | 520 | static const wchar_t c2u_8F[256] = { |
521 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x00-0x07 */ | 521 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x00-0x07 */ |
522 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x08-0x0F */ | 522 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x08-0x0F */ |
523 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x10-0x17 */ | 523 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x10-0x17 */ |
@@ -553,7 +553,7 @@ static wchar_t c2u_8F[256] = { | |||
553 | 0xB950,0xB952,0xB953,0xB954,0xB955,0xB956,0xB957,0x0000,/* 0xF8-0xFF */ | 553 | 0xB950,0xB952,0xB953,0xB954,0xB955,0xB956,0xB957,0x0000,/* 0xF8-0xFF */ |
554 | }; | 554 | }; |
555 | 555 | ||
556 | static wchar_t c2u_90[256] = { | 556 | static const wchar_t c2u_90[256] = { |
557 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x00-0x07 */ | 557 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x00-0x07 */ |
558 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x08-0x0F */ | 558 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x08-0x0F */ |
559 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x10-0x17 */ | 559 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x10-0x17 */ |
@@ -589,7 +589,7 @@ static wchar_t c2u_90[256] = { | |||
589 | 0xBA3E,0xBA3F,0xBA41,0xBA43,0xBA44,0xBA45,0xBA46,0x0000,/* 0xF8-0xFF */ | 589 | 0xBA3E,0xBA3F,0xBA41,0xBA43,0xBA44,0xBA45,0xBA46,0x0000,/* 0xF8-0xFF */ |
590 | }; | 590 | }; |
591 | 591 | ||
592 | static wchar_t c2u_91[256] = { | 592 | static const wchar_t c2u_91[256] = { |
593 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x00-0x07 */ | 593 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x00-0x07 */ |
594 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x08-0x0F */ | 594 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x08-0x0F */ |
595 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x10-0x17 */ | 595 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x10-0x17 */ |
@@ -625,7 +625,7 @@ static wchar_t c2u_91[256] = { | |||
625 | 0xBB21,0xBB22,0xBB23,0xBB24,0xBB25,0xBB26,0xBB27,0x0000,/* 0xF8-0xFF */ | 625 | 0xBB21,0xBB22,0xBB23,0xBB24,0xBB25,0xBB26,0xBB27,0x0000,/* 0xF8-0xFF */ |
626 | }; | 626 | }; |
627 | 627 | ||
628 | static wchar_t c2u_92[256] = { | 628 | static const wchar_t c2u_92[256] = { |
629 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x00-0x07 */ | 629 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x00-0x07 */ |
630 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x08-0x0F */ | 630 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x08-0x0F */ |
631 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x10-0x17 */ | 631 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x10-0x17 */ |
@@ -661,7 +661,7 @@ static wchar_t c2u_92[256] = { | |||
661 | 0xBBF6,0xBBF7,0xBBFA,0xBBFB,0xBBFD,0xBBFE,0xBC01,0x0000,/* 0xF8-0xFF */ | 661 | 0xBBF6,0xBBF7,0xBBFA,0xBBFB,0xBBFD,0xBBFE,0xBC01,0x0000,/* 0xF8-0xFF */ |
662 | }; | 662 | }; |
663 | 663 | ||
664 | static wchar_t c2u_93[256] = { | 664 | static const wchar_t c2u_93[256] = { |
665 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x00-0x07 */ | 665 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x00-0x07 */ |
666 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x08-0x0F */ | 666 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x08-0x0F */ |
667 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x10-0x17 */ | 667 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x10-0x17 */ |
@@ -697,7 +697,7 @@ static wchar_t c2u_93[256] = { | |||
697 | 0xBCF2,0xBCF3,0xBCF7,0xBCF9,0xBCFA,0xBCFB,0xBCFD,0x0000,/* 0xF8-0xFF */ | 697 | 0xBCF2,0xBCF3,0xBCF7,0xBCF9,0xBCFA,0xBCFB,0xBCFD,0x0000,/* 0xF8-0xFF */ |
698 | }; | 698 | }; |
699 | 699 | ||
700 | static wchar_t c2u_94[256] = { | 700 | static const wchar_t c2u_94[256] = { |
701 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x00-0x07 */ | 701 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x00-0x07 */ |
702 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x08-0x0F */ | 702 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x08-0x0F */ |
703 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x10-0x17 */ | 703 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x10-0x17 */ |
@@ -733,7 +733,7 @@ static wchar_t c2u_94[256] = { | |||
733 | 0xBDCB,0xBDCC,0xBDCD,0xBDCE,0xBDCF,0xBDD0,0xBDD1,0x0000,/* 0xF8-0xFF */ | 733 | 0xBDCB,0xBDCC,0xBDCD,0xBDCE,0xBDCF,0xBDD0,0xBDD1,0x0000,/* 0xF8-0xFF */ |
734 | }; | 734 | }; |
735 | 735 | ||
736 | static wchar_t c2u_95[256] = { | 736 | static const wchar_t c2u_95[256] = { |
737 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x00-0x07 */ | 737 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x00-0x07 */ |
738 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x08-0x0F */ | 738 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x08-0x0F */ |
739 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x10-0x17 */ | 739 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x10-0x17 */ |
@@ -769,7 +769,7 @@ static wchar_t c2u_95[256] = { | |||
769 | 0xBEB1,0xBEB2,0xBEB3,0xBEB4,0xBEB5,0xBEB6,0xBEB7,0x0000,/* 0xF8-0xFF */ | 769 | 0xBEB1,0xBEB2,0xBEB3,0xBEB4,0xBEB5,0xBEB6,0xBEB7,0x0000,/* 0xF8-0xFF */ |
770 | }; | 770 | }; |
771 | 771 | ||
772 | static wchar_t c2u_96[256] = { | 772 | static const wchar_t c2u_96[256] = { |
773 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x00-0x07 */ | 773 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x00-0x07 */ |
774 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x08-0x0F */ | 774 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x08-0x0F */ |
775 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x10-0x17 */ | 775 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x10-0x17 */ |
@@ -805,7 +805,7 @@ static wchar_t c2u_96[256] = { | |||
805 | 0xBF7C,0xBF7D,0xBF7E,0xBF7F,0xBF80,0xBF81,0xBF82,0x0000,/* 0xF8-0xFF */ | 805 | 0xBF7C,0xBF7D,0xBF7E,0xBF7F,0xBF80,0xBF81,0xBF82,0x0000,/* 0xF8-0xFF */ |
806 | }; | 806 | }; |
807 | 807 | ||
808 | static wchar_t c2u_97[256] = { | 808 | static const wchar_t c2u_97[256] = { |
809 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x00-0x07 */ | 809 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x00-0x07 */ |
810 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x08-0x0F */ | 810 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x08-0x0F */ |
811 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x10-0x17 */ | 811 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x10-0x17 */ |
@@ -841,7 +841,7 @@ static wchar_t c2u_97[256] = { | |||
841 | 0xC038,0xC039,0xC03A,0xC03B,0xC03D,0xC03E,0xC03F,0x0000,/* 0xF8-0xFF */ | 841 | 0xC038,0xC039,0xC03A,0xC03B,0xC03D,0xC03E,0xC03F,0x0000,/* 0xF8-0xFF */ |
842 | }; | 842 | }; |
843 | 843 | ||
844 | static wchar_t c2u_98[256] = { | 844 | static const wchar_t c2u_98[256] = { |
845 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x00-0x07 */ | 845 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x00-0x07 */ |
846 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x08-0x0F */ | 846 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x08-0x0F */ |
847 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x10-0x17 */ | 847 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x10-0x17 */ |
@@ -877,7 +877,7 @@ static wchar_t c2u_98[256] = { | |||
877 | 0xC122,0xC125,0xC128,0xC129,0xC12A,0xC12B,0xC12E,0x0000,/* 0xF8-0xFF */ | 877 | 0xC122,0xC125,0xC128,0xC129,0xC12A,0xC12B,0xC12E,0x0000,/* 0xF8-0xFF */ |
878 | }; | 878 | }; |
879 | 879 | ||
880 | static wchar_t c2u_99[256] = { | 880 | static const wchar_t c2u_99[256] = { |
881 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x00-0x07 */ | 881 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x00-0x07 */ |
882 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x08-0x0F */ | 882 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x08-0x0F */ |
883 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x10-0x17 */ | 883 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x10-0x17 */ |
@@ -913,7 +913,7 @@ static wchar_t c2u_99[256] = { | |||
913 | 0xC21A,0xC21B,0xC21D,0xC21E,0xC221,0xC222,0xC223,0x0000,/* 0xF8-0xFF */ | 913 | 0xC21A,0xC21B,0xC21D,0xC21E,0xC221,0xC222,0xC223,0x0000,/* 0xF8-0xFF */ |
914 | }; | 914 | }; |
915 | 915 | ||
916 | static wchar_t c2u_9A[256] = { | 916 | static const wchar_t c2u_9A[256] = { |
917 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x00-0x07 */ | 917 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x00-0x07 */ |
918 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x08-0x0F */ | 918 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x08-0x0F */ |
919 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x10-0x17 */ | 919 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x10-0x17 */ |
@@ -949,7 +949,7 @@ static wchar_t c2u_9A[256] = { | |||
949 | 0xC305,0xC306,0xC307,0xC30A,0xC30B,0xC30E,0xC30F,0x0000,/* 0xF8-0xFF */ | 949 | 0xC305,0xC306,0xC307,0xC30A,0xC30B,0xC30E,0xC30F,0x0000,/* 0xF8-0xFF */ |
950 | }; | 950 | }; |
951 | 951 | ||
952 | static wchar_t c2u_9B[256] = { | 952 | static const wchar_t c2u_9B[256] = { |
953 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x00-0x07 */ | 953 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x00-0x07 */ |
954 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x08-0x0F */ | 954 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x08-0x0F */ |
955 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x10-0x17 */ | 955 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x10-0x17 */ |
@@ -985,7 +985,7 @@ static wchar_t c2u_9B[256] = { | |||
985 | 0xC3D2,0xC3D3,0xC3D4,0xC3D5,0xC3D6,0xC3D7,0xC3DA,0x0000,/* 0xF8-0xFF */ | 985 | 0xC3D2,0xC3D3,0xC3D4,0xC3D5,0xC3D6,0xC3D7,0xC3DA,0x0000,/* 0xF8-0xFF */ |
986 | }; | 986 | }; |
987 | 987 | ||
988 | static wchar_t c2u_9C[256] = { | 988 | static const wchar_t c2u_9C[256] = { |
989 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x00-0x07 */ | 989 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x00-0x07 */ |
990 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x08-0x0F */ | 990 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x08-0x0F */ |
991 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x10-0x17 */ | 991 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x10-0x17 */ |
@@ -1021,7 +1021,7 @@ static wchar_t c2u_9C[256] = { | |||
1021 | 0xC4A3,0xC4A4,0xC4A5,0xC4A6,0xC4A7,0xC4A8,0xC4A9,0x0000,/* 0xF8-0xFF */ | 1021 | 0xC4A3,0xC4A4,0xC4A5,0xC4A6,0xC4A7,0xC4A8,0xC4A9,0x0000,/* 0xF8-0xFF */ |
1022 | }; | 1022 | }; |
1023 | 1023 | ||
1024 | static wchar_t c2u_9D[256] = { | 1024 | static const wchar_t c2u_9D[256] = { |
1025 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x00-0x07 */ | 1025 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x00-0x07 */ |
1026 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x08-0x0F */ | 1026 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x08-0x0F */ |
1027 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x10-0x17 */ | 1027 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x10-0x17 */ |
@@ -1057,7 +1057,7 @@ static wchar_t c2u_9D[256] = { | |||
1057 | 0xC58A,0xC58B,0xC58E,0xC590,0xC592,0xC593,0xC594,0x0000,/* 0xF8-0xFF */ | 1057 | 0xC58A,0xC58B,0xC58E,0xC590,0xC592,0xC593,0xC594,0x0000,/* 0xF8-0xFF */ |
1058 | }; | 1058 | }; |
1059 | 1059 | ||
1060 | static wchar_t c2u_9E[256] = { | 1060 | static const wchar_t c2u_9E[256] = { |
1061 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x00-0x07 */ | 1061 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x00-0x07 */ |
1062 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x08-0x0F */ | 1062 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x08-0x0F */ |
1063 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x10-0x17 */ | 1063 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x10-0x17 */ |
@@ -1093,7 +1093,7 @@ static wchar_t c2u_9E[256] = { | |||
1093 | 0xC69E,0xC69F,0xC6A0,0xC6A1,0xC6A2,0xC6A3,0xC6A6,0x0000,/* 0xF8-0xFF */ | 1093 | 0xC69E,0xC69F,0xC6A0,0xC6A1,0xC6A2,0xC6A3,0xC6A6,0x0000,/* 0xF8-0xFF */ |
1094 | }; | 1094 | }; |
1095 | 1095 | ||
1096 | static wchar_t c2u_9F[256] = { | 1096 | static const wchar_t c2u_9F[256] = { |
1097 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x00-0x07 */ | 1097 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x00-0x07 */ |
1098 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x08-0x0F */ | 1098 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x08-0x0F */ |
1099 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x10-0x17 */ | 1099 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x10-0x17 */ |
@@ -1129,7 +1129,7 @@ static wchar_t c2u_9F[256] = { | |||
1129 | 0xC7AF,0xC7B1,0xC7B2,0xC7B3,0xC7B5,0xC7B6,0xC7B7,0x0000,/* 0xF8-0xFF */ | 1129 | 0xC7AF,0xC7B1,0xC7B2,0xC7B3,0xC7B5,0xC7B6,0xC7B7,0x0000,/* 0xF8-0xFF */ |
1130 | }; | 1130 | }; |
1131 | 1131 | ||
1132 | static wchar_t c2u_A0[256] = { | 1132 | static const wchar_t c2u_A0[256] = { |
1133 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x00-0x07 */ | 1133 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x00-0x07 */ |
1134 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x08-0x0F */ | 1134 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x08-0x0F */ |
1135 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x10-0x17 */ | 1135 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x10-0x17 */ |
@@ -1165,7 +1165,7 @@ static wchar_t c2u_A0[256] = { | |||
1165 | 0xC89B,0xC89C,0xC89E,0xC8A0,0xC8A2,0xC8A3,0xC8A4,0x0000,/* 0xF8-0xFF */ | 1165 | 0xC89B,0xC89C,0xC89E,0xC8A0,0xC8A2,0xC8A3,0xC8A4,0x0000,/* 0xF8-0xFF */ |
1166 | }; | 1166 | }; |
1167 | 1167 | ||
1168 | static wchar_t c2u_A1[256] = { | 1168 | static const wchar_t c2u_A1[256] = { |
1169 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x00-0x07 */ | 1169 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x00-0x07 */ |
1170 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x08-0x0F */ | 1170 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x08-0x0F */ |
1171 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x10-0x17 */ | 1171 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x10-0x17 */ |
@@ -1201,7 +1201,7 @@ static wchar_t c2u_A1[256] = { | |||
1201 | 0x2282,0x2283,0x222A,0x2229,0x2227,0x2228,0xFFE2,0x0000,/* 0xF8-0xFF */ | 1201 | 0x2282,0x2283,0x222A,0x2229,0x2227,0x2228,0xFFE2,0x0000,/* 0xF8-0xFF */ |
1202 | }; | 1202 | }; |
1203 | 1203 | ||
1204 | static wchar_t c2u_A2[256] = { | 1204 | static const wchar_t c2u_A2[256] = { |
1205 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x00-0x07 */ | 1205 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x00-0x07 */ |
1206 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x08-0x0F */ | 1206 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x08-0x0F */ |
1207 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x10-0x17 */ | 1207 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x10-0x17 */ |
@@ -1234,7 +1234,7 @@ static wchar_t c2u_A2[256] = { | |||
1234 | 0x2116,0x33C7,0x2122,0x33C2,0x33D8,0x2121,0x20AC,0x00AE,/* 0xE0-0xE7 */ | 1234 | 0x2116,0x33C7,0x2122,0x33C2,0x33D8,0x2121,0x20AC,0x00AE,/* 0xE0-0xE7 */ |
1235 | }; | 1235 | }; |
1236 | 1236 | ||
1237 | static wchar_t c2u_A3[256] = { | 1237 | static const wchar_t c2u_A3[256] = { |
1238 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x00-0x07 */ | 1238 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x00-0x07 */ |
1239 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x08-0x0F */ | 1239 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x08-0x0F */ |
1240 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x10-0x17 */ | 1240 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x10-0x17 */ |
@@ -1270,7 +1270,7 @@ static wchar_t c2u_A3[256] = { | |||
1270 | 0xFF58,0xFF59,0xFF5A,0xFF5B,0xFF5C,0xFF5D,0xFFE3,0x0000,/* 0xF8-0xFF */ | 1270 | 0xFF58,0xFF59,0xFF5A,0xFF5B,0xFF5C,0xFF5D,0xFFE3,0x0000,/* 0xF8-0xFF */ |
1271 | }; | 1271 | }; |
1272 | 1272 | ||
1273 | static wchar_t c2u_A4[256] = { | 1273 | static const wchar_t c2u_A4[256] = { |
1274 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x00-0x07 */ | 1274 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x00-0x07 */ |
1275 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x08-0x0F */ | 1275 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x08-0x0F */ |
1276 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x10-0x17 */ | 1276 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x10-0x17 */ |
@@ -1306,7 +1306,7 @@ static wchar_t c2u_A4[256] = { | |||
1306 | 0x3188,0x3189,0x318A,0x318B,0x318C,0x318D,0x318E,0x0000,/* 0xF8-0xFF */ | 1306 | 0x3188,0x3189,0x318A,0x318B,0x318C,0x318D,0x318E,0x0000,/* 0xF8-0xFF */ |
1307 | }; | 1307 | }; |
1308 | 1308 | ||
1309 | static wchar_t c2u_A5[256] = { | 1309 | static const wchar_t c2u_A5[256] = { |
1310 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x00-0x07 */ | 1310 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x00-0x07 */ |
1311 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x08-0x0F */ | 1311 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x08-0x0F */ |
1312 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x10-0x17 */ | 1312 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x10-0x17 */ |
@@ -1342,7 +1342,7 @@ static wchar_t c2u_A5[256] = { | |||
1342 | 0x03C9,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0xF8-0xFF */ | 1342 | 0x03C9,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0xF8-0xFF */ |
1343 | }; | 1343 | }; |
1344 | 1344 | ||
1345 | static wchar_t c2u_A6[256] = { | 1345 | static const wchar_t c2u_A6[256] = { |
1346 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x00-0x07 */ | 1346 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x00-0x07 */ |
1347 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x08-0x0F */ | 1347 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x08-0x0F */ |
1348 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x10-0x17 */ | 1348 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x10-0x17 */ |
@@ -1375,7 +1375,7 @@ static wchar_t c2u_A6[256] = { | |||
1375 | 0x2546,0x2547,0x2548,0x2549,0x254A,0x0000,0x0000,0x0000,/* 0xE0-0xE7 */ | 1375 | 0x2546,0x2547,0x2548,0x2549,0x254A,0x0000,0x0000,0x0000,/* 0xE0-0xE7 */ |
1376 | }; | 1376 | }; |
1377 | 1377 | ||
1378 | static wchar_t c2u_A7[256] = { | 1378 | static const wchar_t c2u_A7[256] = { |
1379 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x00-0x07 */ | 1379 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x00-0x07 */ |
1380 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x08-0x0F */ | 1380 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x08-0x0F */ |
1381 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x10-0x17 */ | 1381 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x10-0x17 */ |
@@ -1409,7 +1409,7 @@ static wchar_t c2u_A7[256] = { | |||
1409 | 0x33AC,0x33DD,0x33D0,0x33D3,0x33C3,0x33C9,0x33DC,0x33C6,/* 0xE8-0xEF */ | 1409 | 0x33AC,0x33DD,0x33D0,0x33D3,0x33C3,0x33C9,0x33DC,0x33C6,/* 0xE8-0xEF */ |
1410 | }; | 1410 | }; |
1411 | 1411 | ||
1412 | static wchar_t c2u_A8[256] = { | 1412 | static const wchar_t c2u_A8[256] = { |
1413 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x00-0x07 */ | 1413 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x00-0x07 */ |
1414 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x08-0x0F */ | 1414 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x08-0x0F */ |
1415 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x10-0x17 */ | 1415 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x10-0x17 */ |
@@ -1445,7 +1445,7 @@ static wchar_t c2u_A8[256] = { | |||
1445 | 0x2154,0x00BC,0x00BE,0x215B,0x215C,0x215D,0x215E,0x0000,/* 0xF8-0xFF */ | 1445 | 0x2154,0x00BC,0x00BE,0x215B,0x215C,0x215D,0x215E,0x0000,/* 0xF8-0xFF */ |
1446 | }; | 1446 | }; |
1447 | 1447 | ||
1448 | static wchar_t c2u_A9[256] = { | 1448 | static const wchar_t c2u_A9[256] = { |
1449 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x00-0x07 */ | 1449 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x00-0x07 */ |
1450 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x08-0x0F */ | 1450 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x08-0x0F */ |
1451 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x10-0x17 */ | 1451 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x10-0x17 */ |
@@ -1481,7 +1481,7 @@ static wchar_t c2u_A9[256] = { | |||
1481 | 0x00B3,0x2074,0x207F,0x2081,0x2082,0x2083,0x2084,0x0000,/* 0xF8-0xFF */ | 1481 | 0x00B3,0x2074,0x207F,0x2081,0x2082,0x2083,0x2084,0x0000,/* 0xF8-0xFF */ |
1482 | }; | 1482 | }; |
1483 | 1483 | ||
1484 | static wchar_t c2u_AA[256] = { | 1484 | static const wchar_t c2u_AA[256] = { |
1485 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x00-0x07 */ | 1485 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x00-0x07 */ |
1486 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x08-0x0F */ | 1486 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x08-0x0F */ |
1487 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x10-0x17 */ | 1487 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x10-0x17 */ |
@@ -1516,7 +1516,7 @@ static wchar_t c2u_AA[256] = { | |||
1516 | 0x3090,0x3091,0x3092,0x3093,0x0000,0x0000,0x0000,0x0000,/* 0xF0-0xF7 */ | 1516 | 0x3090,0x3091,0x3092,0x3093,0x0000,0x0000,0x0000,0x0000,/* 0xF0-0xF7 */ |
1517 | }; | 1517 | }; |
1518 | 1518 | ||
1519 | static wchar_t c2u_AB[256] = { | 1519 | static const wchar_t c2u_AB[256] = { |
1520 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x00-0x07 */ | 1520 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x00-0x07 */ |
1521 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x08-0x0F */ | 1521 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x08-0x0F */ |
1522 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x10-0x17 */ | 1522 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x10-0x17 */ |
@@ -1551,7 +1551,7 @@ static wchar_t c2u_AB[256] = { | |||
1551 | 0x30F0,0x30F1,0x30F2,0x30F3,0x30F4,0x30F5,0x30F6,0x0000,/* 0xF0-0xF7 */ | 1551 | 0x30F0,0x30F1,0x30F2,0x30F3,0x30F4,0x30F5,0x30F6,0x0000,/* 0xF0-0xF7 */ |
1552 | }; | 1552 | }; |
1553 | 1553 | ||
1554 | static wchar_t c2u_AC[256] = { | 1554 | static const wchar_t c2u_AC[256] = { |
1555 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x00-0x07 */ | 1555 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x00-0x07 */ |
1556 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x08-0x0F */ | 1556 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x08-0x0F */ |
1557 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x10-0x17 */ | 1557 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x10-0x17 */ |
@@ -1586,7 +1586,7 @@ static wchar_t c2u_AC[256] = { | |||
1586 | 0x044E,0x044F,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0xF0-0xF7 */ | 1586 | 0x044E,0x044F,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0xF0-0xF7 */ |
1587 | }; | 1587 | }; |
1588 | 1588 | ||
1589 | static wchar_t c2u_AD[256] = { | 1589 | static const wchar_t c2u_AD[256] = { |
1590 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x00-0x07 */ | 1590 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x00-0x07 */ |
1591 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x08-0x0F */ | 1591 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x08-0x0F */ |
1592 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x10-0x17 */ | 1592 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x10-0x17 */ |
@@ -1611,7 +1611,7 @@ static wchar_t c2u_AD[256] = { | |||
1611 | 0xCDC5,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0xA0-0xA7 */ | 1611 | 0xCDC5,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0xA0-0xA7 */ |
1612 | }; | 1612 | }; |
1613 | 1613 | ||
1614 | static wchar_t c2u_AE[256] = { | 1614 | static const wchar_t c2u_AE[256] = { |
1615 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x00-0x07 */ | 1615 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x00-0x07 */ |
1616 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x08-0x0F */ | 1616 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x08-0x0F */ |
1617 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x10-0x17 */ | 1617 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x10-0x17 */ |
@@ -1636,7 +1636,7 @@ static wchar_t c2u_AE[256] = { | |||
1636 | 0xCE2B,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0xA0-0xA7 */ | 1636 | 0xCE2B,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0xA0-0xA7 */ |
1637 | }; | 1637 | }; |
1638 | 1638 | ||
1639 | static wchar_t c2u_AF[256] = { | 1639 | static const wchar_t c2u_AF[256] = { |
1640 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x00-0x07 */ | 1640 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x00-0x07 */ |
1641 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x08-0x0F */ | 1641 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x08-0x0F */ |
1642 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x10-0x17 */ | 1642 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x10-0x17 */ |
@@ -1661,7 +1661,7 @@ static wchar_t c2u_AF[256] = { | |||
1661 | 0xCE99,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0xA0-0xA7 */ | 1661 | 0xCE99,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0xA0-0xA7 */ |
1662 | }; | 1662 | }; |
1663 | 1663 | ||
1664 | static wchar_t c2u_B0[256] = { | 1664 | static const wchar_t c2u_B0[256] = { |
1665 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x00-0x07 */ | 1665 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x00-0x07 */ |
1666 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x08-0x0F */ | 1666 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x08-0x0F */ |
1667 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x10-0x17 */ | 1667 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x10-0x17 */ |
@@ -1697,7 +1697,7 @@ static wchar_t c2u_B0[256] = { | |||
1697 | 0xACF5,0xACF6,0xACFC,0xACFD,0xAD00,0xAD04,0xAD06,0x0000,/* 0xF8-0xFF */ | 1697 | 0xACF5,0xACF6,0xACFC,0xACFD,0xAD00,0xAD04,0xAD06,0x0000,/* 0xF8-0xFF */ |
1698 | }; | 1698 | }; |
1699 | 1699 | ||
1700 | static wchar_t c2u_B1[256] = { | 1700 | static const wchar_t c2u_B1[256] = { |
1701 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x00-0x07 */ | 1701 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x00-0x07 */ |
1702 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x08-0x0F */ | 1702 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x08-0x0F */ |
1703 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x10-0x17 */ | 1703 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x10-0x17 */ |
@@ -1733,7 +1733,7 @@ static wchar_t c2u_B1[256] = { | |||
1733 | 0xAE61,0xAE65,0xAE68,0xAE69,0xAE6C,0xAE70,0xAE78,0x0000,/* 0xF8-0xFF */ | 1733 | 0xAE61,0xAE65,0xAE68,0xAE69,0xAE6C,0xAE70,0xAE78,0x0000,/* 0xF8-0xFF */ |
1734 | }; | 1734 | }; |
1735 | 1735 | ||
1736 | static wchar_t c2u_B2[256] = { | 1736 | static const wchar_t c2u_B2[256] = { |
1737 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x00-0x07 */ | 1737 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x00-0x07 */ |
1738 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x08-0x0F */ | 1738 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x08-0x0F */ |
1739 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x10-0x17 */ | 1739 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x10-0x17 */ |
@@ -1769,7 +1769,7 @@ static wchar_t c2u_B2[256] = { | |||
1769 | 0xB04C,0xB04E,0xB053,0xB054,0xB055,0xB057,0xB059,0x0000,/* 0xF8-0xFF */ | 1769 | 0xB04C,0xB04E,0xB053,0xB054,0xB055,0xB057,0xB059,0x0000,/* 0xF8-0xFF */ |
1770 | }; | 1770 | }; |
1771 | 1771 | ||
1772 | static wchar_t c2u_B3[256] = { | 1772 | static const wchar_t c2u_B3[256] = { |
1773 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x00-0x07 */ | 1773 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x00-0x07 */ |
1774 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x08-0x0F */ | 1774 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x08-0x0F */ |
1775 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x10-0x17 */ | 1775 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x10-0x17 */ |
@@ -1805,7 +1805,7 @@ static wchar_t c2u_B3[256] = { | |||
1805 | 0xB19C,0xB1A8,0xB1CC,0xB1D0,0xB1D4,0xB1DC,0xB1DD,0x0000,/* 0xF8-0xFF */ | 1805 | 0xB19C,0xB1A8,0xB1CC,0xB1D0,0xB1D4,0xB1DC,0xB1DD,0x0000,/* 0xF8-0xFF */ |
1806 | }; | 1806 | }; |
1807 | 1807 | ||
1808 | static wchar_t c2u_B4[256] = { | 1808 | static const wchar_t c2u_B4[256] = { |
1809 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x00-0x07 */ | 1809 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x00-0x07 */ |
1810 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x08-0x0F */ | 1810 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x08-0x0F */ |
1811 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x10-0x17 */ | 1811 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x10-0x17 */ |
@@ -1841,7 +1841,7 @@ static wchar_t c2u_B4[256] = { | |||
1841 | 0xB358,0xB35B,0xB35C,0xB35E,0xB35F,0xB364,0xB365,0x0000,/* 0xF8-0xFF */ | 1841 | 0xB358,0xB35B,0xB35C,0xB35E,0xB35F,0xB364,0xB365,0x0000,/* 0xF8-0xFF */ |
1842 | }; | 1842 | }; |
1843 | 1843 | ||
1844 | static wchar_t c2u_B5[256] = { | 1844 | static const wchar_t c2u_B5[256] = { |
1845 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x00-0x07 */ | 1845 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x00-0x07 */ |
1846 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x08-0x0F */ | 1846 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x08-0x0F */ |
1847 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x10-0x17 */ | 1847 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x10-0x17 */ |
@@ -1877,7 +1877,7 @@ static wchar_t c2u_B5[256] = { | |||
1877 | 0xB528,0xB529,0xB52A,0xB530,0xB531,0xB534,0xB538,0x0000,/* 0xF8-0xFF */ | 1877 | 0xB528,0xB529,0xB52A,0xB530,0xB531,0xB534,0xB538,0x0000,/* 0xF8-0xFF */ |
1878 | }; | 1878 | }; |
1879 | 1879 | ||
1880 | static wchar_t c2u_B6[256] = { | 1880 | static const wchar_t c2u_B6[256] = { |
1881 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x00-0x07 */ | 1881 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x00-0x07 */ |
1882 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x08-0x0F */ | 1882 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x08-0x0F */ |
1883 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x10-0x17 */ | 1883 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x10-0x17 */ |
@@ -1913,7 +1913,7 @@ static wchar_t c2u_B6[256] = { | |||
1913 | 0xB78D,0xB78F,0xB790,0xB791,0xB792,0xB796,0xB797,0x0000,/* 0xF8-0xFF */ | 1913 | 0xB78D,0xB78F,0xB790,0xB791,0xB792,0xB796,0xB797,0x0000,/* 0xF8-0xFF */ |
1914 | }; | 1914 | }; |
1915 | 1915 | ||
1916 | static wchar_t c2u_B7[256] = { | 1916 | static const wchar_t c2u_B7[256] = { |
1917 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x00-0x07 */ | 1917 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x00-0x07 */ |
1918 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x08-0x0F */ | 1918 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x08-0x0F */ |
1919 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x10-0x17 */ | 1919 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x10-0x17 */ |
@@ -1949,7 +1949,7 @@ static wchar_t c2u_B7[256] = { | |||
1949 | 0xB951,0xB958,0xB959,0xB95C,0xB960,0xB968,0xB969,0x0000,/* 0xF8-0xFF */ | 1949 | 0xB951,0xB958,0xB959,0xB95C,0xB960,0xB968,0xB969,0x0000,/* 0xF8-0xFF */ |
1950 | }; | 1950 | }; |
1951 | 1951 | ||
1952 | static wchar_t c2u_B8[256] = { | 1952 | static const wchar_t c2u_B8[256] = { |
1953 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x00-0x07 */ | 1953 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x00-0x07 */ |
1954 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x08-0x0F */ | 1954 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x08-0x0F */ |
1955 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x10-0x17 */ | 1955 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x10-0x17 */ |
@@ -1985,7 +1985,7 @@ static wchar_t c2u_B8[256] = { | |||
1985 | 0xBABB,0xBABD,0xBAC4,0xBAC8,0xBAD8,0xBAD9,0xBAFC,0x0000,/* 0xF8-0xFF */ | 1985 | 0xBABB,0xBABD,0xBAC4,0xBAC8,0xBAD8,0xBAD9,0xBAFC,0x0000,/* 0xF8-0xFF */ |
1986 | }; | 1986 | }; |
1987 | 1987 | ||
1988 | static wchar_t c2u_B9[256] = { | 1988 | static const wchar_t c2u_B9[256] = { |
1989 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x00-0x07 */ | 1989 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x00-0x07 */ |
1990 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x08-0x0F */ | 1990 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x08-0x0F */ |
1991 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x10-0x17 */ | 1991 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x10-0x17 */ |
@@ -2021,7 +2021,7 @@ static wchar_t c2u_B9[256] = { | |||
2021 | 0xBC88,0xBC8B,0xBC8C,0xBC8E,0xBC94,0xBC95,0xBC97,0x0000,/* 0xF8-0xFF */ | 2021 | 0xBC88,0xBC8B,0xBC8C,0xBC8E,0xBC94,0xBC95,0xBC97,0x0000,/* 0xF8-0xFF */ |
2022 | }; | 2022 | }; |
2023 | 2023 | ||
2024 | static wchar_t c2u_BA[256] = { | 2024 | static const wchar_t c2u_BA[256] = { |
2025 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x00-0x07 */ | 2025 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x00-0x07 */ |
2026 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x08-0x0F */ | 2026 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x08-0x0F */ |
2027 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x10-0x17 */ | 2027 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x10-0x17 */ |
@@ -2057,7 +2057,7 @@ static wchar_t c2u_BA[256] = { | |||
2057 | 0xBE57,0xBE59,0xBE5A,0xBE5B,0xBE60,0xBE61,0xBE64,0x0000,/* 0xF8-0xFF */ | 2057 | 0xBE57,0xBE59,0xBE5A,0xBE5B,0xBE60,0xBE61,0xBE64,0x0000,/* 0xF8-0xFF */ |
2058 | }; | 2058 | }; |
2059 | 2059 | ||
2060 | static wchar_t c2u_BB[256] = { | 2060 | static const wchar_t c2u_BB[256] = { |
2061 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x00-0x07 */ | 2061 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x00-0x07 */ |
2062 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x08-0x0F */ | 2062 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x08-0x0F */ |
2063 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x10-0x17 */ | 2063 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x10-0x17 */ |
@@ -2093,7 +2093,7 @@ static wchar_t c2u_BB[256] = { | |||
2093 | 0xC0D0,0xC0D8,0xC0D9,0xC0DB,0xC0DC,0xC0DD,0xC0E4,0x0000,/* 0xF8-0xFF */ | 2093 | 0xC0D0,0xC0D8,0xC0D9,0xC0DB,0xC0DC,0xC0DD,0xC0E4,0x0000,/* 0xF8-0xFF */ |
2094 | }; | 2094 | }; |
2095 | 2095 | ||
2096 | static wchar_t c2u_BC[256] = { | 2096 | static const wchar_t c2u_BC[256] = { |
2097 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x00-0x07 */ | 2097 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x00-0x07 */ |
2098 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x08-0x0F */ | 2098 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x08-0x0F */ |
2099 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x10-0x17 */ | 2099 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x10-0x17 */ |
@@ -2129,7 +2129,7 @@ static wchar_t c2u_BC[256] = { | |||
2129 | 0xC21C,0xC21F,0xC220,0xC228,0xC229,0xC22B,0xC22D,0x0000,/* 0xF8-0xFF */ | 2129 | 0xC21C,0xC21F,0xC220,0xC228,0xC229,0xC22B,0xC22D,0x0000,/* 0xF8-0xFF */ |
2130 | }; | 2130 | }; |
2131 | 2131 | ||
2132 | static wchar_t c2u_BD[256] = { | 2132 | static const wchar_t c2u_BD[256] = { |
2133 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x00-0x07 */ | 2133 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x00-0x07 */ |
2134 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x08-0x0F */ | 2134 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x08-0x0F */ |
2135 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x10-0x17 */ | 2135 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x10-0x17 */ |
@@ -2165,7 +2165,7 @@ static wchar_t c2u_BD[256] = { | |||
2165 | 0xC3F5,0xC3F8,0xC408,0xC410,0xC424,0xC42C,0xC430,0x0000,/* 0xF8-0xFF */ | 2165 | 0xC3F5,0xC3F8,0xC408,0xC410,0xC424,0xC42C,0xC430,0x0000,/* 0xF8-0xFF */ |
2166 | }; | 2166 | }; |
2167 | 2167 | ||
2168 | static wchar_t c2u_BE[256] = { | 2168 | static const wchar_t c2u_BE[256] = { |
2169 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x00-0x07 */ | 2169 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x00-0x07 */ |
2170 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x08-0x0F */ | 2170 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x08-0x0F */ |
2171 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x10-0x17 */ | 2171 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x10-0x17 */ |
@@ -2201,7 +2201,7 @@ static wchar_t c2u_BE[256] = { | |||
2201 | 0xC5C6,0xC5C7,0xC5C8,0xC5C9,0xC5CA,0xC5CC,0xC5CE,0x0000,/* 0xF8-0xFF */ | 2201 | 0xC5C6,0xC5C7,0xC5C8,0xC5C9,0xC5CA,0xC5CC,0xC5CE,0x0000,/* 0xF8-0xFF */ |
2202 | }; | 2202 | }; |
2203 | 2203 | ||
2204 | static wchar_t c2u_BF[256] = { | 2204 | static const wchar_t c2u_BF[256] = { |
2205 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x00-0x07 */ | 2205 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x00-0x07 */ |
2206 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x08-0x0F */ | 2206 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x08-0x0F */ |
2207 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x10-0x17 */ | 2207 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x10-0x17 */ |
@@ -2237,7 +2237,7 @@ static wchar_t c2u_BF[256] = { | |||
2237 | 0xC6D0,0xC6D4,0xC6DC,0xC6DD,0xC6E0,0xC6E1,0xC6E8,0x0000,/* 0xF8-0xFF */ | 2237 | 0xC6D0,0xC6D4,0xC6DC,0xC6DD,0xC6E0,0xC6E1,0xC6E8,0x0000,/* 0xF8-0xFF */ |
2238 | }; | 2238 | }; |
2239 | 2239 | ||
2240 | static wchar_t c2u_C0[256] = { | 2240 | static const wchar_t c2u_C0[256] = { |
2241 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x00-0x07 */ | 2241 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x00-0x07 */ |
2242 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x08-0x0F */ | 2242 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x08-0x0F */ |
2243 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x10-0x17 */ | 2243 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x10-0x17 */ |
@@ -2273,7 +2273,7 @@ static wchar_t c2u_C0[256] = { | |||
2273 | 0xC7E8,0xC7EC,0xC800,0xC801,0xC804,0xC808,0xC80A,0x0000,/* 0xF8-0xFF */ | 2273 | 0xC7E8,0xC7EC,0xC800,0xC801,0xC804,0xC808,0xC80A,0x0000,/* 0xF8-0xFF */ |
2274 | }; | 2274 | }; |
2275 | 2275 | ||
2276 | static wchar_t c2u_C1[256] = { | 2276 | static const wchar_t c2u_C1[256] = { |
2277 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x00-0x07 */ | 2277 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x00-0x07 */ |
2278 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x08-0x0F */ | 2278 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x08-0x0F */ |
2279 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x10-0x17 */ | 2279 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x10-0x17 */ |
@@ -2309,7 +2309,7 @@ static wchar_t c2u_C1[256] = { | |||
2309 | 0xC9C4,0xC9C7,0xC9C8,0xC9CA,0xC9D0,0xC9D1,0xC9D3,0x0000,/* 0xF8-0xFF */ | 2309 | 0xC9C4,0xC9C7,0xC9C8,0xC9CA,0xC9D0,0xC9D1,0xC9D3,0x0000,/* 0xF8-0xFF */ |
2310 | }; | 2310 | }; |
2311 | 2311 | ||
2312 | static wchar_t c2u_C2[256] = { | 2312 | static const wchar_t c2u_C2[256] = { |
2313 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x00-0x07 */ | 2313 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x00-0x07 */ |
2314 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x08-0x0F */ | 2314 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x08-0x0F */ |
2315 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x10-0x17 */ | 2315 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x10-0x17 */ |
@@ -2345,7 +2345,7 @@ static wchar_t c2u_C2[256] = { | |||
2345 | 0xCC29,0xCC2C,0xCC2E,0xCC30,0xCC38,0xCC39,0xCC3B,0x0000,/* 0xF8-0xFF */ | 2345 | 0xCC29,0xCC2C,0xCC2E,0xCC30,0xCC38,0xCC39,0xCC3B,0x0000,/* 0xF8-0xFF */ |
2346 | }; | 2346 | }; |
2347 | 2347 | ||
2348 | static wchar_t c2u_C3[256] = { | 2348 | static const wchar_t c2u_C3[256] = { |
2349 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x00-0x07 */ | 2349 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x00-0x07 */ |
2350 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x08-0x0F */ | 2350 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x08-0x0F */ |
2351 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x10-0x17 */ | 2351 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x10-0x17 */ |
@@ -2381,7 +2381,7 @@ static wchar_t c2u_C3[256] = { | |||
2381 | 0xCE21,0xCE24,0xCE28,0xCE30,0xCE31,0xCE33,0xCE35,0x0000,/* 0xF8-0xFF */ | 2381 | 0xCE21,0xCE24,0xCE28,0xCE30,0xCE31,0xCE33,0xCE35,0x0000,/* 0xF8-0xFF */ |
2382 | }; | 2382 | }; |
2383 | 2383 | ||
2384 | static wchar_t c2u_C4[256] = { | 2384 | static const wchar_t c2u_C4[256] = { |
2385 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x00-0x07 */ | 2385 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x00-0x07 */ |
2386 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x08-0x0F */ | 2386 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x08-0x0F */ |
2387 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x10-0x17 */ | 2387 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x10-0x17 */ |
@@ -2417,7 +2417,7 @@ static wchar_t c2u_C4[256] = { | |||
2417 | 0xD011,0xD018,0xD02D,0xD034,0xD035,0xD038,0xD03C,0x0000,/* 0xF8-0xFF */ | 2417 | 0xD011,0xD018,0xD02D,0xD034,0xD035,0xD038,0xD03C,0x0000,/* 0xF8-0xFF */ |
2418 | }; | 2418 | }; |
2419 | 2419 | ||
2420 | static wchar_t c2u_C5[256] = { | 2420 | static const wchar_t c2u_C5[256] = { |
2421 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x00-0x07 */ | 2421 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x00-0x07 */ |
2422 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x08-0x0F */ | 2422 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x08-0x0F */ |
2423 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x10-0x17 */ | 2423 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x10-0x17 */ |
@@ -2453,7 +2453,7 @@ static wchar_t c2u_C5[256] = { | |||
2453 | 0xD234,0xD23C,0xD23D,0xD23F,0xD241,0xD248,0xD25C,0x0000,/* 0xF8-0xFF */ | 2453 | 0xD234,0xD23C,0xD23D,0xD23F,0xD241,0xD248,0xD25C,0x0000,/* 0xF8-0xFF */ |
2454 | }; | 2454 | }; |
2455 | 2455 | ||
2456 | static wchar_t c2u_C6[256] = { | 2456 | static const wchar_t c2u_C6[256] = { |
2457 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x00-0x07 */ | 2457 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x00-0x07 */ |
2458 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x08-0x0F */ | 2458 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x08-0x0F */ |
2459 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x10-0x17 */ | 2459 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x10-0x17 */ |
@@ -2489,7 +2489,7 @@ static wchar_t c2u_C6[256] = { | |||
2489 | 0xD3ED,0xD3F0,0xD3F4,0xD3FC,0xD3FD,0xD3FF,0xD401,0x0000,/* 0xF8-0xFF */ | 2489 | 0xD3ED,0xD3F0,0xD3F4,0xD3FC,0xD3FD,0xD3FF,0xD401,0x0000,/* 0xF8-0xFF */ |
2490 | }; | 2490 | }; |
2491 | 2491 | ||
2492 | static wchar_t c2u_C7[256] = { | 2492 | static const wchar_t c2u_C7[256] = { |
2493 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x00-0x07 */ | 2493 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x00-0x07 */ |
2494 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x08-0x0F */ | 2494 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x08-0x0F */ |
2495 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x10-0x17 */ | 2495 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x10-0x17 */ |
@@ -2525,7 +2525,7 @@ static wchar_t c2u_C7[256] = { | |||
2525 | 0xD610,0xD611,0xD613,0xD614,0xD615,0xD61C,0xD620,0x0000,/* 0xF8-0xFF */ | 2525 | 0xD610,0xD611,0xD613,0xD614,0xD615,0xD61C,0xD620,0x0000,/* 0xF8-0xFF */ |
2526 | }; | 2526 | }; |
2527 | 2527 | ||
2528 | static wchar_t c2u_C8[256] = { | 2528 | static const wchar_t c2u_C8[256] = { |
2529 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x00-0x07 */ | 2529 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x00-0x07 */ |
2530 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x08-0x0F */ | 2530 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x08-0x0F */ |
2531 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x10-0x17 */ | 2531 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x10-0x17 */ |
@@ -2561,7 +2561,7 @@ static wchar_t c2u_C8[256] = { | |||
2561 | 0xD789,0xD78C,0xD790,0xD798,0xD799,0xD79B,0xD79D,0x0000,/* 0xF8-0xFF */ | 2561 | 0xD789,0xD78C,0xD790,0xD798,0xD799,0xD79B,0xD79D,0x0000,/* 0xF8-0xFF */ |
2562 | }; | 2562 | }; |
2563 | 2563 | ||
2564 | static wchar_t c2u_CA[256] = { | 2564 | static const wchar_t c2u_CA[256] = { |
2565 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x00-0x07 */ | 2565 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x00-0x07 */ |
2566 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x08-0x0F */ | 2566 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x08-0x0F */ |
2567 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x10-0x17 */ | 2567 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x10-0x17 */ |
@@ -2597,7 +2597,7 @@ static wchar_t c2u_CA[256] = { | |||
2597 | 0x76E3,0x77B0,0x7D3A,0x90AF,0x9451,0x9452,0x9F95,0x0000,/* 0xF8-0xFF */ | 2597 | 0x76E3,0x77B0,0x7D3A,0x90AF,0x9451,0x9452,0x9F95,0x0000,/* 0xF8-0xFF */ |
2598 | }; | 2598 | }; |
2599 | 2599 | ||
2600 | static wchar_t c2u_CB[256] = { | 2600 | static const wchar_t c2u_CB[256] = { |
2601 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x00-0x07 */ | 2601 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x00-0x07 */ |
2602 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x08-0x0F */ | 2602 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x08-0x0F */ |
2603 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x10-0x17 */ | 2603 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x10-0x17 */ |
@@ -2633,7 +2633,7 @@ static wchar_t c2u_CB[256] = { | |||
2633 | 0x5091,0x6770,0x6840,0x5109,0x528D,0x5292,0x6AA2,0x0000,/* 0xF8-0xFF */ | 2633 | 0x5091,0x6770,0x6840,0x5109,0x528D,0x5292,0x6AA2,0x0000,/* 0xF8-0xFF */ |
2634 | }; | 2634 | }; |
2635 | 2635 | ||
2636 | static wchar_t c2u_CC[256] = { | 2636 | static const wchar_t c2u_CC[256] = { |
2637 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x00-0x07 */ | 2637 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x00-0x07 */ |
2638 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x08-0x0F */ | 2638 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x08-0x0F */ |
2639 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x10-0x17 */ | 2639 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x10-0x17 */ |
@@ -2669,7 +2669,7 @@ static wchar_t c2u_CC[256] = { | |||
2669 | 0x5951,0x5B63,0x5C46,0x60B8,0x6212,0x6842,0x68B0,0x0000,/* 0xF8-0xFF */ | 2669 | 0x5951,0x5B63,0x5C46,0x60B8,0x6212,0x6842,0x68B0,0x0000,/* 0xF8-0xFF */ |
2670 | }; | 2670 | }; |
2671 | 2671 | ||
2672 | static wchar_t c2u_CD[256] = { | 2672 | static const wchar_t c2u_CD[256] = { |
2673 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x00-0x07 */ | 2673 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x00-0x07 */ |
2674 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x08-0x0F */ | 2674 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x08-0x0F */ |
2675 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x10-0x17 */ | 2675 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x10-0x17 */ |
@@ -2705,7 +2705,7 @@ static wchar_t c2u_CD[256] = { | |||
2705 | 0x8CA2,0x978F,0x4E32,0x5BE1,0x6208,0x679C,0x74DC,0x0000,/* 0xF8-0xFF */ | 2705 | 0x8CA2,0x978F,0x4E32,0x5BE1,0x6208,0x679C,0x74DC,0x0000,/* 0xF8-0xFF */ |
2706 | }; | 2706 | }; |
2707 | 2707 | ||
2708 | static wchar_t c2u_CE[256] = { | 2708 | static const wchar_t c2u_CE[256] = { |
2709 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x00-0x07 */ | 2709 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x00-0x07 */ |
2710 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x08-0x0F */ | 2710 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x08-0x0F */ |
2711 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x10-0x17 */ | 2711 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x10-0x17 */ |
@@ -2741,7 +2741,7 @@ static wchar_t c2u_CE[256] = { | |||
2741 | 0x4E18,0x4E45,0x4E5D,0x4EC7,0x4FF1,0x5177,0x52FE,0x0000,/* 0xF8-0xFF */ | 2741 | 0x4E18,0x4E45,0x4E5D,0x4EC7,0x4FF1,0x5177,0x52FE,0x0000,/* 0xF8-0xFF */ |
2742 | }; | 2742 | }; |
2743 | 2743 | ||
2744 | static wchar_t c2u_CF[256] = { | 2744 | static const wchar_t c2u_CF[256] = { |
2745 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x00-0x07 */ | 2745 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x00-0x07 */ |
2746 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x08-0x0F */ | 2746 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x08-0x0F */ |
2747 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x10-0x17 */ | 2747 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x10-0x17 */ |
@@ -2777,7 +2777,7 @@ static wchar_t c2u_CF[256] = { | |||
2777 | 0x8A6D,0x8ECC,0x994B,0xF906,0x6677,0x6B78,0x8CB4,0x0000,/* 0xF8-0xFF */ | 2777 | 0x8A6D,0x8ECC,0x994B,0xF906,0x6677,0x6B78,0x8CB4,0x0000,/* 0xF8-0xFF */ |
2778 | }; | 2778 | }; |
2779 | 2779 | ||
2780 | static wchar_t c2u_D0[256] = { | 2780 | static const wchar_t c2u_D0[256] = { |
2781 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x00-0x07 */ | 2781 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x00-0x07 */ |
2782 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x08-0x0F */ | 2782 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x08-0x0F */ |
2783 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x10-0x17 */ | 2783 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x10-0x17 */ |
@@ -2813,7 +2813,7 @@ static wchar_t c2u_D0[256] = { | |||
2813 | 0x5D0E,0x5DF1,0x5E7E,0x5FCC,0x6280,0x65D7,0x65E3,0x0000,/* 0xF8-0xFF */ | 2813 | 0x5D0E,0x5DF1,0x5E7E,0x5FCC,0x6280,0x65D7,0x65E3,0x0000,/* 0xF8-0xFF */ |
2814 | }; | 2814 | }; |
2815 | 2815 | ||
2816 | static wchar_t c2u_D1[256] = { | 2816 | static const wchar_t c2u_D1[256] = { |
2817 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x00-0x07 */ | 2817 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x00-0x07 */ |
2818 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x08-0x0F */ | 2818 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x08-0x0F */ |
2819 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x10-0x17 */ | 2819 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x10-0x17 */ |
@@ -2849,7 +2849,7 @@ static wchar_t c2u_D1[256] = { | |||
2849 | 0x6960,0x6E73,0xF922,0x7537,0xF923,0xF924,0xF925,0x0000,/* 0xF8-0xFF */ | 2849 | 0x6960,0x6E73,0xF922,0x7537,0xF923,0xF924,0xF925,0x0000,/* 0xF8-0xFF */ |
2850 | }; | 2850 | }; |
2851 | 2851 | ||
2852 | static wchar_t c2u_D2[256] = { | 2852 | static const wchar_t c2u_D2[256] = { |
2853 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x00-0x07 */ | 2853 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x00-0x07 */ |
2854 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x08-0x0F */ | 2854 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x08-0x0F */ |
2855 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x10-0x17 */ | 2855 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x10-0x17 */ |
@@ -2885,7 +2885,7 @@ static wchar_t c2u_D2[256] = { | |||
2885 | 0xF959,0x5C3C,0x6CE5,0x533F,0x6EBA,0x591A,0x8336,0x0000,/* 0xF8-0xFF */ | 2885 | 0xF959,0x5C3C,0x6CE5,0x533F,0x6EBA,0x591A,0x8336,0x0000,/* 0xF8-0xFF */ |
2886 | }; | 2886 | }; |
2887 | 2887 | ||
2888 | static wchar_t c2u_D3[256] = { | 2888 | static const wchar_t c2u_D3[256] = { |
2889 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x00-0x07 */ | 2889 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x00-0x07 */ |
2890 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x08-0x0F */ | 2890 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x08-0x0F */ |
2891 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x10-0x17 */ | 2891 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x10-0x17 */ |
@@ -2921,7 +2921,7 @@ static wchar_t c2u_D3[256] = { | |||
2921 | 0x5EA6,0x5F92,0x60BC,0x6311,0x6389,0x6417,0x6843,0x0000,/* 0xF8-0xFF */ | 2921 | 0x5EA6,0x5F92,0x60BC,0x6311,0x6389,0x6417,0x6843,0x0000,/* 0xF8-0xFF */ |
2922 | }; | 2922 | }; |
2923 | 2923 | ||
2924 | static wchar_t c2u_D4[256] = { | 2924 | static const wchar_t c2u_D4[256] = { |
2925 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x00-0x07 */ | 2925 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x00-0x07 */ |
2926 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x08-0x0F */ | 2926 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x08-0x0F */ |
2927 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x10-0x17 */ | 2927 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x10-0x17 */ |
@@ -2957,7 +2957,7 @@ static wchar_t c2u_D4[256] = { | |||
2957 | 0x9127,0x9A30,0x5587,0x61F6,0xF95B,0x7669,0x7F85,0x0000,/* 0xF8-0xFF */ | 2957 | 0x9127,0x9A30,0x5587,0x61F6,0xF95B,0x7669,0x7F85,0x0000,/* 0xF8-0xFF */ |
2958 | }; | 2958 | }; |
2959 | 2959 | ||
2960 | static wchar_t c2u_D5[256] = { | 2960 | static const wchar_t c2u_D5[256] = { |
2961 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x00-0x07 */ | 2961 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x00-0x07 */ |
2962 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x08-0x0F */ | 2962 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x08-0x0F */ |
2963 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x10-0x17 */ | 2963 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x10-0x17 */ |
@@ -2993,7 +2993,7 @@ static wchar_t c2u_D5[256] = { | |||
2993 | 0x792B,0x8F62,0x9742,0x6190,0x6200,0x6523,0x6F23,0x0000,/* 0xF8-0xFF */ | 2993 | 0x792B,0x8F62,0x9742,0x6190,0x6200,0x6523,0x6F23,0x0000,/* 0xF8-0xFF */ |
2994 | }; | 2994 | }; |
2995 | 2995 | ||
2996 | static wchar_t c2u_D6[256] = { | 2996 | static const wchar_t c2u_D6[256] = { |
2997 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x00-0x07 */ | 2997 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x00-0x07 */ |
2998 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x08-0x0F */ | 2998 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x08-0x0F */ |
2999 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x10-0x17 */ | 2999 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x10-0x17 */ |
@@ -3029,7 +3029,7 @@ static wchar_t c2u_D6[256] = { | |||
3029 | 0x5ED6,0x6599,0x71CE,0x7642,0x77AD,0x804A,0x84FC,0x0000,/* 0xF8-0xFF */ | 3029 | 0x5ED6,0x6599,0x71CE,0x7642,0x77AD,0x804A,0x84FC,0x0000,/* 0xF8-0xFF */ |
3030 | }; | 3030 | }; |
3031 | 3031 | ||
3032 | static wchar_t c2u_D7[256] = { | 3032 | static const wchar_t c2u_D7[256] = { |
3033 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x00-0x07 */ | 3033 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x00-0x07 */ |
3034 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x08-0x0F */ | 3034 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x08-0x0F */ |
3035 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x10-0x17 */ | 3035 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x10-0x17 */ |
@@ -3065,7 +3065,7 @@ static wchar_t c2u_D7[256] = { | |||
3065 | 0x9E9F,0x6797,0x6DCB,0x7433,0x81E8,0x9716,0x782C,0x0000,/* 0xF8-0xFF */ | 3065 | 0x9E9F,0x6797,0x6DCB,0x7433,0x81E8,0x9716,0x782C,0x0000,/* 0xF8-0xFF */ |
3066 | }; | 3066 | }; |
3067 | 3067 | ||
3068 | static wchar_t c2u_D8[256] = { | 3068 | static const wchar_t c2u_D8[256] = { |
3069 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x00-0x07 */ | 3069 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x00-0x07 */ |
3070 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x08-0x0F */ | 3070 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x08-0x0F */ |
3071 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x10-0x17 */ | 3071 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x10-0x17 */ |
@@ -3101,7 +3101,7 @@ static wchar_t c2u_D8[256] = { | |||
3101 | 0x7704,0x7720,0x7DBF,0x7DEC,0x9762,0x9EB5,0x6EC5,0x0000,/* 0xF8-0xFF */ | 3101 | 0x7704,0x7720,0x7DBF,0x7DEC,0x9762,0x9EB5,0x6EC5,0x0000,/* 0xF8-0xFF */ |
3102 | }; | 3102 | }; |
3103 | 3103 | ||
3104 | static wchar_t c2u_D9[256] = { | 3104 | static const wchar_t c2u_D9[256] = { |
3105 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x00-0x07 */ | 3105 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x00-0x07 */ |
3106 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x08-0x0F */ | 3106 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x08-0x0F */ |
3107 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x10-0x17 */ | 3107 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x10-0x17 */ |
@@ -3137,7 +3137,7 @@ static wchar_t c2u_D9[256] = { | |||
3137 | 0x58A8,0x9ED8,0x5011,0x520E,0x543B,0x554F,0x6587,0x0000,/* 0xF8-0xFF */ | 3137 | 0x58A8,0x9ED8,0x5011,0x520E,0x543B,0x554F,0x6587,0x0000,/* 0xF8-0xFF */ |
3138 | }; | 3138 | }; |
3139 | 3139 | ||
3140 | static wchar_t c2u_DA[256] = { | 3140 | static const wchar_t c2u_DA[256] = { |
3141 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x00-0x07 */ | 3141 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x00-0x07 */ |
3142 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x08-0x0F */ | 3142 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x08-0x0F */ |
3143 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x10-0x17 */ | 3143 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x10-0x17 */ |
@@ -3173,7 +3173,7 @@ static wchar_t c2u_DA[256] = { | |||
3173 | 0x9812,0x98EF,0x52C3,0x62D4,0x64A5,0x6E24,0x6F51,0x0000,/* 0xF8-0xFF */ | 3173 | 0x9812,0x98EF,0x52C3,0x62D4,0x64A5,0x6E24,0x6F51,0x0000,/* 0xF8-0xFF */ |
3174 | }; | 3174 | }; |
3175 | 3175 | ||
3176 | static wchar_t c2u_DB[256] = { | 3176 | static const wchar_t c2u_DB[256] = { |
3177 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x00-0x07 */ | 3177 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x00-0x07 */ |
3178 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x08-0x0F */ | 3178 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x08-0x0F */ |
3179 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x10-0x17 */ | 3179 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x10-0x17 */ |
@@ -3209,7 +3209,7 @@ static wchar_t c2u_DB[256] = { | |||
3209 | 0x50FB,0x5288,0x58C1,0x64D8,0x6A97,0x74A7,0x7656,0x0000,/* 0xF8-0xFF */ | 3209 | 0x50FB,0x5288,0x58C1,0x64D8,0x6A97,0x74A7,0x7656,0x0000,/* 0xF8-0xFF */ |
3210 | }; | 3210 | }; |
3211 | 3211 | ||
3212 | static wchar_t c2u_DC[256] = { | 3212 | static const wchar_t c2u_DC[256] = { |
3213 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x00-0x07 */ | 3213 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x00-0x07 */ |
3214 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x08-0x0F */ | 3214 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x08-0x0F */ |
3215 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x10-0x17 */ | 3215 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x10-0x17 */ |
@@ -3245,7 +3245,7 @@ static wchar_t c2u_DC[256] = { | |||
3245 | 0x5256,0x526F,0x5426,0x5490,0x57E0,0x592B,0x5A66,0x0000,/* 0xF8-0xFF */ | 3245 | 0x5256,0x526F,0x5426,0x5490,0x57E0,0x592B,0x5A66,0x0000,/* 0xF8-0xFF */ |
3246 | }; | 3246 | }; |
3247 | 3247 | ||
3248 | static wchar_t c2u_DD[256] = { | 3248 | static const wchar_t c2u_DD[256] = { |
3249 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x00-0x07 */ | 3249 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x00-0x07 */ |
3250 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x08-0x0F */ | 3250 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x08-0x0F */ |
3251 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x10-0x17 */ | 3251 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x10-0x17 */ |
@@ -3281,7 +3281,7 @@ static wchar_t c2u_DD[256] = { | |||
3281 | 0x7891,0x79D5,0x79D8,0x7C83,0x7DCB,0x7FE1,0x80A5,0x0000,/* 0xF8-0xFF */ | 3281 | 0x7891,0x79D5,0x79D8,0x7C83,0x7DCB,0x7FE1,0x80A5,0x0000,/* 0xF8-0xFF */ |
3282 | }; | 3282 | }; |
3283 | 3283 | ||
3284 | static wchar_t c2u_DE[256] = { | 3284 | static const wchar_t c2u_DE[256] = { |
3285 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x00-0x07 */ | 3285 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x00-0x07 */ |
3286 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x08-0x0F */ | 3286 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x08-0x0F */ |
3287 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x10-0x17 */ | 3287 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x10-0x17 */ |
@@ -3317,7 +3317,7 @@ static wchar_t c2u_DE[256] = { | |||
3317 | 0x98FC,0x99DF,0x9E9D,0x524A,0xF969,0x6714,0xF96A,0x0000,/* 0xF8-0xFF */ | 3317 | 0x98FC,0x99DF,0x9E9D,0x524A,0xF969,0x6714,0xF96A,0x0000,/* 0xF8-0xFF */ |
3318 | }; | 3318 | }; |
3319 | 3319 | ||
3320 | static wchar_t c2u_DF[256] = { | 3320 | static const wchar_t c2u_DF[256] = { |
3321 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x00-0x07 */ | 3321 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x00-0x07 */ |
3322 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x08-0x0F */ | 3322 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x08-0x0F */ |
3323 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x10-0x17 */ | 3323 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x10-0x17 */ |
@@ -3353,7 +3353,7 @@ static wchar_t c2u_DF[256] = { | |||
3353 | 0x68F2,0x7280,0x745E,0x7B6E,0x7D6E,0x7DD6,0x7F72,0x0000,/* 0xF8-0xFF */ | 3353 | 0x68F2,0x7280,0x745E,0x7B6E,0x7D6E,0x7DD6,0x7F72,0x0000,/* 0xF8-0xFF */ |
3354 | }; | 3354 | }; |
3355 | 3355 | ||
3356 | static wchar_t c2u_E0[256] = { | 3356 | static const wchar_t c2u_E0[256] = { |
3357 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x00-0x07 */ | 3357 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x00-0x07 */ |
3358 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x08-0x0F */ | 3358 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x08-0x0F */ |
3359 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x10-0x17 */ | 3359 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x10-0x17 */ |
@@ -3389,7 +3389,7 @@ static wchar_t c2u_E0[256] = { | |||
3389 | 0x661F,0x665F,0x7329,0x73F9,0x76DB,0x7701,0x7B6C,0x0000,/* 0xF8-0xFF */ | 3389 | 0x661F,0x665F,0x7329,0x73F9,0x76DB,0x7701,0x7B6C,0x0000,/* 0xF8-0xFF */ |
3390 | }; | 3390 | }; |
3391 | 3391 | ||
3392 | static wchar_t c2u_E1[256] = { | 3392 | static const wchar_t c2u_E1[256] = { |
3393 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x00-0x07 */ | 3393 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x00-0x07 */ |
3394 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x08-0x0F */ | 3394 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x08-0x0F */ |
3395 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x10-0x17 */ | 3395 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x10-0x17 */ |
@@ -3425,7 +3425,7 @@ static wchar_t c2u_E1[256] = { | |||
3425 | 0x58FD,0x5AC2,0x5B88,0x5CAB,0x5CC0,0x5E25,0x6101,0x0000,/* 0xF8-0xFF */ | 3425 | 0x58FD,0x5AC2,0x5B88,0x5CAB,0x5CC0,0x5E25,0x6101,0x0000,/* 0xF8-0xFF */ |
3426 | }; | 3426 | }; |
3427 | 3427 | ||
3428 | static wchar_t c2u_E2[256] = { | 3428 | static const wchar_t c2u_E2[256] = { |
3429 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x00-0x07 */ | 3429 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x00-0x07 */ |
3430 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x08-0x0F */ | 3430 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x08-0x0F */ |
3431 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x10-0x17 */ | 3431 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x10-0x17 */ |
@@ -3461,7 +3461,7 @@ static wchar_t c2u_E2[256] = { | |||
3461 | 0x99B4,0x620C,0x8853,0x8FF0,0x9265,0x5D07,0x5D27,0x0000,/* 0xF8-0xFF */ | 3461 | 0x99B4,0x620C,0x8853,0x8FF0,0x9265,0x5D07,0x5D27,0x0000,/* 0xF8-0xFF */ |
3462 | }; | 3462 | }; |
3463 | 3463 | ||
3464 | static wchar_t c2u_E3[256] = { | 3464 | static const wchar_t c2u_E3[256] = { |
3465 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x00-0x07 */ | 3465 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x00-0x07 */ |
3466 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x08-0x0F */ | 3466 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x08-0x0F */ |
3467 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x10-0x17 */ | 3467 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x10-0x17 */ |
@@ -3497,7 +3497,7 @@ static wchar_t c2u_E3[256] = { | |||
3497 | 0x5BA4,0x5BE6,0x6089,0x5BE9,0x5C0B,0x5FC3,0x6C81,0x0000,/* 0xF8-0xFF */ | 3497 | 0x5BA4,0x5BE6,0x6089,0x5BE9,0x5C0B,0x5FC3,0x6C81,0x0000,/* 0xF8-0xFF */ |
3498 | }; | 3498 | }; |
3499 | 3499 | ||
3500 | static wchar_t c2u_E4[256] = { | 3500 | static const wchar_t c2u_E4[256] = { |
3501 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x00-0x07 */ | 3501 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x00-0x07 */ |
3502 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x08-0x0F */ | 3502 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x08-0x0F */ |
3503 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x10-0x17 */ | 3503 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x10-0x17 */ |
@@ -3533,7 +3533,7 @@ static wchar_t c2u_E4[256] = { | |||
3533 | 0x5384,0x627C,0x6396,0x6DB2,0x7E0A,0x814B,0x984D,0x0000,/* 0xF8-0xFF */ | 3533 | 0x5384,0x627C,0x6396,0x6DB2,0x7E0A,0x814B,0x984D,0x0000,/* 0xF8-0xFF */ |
3534 | }; | 3534 | }; |
3535 | 3535 | ||
3536 | static wchar_t c2u_E5[256] = { | 3536 | static const wchar_t c2u_E5[256] = { |
3537 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x00-0x07 */ | 3537 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x00-0x07 */ |
3538 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x08-0x0F */ | 3538 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x08-0x0F */ |
3539 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x10-0x17 */ | 3539 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x10-0x17 */ |
@@ -3569,7 +3569,7 @@ static wchar_t c2u_E5[256] = { | |||
3569 | 0x4E88,0x4F59,0xF97F,0xF980,0xF981,0x5982,0xF982,0x0000,/* 0xF8-0xFF */ | 3569 | 0x4E88,0x4F59,0xF97F,0xF980,0xF981,0x5982,0xF982,0x0000,/* 0xF8-0xFF */ |
3570 | }; | 3570 | }; |
3571 | 3571 | ||
3572 | static wchar_t c2u_E6[256] = { | 3572 | static const wchar_t c2u_E6[256] = { |
3573 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x00-0x07 */ | 3573 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x00-0x07 */ |
3574 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x08-0x0F */ | 3574 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x08-0x0F */ |
3575 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x10-0x17 */ | 3575 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x10-0x17 */ |
@@ -3605,7 +3605,7 @@ static wchar_t c2u_E6[256] = { | |||
3605 | 0x67D3,0xF9A5,0x708E,0x7130,0x7430,0x8276,0x82D2,0x0000,/* 0xF8-0xFF */ | 3605 | 0x67D3,0xF9A5,0x708E,0x7130,0x7430,0x8276,0x82D2,0x0000,/* 0xF8-0xFF */ |
3606 | }; | 3606 | }; |
3607 | 3607 | ||
3608 | static wchar_t c2u_E7[256] = { | 3608 | static const wchar_t c2u_E7[256] = { |
3609 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x00-0x07 */ | 3609 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x00-0x07 */ |
3610 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x08-0x0F */ | 3610 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x08-0x0F */ |
3611 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x10-0x17 */ | 3611 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x10-0x17 */ |
@@ -3641,7 +3641,7 @@ static wchar_t c2u_E7[256] = { | |||
3641 | 0x61CA,0x6556,0x65FF,0x6664,0x68A7,0x6C5A,0x6FB3,0x0000,/* 0xF8-0xFF */ | 3641 | 0x61CA,0x6556,0x65FF,0x6664,0x68A7,0x6C5A,0x6FB3,0x0000,/* 0xF8-0xFF */ |
3642 | }; | 3642 | }; |
3643 | 3643 | ||
3644 | static wchar_t c2u_E8[256] = { | 3644 | static const wchar_t c2u_E8[256] = { |
3645 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x00-0x07 */ | 3645 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x00-0x07 */ |
3646 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x08-0x0F */ | 3646 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x08-0x0F */ |
3647 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x10-0x17 */ | 3647 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x10-0x17 */ |
@@ -3677,7 +3677,7 @@ static wchar_t c2u_E8[256] = { | |||
3677 | 0x66DC,0xF9BF,0x6A48,0xF9C0,0x71FF,0x7464,0xF9C1,0x0000,/* 0xF8-0xFF */ | 3677 | 0x66DC,0xF9BF,0x6A48,0xF9C0,0x71FF,0x7464,0xF9C1,0x0000,/* 0xF8-0xFF */ |
3678 | }; | 3678 | }; |
3679 | 3679 | ||
3680 | static wchar_t c2u_E9[256] = { | 3680 | static const wchar_t c2u_E9[256] = { |
3681 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x00-0x07 */ | 3681 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x00-0x07 */ |
3682 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x08-0x0F */ | 3682 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x08-0x0F */ |
3683 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x10-0x17 */ | 3683 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x10-0x17 */ |
@@ -3713,7 +3713,7 @@ static wchar_t c2u_E9[256] = { | |||
3713 | 0x6A52,0x6B9E,0x6F90,0x7189,0x8018,0x82B8,0x8553,0x0000,/* 0xF8-0xFF */ | 3713 | 0x6A52,0x6B9E,0x6F90,0x7189,0x8018,0x82B8,0x8553,0x0000,/* 0xF8-0xFF */ |
3714 | }; | 3714 | }; |
3715 | 3715 | ||
3716 | static wchar_t c2u_EA[256] = { | 3716 | static const wchar_t c2u_EA[256] = { |
3717 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x00-0x07 */ | 3717 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x00-0x07 */ |
3718 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x08-0x0F */ | 3718 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x08-0x0F */ |
3719 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x10-0x17 */ | 3719 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x10-0x17 */ |
@@ -3749,7 +3749,7 @@ static wchar_t c2u_EA[256] = { | |||
3749 | 0x6961,0x6962,0x6CB9,0x6D27,0xF9CA,0x6E38,0xF9CB,0x0000,/* 0xF8-0xFF */ | 3749 | 0x6961,0x6962,0x6CB9,0x6D27,0xF9CA,0x6E38,0xF9CB,0x0000,/* 0xF8-0xFF */ |
3750 | }; | 3750 | }; |
3751 | 3751 | ||
3752 | static wchar_t c2u_EB[256] = { | 3752 | static const wchar_t c2u_EB[256] = { |
3753 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x00-0x07 */ | 3753 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x00-0x07 */ |
3754 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x08-0x0F */ | 3754 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x08-0x0F */ |
3755 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x10-0x17 */ | 3755 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x10-0x17 */ |
@@ -3785,7 +3785,7 @@ static wchar_t c2u_EB[256] = { | |||
3785 | 0x77E3,0x7FA9,0x8264,0x858F,0x87FB,0x8863,0x8ABC,0x0000,/* 0xF8-0xFF */ | 3785 | 0x77E3,0x7FA9,0x8264,0x858F,0x87FB,0x8863,0x8ABC,0x0000,/* 0xF8-0xFF */ |
3786 | }; | 3786 | }; |
3787 | 3787 | ||
3788 | static wchar_t c2u_EC[256] = { | 3788 | static const wchar_t c2u_EC[256] = { |
3789 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x00-0x07 */ | 3789 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x00-0x07 */ |
3790 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x08-0x0F */ | 3790 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x08-0x0F */ |
3791 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x10-0x17 */ | 3791 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x10-0x17 */ |
@@ -3821,7 +3821,7 @@ static wchar_t c2u_EC[256] = { | |||
3821 | 0xF9F5,0x7A14,0xF9F6,0x834F,0x8CC3,0x5165,0x5344,0x0000,/* 0xF8-0xFF */ | 3821 | 0xF9F5,0x7A14,0xF9F6,0x834F,0x8CC3,0x5165,0x5344,0x0000,/* 0xF8-0xFF */ |
3822 | }; | 3822 | }; |
3823 | 3823 | ||
3824 | static wchar_t c2u_ED[256] = { | 3824 | static const wchar_t c2u_ED[256] = { |
3825 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x00-0x07 */ | 3825 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x00-0x07 */ |
3826 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x08-0x0F */ | 3826 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x08-0x0F */ |
3827 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x10-0x17 */ | 3827 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x10-0x17 */ |
@@ -3857,7 +3857,7 @@ static wchar_t c2u_ED[256] = { | |||
3857 | 0x8523,0x8594,0x85CF,0x88DD,0x8D13,0x91AC,0x9577,0x0000,/* 0xF8-0xFF */ | 3857 | 0x8523,0x8594,0x85CF,0x88DD,0x8D13,0x91AC,0x9577,0x0000,/* 0xF8-0xFF */ |
3858 | }; | 3858 | }; |
3859 | 3859 | ||
3860 | static wchar_t c2u_EE[256] = { | 3860 | static const wchar_t c2u_EE[256] = { |
3861 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x00-0x07 */ | 3861 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x00-0x07 */ |
3862 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x08-0x0F */ | 3862 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x08-0x0F */ |
3863 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x10-0x17 */ | 3863 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x10-0x17 */ |
@@ -3893,7 +3893,7 @@ static wchar_t c2u_EE[256] = { | |||
3893 | 0x5EDB,0x609B,0x6230,0x6813,0x6BBF,0x6C08,0x6FB1,0x0000,/* 0xF8-0xFF */ | 3893 | 0x5EDB,0x609B,0x6230,0x6813,0x6BBF,0x6C08,0x6FB1,0x0000,/* 0xF8-0xFF */ |
3894 | }; | 3894 | }; |
3895 | 3895 | ||
3896 | static wchar_t c2u_EF[256] = { | 3896 | static const wchar_t c2u_EF[256] = { |
3897 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x00-0x07 */ | 3897 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x00-0x07 */ |
3898 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x08-0x0F */ | 3898 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x08-0x0F */ |
3899 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x10-0x17 */ | 3899 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x10-0x17 */ |
@@ -3929,7 +3929,7 @@ static wchar_t c2u_EF[256] = { | |||
3929 | 0x914A,0x91D8,0x9266,0x92CC,0x9320,0x9706,0x9756,0x0000,/* 0xF8-0xFF */ | 3929 | 0x914A,0x91D8,0x9266,0x92CC,0x9320,0x9706,0x9756,0x0000,/* 0xF8-0xFF */ |
3930 | }; | 3930 | }; |
3931 | 3931 | ||
3932 | static wchar_t c2u_F0[256] = { | 3932 | static const wchar_t c2u_F0[256] = { |
3933 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x00-0x07 */ | 3933 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x00-0x07 */ |
3934 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x08-0x0F */ | 3934 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x08-0x0F */ |
3935 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x10-0x17 */ | 3935 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x10-0x17 */ |
@@ -3965,7 +3965,7 @@ static wchar_t c2u_F0[256] = { | |||
3965 | 0x6DD9,0x742E,0x7A2E,0x7D42,0x7D9C,0x7E31,0x816B,0x0000,/* 0xF8-0xFF */ | 3965 | 0x6DD9,0x742E,0x7A2E,0x7D42,0x7D9C,0x7E31,0x816B,0x0000,/* 0xF8-0xFF */ |
3966 | }; | 3966 | }; |
3967 | 3967 | ||
3968 | static wchar_t c2u_F1[256] = { | 3968 | static const wchar_t c2u_F1[256] = { |
3969 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x00-0x07 */ | 3969 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x00-0x07 */ |
3970 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x08-0x0F */ | 3970 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x08-0x0F */ |
3971 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x10-0x17 */ | 3971 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x10-0x17 */ |
@@ -4001,7 +4001,7 @@ static wchar_t c2u_F1[256] = { | |||
4001 | 0x75C7,0x7E52,0x84B8,0x8B49,0x8D08,0x4E4B,0x53EA,0x0000,/* 0xF8-0xFF */ | 4001 | 0x75C7,0x7E52,0x84B8,0x8B49,0x8D08,0x4E4B,0x53EA,0x0000,/* 0xF8-0xFF */ |
4002 | }; | 4002 | }; |
4003 | 4003 | ||
4004 | static wchar_t c2u_F2[256] = { | 4004 | static const wchar_t c2u_F2[256] = { |
4005 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x00-0x07 */ | 4005 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x00-0x07 */ |
4006 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x08-0x0F */ | 4006 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x08-0x0F */ |
4007 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x10-0x17 */ | 4007 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x10-0x17 */ |
@@ -4037,7 +4037,7 @@ static wchar_t c2u_F2[256] = { | |||
4037 | 0x659F,0x6715,0xF9FD,0x57F7,0x6F57,0x7DDD,0x8F2F,0x0000,/* 0xF8-0xFF */ | 4037 | 0x659F,0x6715,0xF9FD,0x57F7,0x6F57,0x7DDD,0x8F2F,0x0000,/* 0xF8-0xFF */ |
4038 | }; | 4038 | }; |
4039 | 4039 | ||
4040 | static wchar_t c2u_F3[256] = { | 4040 | static const wchar_t c2u_F3[256] = { |
4041 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x00-0x07 */ | 4041 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x00-0x07 */ |
4042 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x08-0x0F */ | 4042 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x08-0x0F */ |
4043 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x10-0x17 */ | 4043 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x10-0x17 */ |
@@ -4073,7 +4073,7 @@ static wchar_t c2u_F3[256] = { | |||
4073 | 0x83DC,0x8521,0x91C7,0x91F5,0x518A,0x67F5,0x7B56,0x0000,/* 0xF8-0xFF */ | 4073 | 0x83DC,0x8521,0x91C7,0x91F5,0x518A,0x67F5,0x7B56,0x0000,/* 0xF8-0xFF */ |
4074 | }; | 4074 | }; |
4075 | 4075 | ||
4076 | static wchar_t c2u_F4[256] = { | 4076 | static const wchar_t c2u_F4[256] = { |
4077 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x00-0x07 */ | 4077 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x00-0x07 */ |
4078 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x08-0x0F */ | 4078 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x08-0x0F */ |
4079 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x10-0x17 */ | 4079 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x10-0x17 */ |
@@ -4109,7 +4109,7 @@ static wchar_t c2u_F4[256] = { | |||
4109 | 0x521D,0x527F,0x54E8,0x6194,0x6284,0x62DB,0x68A2,0x0000,/* 0xF8-0xFF */ | 4109 | 0x521D,0x527F,0x54E8,0x6194,0x6284,0x62DB,0x68A2,0x0000,/* 0xF8-0xFF */ |
4110 | }; | 4110 | }; |
4111 | 4111 | ||
4112 | static wchar_t c2u_F5[256] = { | 4112 | static const wchar_t c2u_F5[256] = { |
4113 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x00-0x07 */ | 4113 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x00-0x07 */ |
4114 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x08-0x0F */ | 4114 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x08-0x0F */ |
4115 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x10-0x17 */ | 4115 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x10-0x17 */ |
@@ -4145,7 +4145,7 @@ static wchar_t c2u_F5[256] = { | |||
4145 | 0x6C96,0x87F2,0x885D,0x8877,0x60B4,0x81B5,0x8403,0x0000,/* 0xF8-0xFF */ | 4145 | 0x6C96,0x87F2,0x885D,0x8877,0x60B4,0x81B5,0x8403,0x0000,/* 0xF8-0xFF */ |
4146 | }; | 4146 | }; |
4147 | 4147 | ||
4148 | static wchar_t c2u_F6[256] = { | 4148 | static const wchar_t c2u_F6[256] = { |
4149 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x00-0x07 */ | 4149 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x00-0x07 */ |
4150 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x08-0x0F */ | 4150 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x08-0x0F */ |
4151 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x10-0x17 */ | 4151 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x10-0x17 */ |
@@ -4181,7 +4181,7 @@ static wchar_t c2u_F6[256] = { | |||
4181 | 0x666B,0x67DD,0x6FC1,0x6FEF,0x7422,0x7438,0x8A17,0x0000,/* 0xF8-0xFF */ | 4181 | 0x666B,0x67DD,0x6FC1,0x6FEF,0x7422,0x7438,0x8A17,0x0000,/* 0xF8-0xFF */ |
4182 | }; | 4182 | }; |
4183 | 4183 | ||
4184 | static wchar_t c2u_F7[256] = { | 4184 | static const wchar_t c2u_F7[256] = { |
4185 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x00-0x07 */ | 4185 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x00-0x07 */ |
4186 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x08-0x0F */ | 4186 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x08-0x0F */ |
4187 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x10-0x17 */ | 4187 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x10-0x17 */ |
@@ -4217,7 +4217,7 @@ static wchar_t c2u_F7[256] = { | |||
4217 | 0x5742,0x677F,0x7248,0x74E3,0x8CA9,0x8FA6,0x9211,0x0000,/* 0xF8-0xFF */ | 4217 | 0x5742,0x677F,0x7248,0x74E3,0x8CA9,0x8FA6,0x9211,0x0000,/* 0xF8-0xFF */ |
4218 | }; | 4218 | }; |
4219 | 4219 | ||
4220 | static wchar_t c2u_F8[256] = { | 4220 | static const wchar_t c2u_F8[256] = { |
4221 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x00-0x07 */ | 4221 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x00-0x07 */ |
4222 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x08-0x0F */ | 4222 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x08-0x0F */ |
4223 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x10-0x17 */ | 4223 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x10-0x17 */ |
@@ -4253,7 +4253,7 @@ static wchar_t c2u_F8[256] = { | |||
4253 | 0x74E2,0x7968,0x8868,0x8C79,0x98C7,0x98C4,0x9A43,0x0000,/* 0xF8-0xFF */ | 4253 | 0x74E2,0x7968,0x8868,0x8C79,0x98C7,0x98C4,0x9A43,0x0000,/* 0xF8-0xFF */ |
4254 | }; | 4254 | }; |
4255 | 4255 | ||
4256 | static wchar_t c2u_F9[256] = { | 4256 | static const wchar_t c2u_F9[256] = { |
4257 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x00-0x07 */ | 4257 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x00-0x07 */ |
4258 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x08-0x0F */ | 4258 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x08-0x0F */ |
4259 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x10-0x17 */ | 4259 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x10-0x17 */ |
@@ -4289,7 +4289,7 @@ static wchar_t c2u_F9[256] = { | |||
4289 | 0x676D,0x6841,0x6C86,0x6E2F,0x7F38,0x809B,0x822A,0x0000,/* 0xF8-0xFF */ | 4289 | 0x676D,0x6841,0x6C86,0x6E2F,0x7F38,0x809B,0x822A,0x0000,/* 0xF8-0xFF */ |
4290 | }; | 4290 | }; |
4291 | 4291 | ||
4292 | static wchar_t c2u_FA[256] = { | 4292 | static const wchar_t c2u_FA[256] = { |
4293 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x00-0x07 */ | 4293 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x00-0x07 */ |
4294 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x08-0x0F */ | 4294 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x08-0x0F */ |
4295 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x10-0x17 */ | 4295 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x10-0x17 */ |
@@ -4325,7 +4325,7 @@ static wchar_t c2u_FA[256] = { | |||
4325 | 0x83A2,0x92CF,0x9830,0x4EA8,0x5144,0x5211,0x578B,0x0000,/* 0xF8-0xFF */ | 4325 | 0x83A2,0x92CF,0x9830,0x4EA8,0x5144,0x5211,0x578B,0x0000,/* 0xF8-0xFF */ |
4326 | }; | 4326 | }; |
4327 | 4327 | ||
4328 | static wchar_t c2u_FB[256] = { | 4328 | static const wchar_t c2u_FB[256] = { |
4329 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x00-0x07 */ | 4329 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x00-0x07 */ |
4330 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x08-0x0F */ | 4330 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x08-0x0F */ |
4331 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x10-0x17 */ | 4331 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x10-0x17 */ |
@@ -4361,7 +4361,7 @@ static wchar_t c2u_FB[256] = { | |||
4361 | 0x9D3B,0x5316,0x548C,0x5B05,0x6A3A,0x706B,0x7575,0x0000,/* 0xF8-0xFF */ | 4361 | 0x9D3B,0x5316,0x548C,0x5B05,0x6A3A,0x706B,0x7575,0x0000,/* 0xF8-0xFF */ |
4362 | }; | 4362 | }; |
4363 | 4363 | ||
4364 | static wchar_t c2u_FC[256] = { | 4364 | static const wchar_t c2u_FC[256] = { |
4365 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x00-0x07 */ | 4365 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x00-0x07 */ |
4366 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x08-0x0F */ | 4366 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x08-0x0F */ |
4367 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x10-0x17 */ | 4367 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x10-0x17 */ |
@@ -4397,7 +4397,7 @@ static wchar_t c2u_FC[256] = { | |||
4397 | 0x5B5D,0x6548,0x6585,0x66C9,0x689F,0x6D8D,0x6DC6,0x0000,/* 0xF8-0xFF */ | 4397 | 0x5B5D,0x6548,0x6585,0x66C9,0x689F,0x6D8D,0x6DC6,0x0000,/* 0xF8-0xFF */ |
4398 | }; | 4398 | }; |
4399 | 4399 | ||
4400 | static wchar_t c2u_FD[256] = { | 4400 | static const wchar_t c2u_FD[256] = { |
4401 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x00-0x07 */ | 4401 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x00-0x07 */ |
4402 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x08-0x0F */ | 4402 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x08-0x0F */ |
4403 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x10-0x17 */ | 4403 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x10-0x17 */ |
@@ -4433,7 +4433,7 @@ static wchar_t c2u_FD[256] = { | |||
4433 | 0x71B9,0x71BA,0x72A7,0x79A7,0x7A00,0x7FB2,0x8A70,0x0000,/* 0xF8-0xFF */ | 4433 | 0x71B9,0x71BA,0x72A7,0x79A7,0x7A00,0x7FB2,0x8A70,0x0000,/* 0xF8-0xFF */ |
4434 | }; | 4434 | }; |
4435 | 4435 | ||
4436 | static wchar_t *page_charset2uni[256] = { | 4436 | static const wchar_t *page_charset2uni[256] = { |
4437 | NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, | 4437 | NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, |
4438 | NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, | 4438 | NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, |
4439 | NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, | 4439 | NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, |
@@ -4468,7 +4468,7 @@ static wchar_t *page_charset2uni[256] = { | |||
4468 | c2u_F8, c2u_F9, c2u_FA, c2u_FB, c2u_FC, c2u_FD, NULL, NULL, | 4468 | c2u_F8, c2u_F9, c2u_FA, c2u_FB, c2u_FC, c2u_FD, NULL, NULL, |
4469 | }; | 4469 | }; |
4470 | 4470 | ||
4471 | static unsigned char u2c_01[512] = { | 4471 | static const unsigned char u2c_01[512] = { |
4472 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x00-0x03 */ | 4472 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x00-0x03 */ |
4473 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x04-0x07 */ | 4473 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x04-0x07 */ |
4474 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x08-0x0B */ | 4474 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x08-0x0B */ |
@@ -4497,7 +4497,7 @@ static unsigned char u2c_01[512] = { | |||
4497 | 0x00, 0x00, 0x00, 0x00, 0xA8, 0xAE, 0xA9, 0xAE, /* 0x64-0x67 */ | 4497 | 0x00, 0x00, 0x00, 0x00, 0xA8, 0xAE, 0xA9, 0xAE, /* 0x64-0x67 */ |
4498 | }; | 4498 | }; |
4499 | 4499 | ||
4500 | static unsigned char u2c_02[512] = { | 4500 | static const unsigned char u2c_02[512] = { |
4501 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x00-0x03 */ | 4501 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x00-0x03 */ |
4502 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x04-0x07 */ | 4502 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x04-0x07 */ |
4503 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x08-0x0B */ | 4503 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x08-0x0B */ |
@@ -4557,7 +4557,7 @@ static unsigned char u2c_02[512] = { | |||
4557 | 0x00, 0x00, 0xA2, 0xA9, 0x00, 0x00, 0x00, 0x00, /* 0xDC-0xDF */ | 4557 | 0x00, 0x00, 0xA2, 0xA9, 0x00, 0x00, 0x00, 0x00, /* 0xDC-0xDF */ |
4558 | }; | 4558 | }; |
4559 | 4559 | ||
4560 | static unsigned char u2c_03[512] = { | 4560 | static const unsigned char u2c_03[512] = { |
4561 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x00-0x03 */ | 4561 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x00-0x03 */ |
4562 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x04-0x07 */ | 4562 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x04-0x07 */ |
4563 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x08-0x0B */ | 4563 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x08-0x0B */ |
@@ -4612,7 +4612,7 @@ static unsigned char u2c_03[512] = { | |||
4612 | 0xA5, 0xF7, 0xA5, 0xF8, 0x00, 0x00, 0x00, 0x00, /* 0xC8-0xCB */ | 4612 | 0xA5, 0xF7, 0xA5, 0xF8, 0x00, 0x00, 0x00, 0x00, /* 0xC8-0xCB */ |
4613 | }; | 4613 | }; |
4614 | 4614 | ||
4615 | static unsigned char u2c_04[512] = { | 4615 | static const unsigned char u2c_04[512] = { |
4616 | 0x00, 0x00, 0xAC, 0xA7, 0x00, 0x00, 0x00, 0x00, /* 0x00-0x03 */ | 4616 | 0x00, 0x00, 0xAC, 0xA7, 0x00, 0x00, 0x00, 0x00, /* 0x00-0x03 */ |
4617 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x04-0x07 */ | 4617 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x04-0x07 */ |
4618 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x08-0x0B */ | 4618 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x08-0x0B */ |
@@ -4636,7 +4636,7 @@ static unsigned char u2c_04[512] = { | |||
4636 | 0x00, 0x00, 0xAC, 0xD7, 0x00, 0x00, 0x00, 0x00, /* 0x50-0x53 */ | 4636 | 0x00, 0x00, 0xAC, 0xD7, 0x00, 0x00, 0x00, 0x00, /* 0x50-0x53 */ |
4637 | }; | 4637 | }; |
4638 | 4638 | ||
4639 | static unsigned char u2c_11[512] = { | 4639 | static const unsigned char u2c_11[512] = { |
4640 | 0xA4, 0xA1, 0xA4, 0xA2, 0xA4, 0xA4, 0xA4, 0xA7, /* 0x00-0x03 */ | 4640 | 0xA4, 0xA1, 0xA4, 0xA2, 0xA4, 0xA4, 0xA4, 0xA7, /* 0x00-0x03 */ |
4641 | 0xA4, 0xA8, 0xA4, 0xA9, 0xA4, 0xB1, 0xA4, 0xB2, /* 0x04-0x07 */ | 4641 | 0xA4, 0xA8, 0xA4, 0xA9, 0xA4, 0xB1, 0xA4, 0xB2, /* 0x04-0x07 */ |
4642 | 0xA4, 0xB3, 0xA4, 0xB5, 0xA4, 0xB6, 0xA4, 0xB7, /* 0x08-0x0B */ | 4642 | 0xA4, 0xB3, 0xA4, 0xB5, 0xA4, 0xB6, 0xA4, 0xB7, /* 0x08-0x0B */ |
@@ -4703,7 +4703,7 @@ static unsigned char u2c_11[512] = { | |||
4703 | 0x00, 0x00, 0xA4, 0xF6, 0x00, 0x00, 0x00, 0x00, /* 0xF8-0xFB */ | 4703 | 0x00, 0x00, 0xA4, 0xF6, 0x00, 0x00, 0x00, 0x00, /* 0xF8-0xFB */ |
4704 | }; | 4704 | }; |
4705 | 4705 | ||
4706 | static unsigned char u2c_20[512] = { | 4706 | static const unsigned char u2c_20[512] = { |
4707 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x00-0x03 */ | 4707 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x00-0x03 */ |
4708 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x04-0x07 */ | 4708 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x04-0x07 */ |
4709 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x08-0x0B */ | 4709 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x08-0x0B */ |
@@ -4750,7 +4750,7 @@ static unsigned char u2c_20[512] = { | |||
4750 | 0x00, 0x00, 0x00, 0x5C, 0x00, 0x00, 0x00, 0x00, /* 0xA8-0xAB */ | 4750 | 0x00, 0x00, 0x00, 0x5C, 0x00, 0x00, 0x00, 0x00, /* 0xA8-0xAB */ |
4751 | }; | 4751 | }; |
4752 | 4752 | ||
4753 | static unsigned char u2c_21[512] = { | 4753 | static const unsigned char u2c_21[512] = { |
4754 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xA1, 0xC9, /* 0x00-0x03 */ | 4754 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xA1, 0xC9, /* 0x00-0x03 */ |
4755 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x04-0x07 */ | 4755 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x04-0x07 */ |
4756 | 0x00, 0x00, 0xA2, 0xB5, 0x00, 0x00, 0x00, 0x00, /* 0x08-0x0B */ | 4756 | 0x00, 0x00, 0xA2, 0xB5, 0x00, 0x00, 0x00, 0x00, /* 0x08-0x0B */ |
@@ -4808,7 +4808,7 @@ static unsigned char u2c_21[512] = { | |||
4808 | 0xA2, 0xA2, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xD4-0xD7 */ | 4808 | 0xA2, 0xA2, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xD4-0xD7 */ |
4809 | }; | 4809 | }; |
4810 | 4810 | ||
4811 | static unsigned char u2c_22[512] = { | 4811 | static const unsigned char u2c_22[512] = { |
4812 | 0xA2, 0xA3, 0x00, 0x00, 0xA1, 0xD3, 0xA2, 0xA4, /* 0x00-0x03 */ | 4812 | 0xA2, 0xA3, 0x00, 0x00, 0xA1, 0xD3, 0xA2, 0xA4, /* 0x00-0x03 */ |
4813 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xA1, 0xD4, /* 0x04-0x07 */ | 4813 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xA1, 0xD4, /* 0x04-0x07 */ |
4814 | 0xA1, 0xF4, 0x00, 0x00, 0x00, 0x00, 0xA1, 0xF5, /* 0x08-0x0B */ | 4814 | 0xA1, 0xF4, 0x00, 0x00, 0x00, 0x00, 0xA1, 0xF5, /* 0x08-0x0B */ |
@@ -4854,7 +4854,7 @@ static unsigned char u2c_22[512] = { | |||
4854 | 0x00, 0x00, 0xA1, 0xD1, 0x00, 0x00, 0x00, 0x00, /* 0xA4-0xA7 */ | 4854 | 0x00, 0x00, 0xA1, 0xD1, 0x00, 0x00, 0x00, 0x00, /* 0xA4-0xA7 */ |
4855 | }; | 4855 | }; |
4856 | 4856 | ||
4857 | static unsigned char u2c_23[512] = { | 4857 | static const unsigned char u2c_23[512] = { |
4858 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x00-0x03 */ | 4858 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x00-0x03 */ |
4859 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x04-0x07 */ | 4859 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x04-0x07 */ |
4860 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x08-0x0B */ | 4860 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x08-0x0B */ |
@@ -4862,7 +4862,7 @@ static unsigned char u2c_23[512] = { | |||
4862 | 0x00, 0x00, 0x00, 0x00, 0xA1, 0xD2, 0x00, 0x00, /* 0x10-0x13 */ | 4862 | 0x00, 0x00, 0x00, 0x00, 0xA1, 0xD2, 0x00, 0x00, /* 0x10-0x13 */ |
4863 | }; | 4863 | }; |
4864 | 4864 | ||
4865 | static unsigned char u2c_24[512] = { | 4865 | static const unsigned char u2c_24[512] = { |
4866 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x00-0x03 */ | 4866 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x00-0x03 */ |
4867 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x04-0x07 */ | 4867 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x04-0x07 */ |
4868 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x08-0x0B */ | 4868 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x08-0x0B */ |
@@ -4925,7 +4925,7 @@ static unsigned char u2c_24[512] = { | |||
4925 | 0xA8, 0xE5, 0xA8, 0xE6, 0x00, 0x00, 0x00, 0x00, /* 0xE8-0xEB */ | 4925 | 0xA8, 0xE5, 0xA8, 0xE6, 0x00, 0x00, 0x00, 0x00, /* 0xE8-0xEB */ |
4926 | }; | 4926 | }; |
4927 | 4927 | ||
4928 | static unsigned char u2c_25[512] = { | 4928 | static const unsigned char u2c_25[512] = { |
4929 | 0xA6, 0xA1, 0xA6, 0xAC, 0xA6, 0xA2, 0xA6, 0xAD, /* 0x00-0x03 */ | 4929 | 0xA6, 0xA1, 0xA6, 0xAC, 0xA6, 0xA2, 0xA6, 0xAD, /* 0x00-0x03 */ |
4930 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x04-0x07 */ | 4930 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x04-0x07 */ |
4931 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x08-0x0B */ | 4931 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x08-0x0B */ |
@@ -4982,7 +4982,7 @@ static unsigned char u2c_25[512] = { | |||
4982 | 0xA2, 0xC4, 0xA2, 0xC5, 0x00, 0x00, 0x00, 0x00, /* 0xD0-0xD3 */ | 4982 | 0xA2, 0xC4, 0xA2, 0xC5, 0x00, 0x00, 0x00, 0x00, /* 0xD0-0xD3 */ |
4983 | }; | 4983 | }; |
4984 | 4984 | ||
4985 | static unsigned char u2c_26[512] = { | 4985 | static const unsigned char u2c_26[512] = { |
4986 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x00-0x03 */ | 4986 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x00-0x03 */ |
4987 | 0x00, 0x00, 0xA1, 0xDA, 0xA1, 0xD9, 0x00, 0x00, /* 0x04-0x07 */ | 4987 | 0x00, 0x00, 0xA1, 0xDA, 0xA1, 0xD9, 0x00, 0x00, /* 0x04-0x07 */ |
4988 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x08-0x0B */ | 4988 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x08-0x0B */ |
@@ -5013,7 +5013,7 @@ static unsigned char u2c_26[512] = { | |||
5013 | 0xA2, 0xDD, 0xA2, 0xDA, 0x00, 0x00, 0x00, 0x00, /* 0x6C-0x6F */ | 5013 | 0xA2, 0xDD, 0xA2, 0xDA, 0x00, 0x00, 0x00, 0x00, /* 0x6C-0x6F */ |
5014 | }; | 5014 | }; |
5015 | 5015 | ||
5016 | static unsigned char u2c_30[512] = { | 5016 | static const unsigned char u2c_30[512] = { |
5017 | 0xA1, 0xA1, 0xA1, 0xA2, 0xA1, 0xA3, 0xA1, 0xA8, /* 0x00-0x03 */ | 5017 | 0xA1, 0xA1, 0xA1, 0xA2, 0xA1, 0xA3, 0xA1, 0xA8, /* 0x00-0x03 */ |
5018 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x04-0x07 */ | 5018 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x04-0x07 */ |
5019 | 0xA1, 0xB4, 0xA1, 0xB5, 0xA1, 0xB6, 0xA1, 0xB7, /* 0x08-0x0B */ | 5019 | 0xA1, 0xB4, 0xA1, 0xB5, 0xA1, 0xB6, 0xA1, 0xB7, /* 0x08-0x0B */ |
@@ -5079,7 +5079,7 @@ static unsigned char u2c_30[512] = { | |||
5079 | 0xAB, 0xF4, 0xAB, 0xF5, 0xAB, 0xF6, 0x00, 0x00, /* 0xF4-0xF7 */ | 5079 | 0xAB, 0xF4, 0xAB, 0xF5, 0xAB, 0xF6, 0x00, 0x00, /* 0xF4-0xF7 */ |
5080 | }; | 5080 | }; |
5081 | 5081 | ||
5082 | static unsigned char u2c_31[512] = { | 5082 | static const unsigned char u2c_31[512] = { |
5083 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x00-0x03 */ | 5083 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x00-0x03 */ |
5084 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x04-0x07 */ | 5084 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x04-0x07 */ |
5085 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x08-0x0B */ | 5085 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x08-0x0B */ |
@@ -5123,7 +5123,7 @@ static unsigned char u2c_31[512] = { | |||
5123 | 0xEF, 0xCB, 0xF4, 0xB8, 0xF2, 0xA2, 0xEC, 0xD1, /* 0x9C-0x9F */ | 5123 | 0xEF, 0xCB, 0xF4, 0xB8, 0xF2, 0xA2, 0xEC, 0xD1, /* 0x9C-0x9F */ |
5124 | }; | 5124 | }; |
5125 | 5125 | ||
5126 | static unsigned char u2c_32[512] = { | 5126 | static const unsigned char u2c_32[512] = { |
5127 | 0xA9, 0xB1, 0xA9, 0xB2, 0xA9, 0xB3, 0xA9, 0xB4, /* 0x00-0x03 */ | 5127 | 0xA9, 0xB1, 0xA9, 0xB2, 0xA9, 0xB3, 0xA9, 0xB4, /* 0x00-0x03 */ |
5128 | 0xA9, 0xB5, 0xA9, 0xB6, 0xA9, 0xB7, 0xA9, 0xB8, /* 0x04-0x07 */ | 5128 | 0xA9, 0xB5, 0xA9, 0xB6, 0xA9, 0xB7, 0xA9, 0xB8, /* 0x04-0x07 */ |
5129 | 0xA9, 0xB9, 0xA9, 0xBA, 0xA9, 0xBB, 0xA9, 0xBC, /* 0x08-0x0B */ | 5129 | 0xA9, 0xB9, 0xA9, 0xBA, 0xA9, 0xBB, 0xA9, 0xBC, /* 0x08-0x0B */ |
@@ -5172,7 +5172,7 @@ static unsigned char u2c_32[512] = { | |||
5172 | 0xE5, 0xA8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xB0-0xB3 */ | 5172 | 0xE5, 0xA8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xB0-0xB3 */ |
5173 | }; | 5173 | }; |
5174 | 5174 | ||
5175 | static unsigned char u2c_33[512] = { | 5175 | static const unsigned char u2c_33[512] = { |
5176 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x00-0x03 */ | 5176 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x00-0x03 */ |
5177 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x04-0x07 */ | 5177 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x04-0x07 */ |
5178 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x08-0x0B */ | 5178 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x08-0x0B */ |
@@ -5232,7 +5232,7 @@ static unsigned char u2c_33[512] = { | |||
5232 | 0xA7, 0xEE, 0xA7, 0xE9, 0x00, 0x00, 0x00, 0x00, /* 0xDC-0xDF */ | 5232 | 0xA7, 0xEE, 0xA7, 0xE9, 0x00, 0x00, 0x00, 0x00, /* 0xDC-0xDF */ |
5233 | }; | 5233 | }; |
5234 | 5234 | ||
5235 | static unsigned char u2c_4E[512] = { | 5235 | static const unsigned char u2c_4E[512] = { |
5236 | 0xEC, 0xE9, 0xEF, 0xCB, 0x00, 0x00, 0xF6, 0xD2, /* 0x00-0x03 */ | 5236 | 0xEC, 0xE9, 0xEF, 0xCB, 0x00, 0x00, 0xF6, 0xD2, /* 0x00-0x03 */ |
5237 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xD8, 0xB2, /* 0x04-0x07 */ | 5237 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xD8, 0xB2, /* 0x04-0x07 */ |
5238 | 0xED, 0xDB, 0xDF, 0xB2, 0xDF, 0xBE, 0xF9, 0xBB, /* 0x08-0x0B */ | 5238 | 0xED, 0xDB, 0xDF, 0xB2, 0xDF, 0xBE, 0xF9, 0xBB, /* 0x08-0x0B */ |
@@ -5299,7 +5299,7 @@ static unsigned char u2c_4E[512] = { | |||
5299 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xEC, 0xF2, /* 0xF8-0xFB */ | 5299 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xEC, 0xF2, /* 0xF8-0xFB */ |
5300 | }; | 5300 | }; |
5301 | 5301 | ||
5302 | static unsigned char u2c_4F[512] = { | 5302 | static const unsigned char u2c_4F[512] = { |
5303 | 0x00, 0x00, 0xD0, 0xEA, 0x00, 0x00, 0x00, 0x00, /* 0x00-0x03 */ | 5303 | 0x00, 0x00, 0xD0, 0xEA, 0x00, 0x00, 0x00, 0x00, /* 0x00-0x03 */ |
5304 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x04-0x07 */ | 5304 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x04-0x07 */ |
5305 | 0x00, 0x00, 0xF9, 0xF2, 0xEC, 0xA5, 0xD0, 0xDF, /* 0x08-0x0B */ | 5305 | 0x00, 0x00, 0xF9, 0xF2, 0xEC, 0xA5, 0xD0, 0xDF, /* 0x08-0x0B */ |
@@ -5366,7 +5366,7 @@ static unsigned char u2c_4F[512] = { | |||
5366 | 0xDC, 0xE4, 0x00, 0x00, 0xE5, 0xEF, 0x00, 0x00, /* 0xF8-0xFB */ | 5366 | 0xDC, 0xE4, 0x00, 0x00, 0xE5, 0xEF, 0x00, 0x00, /* 0xF8-0xFB */ |
5367 | }; | 5367 | }; |
5368 | 5368 | ||
5369 | static unsigned char u2c_50[512] = { | 5369 | static const unsigned char u2c_50[512] = { |
5370 | 0x00, 0x00, 0x00, 0x00, 0xDC, 0xB1, 0x00, 0x00, /* 0x00-0x03 */ | 5370 | 0x00, 0x00, 0x00, 0x00, 0xDC, 0xB1, 0x00, 0x00, /* 0x00-0x03 */ |
5371 | 0x00, 0x00, 0x00, 0x00, 0xD5, 0xD6, 0x00, 0x00, /* 0x04-0x07 */ | 5371 | 0x00, 0x00, 0x00, 0x00, 0xD5, 0xD6, 0x00, 0x00, /* 0x04-0x07 */ |
5372 | 0x00, 0x00, 0xF3, 0xDA, 0x00, 0x00, 0xCB, 0xC1, /* 0x08-0x0B */ | 5372 | 0x00, 0x00, 0xF3, 0xDA, 0x00, 0x00, 0xCB, 0xC1, /* 0x08-0x0B */ |
@@ -5434,7 +5434,7 @@ static unsigned char u2c_50[512] = { | |||
5434 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xDE, 0xC7, /* 0xFC-0xFF */ | 5434 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xDE, 0xC7, /* 0xFC-0xFF */ |
5435 | }; | 5435 | }; |
5436 | 5436 | ||
5437 | static unsigned char u2c_51[512] = { | 5437 | static const unsigned char u2c_51[512] = { |
5438 | 0xEB, 0xF0, 0xF1, 0xD6, 0x00, 0x00, 0x00, 0x00, /* 0x00-0x03 */ | 5438 | 0xEB, 0xF0, 0xF1, 0xD6, 0x00, 0x00, 0x00, 0x00, /* 0x00-0x03 */ |
5439 | 0xE5, 0xE2, 0x00, 0x00, 0xCC, 0xCC, 0x00, 0x00, /* 0x04-0x07 */ | 5439 | 0xE5, 0xE2, 0x00, 0x00, 0xCC, 0xCC, 0x00, 0x00, /* 0x04-0x07 */ |
5440 | 0x00, 0x00, 0xCB, 0xFB, 0x00, 0x00, 0x00, 0x00, /* 0x08-0x0B */ | 5440 | 0x00, 0x00, 0xCB, 0xFB, 0x00, 0x00, 0x00, 0x00, /* 0x08-0x0B */ |
@@ -5502,7 +5502,7 @@ static unsigned char u2c_51[512] = { | |||
5502 | 0x00, 0x00, 0xF9, 0xDE, 0x00, 0x00, 0x00, 0x00, /* 0xFC-0xFF */ | 5502 | 0x00, 0x00, 0xF9, 0xDE, 0x00, 0x00, 0x00, 0x00, /* 0xFC-0xFF */ |
5503 | }; | 5503 | }; |
5504 | 5504 | ||
5505 | static unsigned char u2c_52[512] = { | 5505 | static const unsigned char u2c_52[512] = { |
5506 | 0xD3, 0xEF, 0x00, 0x00, 0x00, 0x00, 0xEC, 0xD3, /* 0x00-0x03 */ | 5506 | 0xD3, 0xEF, 0x00, 0x00, 0x00, 0x00, 0xEC, 0xD3, /* 0x00-0x03 */ |
5507 | 0x00, 0x00, 0x00, 0x00, 0xDD, 0xC2, 0xEF, 0xB7, /* 0x04-0x07 */ | 5507 | 0x00, 0x00, 0x00, 0x00, 0xDD, 0xC2, 0xEF, 0xB7, /* 0x04-0x07 */ |
5508 | 0xE7, 0xD4, 0x00, 0x00, 0xCA, 0xCA, 0x00, 0x00, /* 0x08-0x0B */ | 5508 | 0xE7, 0xD4, 0x00, 0x00, 0xCA, 0xCA, 0x00, 0x00, /* 0x08-0x0B */ |
@@ -5570,7 +5570,7 @@ static unsigned char u2c_52[512] = { | |||
5570 | 0x00, 0x00, 0x00, 0x00, 0xCE, 0xFE, 0xDA, 0xA8, /* 0xFC-0xFF */ | 5570 | 0x00, 0x00, 0x00, 0x00, 0xCE, 0xFE, 0xDA, 0xA8, /* 0xFC-0xFF */ |
5571 | }; | 5571 | }; |
5572 | 5572 | ||
5573 | static unsigned char u2c_53[512] = { | 5573 | static const unsigned char u2c_53[512] = { |
5574 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x00-0x03 */ | 5574 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x00-0x03 */ |
5575 | 0x00, 0x00, 0xF8, 0xD0, 0x00, 0x00, 0x00, 0x00, /* 0x04-0x07 */ | 5575 | 0x00, 0x00, 0xF8, 0xD0, 0x00, 0x00, 0x00, 0x00, /* 0x04-0x07 */ |
5576 | 0xFD, 0xD6, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x08-0x0B */ | 5576 | 0xFD, 0xD6, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x08-0x0B */ |
@@ -5637,7 +5637,7 @@ static unsigned char u2c_53[512] = { | |||
5637 | 0xDE, 0xC9, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xF8-0xFB */ | 5637 | 0xDE, 0xC9, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xF8-0xFB */ |
5638 | }; | 5638 | }; |
5639 | 5639 | ||
5640 | static unsigned char u2c_54[512] = { | 5640 | static const unsigned char u2c_54[512] = { |
5641 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFD, 0xDE, /* 0x00-0x03 */ | 5641 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFD, 0xDE, /* 0x00-0x03 */ |
5642 | 0xCA, 0xC0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x04-0x07 */ | 5642 | 0xCA, 0xC0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x04-0x07 */ |
5643 | 0xF9, 0xEA, 0xD1, 0xCE, 0xEE, 0xD4, 0x00, 0x00, /* 0x08-0x0B */ | 5643 | 0xF9, 0xEA, 0xD1, 0xCE, 0xEE, 0xD4, 0x00, 0x00, /* 0x08-0x0B */ |
@@ -5704,7 +5704,7 @@ static unsigned char u2c_54[512] = { | |||
5704 | 0x00, 0x00, 0x00, 0x00, 0xF8, 0xD4, 0x00, 0x00, /* 0xF8-0xFB */ | 5704 | 0x00, 0x00, 0x00, 0x00, 0xF8, 0xD4, 0x00, 0x00, /* 0xF8-0xFB */ |
5705 | }; | 5705 | }; |
5706 | 5706 | ||
5707 | static unsigned char u2c_55[512] = { | 5707 | static const unsigned char u2c_55[512] = { |
5708 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x00-0x03 */ | 5708 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x00-0x03 */ |
5709 | 0xF8, 0xA6, 0x00, 0x00, 0xDE, 0xCA, 0xF2, 0xC6, /* 0x04-0x07 */ | 5709 | 0xF8, 0xA6, 0x00, 0x00, 0xDE, 0xCA, 0xF2, 0xC6, /* 0x04-0x07 */ |
5710 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x08-0x0B */ | 5710 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x08-0x0B */ |
@@ -5772,7 +5772,7 @@ static unsigned char u2c_55[512] = { | |||
5772 | 0x00, 0x00, 0xE1, 0xF5, 0xF1, 0xB3, 0x00, 0x00, /* 0xFC-0xFF */ | 5772 | 0x00, 0x00, 0xE1, 0xF5, 0xF1, 0xB3, 0x00, 0x00, /* 0xFC-0xFF */ |
5773 | }; | 5773 | }; |
5774 | 5774 | ||
5775 | static unsigned char u2c_56[512] = { | 5775 | static const unsigned char u2c_56[512] = { |
5776 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x00-0x03 */ | 5776 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x00-0x03 */ |
5777 | 0x00, 0x00, 0x00, 0x00, 0xF7, 0xA3, 0x00, 0x00, /* 0x04-0x07 */ | 5777 | 0x00, 0x00, 0x00, 0x00, 0xF7, 0xA3, 0x00, 0x00, /* 0x04-0x07 */ |
5778 | 0x00, 0x00, 0xCA, 0xA9, 0x00, 0x00, 0x00, 0x00, /* 0x08-0x0B */ | 5778 | 0x00, 0x00, 0xCA, 0xA9, 0x00, 0x00, 0x00, 0x00, /* 0x08-0x0B */ |
@@ -5839,7 +5839,7 @@ static unsigned char u2c_56[512] = { | |||
5839 | 0x00, 0x00, 0xD6, 0xB7, 0xCD, 0xB3, 0x00, 0x00, /* 0xF8-0xFB */ | 5839 | 0x00, 0x00, 0xD6, 0xB7, 0xCD, 0xB3, 0x00, 0x00, /* 0xF8-0xFB */ |
5840 | }; | 5840 | }; |
5841 | 5841 | ||
5842 | static unsigned char u2c_57[512] = { | 5842 | static const unsigned char u2c_57[512] = { |
5843 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xF8, 0xD5, /* 0x00-0x03 */ | 5843 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xF8, 0xD5, /* 0x00-0x03 */ |
5844 | 0xE5, 0xD8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x04-0x07 */ | 5844 | 0xE5, 0xD8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x04-0x07 */ |
5845 | 0xCF, 0xEA, 0x00, 0x00, 0x00, 0x00, 0xCF, 0xD0, /* 0x08-0x0B */ | 5845 | 0xCF, 0xEA, 0x00, 0x00, 0x00, 0x00, 0xCF, 0xD0, /* 0x08-0x0B */ |
@@ -5907,7 +5907,7 @@ static unsigned char u2c_57[512] = { | |||
5907 | 0xD0, 0xF2, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xFC-0xFF */ | 5907 | 0xD0, 0xF2, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xFC-0xFF */ |
5908 | }; | 5908 | }; |
5909 | 5909 | ||
5910 | static unsigned char u2c_58[512] = { | 5910 | static const unsigned char u2c_58[512] = { |
5911 | 0xCF, 0xDC, 0x00, 0x00, 0xD3, 0xD1, 0x00, 0x00, /* 0x00-0x03 */ | 5911 | 0xCF, 0xDC, 0x00, 0x00, 0xD3, 0xD1, 0x00, 0x00, /* 0x00-0x03 */ |
5912 | 0x00, 0x00, 0xCC, 0xB1, 0xF7, 0xD8, 0x00, 0x00, /* 0x04-0x07 */ | 5912 | 0x00, 0x00, 0xCC, 0xB1, 0xF7, 0xD8, 0x00, 0x00, /* 0x04-0x07 */ |
5913 | 0xCB, 0xA8, 0xEB, 0xBC, 0xE4, 0xBE, 0x00, 0x00, /* 0x08-0x0B */ | 5913 | 0xCB, 0xA8, 0xEB, 0xBC, 0xE4, 0xBE, 0x00, 0x00, /* 0x08-0x0B */ |
@@ -5975,7 +5975,7 @@ static unsigned char u2c_58[512] = { | |||
5975 | 0x00, 0x00, 0xE1, 0xF8, 0x00, 0x00, 0x00, 0x00, /* 0xFC-0xFF */ | 5975 | 0x00, 0x00, 0xE1, 0xF8, 0x00, 0x00, 0x00, 0x00, /* 0xFC-0xFF */ |
5976 | }; | 5976 | }; |
5977 | 5977 | ||
5978 | static unsigned char u2c_59[512] = { | 5978 | static const unsigned char u2c_59[512] = { |
5979 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x00-0x03 */ | 5979 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x00-0x03 */ |
5980 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x04-0x07 */ | 5980 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x04-0x07 */ |
5981 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x08-0x0B */ | 5981 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x08-0x0B */ |
@@ -6043,7 +6043,7 @@ static unsigned char u2c_59[512] = { | |||
6043 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xED, 0xAC, /* 0xFC-0xFF */ | 6043 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xED, 0xAC, /* 0xFC-0xFF */ |
6044 | }; | 6044 | }; |
6045 | 6045 | ||
6046 | static unsigned char u2c_5A[512] = { | 6046 | static const unsigned char u2c_5A[512] = { |
6047 | 0x00, 0x00, 0xEA, 0xCE, 0x00, 0x00, 0xE8, 0xDF, /* 0x00-0x03 */ | 6047 | 0x00, 0x00, 0xEA, 0xCE, 0x00, 0x00, 0xE8, 0xDF, /* 0x00-0x03 */ |
6048 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x04-0x07 */ | 6048 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x04-0x07 */ |
6049 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x08-0x0B */ | 6049 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x08-0x0B */ |
@@ -6106,7 +6106,7 @@ static unsigned char u2c_5A[512] = { | |||
6106 | 0x00, 0x00, 0xD2, 0xEC, 0x00, 0x00, 0x00, 0x00, /* 0xE8-0xEB */ | 6106 | 0x00, 0x00, 0xD2, 0xEC, 0x00, 0x00, 0x00, 0x00, /* 0xE8-0xEB */ |
6107 | }; | 6107 | }; |
6108 | 6108 | ||
6109 | static unsigned char u2c_5B[512] = { | 6109 | static const unsigned char u2c_5B[512] = { |
6110 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x00-0x03 */ | 6110 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x00-0x03 */ |
6111 | 0x00, 0x00, 0xFB, 0xFB, 0x00, 0x00, 0x00, 0x00, /* 0x04-0x07 */ | 6111 | 0x00, 0x00, 0xFB, 0xFB, 0x00, 0x00, 0x00, 0x00, /* 0x04-0x07 */ |
6112 | 0x00, 0x00, 0xFD, 0xF0, 0x00, 0x00, 0xE0, 0xBD, /* 0x08-0x0B */ | 6112 | 0x00, 0x00, 0xFD, 0xF0, 0x00, 0x00, 0xE0, 0xBD, /* 0x08-0x0B */ |
@@ -6173,7 +6173,7 @@ static unsigned char u2c_5B[512] = { | |||
6173 | 0xF5, 0xBB, 0x00, 0x00, 0xDE, 0xD1, 0x00, 0x00, /* 0xF8-0xFB */ | 6173 | 0xF5, 0xBB, 0x00, 0x00, 0xDE, 0xD1, 0x00, 0x00, /* 0xF8-0xFB */ |
6174 | }; | 6174 | }; |
6175 | 6175 | ||
6176 | static unsigned char u2c_5C[512] = { | 6176 | static const unsigned char u2c_5C[512] = { |
6177 | 0x00, 0x00, 0xDC, 0xE6, 0x00, 0x00, 0x00, 0x00, /* 0x00-0x03 */ | 6177 | 0x00, 0x00, 0xDC, 0xE6, 0x00, 0x00, 0x00, 0x00, /* 0x00-0x03 */ |
6178 | 0xDE, 0xD2, 0x00, 0x00, 0x00, 0x00, 0xED, 0xE2, /* 0x04-0x07 */ | 6178 | 0xDE, 0xD2, 0x00, 0x00, 0x00, 0x00, 0xED, 0xE2, /* 0x04-0x07 */ |
6179 | 0xEE, 0xF6, 0xEA, 0xCF, 0xF0, 0xEE, 0xE3, 0xFC, /* 0x08-0x0B */ | 6179 | 0xEE, 0xF6, 0xEA, 0xCF, 0xF0, 0xEE, 0xE3, 0xFC, /* 0x08-0x0B */ |
@@ -6241,7 +6241,7 @@ static unsigned char u2c_5C[512] = { | |||
6241 | 0x00, 0x00, 0xFA, 0xF2, 0x00, 0x00, 0x00, 0x00, /* 0xFC-0xFF */ | 6241 | 0x00, 0x00, 0xFA, 0xF2, 0x00, 0x00, 0x00, 0x00, /* 0xFC-0xFF */ |
6242 | }; | 6242 | }; |
6243 | 6243 | ||
6244 | static unsigned char u2c_5D[512] = { | 6244 | static const unsigned char u2c_5D[512] = { |
6245 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x00-0x03 */ | 6245 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x00-0x03 */ |
6246 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xE2, 0xFD, /* 0x04-0x07 */ | 6246 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xE2, 0xFD, /* 0x04-0x07 */ |
6247 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x08-0x0B */ | 6247 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x08-0x0B */ |
@@ -6309,7 +6309,7 @@ static unsigned char u2c_5D[512] = { | |||
6309 | 0x00, 0x00, 0xE1, 0xDE, 0xCB, 0xEE, 0x00, 0x00, /* 0xFC-0xFF */ | 6309 | 0x00, 0x00, 0xE1, 0xDE, 0xCB, 0xEE, 0x00, 0x00, /* 0xFC-0xFF */ |
6310 | }; | 6310 | }; |
6311 | 6311 | ||
6312 | static unsigned char u2c_5E[512] = { | 6312 | static const unsigned char u2c_5E[512] = { |
6313 | 0x00, 0x00, 0x00, 0x00, 0xE3, 0xBC, 0xF8, 0xD6, /* 0x00-0x03 */ | 6313 | 0x00, 0x00, 0x00, 0x00, 0xE3, 0xBC, 0xF8, 0xD6, /* 0x00-0x03 */ |
6314 | 0x00, 0x00, 0x00, 0x00, 0xDB, 0xEE, 0x00, 0x00, /* 0x04-0x07 */ | 6314 | 0x00, 0x00, 0x00, 0x00, 0xDB, 0xEE, 0x00, 0x00, /* 0x04-0x07 */ |
6315 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x08-0x0B */ | 6315 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x08-0x0B */ |
@@ -6376,7 +6376,7 @@ static unsigned char u2c_5E[512] = { | |||
6376 | 0x00, 0x00, 0x00, 0x00, 0xCB, 0xEF, 0xFC, 0xDF, /* 0xF8-0xFB */ | 6376 | 0x00, 0x00, 0x00, 0x00, 0xCB, 0xEF, 0xFC, 0xDF, /* 0xF8-0xFB */ |
6377 | }; | 6377 | }; |
6378 | 6378 | ||
6379 | static unsigned char u2c_5F[512] = { | 6379 | static const unsigned char u2c_5F[512] = { |
6380 | 0x00, 0x00, 0xDC, 0xA7, 0x00, 0x00, 0x00, 0x00, /* 0x00-0x03 */ | 6380 | 0x00, 0x00, 0xDC, 0xA7, 0x00, 0x00, 0x00, 0x00, /* 0x00-0x03 */ |
6381 | 0xD6, 0xE7, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x04-0x07 */ | 6381 | 0xD6, 0xE7, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x04-0x07 */ |
6382 | 0x00, 0x00, 0x00, 0x00, 0xF8, 0xC9, 0x00, 0x00, /* 0x08-0x0B */ | 6382 | 0x00, 0x00, 0x00, 0x00, 0xF8, 0xC9, 0x00, 0x00, /* 0x08-0x0B */ |
@@ -6444,7 +6444,7 @@ static unsigned char u2c_5F[512] = { | |||
6444 | 0x00, 0x00, 0xFB, 0xEC, 0x00, 0x00, 0xDD, 0xC8, /* 0xFC-0xFF */ | 6444 | 0x00, 0x00, 0xFB, 0xEC, 0x00, 0x00, 0xDD, 0xC8, /* 0xFC-0xFF */ |
6445 | }; | 6445 | }; |
6446 | 6446 | ||
6447 | static unsigned char u2c_60[512] = { | 6447 | static const unsigned char u2c_60[512] = { |
6448 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x00-0x03 */ | 6448 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x00-0x03 */ |
6449 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x04-0x07 */ | 6449 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x04-0x07 */ |
6450 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x08-0x0B */ | 6450 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x08-0x0B */ |
@@ -6511,7 +6511,7 @@ static unsigned char u2c_60[512] = { | |||
6511 | 0x00, 0x00, 0xE5, 0xA9, 0xE0, 0xF6, 0xF6, 0xB3, /* 0xF8-0xFB */ | 6511 | 0x00, 0x00, 0xE5, 0xA9, 0xE0, 0xF6, 0xF6, 0xB3, /* 0xF8-0xFB */ |
6512 | }; | 6512 | }; |
6513 | 6513 | ||
6514 | static unsigned char u2c_61[512] = { | 6514 | static const unsigned char u2c_61[512] = { |
6515 | 0x00, 0x00, 0xE1, 0xFE, 0x00, 0x00, 0x00, 0x00, /* 0x00-0x03 */ | 6515 | 0x00, 0x00, 0xE1, 0xFE, 0x00, 0x00, 0x00, 0x00, /* 0x00-0x03 */ |
6516 | 0x00, 0x00, 0x00, 0x00, 0xCB, 0xF0, 0x00, 0x00, /* 0x04-0x07 */ | 6516 | 0x00, 0x00, 0x00, 0x00, 0xCB, 0xF0, 0x00, 0x00, /* 0x04-0x07 */ |
6517 | 0xEA, 0xEF, 0xEA, 0xF0, 0x00, 0x00, 0x00, 0x00, /* 0x08-0x0B */ | 6517 | 0xEA, 0xEF, 0xEA, 0xF0, 0x00, 0x00, 0x00, 0x00, /* 0x08-0x0B */ |
@@ -6579,7 +6579,7 @@ static unsigned char u2c_61[512] = { | |||
6579 | 0xCF, 0xAB, 0x00, 0x00, 0x00, 0x00, 0xEB, 0xF3, /* 0xFC-0xFF */ | 6579 | 0xCF, 0xAB, 0x00, 0x00, 0x00, 0x00, 0xEB, 0xF3, /* 0xFC-0xFF */ |
6580 | }; | 6580 | }; |
6581 | 6581 | ||
6582 | static unsigned char u2c_62[512] = { | 6582 | static const unsigned char u2c_62[512] = { |
6583 | 0xD5, 0xFC, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x00-0x03 */ | 6583 | 0xD5, 0xFC, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x00-0x03 */ |
6584 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xD3, 0xD4, /* 0x04-0x07 */ | 6584 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xD3, 0xD4, /* 0x04-0x07 */ |
6585 | 0xCD, 0xFC, 0x00, 0x00, 0xD9, 0xE6, 0x00, 0x00, /* 0x08-0x0B */ | 6585 | 0xCD, 0xFC, 0x00, 0x00, 0xD9, 0xE6, 0x00, 0x00, /* 0x08-0x0B */ |
@@ -6647,7 +6647,7 @@ static unsigned char u2c_62[512] = { | |||
6647 | 0x00, 0x00, 0x00, 0x00, 0xE3, 0xA6, 0xD1, 0xDA, /* 0xFC-0xFF */ | 6647 | 0x00, 0x00, 0x00, 0x00, 0xE3, 0xA6, 0xD1, 0xDA, /* 0xFC-0xFF */ |
6648 | }; | 6648 | }; |
6649 | 6649 | ||
6650 | static unsigned char u2c_63[512] = { | 6650 | static const unsigned char u2c_63[512] = { |
6651 | 0x00, 0x00, 0xF2, 0xA5, 0x00, 0x00, 0x00, 0x00, /* 0x00-0x03 */ | 6651 | 0x00, 0x00, 0xF2, 0xA5, 0x00, 0x00, 0x00, 0x00, /* 0x00-0x03 */ |
6652 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xF2, 0xA6, /* 0x04-0x07 */ | 6652 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xF2, 0xA6, /* 0x04-0x07 */ |
6653 | 0x00, 0x00, 0xE4, 0xCE, 0x00, 0x00, 0x00, 0x00, /* 0x08-0x0B */ | 6653 | 0x00, 0x00, 0xE4, 0xCE, 0x00, 0x00, 0x00, 0x00, /* 0x08-0x0B */ |
@@ -6713,7 +6713,7 @@ static unsigned char u2c_63[512] = { | |||
6713 | 0xEA, 0xB5, 0x00, 0x00, 0xE5, 0xAA, 0xDF, 0xBA, /* 0xF4-0xF7 */ | 6713 | 0xEA, 0xB5, 0x00, 0x00, 0xE5, 0xAA, 0xDF, 0xBA, /* 0xF4-0xF7 */ |
6714 | }; | 6714 | }; |
6715 | 6715 | ||
6716 | static unsigned char u2c_64[512] = { | 6716 | static const unsigned char u2c_64[512] = { |
6717 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x00-0x03 */ | 6717 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x00-0x03 */ |
6718 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x04-0x07 */ | 6718 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x04-0x07 */ |
6719 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x08-0x0B */ | 6719 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x08-0x0B */ |
@@ -6781,7 +6781,7 @@ static unsigned char u2c_64[512] = { | |||
6781 | 0x00, 0x00, 0x00, 0x00, 0xE8, 0xF6, 0x00, 0x00, /* 0xFC-0xFF */ | 6781 | 0x00, 0x00, 0x00, 0x00, 0xE8, 0xF6, 0x00, 0x00, /* 0xFC-0xFF */ |
6782 | }; | 6782 | }; |
6783 | 6783 | ||
6784 | static unsigned char u2c_65[512] = { | 6784 | static const unsigned char u2c_65[512] = { |
6785 | 0xDA, 0xE7, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x00-0x03 */ | 6785 | 0xDA, 0xE7, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x00-0x03 */ |
6786 | 0xF7, 0xCC, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x04-0x07 */ | 6786 | 0xF7, 0xCC, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x04-0x07 */ |
6787 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x08-0x0B */ | 6787 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x08-0x0B */ |
@@ -6849,7 +6849,7 @@ static unsigned char u2c_65[512] = { | |||
6849 | 0xDA, 0xC4, 0xD4, 0xC5, 0x00, 0x00, 0xE7, 0xFA, /* 0xFC-0xFF */ | 6849 | 0xDA, 0xC4, 0xD4, 0xC5, 0x00, 0x00, 0xE7, 0xFA, /* 0xFC-0xFF */ |
6850 | }; | 6850 | }; |
6851 | 6851 | ||
6852 | static unsigned char u2c_66[512] = { | 6852 | static const unsigned char u2c_66[512] = { |
6853 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x00-0x03 */ | 6853 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x00-0x03 */ |
6854 | 0x00, 0x00, 0x00, 0x00, 0xCD, 0xE0, 0xE3, 0xB0, /* 0x04-0x07 */ | 6854 | 0x00, 0x00, 0x00, 0x00, 0xCD, 0xE0, 0xE3, 0xB0, /* 0x04-0x07 */ |
6855 | 0x00, 0x00, 0xDB, 0xB2, 0xFB, 0xC4, 0x00, 0x00, /* 0x08-0x0B */ | 6855 | 0x00, 0x00, 0xDB, 0xB2, 0xFB, 0xC4, 0x00, 0x00, /* 0x08-0x0B */ |
@@ -6917,7 +6917,7 @@ static unsigned char u2c_66[512] = { | |||
6917 | 0xD8, 0xBA, 0x00, 0x00, 0xF1, 0xF4, 0xF4, 0xF0, /* 0xFC-0xFF */ | 6917 | 0xD8, 0xBA, 0x00, 0x00, 0xF1, 0xF4, 0xF4, 0xF0, /* 0xFC-0xFF */ |
6918 | }; | 6918 | }; |
6919 | 6919 | ||
6920 | static unsigned char u2c_67[512] = { | 6920 | static const unsigned char u2c_67[512] = { |
6921 | 0xF5, 0xCC, 0x00, 0x00, 0x00, 0x00, 0xFC, 0xE5, /* 0x00-0x03 */ | 6921 | 0xF5, 0xCC, 0x00, 0x00, 0x00, 0x00, 0xFC, 0xE5, /* 0x00-0x03 */ |
6922 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x04-0x07 */ | 6922 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x04-0x07 */ |
6923 | 0xEA, 0xC5, 0xEA, 0xF3, 0x00, 0x00, 0xDD, 0xDB, /* 0x08-0x0B */ | 6923 | 0xEA, 0xC5, 0xEA, 0xF3, 0x00, 0x00, 0xDD, 0xDB, /* 0x08-0x0B */ |
@@ -6985,7 +6985,7 @@ static unsigned char u2c_67[512] = { | |||
6985 | 0x00, 0x00, 0x00, 0x00, 0xEF, 0xDE, 0x00, 0x00, /* 0xFC-0xFF */ | 6985 | 0x00, 0x00, 0x00, 0x00, 0xEF, 0xDE, 0x00, 0x00, /* 0xFC-0xFF */ |
6986 | }; | 6986 | }; |
6987 | 6987 | ||
6988 | static unsigned char u2c_68[512] = { | 6988 | static const unsigned char u2c_68[512] = { |
6989 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x00-0x03 */ | 6989 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x00-0x03 */ |
6990 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x04-0x07 */ | 6990 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x04-0x07 */ |
6991 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x08-0x0B */ | 6991 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x08-0x0B */ |
@@ -7052,7 +7052,7 @@ static unsigned char u2c_68[512] = { | |||
7052 | 0x00, 0x00, 0xD4, 0xA1, 0xCE, 0xB2, 0x00, 0x00, /* 0xF8-0xFB */ | 7052 | 0x00, 0x00, 0xD4, 0xA1, 0xCE, 0xB2, 0x00, 0x00, /* 0xF8-0xFB */ |
7053 | }; | 7053 | }; |
7054 | 7054 | ||
7055 | static unsigned char u2c_69[512] = { | 7055 | static const unsigned char u2c_69[512] = { |
7056 | 0xE8, 0xCA, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x00-0x03 */ | 7056 | 0xE8, 0xCA, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x00-0x03 */ |
7057 | 0x00, 0x00, 0xEB, 0xF5, 0x00, 0x00, 0x00, 0x00, /* 0x04-0x07 */ | 7057 | 0x00, 0x00, 0xEB, 0xF5, 0x00, 0x00, 0x00, 0x00, /* 0x04-0x07 */ |
7058 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x08-0x0B */ | 7058 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x08-0x0B */ |
@@ -7120,7 +7120,7 @@ static unsigned char u2c_69[512] = { | |||
7120 | 0x00, 0x00, 0xF0, 0xCB, 0x00, 0x00, 0xD0, 0xC7, /* 0xFC-0xFF */ | 7120 | 0x00, 0x00, 0xF0, 0xCB, 0x00, 0x00, 0xD0, 0xC7, /* 0xFC-0xFF */ |
7121 | }; | 7121 | }; |
7122 | 7122 | ||
7123 | static unsigned char u2c_6A[512] = { | 7123 | static const unsigned char u2c_6A[512] = { |
7124 | 0x00, 0x00, 0x00, 0x00, 0xE4, 0xC5, 0x00, 0x00, /* 0x00-0x03 */ | 7124 | 0x00, 0x00, 0x00, 0x00, 0xE4, 0xC5, 0x00, 0x00, /* 0x00-0x03 */ |
7125 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x04-0x07 */ | 7125 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x04-0x07 */ |
7126 | 0x00, 0x00, 0x00, 0x00, 0xDB, 0xE0, 0x00, 0x00, /* 0x08-0x0B */ | 7126 | 0x00, 0x00, 0x00, 0x00, 0xDB, 0xE0, 0x00, 0x00, /* 0x08-0x0B */ |
@@ -7187,7 +7187,7 @@ static unsigned char u2c_6A[512] = { | |||
7187 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xE5, 0xA1, /* 0xF8-0xFB */ | 7187 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xE5, 0xA1, /* 0xF8-0xFB */ |
7188 | }; | 7188 | }; |
7189 | 7189 | ||
7190 | static unsigned char u2c_6B[512] = { | 7190 | static const unsigned char u2c_6B[512] = { |
7191 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x00-0x03 */ | 7191 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x00-0x03 */ |
7192 | 0xD5, 0xB1, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x04-0x07 */ | 7192 | 0xD5, 0xB1, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x04-0x07 */ |
7193 | 0x00, 0x00, 0x00, 0x00, 0xCF, 0xED, 0x00, 0x00, /* 0x08-0x0B */ | 7193 | 0x00, 0x00, 0x00, 0x00, 0xCF, 0xED, 0x00, 0x00, /* 0x08-0x0B */ |
@@ -7251,7 +7251,7 @@ static unsigned char u2c_6B[512] = { | |||
7251 | 0xCF, 0xB3, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xEC-0xEF */ | 7251 | 0xCF, 0xB3, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xEC-0xEF */ |
7252 | }; | 7252 | }; |
7253 | 7253 | ||
7254 | static unsigned char u2c_6C[512] = { | 7254 | static const unsigned char u2c_6C[512] = { |
7255 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x00-0x03 */ | 7255 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x00-0x03 */ |
7256 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x04-0x07 */ | 7256 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x04-0x07 */ |
7257 | 0xEE, 0xFD, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x08-0x0B */ | 7257 | 0xEE, 0xFD, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x08-0x0B */ |
@@ -7316,7 +7316,7 @@ static unsigned char u2c_6C[512] = { | |||
7316 | 0xF7, 0xC1, 0x00, 0x00, 0x00, 0x00, 0xE7, 0xB6, /* 0xF0-0xF3 */ | 7316 | 0xF7, 0xC1, 0x00, 0x00, 0x00, 0x00, 0xE7, 0xB6, /* 0xF0-0xF3 */ |
7317 | }; | 7317 | }; |
7318 | 7318 | ||
7319 | static unsigned char u2c_6D[512] = { | 7319 | static const unsigned char u2c_6D[512] = { |
7320 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x00-0x03 */ | 7320 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x00-0x03 */ |
7321 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x04-0x07 */ | 7321 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x04-0x07 */ |
7322 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xE5, 0xC7, /* 0x08-0x0B */ | 7322 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xE5, 0xC7, /* 0x08-0x0B */ |
@@ -7383,7 +7383,7 @@ static unsigned char u2c_6D[512] = { | |||
7383 | 0xF4, 0xE8, 0xE5, 0xF4, 0xF4, 0xBC, 0xF4, 0xD5, /* 0xF8-0xFB */ | 7383 | 0xF4, 0xE8, 0xE5, 0xF4, 0xF4, 0xBC, 0xF4, 0xD5, /* 0xF8-0xFB */ |
7384 | }; | 7384 | }; |
7385 | 7385 | ||
7386 | static unsigned char u2c_6E[512] = { | 7386 | static const unsigned char u2c_6E[512] = { |
7387 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x00-0x03 */ | 7387 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x00-0x03 */ |
7388 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x04-0x07 */ | 7388 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x04-0x07 */ |
7389 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x08-0x0B */ | 7389 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x08-0x0B */ |
@@ -7451,7 +7451,7 @@ static unsigned char u2c_6E[512] = { | |||
7451 | 0x00, 0x00, 0x00, 0x00, 0xCD, 0xE3, 0xD8, 0xBB, /* 0xFC-0xFF */ | 7451 | 0x00, 0x00, 0x00, 0x00, 0xCD, 0xE3, 0xD8, 0xBB, /* 0xFC-0xFF */ |
7452 | }; | 7452 | }; |
7453 | 7453 | ||
7454 | static unsigned char u2c_6F[512] = { | 7454 | static const unsigned char u2c_6F[512] = { |
7455 | 0x00, 0x00, 0xE5, 0xDB, 0xF8, 0xF7, 0x00, 0x00, /* 0x00-0x03 */ | 7455 | 0x00, 0x00, 0xE5, 0xDB, 0xF8, 0xF7, 0x00, 0x00, /* 0x00-0x03 */ |
7456 | 0x00, 0x00, 0x00, 0x00, 0xF6, 0xD4, 0x00, 0x00, /* 0x04-0x07 */ | 7456 | 0x00, 0x00, 0x00, 0x00, 0xF6, 0xD4, 0x00, 0x00, /* 0x04-0x07 */ |
7457 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x08-0x0B */ | 7457 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x08-0x0B */ |
@@ -7519,7 +7519,7 @@ static unsigned char u2c_6F[512] = { | |||
7519 | 0x00, 0x00, 0x00, 0x00, 0xD5, 0xEB, 0x00, 0x00, /* 0xFC-0xFF */ | 7519 | 0x00, 0x00, 0x00, 0x00, 0xD5, 0xEB, 0x00, 0x00, /* 0xFC-0xFF */ |
7520 | }; | 7520 | }; |
7521 | 7521 | ||
7522 | static unsigned char u2c_70[512] = { | 7522 | static const unsigned char u2c_70[512] = { |
7523 | 0x00, 0x00, 0xE5, 0xC8, 0x00, 0x00, 0x00, 0x00, /* 0x00-0x03 */ | 7523 | 0x00, 0x00, 0xE5, 0xC8, 0x00, 0x00, 0x00, 0x00, /* 0x00-0x03 */ |
7524 | 0x00, 0x00, 0xFB, 0xA4, 0xD4, 0xB9, 0x00, 0x00, /* 0x04-0x07 */ | 7524 | 0x00, 0x00, 0xFB, 0xA4, 0xD4, 0xB9, 0x00, 0x00, /* 0x04-0x07 */ |
7525 | 0x00, 0x00, 0xDE, 0xE1, 0x00, 0x00, 0xE4, 0xA3, /* 0x08-0x0B */ | 7525 | 0x00, 0x00, 0xDE, 0xE1, 0x00, 0x00, 0xE4, 0xA3, /* 0x08-0x0B */ |
@@ -7587,7 +7587,7 @@ static unsigned char u2c_70[512] = { | |||
7587 | 0x00, 0x00, 0xDC, 0xEB, 0x00, 0x00, 0x00, 0x00, /* 0xFC-0xFF */ | 7587 | 0x00, 0x00, 0xDC, 0xEB, 0x00, 0x00, 0x00, 0x00, /* 0xFC-0xFF */ |
7588 | }; | 7588 | }; |
7589 | 7589 | ||
7590 | static unsigned char u2c_71[512] = { | 7590 | static const unsigned char u2c_71[512] = { |
7591 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x00-0x03 */ | 7591 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x00-0x03 */ |
7592 | 0xFD, 0xB6, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x04-0x07 */ | 7592 | 0xFD, 0xB6, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x04-0x07 */ |
7593 | 0x00, 0x00, 0xE5, 0xEA, 0x00, 0x00, 0x00, 0x00, /* 0x08-0x0B */ | 7593 | 0x00, 0x00, 0xE5, 0xEA, 0x00, 0x00, 0x00, 0x00, /* 0x08-0x0B */ |
@@ -7655,7 +7655,7 @@ static unsigned char u2c_71[512] = { | |||
7655 | 0xE3, 0xE8, 0x00, 0x00, 0xD4, 0xA7, 0xE8, 0xFC, /* 0xFC-0xFF */ | 7655 | 0xE3, 0xE8, 0x00, 0x00, 0xD4, 0xA7, 0xE8, 0xFC, /* 0xFC-0xFF */ |
7656 | }; | 7656 | }; |
7657 | 7657 | ||
7658 | static unsigned char u2c_72[512] = { | 7658 | static const unsigned char u2c_72[512] = { |
7659 | 0xFA, 0xD2, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x00-0x03 */ | 7659 | 0xFA, 0xD2, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x00-0x03 */ |
7660 | 0x00, 0x00, 0x00, 0x00, 0xF8, 0xEF, 0x00, 0x00, /* 0x04-0x07 */ | 7660 | 0x00, 0x00, 0x00, 0x00, 0xF8, 0xEF, 0x00, 0x00, /* 0x04-0x07 */ |
7661 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x08-0x0B */ | 7661 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x08-0x0B */ |
@@ -7723,7 +7723,7 @@ static unsigned char u2c_72[512] = { | |||
7723 | 0xD5, 0xC9, 0xF8, 0xAC, 0x00, 0x00, 0x00, 0x00, /* 0xFC-0xFF */ | 7723 | 0xD5, 0xC9, 0xF8, 0xAC, 0x00, 0x00, 0x00, 0x00, /* 0xFC-0xFF */ |
7724 | }; | 7724 | }; |
7725 | 7725 | ||
7726 | static unsigned char u2c_73[512] = { | 7726 | static const unsigned char u2c_73[512] = { |
7727 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x00-0x03 */ | 7727 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x00-0x03 */ |
7728 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x04-0x07 */ | 7728 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x04-0x07 */ |
7729 | 0x00, 0x00, 0x00, 0x00, 0xE7, 0xD9, 0x00, 0x00, /* 0x08-0x0B */ | 7729 | 0x00, 0x00, 0x00, 0x00, 0xE7, 0xD9, 0x00, 0x00, /* 0x08-0x0B */ |
@@ -7791,7 +7791,7 @@ static unsigned char u2c_73[512] = { | |||
7791 | 0x00, 0x00, 0xEF, 0xEA, 0xFA, 0xDE, 0x00, 0x00, /* 0xFC-0xFF */ | 7791 | 0x00, 0x00, 0xEF, 0xEA, 0xFA, 0xDE, 0x00, 0x00, /* 0xFC-0xFF */ |
7792 | }; | 7792 | }; |
7793 | 7793 | ||
7794 | static unsigned char u2c_74[512] = { | 7794 | static const unsigned char u2c_74[512] = { |
7795 | 0x00, 0x00, 0xE0, 0xC4, 0x00, 0x00, 0xCF, 0xB9, /* 0x00-0x03 */ | 7795 | 0x00, 0x00, 0xE0, 0xC4, 0x00, 0x00, 0xCF, 0xB9, /* 0x00-0x03 */ |
7796 | 0x00, 0x00, 0xD5, 0xCA, 0xD7, 0xE2, 0xE2, 0xAF, /* 0x04-0x07 */ | 7796 | 0x00, 0x00, 0xD5, 0xCA, 0xD7, 0xE2, 0xE2, 0xAF, /* 0x04-0x07 */ |
7797 | 0x00, 0x00, 0xD7, 0xB8, 0x00, 0x00, 0x00, 0x00, /* 0x08-0x0B */ | 7797 | 0x00, 0x00, 0xD7, 0xB8, 0x00, 0x00, 0x00, 0x00, /* 0x08-0x0B */ |
@@ -7857,7 +7857,7 @@ static unsigned char u2c_74[512] = { | |||
7857 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xED, 0xB6, /* 0xF4-0xF7 */ | 7857 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xED, 0xB6, /* 0xF4-0xF7 */ |
7858 | }; | 7858 | }; |
7859 | 7859 | ||
7860 | static unsigned char u2c_75[512] = { | 7860 | static const unsigned char u2c_75[512] = { |
7861 | 0x00, 0x00, 0xDC, 0xBA, 0x00, 0x00, 0x00, 0x00, /* 0x00-0x03 */ | 7861 | 0x00, 0x00, 0xDC, 0xBA, 0x00, 0x00, 0x00, 0x00, /* 0x00-0x03 */ |
7862 | 0xCC, 0xB4, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x04-0x07 */ | 7862 | 0xCC, 0xB4, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x04-0x07 */ |
7863 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x08-0x0B */ | 7863 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x08-0x0B */ |
@@ -7925,7 +7925,7 @@ static unsigned char u2c_75[512] = { | |||
7925 | 0xCD, 0xC0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xFC-0xFF */ | 7925 | 0xCD, 0xC0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xFC-0xFF */ |
7926 | }; | 7926 | }; |
7927 | 7927 | ||
7928 | static unsigned char u2c_76[512] = { | 7928 | static const unsigned char u2c_76[512] = { |
7929 | 0xE5, 0xDC, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x00-0x03 */ | 7929 | 0xE5, 0xDC, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x00-0x03 */ |
7930 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x04-0x07 */ | 7930 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x04-0x07 */ |
7931 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x08-0x0B */ | 7931 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x08-0x0B */ |
@@ -7993,7 +7993,7 @@ static unsigned char u2c_76[512] = { | |||
7993 | 0xDA, 0xF0, 0x00, 0x00, 0xE2, 0xEA, 0x00, 0x00, /* 0xFC-0xFF */ | 7993 | 0xDA, 0xF0, 0x00, 0x00, 0xE2, 0xEA, 0x00, 0x00, /* 0xFC-0xFF */ |
7994 | }; | 7994 | }; |
7995 | 7995 | ||
7996 | static unsigned char u2c_77[512] = { | 7996 | static const unsigned char u2c_77[512] = { |
7997 | 0x00, 0x00, 0xE0, 0xFD, 0x00, 0x00, 0x00, 0x00, /* 0x00-0x03 */ | 7997 | 0x00, 0x00, 0xE0, 0xFD, 0x00, 0x00, 0x00, 0x00, /* 0x00-0x03 */ |
7998 | 0xD8, 0xF8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x04-0x07 */ | 7998 | 0xD8, 0xF8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x04-0x07 */ |
7999 | 0xF7, 0xAF, 0xDA, 0xB6, 0x00, 0x00, 0xCA, 0xD7, /* 0x08-0x0B */ | 7999 | 0xF7, 0xAF, 0xDA, 0xB6, 0x00, 0x00, 0xCA, 0xD7, /* 0x08-0x0B */ |
@@ -8058,7 +8058,7 @@ static unsigned char u2c_77[512] = { | |||
8058 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xE0, 0xB4, /* 0xF0-0xF3 */ | 8058 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xE0, 0xB4, /* 0xF0-0xF3 */ |
8059 | }; | 8059 | }; |
8060 | 8060 | ||
8061 | static unsigned char u2c_78[512] = { | 8061 | static const unsigned char u2c_78[512] = { |
8062 | 0x00, 0x00, 0x00, 0x00, 0xDE, 0xE3, 0x00, 0x00, /* 0x00-0x03 */ | 8062 | 0x00, 0x00, 0x00, 0x00, 0xDE, 0xE3, 0x00, 0x00, /* 0x00-0x03 */ |
8063 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x04-0x07 */ | 8063 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x04-0x07 */ |
8064 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x08-0x0B */ | 8064 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x08-0x0B */ |
@@ -8125,7 +8125,7 @@ static unsigned char u2c_78[512] = { | |||
8125 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xDA, 0xF2, /* 0xF8-0xFB */ | 8125 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xDA, 0xF2, /* 0xF8-0xFB */ |
8126 | }; | 8126 | }; |
8127 | 8127 | ||
8128 | static unsigned char u2c_79[512] = { | 8128 | static const unsigned char u2c_79[512] = { |
8129 | 0x00, 0x00, 0xF5, 0xA7, 0x00, 0x00, 0x00, 0x00, /* 0x00-0x03 */ | 8129 | 0x00, 0x00, 0xF5, 0xA7, 0x00, 0x00, 0x00, 0x00, /* 0x00-0x03 */ |
8130 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x04-0x07 */ | 8130 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x04-0x07 */ |
8131 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x08-0x0B */ | 8131 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x08-0x0B */ |
@@ -8192,7 +8192,7 @@ static unsigned char u2c_79[512] = { | |||
8192 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xEC, 0xB9, /* 0xF8-0xFB */ | 8192 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xEC, 0xB9, /* 0xF8-0xFB */ |
8193 | }; | 8193 | }; |
8194 | 8194 | ||
8195 | static unsigned char u2c_7A[512] = { | 8195 | static const unsigned char u2c_7A[512] = { |
8196 | 0xFD, 0xFC, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x00-0x03 */ | 8196 | 0xFD, 0xFC, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x00-0x03 */ |
8197 | 0x00, 0x00, 0xE1, 0xAA, 0x00, 0x00, 0x00, 0x00, /* 0x04-0x07 */ | 8197 | 0x00, 0x00, 0xE1, 0xAA, 0x00, 0x00, 0x00, 0x00, /* 0x04-0x07 */ |
8198 | 0xCA, 0xD9, 0x00, 0x00, 0x00, 0x00, 0xEF, 0xEF, /* 0x08-0x0B */ | 8198 | 0xCA, 0xD9, 0x00, 0x00, 0x00, 0x00, 0xEF, 0xEF, /* 0x08-0x0B */ |
@@ -8260,7 +8260,7 @@ static unsigned char u2c_7A[512] = { | |||
8260 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xCA, 0xDA, /* 0xFC-0xFF */ | 8260 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xCA, 0xDA, /* 0xFC-0xFF */ |
8261 | }; | 8261 | }; |
8262 | 8262 | ||
8263 | static unsigned char u2c_7B[512] = { | 8263 | static const unsigned char u2c_7B[512] = { |
8264 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x00-0x03 */ | 8264 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x00-0x03 */ |
8265 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x04-0x07 */ | 8265 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x04-0x07 */ |
8266 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x08-0x0B */ | 8266 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x08-0x0B */ |
@@ -8323,7 +8323,7 @@ static unsigned char u2c_7B[512] = { | |||
8323 | 0x00, 0x00, 0xDE, 0xE8, 0x00, 0x00, 0x00, 0x00, /* 0xE8-0xEB */ | 8323 | 0x00, 0x00, 0xDE, 0xE8, 0x00, 0x00, 0x00, 0x00, /* 0xE8-0xEB */ |
8324 | }; | 8324 | }; |
8325 | 8325 | ||
8326 | static unsigned char u2c_7C[512] = { | 8326 | static const unsigned char u2c_7C[512] = { |
8327 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x00-0x03 */ | 8327 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x00-0x03 */ |
8328 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xF0, 0xEA, /* 0x04-0x07 */ | 8328 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xF0, 0xEA, /* 0x04-0x07 */ |
8329 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x08-0x0B */ | 8329 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x08-0x0B */ |
@@ -8391,7 +8391,7 @@ static unsigned char u2c_7C[512] = { | |||
8391 | 0x00, 0x00, 0x00, 0x00, 0xD0, 0xAC, 0x00, 0x00, /* 0xFC-0xFF */ | 8391 | 0x00, 0x00, 0x00, 0x00, 0xD0, 0xAC, 0x00, 0x00, /* 0xFC-0xFF */ |
8392 | }; | 8392 | }; |
8393 | 8393 | ||
8394 | static unsigned char u2c_7D[512] = { | 8394 | static const unsigned char u2c_7D[512] = { |
8395 | 0xD1, 0xBA, 0x00, 0x00, 0xF1, 0xC4, 0x00, 0x00, /* 0x00-0x03 */ | 8395 | 0xD1, 0xBA, 0x00, 0x00, 0xF1, 0xC4, 0x00, 0x00, /* 0x00-0x03 */ |
8396 | 0xE5, 0xB3, 0xFB, 0xF5, 0xE9, 0xE1, 0xFD, 0xE0, /* 0x04-0x07 */ | 8396 | 0xE5, 0xB3, 0xFB, 0xF5, 0xE9, 0xE1, 0xFD, 0xE0, /* 0x04-0x07 */ |
8397 | 0xFC, 0xBC, 0x00, 0x00, 0xDA, 0xA2, 0xDA, 0xA3, /* 0x08-0x0B */ | 8397 | 0xFC, 0xBC, 0x00, 0x00, 0xDA, 0xA2, 0xDA, 0xA3, /* 0x08-0x0B */ |
@@ -8458,7 +8458,7 @@ static unsigned char u2c_7D[512] = { | |||
8458 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xF6, 0xC6, /* 0xF8-0xFB */ | 8458 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xF6, 0xC6, /* 0xF8-0xFB */ |
8459 | }; | 8459 | }; |
8460 | 8460 | ||
8461 | static unsigned char u2c_7E[512] = { | 8461 | static const unsigned char u2c_7E[512] = { |
8462 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x00-0x03 */ | 8462 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x00-0x03 */ |
8463 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x04-0x07 */ | 8463 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x04-0x07 */ |
8464 | 0x00, 0x00, 0xF2, 0xDB, 0xE4, 0xFC, 0x00, 0x00, /* 0x08-0x0B */ | 8464 | 0x00, 0x00, 0xF2, 0xDB, 0xE4, 0xFC, 0x00, 0x00, /* 0x08-0x0B */ |
@@ -8502,7 +8502,7 @@ static unsigned char u2c_7E[512] = { | |||
8502 | 0xD5, 0xBF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x9C-0x9F */ | 8502 | 0xD5, 0xBF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x9C-0x9F */ |
8503 | }; | 8503 | }; |
8504 | 8504 | ||
8505 | static unsigned char u2c_7F[512] = { | 8505 | static const unsigned char u2c_7F[512] = { |
8506 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x00-0x03 */ | 8506 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x00-0x03 */ |
8507 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x04-0x07 */ | 8507 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x04-0x07 */ |
8508 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x08-0x0B */ | 8508 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x08-0x0B */ |
@@ -8570,7 +8570,7 @@ static unsigned char u2c_7F[512] = { | |||
8570 | 0xEC, 0xCF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xFC-0xFF */ | 8570 | 0xEC, 0xCF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xFC-0xFF */ |
8571 | }; | 8571 | }; |
8572 | 8572 | ||
8573 | static unsigned char u2c_80[512] = { | 8573 | static const unsigned char u2c_80[512] = { |
8574 | 0xE9, 0xA5, 0xD6, 0xD5, 0x00, 0x00, 0xCD, 0xC5, /* 0x00-0x03 */ | 8574 | 0xE9, 0xA5, 0xD6, 0xD5, 0x00, 0x00, 0xCD, 0xC5, /* 0x00-0x03 */ |
8575 | 0x00, 0x00, 0xED, 0xBA, 0xD1, 0xBD, 0x00, 0x00, /* 0x04-0x07 */ | 8575 | 0x00, 0x00, 0xED, 0xBA, 0xD1, 0xBD, 0x00, 0x00, /* 0x04-0x07 */ |
8576 | 0x00, 0x00, 0xCF, 0xBE, 0x00, 0x00, 0x00, 0x00, /* 0x08-0x0B */ | 8576 | 0x00, 0x00, 0xCF, 0xBE, 0x00, 0x00, 0x00, 0x00, /* 0x08-0x0B */ |
@@ -8638,7 +8638,7 @@ static unsigned char u2c_80[512] = { | |||
8638 | 0x00, 0x00, 0xD2, 0xF6, 0x00, 0x00, 0x00, 0x00, /* 0xFC-0xFF */ | 8638 | 0x00, 0x00, 0xD2, 0xF6, 0x00, 0x00, 0x00, 0x00, /* 0xFC-0xFF */ |
8639 | }; | 8639 | }; |
8640 | 8640 | ||
8641 | static unsigned char u2c_81[512] = { | 8641 | static const unsigned char u2c_81[512] = { |
8642 | 0x00, 0x00, 0x00, 0x00, 0xF2, 0xB7, 0x00, 0x00, /* 0x00-0x03 */ | 8642 | 0x00, 0x00, 0x00, 0x00, 0xF2, 0xB7, 0x00, 0x00, /* 0x00-0x03 */ |
8643 | 0x00, 0x00, 0xFA, 0xF6, 0xF6, 0xAA, 0xFA, 0xF7, /* 0x04-0x07 */ | 8643 | 0x00, 0x00, 0xFA, 0xF6, 0xF6, 0xAA, 0xFA, 0xF7, /* 0x04-0x07 */ |
8644 | 0xD8, 0xE6, 0x00, 0x00, 0xF4, 0xB1, 0x00, 0x00, /* 0x08-0x0B */ | 8644 | 0xD8, 0xE6, 0x00, 0x00, 0xF4, 0xB1, 0x00, 0x00, /* 0x08-0x0B */ |
@@ -8706,7 +8706,7 @@ static unsigned char u2c_81[512] = { | |||
8706 | 0xCF, 0xBF, 0x00, 0x00, 0xEB, 0xAC, 0x00, 0x00, /* 0xFC-0xFF */ | 8706 | 0xCF, 0xBF, 0x00, 0x00, 0xEB, 0xAC, 0x00, 0x00, /* 0xFC-0xFF */ |
8707 | }; | 8707 | }; |
8708 | 8708 | ||
8709 | static unsigned char u2c_82[512] = { | 8709 | static const unsigned char u2c_82[512] = { |
8710 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x00-0x03 */ | 8710 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x00-0x03 */ |
8711 | 0x00, 0x00, 0xCF, 0xC0, 0x00, 0x00, 0xE6, 0xA8, /* 0x04-0x07 */ | 8711 | 0x00, 0x00, 0xCF, 0xC0, 0x00, 0x00, 0xE6, 0xA8, /* 0x04-0x07 */ |
8712 | 0xFD, 0xE9, 0x00, 0x00, 0xCF, 0xC1, 0x00, 0x00, /* 0x08-0x0B */ | 8712 | 0xFD, 0xE9, 0x00, 0x00, 0xCF, 0xC1, 0x00, 0x00, /* 0x08-0x0B */ |
@@ -8774,7 +8774,7 @@ static unsigned char u2c_82[512] = { | |||
8774 | 0x00, 0x00, 0xCD, 0xC9, 0xF9, 0xB7, 0x00, 0x00, /* 0xFC-0xFF */ | 8774 | 0x00, 0x00, 0xCD, 0xC9, 0xF9, 0xB7, 0x00, 0x00, /* 0xFC-0xFF */ |
8775 | }; | 8775 | }; |
8776 | 8776 | ||
8777 | static unsigned char u2c_83[512] = { | 8777 | static const unsigned char u2c_83[512] = { |
8778 | 0x00, 0x00, 0xF1, 0xE8, 0xD9, 0xF2, 0xDB, 0xF5, /* 0x00-0x03 */ | 8778 | 0x00, 0x00, 0xF1, 0xE8, 0xD9, 0xF2, 0xDB, 0xF5, /* 0x00-0x03 */ |
8779 | 0xCA, 0xB5, 0xD9, 0xC6, 0x00, 0x00, 0x00, 0x00, /* 0x04-0x07 */ | 8779 | 0xCA, 0xB5, 0xD9, 0xC6, 0x00, 0x00, 0x00, 0x00, /* 0x04-0x07 */ |
8780 | 0x00, 0x00, 0xD8, 0xC9, 0x00, 0x00, 0x00, 0x00, /* 0x08-0x0B */ | 8780 | 0x00, 0x00, 0xD8, 0xC9, 0x00, 0x00, 0x00, 0x00, /* 0x08-0x0B */ |
@@ -8842,7 +8842,7 @@ static unsigned char u2c_83[512] = { | |||
8842 | 0x00, 0x00, 0xE2, 0xDD, 0x00, 0x00, 0x00, 0x00, /* 0xFC-0xFF */ | 8842 | 0x00, 0x00, 0xE2, 0xDD, 0x00, 0x00, 0x00, 0x00, /* 0xFC-0xFF */ |
8843 | }; | 8843 | }; |
8844 | 8844 | ||
8845 | static unsigned char u2c_84[512] = { | 8845 | static const unsigned char u2c_84[512] = { |
8846 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xF5, 0xFE, /* 0x00-0x03 */ | 8846 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xF5, 0xFE, /* 0x00-0x03 */ |
8847 | 0xD4, 0xAC, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x04-0x07 */ | 8847 | 0xD4, 0xAC, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x04-0x07 */ |
8848 | 0x00, 0x00, 0x00, 0x00, 0xD5, 0xD1, 0x00, 0x00, /* 0x08-0x0B */ | 8848 | 0x00, 0x00, 0x00, 0x00, 0xD5, 0xD1, 0x00, 0x00, /* 0x08-0x0B */ |
@@ -8910,7 +8910,7 @@ static unsigned char u2c_84[512] = { | |||
8910 | 0xD6, 0xFE, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xFC-0xFF */ | 8910 | 0xD6, 0xFE, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xFC-0xFF */ |
8911 | }; | 8911 | }; |
8912 | 8912 | ||
8913 | static unsigned char u2c_85[512] = { | 8913 | static const unsigned char u2c_85[512] = { |
8914 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x00-0x03 */ | 8914 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x00-0x03 */ |
8915 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x04-0x07 */ | 8915 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x04-0x07 */ |
8916 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x08-0x0B */ | 8916 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x08-0x0B */ |
@@ -8978,7 +8978,7 @@ static unsigned char u2c_85[512] = { | |||
8978 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xCE, 0xAB, /* 0xFC-0xFF */ | 8978 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xCE, 0xAB, /* 0xFC-0xFF */ |
8979 | }; | 8979 | }; |
8980 | 8980 | ||
8981 | static unsigned char u2c_86[512] = { | 8981 | static const unsigned char u2c_86[512] = { |
8982 | 0x00, 0x00, 0x00, 0x00, 0xE7, 0xDE, 0x00, 0x00, /* 0x00-0x03 */ | 8982 | 0x00, 0x00, 0x00, 0x00, 0xE7, 0xDE, 0x00, 0x00, /* 0x00-0x03 */ |
8983 | 0x00, 0x00, 0x00, 0x00, 0xD6, 0xD6, 0xE1, 0xCC, /* 0x04-0x07 */ | 8983 | 0x00, 0x00, 0x00, 0x00, 0xD6, 0xD6, 0xE1, 0xCC, /* 0x04-0x07 */ |
8984 | 0x00, 0x00, 0x00, 0x00, 0xE8, 0xB3, 0x00, 0x00, /* 0x08-0x0B */ | 8984 | 0x00, 0x00, 0x00, 0x00, 0xE8, 0xB3, 0x00, 0x00, /* 0x08-0x0B */ |
@@ -9046,7 +9046,7 @@ static unsigned char u2c_86[512] = { | |||
9046 | 0x00, 0x00, 0x00, 0x00, 0xE4, 0xB6, 0x00, 0x00, /* 0xFC-0xFF */ | 9046 | 0x00, 0x00, 0x00, 0x00, 0xE4, 0xB6, 0x00, 0x00, /* 0xFC-0xFF */ |
9047 | }; | 9047 | }; |
9048 | 9048 | ||
9049 | static unsigned char u2c_87[512] = { | 9049 | static const unsigned char u2c_87[512] = { |
9050 | 0xF5, 0xB9, 0x00, 0x00, 0xDC, 0xF0, 0xE3, 0xF1, /* 0x00-0x03 */ | 9050 | 0xF5, 0xB9, 0x00, 0x00, 0xDC, 0xF0, 0xE3, 0xF1, /* 0x00-0x03 */ |
9051 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x04-0x07 */ | 9051 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x04-0x07 */ |
9052 | 0xE8, 0xA5, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x08-0x0B */ | 9052 | 0xE8, 0xA5, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x08-0x0B */ |
@@ -9114,7 +9114,7 @@ static unsigned char u2c_87[512] = { | |||
9114 | 0x00, 0x00, 0x00, 0x00, 0xE0, 0xEA, 0x00, 0x00, /* 0xFC-0xFF */ | 9114 | 0x00, 0x00, 0x00, 0x00, 0xE0, 0xEA, 0x00, 0x00, /* 0xFC-0xFF */ |
9115 | }; | 9115 | }; |
9116 | 9116 | ||
9117 | static unsigned char u2c_88[512] = { | 9117 | static const unsigned char u2c_88[512] = { |
9118 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x00-0x03 */ | 9118 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x00-0x03 */ |
9119 | 0x00, 0x00, 0xE3, 0xB2, 0x00, 0x00, 0x00, 0x00, /* 0x04-0x07 */ | 9119 | 0x00, 0x00, 0xE3, 0xB2, 0x00, 0x00, 0x00, 0x00, /* 0x04-0x07 */ |
9120 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x08-0x0B */ | 9120 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x08-0x0B */ |
@@ -9182,7 +9182,7 @@ static unsigned char u2c_88[512] = { | |||
9182 | 0x00, 0x00, 0xF0, 0xB2, 0x00, 0x00, 0x00, 0x00, /* 0xFC-0xFF */ | 9182 | 0x00, 0x00, 0xF0, 0xB2, 0x00, 0x00, 0x00, 0x00, /* 0xFC-0xFF */ |
9183 | }; | 9183 | }; |
9184 | 9184 | ||
9185 | static unsigned char u2c_89[512] = { | 9185 | static const unsigned char u2c_89[512] = { |
9186 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x00-0x03 */ | 9186 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x00-0x03 */ |
9187 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xDC, 0xDC, /* 0x04-0x07 */ | 9187 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xDC, 0xDC, /* 0x04-0x07 */ |
9188 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x08-0x0B */ | 9188 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x08-0x0B */ |
@@ -9249,7 +9249,7 @@ static unsigned char u2c_89[512] = { | |||
9249 | 0xF5, 0xBA, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xF8-0xFB */ | 9249 | 0xF5, 0xBA, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xF8-0xFB */ |
9250 | }; | 9250 | }; |
9251 | 9251 | ||
9252 | static unsigned char u2c_8A[512] = { | 9252 | static const unsigned char u2c_8A[512] = { |
9253 | 0xE5, 0xEB, 0x00, 0x00, 0xEF, 0xF4, 0xDD, 0xB5, /* 0x00-0x03 */ | 9253 | 0xE5, 0xEB, 0x00, 0x00, 0xEF, 0xF4, 0xDD, 0xB5, /* 0x00-0x03 */ |
9254 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x04-0x07 */ | 9254 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x04-0x07 */ |
9255 | 0xCD, 0xAA, 0x00, 0x00, 0xE3, 0xF2, 0x00, 0x00, /* 0x08-0x0B */ | 9255 | 0xCD, 0xAA, 0x00, 0x00, 0xE3, 0xF2, 0x00, 0x00, /* 0x08-0x0B */ |
@@ -9317,7 +9317,7 @@ static unsigned char u2c_8A[512] = { | |||
9317 | 0x00, 0x00, 0x00, 0x00, 0xD1, 0xE7, 0x00, 0x00, /* 0xFC-0xFF */ | 9317 | 0x00, 0x00, 0x00, 0x00, 0xD1, 0xE7, 0x00, 0x00, /* 0xFC-0xFF */ |
9318 | }; | 9318 | }; |
9319 | 9319 | ||
9320 | static unsigned char u2c_8B[512] = { | 9320 | static const unsigned char u2c_8B[512] = { |
9321 | 0xD9, 0xC7, 0xE4, 0xD7, 0xEA, 0xDD, 0x00, 0x00, /* 0x00-0x03 */ | 9321 | 0xD9, 0xC7, 0xE4, 0xD7, 0xEA, 0xDD, 0x00, 0x00, /* 0x00-0x03 */ |
9322 | 0xD4, 0xF7, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x04-0x07 */ | 9322 | 0xD4, 0xF7, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x04-0x07 */ |
9323 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x08-0x0B */ | 9323 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x08-0x0B */ |
@@ -9360,7 +9360,7 @@ static unsigned char u2c_8B[512] = { | |||
9360 | 0x00, 0x00, 0x00, 0x00, 0xF3, 0xC6, 0x00, 0x00, /* 0x98-0x9B */ | 9360 | 0x00, 0x00, 0x00, 0x00, 0xF3, 0xC6, 0x00, 0x00, /* 0x98-0x9B */ |
9361 | }; | 9361 | }; |
9362 | 9362 | ||
9363 | static unsigned char u2c_8C[512] = { | 9363 | static const unsigned char u2c_8C[512] = { |
9364 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x00-0x03 */ | 9364 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x00-0x03 */ |
9365 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x04-0x07 */ | 9365 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x04-0x07 */ |
9366 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x08-0x0B */ | 9366 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x08-0x0B */ |
@@ -9428,7 +9428,7 @@ static unsigned char u2c_8C[512] = { | |||
9428 | 0xCF, 0xC5, 0xDF, 0xDF, 0x00, 0x00, 0x00, 0x00, /* 0xFC-0xFF */ | 9428 | 0xCF, 0xC5, 0xDF, 0xDF, 0x00, 0x00, 0x00, 0x00, /* 0xFC-0xFF */ |
9429 | }; | 9429 | }; |
9430 | 9430 | ||
9431 | static unsigned char u2c_8D[512] = { | 9431 | static const unsigned char u2c_8D[512] = { |
9432 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x00-0x03 */ | 9432 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x00-0x03 */ |
9433 | 0xF2, 0xBE, 0xF6, 0xA1, 0x00, 0x00, 0xEB, 0xCB, /* 0x04-0x07 */ | 9433 | 0xF2, 0xBE, 0xF6, 0xA1, 0x00, 0x00, 0xEB, 0xCB, /* 0x04-0x07 */ |
9434 | 0xF1, 0xFC, 0x00, 0x00, 0xF3, 0xC7, 0x00, 0x00, /* 0x08-0x0B */ | 9434 | 0xF1, 0xFC, 0x00, 0x00, 0xF3, 0xC7, 0x00, 0x00, /* 0x08-0x0B */ |
@@ -9493,7 +9493,7 @@ static unsigned char u2c_8D[512] = { | |||
9493 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xD4, 0xAF, /* 0xF0-0xF3 */ | 9493 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xD4, 0xAF, /* 0xF0-0xF3 */ |
9494 | }; | 9494 | }; |
9495 | 9495 | ||
9496 | static unsigned char u2c_8E[512] = { | 9496 | static const unsigned char u2c_8E[512] = { |
9497 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x00-0x03 */ | 9497 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x00-0x03 */ |
9498 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x04-0x07 */ | 9498 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x04-0x07 */ |
9499 | 0x00, 0x00, 0x00, 0x00, 0xE9, 0xC9, 0x00, 0x00, /* 0x08-0x0B */ | 9499 | 0x00, 0x00, 0x00, 0x00, 0xE9, 0xC9, 0x00, 0x00, /* 0x08-0x0B */ |
@@ -9561,7 +9561,7 @@ static unsigned char u2c_8E[512] = { | |||
9561 | 0x00, 0x00, 0x00, 0x00, 0xE3, 0xDC, 0x00, 0x00, /* 0xFC-0xFF */ | 9561 | 0x00, 0x00, 0x00, 0x00, 0xE3, 0xDC, 0x00, 0x00, /* 0xFC-0xFF */ |
9562 | }; | 9562 | }; |
9563 | 9563 | ||
9564 | static unsigned char u2c_8F[512] = { | 9564 | static const unsigned char u2c_8F[512] = { |
9565 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xCE, 0xF2, /* 0x00-0x03 */ | 9565 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xCE, 0xF2, /* 0x00-0x03 */ |
9566 | 0x00, 0x00, 0xD6, 0xD9, 0x00, 0x00, 0x00, 0x00, /* 0x04-0x07 */ | 9566 | 0x00, 0x00, 0xD6, 0xD9, 0x00, 0x00, 0x00, 0x00, /* 0x04-0x07 */ |
9567 | 0x00, 0x00, 0xEE, 0xB0, 0x00, 0x00, 0x00, 0x00, /* 0x08-0x0B */ | 9567 | 0x00, 0x00, 0xEE, 0xB0, 0x00, 0x00, 0x00, 0x00, /* 0x08-0x0B */ |
@@ -9629,7 +9629,7 @@ static unsigned char u2c_8F[512] = { | |||
9629 | 0x00, 0x00, 0xF5, 0xDA, 0x00, 0x00, 0x00, 0x00, /* 0xFC-0xFF */ | 9629 | 0x00, 0x00, 0xF5, 0xDA, 0x00, 0x00, 0x00, 0x00, /* 0xFC-0xFF */ |
9630 | }; | 9630 | }; |
9631 | 9631 | ||
9632 | static unsigned char u2c_90[512] = { | 9632 | static const unsigned char u2c_90[512] = { |
9633 | 0xF7, 0xDC, 0xE1, 0xEA, 0xCE, 0xC1, 0xD4, 0xB1, /* 0x00-0x03 */ | 9633 | 0xF7, 0xDC, 0xE1, 0xEA, 0xCE, 0xC1, 0xD4, 0xB1, /* 0x00-0x03 */ |
9634 | 0x00, 0x00, 0xFD, 0xB1, 0xE6, 0xBD, 0x00, 0x00, /* 0x04-0x07 */ | 9634 | 0x00, 0x00, 0xFD, 0xB1, 0xE6, 0xBD, 0x00, 0x00, /* 0x04-0x07 */ |
9635 | 0xFB, 0xAD, 0x00, 0x00, 0x00, 0x00, 0xF8, 0xE7, /* 0x08-0x0B */ | 9635 | 0xFB, 0xAD, 0x00, 0x00, 0x00, 0x00, 0xF8, 0xE7, /* 0x08-0x0B */ |
@@ -9697,7 +9697,7 @@ static unsigned char u2c_90[512] = { | |||
9697 | 0x00, 0x00, 0xD4, 0xB4, 0x00, 0x00, 0x00, 0x00, /* 0xFC-0xFF */ | 9697 | 0x00, 0x00, 0xD4, 0xB4, 0x00, 0x00, 0x00, 0x00, /* 0xFC-0xFF */ |
9698 | }; | 9698 | }; |
9699 | 9699 | ||
9700 | static unsigned char u2c_91[512] = { | 9700 | static const unsigned char u2c_91[512] = { |
9701 | 0x00, 0x00, 0x00, 0x00, 0xE4, 0xC7, 0x00, 0x00, /* 0x00-0x03 */ | 9701 | 0x00, 0x00, 0x00, 0x00, 0xE4, 0xC7, 0x00, 0x00, /* 0x00-0x03 */ |
9702 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x04-0x07 */ | 9702 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x04-0x07 */ |
9703 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x08-0x0B */ | 9703 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x08-0x0B */ |
@@ -9763,7 +9763,7 @@ static unsigned char u2c_91[512] = { | |||
9763 | 0x00, 0x00, 0xF3, 0xFB, 0x00, 0x00, 0x00, 0x00, /* 0xF4-0xF7 */ | 9763 | 0x00, 0x00, 0xF3, 0xFB, 0x00, 0x00, 0x00, 0x00, /* 0xF4-0xF7 */ |
9764 | }; | 9764 | }; |
9765 | 9765 | ||
9766 | static unsigned char u2c_92[512] = { | 9766 | static const unsigned char u2c_92[512] = { |
9767 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x00-0x03 */ | 9767 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x00-0x03 */ |
9768 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x04-0x07 */ | 9768 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x04-0x07 */ |
9769 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x08-0x0B */ | 9769 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x08-0x0B */ |
@@ -9831,7 +9831,7 @@ static unsigned char u2c_92[512] = { | |||
9831 | 0xCB, 0xBC, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xFC-0xFF */ | 9831 | 0xCB, 0xBC, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xFC-0xFF */ |
9832 | }; | 9832 | }; |
9833 | 9833 | ||
9834 | static unsigned char u2c_93[512] = { | 9834 | static const unsigned char u2c_93[512] = { |
9835 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x00-0x03 */ | 9835 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x00-0x03 */ |
9836 | 0xD6, 0xE2, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x04-0x07 */ | 9836 | 0xD6, 0xE2, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x04-0x07 */ |
9837 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x08-0x0B */ | 9837 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x08-0x0B */ |
@@ -9897,7 +9897,7 @@ static unsigned char u2c_93[512] = { | |||
9897 | 0x00, 0x00, 0x00, 0x00, 0xF3, 0xA1, 0x00, 0x00, /* 0xF4-0xF7 */ | 9897 | 0x00, 0x00, 0x00, 0x00, 0xF3, 0xA1, 0x00, 0x00, /* 0xF4-0xF7 */ |
9898 | }; | 9898 | }; |
9899 | 9899 | ||
9900 | static unsigned char u2c_94[512] = { | 9900 | static const unsigned char u2c_94[512] = { |
9901 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x00-0x03 */ | 9901 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x00-0x03 */ |
9902 | 0xFC, 0xF5, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x04-0x07 */ | 9902 | 0xFC, 0xF5, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x04-0x07 */ |
9903 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x08-0x0B */ | 9903 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x08-0x0B */ |
@@ -9932,7 +9932,7 @@ static unsigned char u2c_94[512] = { | |||
9932 | 0x00, 0x00, 0xF3, 0xC8, 0x00, 0x00, 0xF3, 0xBA, /* 0x7C-0x7F */ | 9932 | 0x00, 0x00, 0xF3, 0xC8, 0x00, 0x00, 0xF3, 0xBA, /* 0x7C-0x7F */ |
9933 | }; | 9933 | }; |
9934 | 9934 | ||
9935 | static unsigned char u2c_95[512] = { | 9935 | static const unsigned char u2c_95[512] = { |
9936 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x00-0x03 */ | 9936 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x00-0x03 */ |
9937 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x04-0x07 */ | 9937 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x04-0x07 */ |
9938 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x08-0x0B */ | 9938 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x08-0x0B */ |
@@ -9993,7 +9993,7 @@ static unsigned char u2c_95[512] = { | |||
9993 | 0x00, 0x00, 0xF4, 0xC5, 0xDC, 0xA3, 0x00, 0x00, /* 0xE0-0xE3 */ | 9993 | 0x00, 0x00, 0xF4, 0xC5, 0xDC, 0xA3, 0x00, 0x00, /* 0xE0-0xE3 */ |
9994 | }; | 9994 | }; |
9995 | 9995 | ||
9996 | static unsigned char u2c_96[512] = { | 9996 | static const unsigned char u2c_96[512] = { |
9997 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x00-0x03 */ | 9997 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x00-0x03 */ |
9998 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x04-0x07 */ | 9998 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x04-0x07 */ |
9999 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x08-0x0B */ | 9999 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x08-0x0B */ |
@@ -10060,7 +10060,7 @@ static unsigned char u2c_96[512] = { | |||
10060 | 0x00, 0x00, 0xDA, 0xDF, 0x00, 0x00, 0xEF, 0xB3, /* 0xF8-0xFB */ | 10060 | 0x00, 0x00, 0xDA, 0xDF, 0x00, 0x00, 0xEF, 0xB3, /* 0xF8-0xFB */ |
10061 | }; | 10061 | }; |
10062 | 10062 | ||
10063 | static unsigned char u2c_97[512] = { | 10063 | static const unsigned char u2c_97[512] = { |
10064 | 0xE2, 0xCD, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x00-0x03 */ | 10064 | 0xE2, 0xCD, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x00-0x03 */ |
10065 | 0x00, 0x00, 0x00, 0x00, 0xEF, 0xFD, 0xF2, 0xE8, /* 0x04-0x07 */ | 10065 | 0x00, 0x00, 0x00, 0x00, 0xEF, 0xFD, 0xF2, 0xE8, /* 0x04-0x07 */ |
10066 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x08-0x0B */ | 10066 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x08-0x0B */ |
@@ -10128,7 +10128,7 @@ static unsigned char u2c_97[512] = { | |||
10128 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFA, 0xC2, /* 0xFC-0xFF */ | 10128 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFA, 0xC2, /* 0xFC-0xFF */ |
10129 | }; | 10129 | }; |
10130 | 10130 | ||
10131 | static unsigned char u2c_98[512] = { | 10131 | static const unsigned char u2c_98[512] = { |
10132 | 0xFB, 0xE1, 0xFA, 0xED, 0xF0, 0xA2, 0xCC, 0xF1, /* 0x00-0x03 */ | 10132 | 0xFB, 0xE1, 0xFA, 0xED, 0xF0, 0xA2, 0xCC, 0xF1, /* 0x00-0x03 */ |
10133 | 0x00, 0x00, 0xFA, 0xA3, 0xE2, 0xF7, 0x00, 0x00, /* 0x04-0x07 */ | 10133 | 0x00, 0x00, 0xFA, 0xA3, 0xE2, 0xF7, 0x00, 0x00, /* 0x04-0x07 */ |
10134 | 0xE2, 0xCE, 0x00, 0x00, 0xE9, 0xF5, 0x00, 0x00, /* 0x08-0x0B */ | 10134 | 0xE2, 0xCE, 0x00, 0x00, 0xE9, 0xF5, 0x00, 0x00, /* 0x08-0x0B */ |
@@ -10196,7 +10196,7 @@ static unsigned char u2c_98[512] = { | |||
10196 | 0xDE, 0xF8, 0xF8, 0xE9, 0xE3, 0xDE, 0x00, 0x00, /* 0xFC-0xFF */ | 10196 | 0xDE, 0xF8, 0xF8, 0xE9, 0xE3, 0xDE, 0x00, 0x00, /* 0xFC-0xFF */ |
10197 | }; | 10197 | }; |
10198 | 10198 | ||
10199 | static unsigned char u2c_99[512] = { | 10199 | static const unsigned char u2c_99[512] = { |
10200 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xCE, 0xF5, /* 0x00-0x03 */ | 10200 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xCE, 0xF5, /* 0x00-0x03 */ |
10201 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x04-0x07 */ | 10201 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x04-0x07 */ |
10202 | 0x00, 0x00, 0xFA, 0xC3, 0xE5, 0xD7, 0x00, 0x00, /* 0x08-0x0B */ | 10202 | 0x00, 0x00, 0xFA, 0xC3, 0xE5, 0xD7, 0x00, 0x00, /* 0x08-0x0B */ |
@@ -10264,7 +10264,7 @@ static unsigned char u2c_99[512] = { | |||
10264 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xF1, 0xE7, /* 0xFC-0xFF */ | 10264 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xF1, 0xE7, /* 0xFC-0xFF */ |
10265 | }; | 10265 | }; |
10266 | 10266 | ||
10267 | static unsigned char u2c_9A[512] = { | 10267 | static const unsigned char u2c_9A[512] = { |
10268 | 0x00, 0x00, 0xDE, 0xBE, 0x00, 0x00, 0x00, 0x00, /* 0x00-0x03 */ | 10268 | 0x00, 0x00, 0xDE, 0xBE, 0x00, 0x00, 0x00, 0x00, /* 0x00-0x03 */ |
10269 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x04-0x07 */ | 10269 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x04-0x07 */ |
10270 | 0xDC, 0xC0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x08-0x0B */ | 10270 | 0xDC, 0xC0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x08-0x0B */ |
@@ -10328,7 +10328,7 @@ static unsigned char u2c_9A[512] = { | |||
10328 | 0x00, 0x00, 0x00, 0x00, 0xDB, 0xA5, 0x00, 0x00, /* 0xEC-0xEF */ | 10328 | 0x00, 0x00, 0x00, 0x00, 0xDB, 0xA5, 0x00, 0x00, /* 0xEC-0xEF */ |
10329 | }; | 10329 | }; |
10330 | 10330 | ||
10331 | static unsigned char u2c_9B[512] = { | 10331 | static const unsigned char u2c_9B[512] = { |
10332 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x00-0x03 */ | 10332 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x00-0x03 */ |
10333 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x04-0x07 */ | 10333 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x04-0x07 */ |
10334 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x08-0x0B */ | 10334 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x08-0x0B */ |
@@ -10391,7 +10391,7 @@ static unsigned char u2c_9B[512] = { | |||
10391 | 0xCC, 0xF4, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xE8-0xEB */ | 10391 | 0xCC, 0xF4, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xE8-0xEB */ |
10392 | }; | 10392 | }; |
10393 | 10393 | ||
10394 | static unsigned char u2c_9C[512] = { | 10394 | static const unsigned char u2c_9C[512] = { |
10395 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x00-0x03 */ | 10395 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x00-0x03 */ |
10396 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x04-0x07 */ | 10396 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x04-0x07 */ |
10397 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x08-0x0B */ | 10397 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x08-0x0B */ |
@@ -10457,7 +10457,7 @@ static unsigned char u2c_9C[512] = { | |||
10457 | 0xD9, 0xB0, 0x00, 0x00, 0xE6, 0xE9, 0x00, 0x00, /* 0xF4-0xF7 */ | 10457 | 0xD9, 0xB0, 0x00, 0x00, 0xE6, 0xE9, 0x00, 0x00, /* 0xF4-0xF7 */ |
10458 | }; | 10458 | }; |
10459 | 10459 | ||
10460 | static unsigned char u2c_9D[512] = { | 10460 | static const unsigned char u2c_9D[512] = { |
10461 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x00-0x03 */ | 10461 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x00-0x03 */ |
10462 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x04-0x07 */ | 10462 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x04-0x07 */ |
10463 | 0x00, 0x00, 0xE4, 0xBC, 0x00, 0x00, 0x00, 0x00, /* 0x08-0x0B */ | 10463 | 0x00, 0x00, 0xE4, 0xBC, 0x00, 0x00, 0x00, 0x00, /* 0x08-0x0B */ |
@@ -10524,7 +10524,7 @@ static unsigned char u2c_9D[512] = { | |||
10524 | 0xFD, 0xD3, 0xEB, 0xED, 0xD6, 0xDC, 0x00, 0x00, /* 0xF8-0xFB */ | 10524 | 0xFD, 0xD3, 0xEB, 0xED, 0xD6, 0xDC, 0x00, 0x00, /* 0xF8-0xFB */ |
10525 | }; | 10525 | }; |
10526 | 10526 | ||
10527 | static unsigned char u2c_9E[512] = { | 10527 | static const unsigned char u2c_9E[512] = { |
10528 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x00-0x03 */ | 10528 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x00-0x03 */ |
10529 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x04-0x07 */ | 10529 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x04-0x07 */ |
10530 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x08-0x0B */ | 10530 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x08-0x0B */ |
@@ -10590,7 +10590,7 @@ static unsigned char u2c_9E[512] = { | |||
10590 | 0xDA, 0xBD, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xF4-0xF7 */ | 10590 | 0xDA, 0xBD, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xF4-0xF7 */ |
10591 | }; | 10591 | }; |
10592 | 10592 | ||
10593 | static unsigned char u2c_9F[512] = { | 10593 | static const unsigned char u2c_9F[512] = { |
10594 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x00-0x03 */ | 10594 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x00-0x03 */ |
10595 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xE8, 0xA8, /* 0x04-0x07 */ | 10595 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xE8, 0xA8, /* 0x04-0x07 */ |
10596 | 0xDC, 0xAF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x08-0x0B */ | 10596 | 0xDC, 0xAF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x08-0x0B */ |
@@ -10634,7 +10634,7 @@ static unsigned char u2c_9F[512] = { | |||
10634 | 0xCF, 0xCF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x9C-0x9F */ | 10634 | 0xCF, 0xCF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x9C-0x9F */ |
10635 | }; | 10635 | }; |
10636 | 10636 | ||
10637 | static unsigned char u2c_AC[512] = { | 10637 | static const unsigned char u2c_AC[512] = { |
10638 | 0xB0, 0xA1, 0xB0, 0xA2, 0x81, 0x41, 0x81, 0x42, /* 0x00-0x03 */ | 10638 | 0xB0, 0xA1, 0xB0, 0xA2, 0x81, 0x41, 0x81, 0x42, /* 0x00-0x03 */ |
10639 | 0xB0, 0xA3, 0x81, 0x43, 0x81, 0x44, 0xB0, 0xA4, /* 0x04-0x07 */ | 10639 | 0xB0, 0xA3, 0x81, 0x43, 0x81, 0x44, 0xB0, 0xA4, /* 0x04-0x07 */ |
10640 | 0xB0, 0xA5, 0xB0, 0xA6, 0xB0, 0xA7, 0x81, 0x45, /* 0x08-0x0B */ | 10640 | 0xB0, 0xA5, 0xB0, 0xA6, 0xB0, 0xA7, 0x81, 0x45, /* 0x08-0x0B */ |
@@ -10702,7 +10702,7 @@ static unsigned char u2c_AC[512] = { | |||
10702 | 0xB0, 0xFA, 0xB0, 0xFB, 0x81, 0xF0, 0x81, 0xF1, /* 0xFC-0xFF */ | 10702 | 0xB0, 0xFA, 0xB0, 0xFB, 0x81, 0xF0, 0x81, 0xF1, /* 0xFC-0xFF */ |
10703 | }; | 10703 | }; |
10704 | 10704 | ||
10705 | static unsigned char u2c_AD[512] = { | 10705 | static const unsigned char u2c_AD[512] = { |
10706 | 0xB0, 0xFC, 0x81, 0xF2, 0x81, 0xF3, 0x81, 0xF4, /* 0x00-0x03 */ | 10706 | 0xB0, 0xFC, 0x81, 0xF2, 0x81, 0xF3, 0x81, 0xF4, /* 0x00-0x03 */ |
10707 | 0xB0, 0xFD, 0x81, 0xF5, 0xB0, 0xFE, 0x81, 0xF6, /* 0x04-0x07 */ | 10707 | 0xB0, 0xFD, 0x81, 0xF5, 0xB0, 0xFE, 0x81, 0xF6, /* 0x04-0x07 */ |
10708 | 0x81, 0xF7, 0x81, 0xF8, 0x81, 0xF9, 0x81, 0xFA, /* 0x08-0x0B */ | 10708 | 0x81, 0xF7, 0x81, 0xF8, 0x81, 0xF9, 0x81, 0xFA, /* 0x08-0x0B */ |
@@ -10770,7 +10770,7 @@ static unsigned char u2c_AD[512] = { | |||
10770 | 0xB1, 0xD9, 0x83, 0x43, 0x83, 0x44, 0xB1, 0xDA, /* 0xFC-0xFF */ | 10770 | 0xB1, 0xD9, 0x83, 0x43, 0x83, 0x44, 0xB1, 0xDA, /* 0xFC-0xFF */ |
10771 | }; | 10771 | }; |
10772 | 10772 | ||
10773 | static unsigned char u2c_AE[512] = { | 10773 | static const unsigned char u2c_AE[512] = { |
10774 | 0xB1, 0xDB, 0xB1, 0xDC, 0x83, 0x45, 0x83, 0x46, /* 0x00-0x03 */ | 10774 | 0xB1, 0xDB, 0xB1, 0xDC, 0x83, 0x45, 0x83, 0x46, /* 0x00-0x03 */ |
10775 | 0x83, 0x47, 0x83, 0x48, 0x83, 0x49, 0x83, 0x4A, /* 0x04-0x07 */ | 10775 | 0x83, 0x47, 0x83, 0x48, 0x83, 0x49, 0x83, 0x4A, /* 0x04-0x07 */ |
10776 | 0xB1, 0xDD, 0xB1, 0xDE, 0x83, 0x4B, 0xB1, 0xDF, /* 0x08-0x0B */ | 10776 | 0xB1, 0xDD, 0xB1, 0xDE, 0x83, 0x4B, 0xB1, 0xDF, /* 0x08-0x0B */ |
@@ -10838,7 +10838,7 @@ static unsigned char u2c_AE[512] = { | |||
10838 | 0xB2, 0xBA, 0x84, 0x52, 0x84, 0x53, 0x84, 0x54, /* 0xFC-0xFF */ | 10838 | 0xB2, 0xBA, 0x84, 0x52, 0x84, 0x53, 0x84, 0x54, /* 0xFC-0xFF */ |
10839 | }; | 10839 | }; |
10840 | 10840 | ||
10841 | static unsigned char u2c_AF[512] = { | 10841 | static const unsigned char u2c_AF[512] = { |
10842 | 0x84, 0x55, 0x84, 0x56, 0x84, 0x57, 0x84, 0x58, /* 0x00-0x03 */ | 10842 | 0x84, 0x55, 0x84, 0x56, 0x84, 0x57, 0x84, 0x58, /* 0x00-0x03 */ |
10843 | 0x84, 0x59, 0x84, 0x5A, 0x84, 0x61, 0xB2, 0xBB, /* 0x04-0x07 */ | 10843 | 0x84, 0x59, 0x84, 0x5A, 0x84, 0x61, 0xB2, 0xBB, /* 0x04-0x07 */ |
10844 | 0xB2, 0xBC, 0x84, 0x62, 0x84, 0x63, 0x84, 0x64, /* 0x08-0x0B */ | 10844 | 0xB2, 0xBC, 0x84, 0x62, 0x84, 0x63, 0x84, 0x64, /* 0x08-0x0B */ |
@@ -10906,7 +10906,7 @@ static unsigned char u2c_AF[512] = { | |||
10906 | 0x85, 0x75, 0x85, 0x76, 0x85, 0x77, 0x85, 0x78, /* 0xFC-0xFF */ | 10906 | 0x85, 0x75, 0x85, 0x76, 0x85, 0x77, 0x85, 0x78, /* 0xFC-0xFF */ |
10907 | }; | 10907 | }; |
10908 | 10908 | ||
10909 | static unsigned char u2c_B0[512] = { | 10909 | static const unsigned char u2c_B0[512] = { |
10910 | 0xB2, 0xEB, 0xB2, 0xEC, 0x85, 0x79, 0x85, 0x7A, /* 0x00-0x03 */ | 10910 | 0xB2, 0xEB, 0xB2, 0xEC, 0x85, 0x79, 0x85, 0x7A, /* 0x00-0x03 */ |
10911 | 0xB2, 0xED, 0x85, 0x81, 0x85, 0x82, 0x85, 0x83, /* 0x04-0x07 */ | 10911 | 0xB2, 0xED, 0x85, 0x81, 0x85, 0x82, 0x85, 0x83, /* 0x04-0x07 */ |
10912 | 0x85, 0x84, 0x85, 0x85, 0x85, 0x86, 0x85, 0x87, /* 0x08-0x0B */ | 10912 | 0x85, 0x84, 0x85, 0x85, 0x85, 0x86, 0x85, 0x87, /* 0x08-0x0B */ |
@@ -10974,7 +10974,7 @@ static unsigned char u2c_B0[512] = { | |||
10974 | 0x86, 0x8C, 0x86, 0x8D, 0x86, 0x8E, 0x86, 0x8F, /* 0xFC-0xFF */ | 10974 | 0x86, 0x8C, 0x86, 0x8D, 0x86, 0x8E, 0x86, 0x8F, /* 0xFC-0xFF */ |
10975 | }; | 10975 | }; |
10976 | 10976 | ||
10977 | static unsigned char u2c_B1[512] = { | 10977 | static const unsigned char u2c_B1[512] = { |
10978 | 0x86, 0x90, 0x86, 0x91, 0x86, 0x92, 0x86, 0x93, /* 0x00-0x03 */ | 10978 | 0x86, 0x90, 0x86, 0x91, 0x86, 0x92, 0x86, 0x93, /* 0x00-0x03 */ |
10979 | 0x86, 0x94, 0x86, 0x95, 0x86, 0x96, 0x86, 0x97, /* 0x04-0x07 */ | 10979 | 0x86, 0x94, 0x86, 0x95, 0x86, 0x96, 0x86, 0x97, /* 0x04-0x07 */ |
10980 | 0xB3, 0xCA, 0xB3, 0xCB, 0x86, 0x98, 0xB3, 0xCC, /* 0x08-0x0B */ | 10980 | 0xB3, 0xCA, 0xB3, 0xCB, 0x86, 0x98, 0xB3, 0xCC, /* 0x08-0x0B */ |
@@ -11042,7 +11042,7 @@ static unsigned char u2c_B1[512] = { | |||
11042 | 0x87, 0x9E, 0xB4, 0xA8, 0x87, 0x9F, 0x87, 0xA0, /* 0xFC-0xFF */ | 11042 | 0x87, 0x9E, 0xB4, 0xA8, 0x87, 0x9F, 0x87, 0xA0, /* 0xFC-0xFF */ |
11043 | }; | 11043 | }; |
11044 | 11044 | ||
11045 | static unsigned char u2c_B2[512] = { | 11045 | static const unsigned char u2c_B2[512] = { |
11046 | 0x87, 0xA1, 0x87, 0xA2, 0x87, 0xA3, 0x87, 0xA4, /* 0x00-0x03 */ | 11046 | 0x87, 0xA1, 0x87, 0xA2, 0x87, 0xA3, 0x87, 0xA4, /* 0x00-0x03 */ |
11047 | 0xB4, 0xA9, 0xB4, 0xAA, 0x87, 0xA5, 0x87, 0xA6, /* 0x04-0x07 */ | 11047 | 0xB4, 0xA9, 0xB4, 0xAA, 0x87, 0xA5, 0x87, 0xA6, /* 0x04-0x07 */ |
11048 | 0xB4, 0xAB, 0x87, 0xA7, 0x87, 0xA8, 0xB4, 0xAC, /* 0x08-0x0B */ | 11048 | 0xB4, 0xAB, 0x87, 0xA7, 0x87, 0xA8, 0xB4, 0xAC, /* 0x08-0x0B */ |
@@ -11110,7 +11110,7 @@ static unsigned char u2c_B2[512] = { | |||
11110 | 0x88, 0xAA, 0x88, 0xAB, 0x88, 0xAC, 0xB4, 0xEA, /* 0xFC-0xFF */ | 11110 | 0x88, 0xAA, 0x88, 0xAB, 0x88, 0xAC, 0xB4, 0xEA, /* 0xFC-0xFF */ |
11111 | }; | 11111 | }; |
11112 | 11112 | ||
11113 | static unsigned char u2c_B3[512] = { | 11113 | static const unsigned char u2c_B3[512] = { |
11114 | 0xB4, 0xEB, 0xB4, 0xEC, 0x88, 0xAD, 0x88, 0xAE, /* 0x00-0x03 */ | 11114 | 0xB4, 0xEB, 0xB4, 0xEC, 0x88, 0xAD, 0x88, 0xAE, /* 0x00-0x03 */ |
11115 | 0xB4, 0xED, 0x88, 0xAF, 0x88, 0xB0, 0x88, 0xB1, /* 0x04-0x07 */ | 11115 | 0xB4, 0xED, 0x88, 0xAF, 0x88, 0xB0, 0x88, 0xB1, /* 0x04-0x07 */ |
11116 | 0xB4, 0xEE, 0x88, 0xB2, 0x88, 0xB3, 0x88, 0xB4, /* 0x08-0x0B */ | 11116 | 0xB4, 0xEE, 0x88, 0xB2, 0x88, 0xB3, 0x88, 0xB4, /* 0x08-0x0B */ |
@@ -11178,7 +11178,7 @@ static unsigned char u2c_B3[512] = { | |||
11178 | 0xB5, 0xC5, 0x89, 0xBF, 0x89, 0xC0, 0x89, 0xC1, /* 0xFC-0xFF */ | 11178 | 0xB5, 0xC5, 0x89, 0xBF, 0x89, 0xC0, 0x89, 0xC1, /* 0xFC-0xFF */ |
11179 | }; | 11179 | }; |
11180 | 11180 | ||
11181 | static unsigned char u2c_B4[512] = { | 11181 | static const unsigned char u2c_B4[512] = { |
11182 | 0x89, 0xC2, 0x89, 0xC3, 0x89, 0xC4, 0x89, 0xC5, /* 0x00-0x03 */ | 11182 | 0x89, 0xC2, 0x89, 0xC3, 0x89, 0xC4, 0x89, 0xC5, /* 0x00-0x03 */ |
11183 | 0x89, 0xC6, 0x89, 0xC7, 0x89, 0xC8, 0x89, 0xC9, /* 0x04-0x07 */ | 11183 | 0x89, 0xC6, 0x89, 0xC7, 0x89, 0xC8, 0x89, 0xC9, /* 0x04-0x07 */ |
11184 | 0x89, 0xCA, 0x89, 0xCB, 0x89, 0xCC, 0x89, 0xCD, /* 0x08-0x0B */ | 11184 | 0x89, 0xCA, 0x89, 0xCB, 0x89, 0xCC, 0x89, 0xCD, /* 0x08-0x0B */ |
@@ -11246,7 +11246,7 @@ static unsigned char u2c_B4[512] = { | |||
11246 | 0x8A, 0xE2, 0x8A, 0xE3, 0x8A, 0xE4, 0x8A, 0xE5, /* 0xFC-0xFF */ | 11246 | 0x8A, 0xE2, 0x8A, 0xE3, 0x8A, 0xE4, 0x8A, 0xE5, /* 0xFC-0xFF */ |
11247 | }; | 11247 | }; |
11248 | 11248 | ||
11249 | static unsigned char u2c_B5[512] = { | 11249 | static const unsigned char u2c_B5[512] = { |
11250 | 0x8A, 0xE6, 0x8A, 0xE7, 0x8A, 0xE8, 0x8A, 0xE9, /* 0x00-0x03 */ | 11250 | 0x8A, 0xE6, 0x8A, 0xE7, 0x8A, 0xE8, 0x8A, 0xE9, /* 0x00-0x03 */ |
11251 | 0x8A, 0xEA, 0x8A, 0xEB, 0x8A, 0xEC, 0x8A, 0xED, /* 0x04-0x07 */ | 11251 | 0x8A, 0xEA, 0x8A, 0xEB, 0x8A, 0xEC, 0x8A, 0xED, /* 0x04-0x07 */ |
11252 | 0x8A, 0xEE, 0x8A, 0xEF, 0x8A, 0xF0, 0x8A, 0xF1, /* 0x08-0x0B */ | 11252 | 0x8A, 0xEE, 0x8A, 0xEF, 0x8A, 0xF0, 0x8A, 0xF1, /* 0x08-0x0B */ |
@@ -11314,7 +11314,7 @@ static unsigned char u2c_B5[512] = { | |||
11314 | 0x8B, 0xFB, 0x8B, 0xFC, 0x8B, 0xFD, 0x8B, 0xFE, /* 0xFC-0xFF */ | 11314 | 0x8B, 0xFB, 0x8B, 0xFC, 0x8B, 0xFD, 0x8B, 0xFE, /* 0xFC-0xFF */ |
11315 | }; | 11315 | }; |
11316 | 11316 | ||
11317 | static unsigned char u2c_B6[512] = { | 11317 | static const unsigned char u2c_B6[512] = { |
11318 | 0x8C, 0x41, 0x8C, 0x42, 0x8C, 0x43, 0x8C, 0x44, /* 0x00-0x03 */ | 11318 | 0x8C, 0x41, 0x8C, 0x42, 0x8C, 0x43, 0x8C, 0x44, /* 0x00-0x03 */ |
11319 | 0x8C, 0x45, 0x8C, 0x46, 0x8C, 0x47, 0x8C, 0x48, /* 0x04-0x07 */ | 11319 | 0x8C, 0x45, 0x8C, 0x46, 0x8C, 0x47, 0x8C, 0x48, /* 0x04-0x07 */ |
11320 | 0x8C, 0x49, 0x8C, 0x4A, 0x8C, 0x4B, 0x8C, 0x4C, /* 0x08-0x0B */ | 11320 | 0x8C, 0x49, 0x8C, 0x4A, 0x8C, 0x4B, 0x8C, 0x4C, /* 0x08-0x0B */ |
@@ -11382,7 +11382,7 @@ static unsigned char u2c_B6[512] = { | |||
11382 | 0x8D, 0x82, 0x8D, 0x83, 0x8D, 0x84, 0x8D, 0x85, /* 0xFC-0xFF */ | 11382 | 0x8D, 0x82, 0x8D, 0x83, 0x8D, 0x84, 0x8D, 0x85, /* 0xFC-0xFF */ |
11383 | }; | 11383 | }; |
11384 | 11384 | ||
11385 | static unsigned char u2c_B7[512] = { | 11385 | static const unsigned char u2c_B7[512] = { |
11386 | 0xB6, 0xDC, 0xB6, 0xDD, 0x8D, 0x86, 0x8D, 0x87, /* 0x00-0x03 */ | 11386 | 0xB6, 0xDC, 0xB6, 0xDD, 0x8D, 0x86, 0x8D, 0x87, /* 0x00-0x03 */ |
11387 | 0x8D, 0x88, 0xB6, 0xDE, 0x8D, 0x89, 0x8D, 0x8A, /* 0x04-0x07 */ | 11387 | 0x8D, 0x88, 0xB6, 0xDE, 0x8D, 0x89, 0x8D, 0x8A, /* 0x04-0x07 */ |
11388 | 0x8D, 0x8B, 0x8D, 0x8C, 0x8D, 0x8D, 0x8D, 0x8E, /* 0x08-0x0B */ | 11388 | 0x8D, 0x8B, 0x8D, 0x8C, 0x8D, 0x8D, 0x8D, 0x8E, /* 0x08-0x0B */ |
@@ -11450,7 +11450,7 @@ static unsigned char u2c_B7[512] = { | |||
11450 | 0xB7, 0xB3, 0xB7, 0xB4, 0x8E, 0x9B, 0xB7, 0xB5, /* 0xFC-0xFF */ | 11450 | 0xB7, 0xB3, 0xB7, 0xB4, 0x8E, 0x9B, 0xB7, 0xB5, /* 0xFC-0xFF */ |
11451 | }; | 11451 | }; |
11452 | 11452 | ||
11453 | static unsigned char u2c_B8[512] = { | 11453 | static const unsigned char u2c_B8[512] = { |
11454 | 0xB7, 0xB6, 0xB7, 0xB7, 0x8E, 0x9C, 0x8E, 0x9D, /* 0x00-0x03 */ | 11454 | 0xB7, 0xB6, 0xB7, 0xB7, 0x8E, 0x9C, 0x8E, 0x9D, /* 0x00-0x03 */ |
11455 | 0x8E, 0x9E, 0x8E, 0x9F, 0x8E, 0xA0, 0xB7, 0xB8, /* 0x04-0x07 */ | 11455 | 0x8E, 0x9E, 0x8E, 0x9F, 0x8E, 0xA0, 0xB7, 0xB8, /* 0x04-0x07 */ |
11456 | 0xB7, 0xB9, 0xB7, 0xBA, 0x8E, 0xA1, 0x8E, 0xA2, /* 0x08-0x0B */ | 11456 | 0xB7, 0xB9, 0xB7, 0xBA, 0x8E, 0xA1, 0x8E, 0xA2, /* 0x08-0x0B */ |
@@ -11518,7 +11518,7 @@ static unsigned char u2c_B8[512] = { | |||
11518 | 0x8F, 0xAE, 0xB7, 0xEE, 0x8F, 0xAF, 0x8F, 0xB0, /* 0xFC-0xFF */ | 11518 | 0x8F, 0xAE, 0xB7, 0xEE, 0x8F, 0xAF, 0x8F, 0xB0, /* 0xFC-0xFF */ |
11519 | }; | 11519 | }; |
11520 | 11520 | ||
11521 | static unsigned char u2c_B9[512] = { | 11521 | static const unsigned char u2c_B9[512] = { |
11522 | 0x8F, 0xB1, 0x8F, 0xB2, 0x8F, 0xB3, 0x8F, 0xB4, /* 0x00-0x03 */ | 11522 | 0x8F, 0xB1, 0x8F, 0xB2, 0x8F, 0xB3, 0x8F, 0xB4, /* 0x00-0x03 */ |
11523 | 0xB7, 0xEF, 0x8F, 0xB5, 0x8F, 0xB6, 0x8F, 0xB7, /* 0x04-0x07 */ | 11523 | 0xB7, 0xEF, 0x8F, 0xB5, 0x8F, 0xB6, 0x8F, 0xB7, /* 0x04-0x07 */ |
11524 | 0x8F, 0xB8, 0x8F, 0xB9, 0x8F, 0xBA, 0x8F, 0xBB, /* 0x08-0x0B */ | 11524 | 0x8F, 0xB8, 0x8F, 0xB9, 0x8F, 0xBA, 0x8F, 0xBB, /* 0x08-0x0B */ |
@@ -11586,7 +11586,7 @@ static unsigned char u2c_B9[512] = { | |||
11586 | 0x90, 0xBD, 0x90, 0xBE, 0x90, 0xBF, 0x90, 0xC0, /* 0xFC-0xFF */ | 11586 | 0x90, 0xBD, 0x90, 0xBE, 0x90, 0xBF, 0x90, 0xC0, /* 0xFC-0xFF */ |
11587 | }; | 11587 | }; |
11588 | 11588 | ||
11589 | static unsigned char u2c_BA[512] = { | 11589 | static const unsigned char u2c_BA[512] = { |
11590 | 0xB8, 0xCF, 0xB8, 0xD0, 0x90, 0xC1, 0x90, 0xC2, /* 0x00-0x03 */ | 11590 | 0xB8, 0xCF, 0xB8, 0xD0, 0x90, 0xC1, 0x90, 0xC2, /* 0x00-0x03 */ |
11591 | 0x90, 0xC3, 0x90, 0xC4, 0x90, 0xC5, 0x90, 0xC6, /* 0x04-0x07 */ | 11591 | 0x90, 0xC3, 0x90, 0xC4, 0x90, 0xC5, 0x90, 0xC6, /* 0x04-0x07 */ |
11592 | 0xB8, 0xD1, 0x90, 0xC7, 0x90, 0xC8, 0x90, 0xC9, /* 0x08-0x0B */ | 11592 | 0xB8, 0xD1, 0x90, 0xC7, 0x90, 0xC8, 0x90, 0xC9, /* 0x08-0x0B */ |
@@ -11654,7 +11654,7 @@ static unsigned char u2c_BA[512] = { | |||
11654 | 0xB8, 0xFE, 0x91, 0xDC, 0x91, 0xDD, 0x91, 0xDE, /* 0xFC-0xFF */ | 11654 | 0xB8, 0xFE, 0x91, 0xDC, 0x91, 0xDD, 0x91, 0xDE, /* 0xFC-0xFF */ |
11655 | }; | 11655 | }; |
11656 | 11656 | ||
11657 | static unsigned char u2c_BB[512] = { | 11657 | static const unsigned char u2c_BB[512] = { |
11658 | 0xB9, 0xA1, 0x91, 0xDF, 0x91, 0xE0, 0x91, 0xE1, /* 0x00-0x03 */ | 11658 | 0xB9, 0xA1, 0x91, 0xDF, 0x91, 0xE0, 0x91, 0xE1, /* 0x00-0x03 */ |
11659 | 0xB9, 0xA2, 0x91, 0xE2, 0x91, 0xE3, 0x91, 0xE4, /* 0x04-0x07 */ | 11659 | 0xB9, 0xA2, 0x91, 0xE2, 0x91, 0xE3, 0x91, 0xE4, /* 0x04-0x07 */ |
11660 | 0x91, 0xE5, 0x91, 0xE6, 0x91, 0xE7, 0x91, 0xE8, /* 0x08-0x0B */ | 11660 | 0x91, 0xE5, 0x91, 0xE6, 0x91, 0xE7, 0x91, 0xE8, /* 0x08-0x0B */ |
@@ -11722,7 +11722,7 @@ static unsigned char u2c_BB[512] = { | |||
11722 | 0xB9, 0xCE, 0x92, 0xFC, 0x92, 0xFD, 0xB9, 0xCF, /* 0xFC-0xFF */ | 11722 | 0xB9, 0xCE, 0x92, 0xFC, 0x92, 0xFD, 0xB9, 0xCF, /* 0xFC-0xFF */ |
11723 | }; | 11723 | }; |
11724 | 11724 | ||
11725 | static unsigned char u2c_BC[512] = { | 11725 | static const unsigned char u2c_BC[512] = { |
11726 | 0xB9, 0xD0, 0x92, 0xFE, 0xB9, 0xD1, 0x93, 0x41, /* 0x00-0x03 */ | 11726 | 0xB9, 0xD0, 0x92, 0xFE, 0xB9, 0xD1, 0x93, 0x41, /* 0x00-0x03 */ |
11727 | 0x93, 0x42, 0x93, 0x43, 0x93, 0x44, 0x93, 0x45, /* 0x04-0x07 */ | 11727 | 0x93, 0x42, 0x93, 0x43, 0x93, 0x44, 0x93, 0x45, /* 0x04-0x07 */ |
11728 | 0xB9, 0xD2, 0xB9, 0xD3, 0x93, 0x46, 0xB9, 0xD4, /* 0x08-0x0B */ | 11728 | 0xB9, 0xD2, 0xB9, 0xD3, 0x93, 0x46, 0xB9, 0xD4, /* 0x08-0x0B */ |
@@ -11790,7 +11790,7 @@ static unsigned char u2c_BC[512] = { | |||
11790 | 0xBA, 0xBC, 0x93, 0xFE, 0x94, 0x41, 0x94, 0x42, /* 0xFC-0xFF */ | 11790 | 0xBA, 0xBC, 0x93, 0xFE, 0x94, 0x41, 0x94, 0x42, /* 0xFC-0xFF */ |
11791 | }; | 11791 | }; |
11792 | 11792 | ||
11793 | static unsigned char u2c_BD[512] = { | 11793 | static const unsigned char u2c_BD[512] = { |
11794 | 0x94, 0x43, 0x94, 0x44, 0x94, 0x45, 0x94, 0x46, /* 0x00-0x03 */ | 11794 | 0x94, 0x43, 0x94, 0x44, 0x94, 0x45, 0x94, 0x46, /* 0x00-0x03 */ |
11795 | 0xBA, 0xBD, 0xBA, 0xBE, 0x94, 0x47, 0xBA, 0xBF, /* 0x04-0x07 */ | 11795 | 0xBA, 0xBD, 0xBA, 0xBE, 0x94, 0x47, 0xBA, 0xBF, /* 0x04-0x07 */ |
11796 | 0x94, 0x48, 0xBA, 0xC0, 0x94, 0x49, 0x94, 0x4A, /* 0x08-0x0B */ | 11796 | 0x94, 0x48, 0xBA, 0xC0, 0x94, 0x49, 0x94, 0x4A, /* 0x08-0x0B */ |
@@ -11858,7 +11858,7 @@ static unsigned char u2c_BD[512] = { | |||
11858 | 0x95, 0x69, 0x95, 0x6A, 0x95, 0x6B, 0x95, 0x6C, /* 0xFC-0xFF */ | 11858 | 0x95, 0x69, 0x95, 0x6A, 0x95, 0x6B, 0x95, 0x6C, /* 0xFC-0xFF */ |
11859 | }; | 11859 | }; |
11860 | 11860 | ||
11861 | static unsigned char u2c_BE[512] = { | 11861 | static const unsigned char u2c_BE[512] = { |
11862 | 0xBA, 0xE7, 0x95, 0x6D, 0x95, 0x6E, 0xBA, 0xE8, /* 0x00-0x03 */ | 11862 | 0xBA, 0xE7, 0x95, 0x6D, 0x95, 0x6E, 0xBA, 0xE8, /* 0x00-0x03 */ |
11863 | 0x95, 0x6F, 0xBA, 0xE9, 0x95, 0x70, 0x95, 0x71, /* 0x04-0x07 */ | 11863 | 0x95, 0x6F, 0xBA, 0xE9, 0x95, 0x70, 0x95, 0x71, /* 0x04-0x07 */ |
11864 | 0x95, 0x72, 0x95, 0x73, 0x95, 0x74, 0x95, 0x75, /* 0x08-0x0B */ | 11864 | 0x95, 0x72, 0x95, 0x73, 0x95, 0x74, 0x95, 0x75, /* 0x08-0x0B */ |
@@ -11926,7 +11926,7 @@ static unsigned char u2c_BE[512] = { | |||
11926 | 0x96, 0x87, 0x96, 0x88, 0x96, 0x89, 0x96, 0x8A, /* 0xFC-0xFF */ | 11926 | 0x96, 0x87, 0x96, 0x88, 0x96, 0x89, 0x96, 0x8A, /* 0xFC-0xFF */ |
11927 | }; | 11927 | }; |
11928 | 11928 | ||
11929 | static unsigned char u2c_BF[512] = { | 11929 | static const unsigned char u2c_BF[512] = { |
11930 | 0x96, 0x8B, 0xBB, 0xBF, 0x96, 0x8C, 0x96, 0x8D, /* 0x00-0x03 */ | 11930 | 0x96, 0x8B, 0xBB, 0xBF, 0x96, 0x8C, 0x96, 0x8D, /* 0x00-0x03 */ |
11931 | 0x96, 0x8E, 0x96, 0x8F, 0x96, 0x90, 0x96, 0x91, /* 0x04-0x07 */ | 11931 | 0x96, 0x8E, 0x96, 0x8F, 0x96, 0x90, 0x96, 0x91, /* 0x04-0x07 */ |
11932 | 0xBB, 0xC0, 0xBB, 0xC1, 0x96, 0x92, 0x96, 0x93, /* 0x08-0x0B */ | 11932 | 0xBB, 0xC0, 0xBB, 0xC1, 0x96, 0x92, 0x96, 0x93, /* 0x08-0x0B */ |
@@ -11994,7 +11994,7 @@ static unsigned char u2c_BF[512] = { | |||
11994 | 0x97, 0xBC, 0x97, 0xBD, 0x97, 0xBE, 0x97, 0xBF, /* 0xFC-0xFF */ | 11994 | 0x97, 0xBC, 0x97, 0xBD, 0x97, 0xBE, 0x97, 0xBF, /* 0xFC-0xFF */ |
11995 | }; | 11995 | }; |
11996 | 11996 | ||
11997 | static unsigned char u2c_C0[512] = { | 11997 | static const unsigned char u2c_C0[512] = { |
11998 | 0x97, 0xC0, 0x97, 0xC1, 0x97, 0xC2, 0x97, 0xC3, /* 0x00-0x03 */ | 11998 | 0x97, 0xC0, 0x97, 0xC1, 0x97, 0xC2, 0x97, 0xC3, /* 0x00-0x03 */ |
11999 | 0x97, 0xC4, 0x97, 0xC5, 0x97, 0xC6, 0x97, 0xC7, /* 0x04-0x07 */ | 11999 | 0x97, 0xC4, 0x97, 0xC5, 0x97, 0xC6, 0x97, 0xC7, /* 0x04-0x07 */ |
12000 | 0x97, 0xC8, 0x97, 0xC9, 0x97, 0xCA, 0x97, 0xCB, /* 0x08-0x0B */ | 12000 | 0x97, 0xC8, 0x97, 0xC9, 0x97, 0xCA, 0x97, 0xCB, /* 0x08-0x0B */ |
@@ -12062,7 +12062,7 @@ static unsigned char u2c_C0[512] = { | |||
12062 | 0x98, 0xDC, 0x98, 0xDD, 0x98, 0xDE, 0x98, 0xDF, /* 0xFC-0xFF */ | 12062 | 0x98, 0xDC, 0x98, 0xDD, 0x98, 0xDE, 0x98, 0xDF, /* 0xFC-0xFF */ |
12063 | }; | 12063 | }; |
12064 | 12064 | ||
12065 | static unsigned char u2c_C1[512] = { | 12065 | static const unsigned char u2c_C1[512] = { |
12066 | 0xBC, 0xA8, 0x98, 0xE0, 0x98, 0xE1, 0x98, 0xE2, /* 0x00-0x03 */ | 12066 | 0xBC, 0xA8, 0x98, 0xE0, 0x98, 0xE1, 0x98, 0xE2, /* 0x00-0x03 */ |
12067 | 0xBC, 0xA9, 0x98, 0xE3, 0x98, 0xE4, 0x98, 0xE5, /* 0x04-0x07 */ | 12067 | 0xBC, 0xA9, 0x98, 0xE3, 0x98, 0xE4, 0x98, 0xE5, /* 0x04-0x07 */ |
12068 | 0xBC, 0xAA, 0x98, 0xE6, 0x98, 0xE7, 0x98, 0xE8, /* 0x08-0x0B */ | 12068 | 0xBC, 0xAA, 0x98, 0xE6, 0x98, 0xE7, 0x98, 0xE8, /* 0x08-0x0B */ |
@@ -12130,7 +12130,7 @@ static unsigned char u2c_C1[512] = { | |||
12130 | 0xBC, 0xEE, 0xBC, 0xEF, 0x99, 0xE4, 0x99, 0xE5, /* 0xFC-0xFF */ | 12130 | 0xBC, 0xEE, 0xBC, 0xEF, 0x99, 0xE4, 0x99, 0xE5, /* 0xFC-0xFF */ |
12131 | }; | 12131 | }; |
12132 | 12132 | ||
12133 | static unsigned char u2c_C2[512] = { | 12133 | static const unsigned char u2c_C2[512] = { |
12134 | 0xBC, 0xF0, 0x99, 0xE6, 0x99, 0xE7, 0x99, 0xE8, /* 0x00-0x03 */ | 12134 | 0xBC, 0xF0, 0x99, 0xE6, 0x99, 0xE7, 0x99, 0xE8, /* 0x00-0x03 */ |
12135 | 0xBC, 0xF1, 0x99, 0xE9, 0x99, 0xEA, 0x99, 0xEB, /* 0x04-0x07 */ | 12135 | 0xBC, 0xF1, 0x99, 0xE9, 0x99, 0xEA, 0x99, 0xEB, /* 0x04-0x07 */ |
12136 | 0x99, 0xEC, 0x99, 0xED, 0x99, 0xEE, 0x99, 0xEF, /* 0x08-0x0B */ | 12136 | 0x99, 0xEC, 0x99, 0xED, 0x99, 0xEE, 0x99, 0xEF, /* 0x08-0x0B */ |
@@ -12198,7 +12198,7 @@ static unsigned char u2c_C2[512] = { | |||
12198 | 0xBD, 0xD1, 0x9A, 0xF1, 0x9A, 0xF2, 0x9A, 0xF3, /* 0xFC-0xFF */ | 12198 | 0xBD, 0xD1, 0x9A, 0xF1, 0x9A, 0xF2, 0x9A, 0xF3, /* 0xFC-0xFF */ |
12199 | }; | 12199 | }; |
12200 | 12200 | ||
12201 | static unsigned char u2c_C3[512] = { | 12201 | static const unsigned char u2c_C3[512] = { |
12202 | 0xBD, 0xD2, 0x9A, 0xF4, 0x9A, 0xF5, 0x9A, 0xF6, /* 0x00-0x03 */ | 12202 | 0xBD, 0xD2, 0x9A, 0xF4, 0x9A, 0xF5, 0x9A, 0xF6, /* 0x00-0x03 */ |
12203 | 0x9A, 0xF7, 0x9A, 0xF8, 0x9A, 0xF9, 0x9A, 0xFA, /* 0x04-0x07 */ | 12203 | 0x9A, 0xF7, 0x9A, 0xF8, 0x9A, 0xF9, 0x9A, 0xFA, /* 0x04-0x07 */ |
12204 | 0xBD, 0xD3, 0xBD, 0xD4, 0x9A, 0xFB, 0x9A, 0xFC, /* 0x08-0x0B */ | 12204 | 0xBD, 0xD3, 0xBD, 0xD4, 0x9A, 0xFB, 0x9A, 0xFC, /* 0x08-0x0B */ |
@@ -12266,7 +12266,7 @@ static unsigned char u2c_C3[512] = { | |||
12266 | 0x9C, 0x58, 0x9C, 0x59, 0x9C, 0x5A, 0x9C, 0x61, /* 0xFC-0xFF */ | 12266 | 0x9C, 0x58, 0x9C, 0x59, 0x9C, 0x5A, 0x9C, 0x61, /* 0xFC-0xFF */ |
12267 | }; | 12267 | }; |
12268 | 12268 | ||
12269 | static unsigned char u2c_C4[512] = { | 12269 | static const unsigned char u2c_C4[512] = { |
12270 | 0x9C, 0x62, 0x9C, 0x63, 0x9C, 0x64, 0x9C, 0x65, /* 0x00-0x03 */ | 12270 | 0x9C, 0x62, 0x9C, 0x63, 0x9C, 0x64, 0x9C, 0x65, /* 0x00-0x03 */ |
12271 | 0x9C, 0x66, 0x9C, 0x67, 0x9C, 0x68, 0x9C, 0x69, /* 0x04-0x07 */ | 12271 | 0x9C, 0x66, 0x9C, 0x67, 0x9C, 0x68, 0x9C, 0x69, /* 0x04-0x07 */ |
12272 | 0xBD, 0xFA, 0x9C, 0x6A, 0x9C, 0x6B, 0x9C, 0x6C, /* 0x08-0x0B */ | 12272 | 0xBD, 0xFA, 0x9C, 0x6A, 0x9C, 0x6B, 0x9C, 0x6C, /* 0x08-0x0B */ |
@@ -12334,7 +12334,7 @@ static unsigned char u2c_C4[512] = { | |||
12334 | 0x9D, 0x97, 0x9D, 0x98, 0x9D, 0x99, 0xBE, 0xB7, /* 0xFC-0xFF */ | 12334 | 0x9D, 0x97, 0x9D, 0x98, 0x9D, 0x99, 0xBE, 0xB7, /* 0xFC-0xFF */ |
12335 | }; | 12335 | }; |
12336 | 12336 | ||
12337 | static unsigned char u2c_C5[512] = { | 12337 | static const unsigned char u2c_C5[512] = { |
12338 | 0xBE, 0xB8, 0xBE, 0xB9, 0x9D, 0x9A, 0x9D, 0x9B, /* 0x00-0x03 */ | 12338 | 0xBE, 0xB8, 0xBE, 0xB9, 0x9D, 0x9A, 0x9D, 0x9B, /* 0x00-0x03 */ |
12339 | 0x9D, 0x9C, 0x9D, 0x9D, 0x9D, 0x9E, 0x9D, 0x9F, /* 0x04-0x07 */ | 12339 | 0x9D, 0x9C, 0x9D, 0x9D, 0x9D, 0x9E, 0x9D, 0x9F, /* 0x04-0x07 */ |
12340 | 0x9D, 0xA0, 0x9D, 0xA1, 0x9D, 0xA2, 0x9D, 0xA3, /* 0x08-0x0B */ | 12340 | 0x9D, 0xA0, 0x9D, 0xA1, 0x9D, 0xA2, 0x9D, 0xA3, /* 0x08-0x0B */ |
@@ -12402,7 +12402,7 @@ static unsigned char u2c_C5[512] = { | |||
12402 | 0xBF, 0xB0, 0xBF, 0xB1, 0xBF, 0xB2, 0xBF, 0xB3, /* 0xFC-0xFF */ | 12402 | 0xBF, 0xB0, 0xBF, 0xB1, 0xBF, 0xB2, 0xBF, 0xB3, /* 0xFC-0xFF */ |
12403 | }; | 12403 | }; |
12404 | 12404 | ||
12405 | static unsigned char u2c_C6[512] = { | 12405 | static const unsigned char u2c_C6[512] = { |
12406 | 0xBF, 0xB4, 0xBF, 0xB5, 0x9E, 0x8E, 0x9E, 0x8F, /* 0x00-0x03 */ | 12406 | 0xBF, 0xB4, 0xBF, 0xB5, 0x9E, 0x8E, 0x9E, 0x8F, /* 0x00-0x03 */ |
12407 | 0x9E, 0x90, 0xBF, 0xB6, 0xBF, 0xB7, 0xBF, 0xB8, /* 0x04-0x07 */ | 12407 | 0x9E, 0x90, 0xBF, 0xB6, 0xBF, 0xB7, 0xBF, 0xB8, /* 0x04-0x07 */ |
12408 | 0xBF, 0xB9, 0x9E, 0x91, 0x9E, 0x92, 0x9E, 0x93, /* 0x08-0x0B */ | 12408 | 0xBF, 0xB9, 0x9E, 0x91, 0x9E, 0x92, 0x9E, 0x93, /* 0x08-0x0B */ |
@@ -12470,7 +12470,7 @@ static unsigned char u2c_C6[512] = { | |||
12470 | 0x9F, 0x88, 0xC0, 0xA6, 0x9F, 0x89, 0x9F, 0x8A, /* 0xFC-0xFF */ | 12470 | 0x9F, 0x88, 0xC0, 0xA6, 0x9F, 0x89, 0x9F, 0x8A, /* 0xFC-0xFF */ |
12471 | }; | 12471 | }; |
12472 | 12472 | ||
12473 | static unsigned char u2c_C7[512] = { | 12473 | static const unsigned char u2c_C7[512] = { |
12474 | 0x9F, 0x8B, 0x9F, 0x8C, 0x9F, 0x8D, 0x9F, 0x8E, /* 0x00-0x03 */ | 12474 | 0x9F, 0x8B, 0x9F, 0x8C, 0x9F, 0x8D, 0x9F, 0x8E, /* 0x00-0x03 */ |
12475 | 0xC0, 0xA7, 0xC0, 0xA8, 0x9F, 0x8F, 0x9F, 0x90, /* 0x04-0x07 */ | 12475 | 0xC0, 0xA7, 0xC0, 0xA8, 0x9F, 0x8F, 0x9F, 0x90, /* 0x04-0x07 */ |
12476 | 0xC0, 0xA9, 0x9F, 0x91, 0x9F, 0x92, 0x9F, 0x93, /* 0x08-0x0B */ | 12476 | 0xC0, 0xA9, 0x9F, 0x91, 0x9F, 0x92, 0x9F, 0x93, /* 0x08-0x0B */ |
@@ -12538,7 +12538,7 @@ static unsigned char u2c_C7[512] = { | |||
12538 | 0xA0, 0x82, 0xA0, 0x83, 0xA0, 0x84, 0xA0, 0x85, /* 0xFC-0xFF */ | 12538 | 0xA0, 0x82, 0xA0, 0x83, 0xA0, 0x84, 0xA0, 0x85, /* 0xFC-0xFF */ |
12539 | }; | 12539 | }; |
12540 | 12540 | ||
12541 | static unsigned char u2c_C8[512] = { | 12541 | static const unsigned char u2c_C8[512] = { |
12542 | 0xC0, 0xFA, 0xC0, 0xFB, 0xA0, 0x86, 0xA0, 0x87, /* 0x00-0x03 */ | 12542 | 0xC0, 0xFA, 0xC0, 0xFB, 0xA0, 0x86, 0xA0, 0x87, /* 0x00-0x03 */ |
12543 | 0xC0, 0xFC, 0xA0, 0x88, 0xA0, 0x89, 0xA0, 0x8A, /* 0x04-0x07 */ | 12543 | 0xC0, 0xFC, 0xA0, 0x88, 0xA0, 0x89, 0xA0, 0x8A, /* 0x04-0x07 */ |
12544 | 0xC0, 0xFD, 0xA0, 0x8B, 0xC0, 0xFE, 0xA0, 0x8C, /* 0x08-0x0B */ | 12544 | 0xC0, 0xFD, 0xA0, 0x8B, 0xC0, 0xFE, 0xA0, 0x8C, /* 0x08-0x0B */ |
@@ -12606,7 +12606,7 @@ static unsigned char u2c_C8[512] = { | |||
12606 | 0xC1, 0xD6, 0xC1, 0xD7, 0xA1, 0x96, 0xA1, 0x97, /* 0xFC-0xFF */ | 12606 | 0xC1, 0xD6, 0xC1, 0xD7, 0xA1, 0x96, 0xA1, 0x97, /* 0xFC-0xFF */ |
12607 | }; | 12607 | }; |
12608 | 12608 | ||
12609 | static unsigned char u2c_C9[512] = { | 12609 | static const unsigned char u2c_C9[512] = { |
12610 | 0xC1, 0xD8, 0xA1, 0x98, 0xA1, 0x99, 0xA1, 0x9A, /* 0x00-0x03 */ | 12610 | 0xC1, 0xD8, 0xA1, 0x98, 0xA1, 0x99, 0xA1, 0x9A, /* 0x00-0x03 */ |
12611 | 0xC1, 0xD9, 0xC1, 0xDA, 0xC1, 0xDB, 0xA1, 0x9B, /* 0x04-0x07 */ | 12611 | 0xC1, 0xD9, 0xC1, 0xDA, 0xC1, 0xDB, 0xA1, 0x9B, /* 0x04-0x07 */ |
12612 | 0xA1, 0x9C, 0xA1, 0x9D, 0xA1, 0x9E, 0xA1, 0x9F, /* 0x08-0x0B */ | 12612 | 0xA1, 0x9C, 0xA1, 0x9D, 0xA1, 0x9E, 0xA1, 0x9F, /* 0x08-0x0B */ |
@@ -12674,7 +12674,7 @@ static unsigned char u2c_C9[512] = { | |||
12674 | 0xC2, 0xB2, 0xA4, 0x54, 0xA4, 0x55, 0xA4, 0x56, /* 0xFC-0xFF */ | 12674 | 0xC2, 0xB2, 0xA4, 0x54, 0xA4, 0x55, 0xA4, 0x56, /* 0xFC-0xFF */ |
12675 | }; | 12675 | }; |
12676 | 12676 | ||
12677 | static unsigned char u2c_CA[512] = { | 12677 | static const unsigned char u2c_CA[512] = { |
12678 | 0xC2, 0xB3, 0xA4, 0x57, 0xA4, 0x58, 0xA4, 0x59, /* 0x00-0x03 */ | 12678 | 0xC2, 0xB3, 0xA4, 0x57, 0xA4, 0x58, 0xA4, 0x59, /* 0x00-0x03 */ |
12679 | 0xA4, 0x5A, 0xA4, 0x61, 0xA4, 0x62, 0xA4, 0x63, /* 0x04-0x07 */ | 12679 | 0xA4, 0x5A, 0xA4, 0x61, 0xA4, 0x62, 0xA4, 0x63, /* 0x04-0x07 */ |
12680 | 0xC2, 0xB4, 0xC2, 0xB5, 0xA4, 0x64, 0xC2, 0xB6, /* 0x08-0x0B */ | 12680 | 0xC2, 0xB4, 0xC2, 0xB5, 0xA4, 0x64, 0xC2, 0xB6, /* 0x08-0x0B */ |
@@ -12742,7 +12742,7 @@ static unsigned char u2c_CA[512] = { | |||
12742 | 0xA6, 0x93, 0xA6, 0x94, 0xA6, 0x95, 0xA6, 0x96, /* 0xFC-0xFF */ | 12742 | 0xA6, 0x93, 0xA6, 0x94, 0xA6, 0x95, 0xA6, 0x96, /* 0xFC-0xFF */ |
12743 | }; | 12743 | }; |
12744 | 12744 | ||
12745 | static unsigned char u2c_CB[512] = { | 12745 | static const unsigned char u2c_CB[512] = { |
12746 | 0xA6, 0x97, 0xA6, 0x98, 0xA6, 0x99, 0xA6, 0x9A, /* 0x00-0x03 */ | 12746 | 0xA6, 0x97, 0xA6, 0x98, 0xA6, 0x99, 0xA6, 0x9A, /* 0x00-0x03 */ |
12747 | 0xA6, 0x9B, 0xA6, 0x9C, 0xA6, 0x9D, 0xA6, 0x9E, /* 0x04-0x07 */ | 12747 | 0xA6, 0x9B, 0xA6, 0x9C, 0xA6, 0x9D, 0xA6, 0x9E, /* 0x04-0x07 */ |
12748 | 0xC2, 0xD7, 0xA6, 0x9F, 0xA6, 0xA0, 0xA7, 0x41, /* 0x08-0x0B */ | 12748 | 0xC2, 0xD7, 0xA6, 0x9F, 0xA6, 0xA0, 0xA7, 0x41, /* 0x08-0x0B */ |
@@ -12810,7 +12810,7 @@ static unsigned char u2c_CB[512] = { | |||
12810 | 0xA9, 0x7A, 0xA9, 0x81, 0xA9, 0x82, 0xA9, 0x83, /* 0xFC-0xFF */ | 12810 | 0xA9, 0x7A, 0xA9, 0x81, 0xA9, 0x82, 0xA9, 0x83, /* 0xFC-0xFF */ |
12811 | }; | 12811 | }; |
12812 | 12812 | ||
12813 | static unsigned char u2c_CC[512] = { | 12813 | static const unsigned char u2c_CC[512] = { |
12814 | 0xA9, 0x84, 0xA9, 0x85, 0xA9, 0x86, 0xA9, 0x87, /* 0x00-0x03 */ | 12814 | 0xA9, 0x84, 0xA9, 0x85, 0xA9, 0x86, 0xA9, 0x87, /* 0x00-0x03 */ |
12815 | 0xA9, 0x88, 0xA9, 0x89, 0xA9, 0x8A, 0xA9, 0x8B, /* 0x04-0x07 */ | 12815 | 0xA9, 0x88, 0xA9, 0x89, 0xA9, 0x8A, 0xA9, 0x8B, /* 0x04-0x07 */ |
12816 | 0xA9, 0x8C, 0xA9, 0x8D, 0xA9, 0x8E, 0xA9, 0x8F, /* 0x08-0x0B */ | 12816 | 0xA9, 0x8C, 0xA9, 0x8D, 0xA9, 0x8E, 0xA9, 0x8F, /* 0x08-0x0B */ |
@@ -12878,7 +12878,7 @@ static unsigned char u2c_CC[512] = { | |||
12878 | 0xAB, 0x9F, 0xAB, 0xA0, 0xAC, 0x41, 0xAC, 0x42, /* 0xFC-0xFF */ | 12878 | 0xAB, 0x9F, 0xAB, 0xA0, 0xAC, 0x41, 0xAC, 0x42, /* 0xFC-0xFF */ |
12879 | }; | 12879 | }; |
12880 | 12880 | ||
12881 | static unsigned char u2c_CD[512] = { | 12881 | static const unsigned char u2c_CD[512] = { |
12882 | 0xAC, 0x43, 0xC3, 0xC9, 0xAC, 0x44, 0xAC, 0x45, /* 0x00-0x03 */ | 12882 | 0xAC, 0x43, 0xC3, 0xC9, 0xAC, 0x44, 0xAC, 0x45, /* 0x00-0x03 */ |
12883 | 0xAC, 0x46, 0xAC, 0x47, 0xAC, 0x48, 0xAC, 0x49, /* 0x04-0x07 */ | 12883 | 0xAC, 0x46, 0xAC, 0x47, 0xAC, 0x48, 0xAC, 0x49, /* 0x04-0x07 */ |
12884 | 0xC3, 0xCA, 0xC3, 0xCB, 0xAC, 0x4A, 0xAC, 0x4B, /* 0x08-0x0B */ | 12884 | 0xC3, 0xCA, 0xC3, 0xCB, 0xAC, 0x4A, 0xAC, 0x4B, /* 0x08-0x0B */ |
@@ -12946,7 +12946,7 @@ static unsigned char u2c_CD[512] = { | |||
12946 | 0xAE, 0x75, 0xC3, 0xF1, 0xAE, 0x76, 0xAE, 0x77, /* 0xFC-0xFF */ | 12946 | 0xAE, 0x75, 0xC3, 0xF1, 0xAE, 0x76, 0xAE, 0x77, /* 0xFC-0xFF */ |
12947 | }; | 12947 | }; |
12948 | 12948 | ||
12949 | static unsigned char u2c_CE[512] = { | 12949 | static const unsigned char u2c_CE[512] = { |
12950 | 0xAE, 0x78, 0xAE, 0x79, 0xAE, 0x7A, 0xAE, 0x81, /* 0x00-0x03 */ | 12950 | 0xAE, 0x78, 0xAE, 0x79, 0xAE, 0x7A, 0xAE, 0x81, /* 0x00-0x03 */ |
12951 | 0xC3, 0xF2, 0xAE, 0x82, 0xAE, 0x83, 0xAE, 0x84, /* 0x04-0x07 */ | 12951 | 0xC3, 0xF2, 0xAE, 0x82, 0xAE, 0x83, 0xAE, 0x84, /* 0x04-0x07 */ |
12952 | 0xC3, 0xF3, 0xAE, 0x85, 0xAE, 0x86, 0xAE, 0x87, /* 0x08-0x0B */ | 12952 | 0xC3, 0xF3, 0xAE, 0x85, 0xAE, 0x86, 0xAE, 0x87, /* 0x08-0x0B */ |
@@ -13014,7 +13014,7 @@ static unsigned char u2c_CE[512] = { | |||
13014 | 0xB0, 0x9D, 0xB0, 0x9E, 0xB0, 0x9F, 0xB0, 0xA0, /* 0xFC-0xFF */ | 13014 | 0xB0, 0x9D, 0xB0, 0x9E, 0xB0, 0x9F, 0xB0, 0xA0, /* 0xFC-0xFF */ |
13015 | }; | 13015 | }; |
13016 | 13016 | ||
13017 | static unsigned char u2c_CF[512] = { | 13017 | static const unsigned char u2c_CF[512] = { |
13018 | 0xC4, 0xC9, 0xC4, 0xCA, 0xB1, 0x41, 0xB1, 0x42, /* 0x00-0x03 */ | 13018 | 0xC4, 0xC9, 0xC4, 0xCA, 0xB1, 0x41, 0xB1, 0x42, /* 0x00-0x03 */ |
13019 | 0xC4, 0xCB, 0xB1, 0x43, 0xB1, 0x44, 0xB1, 0x45, /* 0x04-0x07 */ | 13019 | 0xC4, 0xCB, 0xB1, 0x43, 0xB1, 0x44, 0xB1, 0x45, /* 0x04-0x07 */ |
13020 | 0xC4, 0xCC, 0xB1, 0x46, 0xB1, 0x47, 0xB1, 0x48, /* 0x08-0x0B */ | 13020 | 0xC4, 0xCC, 0xB1, 0x46, 0xB1, 0x47, 0xB1, 0x48, /* 0x08-0x0B */ |
@@ -13082,7 +13082,7 @@ static unsigned char u2c_CF[512] = { | |||
13082 | 0xC4, 0xF5, 0xB3, 0x6F, 0xB3, 0x70, 0xB3, 0x71, /* 0xFC-0xFF */ | 13082 | 0xC4, 0xF5, 0xB3, 0x6F, 0xB3, 0x70, 0xB3, 0x71, /* 0xFC-0xFF */ |
13083 | }; | 13083 | }; |
13084 | 13084 | ||
13085 | static unsigned char u2c_D0[512] = { | 13085 | static const unsigned char u2c_D0[512] = { |
13086 | 0xC4, 0xF6, 0xB3, 0x72, 0xB3, 0x73, 0xB3, 0x74, /* 0x00-0x03 */ | 13086 | 0xC4, 0xF6, 0xB3, 0x72, 0xB3, 0x73, 0xB3, 0x74, /* 0x00-0x03 */ |
13087 | 0xC4, 0xF7, 0xB3, 0x75, 0xB3, 0x76, 0xB3, 0x77, /* 0x04-0x07 */ | 13087 | 0xC4, 0xF7, 0xB3, 0x75, 0xB3, 0x76, 0xB3, 0x77, /* 0x04-0x07 */ |
13088 | 0xB3, 0x78, 0xB3, 0x79, 0xB3, 0x7A, 0xB3, 0x81, /* 0x08-0x0B */ | 13088 | 0xB3, 0x78, 0xB3, 0x79, 0xB3, 0x7A, 0xB3, 0x81, /* 0x08-0x0B */ |
@@ -13150,7 +13150,7 @@ static unsigned char u2c_D0[512] = { | |||
13150 | 0xB5, 0x98, 0xB5, 0x99, 0xB5, 0x9A, 0xB5, 0x9B, /* 0xFC-0xFF */ | 13150 | 0xB5, 0x98, 0xB5, 0x99, 0xB5, 0x9A, 0xB5, 0x9B, /* 0xFC-0xFF */ |
13151 | }; | 13151 | }; |
13152 | 13152 | ||
13153 | static unsigned char u2c_D1[512] = { | 13153 | static const unsigned char u2c_D1[512] = { |
13154 | 0xB5, 0x9C, 0xB5, 0x9D, 0xB5, 0x9E, 0xB5, 0x9F, /* 0x00-0x03 */ | 13154 | 0xB5, 0x9C, 0xB5, 0x9D, 0xB5, 0x9E, 0xB5, 0x9F, /* 0x00-0x03 */ |
13155 | 0xB5, 0xA0, 0xB6, 0x41, 0xB6, 0x42, 0xB6, 0x43, /* 0x04-0x07 */ | 13155 | 0xB5, 0xA0, 0xB6, 0x41, 0xB6, 0x42, 0xB6, 0x43, /* 0x04-0x07 */ |
13156 | 0xB6, 0x44, 0xB6, 0x45, 0xB6, 0x46, 0xB6, 0x47, /* 0x08-0x0B */ | 13156 | 0xB6, 0x44, 0xB6, 0x45, 0xB6, 0x46, 0xB6, 0x47, /* 0x08-0x0B */ |
@@ -13218,7 +13218,7 @@ static unsigned char u2c_D1[512] = { | |||
13218 | 0xB8, 0x70, 0xB8, 0x71, 0xB8, 0x72, 0xB8, 0x73, /* 0xFC-0xFF */ | 13218 | 0xB8, 0x70, 0xB8, 0x71, 0xB8, 0x72, 0xB8, 0x73, /* 0xFC-0xFF */ |
13219 | }; | 13219 | }; |
13220 | 13220 | ||
13221 | static unsigned char u2c_D2[512] = { | 13221 | static const unsigned char u2c_D2[512] = { |
13222 | 0xB8, 0x74, 0xB8, 0x75, 0xB8, 0x76, 0xB8, 0x77, /* 0x00-0x03 */ | 13222 | 0xB8, 0x74, 0xB8, 0x75, 0xB8, 0x76, 0xB8, 0x77, /* 0x00-0x03 */ |
13223 | 0xB8, 0x78, 0xB8, 0x79, 0xB8, 0x7A, 0xC5, 0xF2, /* 0x04-0x07 */ | 13223 | 0xB8, 0x78, 0xB8, 0x79, 0xB8, 0x7A, 0xC5, 0xF2, /* 0x04-0x07 */ |
13224 | 0xB8, 0x81, 0xC5, 0xF3, 0xB8, 0x82, 0xB8, 0x83, /* 0x08-0x0B */ | 13224 | 0xB8, 0x81, 0xC5, 0xF3, 0xB8, 0x82, 0xB8, 0x83, /* 0x08-0x0B */ |
@@ -13286,7 +13286,7 @@ static unsigned char u2c_D2[512] = { | |||
13286 | 0xBB, 0x42, 0xBB, 0x43, 0xBB, 0x44, 0xBB, 0x45, /* 0xFC-0xFF */ | 13286 | 0xBB, 0x42, 0xBB, 0x43, 0xBB, 0x44, 0xBB, 0x45, /* 0xFC-0xFF */ |
13287 | }; | 13287 | }; |
13288 | 13288 | ||
13289 | static unsigned char u2c_D3[512] = { | 13289 | static const unsigned char u2c_D3[512] = { |
13290 | 0xC6, 0xC0, 0xC6, 0xC1, 0xBB, 0x46, 0xC6, 0xC2, /* 0x00-0x03 */ | 13290 | 0xC6, 0xC0, 0xC6, 0xC1, 0xBB, 0x46, 0xC6, 0xC2, /* 0x00-0x03 */ |
13291 | 0xBB, 0x47, 0xC6, 0xC3, 0xBB, 0x48, 0xBB, 0x49, /* 0x04-0x07 */ | 13291 | 0xBB, 0x47, 0xC6, 0xC3, 0xBB, 0x48, 0xBB, 0x49, /* 0x04-0x07 */ |
13292 | 0xBB, 0x4A, 0xBB, 0x4B, 0xBB, 0x4C, 0xBB, 0x4D, /* 0x08-0x0B */ | 13292 | 0xBB, 0x4A, 0xBB, 0x4B, 0xBB, 0x4C, 0xBB, 0x4D, /* 0x08-0x0B */ |
@@ -13354,7 +13354,7 @@ static unsigned char u2c_D3[512] = { | |||
13354 | 0xC6, 0xFB, 0xC6, 0xFC, 0xBD, 0x65, 0xC6, 0xFD, /* 0xFC-0xFF */ | 13354 | 0xC6, 0xFB, 0xC6, 0xFC, 0xBD, 0x65, 0xC6, 0xFD, /* 0xFC-0xFF */ |
13355 | }; | 13355 | }; |
13356 | 13356 | ||
13357 | static unsigned char u2c_D4[512] = { | 13357 | static const unsigned char u2c_D4[512] = { |
13358 | 0xBD, 0x66, 0xC6, 0xFE, 0xBD, 0x67, 0xBD, 0x68, /* 0x00-0x03 */ | 13358 | 0xBD, 0x66, 0xC6, 0xFE, 0xBD, 0x67, 0xBD, 0x68, /* 0x00-0x03 */ |
13359 | 0xBD, 0x69, 0xBD, 0x6A, 0xBD, 0x6B, 0xBD, 0x6C, /* 0x04-0x07 */ | 13359 | 0xBD, 0x69, 0xBD, 0x6A, 0xBD, 0x6B, 0xBD, 0x6C, /* 0x04-0x07 */ |
13360 | 0xC7, 0xA1, 0xBD, 0x6D, 0xBD, 0x6E, 0xBD, 0x6F, /* 0x08-0x0B */ | 13360 | 0xC7, 0xA1, 0xBD, 0x6D, 0xBD, 0x6E, 0xBD, 0x6F, /* 0x08-0x0B */ |
@@ -13422,7 +13422,7 @@ static unsigned char u2c_D4[512] = { | |||
13422 | 0xBF, 0xA0, 0xC7, 0xC0, 0xC0, 0x41, 0xC0, 0x42, /* 0xFC-0xFF */ | 13422 | 0xBF, 0xA0, 0xC7, 0xC0, 0xC0, 0x41, 0xC0, 0x42, /* 0xFC-0xFF */ |
13423 | }; | 13423 | }; |
13424 | 13424 | ||
13425 | static unsigned char u2c_D5[512] = { | 13425 | static const unsigned char u2c_D5[512] = { |
13426 | 0xC0, 0x43, 0xC0, 0x44, 0xC0, 0x45, 0xC0, 0x46, /* 0x00-0x03 */ | 13426 | 0xC0, 0x43, 0xC0, 0x44, 0xC0, 0x45, 0xC0, 0x46, /* 0x00-0x03 */ |
13427 | 0xC7, 0xC1, 0xC0, 0x47, 0xC0, 0x48, 0xC0, 0x49, /* 0x04-0x07 */ | 13427 | 0xC7, 0xC1, 0xC0, 0x47, 0xC0, 0x48, 0xC0, 0x49, /* 0x04-0x07 */ |
13428 | 0xC7, 0xC2, 0xC0, 0x4A, 0xC0, 0x4B, 0xC0, 0x4C, /* 0x08-0x0B */ | 13428 | 0xC7, 0xC2, 0xC0, 0x4A, 0xC0, 0x4B, 0xC0, 0x4C, /* 0x08-0x0B */ |
@@ -13490,7 +13490,7 @@ static unsigned char u2c_D5[512] = { | |||
13490 | 0xC2, 0x6A, 0xC2, 0x6B, 0xC2, 0x6C, 0xC2, 0x6D, /* 0xFC-0xFF */ | 13490 | 0xC2, 0x6A, 0xC2, 0x6B, 0xC2, 0x6C, 0xC2, 0x6D, /* 0xFC-0xFF */ |
13491 | }; | 13491 | }; |
13492 | 13492 | ||
13493 | static unsigned char u2c_D6[512] = { | 13493 | static const unsigned char u2c_D6[512] = { |
13494 | 0xC7, 0xF4, 0xC7, 0xF5, 0xC2, 0x6E, 0xC2, 0x6F, /* 0x00-0x03 */ | 13494 | 0xC7, 0xF4, 0xC7, 0xF5, 0xC2, 0x6E, 0xC2, 0x6F, /* 0x00-0x03 */ |
13495 | 0xC7, 0xF6, 0xC2, 0x70, 0xC2, 0x71, 0xC2, 0x72, /* 0x04-0x07 */ | 13495 | 0xC7, 0xF6, 0xC2, 0x70, 0xC2, 0x71, 0xC2, 0x72, /* 0x04-0x07 */ |
13496 | 0xC7, 0xF7, 0xC2, 0x73, 0xC2, 0x74, 0xC2, 0x75, /* 0x08-0x0B */ | 13496 | 0xC7, 0xF7, 0xC2, 0x73, 0xC2, 0x74, 0xC2, 0x75, /* 0x08-0x0B */ |
@@ -13558,7 +13558,7 @@ static unsigned char u2c_D6[512] = { | |||
13558 | 0xC8, 0xD1, 0xC8, 0xD2, 0xC4, 0x8D, 0xC4, 0x8E, /* 0xFC-0xFF */ | 13558 | 0xC8, 0xD1, 0xC8, 0xD2, 0xC4, 0x8D, 0xC4, 0x8E, /* 0xFC-0xFF */ |
13559 | }; | 13559 | }; |
13560 | 13560 | ||
13561 | static unsigned char u2c_D7[512] = { | 13561 | static const unsigned char u2c_D7[512] = { |
13562 | 0xC8, 0xD3, 0xC4, 0x8F, 0xC4, 0x90, 0xC4, 0x91, /* 0x00-0x03 */ | 13562 | 0xC8, 0xD3, 0xC4, 0x8F, 0xC4, 0x90, 0xC4, 0x91, /* 0x00-0x03 */ |
13563 | 0xC8, 0xD4, 0xC4, 0x92, 0xC4, 0x93, 0xC4, 0x94, /* 0x04-0x07 */ | 13563 | 0xC8, 0xD4, 0xC4, 0x92, 0xC4, 0x93, 0xC4, 0x94, /* 0x04-0x07 */ |
13564 | 0xC4, 0x95, 0xC4, 0x96, 0xC4, 0x97, 0xC4, 0x98, /* 0x08-0x0B */ | 13564 | 0xC4, 0x95, 0xC4, 0x96, 0xC4, 0x97, 0xC4, 0x98, /* 0x08-0x0B */ |
@@ -13603,11 +13603,11 @@ static unsigned char u2c_D7[512] = { | |||
13603 | 0xC6, 0x4F, 0xC6, 0x50, 0xC6, 0x51, 0xC6, 0x52, /* 0xA0-0xA3 */ | 13603 | 0xC6, 0x4F, 0xC6, 0x50, 0xC6, 0x51, 0xC6, 0x52, /* 0xA0-0xA3 */ |
13604 | }; | 13604 | }; |
13605 | 13605 | ||
13606 | static unsigned char u2c_DC[512] = { | 13606 | static const unsigned char u2c_DC[512] = { |
13607 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x00-0x03 */ | 13607 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x00-0x03 */ |
13608 | }; | 13608 | }; |
13609 | 13609 | ||
13610 | static unsigned char u2c_F9[512] = { | 13610 | static const unsigned char u2c_F9[512] = { |
13611 | 0xCB, 0xD0, 0xCB, 0xD6, 0xCB, 0xE7, 0xCD, 0xCF, /* 0x00-0x03 */ | 13611 | 0xCB, 0xD0, 0xCB, 0xD6, 0xCB, 0xE7, 0xCD, 0xCF, /* 0x00-0x03 */ |
13612 | 0xCD, 0xE8, 0xCE, 0xAD, 0xCF, 0xFB, 0xD0, 0xA2, /* 0x04-0x07 */ | 13612 | 0xCD, 0xE8, 0xCE, 0xAD, 0xCF, 0xFB, 0xD0, 0xA2, /* 0x04-0x07 */ |
13613 | 0xD0, 0xB8, 0xD0, 0xD0, 0xD0, 0xDD, 0xD1, 0xD4, /* 0x08-0x0B */ | 13613 | 0xD0, 0xB8, 0xD0, 0xD0, 0xD0, 0xDD, 0xD1, 0xD4, /* 0x08-0x0B */ |
@@ -13675,7 +13675,7 @@ static unsigned char u2c_F9[512] = { | |||
13675 | 0xF2, 0xBD, 0xF2, 0xFA, 0xF3, 0xB1, 0xF4, 0xA7, /* 0xFC-0xFF */ | 13675 | 0xF2, 0xBD, 0xF2, 0xFA, 0xF3, 0xB1, 0xF4, 0xA7, /* 0xFC-0xFF */ |
13676 | }; | 13676 | }; |
13677 | 13677 | ||
13678 | static unsigned char u2c_FA[512] = { | 13678 | static const unsigned char u2c_FA[512] = { |
13679 | 0xF4, 0xEE, 0xF6, 0xF4, 0xF6, 0xF6, 0xF7, 0xB8, /* 0x00-0x03 */ | 13679 | 0xF4, 0xEE, 0xF6, 0xF4, 0xF6, 0xF6, 0xF7, 0xB8, /* 0x00-0x03 */ |
13680 | 0xF7, 0xC8, 0xF7, 0xD3, 0xF8, 0xDB, 0xF8, 0xF0, /* 0x04-0x07 */ | 13680 | 0xF7, 0xC8, 0xF7, 0xD3, 0xF8, 0xDB, 0xF8, 0xF0, /* 0x04-0x07 */ |
13681 | 0xFA, 0xA1, 0xFA, 0xA2, 0xFA, 0xE6, 0xFC, 0xA9, /* 0x08-0x0B */ | 13681 | 0xFA, 0xA1, 0xFA, 0xA2, 0xFA, 0xE6, 0xFC, 0xA9, /* 0x08-0x0B */ |
@@ -13690,7 +13690,7 @@ static unsigned char u2c_FA[512] = { | |||
13690 | 0xCE, 0xBD, 0xF9, 0xCD, 0x00, 0x00, 0x00, 0x00, /* 0x2C-0x2F */ | 13690 | 0xCE, 0xBD, 0xF9, 0xCD, 0x00, 0x00, 0x00, 0x00, /* 0x2C-0x2F */ |
13691 | }; | 13691 | }; |
13692 | 13692 | ||
13693 | static unsigned char u2c_FF[512] = { | 13693 | static const unsigned char u2c_FF[512] = { |
13694 | 0x00, 0x00, 0xA3, 0xA1, 0xA3, 0xA2, 0xA3, 0xA3, /* 0x00-0x03 */ | 13694 | 0x00, 0x00, 0xA3, 0xA1, 0xA3, 0xA2, 0xA3, 0xA3, /* 0x00-0x03 */ |
13695 | 0xA3, 0xA4, 0xA3, 0xA5, 0xA3, 0xA6, 0xA3, 0xA7, /* 0x04-0x07 */ | 13695 | 0xA3, 0xA4, 0xA3, 0xA5, 0xA3, 0xA6, 0xA3, 0xA7, /* 0x04-0x07 */ |
13696 | 0xA3, 0xA8, 0xA3, 0xA9, 0xA3, 0xAA, 0xA3, 0xAB, /* 0x08-0x0B */ | 13696 | 0xA3, 0xA8, 0xA3, 0xA9, 0xA3, 0xAA, 0xA3, 0xAB, /* 0x08-0x0B */ |
@@ -13752,7 +13752,7 @@ static unsigned char u2c_FF[512] = { | |||
13752 | 0x00, 0x00, 0xA1, 0xCD, 0xA3, 0xDC, 0x00, 0x00, /* 0xE4-0xE7 */ | 13752 | 0x00, 0x00, 0xA1, 0xCD, 0xA3, 0xDC, 0x00, 0x00, /* 0xE4-0xE7 */ |
13753 | }; | 13753 | }; |
13754 | 13754 | ||
13755 | static unsigned char *page_uni2charset[256] = { | 13755 | static const unsigned char *const page_uni2charset[256] = { |
13756 | NULL, u2c_01, u2c_02, u2c_03, u2c_04, NULL, NULL, NULL, | 13756 | NULL, u2c_01, u2c_02, u2c_03, u2c_04, NULL, NULL, NULL, |
13757 | NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, | 13757 | NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, |
13758 | NULL, u2c_11, NULL, NULL, NULL, NULL, NULL, NULL, | 13758 | NULL, u2c_11, NULL, NULL, NULL, NULL, NULL, NULL, |
@@ -13786,7 +13786,7 @@ static unsigned char *page_uni2charset[256] = { | |||
13786 | NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, | 13786 | NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, |
13787 | NULL, u2c_F9, u2c_FA, NULL, NULL, NULL, NULL, u2c_FF, }; | 13787 | NULL, u2c_F9, u2c_FA, NULL, NULL, NULL, NULL, u2c_FF, }; |
13788 | 13788 | ||
13789 | static unsigned char charset2lower[256] = { | 13789 | static const unsigned char charset2lower[256] = { |
13790 | 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, /* 0x00-0x07 */ | 13790 | 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, /* 0x00-0x07 */ |
13791 | 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, /* 0x08-0x0f */ | 13791 | 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, /* 0x08-0x0f */ |
13792 | 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17, /* 0x10-0x17 */ | 13792 | 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17, /* 0x10-0x17 */ |
@@ -13822,7 +13822,7 @@ static unsigned char charset2lower[256] = { | |||
13822 | 0xf8, 0xf9, 0xfa, 0xfb, 0xfc, 0xfd, 0xfe, 0xff, /* 0xf8-0xff */ | 13822 | 0xf8, 0xf9, 0xfa, 0xfb, 0xfc, 0xfd, 0xfe, 0xff, /* 0xf8-0xff */ |
13823 | }; | 13823 | }; |
13824 | 13824 | ||
13825 | static unsigned char charset2upper[256] = { | 13825 | static const unsigned char charset2upper[256] = { |
13826 | 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, /* 0x00-0x07 */ | 13826 | 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, /* 0x00-0x07 */ |
13827 | 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, /* 0x08-0x0f */ | 13827 | 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, /* 0x08-0x0f */ |
13828 | 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17, /* 0x10-0x17 */ | 13828 | 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17, /* 0x10-0x17 */ |
@@ -13861,7 +13861,7 @@ static unsigned char charset2upper[256] = { | |||
13861 | static int uni2char(const wchar_t uni, | 13861 | static int uni2char(const wchar_t uni, |
13862 | unsigned char *out, int boundlen) | 13862 | unsigned char *out, int boundlen) |
13863 | { | 13863 | { |
13864 | unsigned char *uni2charset; | 13864 | const unsigned char *uni2charset; |
13865 | unsigned char cl = uni&0xFF; | 13865 | unsigned char cl = uni&0xFF; |
13866 | unsigned char ch = (uni>>8)&0xFF; | 13866 | unsigned char ch = (uni>>8)&0xFF; |
13867 | int n; | 13867 | int n; |
@@ -13893,7 +13893,7 @@ static int char2uni(const unsigned char *rawstring, int boundlen, | |||
13893 | wchar_t *uni) | 13893 | wchar_t *uni) |
13894 | { | 13894 | { |
13895 | unsigned char ch, cl; | 13895 | unsigned char ch, cl; |
13896 | wchar_t *charset2uni; | 13896 | const wchar_t *charset2uni; |
13897 | int n; | 13897 | int n; |
13898 | 13898 | ||
13899 | if (boundlen <= 0) | 13899 | if (boundlen <= 0) |
diff --git a/fs/nls/nls_cp950.c b/fs/nls/nls_cp950.c index 5665945fb88c..ef2536829aa5 100644 --- a/fs/nls/nls_cp950.c +++ b/fs/nls/nls_cp950.c | |||
@@ -13,7 +13,7 @@ | |||
13 | #include <linux/nls.h> | 13 | #include <linux/nls.h> |
14 | #include <linux/errno.h> | 14 | #include <linux/errno.h> |
15 | 15 | ||
16 | static wchar_t c2u_A1[256] = { | 16 | static const wchar_t c2u_A1[256] = { |
17 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x00-0x07 */ | 17 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x00-0x07 */ |
18 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x08-0x0F */ | 18 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x08-0x0F */ |
19 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x10-0x17 */ | 19 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x10-0x17 */ |
@@ -49,7 +49,7 @@ static wchar_t c2u_A1[256] = { | |||
49 | 0x2196,0x2197,0x2199,0x2198,0x2225,0x2223,0xFF0F,0x0000,/* 0xF8-0xFF */ | 49 | 0x2196,0x2197,0x2199,0x2198,0x2225,0x2223,0xFF0F,0x0000,/* 0xF8-0xFF */ |
50 | }; | 50 | }; |
51 | 51 | ||
52 | static wchar_t c2u_A2[256] = { | 52 | static const wchar_t c2u_A2[256] = { |
53 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x00-0x07 */ | 53 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x00-0x07 */ |
54 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x08-0x0F */ | 54 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x08-0x0F */ |
55 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x10-0x17 */ | 55 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x10-0x17 */ |
@@ -85,7 +85,7 @@ static wchar_t c2u_A2[256] = { | |||
85 | 0xFF50,0xFF51,0xFF52,0xFF53,0xFF54,0xFF55,0xFF56,0x0000,/* 0xF8-0xFF */ | 85 | 0xFF50,0xFF51,0xFF52,0xFF53,0xFF54,0xFF55,0xFF56,0x0000,/* 0xF8-0xFF */ |
86 | }; | 86 | }; |
87 | 87 | ||
88 | static wchar_t c2u_A3[256] = { | 88 | static const wchar_t c2u_A3[256] = { |
89 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x00-0x07 */ | 89 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x00-0x07 */ |
90 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x08-0x0F */ | 90 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x08-0x0F */ |
91 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x10-0x17 */ | 91 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x10-0x17 */ |
@@ -118,7 +118,7 @@ static wchar_t c2u_A3[256] = { | |||
118 | 0x0000,0x20AC,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0xE0-0xE7 */ | 118 | 0x0000,0x20AC,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0xE0-0xE7 */ |
119 | }; | 119 | }; |
120 | 120 | ||
121 | static wchar_t c2u_A4[256] = { | 121 | static const wchar_t c2u_A4[256] = { |
122 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x00-0x07 */ | 122 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x00-0x07 */ |
123 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x08-0x0F */ | 123 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x08-0x0F */ |
124 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x10-0x17 */ | 124 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x10-0x17 */ |
@@ -154,7 +154,7 @@ static wchar_t c2u_A4[256] = { | |||
154 | 0x723B,0x7247,0x7259,0x725B,0x72AC,0x738B,0x4E19,0x0000,/* 0xF8-0xFF */ | 154 | 0x723B,0x7247,0x7259,0x725B,0x72AC,0x738B,0x4E19,0x0000,/* 0xF8-0xFF */ |
155 | }; | 155 | }; |
156 | 156 | ||
157 | static wchar_t c2u_A5[256] = { | 157 | static const wchar_t c2u_A5[256] = { |
158 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x00-0x07 */ | 158 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x00-0x07 */ |
159 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x08-0x0F */ | 159 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x08-0x0F */ |
160 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x10-0x17 */ | 160 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x10-0x17 */ |
@@ -190,7 +190,7 @@ static wchar_t c2u_A5[256] = { | |||
190 | 0x4F01,0x4F0B,0x5149,0x5147,0x5146,0x5148,0x5168,0x0000,/* 0xF8-0xFF */ | 190 | 0x4F01,0x4F0B,0x5149,0x5147,0x5146,0x5148,0x5168,0x0000,/* 0xF8-0xFF */ |
191 | }; | 191 | }; |
192 | 192 | ||
193 | static wchar_t c2u_A6[256] = { | 193 | static const wchar_t c2u_A6[256] = { |
194 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x00-0x07 */ | 194 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x00-0x07 */ |
195 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x08-0x0F */ | 195 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x08-0x0F */ |
196 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x10-0x17 */ | 196 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x10-0x17 */ |
@@ -226,7 +226,7 @@ static wchar_t c2u_A6[256] = { | |||
226 | 0x4F3A,0x4F38,0x4F43,0x4F54,0x4F3C,0x4F46,0x4F63,0x0000,/* 0xF8-0xFF */ | 226 | 0x4F3A,0x4F38,0x4F43,0x4F54,0x4F3C,0x4F46,0x4F63,0x0000,/* 0xF8-0xFF */ |
227 | }; | 227 | }; |
228 | 228 | ||
229 | static wchar_t c2u_A7[256] = { | 229 | static const wchar_t c2u_A7[256] = { |
230 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x00-0x07 */ | 230 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x00-0x07 */ |
231 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x08-0x0F */ | 231 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x08-0x0F */ |
232 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x10-0x17 */ | 232 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x10-0x17 */ |
@@ -262,7 +262,7 @@ static wchar_t c2u_A7[256] = { | |||
262 | 0x6751,0x675C,0x6756,0x675E,0x6749,0x6746,0x6760,0x0000,/* 0xF8-0xFF */ | 262 | 0x6751,0x675C,0x6756,0x675E,0x6749,0x6746,0x6760,0x0000,/* 0xF8-0xFF */ |
263 | }; | 263 | }; |
264 | 264 | ||
265 | static wchar_t c2u_A8[256] = { | 265 | static const wchar_t c2u_A8[256] = { |
266 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x00-0x07 */ | 266 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x00-0x07 */ |
267 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x08-0x0F */ | 267 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x08-0x0F */ |
268 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x10-0x17 */ | 268 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x10-0x17 */ |
@@ -298,7 +298,7 @@ static wchar_t c2u_A8[256] = { | |||
298 | 0x5378,0x5379,0x53D6,0x53D4,0x53D7,0x5473,0x5475,0x0000,/* 0xF8-0xFF */ | 298 | 0x5378,0x5379,0x53D6,0x53D4,0x53D7,0x5473,0x5475,0x0000,/* 0xF8-0xFF */ |
299 | }; | 299 | }; |
300 | 300 | ||
301 | static wchar_t c2u_A9[256] = { | 301 | static const wchar_t c2u_A9[256] = { |
302 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x00-0x07 */ | 302 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x00-0x07 */ |
303 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x08-0x0F */ | 303 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x08-0x0F */ |
304 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x10-0x17 */ | 304 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x10-0x17 */ |
@@ -334,7 +334,7 @@ static wchar_t c2u_A9[256] = { | |||
334 | 0x6606,0x6602,0x660E,0x6600,0x660F,0x6615,0x660A,0x0000,/* 0xF8-0xFF */ | 334 | 0x6606,0x6602,0x660E,0x6600,0x660F,0x6615,0x660A,0x0000,/* 0xF8-0xFF */ |
335 | }; | 335 | }; |
336 | 336 | ||
337 | static wchar_t c2u_AA[256] = { | 337 | static const wchar_t c2u_AA[256] = { |
338 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x00-0x07 */ | 338 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x00-0x07 */ |
339 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x08-0x0F */ | 339 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x08-0x0F */ |
340 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x10-0x17 */ | 340 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x10-0x17 */ |
@@ -370,7 +370,7 @@ static wchar_t c2u_AA[256] = { | |||
370 | 0x9577,0x9580,0x961C,0x9640,0x963F,0x963B,0x9644,0x0000,/* 0xF8-0xFF */ | 370 | 0x9577,0x9580,0x961C,0x9640,0x963F,0x963B,0x9644,0x0000,/* 0xF8-0xFF */ |
371 | }; | 371 | }; |
372 | 372 | ||
373 | static wchar_t c2u_AB[256] = { | 373 | static const wchar_t c2u_AB[256] = { |
374 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x00-0x07 */ | 374 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x00-0x07 */ |
375 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x08-0x0F */ | 375 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x08-0x0F */ |
376 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x10-0x17 */ | 376 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x10-0x17 */ |
@@ -406,7 +406,7 @@ static wchar_t c2u_AB[256] = { | |||
406 | 0x62ED,0x6301,0x62EE,0x62FD,0x6307,0x62F1,0x62F7,0x0000,/* 0xF8-0xFF */ | 406 | 0x62ED,0x6301,0x62EE,0x62FD,0x6307,0x62F1,0x62F7,0x0000,/* 0xF8-0xFF */ |
407 | }; | 407 | }; |
408 | 408 | ||
409 | static wchar_t c2u_AC[256] = { | 409 | static const wchar_t c2u_AC[256] = { |
410 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x00-0x07 */ | 410 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x00-0x07 */ |
411 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x08-0x0F */ | 411 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x08-0x0F */ |
412 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x10-0x17 */ | 412 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x10-0x17 */ |
@@ -442,7 +442,7 @@ static wchar_t c2u_AC[256] = { | |||
442 | 0x7D07,0x7D04,0x7D06,0x7F38,0x7F8E,0x7FBF,0x8004,0x0000,/* 0xF8-0xFF */ | 442 | 0x7D07,0x7D04,0x7D06,0x7F38,0x7F8E,0x7FBF,0x8004,0x0000,/* 0xF8-0xFF */ |
443 | }; | 443 | }; |
444 | 444 | ||
445 | static wchar_t c2u_AD[256] = { | 445 | static const wchar_t c2u_AD[256] = { |
446 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x00-0x07 */ | 446 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x00-0x07 */ |
447 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x08-0x0F */ | 447 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x08-0x0F */ |
448 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x10-0x17 */ | 448 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x10-0x17 */ |
@@ -478,7 +478,7 @@ static wchar_t c2u_AD[256] = { | |||
478 | 0x5514,0x54E9,0x54ED,0x54E1,0x5509,0x54EE,0x54EA,0x0000,/* 0xF8-0xFF */ | 478 | 0x5514,0x54E9,0x54ED,0x54E1,0x5509,0x54EE,0x54EA,0x0000,/* 0xF8-0xFF */ |
479 | }; | 479 | }; |
480 | 480 | ||
481 | static wchar_t c2u_AE[256] = { | 481 | static const wchar_t c2u_AE[256] = { |
482 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x00-0x07 */ | 482 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x00-0x07 */ |
483 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x08-0x0F */ | 483 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x08-0x0F */ |
484 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x10-0x17 */ | 484 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x10-0x17 */ |
@@ -514,7 +514,7 @@ static wchar_t c2u_AE[256] = { | |||
514 | 0x6D88,0x6D87,0x6D66,0x6D78,0x6D77,0x6D59,0x6D93,0x0000,/* 0xF8-0xFF */ | 514 | 0x6D88,0x6D87,0x6D66,0x6D78,0x6D77,0x6D59,0x6D93,0x0000,/* 0xF8-0xFF */ |
515 | }; | 515 | }; |
516 | 516 | ||
517 | static wchar_t c2u_AF[256] = { | 517 | static const wchar_t c2u_AF[256] = { |
518 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x00-0x07 */ | 518 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x00-0x07 */ |
519 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x08-0x0F */ | 519 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x08-0x0F */ |
520 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x10-0x17 */ | 520 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x10-0x17 */ |
@@ -550,7 +550,7 @@ static wchar_t c2u_AF[256] = { | |||
550 | 0x8339,0x8336,0x8317,0x8340,0x8331,0x8328,0x8343,0x0000,/* 0xF8-0xFF */ | 550 | 0x8339,0x8336,0x8317,0x8340,0x8331,0x8328,0x8343,0x0000,/* 0xF8-0xFF */ |
551 | }; | 551 | }; |
552 | 552 | ||
553 | static wchar_t c2u_B0[256] = { | 553 | static const wchar_t c2u_B0[256] = { |
554 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x00-0x07 */ | 554 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x00-0x07 */ |
555 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x08-0x0F */ | 555 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x08-0x0F */ |
556 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x10-0x17 */ | 556 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x10-0x17 */ |
@@ -586,7 +586,7 @@ static wchar_t c2u_B0[256] = { | |||
586 | 0x5962,0x5A36,0x5A41,0x5A49,0x5A66,0x5A6A,0x5A40,0x0000,/* 0xF8-0xFF */ | 586 | 0x5962,0x5A36,0x5A41,0x5A49,0x5A66,0x5A6A,0x5A40,0x0000,/* 0xF8-0xFF */ |
587 | }; | 587 | }; |
588 | 588 | ||
589 | static wchar_t c2u_B1[256] = { | 589 | static const wchar_t c2u_B1[256] = { |
590 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x00-0x07 */ | 590 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x00-0x07 */ |
591 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x08-0x0F */ | 591 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x08-0x0F */ |
592 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x10-0x17 */ | 592 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x10-0x17 */ |
@@ -622,7 +622,7 @@ static wchar_t c2u_B1[256] = { | |||
622 | 0x689D,0x68A8,0x689F,0x68A1,0x6882,0x6B32,0x6BBA,0x0000,/* 0xF8-0xFF */ | 622 | 0x689D,0x68A8,0x689F,0x68A1,0x6882,0x6B32,0x6BBA,0x0000,/* 0xF8-0xFF */ |
623 | }; | 623 | }; |
624 | 624 | ||
625 | static wchar_t c2u_B2[256] = { | 625 | static const wchar_t c2u_B2[256] = { |
626 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x00-0x07 */ | 626 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x00-0x07 */ |
627 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x08-0x0F */ | 627 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x08-0x0F */ |
628 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x10-0x17 */ | 628 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x10-0x17 */ |
@@ -658,7 +658,7 @@ static wchar_t c2u_B2[256] = { | |||
658 | 0x838A,0x8393,0x8389,0x83A0,0x8377,0x837B,0x837C,0x0000,/* 0xF8-0xFF */ | 658 | 0x838A,0x8393,0x8389,0x83A0,0x8377,0x837B,0x837C,0x0000,/* 0xF8-0xFF */ |
659 | }; | 659 | }; |
660 | 660 | ||
661 | static wchar_t c2u_B3[256] = { | 661 | static const wchar_t c2u_B3[256] = { |
662 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x00-0x07 */ | 662 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x00-0x07 */ |
663 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x08-0x0F */ | 663 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x08-0x0F */ |
664 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x10-0x17 */ | 664 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x10-0x17 */ |
@@ -694,7 +694,7 @@ static wchar_t c2u_B3[256] = { | |||
694 | 0x5831,0x5821,0x581D,0x5820,0x58F9,0x58FA,0x5960,0x0000,/* 0xF8-0xFF */ | 694 | 0x5831,0x5821,0x581D,0x5820,0x58F9,0x58FA,0x5960,0x0000,/* 0xF8-0xFF */ |
695 | }; | 695 | }; |
696 | 696 | ||
697 | static wchar_t c2u_B4[256] = { | 697 | static const wchar_t c2u_B4[256] = { |
698 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x00-0x07 */ | 698 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x00-0x07 */ |
699 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x08-0x0F */ | 699 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x08-0x0F */ |
700 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x10-0x17 */ | 700 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x10-0x17 */ |
@@ -730,7 +730,7 @@ static wchar_t c2u_B4[256] = { | |||
730 | 0x6E4D,0x6E3A,0x6E2C,0x6E43,0x6E1D,0x6E3E,0x6ECB,0x0000,/* 0xF8-0xFF */ | 730 | 0x6E4D,0x6E3A,0x6E2C,0x6E43,0x6E1D,0x6E3E,0x6ECB,0x0000,/* 0xF8-0xFF */ |
731 | }; | 731 | }; |
732 | 732 | ||
733 | static wchar_t c2u_B5[256] = { | 733 | static const wchar_t c2u_B5[256] = { |
734 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x00-0x07 */ | 734 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x00-0x07 */ |
735 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x08-0x0F */ | 735 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x08-0x0F */ |
736 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x10-0x17 */ | 736 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x10-0x17 */ |
@@ -766,7 +766,7 @@ static wchar_t c2u_B5[256] = { | |||
766 | 0x8996,0x8A3B,0x8A60,0x8A55,0x8A5E,0x8A3C,0x8A41,0x0000,/* 0xF8-0xFF */ | 766 | 0x8996,0x8A3B,0x8A60,0x8A55,0x8A5E,0x8A3C,0x8A41,0x0000,/* 0xF8-0xFF */ |
767 | }; | 767 | }; |
768 | 768 | ||
769 | static wchar_t c2u_B6[256] = { | 769 | static const wchar_t c2u_B6[256] = { |
770 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x00-0x07 */ | 770 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x00-0x07 */ |
771 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x08-0x0F */ | 771 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x08-0x0F */ |
772 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x10-0x17 */ | 772 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x10-0x17 */ |
@@ -802,7 +802,7 @@ static wchar_t c2u_B6[256] = { | |||
802 | 0x5967,0x5AC1,0x5AC9,0x5ACC,0x5ABE,0x5ABD,0x5ABC,0x0000,/* 0xF8-0xFF */ | 802 | 0x5967,0x5AC1,0x5AC9,0x5ACC,0x5ABE,0x5ABD,0x5ABC,0x0000,/* 0xF8-0xFF */ |
803 | }; | 803 | }; |
804 | 804 | ||
805 | static wchar_t c2u_B7[256] = { | 805 | static const wchar_t c2u_B7[256] = { |
806 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x00-0x07 */ | 806 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x00-0x07 */ |
807 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x08-0x0F */ | 807 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x08-0x0F */ |
808 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x10-0x17 */ | 808 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x10-0x17 */ |
@@ -838,7 +838,7 @@ static wchar_t c2u_B7[256] = { | |||
838 | 0x76DE,0x76DF,0x775B,0x776B,0x7766,0x775E,0x7763,0x0000,/* 0xF8-0xFF */ | 838 | 0x76DE,0x76DF,0x775B,0x776B,0x7766,0x775E,0x7763,0x0000,/* 0xF8-0xFF */ |
839 | }; | 839 | }; |
840 | 840 | ||
841 | static wchar_t c2u_B8[256] = { | 841 | static const wchar_t c2u_B8[256] = { |
842 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x00-0x07 */ | 842 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x00-0x07 */ |
843 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x08-0x0F */ | 843 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x08-0x0F */ |
844 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x10-0x17 */ | 844 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x10-0x17 */ |
@@ -874,7 +874,7 @@ static wchar_t c2u_B8[256] = { | |||
874 | 0x8DE4,0x8DE6,0x8EB2,0x8F03,0x8F09,0x8EFE,0x8F0A,0x0000,/* 0xF8-0xFF */ | 874 | 0x8DE4,0x8DE6,0x8EB2,0x8F03,0x8F09,0x8EFE,0x8F0A,0x0000,/* 0xF8-0xFF */ |
875 | }; | 875 | }; |
876 | 876 | ||
877 | static wchar_t c2u_B9[256] = { | 877 | static const wchar_t c2u_B9[256] = { |
878 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x00-0x07 */ | 878 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x00-0x07 */ |
879 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x08-0x0F */ | 879 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x08-0x0F */ |
880 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x10-0x17 */ | 880 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x10-0x17 */ |
@@ -910,7 +910,7 @@ static wchar_t c2u_B9[256] = { | |||
910 | 0x5ED3,0x5ED6,0x5F0A,0x5F46,0x5F70,0x5FB9,0x6147,0x0000,/* 0xF8-0xFF */ | 910 | 0x5ED3,0x5ED6,0x5F0A,0x5F46,0x5F70,0x5FB9,0x6147,0x0000,/* 0xF8-0xFF */ |
911 | }; | 911 | }; |
912 | 912 | ||
913 | static wchar_t c2u_BA[256] = { | 913 | static const wchar_t c2u_BA[256] = { |
914 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x00-0x07 */ | 914 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x00-0x07 */ |
915 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x08-0x0F */ | 915 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x08-0x0F */ |
916 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x10-0x17 */ | 916 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x10-0x17 */ |
@@ -946,7 +946,7 @@ static wchar_t c2u_BA[256] = { | |||
946 | 0x7DBF,0x7DB5,0x7DB8,0x7DAD,0x7DD2,0x7DC7,0x7DAC,0x0000,/* 0xF8-0xFF */ | 946 | 0x7DBF,0x7DB5,0x7DB8,0x7DAD,0x7DD2,0x7DC7,0x7DAC,0x0000,/* 0xF8-0xFF */ |
947 | }; | 947 | }; |
948 | 948 | ||
949 | static wchar_t c2u_BB[256] = { | 949 | static const wchar_t c2u_BB[256] = { |
950 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x00-0x07 */ | 950 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x00-0x07 */ |
951 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x08-0x0F */ | 951 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x08-0x0F */ |
952 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x10-0x17 */ | 952 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x10-0x17 */ |
@@ -982,7 +982,7 @@ static wchar_t c2u_BB[256] = { | |||
982 | 0x50F5,0x50F9,0x5102,0x5108,0x5109,0x5105,0x51DC,0x0000,/* 0xF8-0xFF */ | 982 | 0x50F5,0x50F9,0x5102,0x5108,0x5109,0x5105,0x51DC,0x0000,/* 0xF8-0xFF */ |
983 | }; | 983 | }; |
984 | 984 | ||
985 | static wchar_t c2u_BC[256] = { | 985 | static const wchar_t c2u_BC[256] = { |
986 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x00-0x07 */ | 986 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x00-0x07 */ |
987 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x08-0x0F */ | 987 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x08-0x0F */ |
988 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x10-0x17 */ | 988 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x10-0x17 */ |
@@ -1018,7 +1018,7 @@ static wchar_t c2u_BC[256] = { | |||
1018 | 0x7256,0x729B,0x734E,0x7357,0x7469,0x748B,0x7483,0x0000,/* 0xF8-0xFF */ | 1018 | 0x7256,0x729B,0x734E,0x7357,0x7469,0x748B,0x7483,0x0000,/* 0xF8-0xFF */ |
1019 | }; | 1019 | }; |
1020 | 1020 | ||
1021 | static wchar_t c2u_BD[256] = { | 1021 | static const wchar_t c2u_BD[256] = { |
1022 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x00-0x07 */ | 1022 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x00-0x07 */ |
1023 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x08-0x0F */ | 1023 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x08-0x0F */ |
1024 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x10-0x17 */ | 1024 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x10-0x17 */ |
@@ -1054,7 +1054,7 @@ static wchar_t c2u_BD[256] = { | |||
1054 | 0x8F1B,0x8F1F,0x8F29,0x8F26,0x8F2A,0x8F1C,0x8F1E,0x0000,/* 0xF8-0xFF */ | 1054 | 0x8F1B,0x8F1F,0x8F29,0x8F26,0x8F2A,0x8F1C,0x8F1E,0x0000,/* 0xF8-0xFF */ |
1055 | }; | 1055 | }; |
1056 | 1056 | ||
1057 | static wchar_t c2u_BE[256] = { | 1057 | static const wchar_t c2u_BE[256] = { |
1058 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x00-0x07 */ | 1058 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x00-0x07 */ |
1059 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x08-0x0F */ | 1059 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x08-0x0F */ |
1060 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x10-0x17 */ | 1060 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x10-0x17 */ |
@@ -1090,7 +1090,7 @@ static wchar_t c2u_BE[256] = { | |||
1090 | 0x6A48,0x6B59,0x6B77,0x6C05,0x6FC2,0x6FB1,0x6FA1,0x0000,/* 0xF8-0xFF */ | 1090 | 0x6A48,0x6B59,0x6B77,0x6C05,0x6FC2,0x6FB1,0x6FA1,0x0000,/* 0xF8-0xFF */ |
1091 | }; | 1091 | }; |
1092 | 1092 | ||
1093 | static wchar_t c2u_BF[256] = { | 1093 | static const wchar_t c2u_BF[256] = { |
1094 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x00-0x07 */ | 1094 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x00-0x07 */ |
1095 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x08-0x0F */ | 1095 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x08-0x0F */ |
1096 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x10-0x17 */ | 1096 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x10-0x17 */ |
@@ -1126,7 +1126,7 @@ static wchar_t c2u_BF[256] = { | |||
1126 | 0x9333,0x932F,0x9322,0x92FC,0x932B,0x9304,0x931A,0x0000,/* 0xF8-0xFF */ | 1126 | 0x9333,0x932F,0x9322,0x92FC,0x932B,0x9304,0x931A,0x0000,/* 0xF8-0xFF */ |
1127 | }; | 1127 | }; |
1128 | 1128 | ||
1129 | static wchar_t c2u_C0[256] = { | 1129 | static const wchar_t c2u_C0[256] = { |
1130 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x00-0x07 */ | 1130 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x00-0x07 */ |
1131 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x08-0x0F */ | 1131 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x08-0x0F */ |
1132 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x10-0x17 */ | 1132 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x10-0x17 */ |
@@ -1162,7 +1162,7 @@ static wchar_t c2u_C0[256] = { | |||
1162 | 0x7642,0x764C,0x76EA,0x77B3,0x77AA,0x77B0,0x77AC,0x0000,/* 0xF8-0xFF */ | 1162 | 0x7642,0x764C,0x76EA,0x77B3,0x77AA,0x77B0,0x77AC,0x0000,/* 0xF8-0xFF */ |
1163 | }; | 1163 | }; |
1164 | 1164 | ||
1165 | static wchar_t c2u_C1[256] = { | 1165 | static const wchar_t c2u_C1[256] = { |
1166 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x00-0x07 */ | 1166 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x00-0x07 */ |
1167 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x08-0x0F */ | 1167 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x08-0x0F */ |
1168 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x10-0x17 */ | 1168 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x10-0x17 */ |
@@ -1198,7 +1198,7 @@ static wchar_t c2u_C1[256] = { | |||
1198 | 0x971E,0x97A0,0x97D3,0x9846,0x98B6,0x9935,0x9A01,0x0000,/* 0xF8-0xFF */ | 1198 | 0x971E,0x97A0,0x97D3,0x9846,0x98B6,0x9935,0x9A01,0x0000,/* 0xF8-0xFF */ |
1199 | }; | 1199 | }; |
1200 | 1200 | ||
1201 | static wchar_t c2u_C2[256] = { | 1201 | static const wchar_t c2u_C2[256] = { |
1202 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x00-0x07 */ | 1202 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x00-0x07 */ |
1203 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x08-0x0F */ | 1203 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x08-0x0F */ |
1204 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x10-0x17 */ | 1204 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x10-0x17 */ |
@@ -1234,7 +1234,7 @@ static wchar_t c2u_C2[256] = { | |||
1234 | 0x96DC,0x96D9,0x96DB,0x96DE,0x9724,0x97A3,0x97A6,0x0000,/* 0xF8-0xFF */ | 1234 | 0x96DC,0x96D9,0x96DB,0x96DE,0x9724,0x97A3,0x97A6,0x0000,/* 0xF8-0xFF */ |
1235 | }; | 1235 | }; |
1236 | 1236 | ||
1237 | static wchar_t c2u_C3[256] = { | 1237 | static const wchar_t c2u_C3[256] = { |
1238 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x00-0x07 */ | 1238 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x00-0x07 */ |
1239 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x08-0x0F */ | 1239 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x08-0x0F */ |
1240 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x10-0x17 */ | 1240 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x10-0x17 */ |
@@ -1270,7 +1270,7 @@ static wchar_t c2u_C3[256] = { | |||
1270 | 0x96E3,0x972A,0x9727,0x9761,0x97DC,0x97FB,0x985E,0x0000,/* 0xF8-0xFF */ | 1270 | 0x96E3,0x972A,0x9727,0x9761,0x97DC,0x97FB,0x985E,0x0000,/* 0xF8-0xFF */ |
1271 | }; | 1271 | }; |
1272 | 1272 | ||
1273 | static wchar_t c2u_C4[256] = { | 1273 | static const wchar_t c2u_C4[256] = { |
1274 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x00-0x07 */ | 1274 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x00-0x07 */ |
1275 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x08-0x0F */ | 1275 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x08-0x0F */ |
1276 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x10-0x17 */ | 1276 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x10-0x17 */ |
@@ -1306,7 +1306,7 @@ static wchar_t c2u_C4[256] = { | |||
1306 | 0x8822,0x8821,0x881F,0x896A,0x896C,0x89BD,0x8B74,0x0000,/* 0xF8-0xFF */ | 1306 | 0x8822,0x8821,0x881F,0x896A,0x896C,0x89BD,0x8B74,0x0000,/* 0xF8-0xFF */ |
1307 | }; | 1307 | }; |
1308 | 1308 | ||
1309 | static wchar_t c2u_C5[256] = { | 1309 | static const wchar_t c2u_C5[256] = { |
1310 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x00-0x07 */ | 1310 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x00-0x07 */ |
1311 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x08-0x0F */ | 1311 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x08-0x0F */ |
1312 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x10-0x17 */ | 1312 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x10-0x17 */ |
@@ -1342,7 +1342,7 @@ static wchar_t c2u_C5[256] = { | |||
1342 | 0x7F50,0x7F88,0x8836,0x8839,0x8862,0x8B93,0x8B92,0x0000,/* 0xF8-0xFF */ | 1342 | 0x7F50,0x7F88,0x8836,0x8839,0x8862,0x8B93,0x8B92,0x0000,/* 0xF8-0xFF */ |
1343 | }; | 1343 | }; |
1344 | 1344 | ||
1345 | static wchar_t c2u_C6[256] = { | 1345 | static const wchar_t c2u_C6[256] = { |
1346 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x00-0x07 */ | 1346 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x00-0x07 */ |
1347 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x08-0x0F */ | 1347 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x08-0x0F */ |
1348 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x10-0x17 */ | 1348 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x10-0x17 */ |
@@ -1361,7 +1361,7 @@ static wchar_t c2u_C6[256] = { | |||
1361 | 0x9E1A,0x7228,0x9A6A,0x9B31,0x9E1B,0x9E1E,0x7C72,0x0000,/* 0x78-0x7F */ | 1361 | 0x9E1A,0x7228,0x9A6A,0x9B31,0x9E1B,0x9E1E,0x7C72,0x0000,/* 0x78-0x7F */ |
1362 | }; | 1362 | }; |
1363 | 1363 | ||
1364 | static wchar_t c2u_C9[256] = { | 1364 | static const wchar_t c2u_C9[256] = { |
1365 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x00-0x07 */ | 1365 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x00-0x07 */ |
1366 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x08-0x0F */ | 1366 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x08-0x0F */ |
1367 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x10-0x17 */ | 1367 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x10-0x17 */ |
@@ -1397,7 +1397,7 @@ static wchar_t c2u_C9[256] = { | |||
1397 | 0x6C46,0x6C52,0x6C5C,0x6C4F,0x6C4A,0x6C54,0x6C4B,0x0000,/* 0xF8-0xFF */ | 1397 | 0x6C46,0x6C52,0x6C5C,0x6C4F,0x6C4A,0x6C54,0x6C4B,0x0000,/* 0xF8-0xFF */ |
1398 | }; | 1398 | }; |
1399 | 1399 | ||
1400 | static wchar_t c2u_CA[256] = { | 1400 | static const wchar_t c2u_CA[256] = { |
1401 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x00-0x07 */ | 1401 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x00-0x07 */ |
1402 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x08-0x0F */ | 1402 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x08-0x0F */ |
1403 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x10-0x17 */ | 1403 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x10-0x17 */ |
@@ -1433,7 +1433,7 @@ static wchar_t c2u_CA[256] = { | |||
1433 | 0x65F0,0x65F4,0x65F3,0x65F2,0x65F5,0x6745,0x6747,0x0000,/* 0xF8-0xFF */ | 1433 | 0x65F0,0x65F4,0x65F3,0x65F2,0x65F5,0x6745,0x6747,0x0000,/* 0xF8-0xFF */ |
1434 | }; | 1434 | }; |
1435 | 1435 | ||
1436 | static wchar_t c2u_CB[256] = { | 1436 | static const wchar_t c2u_CB[256] = { |
1437 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x00-0x07 */ | 1437 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x00-0x07 */ |
1438 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x08-0x0F */ | 1438 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x08-0x0F */ |
1439 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x10-0x17 */ | 1439 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x10-0x17 */ |
@@ -1469,7 +1469,7 @@ static wchar_t c2u_CB[256] = { | |||
1469 | 0x5776,0x5780,0x5775,0x577B,0x5773,0x5774,0x5762,0x0000,/* 0xF8-0xFF */ | 1469 | 0x5776,0x5780,0x5775,0x577B,0x5773,0x5774,0x5762,0x0000,/* 0xF8-0xFF */ |
1470 | }; | 1470 | }; |
1471 | 1471 | ||
1472 | static wchar_t c2u_CC[256] = { | 1472 | static const wchar_t c2u_CC[256] = { |
1473 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x00-0x07 */ | 1473 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x00-0x07 */ |
1474 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x08-0x0F */ | 1474 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x08-0x0F */ |
1475 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x10-0x17 */ | 1475 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x10-0x17 */ |
@@ -1505,7 +1505,7 @@ static wchar_t c2u_CC[256] = { | |||
1505 | 0x6CD0,0x6CC2,0x6CBA,0x6CC3,0x6CC6,0x6CED,0x6CF2,0x0000,/* 0xF8-0xFF */ | 1505 | 0x6CD0,0x6CC2,0x6CBA,0x6CC3,0x6CC6,0x6CED,0x6CF2,0x0000,/* 0xF8-0xFF */ |
1506 | }; | 1506 | }; |
1507 | 1507 | ||
1508 | static wchar_t c2u_CD[256] = { | 1508 | static const wchar_t c2u_CD[256] = { |
1509 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x00-0x07 */ | 1509 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x00-0x07 */ |
1510 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x08-0x0F */ | 1510 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x08-0x0F */ |
1511 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x10-0x17 */ | 1511 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x10-0x17 */ |
@@ -1541,7 +1541,7 @@ static wchar_t c2u_CD[256] = { | |||
1541 | 0x5399,0x5398,0x54BA,0x54A1,0x54AD,0x54A5,0x54CF,0x0000,/* 0xF8-0xFF */ | 1541 | 0x5399,0x5398,0x54BA,0x54A1,0x54AD,0x54A5,0x54CF,0x0000,/* 0xF8-0xFF */ |
1542 | }; | 1542 | }; |
1543 | 1543 | ||
1544 | static wchar_t c2u_CE[256] = { | 1544 | static const wchar_t c2u_CE[256] = { |
1545 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x00-0x07 */ | 1545 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x00-0x07 */ |
1546 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x08-0x0F */ | 1546 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x08-0x0F */ |
1547 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x10-0x17 */ | 1547 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x10-0x17 */ |
@@ -1577,7 +1577,7 @@ static wchar_t c2u_CE[256] = { | |||
1577 | 0x662E,0x670F,0x6710,0x67C1,0x67F2,0x67C8,0x67BA,0x0000,/* 0xF8-0xFF */ | 1577 | 0x662E,0x670F,0x6710,0x67C1,0x67F2,0x67C8,0x67BA,0x0000,/* 0xF8-0xFF */ |
1578 | }; | 1578 | }; |
1579 | 1579 | ||
1580 | static wchar_t c2u_CF[256] = { | 1580 | static const wchar_t c2u_CF[256] = { |
1581 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x00-0x07 */ | 1581 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x00-0x07 */ |
1582 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x08-0x0F */ | 1582 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x08-0x0F */ |
1583 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x10-0x17 */ | 1583 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x10-0x17 */ |
@@ -1613,7 +1613,7 @@ static wchar_t c2u_CF[256] = { | |||
1613 | 0x7944,0x79D5,0x79CD,0x79CF,0x79D6,0x79CE,0x7A80,0x0000,/* 0xF8-0xFF */ | 1613 | 0x7944,0x79D5,0x79CD,0x79CF,0x79D6,0x79CE,0x7A80,0x0000,/* 0xF8-0xFF */ |
1614 | }; | 1614 | }; |
1615 | 1615 | ||
1616 | static wchar_t c2u_D0[256] = { | 1616 | static const wchar_t c2u_D0[256] = { |
1617 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x00-0x07 */ | 1617 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x00-0x07 */ |
1618 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x08-0x0F */ | 1618 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x08-0x0F */ |
1619 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x10-0x17 */ | 1619 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x10-0x17 */ |
@@ -1649,7 +1649,7 @@ static wchar_t c2u_D0[256] = { | |||
1649 | 0x54FF,0x5504,0x5508,0x54EB,0x5511,0x5505,0x54F1,0x0000,/* 0xF8-0xFF */ | 1649 | 0x54FF,0x5504,0x5508,0x54EB,0x5511,0x5505,0x54F1,0x0000,/* 0xF8-0xFF */ |
1650 | }; | 1650 | }; |
1651 | 1651 | ||
1652 | static wchar_t c2u_D1[256] = { | 1652 | static const wchar_t c2u_D1[256] = { |
1653 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x00-0x07 */ | 1653 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x00-0x07 */ |
1654 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x08-0x0F */ | 1654 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x08-0x0F */ |
1655 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x10-0x17 */ | 1655 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x10-0x17 */ |
@@ -1685,7 +1685,7 @@ static wchar_t c2u_D1[256] = { | |||
1685 | 0x6B31,0x6B34,0x6B6D,0x8082,0x6B88,0x6BE6,0x6BE4,0x0000,/* 0xF8-0xFF */ | 1685 | 0x6B31,0x6B34,0x6B6D,0x8082,0x6B88,0x6BE6,0x6BE4,0x0000,/* 0xF8-0xFF */ |
1686 | }; | 1686 | }; |
1687 | 1687 | ||
1688 | static wchar_t c2u_D2[256] = { | 1688 | static const wchar_t c2u_D2[256] = { |
1689 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x00-0x07 */ | 1689 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x00-0x07 */ |
1690 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x08-0x0F */ | 1690 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x08-0x0F */ |
1691 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x10-0x17 */ | 1691 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x10-0x17 */ |
@@ -1721,7 +1721,7 @@ static wchar_t c2u_D2[256] = { | |||
1721 | 0x7A85,0x7A8B,0x7A8C,0x7A8A,0x7A87,0x7AD8,0x7B10,0x0000,/* 0xF8-0xFF */ | 1721 | 0x7A85,0x7A8B,0x7A8C,0x7A8A,0x7A87,0x7AD8,0x7B10,0x0000,/* 0xF8-0xFF */ |
1722 | }; | 1722 | }; |
1723 | 1723 | ||
1724 | static wchar_t c2u_D3[256] = { | 1724 | static const wchar_t c2u_D3[256] = { |
1725 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x00-0x07 */ | 1725 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x00-0x07 */ |
1726 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x08-0x0F */ | 1726 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x08-0x0F */ |
1727 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x10-0x17 */ | 1727 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x10-0x17 */ |
@@ -1757,7 +1757,7 @@ static wchar_t c2u_D3[256] = { | |||
1757 | 0x90E5,0x90D8,0x90DB,0x90D7,0x90DC,0x90E4,0x9150,0x0000,/* 0xF8-0xFF */ | 1757 | 0x90E5,0x90D8,0x90DB,0x90D7,0x90DC,0x90E4,0x9150,0x0000,/* 0xF8-0xFF */ |
1758 | }; | 1758 | }; |
1759 | 1759 | ||
1760 | static wchar_t c2u_D4[256] = { | 1760 | static const wchar_t c2u_D4[256] = { |
1761 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x00-0x07 */ | 1761 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x00-0x07 */ |
1762 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x08-0x0F */ | 1762 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x08-0x0F */ |
1763 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x10-0x17 */ | 1763 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x10-0x17 */ |
@@ -1793,7 +1793,7 @@ static wchar_t c2u_D4[256] = { | |||
1793 | 0x5D20,0x5D0C,0x5D28,0x5D0D,0x5D26,0x5D25,0x5D0F,0x0000,/* 0xF8-0xFF */ | 1793 | 0x5D20,0x5D0C,0x5D28,0x5D0D,0x5D26,0x5D25,0x5D0F,0x0000,/* 0xF8-0xFF */ |
1794 | }; | 1794 | }; |
1795 | 1795 | ||
1796 | static wchar_t c2u_D5[256] = { | 1796 | static const wchar_t c2u_D5[256] = { |
1797 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x00-0x07 */ | 1797 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x00-0x07 */ |
1798 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x08-0x0F */ | 1798 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x08-0x0F */ |
1799 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x10-0x17 */ | 1799 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x10-0x17 */ |
@@ -1829,7 +1829,7 @@ static wchar_t c2u_D5[256] = { | |||
1829 | 0x6DED,0x6DF0,0x6DBA,0x6DD5,0x6DC2,0x6DCF,0x6DC9,0x0000,/* 0xF8-0xFF */ | 1829 | 0x6DED,0x6DF0,0x6DBA,0x6DD5,0x6DC2,0x6DCF,0x6DC9,0x0000,/* 0xF8-0xFF */ |
1830 | }; | 1830 | }; |
1831 | 1831 | ||
1832 | static wchar_t c2u_D6[256] = { | 1832 | static const wchar_t c2u_D6[256] = { |
1833 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x00-0x07 */ | 1833 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x00-0x07 */ |
1834 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x08-0x0F */ | 1834 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x08-0x0F */ |
1835 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x10-0x17 */ | 1835 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x10-0x17 */ |
@@ -1865,7 +1865,7 @@ static wchar_t c2u_D6[256] = { | |||
1865 | 0x7FCD,0x7FD0,0x7FD1,0x7FC7,0x7FCF,0x7FC9,0x801F,0x0000,/* 0xF8-0xFF */ | 1865 | 0x7FCD,0x7FD0,0x7FD1,0x7FC7,0x7FCF,0x7FC9,0x801F,0x0000,/* 0xF8-0xFF */ |
1866 | }; | 1866 | }; |
1867 | 1867 | ||
1868 | static wchar_t c2u_D7[256] = { | 1868 | static const wchar_t c2u_D7[256] = { |
1869 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x00-0x07 */ | 1869 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x00-0x07 */ |
1870 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x08-0x0F */ | 1870 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x08-0x0F */ |
1871 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x10-0x17 */ | 1871 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x10-0x17 */ |
@@ -1901,7 +1901,7 @@ static wchar_t c2u_D7[256] = { | |||
1901 | 0x91F4,0x91F1,0x91F3,0x91F8,0x91E4,0x91F9,0x91EA,0x0000,/* 0xF8-0xFF */ | 1901 | 0x91F4,0x91F1,0x91F3,0x91F8,0x91E4,0x91F9,0x91EA,0x0000,/* 0xF8-0xFF */ |
1902 | }; | 1902 | }; |
1903 | 1903 | ||
1904 | static wchar_t c2u_D8[256] = { | 1904 | static const wchar_t c2u_D8[256] = { |
1905 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x00-0x07 */ | 1905 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x00-0x07 */ |
1906 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x08-0x0F */ | 1906 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x08-0x0F */ |
1907 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x10-0x17 */ | 1907 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x10-0x17 */ |
@@ -1937,7 +1937,7 @@ static wchar_t c2u_D8[256] = { | |||
1937 | 0x60C9,0x60B9,0x60CC,0x60E2,0x60CE,0x60C4,0x6114,0x0000,/* 0xF8-0xFF */ | 1937 | 0x60C9,0x60B9,0x60CC,0x60E2,0x60CE,0x60C4,0x6114,0x0000,/* 0xF8-0xFF */ |
1938 | }; | 1938 | }; |
1939 | 1939 | ||
1940 | static wchar_t c2u_D9[256] = { | 1940 | static const wchar_t c2u_D9[256] = { |
1941 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x00-0x07 */ | 1941 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x00-0x07 */ |
1942 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x08-0x0F */ | 1942 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x08-0x0F */ |
1943 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x10-0x17 */ | 1943 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x10-0x17 */ |
@@ -1973,7 +1973,7 @@ static wchar_t c2u_D9[256] = { | |||
1973 | 0x6E4B,0x6E40,0x6E51,0x6E3B,0x6E03,0x6E2E,0x6E5E,0x0000,/* 0xF8-0xFF */ | 1973 | 0x6E4B,0x6E40,0x6E51,0x6E3B,0x6E03,0x6E2E,0x6E5E,0x0000,/* 0xF8-0xFF */ |
1974 | }; | 1974 | }; |
1975 | 1975 | ||
1976 | static wchar_t c2u_DA[256] = { | 1976 | static const wchar_t c2u_DA[256] = { |
1977 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x00-0x07 */ | 1977 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x00-0x07 */ |
1978 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x08-0x0F */ | 1978 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x08-0x0F */ |
1979 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x10-0x17 */ | 1979 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x10-0x17 */ |
@@ -2009,7 +2009,7 @@ static wchar_t c2u_DA[256] = { | |||
2009 | 0x7D69,0x7D51,0x7D5F,0x7D4E,0x7F3E,0x7F3F,0x7F65,0x0000,/* 0xF8-0xFF */ | 2009 | 0x7D69,0x7D51,0x7D5F,0x7D4E,0x7F3E,0x7F3F,0x7F65,0x0000,/* 0xF8-0xFF */ |
2010 | }; | 2010 | }; |
2011 | 2011 | ||
2012 | static wchar_t c2u_DB[256] = { | 2012 | static const wchar_t c2u_DB[256] = { |
2013 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x00-0x07 */ | 2013 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x00-0x07 */ |
2014 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x08-0x0F */ | 2014 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x08-0x0F */ |
2015 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x10-0x17 */ | 2015 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x10-0x17 */ |
@@ -2045,7 +2045,7 @@ static wchar_t c2u_DB[256] = { | |||
2045 | 0x8DD9,0x8DC8,0x8DD7,0x8DC5,0x8EEF,0x8EF7,0x8EFA,0x0000,/* 0xF8-0xFF */ | 2045 | 0x8DD9,0x8DC8,0x8DD7,0x8DC5,0x8EEF,0x8EF7,0x8EFA,0x0000,/* 0xF8-0xFF */ |
2046 | }; | 2046 | }; |
2047 | 2047 | ||
2048 | static wchar_t c2u_DC[256] = { | 2048 | static const wchar_t c2u_DC[256] = { |
2049 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x00-0x07 */ | 2049 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x00-0x07 */ |
2050 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x08-0x0F */ | 2050 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x08-0x0F */ |
2051 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x10-0x17 */ | 2051 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x10-0x17 */ |
@@ -2081,7 +2081,7 @@ static wchar_t c2u_DC[256] = { | |||
2081 | 0x5AB1,0x5AB5,0x5AB0,0x5ABF,0x5AC8,0x5ABB,0x5AC6,0x0000,/* 0xF8-0xFF */ | 2081 | 0x5AB1,0x5AB5,0x5AB0,0x5ABF,0x5AC8,0x5ABB,0x5AC6,0x0000,/* 0xF8-0xFF */ |
2082 | }; | 2082 | }; |
2083 | 2083 | ||
2084 | static wchar_t c2u_DD[256] = { | 2084 | static const wchar_t c2u_DD[256] = { |
2085 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x00-0x07 */ | 2085 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x00-0x07 */ |
2086 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x08-0x0F */ | 2086 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x08-0x0F */ |
2087 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x10-0x17 */ | 2087 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x10-0x17 */ |
@@ -2117,7 +2117,7 @@ static wchar_t c2u_DD[256] = { | |||
2117 | 0x6B42,0x6B48,0x6B41,0x6B9B,0xFA0D,0x6BFB,0x6BFC,0x0000,/* 0xF8-0xFF */ | 2117 | 0x6B42,0x6B48,0x6B41,0x6B9B,0xFA0D,0x6BFB,0x6BFC,0x0000,/* 0xF8-0xFF */ |
2118 | }; | 2118 | }; |
2119 | 2119 | ||
2120 | static wchar_t c2u_DE[256] = { | 2120 | static const wchar_t c2u_DE[256] = { |
2121 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x00-0x07 */ | 2121 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x00-0x07 */ |
2122 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x08-0x0F */ | 2122 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x08-0x0F */ |
2123 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x10-0x17 */ | 2123 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x10-0x17 */ |
@@ -2153,7 +2153,7 @@ static wchar_t c2u_DE[256] = { | |||
2153 | 0x7A18,0x7A19,0x7A12,0x7A17,0x7A15,0x7A22,0x7A13,0x0000,/* 0xF8-0xFF */ | 2153 | 0x7A18,0x7A19,0x7A12,0x7A17,0x7A15,0x7A22,0x7A13,0x0000,/* 0xF8-0xFF */ |
2154 | }; | 2154 | }; |
2155 | 2155 | ||
2156 | static wchar_t c2u_DF[256] = { | 2156 | static const wchar_t c2u_DF[256] = { |
2157 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x00-0x07 */ | 2157 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x00-0x07 */ |
2158 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x08-0x0F */ | 2158 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x08-0x0F */ |
2159 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x10-0x17 */ | 2159 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x10-0x17 */ |
@@ -2189,7 +2189,7 @@ static wchar_t c2u_DF[256] = { | |||
2189 | 0x88CC,0x88D0,0x8985,0x899B,0x89DF,0x89E5,0x89E4,0x0000,/* 0xF8-0xFF */ | 2189 | 0x88CC,0x88D0,0x8985,0x899B,0x89DF,0x89E5,0x89E4,0x0000,/* 0xF8-0xFF */ |
2190 | }; | 2190 | }; |
2191 | 2191 | ||
2192 | static wchar_t c2u_E0[256] = { | 2192 | static const wchar_t c2u_E0[256] = { |
2193 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x00-0x07 */ | 2193 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x00-0x07 */ |
2194 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x08-0x0F */ | 2194 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x08-0x0F */ |
2195 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x10-0x17 */ | 2195 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x10-0x17 */ |
@@ -2225,7 +2225,7 @@ static wchar_t c2u_E0[256] = { | |||
2225 | 0x50E4,0x50D3,0x50EC,0x50F0,0x50EF,0x50E3,0x50E0,0x0000,/* 0xF8-0xFF */ | 2225 | 0x50E4,0x50D3,0x50EC,0x50F0,0x50EF,0x50E3,0x50E0,0x0000,/* 0xF8-0xFF */ |
2226 | }; | 2226 | }; |
2227 | 2227 | ||
2228 | static wchar_t c2u_E1[256] = { | 2228 | static const wchar_t c2u_E1[256] = { |
2229 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x00-0x07 */ | 2229 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x00-0x07 */ |
2230 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x08-0x0F */ | 2230 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x08-0x0F */ |
2231 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x10-0x17 */ | 2231 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x10-0x17 */ |
@@ -2261,7 +2261,7 @@ static wchar_t c2u_E1[256] = { | |||
2261 | 0x669F,0x6705,0x6704,0x6722,0x69B1,0x69B6,0x69C9,0x0000,/* 0xF8-0xFF */ | 2261 | 0x669F,0x6705,0x6704,0x6722,0x69B1,0x69B6,0x69C9,0x0000,/* 0xF8-0xFF */ |
2262 | }; | 2262 | }; |
2263 | 2263 | ||
2264 | static wchar_t c2u_E2[256] = { | 2264 | static const wchar_t c2u_E2[256] = { |
2265 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x00-0x07 */ | 2265 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x00-0x07 */ |
2266 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x08-0x0F */ | 2266 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x08-0x0F */ |
2267 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x10-0x17 */ | 2267 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x10-0x17 */ |
@@ -2297,7 +2297,7 @@ static wchar_t c2u_E2[256] = { | |||
2297 | 0x7998,0x798A,0x798B,0x7996,0x7995,0x7994,0x7993,0x0000,/* 0xF8-0xFF */ | 2297 | 0x7998,0x798A,0x798B,0x7996,0x7995,0x7994,0x7993,0x0000,/* 0xF8-0xFF */ |
2298 | }; | 2298 | }; |
2299 | 2299 | ||
2300 | static wchar_t c2u_E3[256] = { | 2300 | static const wchar_t c2u_E3[256] = { |
2301 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x00-0x07 */ | 2301 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x00-0x07 */ |
2302 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x08-0x0F */ | 2302 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x08-0x0F */ |
2303 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x10-0x17 */ | 2303 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x10-0x17 */ |
@@ -2333,7 +2333,7 @@ static wchar_t c2u_E3[256] = { | |||
2333 | 0x88F2,0x88FA,0x88FE,0x88EE,0x88FC,0x88F6,0x88FB,0x0000,/* 0xF8-0xFF */ | 2333 | 0x88F2,0x88FA,0x88FE,0x88EE,0x88FC,0x88F6,0x88FB,0x0000,/* 0xF8-0xFF */ |
2334 | }; | 2334 | }; |
2335 | 2335 | ||
2336 | static wchar_t c2u_E4[256] = { | 2336 | static const wchar_t c2u_E4[256] = { |
2337 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x00-0x07 */ | 2337 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x00-0x07 */ |
2338 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x08-0x0F */ | 2338 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x08-0x0F */ |
2339 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x10-0x17 */ | 2339 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x10-0x17 */ |
@@ -2369,7 +2369,7 @@ static wchar_t c2u_E4[256] = { | |||
2369 | 0x564C,0x5635,0x5641,0x564A,0x5649,0x5646,0x5658,0x0000,/* 0xF8-0xFF */ | 2369 | 0x564C,0x5635,0x5641,0x564A,0x5649,0x5646,0x5658,0x0000,/* 0xF8-0xFF */ |
2370 | }; | 2370 | }; |
2371 | 2371 | ||
2372 | static wchar_t c2u_E5[256] = { | 2372 | static const wchar_t c2u_E5[256] = { |
2373 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x00-0x07 */ | 2373 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x00-0x07 */ |
2374 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x08-0x0F */ | 2374 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x08-0x0F */ |
2375 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x10-0x17 */ | 2375 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x10-0x17 */ |
@@ -2405,7 +2405,7 @@ static wchar_t c2u_E5[256] = { | |||
2405 | 0x6C02,0x6F41,0x6F26,0x6F7E,0x6F87,0x6FC6,0x6F92,0x0000,/* 0xF8-0xFF */ | 2405 | 0x6C02,0x6F41,0x6F26,0x6F7E,0x6F87,0x6FC6,0x6F92,0x0000,/* 0xF8-0xFF */ |
2406 | }; | 2406 | }; |
2407 | 2407 | ||
2408 | static wchar_t c2u_E6[256] = { | 2408 | static const wchar_t c2u_E6[256] = { |
2409 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x00-0x07 */ | 2409 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x00-0x07 */ |
2410 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x08-0x0F */ | 2410 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x08-0x0F */ |
2411 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x10-0x17 */ | 2411 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x10-0x17 */ |
@@ -2441,7 +2441,7 @@ static wchar_t c2u_E6[256] = { | |||
2441 | 0x7FEC,0x7FE6,0x7FE8,0x8064,0x8067,0x81A3,0x819F,0x0000,/* 0xF8-0xFF */ | 2441 | 0x7FEC,0x7FE6,0x7FE8,0x8064,0x8067,0x81A3,0x819F,0x0000,/* 0xF8-0xFF */ |
2442 | }; | 2442 | }; |
2443 | 2443 | ||
2444 | static wchar_t c2u_E7[256] = { | 2444 | static const wchar_t c2u_E7[256] = { |
2445 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x00-0x07 */ | 2445 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x00-0x07 */ |
2446 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x08-0x0F */ | 2446 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x08-0x0F */ |
2447 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x10-0x17 */ | 2447 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x10-0x17 */ |
@@ -2477,7 +2477,7 @@ static wchar_t c2u_E7[256] = { | |||
2477 | 0x8E15,0x8E1B,0x8E16,0x8E11,0x8E19,0x8E26,0x8E27,0x0000,/* 0xF8-0xFF */ | 2477 | 0x8E15,0x8E1B,0x8E16,0x8E11,0x8E19,0x8E26,0x8E27,0x0000,/* 0xF8-0xFF */ |
2478 | }; | 2478 | }; |
2479 | 2479 | ||
2480 | static wchar_t c2u_E8[256] = { | 2480 | static const wchar_t c2u_E8[256] = { |
2481 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x00-0x07 */ | 2481 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x00-0x07 */ |
2482 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x08-0x0F */ | 2482 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x08-0x0F */ |
2483 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x10-0x17 */ | 2483 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x10-0x17 */ |
@@ -2513,7 +2513,7 @@ static wchar_t c2u_E8[256] = { | |||
2513 | 0x5111,0x51DE,0x5334,0x53E1,0x5670,0x5660,0x566E,0x0000,/* 0xF8-0xFF */ | 2513 | 0x5111,0x51DE,0x5334,0x53E1,0x5670,0x5660,0x566E,0x0000,/* 0xF8-0xFF */ |
2514 | }; | 2514 | }; |
2515 | 2515 | ||
2516 | static wchar_t c2u_E9[256] = { | 2516 | static const wchar_t c2u_E9[256] = { |
2517 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x00-0x07 */ | 2517 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x00-0x07 */ |
2518 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x08-0x0F */ | 2518 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x08-0x0F */ |
2519 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x10-0x17 */ | 2519 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x10-0x17 */ |
@@ -2549,7 +2549,7 @@ static wchar_t c2u_E9[256] = { | |||
2549 | 0x6FAE,0x6FBA,0x6FAC,0x6FAA,0x6FCF,0x6FBF,0x6FB8,0x0000,/* 0xF8-0xFF */ | 2549 | 0x6FAE,0x6FBA,0x6FAC,0x6FAA,0x6FCF,0x6FBF,0x6FB8,0x0000,/* 0xF8-0xFF */ |
2550 | }; | 2550 | }; |
2551 | 2551 | ||
2552 | static wchar_t c2u_EA[256] = { | 2552 | static const wchar_t c2u_EA[256] = { |
2553 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x00-0x07 */ | 2553 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x00-0x07 */ |
2554 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x08-0x0F */ | 2554 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x08-0x0F */ |
2555 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x10-0x17 */ | 2555 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x10-0x17 */ |
@@ -2585,7 +2585,7 @@ static wchar_t c2u_EA[256] = { | |||
2585 | 0x8556,0x8545,0x856B,0x854D,0x8553,0x8561,0x8558,0x0000,/* 0xF8-0xFF */ | 2585 | 0x8556,0x8545,0x856B,0x854D,0x8553,0x8561,0x8558,0x0000,/* 0xF8-0xFF */ |
2586 | }; | 2586 | }; |
2587 | 2587 | ||
2588 | static wchar_t c2u_EB[256] = { | 2588 | static const wchar_t c2u_EB[256] = { |
2589 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x00-0x07 */ | 2589 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x00-0x07 */ |
2590 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x08-0x0F */ | 2590 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x08-0x0F */ |
2591 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x10-0x17 */ | 2591 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x10-0x17 */ |
@@ -2621,7 +2621,7 @@ static wchar_t c2u_EB[256] = { | |||
2621 | 0x92FF,0x9329,0x9339,0x9335,0x932A,0x9314,0x930C,0x0000,/* 0xF8-0xFF */ | 2621 | 0x92FF,0x9329,0x9339,0x9335,0x932A,0x9314,0x930C,0x0000,/* 0xF8-0xFF */ |
2622 | }; | 2622 | }; |
2623 | 2623 | ||
2624 | static wchar_t c2u_EC[256] = { | 2624 | static const wchar_t c2u_EC[256] = { |
2625 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x00-0x07 */ | 2625 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x00-0x07 */ |
2626 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x08-0x0F */ | 2626 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x08-0x0F */ |
2627 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x10-0x17 */ | 2627 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x10-0x17 */ |
@@ -2657,7 +2657,7 @@ static wchar_t c2u_EC[256] = { | |||
2657 | 0x6A9F,0x6A9B,0x6AA1,0x6A9E,0x6A87,0x6A93,0x6A8E,0x0000,/* 0xF8-0xFF */ | 2657 | 0x6A9F,0x6A9B,0x6AA1,0x6A9E,0x6A87,0x6A93,0x6A8E,0x0000,/* 0xF8-0xFF */ |
2658 | }; | 2658 | }; |
2659 | 2659 | ||
2660 | static wchar_t c2u_ED[256] = { | 2660 | static const wchar_t c2u_ED[256] = { |
2661 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x00-0x07 */ | 2661 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x00-0x07 */ |
2662 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x08-0x0F */ | 2662 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x08-0x0F */ |
2663 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x10-0x17 */ | 2663 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x10-0x17 */ |
@@ -2693,7 +2693,7 @@ static wchar_t c2u_ED[256] = { | |||
2693 | 0x85A0,0x858B,0x85A3,0x857B,0x85A4,0x859A,0x859E,0x0000,/* 0xF8-0xFF */ | 2693 | 0x85A0,0x858B,0x85A3,0x857B,0x85A4,0x859A,0x859E,0x0000,/* 0xF8-0xFF */ |
2694 | }; | 2694 | }; |
2695 | 2695 | ||
2696 | static wchar_t c2u_EE[256] = { | 2696 | static const wchar_t c2u_EE[256] = { |
2697 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x00-0x07 */ | 2697 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x00-0x07 */ |
2698 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x08-0x0F */ | 2698 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x08-0x0F */ |
2699 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x10-0x17 */ | 2699 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x10-0x17 */ |
@@ -2729,7 +2729,7 @@ static wchar_t c2u_EE[256] = { | |||
2729 | 0x971F,0x9718,0x971D,0x9719,0x979A,0x97A1,0x979C,0x0000,/* 0xF8-0xFF */ | 2729 | 0x971F,0x9718,0x971D,0x9719,0x979A,0x97A1,0x979C,0x0000,/* 0xF8-0xFF */ |
2730 | }; | 2730 | }; |
2731 | 2731 | ||
2732 | static wchar_t c2u_EF[256] = { | 2732 | static const wchar_t c2u_EF[256] = { |
2733 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x00-0x07 */ | 2733 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x00-0x07 */ |
2734 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x08-0x0F */ | 2734 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x08-0x0F */ |
2735 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x10-0x17 */ | 2735 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x10-0x17 */ |
@@ -2765,7 +2765,7 @@ static wchar_t c2u_EF[256] = { | |||
2765 | 0x700A,0x7201,0x71FF,0x71F9,0x7203,0x71FD,0x7376,0x0000,/* 0xF8-0xFF */ | 2765 | 0x700A,0x7201,0x71FF,0x71F9,0x7203,0x71FD,0x7376,0x0000,/* 0xF8-0xFF */ |
2766 | }; | 2766 | }; |
2767 | 2767 | ||
2768 | static wchar_t c2u_F0[256] = { | 2768 | static const wchar_t c2u_F0[256] = { |
2769 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x00-0x07 */ | 2769 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x00-0x07 */ |
2770 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x08-0x0F */ | 2770 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x08-0x0F */ |
2771 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x10-0x17 */ | 2771 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x10-0x17 */ |
@@ -2801,7 +2801,7 @@ static wchar_t c2u_F0[256] = { | |||
2801 | 0x8E62,0x8E60,0x8E57,0x8E56,0x8E5E,0x8E65,0x8E67,0x0000,/* 0xF8-0xFF */ | 2801 | 0x8E62,0x8E60,0x8E57,0x8E56,0x8E5E,0x8E65,0x8E67,0x0000,/* 0xF8-0xFF */ |
2802 | }; | 2802 | }; |
2803 | 2803 | ||
2804 | static wchar_t c2u_F1[256] = { | 2804 | static const wchar_t c2u_F1[256] = { |
2805 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x00-0x07 */ | 2805 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x00-0x07 */ |
2806 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x08-0x0F */ | 2806 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x08-0x0F */ |
2807 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x10-0x17 */ | 2807 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x10-0x17 */ |
@@ -2837,7 +2837,7 @@ static wchar_t c2u_F1[256] = { | |||
2837 | 0x58DB,0x5912,0x5B3D,0x5B3E,0x5B3F,0x5DC3,0x5E70,0x0000,/* 0xF8-0xFF */ | 2837 | 0x58DB,0x5912,0x5B3D,0x5B3E,0x5B3F,0x5DC3,0x5E70,0x0000,/* 0xF8-0xFF */ |
2838 | }; | 2838 | }; |
2839 | 2839 | ||
2840 | static wchar_t c2u_F2[256] = { | 2840 | static const wchar_t c2u_F2[256] = { |
2841 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x00-0x07 */ | 2841 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x00-0x07 */ |
2842 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x08-0x0F */ | 2842 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x08-0x0F */ |
2843 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x10-0x17 */ | 2843 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x10-0x17 */ |
@@ -2873,7 +2873,7 @@ static wchar_t c2u_F2[256] = { | |||
2873 | 0x8B4A,0x8B40,0x8B53,0x8B56,0x8B54,0x8B4B,0x8B55,0x0000,/* 0xF8-0xFF */ | 2873 | 0x8B4A,0x8B40,0x8B53,0x8B56,0x8B54,0x8B4B,0x8B55,0x0000,/* 0xF8-0xFF */ |
2874 | }; | 2874 | }; |
2875 | 2875 | ||
2876 | static wchar_t c2u_F3[256] = { | 2876 | static const wchar_t c2u_F3[256] = { |
2877 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x00-0x07 */ | 2877 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x00-0x07 */ |
2878 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x08-0x0F */ | 2878 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x08-0x0F */ |
2879 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x10-0x17 */ | 2879 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x10-0x17 */ |
@@ -2909,7 +2909,7 @@ static wchar_t c2u_F3[256] = { | |||
2909 | 0x9F41,0x9F4D,0x9F56,0x9F57,0x9F58,0x5337,0x56B2,0x0000,/* 0xF8-0xFF */ | 2909 | 0x9F41,0x9F4D,0x9F56,0x9F57,0x9F58,0x5337,0x56B2,0x0000,/* 0xF8-0xFF */ |
2910 | }; | 2910 | }; |
2911 | 2911 | ||
2912 | static wchar_t c2u_F4[256] = { | 2912 | static const wchar_t c2u_F4[256] = { |
2913 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x00-0x07 */ | 2913 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x00-0x07 */ |
2914 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x08-0x0F */ | 2914 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x08-0x0F */ |
2915 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x10-0x17 */ | 2915 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x10-0x17 */ |
@@ -2945,7 +2945,7 @@ static wchar_t c2u_F4[256] = { | |||
2945 | 0x9416,0x9412,0x93FA,0x9409,0x93F8,0x940A,0x93FF,0x0000,/* 0xF8-0xFF */ | 2945 | 0x9416,0x9412,0x93FA,0x9409,0x93F8,0x940A,0x93FF,0x0000,/* 0xF8-0xFF */ |
2946 | }; | 2946 | }; |
2947 | 2947 | ||
2948 | static wchar_t c2u_F5[256] = { | 2948 | static const wchar_t c2u_F5[256] = { |
2949 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x00-0x07 */ | 2949 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x00-0x07 */ |
2950 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x08-0x0F */ | 2950 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x08-0x0F */ |
2951 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x10-0x17 */ | 2951 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x10-0x17 */ |
@@ -2981,7 +2981,7 @@ static wchar_t c2u_F5[256] = { | |||
2981 | 0x8627,0x862E,0x8621,0x8620,0x8629,0x861E,0x8625,0x0000,/* 0xF8-0xFF */ | 2981 | 0x8627,0x862E,0x8621,0x8620,0x8629,0x861E,0x8625,0x0000,/* 0xF8-0xFF */ |
2982 | }; | 2982 | }; |
2983 | 2983 | ||
2984 | static wchar_t c2u_F6[256] = { | 2984 | static const wchar_t c2u_F6[256] = { |
2985 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x00-0x07 */ | 2985 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x00-0x07 */ |
2986 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x08-0x0F */ | 2986 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x08-0x0F */ |
2987 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x10-0x17 */ | 2987 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x10-0x17 */ |
@@ -3017,7 +3017,7 @@ static wchar_t c2u_F6[256] = { | |||
3017 | 0x7A70,0x7A71,0x7C57,0x7C5C,0x7C59,0x7C5B,0x7C5A,0x0000,/* 0xF8-0xFF */ | 3017 | 0x7A70,0x7A71,0x7C57,0x7C5C,0x7C59,0x7C5B,0x7C5A,0x0000,/* 0xF8-0xFF */ |
3018 | }; | 3018 | }; |
3019 | 3019 | ||
3020 | static wchar_t c2u_F7[256] = { | 3020 | static const wchar_t c2u_F7[256] = { |
3021 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x00-0x07 */ | 3021 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x00-0x07 */ |
3022 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x08-0x0F */ | 3022 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x08-0x0F */ |
3023 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x10-0x17 */ | 3023 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x10-0x17 */ |
@@ -3053,7 +3053,7 @@ static wchar_t c2u_F7[256] = { | |||
3053 | 0x8832,0x882E,0x8833,0x8976,0x8974,0x8973,0x89FE,0x0000,/* 0xF8-0xFF */ | 3053 | 0x8832,0x882E,0x8833,0x8976,0x8974,0x8973,0x89FE,0x0000,/* 0xF8-0xFF */ |
3054 | }; | 3054 | }; |
3055 | 3055 | ||
3056 | static wchar_t c2u_F8[256] = { | 3056 | static const wchar_t c2u_F8[256] = { |
3057 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x00-0x07 */ | 3057 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x00-0x07 */ |
3058 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x08-0x0F */ | 3058 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x08-0x0F */ |
3059 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x10-0x17 */ | 3059 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x10-0x17 */ |
@@ -3089,7 +3089,7 @@ static wchar_t c2u_F8[256] = { | |||
3089 | 0x77D8,0x77D9,0x7939,0x7C69,0x7C6B,0x7CF6,0x7E9A,0x0000,/* 0xF8-0xFF */ | 3089 | 0x77D8,0x77D9,0x7939,0x7C69,0x7C6B,0x7CF6,0x7E9A,0x0000,/* 0xF8-0xFF */ |
3090 | }; | 3090 | }; |
3091 | 3091 | ||
3092 | static wchar_t c2u_F9[256] = { | 3092 | static const wchar_t c2u_F9[256] = { |
3093 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x00-0x07 */ | 3093 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x00-0x07 */ |
3094 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x08-0x0F */ | 3094 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x08-0x0F */ |
3095 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x10-0x17 */ | 3095 | 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/* 0x10-0x17 */ |
@@ -3125,7 +3125,7 @@ static wchar_t c2u_F9[256] = { | |||
3125 | 0x2551,0x2550,0x256D,0x256E,0x2570,0x256F,0x2593,0x0000,/* 0xF8-0xFF */ | 3125 | 0x2551,0x2550,0x256D,0x256E,0x2570,0x256F,0x2593,0x0000,/* 0xF8-0xFF */ |
3126 | }; | 3126 | }; |
3127 | 3127 | ||
3128 | static wchar_t *page_charset2uni[256] = { | 3128 | static const wchar_t *page_charset2uni[256] = { |
3129 | NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, | 3129 | NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, |
3130 | NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, | 3130 | NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, |
3131 | NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, | 3131 | NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, |
@@ -3160,7 +3160,7 @@ static wchar_t *page_charset2uni[256] = { | |||
3160 | c2u_F8, c2u_F9, NULL, NULL, NULL, NULL, NULL, NULL, | 3160 | c2u_F8, c2u_F9, NULL, NULL, NULL, NULL, NULL, NULL, |
3161 | }; | 3161 | }; |
3162 | 3162 | ||
3163 | static unsigned char u2c_02[512] = { | 3163 | static const unsigned char u2c_02[512] = { |
3164 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x00-0x03 */ | 3164 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x00-0x03 */ |
3165 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x04-0x07 */ | 3165 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x04-0x07 */ |
3166 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x08-0x0B */ | 3166 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x08-0x0B */ |
@@ -3219,7 +3219,7 @@ static unsigned char u2c_02[512] = { | |||
3219 | 0x00, 0x00, 0xA3, 0xBB, 0x00, 0x00, 0x00, 0x00, /* 0xD8-0xDB */ | 3219 | 0x00, 0x00, 0xA3, 0xBB, 0x00, 0x00, 0x00, 0x00, /* 0xD8-0xDB */ |
3220 | }; | 3220 | }; |
3221 | 3221 | ||
3222 | static unsigned char u2c_03[512] = { | 3222 | static const unsigned char u2c_03[512] = { |
3223 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x00-0x03 */ | 3223 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x00-0x03 */ |
3224 | 0x00, 0x00, 0xA1, 0xC2, 0x00, 0x00, 0x00, 0x00, /* 0x04-0x07 */ | 3224 | 0x00, 0x00, 0xA1, 0xC2, 0x00, 0x00, 0x00, 0x00, /* 0x04-0x07 */ |
3225 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x08-0x0B */ | 3225 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x08-0x0B */ |
@@ -3274,7 +3274,7 @@ static unsigned char u2c_03[512] = { | |||
3274 | 0xA3, 0x72, 0xA3, 0x73, 0x00, 0x00, 0x00, 0x00, /* 0xC8-0xCB */ | 3274 | 0xA3, 0x72, 0xA3, 0x73, 0x00, 0x00, 0x00, 0x00, /* 0xC8-0xCB */ |
3275 | }; | 3275 | }; |
3276 | 3276 | ||
3277 | static unsigned char u2c_20[512] = { | 3277 | static const unsigned char u2c_20[512] = { |
3278 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x00-0x03 */ | 3278 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x00-0x03 */ |
3279 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x04-0x07 */ | 3279 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x04-0x07 */ |
3280 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x08-0x0B */ | 3280 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x08-0x0B */ |
@@ -3293,7 +3293,7 @@ static unsigned char u2c_20[512] = { | |||
3293 | 0x00, 0x00, 0x00, 0x00, 0xA1, 0xC3, 0x00, 0x00, /* 0x3C-0x3F */ | 3293 | 0x00, 0x00, 0x00, 0x00, 0xA1, 0xC3, 0x00, 0x00, /* 0x3C-0x3F */ |
3294 | }; | 3294 | }; |
3295 | 3295 | ||
3296 | static unsigned char u2c_21[512] = { | 3296 | static const unsigned char u2c_21[512] = { |
3297 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xA2, 0x4A, /* 0x00-0x03 */ | 3297 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xA2, 0x4A, /* 0x00-0x03 */ |
3298 | 0x00, 0x00, 0xA1, 0xC1, 0x00, 0x00, 0x00, 0x00, /* 0x04-0x07 */ | 3298 | 0x00, 0x00, 0xA1, 0xC1, 0x00, 0x00, 0x00, 0x00, /* 0x04-0x07 */ |
3299 | 0x00, 0x00, 0xA2, 0x4B, 0x00, 0x00, 0x00, 0x00, /* 0x08-0x0B */ | 3299 | 0x00, 0x00, 0xA2, 0x4B, 0x00, 0x00, 0x00, 0x00, /* 0x08-0x0B */ |
@@ -3336,7 +3336,7 @@ static unsigned char u2c_21[512] = { | |||
3336 | 0xA1, 0xFB, 0xA1, 0xFA, 0x00, 0x00, 0x00, 0x00, /* 0x98-0x9B */ | 3336 | 0xA1, 0xFB, 0xA1, 0xFA, 0x00, 0x00, 0x00, 0x00, /* 0x98-0x9B */ |
3337 | }; | 3337 | }; |
3338 | 3338 | ||
3339 | static unsigned char u2c_22[512] = { | 3339 | static const unsigned char u2c_22[512] = { |
3340 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x00-0x03 */ | 3340 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x00-0x03 */ |
3341 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x04-0x07 */ | 3341 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x04-0x07 */ |
3342 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x08-0x0B */ | 3342 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x08-0x0B */ |
@@ -3388,12 +3388,12 @@ static unsigned char u2c_22[512] = { | |||
3388 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xA1, 0xE9, /* 0xBC-0xBF */ | 3388 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xA1, 0xE9, /* 0xBC-0xBF */ |
3389 | }; | 3389 | }; |
3390 | 3390 | ||
3391 | static unsigned char u2c_23[512] = { | 3391 | static const unsigned char u2c_23[512] = { |
3392 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x00-0x03 */ | 3392 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x00-0x03 */ |
3393 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xA1, 0x5B, /* 0x04-0x07 */ | 3393 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xA1, 0x5B, /* 0x04-0x07 */ |
3394 | }; | 3394 | }; |
3395 | 3395 | ||
3396 | static unsigned char u2c_25[512] = { | 3396 | static const unsigned char u2c_25[512] = { |
3397 | 0xA2, 0x77, 0x00, 0x00, 0xA2, 0x78, 0x00, 0x00, /* 0x00-0x03 */ | 3397 | 0xA2, 0x77, 0x00, 0x00, 0xA2, 0x78, 0x00, 0x00, /* 0x00-0x03 */ |
3398 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x04-0x07 */ | 3398 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x04-0x07 */ |
3399 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x08-0x0B */ | 3399 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x08-0x0B */ |
@@ -3455,7 +3455,7 @@ static unsigned char u2c_25[512] = { | |||
3455 | 0xA2, 0xAB, 0xA2, 0xAA, 0x00, 0x00, 0x00, 0x00, /* 0xE4-0xE7 */ | 3455 | 0xA2, 0xAB, 0xA2, 0xAA, 0x00, 0x00, 0x00, 0x00, /* 0xE4-0xE7 */ |
3456 | }; | 3456 | }; |
3457 | 3457 | ||
3458 | static unsigned char u2c_26[512] = { | 3458 | static const unsigned char u2c_26[512] = { |
3459 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x00-0x03 */ | 3459 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x00-0x03 */ |
3460 | 0x00, 0x00, 0xA1, 0xB9, 0xA1, 0xB8, 0x00, 0x00, /* 0x04-0x07 */ | 3460 | 0x00, 0x00, 0xA1, 0xB9, 0xA1, 0xB8, 0x00, 0x00, /* 0x04-0x07 */ |
3461 | 0x00, 0x00, 0xA1, 0xF3, 0x00, 0x00, 0x00, 0x00, /* 0x08-0x0B */ | 3461 | 0x00, 0x00, 0xA1, 0xF3, 0x00, 0x00, 0x00, 0x00, /* 0x08-0x0B */ |
@@ -3475,7 +3475,7 @@ static unsigned char u2c_26[512] = { | |||
3475 | 0xA1, 0xF0, 0xA1, 0xF2, 0xA1, 0xF1, 0x00, 0x00, /* 0x40-0x43 */ | 3475 | 0xA1, 0xF0, 0xA1, 0xF2, 0xA1, 0xF1, 0x00, 0x00, /* 0x40-0x43 */ |
3476 | }; | 3476 | }; |
3477 | 3477 | ||
3478 | static unsigned char u2c_30[512] = { | 3478 | static const unsigned char u2c_30[512] = { |
3479 | 0xA1, 0x40, 0xA1, 0x42, 0xA1, 0x43, 0xA1, 0xB2, /* 0x00-0x03 */ | 3479 | 0xA1, 0x40, 0xA1, 0x42, 0xA1, 0x43, 0xA1, 0xB2, /* 0x00-0x03 */ |
3480 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x04-0x07 */ | 3480 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x04-0x07 */ |
3481 | 0xA1, 0x71, 0xA1, 0x72, 0xA1, 0x6D, 0xA1, 0x6E, /* 0x08-0x0B */ | 3481 | 0xA1, 0x71, 0xA1, 0x72, 0xA1, 0x6D, 0xA1, 0x6E, /* 0x08-0x0B */ |
@@ -3491,7 +3491,7 @@ static unsigned char u2c_30[512] = { | |||
3491 | 0xA1, 0xCA, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x30-0x33 */ | 3491 | 0xA1, 0xCA, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x30-0x33 */ |
3492 | }; | 3492 | }; |
3493 | 3493 | ||
3494 | static unsigned char u2c_31[512] = { | 3494 | static const unsigned char u2c_31[512] = { |
3495 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x00-0x03 */ | 3495 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x00-0x03 */ |
3496 | 0x00, 0x00, 0xA3, 0x74, 0xA3, 0x75, 0xA3, 0x76, /* 0x04-0x07 */ | 3496 | 0x00, 0x00, 0xA3, 0x74, 0xA3, 0x75, 0xA3, 0x76, /* 0x04-0x07 */ |
3497 | 0xA3, 0x77, 0xA3, 0x78, 0xA3, 0x79, 0xA3, 0x7A, /* 0x08-0x0B */ | 3497 | 0xA3, 0x77, 0xA3, 0x78, 0xA3, 0x79, 0xA3, 0x7A, /* 0x08-0x0B */ |
@@ -3535,7 +3535,7 @@ static unsigned char u2c_31[512] = { | |||
3535 | 0xA4, 0x42, 0xA4, 0xD1, 0xA6, 0x61, 0xA4, 0x48, /* 0x9C-0x9F */ | 3535 | 0xA4, 0x42, 0xA4, 0xD1, 0xA6, 0x61, 0xA4, 0x48, /* 0x9C-0x9F */ |
3536 | }; | 3536 | }; |
3537 | 3537 | ||
3538 | static unsigned char u2c_32[512] = { | 3538 | static const unsigned char u2c_32[512] = { |
3539 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x00-0x03 */ | 3539 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x00-0x03 */ |
3540 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x04-0x07 */ | 3540 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x04-0x07 */ |
3541 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x08-0x0B */ | 3541 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x08-0x0B */ |
@@ -3584,7 +3584,7 @@ static unsigned char u2c_32[512] = { | |||
3584 | 0xA9, 0x5D, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xB0-0xB3 */ | 3584 | 0xA9, 0x5D, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xB0-0xB3 */ |
3585 | }; | 3585 | }; |
3586 | 3586 | ||
3587 | static unsigned char u2c_33[512] = { | 3587 | static const unsigned char u2c_33[512] = { |
3588 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x00-0x03 */ | 3588 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x00-0x03 */ |
3589 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x04-0x07 */ | 3589 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x04-0x07 */ |
3590 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x08-0x0B */ | 3590 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x08-0x0B */ |
@@ -3642,7 +3642,7 @@ static unsigned char u2c_33[512] = { | |||
3642 | 0x00, 0x00, 0xA2, 0x4F, 0x00, 0x00, 0x00, 0x00, /* 0xD4-0xD7 */ | 3642 | 0x00, 0x00, 0xA2, 0x4F, 0x00, 0x00, 0x00, 0x00, /* 0xD4-0xD7 */ |
3643 | }; | 3643 | }; |
3644 | 3644 | ||
3645 | static unsigned char u2c_4E[512] = { | 3645 | static const unsigned char u2c_4E[512] = { |
3646 | 0xA4, 0x40, 0xA4, 0x42, 0x00, 0x00, 0xA4, 0x43, /* 0x00-0x03 */ | 3646 | 0xA4, 0x40, 0xA4, 0x42, 0x00, 0x00, 0xA4, 0x43, /* 0x00-0x03 */ |
3647 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xC9, 0x45, /* 0x04-0x07 */ | 3647 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xC9, 0x45, /* 0x04-0x07 */ |
3648 | 0xA4, 0x56, 0xA4, 0x54, 0xA4, 0x57, 0xA4, 0x55, /* 0x08-0x0B */ | 3648 | 0xA4, 0x56, 0xA4, 0x54, 0xA4, 0x57, 0xA4, 0x55, /* 0x08-0x0B */ |
@@ -3710,7 +3710,7 @@ static unsigned char u2c_4E[512] = { | |||
3710 | 0x00, 0x00, 0xA5, 0xF7, 0x00, 0x00, 0xA5, 0xE9, /* 0xFC-0xFF */ | 3710 | 0x00, 0x00, 0xA5, 0xF7, 0x00, 0x00, 0xA5, 0xE9, /* 0xFC-0xFF */ |
3711 | }; | 3711 | }; |
3712 | 3712 | ||
3713 | static unsigned char u2c_4F[512] = { | 3713 | static const unsigned char u2c_4F[512] = { |
3714 | 0xC9, 0xB1, 0xA5, 0xF8, 0xC9, 0xB5, 0x00, 0x00, /* 0x00-0x03 */ | 3714 | 0xC9, 0xB1, 0xA5, 0xF8, 0xC9, 0xB5, 0x00, 0x00, /* 0x00-0x03 */ |
3715 | 0xC9, 0xB9, 0xC9, 0xB6, 0x00, 0x00, 0x00, 0x00, /* 0x04-0x07 */ | 3715 | 0xC9, 0xB9, 0xC9, 0xB6, 0x00, 0x00, 0x00, 0x00, /* 0x04-0x07 */ |
3716 | 0xC9, 0xB3, 0xA5, 0xEA, 0xA5, 0xEC, 0xA5, 0xF9, /* 0x08-0x0B */ | 3716 | 0xC9, 0xB3, 0xA5, 0xEA, 0xA5, 0xEC, 0xA5, 0xF9, /* 0x08-0x0B */ |
@@ -3778,7 +3778,7 @@ static unsigned char u2c_4F[512] = { | |||
3778 | 0x00, 0x00, 0x00, 0x00, 0xAD, 0xDA, 0x00, 0x00, /* 0xFC-0xFF */ | 3778 | 0x00, 0x00, 0x00, 0x00, 0xAD, 0xDA, 0x00, 0x00, /* 0xFC-0xFF */ |
3779 | }; | 3779 | }; |
3780 | 3780 | ||
3781 | static unsigned char u2c_50[512] = { | 3781 | static const unsigned char u2c_50[512] = { |
3782 | 0xAD, 0xCE, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x00-0x03 */ | 3782 | 0xAD, 0xCE, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x00-0x03 */ |
3783 | 0x00, 0x00, 0xD0, 0xC9, 0xAD, 0xC7, 0xD0, 0xCA, /* 0x04-0x07 */ | 3783 | 0x00, 0x00, 0xD0, 0xC9, 0xAD, 0xC7, 0xD0, 0xCA, /* 0x04-0x07 */ |
3784 | 0x00, 0x00, 0xAD, 0xDC, 0x00, 0x00, 0xAD, 0xD3, /* 0x08-0x0B */ | 3784 | 0x00, 0x00, 0xAD, 0xDC, 0x00, 0x00, 0xAD, 0xD3, /* 0x08-0x0B */ |
@@ -3846,7 +3846,7 @@ static unsigned char u2c_50[512] = { | |||
3846 | 0x00, 0x00, 0xE4, 0xF0, 0xE4, 0xED, 0xE4, 0xE6, /* 0xFC-0xFF */ | 3846 | 0x00, 0x00, 0xE4, 0xF0, 0xE4, 0xED, 0xE4, 0xE6, /* 0xFC-0xFF */ |
3847 | }; | 3847 | }; |
3848 | 3848 | ||
3849 | static unsigned char u2c_51[512] = { | 3849 | static const unsigned char u2c_51[512] = { |
3850 | 0xBB, 0xF6, 0x00, 0x00, 0xBB, 0xFA, 0xE4, 0xE7, /* 0x00-0x03 */ | 3850 | 0xBB, 0xF6, 0x00, 0x00, 0xBB, 0xFA, 0xE4, 0xE7, /* 0x00-0x03 */ |
3851 | 0xBB, 0xF5, 0xBB, 0xFD, 0xE4, 0xEA, 0xE4, 0xEB, /* 0x04-0x07 */ | 3851 | 0xBB, 0xF5, 0xBB, 0xFD, 0xE4, 0xEA, 0xE4, 0xEB, /* 0x04-0x07 */ |
3852 | 0xBB, 0xFB, 0xBB, 0xFC, 0xE4, 0xF1, 0xE4, 0xEE, /* 0x08-0x0B */ | 3852 | 0xBB, 0xFB, 0xBB, 0xFC, 0xE4, 0xF1, 0xE4, 0xEE, /* 0x08-0x0B */ |
@@ -3914,7 +3914,7 @@ static unsigned char u2c_51[512] = { | |||
3914 | 0x00, 0x00, 0xA8, 0xE7, 0x00, 0x00, 0x00, 0x00, /* 0xFC-0xFF */ | 3914 | 0x00, 0x00, 0xA8, 0xE7, 0x00, 0x00, 0x00, 0x00, /* 0xFC-0xFF */ |
3915 | }; | 3915 | }; |
3916 | 3916 | ||
3917 | static unsigned char u2c_52[512] = { | 3917 | static const unsigned char u2c_52[512] = { |
3918 | 0xA4, 0x4D, 0xA4, 0x4E, 0x00, 0x00, 0xA4, 0x62, /* 0x00-0x03 */ | 3918 | 0xA4, 0x4D, 0xA4, 0x4E, 0x00, 0x00, 0xA4, 0x62, /* 0x00-0x03 */ |
3919 | 0x00, 0x00, 0x00, 0x00, 0xA4, 0xC0, 0xA4, 0xC1, /* 0x04-0x07 */ | 3919 | 0x00, 0x00, 0x00, 0x00, 0xA4, 0xC0, 0xA4, 0xC1, /* 0x04-0x07 */ |
3920 | 0xA4, 0xC2, 0xC9, 0xBE, 0xA5, 0x5A, 0x00, 0x00, /* 0x08-0x0B */ | 3920 | 0xA4, 0xC2, 0xC9, 0xBE, 0xA5, 0x5A, 0x00, 0x00, /* 0x08-0x0B */ |
@@ -3982,7 +3982,7 @@ static unsigned char u2c_52[512] = { | |||
3982 | 0xC9, 0x56, 0x00, 0x00, 0xA4, 0xC4, 0xA4, 0xC5, /* 0xFC-0xFF */ | 3982 | 0xC9, 0x56, 0x00, 0x00, 0xA4, 0xC4, 0xA4, 0xC5, /* 0xFC-0xFF */ |
3983 | }; | 3983 | }; |
3984 | 3984 | ||
3985 | static unsigned char u2c_53[512] = { | 3985 | static const unsigned char u2c_53[512] = { |
3986 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x00-0x03 */ | 3986 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x00-0x03 */ |
3987 | 0x00, 0x00, 0xA5, 0x5D, 0xA5, 0x5E, 0x00, 0x00, /* 0x04-0x07 */ | 3987 | 0x00, 0x00, 0xA5, 0x5D, 0xA5, 0x5E, 0x00, 0x00, /* 0x04-0x07 */ |
3988 | 0xA6, 0x49, 0xCA, 0x71, 0xCB, 0xD6, 0xCB, 0xD7, /* 0x08-0x0B */ | 3988 | 0xA6, 0x49, 0xCA, 0x71, 0xCB, 0xD6, 0xCB, 0xD7, /* 0x08-0x0B */ |
@@ -4050,7 +4050,7 @@ static unsigned char u2c_53[512] = { | |||
4050 | 0xA5, 0x70, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xFC-0xFF */ | 4050 | 0xA5, 0x70, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xFC-0xFF */ |
4051 | }; | 4051 | }; |
4052 | 4052 | ||
4053 | static unsigned char u2c_54[512] = { | 4053 | static const unsigned char u2c_54[512] = { |
4054 | 0x00, 0x00, 0xA6, 0x53, 0x00, 0x00, 0xA6, 0x59, /* 0x00-0x03 */ | 4054 | 0x00, 0x00, 0xA6, 0x53, 0x00, 0x00, 0xA6, 0x59, /* 0x00-0x03 */ |
4055 | 0xA6, 0x55, 0x00, 0x00, 0xA6, 0x5B, 0xC9, 0xC5, /* 0x04-0x07 */ | 4055 | 0xA6, 0x55, 0x00, 0x00, 0xA6, 0x5B, 0xC9, 0xC5, /* 0x04-0x07 */ |
4056 | 0xA6, 0x58, 0xA6, 0x4E, 0xA6, 0x51, 0xA6, 0x54, /* 0x08-0x0B */ | 4056 | 0xA6, 0x58, 0xA6, 0x4E, 0xA6, 0x51, 0xA6, 0x54, /* 0x08-0x0B */ |
@@ -4118,7 +4118,7 @@ static unsigned char u2c_54[512] = { | |||
4118 | 0xAD, 0xF3, 0xAE, 0x43, 0x00, 0x00, 0xD0, 0xF8, /* 0xFC-0xFF */ | 4118 | 0xAD, 0xF3, 0xAE, 0x43, 0x00, 0x00, 0xD0, 0xF8, /* 0xFC-0xFF */ |
4119 | }; | 4119 | }; |
4120 | 4120 | ||
4121 | static unsigned char u2c_55[512] = { | 4121 | static const unsigned char u2c_55[512] = { |
4122 | 0x00, 0x00, 0xAD, 0xF1, 0x00, 0x00, 0xD1, 0x46, /* 0x00-0x03 */ | 4122 | 0x00, 0x00, 0xAD, 0xF1, 0x00, 0x00, 0xD1, 0x46, /* 0x00-0x03 */ |
4123 | 0xD0, 0xF9, 0xD0, 0xFD, 0xAD, 0xF6, 0xAE, 0x42, /* 0x04-0x07 */ | 4123 | 0xD0, 0xF9, 0xD0, 0xFD, 0xAD, 0xF6, 0xAE, 0x42, /* 0x04-0x07 */ |
4124 | 0xD0, 0xFA, 0xAD, 0xFC, 0xD1, 0x40, 0xD1, 0x47, /* 0x08-0x0B */ | 4124 | 0xD0, 0xFA, 0xAD, 0xFC, 0xD1, 0x40, 0xD1, 0x47, /* 0x08-0x0B */ |
@@ -4186,7 +4186,7 @@ static unsigned char u2c_55[512] = { | |||
4186 | 0xE1, 0x4B, 0xB9, 0xC2, 0xB9, 0xBE, 0xE1, 0x54, /* 0xFC-0xFF */ | 4186 | 0xE1, 0x4B, 0xB9, 0xC2, 0xB9, 0xBE, 0xE1, 0x54, /* 0xFC-0xFF */ |
4187 | }; | 4187 | }; |
4188 | 4188 | ||
4189 | static unsigned char u2c_56[512] = { | 4189 | static const unsigned char u2c_56[512] = { |
4190 | 0xB9, 0xBF, 0xE1, 0x4E, 0xE1, 0x50, 0x00, 0x00, /* 0x00-0x03 */ | 4190 | 0xB9, 0xBF, 0xE1, 0x4E, 0xE1, 0x50, 0x00, 0x00, /* 0x00-0x03 */ |
4191 | 0xE1, 0x53, 0x00, 0x00, 0xB9, 0xC4, 0x00, 0x00, /* 0x04-0x07 */ | 4191 | 0xE1, 0x53, 0x00, 0x00, 0xB9, 0xC4, 0x00, 0x00, /* 0x04-0x07 */ |
4192 | 0xB9, 0xCB, 0xB9, 0xC5, 0x00, 0x00, 0x00, 0x00, /* 0x08-0x0B */ | 4192 | 0xB9, 0xCB, 0xB9, 0xC5, 0x00, 0x00, 0x00, 0x00, /* 0x08-0x0B */ |
@@ -4254,7 +4254,7 @@ static unsigned char u2c_56[512] = { | |||
4254 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xAB, 0xAA, /* 0xFC-0xFF */ | 4254 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xAB, 0xAA, /* 0xFC-0xFF */ |
4255 | }; | 4255 | }; |
4256 | 4256 | ||
4257 | static unsigned char u2c_57[512] = { | 4257 | static const unsigned char u2c_57[512] = { |
4258 | 0x00, 0x00, 0xD1, 0x48, 0xD1, 0x49, 0xAE, 0x45, /* 0x00-0x03 */ | 4258 | 0x00, 0x00, 0xD1, 0x48, 0xD1, 0x49, 0xAE, 0x45, /* 0x00-0x03 */ |
4259 | 0xAE, 0x46, 0x00, 0x00, 0x00, 0x00, 0xD4, 0xAC, /* 0x04-0x07 */ | 4259 | 0xAE, 0x46, 0x00, 0x00, 0x00, 0x00, 0xD4, 0xAC, /* 0x04-0x07 */ |
4260 | 0xB0, 0xE9, 0xB0, 0xEB, 0xD4, 0xAB, 0xB0, 0xEA, /* 0x08-0x0B */ | 4260 | 0xB0, 0xE9, 0xB0, 0xEB, 0xD4, 0xAB, 0xB0, 0xEA, /* 0x08-0x0B */ |
@@ -4322,7 +4322,7 @@ static unsigned char u2c_57[512] = { | |||
4322 | 0xD4, 0xC3, 0xD4, 0xB5, 0x00, 0x00, 0x00, 0x00, /* 0xFC-0xFF */ | 4322 | 0xD4, 0xC3, 0xD4, 0xB5, 0x00, 0x00, 0x00, 0x00, /* 0xFC-0xFF */ |
4323 | }; | 4323 | }; |
4324 | 4324 | ||
4325 | static unsigned char u2c_58[512] = { | 4325 | static const unsigned char u2c_58[512] = { |
4326 | 0xD4, 0xB3, 0xD4, 0xC6, 0xB0, 0xF3, 0x00, 0x00, /* 0x00-0x03 */ | 4326 | 0xD4, 0xB3, 0xD4, 0xC6, 0xB0, 0xF3, 0x00, 0x00, /* 0x00-0x03 */ |
4327 | 0xD4, 0xCC, 0xB0, 0xED, 0xB0, 0xEF, 0xD4, 0xBB, /* 0x04-0x07 */ | 4327 | 0xD4, 0xCC, 0xB0, 0xED, 0xB0, 0xEF, 0xD4, 0xBB, /* 0x04-0x07 */ |
4328 | 0xD4, 0xB6, 0xAE, 0x4B, 0xB0, 0xEE, 0xD4, 0xB8, /* 0x08-0x0B */ | 4328 | 0xD4, 0xB6, 0xAE, 0x4B, 0xB0, 0xEE, 0xD4, 0xB8, /* 0x08-0x0B */ |
@@ -4390,7 +4390,7 @@ static unsigned char u2c_58[512] = { | |||
4390 | 0xDC, 0xF2, 0xB9, 0xD8, 0xE1, 0x69, 0xE5, 0x53, /* 0xFC-0xFF */ | 4390 | 0xDC, 0xF2, 0xB9, 0xD8, 0xE1, 0x69, 0xE5, 0x53, /* 0xFC-0xFF */ |
4391 | }; | 4391 | }; |
4392 | 4392 | ||
4393 | static unsigned char u2c_59[512] = { | 4393 | static const unsigned char u2c_59[512] = { |
4394 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xC9, 0x5A, /* 0x00-0x03 */ | 4394 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xC9, 0x5A, /* 0x00-0x03 */ |
4395 | 0x00, 0x00, 0x00, 0x00, 0xCA, 0xB0, 0x00, 0x00, /* 0x04-0x07 */ | 4395 | 0x00, 0x00, 0x00, 0x00, 0xCA, 0xB0, 0x00, 0x00, /* 0x04-0x07 */ |
4396 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x08-0x0B */ | 4396 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x08-0x0B */ |
@@ -4458,7 +4458,7 @@ static unsigned char u2c_59[512] = { | |||
4458 | 0xCE, 0x6A, 0xCE, 0x69, 0xCE, 0x74, 0xAB, 0xBA, /* 0xFC-0xFF */ | 4458 | 0xCE, 0x6A, 0xCE, 0x69, 0xCE, 0x74, 0xAB, 0xBA, /* 0xFC-0xFF */ |
4459 | }; | 4459 | }; |
4460 | 4460 | ||
4461 | static unsigned char u2c_5A[512] = { | 4461 | static const unsigned char u2c_5A[512] = { |
4462 | 0xCE, 0x65, 0xAB, 0xC2, 0x00, 0x00, 0xAB, 0xBD, /* 0x00-0x03 */ | 4462 | 0xCE, 0x65, 0xAB, 0xC2, 0x00, 0x00, 0xAB, 0xBD, /* 0x00-0x03 */ |
4463 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x04-0x07 */ | 4463 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x04-0x07 */ |
4464 | 0x00, 0x00, 0xAE, 0x5C, 0xD1, 0x62, 0x00, 0x00, /* 0x08-0x0B */ | 4464 | 0x00, 0x00, 0xAE, 0x5C, 0xD1, 0x62, 0x00, 0x00, /* 0x08-0x0B */ |
@@ -4526,7 +4526,7 @@ static unsigned char u2c_5A[512] = { | |||
4526 | 0x00, 0x00, 0xE5, 0x56, 0x00, 0x00, 0xE5, 0x54, /* 0xFC-0xFF */ | 4526 | 0x00, 0x00, 0xE5, 0x56, 0x00, 0x00, 0xE5, 0x54, /* 0xFC-0xFF */ |
4527 | }; | 4527 | }; |
4528 | 4528 | ||
4529 | static unsigned char u2c_5B[512] = { | 4529 | static const unsigned char u2c_5B[512] = { |
4530 | 0x00, 0x00, 0xE5, 0x5D, 0xE5, 0x5B, 0xE5, 0x59, /* 0x00-0x03 */ | 4530 | 0x00, 0x00, 0xE5, 0x5D, 0xE5, 0x5B, 0xE5, 0x59, /* 0x00-0x03 */ |
4531 | 0x00, 0x00, 0xE5, 0x5F, 0x00, 0x00, 0xE5, 0x5E, /* 0x04-0x07 */ | 4531 | 0x00, 0x00, 0xE5, 0x5F, 0x00, 0x00, 0xE5, 0x5E, /* 0x04-0x07 */ |
4532 | 0xBC, 0x63, 0xBC, 0x5E, 0x00, 0x00, 0xBC, 0x60, /* 0x08-0x0B */ | 4532 | 0xBC, 0x63, 0xBC, 0x5E, 0x00, 0x00, 0xBC, 0x60, /* 0x08-0x0B */ |
@@ -4594,7 +4594,7 @@ static unsigned char u2c_5B[512] = { | |||
4594 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xFC-0xFF */ | 4594 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xFC-0xFF */ |
4595 | }; | 4595 | }; |
4596 | 4596 | ||
4597 | static unsigned char u2c_5C[512] = { | 4597 | static const unsigned char u2c_5C[512] = { |
4598 | 0x00, 0x00, 0xAB, 0xCA, 0x00, 0x00, 0xD1, 0x69, /* 0x00-0x03 */ | 4598 | 0x00, 0x00, 0xAB, 0xCA, 0x00, 0x00, 0xD1, 0x69, /* 0x00-0x03 */ |
4599 | 0xAE, 0x67, 0x00, 0x00, 0x00, 0x00, 0xB1, 0x4E, /* 0x04-0x07 */ | 4599 | 0xAE, 0x67, 0x00, 0x00, 0x00, 0x00, 0xB1, 0x4E, /* 0x04-0x07 */ |
4600 | 0xB1, 0x4D, 0xB1, 0x4C, 0xB4, 0x4C, 0xB4, 0x4D, /* 0x08-0x0B */ | 4600 | 0xB1, 0x4D, 0xB1, 0x4C, 0xB4, 0x4C, 0xB4, 0x4D, /* 0x08-0x0B */ |
@@ -4662,7 +4662,7 @@ static unsigned char u2c_5C[512] = { | |||
4662 | 0x00, 0x00, 0xAE, 0x6C, 0x00, 0x00, 0xD1, 0x6D, /* 0xFC-0xFF */ | 4662 | 0x00, 0x00, 0xAE, 0x6C, 0x00, 0x00, 0xD1, 0x6D, /* 0xFC-0xFF */ |
4663 | }; | 4663 | }; |
4664 | 4664 | ||
4665 | static unsigned char u2c_5D[512] = { | 4665 | static const unsigned char u2c_5D[512] = { |
4666 | 0xD1, 0x71, 0xAE, 0x72, 0x00, 0x00, 0x00, 0x00, /* 0x00-0x03 */ | 4666 | 0xD1, 0x71, 0xAE, 0x72, 0x00, 0x00, 0x00, 0x00, /* 0x00-0x03 */ |
4667 | 0x00, 0x00, 0x00, 0x00, 0xB1, 0x53, 0xB1, 0x52, /* 0x04-0x07 */ | 4667 | 0x00, 0x00, 0x00, 0x00, 0xB1, 0x53, 0xB1, 0x52, /* 0x04-0x07 */ |
4668 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xD4, 0xF5, /* 0x08-0x0B */ | 4668 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xD4, 0xF5, /* 0x08-0x0B */ |
@@ -4730,7 +4730,7 @@ static unsigned char u2c_5D[512] = { | |||
4730 | 0x00, 0x00, 0xB4, 0x53, 0xA4, 0x79, 0xC9, 0x5D, /* 0xFC-0xFF */ | 4730 | 0x00, 0x00, 0xB4, 0x53, 0xA4, 0x79, 0xC9, 0x5D, /* 0xFC-0xFF */ |
4731 | }; | 4731 | }; |
4732 | 4732 | ||
4733 | static unsigned char u2c_5E[512] = { | 4733 | static const unsigned char u2c_5E[512] = { |
4734 | 0x00, 0x00, 0x00, 0x00, 0xA5, 0xAB, 0xA5, 0xAC, /* 0x00-0x03 */ | 4734 | 0x00, 0x00, 0x00, 0x00, 0xA5, 0xAB, 0xA5, 0xAC, /* 0x00-0x03 */ |
4735 | 0xC9, 0x78, 0x00, 0x00, 0xA6, 0x7C, 0x00, 0x00, /* 0x04-0x07 */ | 4735 | 0xC9, 0x78, 0x00, 0x00, 0xA6, 0x7C, 0x00, 0x00, /* 0x04-0x07 */ |
4736 | 0x00, 0x00, 0x00, 0x00, 0xCA, 0xCB, 0x00, 0x00, /* 0x08-0x0B */ | 4736 | 0x00, 0x00, 0x00, 0x00, 0xCA, 0xCB, 0x00, 0x00, /* 0x08-0x0B */ |
@@ -4798,7 +4798,7 @@ static unsigned char u2c_5E[512] = { | |||
4798 | 0x00, 0x00, 0x00, 0x00, 0xA4, 0x7B, 0xA4, 0xDC, /* 0xFC-0xFF */ | 4798 | 0x00, 0x00, 0x00, 0x00, 0xA4, 0x7B, 0xA4, 0xDC, /* 0xFC-0xFF */ |
4799 | }; | 4799 | }; |
4800 | 4800 | ||
4801 | static unsigned char u2c_5F[512] = { | 4801 | static const unsigned char u2c_5F[512] = { |
4802 | 0x00, 0x00, 0xA5, 0xAF, 0xC9, 0xDD, 0x00, 0x00, /* 0x00-0x03 */ | 4802 | 0x00, 0x00, 0xA5, 0xAF, 0xC9, 0xDD, 0x00, 0x00, /* 0x00-0x03 */ |
4803 | 0xA7, 0xCB, 0xCA, 0xD2, 0x00, 0x00, 0xCE, 0xBB, /* 0x04-0x07 */ | 4803 | 0xA7, 0xCB, 0xCA, 0xD2, 0x00, 0x00, 0xCE, 0xBB, /* 0x04-0x07 */ |
4804 | 0xAB, 0xD9, 0x00, 0x00, 0xB9, 0xFA, 0xA4, 0x7C, /* 0x08-0x0B */ | 4804 | 0xAB, 0xD9, 0x00, 0x00, 0xB9, 0xFA, 0xA4, 0x7C, /* 0x08-0x0B */ |
@@ -4866,7 +4866,7 @@ static unsigned char u2c_5F[512] = { | |||
4866 | 0x00, 0x00, 0xA9, 0xBF, 0x00, 0x00, 0xA9, 0xC1, /* 0xFC-0xFF */ | 4866 | 0x00, 0x00, 0xA9, 0xBF, 0x00, 0x00, 0xA9, 0xC1, /* 0xFC-0xFF */ |
4867 | }; | 4867 | }; |
4868 | 4868 | ||
4869 | static unsigned char u2c_60[512] = { | 4869 | static const unsigned char u2c_60[512] = { |
4870 | 0xCA, 0xE4, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x00-0x03 */ | 4870 | 0xCA, 0xE4, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x00-0x03 */ |
4871 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x04-0x07 */ | 4871 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x04-0x07 */ |
4872 | 0x00, 0x00, 0xCC, 0xAF, 0xCC, 0xA2, 0xCC, 0x7E, /* 0x08-0x0B */ | 4872 | 0x00, 0x00, 0xCC, 0xAF, 0xCC, 0xA2, 0xCC, 0x7E, /* 0x08-0x0B */ |
@@ -4934,7 +4934,7 @@ static unsigned char u2c_60[512] = { | |||
4934 | 0xD9, 0x47, 0x00, 0x00, 0xD9, 0x48, 0xD9, 0x4E, /* 0xFC-0xFF */ | 4934 | 0xD9, 0x47, 0x00, 0x00, 0xD9, 0x48, 0xD9, 0x4E, /* 0xFC-0xFF */ |
4935 | }; | 4935 | }; |
4936 | 4936 | ||
4937 | static unsigned char u2c_61[512] = { | 4937 | static const unsigned char u2c_61[512] = { |
4938 | 0xB4, 0x73, 0xB7, 0x54, 0x00, 0x00, 0xD9, 0x4A, /* 0x00-0x03 */ | 4938 | 0xB4, 0x73, 0xB7, 0x54, 0x00, 0x00, 0xD9, 0x4A, /* 0x00-0x03 */ |
4939 | 0xD9, 0x4F, 0xD9, 0x43, 0xB7, 0x5E, 0x00, 0x00, /* 0x04-0x07 */ | 4939 | 0xD9, 0x4F, 0xD9, 0x43, 0xB7, 0x5E, 0x00, 0x00, /* 0x04-0x07 */ |
4940 | 0xB7, 0x55, 0xB4, 0x72, 0xD9, 0x41, 0xD9, 0x50, /* 0x08-0x0B */ | 4940 | 0xB7, 0x55, 0xB4, 0x72, 0xD9, 0x41, 0xD9, 0x50, /* 0x08-0x0B */ |
@@ -5002,7 +5002,7 @@ static unsigned char u2c_61[512] = { | |||
5002 | 0xC4, 0xDF, 0xF5, 0xCC, 0xC4, 0xE0, 0xC5, 0x74, /* 0xFC-0xFF */ | 5002 | 0xC4, 0xDF, 0xF5, 0xCC, 0xC4, 0xE0, 0xC5, 0x74, /* 0xFC-0xFF */ |
5003 | }; | 5003 | }; |
5004 | 5004 | ||
5005 | static unsigned char u2c_62[512] = { | 5005 | static const unsigned char u2c_62[512] = { |
5006 | 0xC5, 0xCA, 0xF7, 0xD9, 0x00, 0x00, 0xF7, 0xDA, /* 0x00-0x03 */ | 5006 | 0xC5, 0xCA, 0xF7, 0xD9, 0x00, 0x00, 0xF7, 0xDA, /* 0x00-0x03 */ |
5007 | 0xF7, 0xDB, 0x00, 0x00, 0x00, 0x00, 0xF9, 0xBA, /* 0x04-0x07 */ | 5007 | 0xF7, 0xDB, 0x00, 0x00, 0x00, 0x00, 0xF9, 0xBA, /* 0x04-0x07 */ |
5008 | 0xA4, 0xE0, 0xC9, 0x7C, 0xA5, 0xB3, 0x00, 0x00, /* 0x08-0x0B */ | 5008 | 0xA4, 0xE0, 0xC9, 0x7C, 0xA5, 0xB3, 0x00, 0x00, /* 0x08-0x0B */ |
@@ -5070,7 +5070,7 @@ static unsigned char u2c_62[512] = { | |||
5070 | 0xAB, 0xF7, 0xAB, 0xFB, 0xAC, 0x42, 0xAE, 0xB3, /* 0xFC-0xFF */ | 5070 | 0xAB, 0xF7, 0xAB, 0xFB, 0xAC, 0x42, 0xAE, 0xB3, /* 0xFC-0xFF */ |
5071 | }; | 5071 | }; |
5072 | 5072 | ||
5073 | static unsigned char u2c_63[512] = { | 5073 | static const unsigned char u2c_63[512] = { |
5074 | 0xCE, 0xE0, 0xAB, 0xF9, 0xAC, 0x45, 0xCE, 0xD9, /* 0x00-0x03 */ | 5074 | 0xCE, 0xE0, 0xAB, 0xF9, 0xAC, 0x45, 0xCE, 0xD9, /* 0x00-0x03 */ |
5075 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xAB, 0xFC, /* 0x04-0x07 */ | 5075 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xAB, 0xFC, /* 0x04-0x07 */ |
5076 | 0xAE, 0xB2, 0xAB, 0xF6, 0x00, 0x00, 0xCE, 0xD6, /* 0x08-0x0B */ | 5076 | 0xAE, 0xB2, 0xAB, 0xF6, 0x00, 0x00, 0xCE, 0xD6, /* 0x08-0x0B */ |
@@ -5138,7 +5138,7 @@ static unsigned char u2c_63[512] = { | |||
5138 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xFC-0xFF */ | 5138 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xFC-0xFF */ |
5139 | }; | 5139 | }; |
5140 | 5140 | ||
5141 | static unsigned char u2c_64[512] = { | 5141 | static const unsigned char u2c_64[512] = { |
5142 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x00-0x03 */ | 5142 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x00-0x03 */ |
5143 | 0x00, 0x00, 0x00, 0x00, 0xB7, 0x70, 0x00, 0x00, /* 0x04-0x07 */ | 5143 | 0x00, 0x00, 0x00, 0x00, 0xB7, 0x70, 0x00, 0x00, /* 0x04-0x07 */ |
5144 | 0x00, 0x00, 0xDD, 0x7C, 0xDD, 0xB1, 0xDD, 0xB6, /* 0x08-0x0B */ | 5144 | 0x00, 0x00, 0xDD, 0x7C, 0xDD, 0xB1, 0xDD, 0xB6, /* 0x08-0x0B */ |
@@ -5206,7 +5206,7 @@ static unsigned char u2c_64[512] = { | |||
5206 | 0xEF, 0xD7, 0xEF, 0xD3, 0xC2, 0x5A, 0xEF, 0xD1, /* 0xFC-0xFF */ | 5206 | 0xEF, 0xD7, 0xEF, 0xD3, 0xC2, 0x5A, 0xEF, 0xD1, /* 0xFC-0xFF */ |
5207 | }; | 5207 | }; |
5208 | 5208 | ||
5209 | static unsigned char u2c_65[512] = { | 5209 | static const unsigned char u2c_65[512] = { |
5210 | 0xC3, 0x6B, 0xEF, 0xD5, 0x00, 0x00, 0xEF, 0xD6, /* 0x00-0x03 */ | 5210 | 0xC3, 0x6B, 0xEF, 0xD5, 0x00, 0x00, 0xEF, 0xD6, /* 0x00-0x03 */ |
5211 | 0xEF, 0xD2, 0x00, 0x00, 0xC2, 0x5B, 0xF2, 0x42, /* 0x04-0x07 */ | 5211 | 0xEF, 0xD2, 0x00, 0x00, 0xC2, 0x5B, 0xF2, 0x42, /* 0x04-0x07 */ |
5212 | 0x00, 0x00, 0xF2, 0x45, 0x00, 0x00, 0x00, 0x00, /* 0x08-0x0B */ | 5212 | 0x00, 0x00, 0xF2, 0x45, 0x00, 0x00, 0x00, 0x00, /* 0x08-0x0B */ |
@@ -5274,7 +5274,7 @@ static unsigned char u2c_65[512] = { | |||
5274 | 0xCC, 0xC5, 0xCC, 0xCE, 0x00, 0x00, 0x00, 0x00, /* 0xFC-0xFF */ | 5274 | 0xCC, 0xC5, 0xCC, 0xCE, 0x00, 0x00, 0x00, 0x00, /* 0xFC-0xFF */ |
5275 | }; | 5275 | }; |
5276 | 5276 | ||
5277 | static unsigned char u2c_66[512] = { | 5277 | static const unsigned char u2c_66[512] = { |
5278 | 0xA9, 0xFB, 0x00, 0x00, 0xA9, 0xF9, 0xCC, 0xCA, /* 0x00-0x03 */ | 5278 | 0xA9, 0xFB, 0x00, 0x00, 0xA9, 0xF9, 0xCC, 0xCA, /* 0x00-0x03 */ |
5279 | 0xCC, 0xC6, 0xCC, 0xCD, 0xA9, 0xF8, 0xAA, 0x40, /* 0x04-0x07 */ | 5279 | 0xCC, 0xC6, 0xCC, 0xCD, 0xA9, 0xF8, 0xAA, 0x40, /* 0x04-0x07 */ |
5280 | 0xCC, 0xC8, 0xCC, 0xC4, 0xA9, 0xFE, 0xCC, 0xCB, /* 0x08-0x0B */ | 5280 | 0xCC, 0xC8, 0xCC, 0xC4, 0xA9, 0xFE, 0xCC, 0xCB, /* 0x08-0x0B */ |
@@ -5342,7 +5342,7 @@ static unsigned char u2c_66[512] = { | |||
5342 | 0xB0, 0xD2, 0x00, 0x00, 0xB4, 0xBF, 0xB4, 0xC0, /* 0xFC-0xFF */ | 5342 | 0xB0, 0xD2, 0x00, 0x00, 0xB4, 0xBF, 0xB4, 0xC0, /* 0xFC-0xFF */ |
5343 | }; | 5343 | }; |
5344 | 5344 | ||
5345 | static unsigned char u2c_67[512] = { | 5345 | static const unsigned char u2c_67[512] = { |
5346 | 0xB3, 0xCC, 0xD9, 0xA9, 0x00, 0x00, 0xB7, 0x7C, /* 0x00-0x03 */ | 5346 | 0xB3, 0xCC, 0xD9, 0xA9, 0x00, 0x00, 0xB7, 0x7C, /* 0x00-0x03 */ |
5347 | 0xE1, 0xFA, 0xE1, 0xF9, 0x00, 0x00, 0x00, 0x00, /* 0x04-0x07 */ | 5347 | 0xE1, 0xFA, 0xE1, 0xF9, 0x00, 0x00, 0x00, 0x00, /* 0x04-0x07 */ |
5348 | 0xA4, 0xEB, 0xA6, 0xB3, 0xCC, 0xD2, 0xAA, 0x42, /* 0x08-0x0B */ | 5348 | 0xA4, 0xEB, 0xA6, 0xB3, 0xCC, 0xD2, 0xAA, 0x42, /* 0x08-0x0B */ |
@@ -5410,7 +5410,7 @@ static unsigned char u2c_67[512] = { | |||
5410 | 0xCF, 0x57, 0x00, 0x00, 0x00, 0x00, 0xAC, 0x55, /* 0xFC-0xFF */ | 5410 | 0xCF, 0x57, 0x00, 0x00, 0x00, 0x00, 0xAC, 0x55, /* 0xFC-0xFF */ |
5411 | }; | 5411 | }; |
5412 | 5412 | ||
5413 | static unsigned char u2c_68[512] = { | 5413 | static const unsigned char u2c_68[512] = { |
5414 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x00-0x03 */ | 5414 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x00-0x03 */ |
5415 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x04-0x07 */ | 5415 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x04-0x07 */ |
5416 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x08-0x0B */ | 5416 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x08-0x0B */ |
@@ -5478,7 +5478,7 @@ static unsigned char u2c_68[512] = { | |||
5478 | 0xD9, 0xC8, 0xD9, 0xC7, 0x00, 0x00, 0x00, 0x00, /* 0xFC-0xFF */ | 5478 | 0xD9, 0xC8, 0xD9, 0xC7, 0x00, 0x00, 0x00, 0x00, /* 0xFC-0xFF */ |
5479 | }; | 5479 | }; |
5480 | 5480 | ||
5481 | static unsigned char u2c_69[512] = { | 5481 | static const unsigned char u2c_69[512] = { |
5482 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x00-0x03 */ | 5482 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x00-0x03 */ |
5483 | 0xD9, 0xAC, 0xB4, 0xC8, 0xD9, 0xD4, 0xD9, 0xBC, /* 0x04-0x07 */ | 5483 | 0xD9, 0xAC, 0xB4, 0xC8, 0xD9, 0xD4, 0xD9, 0xBC, /* 0x04-0x07 */ |
5484 | 0xD9, 0xBE, 0x00, 0x00, 0xD9, 0xCB, 0xD9, 0xCA, /* 0x08-0x0B */ | 5484 | 0xD9, 0xBE, 0x00, 0x00, 0xD9, 0xCB, 0xD9, 0xCA, /* 0x08-0x0B */ |
@@ -5546,7 +5546,7 @@ static unsigned char u2c_69[512] = { | |||
5546 | 0xE5, 0xE4, 0xBC, 0xD1, 0xE5, 0xD8, 0xE5, 0xD3, /* 0xFC-0xFF */ | 5546 | 0xE5, 0xE4, 0xBC, 0xD1, 0xE5, 0xD8, 0xE5, 0xD3, /* 0xFC-0xFF */ |
5547 | }; | 5547 | }; |
5548 | 5548 | ||
5549 | static unsigned char u2c_6A[512] = { | 5549 | static const unsigned char u2c_6A[512] = { |
5550 | 0xE5, 0xCA, 0xBC, 0xCE, 0xBC, 0xD6, 0x00, 0x00, /* 0x00-0x03 */ | 5550 | 0xE5, 0xCA, 0xBC, 0xCE, 0xBC, 0xD6, 0x00, 0x00, /* 0x00-0x03 */ |
5551 | 0xE5, 0xE7, 0xBC, 0xD7, 0xE5, 0xCB, 0xE5, 0xED, /* 0x04-0x07 */ | 5551 | 0xE5, 0xE7, 0xBC, 0xD7, 0xE5, 0xCB, 0xE5, 0xED, /* 0x04-0x07 */ |
5552 | 0xE5, 0xE0, 0xE5, 0xE6, 0xBC, 0xD4, 0x00, 0x00, /* 0x08-0x0B */ | 5552 | 0xE5, 0xE0, 0xE5, 0xE6, 0xBC, 0xD4, 0x00, 0x00, /* 0x08-0x0B */ |
@@ -5614,7 +5614,7 @@ static unsigned char u2c_6A[512] = { | |||
5614 | 0xF5, 0xCF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xFC-0xFF */ | 5614 | 0xF5, 0xCF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xFC-0xFF */ |
5615 | }; | 5615 | }; |
5616 | 5616 | ||
5617 | static unsigned char u2c_6B[512] = { | 5617 | static const unsigned char u2c_6B[512] = { |
5618 | 0xF5, 0xD2, 0x00, 0x00, 0xF5, 0xCE, 0xF5, 0xD0, /* 0x00-0x03 */ | 5618 | 0xF5, 0xD2, 0x00, 0x00, 0xF5, 0xCE, 0xF5, 0xD0, /* 0x00-0x03 */ |
5619 | 0xC4, 0xE6, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x04-0x07 */ | 5619 | 0xC4, 0xE6, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x04-0x07 */ |
5620 | 0xF6, 0xE5, 0xF6, 0xE6, 0xC5, 0x76, 0xF6, 0xE4, /* 0x08-0x0B */ | 5620 | 0xF6, 0xE5, 0xF6, 0xE6, 0xC5, 0x76, 0xF6, 0xE4, /* 0x08-0x0B */ |
@@ -5682,7 +5682,7 @@ static unsigned char u2c_6B[512] = { | |||
5682 | 0xDD, 0xFE, 0xB7, 0xB7, 0xE2, 0x6B, 0xE5, 0xF7, /* 0xFC-0xFF */ | 5682 | 0xDD, 0xFE, 0xB7, 0xB7, 0xE2, 0x6B, 0xE5, 0xF7, /* 0xFC-0xFF */ |
5683 | }; | 5683 | }; |
5684 | 5684 | ||
5685 | static unsigned char u2c_6C[512] = { | 5685 | static const unsigned char u2c_6C[512] = { |
5686 | 0xE5, 0xF6, 0xE5, 0xF5, 0xE5, 0xF8, 0xE9, 0xE7, /* 0x00-0x03 */ | 5686 | 0xE5, 0xF6, 0xE5, 0xF5, 0xE5, 0xF8, 0xE9, 0xE7, /* 0x00-0x03 */ |
5687 | 0xE9, 0xE6, 0xBE, 0xFB, 0xE9, 0xE8, 0x00, 0x00, /* 0x04-0x07 */ | 5687 | 0xE9, 0xE6, 0xBE, 0xFB, 0xE9, 0xE8, 0x00, 0x00, /* 0x04-0x07 */ |
5688 | 0xC0, 0xD6, 0xED, 0x4D, 0x00, 0x00, 0xEF, 0xEA, /* 0x08-0x0B */ | 5688 | 0xC0, 0xD6, 0xED, 0x4D, 0x00, 0x00, 0xEF, 0xEA, /* 0x08-0x0B */ |
@@ -5749,7 +5749,7 @@ static unsigned char u2c_6C[512] = { | |||
5749 | 0x00, 0x00, 0xCD, 0x4C, 0x00, 0x00, 0x00, 0x00, /* 0xF8-0xFB */ | 5749 | 0x00, 0x00, 0xCD, 0x4C, 0x00, 0x00, 0x00, 0x00, /* 0xF8-0xFB */ |
5750 | }; | 5750 | }; |
5751 | 5751 | ||
5752 | static unsigned char u2c_6D[512] = { | 5752 | static const unsigned char u2c_6D[512] = { |
5753 | 0xCF, 0x7C, 0xCF, 0xA1, 0x00, 0x00, 0xCF, 0xA4, /* 0x00-0x03 */ | 5753 | 0xCF, 0x7C, 0xCF, 0xA1, 0x00, 0x00, 0xCF, 0xA4, /* 0x00-0x03 */ |
5754 | 0xCF, 0x77, 0x00, 0x00, 0x00, 0x00, 0xCF, 0xA7, /* 0x04-0x07 */ | 5754 | 0xCF, 0x77, 0x00, 0x00, 0x00, 0x00, 0xCF, 0xA7, /* 0x04-0x07 */ |
5755 | 0xCF, 0xAA, 0xCF, 0xAC, 0xCF, 0x74, 0xAC, 0x76, /* 0x08-0x0B */ | 5755 | 0xCF, 0xAA, 0xCF, 0xAC, 0xCF, 0x74, 0xAC, 0x76, /* 0x08-0x0B */ |
@@ -5817,7 +5817,7 @@ static unsigned char u2c_6D[512] = { | |||
5817 | 0xD9, 0xE7, 0xD6, 0x43, 0x00, 0x00, 0x00, 0x00, /* 0xFC-0xFF */ | 5817 | 0xD9, 0xE7, 0xD6, 0x43, 0x00, 0x00, 0x00, 0x00, /* 0xFC-0xFF */ |
5818 | }; | 5818 | }; |
5819 | 5819 | ||
5820 | static unsigned char u2c_6E[512] = { | 5820 | static const unsigned char u2c_6E[512] = { |
5821 | 0xD5, 0xEB, 0x00, 0x00, 0x00, 0x00, 0xD9, 0xFC, /* 0x00-0x03 */ | 5821 | 0xD5, 0xEB, 0x00, 0x00, 0x00, 0x00, 0xD9, 0xFC, /* 0x00-0x03 */ |
5822 | 0x00, 0x00, 0xB2, 0x4D, 0x00, 0x00, 0x00, 0x00, /* 0x04-0x07 */ | 5822 | 0x00, 0x00, 0xB2, 0x4D, 0x00, 0x00, 0x00, 0x00, /* 0x04-0x07 */ |
5823 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x08-0x0B */ | 5823 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x08-0x0B */ |
@@ -5885,7 +5885,7 @@ static unsigned char u2c_6E[512] = { | |||
5885 | 0xE2, 0xB3, 0xE2, 0xAF, 0xBA, 0x75, 0xBA, 0xA1, /* 0xFC-0xFF */ | 5885 | 0xE2, 0xB3, 0xE2, 0xAF, 0xBA, 0x75, 0xBA, 0xA1, /* 0xFC-0xFF */ |
5886 | }; | 5886 | }; |
5887 | 5887 | ||
5888 | static unsigned char u2c_6F[512] = { | 5888 | static const unsigned char u2c_6F[512] = { |
5889 | 0xE6, 0x53, 0xBA, 0xAE, 0xBA, 0x7D, 0xE2, 0x6F, /* 0x00-0x03 */ | 5889 | 0xE6, 0x53, 0xBA, 0xAE, 0xBA, 0x7D, 0xE2, 0x6F, /* 0x00-0x03 */ |
5890 | 0x00, 0x00, 0xE2, 0xAE, 0xBA, 0xA3, 0xE2, 0xAB, /* 0x04-0x07 */ | 5890 | 0x00, 0x00, 0xE2, 0xAE, 0xBA, 0xA3, 0xE2, 0xAB, /* 0x04-0x07 */ |
5891 | 0xE2, 0xB8, 0xE2, 0x75, 0xE2, 0x7E, 0x00, 0x00, /* 0x08-0x0B */ | 5891 | 0xE2, 0xB8, 0xE2, 0x75, 0xE2, 0x7E, 0x00, 0x00, /* 0x08-0x0B */ |
@@ -5953,7 +5953,7 @@ static unsigned char u2c_6F[512] = { | |||
5953 | 0xEF, 0xF6, 0x00, 0x00, 0xC2, 0x6F, 0xEF, 0xF2, /* 0xFC-0xFF */ | 5953 | 0xEF, 0xF6, 0x00, 0x00, 0xC2, 0x6F, 0xEF, 0xF2, /* 0xFC-0xFF */ |
5954 | }; | 5954 | }; |
5955 | 5955 | ||
5956 | static unsigned char u2c_70[512] = { | 5956 | static const unsigned char u2c_70[512] = { |
5957 | 0xEF, 0xF3, 0xEF, 0xEE, 0x00, 0x00, 0x00, 0x00, /* 0x00-0x03 */ | 5957 | 0xEF, 0xF3, 0xEF, 0xEE, 0x00, 0x00, 0x00, 0x00, /* 0x00-0x03 */ |
5958 | 0xE9, 0xF6, 0xEF, 0xEF, 0xC2, 0x70, 0xEF, 0xEB, /* 0x04-0x07 */ | 5958 | 0xE9, 0xF6, 0xEF, 0xEF, 0xC2, 0x70, 0xEF, 0xEB, /* 0x04-0x07 */ |
5959 | 0x00, 0x00, 0xC2, 0x6D, 0xEF, 0xF8, 0xC2, 0x6E, /* 0x08-0x0B */ | 5959 | 0x00, 0x00, 0xC2, 0x6D, 0xEF, 0xF8, 0xC2, 0x6E, /* 0x08-0x0B */ |
@@ -6021,7 +6021,7 @@ static unsigned char u2c_70[512] = { | |||
6021 | 0xD6, 0x52, 0xB2, 0x6C, 0x00, 0x00, 0xD6, 0x53, /* 0xFC-0xFF */ | 6021 | 0xD6, 0x52, 0xB2, 0x6C, 0x00, 0x00, 0xD6, 0x53, /* 0xFC-0xFF */ |
6022 | }; | 6022 | }; |
6023 | 6023 | ||
6024 | static unsigned char u2c_71[512] = { | 6024 | static const unsigned char u2c_71[512] = { |
6025 | 0xD6, 0x56, 0x00, 0x00, 0xD6, 0x5A, 0x00, 0x00, /* 0x00-0x03 */ | 6025 | 0xD6, 0x56, 0x00, 0x00, 0xD6, 0x5A, 0x00, 0x00, /* 0x00-0x03 */ |
6026 | 0xD6, 0x4F, 0x00, 0x00, 0xD6, 0x54, 0x00, 0x00, /* 0x04-0x07 */ | 6026 | 0xD6, 0x4F, 0x00, 0x00, 0xD6, 0x54, 0x00, 0x00, /* 0x04-0x07 */ |
6027 | 0x00, 0x00, 0xB2, 0x6A, 0xB2, 0x6B, 0xD6, 0x59, /* 0x08-0x0B */ | 6027 | 0x00, 0x00, 0xB2, 0x6A, 0xB2, 0x6B, 0xD6, 0x59, /* 0x08-0x0B */ |
@@ -6089,7 +6089,7 @@ static unsigned char u2c_71[512] = { | |||
6089 | 0xC2, 0x75, 0xEF, 0xFD, 0xC2, 0x76, 0xEF, 0xFA, /* 0xFC-0xFF */ | 6089 | 0xC2, 0x75, 0xEF, 0xFD, 0xC2, 0x76, 0xEF, 0xFA, /* 0xFC-0xFF */ |
6090 | }; | 6090 | }; |
6091 | 6091 | ||
6092 | static unsigned char u2c_72[512] = { | 6092 | static const unsigned char u2c_72[512] = { |
6093 | 0x00, 0x00, 0xEF, 0xF9, 0xF2, 0x6C, 0xEF, 0xFC, /* 0x00-0x03 */ | 6093 | 0x00, 0x00, 0xEF, 0xF9, 0xF2, 0x6C, 0xEF, 0xFC, /* 0x00-0x03 */ |
6094 | 0x00, 0x00, 0xF2, 0x6D, 0xC3, 0x7A, 0xF2, 0x6B, /* 0x04-0x07 */ | 6094 | 0x00, 0x00, 0xF2, 0x6D, 0xC3, 0x7A, 0xF2, 0x6B, /* 0x04-0x07 */ |
6095 | 0x00, 0x00, 0x00, 0x00, 0xF2, 0x6A, 0x00, 0x00, /* 0x08-0x0B */ | 6095 | 0x00, 0x00, 0x00, 0x00, 0xF2, 0x6A, 0x00, 0x00, /* 0x08-0x0B */ |
@@ -6157,7 +6157,7 @@ static unsigned char u2c_72[512] = { | |||
6157 | 0xAF, 0x54, 0xAF, 0x56, 0xD2, 0xA6, 0xD6, 0x67, /* 0xFC-0xFF */ | 6157 | 0xAF, 0x54, 0xAF, 0x56, 0xD2, 0xA6, 0xD6, 0x67, /* 0xFC-0xFF */ |
6158 | }; | 6158 | }; |
6159 | 6159 | ||
6160 | static unsigned char u2c_73[512] = { | 6160 | static const unsigned char u2c_73[512] = { |
6161 | 0xD2, 0xA3, 0xD2, 0xAA, 0x00, 0x00, 0x00, 0x00, /* 0x00-0x03 */ | 6161 | 0xD2, 0xA3, 0xD2, 0xAA, 0x00, 0x00, 0x00, 0x00, /* 0x00-0x03 */ |
6162 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xD6, 0x62, /* 0x04-0x07 */ | 6162 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xD6, 0x62, /* 0x04-0x07 */ |
6163 | 0xD6, 0x66, 0x00, 0x00, 0xD6, 0x65, 0xDA, 0x6E, /* 0x08-0x0B */ | 6163 | 0xD6, 0x66, 0x00, 0x00, 0xD6, 0x65, 0xDA, 0x6E, /* 0x08-0x0B */ |
@@ -6225,7 +6225,7 @@ static unsigned char u2c_73[512] = { | |||
6225 | 0xD6, 0x74, 0xD6, 0x70, 0xB2, 0x7B, 0xD6, 0x75, /* 0xFC-0xFF */ | 6225 | 0xD6, 0x74, 0xD6, 0x70, 0xB2, 0x7B, 0xD6, 0x75, /* 0xFC-0xFF */ |
6226 | }; | 6226 | }; |
6227 | 6227 | ||
6228 | static unsigned char u2c_74[512] = { | 6228 | static const unsigned char u2c_74[512] = { |
6229 | 0xD6, 0x72, 0xD6, 0x6F, 0x00, 0x00, 0xB2, 0x79, /* 0x00-0x03 */ | 6229 | 0xD6, 0x72, 0xD6, 0x6F, 0x00, 0x00, 0xB2, 0x79, /* 0x00-0x03 */ |
6230 | 0xD6, 0x6E, 0xB2, 0x77, 0xB2, 0x7A, 0xD6, 0x71, /* 0x04-0x07 */ | 6230 | 0xD6, 0x6E, 0xB2, 0x77, 0xB2, 0x7A, 0xD6, 0x71, /* 0x04-0x07 */ |
6231 | 0xD6, 0x79, 0xAF, 0x5B, 0xB2, 0x78, 0xD6, 0x77, /* 0x08-0x0B */ | 6231 | 0xD6, 0x79, 0xAF, 0x5B, 0xB2, 0x78, 0xD6, 0x77, /* 0x08-0x0B */ |
@@ -6293,7 +6293,7 @@ static unsigned char u2c_74[512] = { | |||
6293 | 0x00, 0x00, 0xDE, 0xC2, 0xDE, 0xC1, 0xDE, 0xC0, /* 0xFC-0xFF */ | 6293 | 0x00, 0x00, 0xDE, 0xC2, 0xDE, 0xC1, 0xDE, 0xC0, /* 0xFC-0xFF */ |
6294 | }; | 6294 | }; |
6295 | 6295 | ||
6296 | static unsigned char u2c_75[512] = { | 6296 | static const unsigned char u2c_75[512] = { |
6297 | 0xE2, 0xD5, 0x00, 0x00, 0xE2, 0xD6, 0xE2, 0xD7, /* 0x00-0x03 */ | 6297 | 0xE2, 0xD5, 0x00, 0x00, 0xE2, 0xD6, 0xE2, 0xD7, /* 0x00-0x03 */ |
6298 | 0xBA, 0xC2, 0x00, 0x00, 0x00, 0x00, 0xE6, 0xAD, /* 0x04-0x07 */ | 6298 | 0xBA, 0xC2, 0x00, 0x00, 0x00, 0x00, 0xE6, 0xAD, /* 0x04-0x07 */ |
6299 | 0xE6, 0xAC, 0x00, 0x00, 0x00, 0x00, 0xEA, 0x69, /* 0x08-0x0B */ | 6299 | 0xE6, 0xAC, 0x00, 0x00, 0x00, 0x00, 0xEA, 0x69, /* 0x08-0x0B */ |
@@ -6361,7 +6361,7 @@ static unsigned char u2c_75[512] = { | |||
6361 | 0xDE, 0xCC, 0xDE, 0xD4, 0xDE, 0xCB, 0xB7, 0xF5, /* 0xFC-0xFF */ | 6361 | 0xDE, 0xCC, 0xDE, 0xD4, 0xDE, 0xCB, 0xB7, 0xF5, /* 0xFC-0xFF */ |
6362 | }; | 6362 | }; |
6363 | 6363 | ||
6364 | static unsigned char u2c_76[512] = { | 6364 | static const unsigned char u2c_76[512] = { |
6365 | 0xB7, 0xEF, 0xB7, 0xF1, 0x00, 0x00, 0xDE, 0xC9, /* 0x00-0x03 */ | 6365 | 0xB7, 0xEF, 0xB7, 0xF1, 0x00, 0x00, 0xDE, 0xC9, /* 0x00-0x03 */ |
6366 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x04-0x07 */ | 6366 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x04-0x07 */ |
6367 | 0xE2, 0xDB, 0xBA, 0xC7, 0xE2, 0xDF, 0xBA, 0xC6, /* 0x08-0x0B */ | 6367 | 0xE2, 0xDB, 0xBA, 0xC7, 0xE2, 0xDF, 0xBA, 0xC6, /* 0x08-0x0B */ |
@@ -6429,7 +6429,7 @@ static unsigned char u2c_76[512] = { | |||
6429 | 0xAC, 0xDF, 0x00, 0x00, 0xAC, 0xDE, 0x00, 0x00, /* 0xFC-0xFF */ | 6429 | 0xAC, 0xDF, 0x00, 0x00, 0xAC, 0xDE, 0x00, 0x00, /* 0xFC-0xFF */ |
6430 | }; | 6430 | }; |
6431 | 6431 | ||
6432 | static unsigned char u2c_77[512] = { | 6432 | static const unsigned char u2c_77[512] = { |
6433 | 0x00, 0x00, 0xAC, 0xD9, 0x00, 0x00, 0xCF, 0xE1, /* 0x00-0x03 */ | 6433 | 0x00, 0x00, 0xAC, 0xD9, 0x00, 0x00, 0xCF, 0xE1, /* 0x00-0x03 */ |
6434 | 0xCF, 0xE2, 0xCF, 0xE3, 0x00, 0x00, 0xAC, 0xE0, /* 0x04-0x07 */ | 6434 | 0xCF, 0xE2, 0xCF, 0xE3, 0x00, 0x00, 0xAC, 0xE0, /* 0x04-0x07 */ |
6435 | 0xCF, 0xE0, 0xAC, 0xDC, 0xCF, 0xE4, 0xAC, 0xDD, /* 0x08-0x0B */ | 6435 | 0xCF, 0xE0, 0xAC, 0xDC, 0xCF, 0xE4, 0xAC, 0xDD, /* 0x08-0x0B */ |
@@ -6497,7 +6497,7 @@ static unsigned char u2c_77[512] = { | |||
6497 | 0xCD, 0x7B, 0xAA, 0xBF, 0x00, 0x00, 0x00, 0x00, /* 0xFC-0xFF */ | 6497 | 0xCD, 0x7B, 0xAA, 0xBF, 0x00, 0x00, 0x00, 0x00, /* 0xFC-0xFF */ |
6498 | }; | 6498 | }; |
6499 | 6499 | ||
6500 | static unsigned char u2c_78[512] = { | 6500 | static const unsigned char u2c_78[512] = { |
6501 | 0x00, 0x00, 0x00, 0x00, 0xAC, 0xE2, 0xCF, 0xF2, /* 0x00-0x03 */ | 6501 | 0x00, 0x00, 0x00, 0x00, 0xAC, 0xE2, 0xCF, 0xF2, /* 0x00-0x03 */ |
6502 | 0x00, 0x00, 0xCF, 0xED, 0xCF, 0xEA, 0x00, 0x00, /* 0x04-0x07 */ | 6502 | 0x00, 0x00, 0xCF, 0xED, 0xCF, 0xEA, 0x00, 0x00, /* 0x04-0x07 */ |
6503 | 0x00, 0x00, 0xCF, 0xF1, 0x00, 0x00, 0x00, 0x00, /* 0x08-0x0B */ | 6503 | 0x00, 0x00, 0xCF, 0xF1, 0x00, 0x00, 0x00, 0x00, /* 0x08-0x0B */ |
@@ -6565,7 +6565,7 @@ static unsigned char u2c_78[512] = { | |||
6565 | 0xED, 0xA9, 0xED, 0xA6, 0xED, 0xAD, 0xF0, 0x56, /* 0xFC-0xFF */ | 6565 | 0xED, 0xA9, 0xED, 0xA6, 0xED, 0xAD, 0xF0, 0x56, /* 0xFC-0xFF */ |
6566 | }; | 6566 | }; |
6567 | 6567 | ||
6568 | static unsigned char u2c_79[512] = { | 6568 | static const unsigned char u2c_79[512] = { |
6569 | 0x00, 0x00, 0xC1, 0x47, 0xED, 0xA7, 0x00, 0x00, /* 0x00-0x03 */ | 6569 | 0x00, 0x00, 0xC1, 0x47, 0xED, 0xA7, 0x00, 0x00, /* 0x00-0x03 */ |
6570 | 0xED, 0xAE, 0xED, 0xAB, 0x00, 0x00, 0x00, 0x00, /* 0x04-0x07 */ | 6570 | 0xED, 0xAE, 0xED, 0xAB, 0x00, 0x00, 0x00, 0x00, /* 0x04-0x07 */ |
6571 | 0x00, 0x00, 0xF0, 0x5A, 0x00, 0x00, 0x00, 0x00, /* 0x08-0x0B */ | 6571 | 0x00, 0x00, 0xF0, 0x5A, 0x00, 0x00, 0x00, 0x00, /* 0x08-0x0B */ |
@@ -6633,7 +6633,7 @@ static unsigned char u2c_79[512] = { | |||
6633 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xFC-0xFF */ | 6633 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xFC-0xFF */ |
6634 | }; | 6634 | }; |
6635 | 6635 | ||
6636 | static unsigned char u2c_7A[512] = { | 6636 | static const unsigned char u2c_7A[512] = { |
6637 | 0xB5, 0x7D, 0x00, 0x00, 0xDA, 0xD6, 0xDA, 0xD8, /* 0x00-0x03 */ | 6637 | 0xB5, 0x7D, 0x00, 0x00, 0xDA, 0xD6, 0xDA, 0xD8, /* 0x00-0x03 */ |
6638 | 0xDA, 0xDA, 0xB5, 0x7C, 0x00, 0x00, 0x00, 0x00, /* 0x04-0x07 */ | 6638 | 0xDA, 0xDA, 0xB5, 0x7C, 0x00, 0x00, 0x00, 0x00, /* 0x04-0x07 */ |
6639 | 0xB5, 0x7A, 0x00, 0x00, 0xDA, 0xD7, 0xB5, 0x7B, /* 0x08-0x0B */ | 6639 | 0xB5, 0x7A, 0x00, 0x00, 0xDA, 0xD7, 0xB5, 0x7B, /* 0x08-0x0B */ |
@@ -6701,7 +6701,7 @@ static unsigned char u2c_7A[512] = { | |||
6701 | 0x00, 0x00, 0xAC, 0xF2, 0x00, 0x00, 0xAC, 0xF1, /* 0xFC-0xFF */ | 6701 | 0x00, 0x00, 0xAC, 0xF2, 0x00, 0x00, 0xAC, 0xF1, /* 0xFC-0xFF */ |
6702 | }; | 6702 | }; |
6703 | 6703 | ||
6704 | static unsigned char u2c_7B[512] = { | 6704 | static const unsigned char u2c_7B[512] = { |
6705 | 0xD0, 0x42, 0xD0, 0x43, 0x00, 0x00, 0x00, 0x00, /* 0x00-0x03 */ | 6705 | 0xD0, 0x42, 0xD0, 0x43, 0x00, 0x00, 0x00, 0x00, /* 0x00-0x03 */ |
6706 | 0xD3, 0x40, 0xD3, 0x42, 0xAF, 0xB9, 0x00, 0x00, /* 0x04-0x07 */ | 6706 | 0xD3, 0x40, 0xD3, 0x42, 0xAF, 0xB9, 0x00, 0x00, /* 0x04-0x07 */ |
6707 | 0xD3, 0x44, 0xD3, 0x47, 0xD3, 0x45, 0x00, 0x00, /* 0x08-0x0B */ | 6707 | 0xD3, 0x44, 0xD3, 0x47, 0xD3, 0x45, 0x00, 0x00, /* 0x08-0x0B */ |
@@ -6769,7 +6769,7 @@ static unsigned char u2c_7B[512] = { | |||
6769 | 0x00, 0x00, 0xED, 0xC9, 0xC1, 0x4E, 0xED, 0xBE, /* 0xFC-0xFF */ | 6769 | 0x00, 0x00, 0xED, 0xC9, 0xC1, 0x4E, 0xED, 0xBE, /* 0xFC-0xFF */ |
6770 | }; | 6770 | }; |
6771 | 6771 | ||
6772 | static unsigned char u2c_7C[512] = { | 6772 | static const unsigned char u2c_7C[512] = { |
6773 | 0xED, 0xBD, 0xED, 0xC7, 0xED, 0xC4, 0xED, 0xC6, /* 0x00-0x03 */ | 6773 | 0xED, 0xBD, 0xED, 0xC7, 0xED, 0xC4, 0xED, 0xC6, /* 0x00-0x03 */ |
6774 | 0x00, 0x00, 0xED, 0xBA, 0xED, 0xCA, 0xC1, 0x4C, /* 0x04-0x07 */ | 6774 | 0x00, 0x00, 0xED, 0xBA, 0xED, 0xCA, 0xC1, 0x4C, /* 0x04-0x07 */ |
6775 | 0x00, 0x00, 0xED, 0xC5, 0xED, 0xCE, 0xED, 0xC2, /* 0x08-0x0B */ | 6775 | 0x00, 0x00, 0xED, 0xC5, 0xED, 0xCE, 0xED, 0xC2, /* 0x08-0x0B */ |
@@ -6837,7 +6837,7 @@ static unsigned char u2c_7C[512] = { | |||
6837 | 0x00, 0x00, 0xCD, 0xA9, 0xAA, 0xC8, 0x00, 0x00, /* 0xFC-0xFF */ | 6837 | 0x00, 0x00, 0xCD, 0xA9, 0xAA, 0xC8, 0x00, 0x00, /* 0xFC-0xFF */ |
6838 | }; | 6838 | }; |
6839 | 6839 | ||
6840 | static unsigned char u2c_7D[512] = { | 6840 | static const unsigned char u2c_7D[512] = { |
6841 | 0xAC, 0xF6, 0xD0, 0x4C, 0xAC, 0xF4, 0xD0, 0x4A, /* 0x00-0x03 */ | 6841 | 0xAC, 0xF6, 0xD0, 0x4C, 0xAC, 0xF4, 0xD0, 0x4A, /* 0x00-0x03 */ |
6842 | 0xAC, 0xF9, 0xAC, 0xF5, 0xAC, 0xFA, 0xAC, 0xF8, /* 0x04-0x07 */ | 6842 | 0xAC, 0xF9, 0xAC, 0xF5, 0xAC, 0xFA, 0xAC, 0xF8, /* 0x04-0x07 */ |
6843 | 0xD0, 0x4B, 0xAC, 0xF7, 0xAF, 0xBF, 0xAF, 0xBE, /* 0x08-0x0B */ | 6843 | 0xD0, 0x4B, 0xAC, 0xF7, 0xAF, 0xBF, 0xAF, 0xBE, /* 0x08-0x0B */ |
@@ -6904,7 +6904,7 @@ static unsigned char u2c_7D[512] = { | |||
6904 | 0x00, 0x00, 0xBD, 0x7B, 0xE6, 0xEA, 0xBD, 0x6F, /* 0xF8-0xFB */ | 6904 | 0x00, 0x00, 0xBD, 0x7B, 0xE6, 0xEA, 0xBD, 0x6F, /* 0xF8-0xFB */ |
6905 | }; | 6905 | }; |
6906 | 6906 | ||
6907 | static unsigned char u2c_7E[512] = { | 6907 | static const unsigned char u2c_7E[512] = { |
6908 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xE6, 0xE9, /* 0x00-0x03 */ | 6908 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xE6, 0xE9, /* 0x00-0x03 */ |
6909 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x04-0x07 */ | 6909 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x04-0x07 */ |
6910 | 0xBF, 0xA2, 0xBF, 0xA7, 0xBF, 0x7E, 0xEA, 0xD8, /* 0x08-0x0B */ | 6910 | 0xBF, 0xA2, 0xBF, 0xA7, 0xBF, 0x7E, 0xEA, 0xD8, /* 0x08-0x0B */ |
@@ -6948,7 +6948,7 @@ static unsigned char u2c_7E[512] = { | |||
6948 | 0xC6, 0x6C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x9C-0x9F */ | 6948 | 0xC6, 0x6C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x9C-0x9F */ |
6949 | }; | 6949 | }; |
6950 | 6950 | ||
6951 | static unsigned char u2c_7F[512] = { | 6951 | static const unsigned char u2c_7F[512] = { |
6952 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x00-0x03 */ | 6952 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x00-0x03 */ |
6953 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x04-0x07 */ | 6953 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x04-0x07 */ |
6954 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x08-0x0B */ | 6954 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x08-0x0B */ |
@@ -7016,7 +7016,7 @@ static unsigned char u2c_7F[512] = { | |||
7016 | 0xC1, 0x6C, 0xF2, 0xBE, 0xF2, 0xBF, 0xF4, 0xB1, /* 0xFC-0xFF */ | 7016 | 0xC1, 0x6C, 0xF2, 0xBE, 0xF2, 0xBF, 0xF4, 0xB1, /* 0xFC-0xFF */ |
7017 | }; | 7017 | }; |
7018 | 7018 | ||
7019 | static unsigned char u2c_80[512] = { | 7019 | static const unsigned char u2c_80[512] = { |
7020 | 0xC4, 0xA3, 0xA6, 0xD1, 0x00, 0x00, 0xA6, 0xD2, /* 0x00-0x03 */ | 7020 | 0xC4, 0xA3, 0xA6, 0xD1, 0x00, 0x00, 0xA6, 0xD2, /* 0x00-0x03 */ |
7021 | 0xAC, 0xFE, 0xAA, 0xCC, 0xAF, 0xCF, 0xD0, 0x51, /* 0x04-0x07 */ | 7021 | 0xAC, 0xFE, 0xAA, 0xCC, 0xAF, 0xCF, 0xD0, 0x51, /* 0x04-0x07 */ |
7022 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xB5, 0xC0, /* 0x08-0x0B */ | 7022 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xB5, 0xC0, /* 0x08-0x0B */ |
@@ -7084,7 +7084,7 @@ static unsigned char u2c_80[512] = { | |||
7084 | 0xAF, 0xE2, 0xAF, 0xE0, 0xDB, 0x48, 0x00, 0x00, /* 0xFC-0xFF */ | 7084 | 0xAF, 0xE2, 0xAF, 0xE0, 0xDB, 0x48, 0x00, 0x00, /* 0xFC-0xFF */ |
7085 | }; | 7085 | }; |
7086 | 7086 | ||
7087 | static unsigned char u2c_81[512] = { | 7087 | static const unsigned char u2c_81[512] = { |
7088 | 0xD3, 0x6F, 0xD3, 0x6D, 0xAF, 0xD7, 0x00, 0x00, /* 0x00-0x03 */ | 7088 | 0xD3, 0x6F, 0xD3, 0x6D, 0xAF, 0xD7, 0x00, 0x00, /* 0x00-0x03 */ |
7089 | 0x00, 0x00, 0xAF, 0xD9, 0xAF, 0xDC, 0x00, 0x00, /* 0x04-0x07 */ | 7089 | 0x00, 0x00, 0xAF, 0xD9, 0xAF, 0xDC, 0x00, 0x00, /* 0x04-0x07 */ |
7090 | 0xAF, 0xDF, 0x00, 0x00, 0xAF, 0xE1, 0x00, 0x00, /* 0x08-0x0B */ | 7090 | 0xAF, 0xDF, 0x00, 0x00, 0xAF, 0xE1, 0x00, 0x00, /* 0x08-0x0B */ |
@@ -7152,7 +7152,7 @@ static unsigned char u2c_81[512] = { | |||
7152 | 0xA6, 0xDD, 0x00, 0x00, 0xAA, 0xD8, 0xD0, 0x68, /* 0xFC-0xFF */ | 7152 | 0xA6, 0xDD, 0x00, 0x00, 0xAA, 0xD8, 0xD0, 0x68, /* 0xFC-0xFF */ |
7153 | }; | 7153 | }; |
7154 | 7154 | ||
7155 | static unsigned char u2c_82[512] = { | 7155 | static const unsigned char u2c_82[512] = { |
7156 | 0xAF, 0xE6, 0xD3, 0x70, 0xB2, 0xEA, 0x00, 0x00, /* 0x00-0x03 */ | 7156 | 0xAF, 0xE6, 0xD3, 0x70, 0xB2, 0xEA, 0x00, 0x00, /* 0x00-0x03 */ |
7157 | 0xDB, 0x57, 0xB8, 0xA4, 0x00, 0x00, 0xBB, 0x50, /* 0x04-0x07 */ | 7157 | 0xDB, 0x57, 0xB8, 0xA4, 0x00, 0x00, 0xBB, 0x50, /* 0x04-0x07 */ |
7158 | 0xBF, 0xB3, 0xC1, 0x7C, 0xC2, 0xC2, 0xF4, 0xB5, /* 0x08-0x0B */ | 7158 | 0xBF, 0xB3, 0xC1, 0x7C, 0xC2, 0xC2, 0xF4, 0xB5, /* 0x08-0x0B */ |
@@ -7220,7 +7220,7 @@ static unsigned char u2c_82[512] = { | |||
7220 | 0x00, 0x00, 0x00, 0x00, 0xD0, 0x6C, 0x00, 0x00, /* 0xFC-0xFF */ | 7220 | 0x00, 0x00, 0x00, 0x00, 0xD0, 0x6C, 0x00, 0x00, /* 0xFC-0xFF */ |
7221 | }; | 7221 | }; |
7222 | 7222 | ||
7223 | static unsigned char u2c_83[512] = { | 7223 | static const unsigned char u2c_83[512] = { |
7224 | 0xD0, 0x70, 0xAD, 0x5F, 0xAD, 0x5A, 0xAD, 0x53, /* 0x00-0x03 */ | 7224 | 0xD0, 0x70, 0xAD, 0x5F, 0xAD, 0x5A, 0xAD, 0x53, /* 0x00-0x03 */ |
7225 | 0xAD, 0x58, 0xAD, 0x54, 0xAD, 0x67, 0xD0, 0x6E, /* 0x04-0x07 */ | 7225 | 0xAD, 0x58, 0xAD, 0x54, 0xAD, 0x67, 0xD0, 0x6E, /* 0x04-0x07 */ |
7226 | 0xD3, 0xA5, 0xAD, 0x5B, 0x00, 0x00, 0x00, 0x00, /* 0x08-0x0B */ | 7226 | 0xD3, 0xA5, 0xAD, 0x5B, 0x00, 0x00, 0x00, 0x00, /* 0x08-0x0B */ |
@@ -7288,7 +7288,7 @@ static unsigned char u2c_83[512] = { | |||
7288 | 0xDB, 0x65, 0xB5, 0xE0, 0xDB, 0xB0, 0xDB, 0x71, /* 0xFC-0xFF */ | 7288 | 0xDB, 0x65, 0xB5, 0xE0, 0xDB, 0xB0, 0xDB, 0x71, /* 0xFC-0xFF */ |
7289 | }; | 7289 | }; |
7290 | 7290 | ||
7291 | static unsigned char u2c_84[512] = { | 7291 | static const unsigned char u2c_84[512] = { |
7292 | 0x00, 0x00, 0xDB, 0x6D, 0x00, 0x00, 0xB5, 0xD1, /* 0x00-0x03 */ | 7292 | 0x00, 0x00, 0xDB, 0x6D, 0x00, 0x00, 0xB5, 0xD1, /* 0x00-0x03 */ |
7293 | 0xB5, 0xE5, 0x00, 0x00, 0xDB, 0x7C, 0xB5, 0xE7, /* 0x04-0x07 */ | 7293 | 0xB5, 0xE5, 0x00, 0x00, 0xDB, 0x7C, 0xB5, 0xE7, /* 0x04-0x07 */ |
7294 | 0x00, 0x00, 0xDB, 0x78, 0xB5, 0xDC, 0xB5, 0xD6, /* 0x08-0x0B */ | 7294 | 0x00, 0x00, 0xDB, 0x78, 0xB5, 0xDC, 0xB5, 0xD6, /* 0x08-0x0B */ |
@@ -7356,7 +7356,7 @@ static unsigned char u2c_84[512] = { | |||
7356 | 0xE7, 0x64, 0xE7, 0x6E, 0xE7, 0x69, 0xBD, 0xB6, /* 0xFC-0xFF */ | 7356 | 0xE7, 0x64, 0xE7, 0x6E, 0xE7, 0x69, 0xBD, 0xB6, /* 0xFC-0xFF */ |
7357 | }; | 7357 | }; |
7358 | 7358 | ||
7359 | static unsigned char u2c_85[512] = { | 7359 | static const unsigned char u2c_85[512] = { |
7360 | 0xE7, 0x4F, 0x00, 0x00, 0xE7, 0x6D, 0x00, 0x00, /* 0x00-0x03 */ | 7360 | 0xE7, 0x4F, 0x00, 0x00, 0xE7, 0x6D, 0x00, 0x00, /* 0x00-0x03 */ |
7361 | 0x00, 0x00, 0x00, 0x00, 0xBD, 0xB7, 0xDF, 0xBD, /* 0x04-0x07 */ | 7361 | 0x00, 0x00, 0x00, 0x00, 0xBD, 0xB7, 0xDF, 0xBD, /* 0x04-0x07 */ |
7362 | 0xE7, 0x5B, 0xE7, 0x52, 0xE7, 0x55, 0xE7, 0x7B, /* 0x08-0x0B */ | 7362 | 0xE7, 0x5B, 0xE7, 0x52, 0xE7, 0x55, 0xE7, 0x7B, /* 0x08-0x0B */ |
@@ -7424,7 +7424,7 @@ static unsigned char u2c_85[512] = { | |||
7424 | 0x00, 0x00, 0xF4, 0xC3, 0xF4, 0xBB, 0xF4, 0xB9, /* 0xFC-0xFF */ | 7424 | 0x00, 0x00, 0xF4, 0xC3, 0xF4, 0xBB, 0xF4, 0xB9, /* 0xFC-0xFF */ |
7425 | }; | 7425 | }; |
7426 | 7426 | ||
7427 | static unsigned char u2c_86[512] = { | 7427 | static const unsigned char u2c_86[512] = { |
7428 | 0xF4, 0xBD, 0xF4, 0xBA, 0x00, 0x00, 0x00, 0x00, /* 0x00-0x03 */ | 7428 | 0xF4, 0xBD, 0xF4, 0xBA, 0x00, 0x00, 0x00, 0x00, /* 0x00-0x03 */ |
7429 | 0xF4, 0xBF, 0xF4, 0xC1, 0xC4, 0xAA, 0xC4, 0xAC, /* 0x04-0x07 */ | 7429 | 0xF4, 0xBF, 0xF4, 0xC1, 0xC4, 0xAA, 0xC4, 0xAC, /* 0x04-0x07 */ |
7430 | 0x00, 0x00, 0xF4, 0xC0, 0xC4, 0xAD, 0xC4, 0xAB, /* 0x08-0x0B */ | 7430 | 0x00, 0x00, 0xF4, 0xC0, 0xC4, 0xAD, 0xC4, 0xAB, /* 0x08-0x0B */ |
@@ -7492,7 +7492,7 @@ static unsigned char u2c_86[512] = { | |||
7492 | 0x00, 0x00, 0x00, 0x00, 0xB8, 0xBF, 0x00, 0x00, /* 0xFC-0xFF */ | 7492 | 0x00, 0x00, 0x00, 0x00, 0xB8, 0xBF, 0x00, 0x00, /* 0xFC-0xFF */ |
7493 | }; | 7493 | }; |
7494 | 7494 | ||
7495 | static unsigned char u2c_87[512] = { | 7495 | static const unsigned char u2c_87[512] = { |
7496 | 0xB8, 0xBE, 0xDF, 0xED, 0xB8, 0xC1, 0xB8, 0xC2, /* 0x00-0x03 */ | 7496 | 0xB8, 0xBE, 0xDF, 0xED, 0xB8, 0xC1, 0xB8, 0xC2, /* 0x00-0x03 */ |
7497 | 0xDF, 0xE3, 0xDF, 0xF0, 0xB8, 0xC3, 0xB8, 0xBD, /* 0x04-0x07 */ | 7497 | 0xDF, 0xE3, 0xDF, 0xF0, 0xB8, 0xC3, 0xB8, 0xBD, /* 0x04-0x07 */ |
7498 | 0xB8, 0xBC, 0xDF, 0xEC, 0xB8, 0xC4, 0xDF, 0xE2, /* 0x08-0x0B */ | 7498 | 0xB8, 0xBC, 0xDF, 0xEC, 0xB8, 0xC4, 0xDF, 0xE2, /* 0x08-0x0B */ |
@@ -7560,7 +7560,7 @@ static unsigned char u2c_87[512] = { | |||
7560 | 0xF2, 0xE4, 0x00, 0x00, 0xC3, 0xCA, 0xF2, 0xE6, /* 0xFC-0xFF */ | 7560 | 0xF2, 0xE4, 0x00, 0x00, 0xC3, 0xCA, 0xF2, 0xE6, /* 0xFC-0xFF */ |
7561 | }; | 7561 | }; |
7562 | 7562 | ||
7563 | static unsigned char u2c_88[512] = { | 7563 | static const unsigned char u2c_88[512] = { |
7564 | 0xF2, 0xDB, 0xF0, 0xCE, 0xF2, 0xE8, 0xF2, 0xDD, /* 0x00-0x03 */ | 7564 | 0xF2, 0xDB, 0xF0, 0xCE, 0xF2, 0xE8, 0xF2, 0xDD, /* 0x00-0x03 */ |
7565 | 0x00, 0x00, 0xC3, 0xC7, 0xF2, 0xE3, 0x00, 0x00, /* 0x04-0x07 */ | 7565 | 0x00, 0x00, 0xC3, 0xC7, 0xF2, 0xE3, 0x00, 0x00, /* 0x04-0x07 */ |
7566 | 0xF2, 0xE5, 0xF2, 0xE0, 0xF2, 0xE7, 0xF2, 0xE2, /* 0x08-0x0B */ | 7566 | 0xF2, 0xE5, 0xF2, 0xE0, 0xF2, 0xE7, 0xF2, 0xE2, /* 0x08-0x0B */ |
@@ -7628,7 +7628,7 @@ static unsigned char u2c_88[512] = { | |||
7628 | 0xE3, 0xFC, 0xBB, 0x73, 0xE3, 0xFA, 0x00, 0x00, /* 0xFC-0xFF */ | 7628 | 0xE3, 0xFC, 0xBB, 0x73, 0xE3, 0xFA, 0x00, 0x00, /* 0xFC-0xFF */ |
7629 | }; | 7629 | }; |
7630 | 7630 | ||
7631 | static unsigned char u2c_89[512] = { | 7631 | static const unsigned char u2c_89[512] = { |
7632 | 0x00, 0x00, 0xDB, 0xCE, 0xBB, 0x6F, 0x00, 0x00, /* 0x00-0x03 */ | 7632 | 0x00, 0x00, 0xDB, 0xCE, 0xBB, 0x6F, 0x00, 0x00, /* 0x00-0x03 */ |
7633 | 0x00, 0x00, 0xE7, 0xC2, 0xE7, 0xC9, 0xBD, 0xC6, /* 0x04-0x07 */ | 7633 | 0x00, 0x00, 0xE7, 0xC2, 0xE7, 0xC9, 0xBD, 0xC6, /* 0x04-0x07 */ |
7634 | 0x00, 0x00, 0xE7, 0xCD, 0xBD, 0xCA, 0xE7, 0xC5, /* 0x08-0x0B */ | 7634 | 0x00, 0x00, 0xE7, 0xCD, 0xBD, 0xCA, 0xE7, 0xC5, /* 0x08-0x0B */ |
@@ -7696,7 +7696,7 @@ static unsigned char u2c_89[512] = { | |||
7696 | 0xC5, 0xA9, 0x00, 0x00, 0xF7, 0xFE, 0xF9, 0x4C, /* 0xFC-0xFF */ | 7696 | 0xC5, 0xA9, 0x00, 0x00, 0xF7, 0xFE, 0xF9, 0x4C, /* 0xFC-0xFF */ |
7697 | }; | 7697 | }; |
7698 | 7698 | ||
7699 | static unsigned char u2c_8A[512] = { | 7699 | static const unsigned char u2c_8A[512] = { |
7700 | 0xA8, 0xA5, 0x00, 0x00, 0xAD, 0x71, 0xAD, 0x72, /* 0x00-0x03 */ | 7700 | 0xA8, 0xA5, 0x00, 0x00, 0xAD, 0x71, 0xAD, 0x72, /* 0x00-0x03 */ |
7701 | 0xD0, 0xB0, 0x00, 0x00, 0x00, 0x00, 0xD0, 0xB1, /* 0x04-0x07 */ | 7701 | 0xD0, 0xB0, 0x00, 0x00, 0x00, 0x00, 0xD0, 0xB1, /* 0x04-0x07 */ |
7702 | 0xAD, 0x70, 0x00, 0x00, 0xB0, 0x54, 0x00, 0x00, /* 0x08-0x0B */ | 7702 | 0xAD, 0x70, 0x00, 0x00, 0xB0, 0x54, 0x00, 0x00, /* 0x08-0x0B */ |
@@ -7764,7 +7764,7 @@ static unsigned char u2c_8A[512] = { | |||
7764 | 0xBF, 0xDC, 0x00, 0x00, 0xBF, 0xD5, 0xEB, 0xAE, /* 0xFC-0xFF */ | 7764 | 0xBF, 0xDC, 0x00, 0x00, 0xBF, 0xD5, 0xEB, 0xAE, /* 0xFC-0xFF */ |
7765 | }; | 7765 | }; |
7766 | 7766 | ||
7767 | static unsigned char u2c_8B[512] = { | 7767 | static const unsigned char u2c_8B[512] = { |
7768 | 0xBF, 0xD1, 0xBF, 0xD6, 0xBF, 0xD7, 0x00, 0x00, /* 0x00-0x03 */ | 7768 | 0xBF, 0xD1, 0xBF, 0xD6, 0xBF, 0xD7, 0x00, 0x00, /* 0x00-0x03 */ |
7769 | 0xC1, 0xC3, 0xEE, 0xA4, 0xEE, 0xAD, 0xEE, 0xAA, /* 0x04-0x07 */ | 7769 | 0xC1, 0xC3, 0xEE, 0xA4, 0xEE, 0xAD, 0xEE, 0xAA, /* 0x04-0x07 */ |
7770 | 0xEE, 0xAC, 0x00, 0x00, 0xC1, 0xC0, 0xEE, 0xA5, /* 0x08-0x0B */ | 7770 | 0xEE, 0xAC, 0x00, 0x00, 0xC1, 0xC0, 0xEE, 0xA5, /* 0x08-0x0B */ |
@@ -7808,7 +7808,7 @@ static unsigned char u2c_8B[512] = { | |||
7808 | 0xC6, 0x6D, 0x00, 0x00, 0xF9, 0xA9, 0xF9, 0xC8, /* 0x9C-0x9F */ | 7808 | 0xC6, 0x6D, 0x00, 0x00, 0xF9, 0xA9, 0xF9, 0xC8, /* 0x9C-0x9F */ |
7809 | }; | 7809 | }; |
7810 | 7810 | ||
7811 | static unsigned char u2c_8C[512] = { | 7811 | static const unsigned char u2c_8C[512] = { |
7812 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x00-0x03 */ | 7812 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x00-0x03 */ |
7813 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x04-0x07 */ | 7813 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x04-0x07 */ |
7814 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x08-0x0B */ | 7814 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x08-0x0B */ |
@@ -7876,7 +7876,7 @@ static unsigned char u2c_8C[512] = { | |||
7876 | 0xC1, 0xCA, 0xC1, 0xC9, 0xF0, 0xF3, 0x00, 0x00, /* 0xFC-0xFF */ | 7876 | 0xC1, 0xCA, 0xC1, 0xC9, 0xF0, 0xF3, 0x00, 0x00, /* 0xFC-0xFF */ |
7877 | }; | 7877 | }; |
7878 | 7878 | ||
7879 | static unsigned char u2c_8D[512] = { | 7879 | static const unsigned char u2c_8D[512] = { |
7880 | 0xF0, 0xF6, 0x00, 0x00, 0xF0, 0xF5, 0x00, 0x00, /* 0x00-0x03 */ | 7880 | 0xF0, 0xF6, 0x00, 0x00, 0xF0, 0xF5, 0x00, 0x00, /* 0x00-0x03 */ |
7881 | 0xF0, 0xF4, 0xC2, 0xD8, 0xF3, 0x48, 0xF3, 0x49, /* 0x04-0x07 */ | 7881 | 0xF0, 0xF4, 0xC2, 0xD8, 0xF3, 0x48, 0xF3, 0x49, /* 0x04-0x07 */ |
7882 | 0xC3, 0xD8, 0xF3, 0x4A, 0xC3, 0xD9, 0x00, 0x00, /* 0x08-0x0B */ | 7882 | 0xC3, 0xD8, 0xF3, 0x4A, 0xC3, 0xD9, 0x00, 0x00, /* 0x08-0x0B */ |
@@ -7944,7 +7944,7 @@ static unsigned char u2c_8D[512] = { | |||
7944 | 0xBB, 0xB1, 0xE4, 0x5B, 0xE4, 0x61, 0xE4, 0x59, /* 0xFC-0xFF */ | 7944 | 0xBB, 0xB1, 0xE4, 0x5B, 0xE4, 0x61, 0xE4, 0x59, /* 0xFC-0xFF */ |
7945 | }; | 7945 | }; |
7946 | 7946 | ||
7947 | static unsigned char u2c_8E[512] = { | 7947 | static const unsigned char u2c_8E[512] = { |
7948 | 0xE4, 0x62, 0x00, 0x00, 0xE4, 0x58, 0xE4, 0x5D, /* 0x00-0x03 */ | 7948 | 0xE4, 0x62, 0x00, 0x00, 0xE4, 0x58, 0xE4, 0x5D, /* 0x00-0x03 */ |
7949 | 0xE4, 0x63, 0xE4, 0x60, 0xE4, 0x5F, 0xE4, 0x5E, /* 0x04-0x07 */ | 7949 | 0xE4, 0x63, 0xE4, 0x60, 0xE4, 0x5F, 0xE4, 0x5E, /* 0x04-0x07 */ |
7950 | 0x00, 0x00, 0xE4, 0x57, 0xE4, 0x5C, 0x00, 0x00, /* 0x08-0x0B */ | 7950 | 0x00, 0x00, 0xE4, 0x57, 0xE4, 0x5C, 0x00, 0x00, /* 0x08-0x0B */ |
@@ -8012,7 +8012,7 @@ static unsigned char u2c_8E[512] = { | |||
8012 | 0xB6, 0x63, 0x00, 0x00, 0xB8, 0xFD, 0xE0, 0x75, /* 0xFC-0xFF */ | 8012 | 0xB6, 0x63, 0x00, 0x00, 0xB8, 0xFD, 0xE0, 0x75, /* 0xFC-0xFF */ |
8013 | }; | 8013 | }; |
8014 | 8014 | ||
8015 | static unsigned char u2c_8F[512] = { | 8015 | static const unsigned char u2c_8F[512] = { |
8016 | 0xE0, 0x77, 0xE0, 0x76, 0xE0, 0x7B, 0xB8, 0xFB, /* 0x00-0x03 */ | 8016 | 0xE0, 0x77, 0xE0, 0x76, 0xE0, 0x7B, 0xB8, 0xFB, /* 0x00-0x03 */ |
8017 | 0x00, 0x00, 0xE0, 0x78, 0xE0, 0x74, 0xE0, 0x79, /* 0x04-0x07 */ | 8017 | 0x00, 0x00, 0xE0, 0x78, 0xE0, 0x74, 0xE0, 0x79, /* 0x04-0x07 */ |
8018 | 0xE0, 0x7A, 0xB8, 0xFC, 0xB8, 0xFE, 0xE0, 0x7C, /* 0x08-0x0B */ | 8018 | 0xE0, 0x7A, 0xB8, 0xFC, 0xB8, 0xFE, 0xE0, 0x7C, /* 0x08-0x0B */ |
@@ -8080,7 +8080,7 @@ static unsigned char u2c_8F[512] = { | |||
8080 | 0xD3, 0xF0, 0xB0, 0x6C, 0xD3, 0xEA, 0xD3, 0xED, /* 0xFC-0xFF */ | 8080 | 0xD3, 0xF0, 0xB0, 0x6C, 0xD3, 0xEA, 0xD3, 0xED, /* 0xFC-0xFF */ |
8081 | }; | 8081 | }; |
8082 | 8082 | ||
8083 | static unsigned char u2c_90[512] = { | 8083 | static const unsigned char u2c_90[512] = { |
8084 | 0xB0, 0x68, 0xB0, 0x65, 0xD3, 0xEC, 0xB0, 0x6B, /* 0x00-0x03 */ | 8084 | 0xB0, 0x68, 0xB0, 0x65, 0xD3, 0xEC, 0xB0, 0x6B, /* 0x00-0x03 */ |
8085 | 0xD3, 0xEF, 0xB0, 0x6D, 0xB0, 0x66, 0x00, 0x00, /* 0x04-0x07 */ | 8085 | 0xD3, 0xEF, 0xB0, 0x6D, 0xB0, 0x66, 0x00, 0x00, /* 0x04-0x07 */ |
8086 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xD7, 0xE3, /* 0x08-0x0B */ | 8086 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xD7, 0xE3, /* 0x08-0x0B */ |
@@ -8148,7 +8148,7 @@ static unsigned char u2c_90[512] = { | |||
8148 | 0xDC, 0x54, 0xB3, 0xA3, 0xB6, 0x6E, 0xDC, 0x53, /* 0xFC-0xFF */ | 8148 | 0xDC, 0x54, 0xB3, 0xA3, 0xB6, 0x6E, 0xDC, 0x53, /* 0xFC-0xFF */ |
8149 | }; | 8149 | }; |
8150 | 8150 | ||
8151 | static unsigned char u2c_91[512] = { | 8151 | static const unsigned char u2c_91[512] = { |
8152 | 0xDC, 0x59, 0xDC, 0x58, 0xB6, 0x6B, 0xDC, 0x5C, /* 0x00-0x03 */ | 8152 | 0xDC, 0x59, 0xDC, 0x58, 0xB6, 0x6B, 0xDC, 0x5C, /* 0x00-0x03 */ |
8153 | 0xDC, 0x52, 0xDC, 0x5B, 0xDC, 0x50, 0xDC, 0x5A, /* 0x04-0x07 */ | 8153 | 0xDC, 0x52, 0xDC, 0x5B, 0xDC, 0x50, 0xDC, 0x5A, /* 0x04-0x07 */ |
8154 | 0xDC, 0x55, 0xB6, 0x6D, 0x00, 0x00, 0xE0, 0xAA, /* 0x08-0x0B */ | 8154 | 0xDC, 0x55, 0xB6, 0x6D, 0x00, 0x00, 0xE0, 0xAA, /* 0x08-0x0B */ |
@@ -8216,7 +8216,7 @@ static unsigned char u2c_91[512] = { | |||
8216 | 0x00, 0x00, 0xDC, 0x6D, 0x00, 0x00, 0xDC, 0x6C, /* 0xFC-0xFF */ | 8216 | 0x00, 0x00, 0xDC, 0x6D, 0x00, 0x00, 0xDC, 0x6C, /* 0xFC-0xFF */ |
8217 | }; | 8217 | }; |
8218 | 8218 | ||
8219 | static unsigned char u2c_92[512] = { | 8219 | static const unsigned char u2c_92[512] = { |
8220 | 0xDC, 0x6A, 0xDC, 0x62, 0xDC, 0x71, 0xDC, 0x65, /* 0x00-0x03 */ | 8220 | 0xDC, 0x6A, 0xDC, 0x62, 0xDC, 0x71, 0xDC, 0x65, /* 0x00-0x03 */ |
8221 | 0xDC, 0x6F, 0xDC, 0x76, 0xDC, 0x6E, 0xB6, 0x79, /* 0x04-0x07 */ | 8221 | 0xDC, 0x6F, 0xDC, 0x76, 0xDC, 0x6E, 0xB6, 0x79, /* 0x04-0x07 */ |
8222 | 0x00, 0x00, 0xB6, 0x75, 0xDC, 0x63, 0x00, 0x00, /* 0x08-0x0B */ | 8222 | 0x00, 0x00, 0xB6, 0x75, 0xDC, 0x63, 0x00, 0x00, /* 0x08-0x0B */ |
@@ -8284,7 +8284,7 @@ static unsigned char u2c_92[512] = { | |||
8284 | 0xBF, 0xFB, 0x00, 0x00, 0xEC, 0x41, 0xEB, 0xF8, /* 0xFC-0xFF */ | 8284 | 0xBF, 0xFB, 0x00, 0x00, 0xEC, 0x41, 0xEB, 0xF8, /* 0xFC-0xFF */ |
8285 | }; | 8285 | }; |
8286 | 8286 | ||
8287 | static unsigned char u2c_93[512] = { | 8287 | static const unsigned char u2c_93[512] = { |
8288 | 0xEC, 0x43, 0xEB, 0xE9, 0xEB, 0xF6, 0x00, 0x00, /* 0x00-0x03 */ | 8288 | 0xEC, 0x43, 0xEB, 0xE9, 0xEB, 0xF6, 0x00, 0x00, /* 0x00-0x03 */ |
8289 | 0xBF, 0xFD, 0x00, 0x00, 0xEB, 0xE1, 0x00, 0x00, /* 0x04-0x07 */ | 8289 | 0xBF, 0xFD, 0x00, 0x00, 0xEB, 0xE1, 0x00, 0x00, /* 0x04-0x07 */ |
8290 | 0xEB, 0xDF, 0xEC, 0x42, 0x00, 0x00, 0xEC, 0x40, /* 0x08-0x0B */ | 8290 | 0xEB, 0xDF, 0xEC, 0x42, 0x00, 0x00, 0xEC, 0x40, /* 0x08-0x0B */ |
@@ -8352,7 +8352,7 @@ static unsigned char u2c_93[512] = { | |||
8352 | 0xF5, 0x40, 0xC4, 0xC3, 0xF4, 0xED, 0xF4, 0xFE, /* 0xFC-0xFF */ | 8352 | 0xF5, 0x40, 0xC4, 0xC3, 0xF4, 0xED, 0xF4, 0xFE, /* 0xFC-0xFF */ |
8353 | }; | 8353 | }; |
8354 | 8354 | ||
8355 | static unsigned char u2c_94[512] = { | 8355 | static const unsigned char u2c_94[512] = { |
8356 | 0xF4, 0xF4, 0x00, 0x00, 0x00, 0x00, 0xC4, 0xC2, /* 0x00-0x03 */ | 8356 | 0xF4, 0xF4, 0x00, 0x00, 0x00, 0x00, 0xC4, 0xC2, /* 0x00-0x03 */ |
8357 | 0x00, 0x00, 0x00, 0x00, 0xF5, 0x44, 0xF4, 0xF6, /* 0x04-0x07 */ | 8357 | 0x00, 0x00, 0x00, 0x00, 0xF5, 0x44, 0xF4, 0xF6, /* 0x04-0x07 */ |
8358 | 0x00, 0x00, 0xF4, 0xFB, 0xF4, 0xFD, 0xF4, 0xE7, /* 0x08-0x0B */ | 8358 | 0x00, 0x00, 0xF4, 0xFB, 0xF4, 0xFD, 0xF4, 0xE7, /* 0x08-0x0B */ |
@@ -8389,7 +8389,7 @@ static unsigned char u2c_94[512] = { | |||
8389 | 0xF9, 0xC0, 0xF9, 0xC1, 0xF9, 0xBF, 0xF9, 0xC9, /* 0x80-0x83 */ | 8389 | 0xF9, 0xC0, 0xF9, 0xC1, 0xF9, 0xBF, 0xF9, 0xC9, /* 0x80-0x83 */ |
8390 | }; | 8390 | }; |
8391 | 8391 | ||
8392 | static unsigned char u2c_95[512] = { | 8392 | static const unsigned char u2c_95[512] = { |
8393 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x00-0x03 */ | 8393 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x00-0x03 */ |
8394 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x04-0x07 */ | 8394 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x04-0x07 */ |
8395 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x08-0x0B */ | 8395 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x08-0x0B */ |
@@ -8451,7 +8451,7 @@ static unsigned char u2c_95[512] = { | |||
8451 | 0xF6, 0x6C, 0xF6, 0x6B, 0x00, 0x00, 0x00, 0x00, /* 0xE4-0xE7 */ | 8451 | 0xF6, 0x6C, 0xF6, 0x6B, 0x00, 0x00, 0x00, 0x00, /* 0xE4-0xE7 */ |
8452 | }; | 8452 | }; |
8453 | 8453 | ||
8454 | static unsigned char u2c_96[512] = { | 8454 | static const unsigned char u2c_96[512] = { |
8455 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x00-0x03 */ | 8455 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x00-0x03 */ |
8456 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x04-0x07 */ | 8456 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x04-0x07 */ |
8457 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x08-0x0B */ | 8457 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x08-0x0B */ |
@@ -8519,7 +8519,7 @@ static unsigned char u2c_96[512] = { | |||
8519 | 0x00, 0x00, 0xE0, 0xD7, 0x00, 0x00, 0xE4, 0xBD, /* 0xFC-0xFF */ | 8519 | 0x00, 0x00, 0xE0, 0xD7, 0x00, 0x00, 0xE4, 0xBD, /* 0xFC-0xFF */ |
8520 | }; | 8520 | }; |
8521 | 8521 | ||
8522 | static unsigned char u2c_97[512] = { | 8522 | static const unsigned char u2c_97[512] = { |
8523 | 0xBB, 0xDD, 0x00, 0x00, 0xE8, 0xAF, 0x00, 0x00, /* 0x00-0x03 */ | 8523 | 0xBB, 0xDD, 0x00, 0x00, 0xE8, 0xAF, 0x00, 0x00, /* 0x00-0x03 */ |
8524 | 0xBE, 0x5D, 0xE8, 0xAD, 0xBE, 0x5E, 0xBE, 0x5F, /* 0x04-0x07 */ | 8524 | 0xBE, 0x5D, 0xE8, 0xAD, 0xBE, 0x5E, 0xBE, 0x5F, /* 0x04-0x07 */ |
8525 | 0xE8, 0xAE, 0xBE, 0x60, 0x00, 0x00, 0xEC, 0x51, /* 0x08-0x0B */ | 8525 | 0xE8, 0xAE, 0xBE, 0x60, 0x00, 0x00, 0xEC, 0x51, /* 0x08-0x0B */ |
@@ -8587,7 +8587,7 @@ static unsigned char u2c_97[512] = { | |||
8587 | 0x00, 0x00, 0xF5, 0x4C, 0xF5, 0x4D, 0xC5, 0x54, /* 0xFC-0xFF */ | 8587 | 0x00, 0x00, 0xF5, 0x4C, 0xF5, 0x4D, 0xC5, 0x54, /* 0xFC-0xFF */ |
8588 | }; | 8588 | }; |
8589 | 8589 | ||
8590 | static unsigned char u2c_98[512] = { | 8590 | static const unsigned char u2c_98[512] = { |
8591 | 0xF8, 0x51, 0xAD, 0xB6, 0xB3, 0xBB, 0xB3, 0xBC, /* 0x00-0x03 */ | 8591 | 0xF8, 0x51, 0xAD, 0xB6, 0xB3, 0xBB, 0xB3, 0xBC, /* 0x00-0x03 */ |
8592 | 0xD8, 0x4E, 0xB6, 0xB5, 0xB6, 0xB6, 0xDC, 0xAC, /* 0x04-0x07 */ | 8592 | 0xD8, 0x4E, 0xB6, 0xB5, 0xB6, 0xB6, 0xDC, 0xAC, /* 0x04-0x07 */ |
8593 | 0xB6, 0xB7, 0x00, 0x00, 0xB9, 0x7A, 0x00, 0x00, /* 0x08-0x0B */ | 8593 | 0xB6, 0xB7, 0x00, 0x00, 0xB9, 0x7A, 0x00, 0x00, /* 0x08-0x0B */ |
@@ -8655,7 +8655,7 @@ static unsigned char u2c_98[512] = { | |||
8655 | 0xB9, 0x7D, 0xB9, 0xA1, 0xB9, 0xA2, 0x00, 0x00, /* 0xFC-0xFF */ | 8655 | 0xB9, 0x7D, 0xB9, 0xA1, 0xB9, 0xA2, 0x00, 0x00, /* 0xFC-0xFF */ |
8656 | }; | 8656 | }; |
8657 | 8657 | ||
8658 | static unsigned char u2c_99[512] = { | 8658 | static const unsigned char u2c_99[512] = { |
8659 | 0xE4, 0xCF, 0x00, 0x00, 0xE4, 0xCE, 0xBB, 0xE5, /* 0x00-0x03 */ | 8659 | 0xE4, 0xCF, 0x00, 0x00, 0xE4, 0xCE, 0xBB, 0xE5, /* 0x00-0x03 */ |
8660 | 0x00, 0x00, 0xBB, 0xE6, 0x00, 0x00, 0xE4, 0xD0, /* 0x04-0x07 */ | 8660 | 0x00, 0x00, 0xBB, 0xE6, 0x00, 0x00, 0xE4, 0xD0, /* 0x04-0x07 */ |
8661 | 0xE8, 0xBF, 0xBB, 0xE8, 0xBE, 0x69, 0x00, 0x00, /* 0x08-0x0B */ | 8661 | 0xE8, 0xBF, 0xBB, 0xE8, 0xBE, 0x69, 0x00, 0x00, /* 0x08-0x0B */ |
@@ -8723,7 +8723,7 @@ static unsigned char u2c_99[512] = { | |||
8723 | 0xEF, 0x62, 0xEF, 0x60, 0xEF, 0x61, 0xC2, 0x40, /* 0xFC-0xFF */ | 8723 | 0xEF, 0x62, 0xEF, 0x60, 0xEF, 0x61, 0xC2, 0x40, /* 0xFC-0xFF */ |
8724 | }; | 8724 | }; |
8725 | 8725 | ||
8726 | static unsigned char u2c_9A[512] = { | 8726 | static const unsigned char u2c_9A[512] = { |
8727 | 0x00, 0x00, 0xC1, 0xFE, 0xEF, 0x58, 0xEF, 0x63, /* 0x00-0x03 */ | 8727 | 0x00, 0x00, 0xC1, 0xFE, 0xEF, 0x58, 0xEF, 0x63, /* 0x00-0x03 */ |
8728 | 0xF1, 0xB3, 0xF1, 0xB6, 0xF1, 0xB8, 0xF1, 0xB7, /* 0x04-0x07 */ | 8728 | 0xF1, 0xB3, 0xF1, 0xB6, 0xF1, 0xB8, 0xF1, 0xB7, /* 0x04-0x07 */ |
8729 | 0x00, 0x00, 0xF1, 0xB1, 0xF1, 0xB5, 0xF1, 0xB0, /* 0x08-0x0B */ | 8729 | 0x00, 0x00, 0xF1, 0xB1, 0xF1, 0xB5, 0xF1, 0xB0, /* 0x08-0x0B */ |
@@ -8791,7 +8791,7 @@ static unsigned char u2c_9A[512] = { | |||
8791 | 0xEF, 0x68, 0xEF, 0x66, 0xEF, 0x65, 0x00, 0x00, /* 0xFC-0xFF */ | 8791 | 0xEF, 0x68, 0xEF, 0x66, 0xEF, 0x65, 0x00, 0x00, /* 0xFC-0xFF */ |
8792 | }; | 8792 | }; |
8793 | 8793 | ||
8794 | static unsigned char u2c_9B[512] = { | 8794 | static const unsigned char u2c_9B[512] = { |
8795 | 0x00, 0x00, 0xEF, 0x67, 0x00, 0x00, 0xC3, 0x4F, /* 0x00-0x03 */ | 8795 | 0x00, 0x00, 0xEF, 0x67, 0x00, 0x00, 0xC3, 0x4F, /* 0x00-0x03 */ |
8796 | 0xF1, 0xBC, 0xF1, 0xBD, 0xC3, 0x50, 0x00, 0x00, /* 0x04-0x07 */ | 8796 | 0xF1, 0xBC, 0xF1, 0xBD, 0xC3, 0x50, 0x00, 0x00, /* 0x04-0x07 */ |
8797 | 0xF1, 0xBB, 0x00, 0x00, 0xF3, 0xC3, 0xF3, 0xC2, /* 0x08-0x0B */ | 8797 | 0xF1, 0xBB, 0x00, 0x00, 0xF3, 0xC3, 0xF3, 0xC2, /* 0x08-0x0B */ |
@@ -8859,7 +8859,7 @@ static unsigned char u2c_9B[512] = { | |||
8859 | 0x00, 0x00, 0xC3, 0x56, 0x00, 0x00, 0x00, 0x00, /* 0xFC-0xFF */ | 8859 | 0x00, 0x00, 0xC3, 0x56, 0x00, 0x00, 0x00, 0x00, /* 0xFC-0xFF */ |
8860 | }; | 8860 | }; |
8861 | 8861 | ||
8862 | static unsigned char u2c_9C[512] = { | 8862 | static const unsigned char u2c_9C[512] = { |
8863 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x00-0x03 */ | 8863 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x00-0x03 */ |
8864 | 0x00, 0x00, 0xF5, 0x6D, 0xF5, 0x73, 0xF5, 0x71, /* 0x04-0x07 */ | 8864 | 0x00, 0x00, 0xF5, 0x6D, 0xF5, 0x73, 0xF5, 0x71, /* 0x04-0x07 */ |
8865 | 0xF5, 0x6B, 0xF5, 0x76, 0x00, 0x00, 0xF5, 0x6A, /* 0x08-0x0B */ | 8865 | 0xF5, 0x6B, 0xF5, 0x76, 0x00, 0x00, 0xF5, 0x6A, /* 0x08-0x0B */ |
@@ -8927,7 +8927,7 @@ static unsigned char u2c_9C[512] = { | |||
8927 | 0xE8, 0xE4, 0xE8, 0xE6, 0x00, 0x00, 0xE8, 0xE7, /* 0xFC-0xFF */ | 8927 | 0xE8, 0xE4, 0xE8, 0xE6, 0x00, 0x00, 0xE8, 0xE7, /* 0xFC-0xFF */ |
8928 | }; | 8928 | }; |
8929 | 8929 | ||
8930 | static unsigned char u2c_9D[512] = { | 8930 | static const unsigned char u2c_9D[512] = { |
8931 | 0xE8, 0xEA, 0x00, 0x00, 0x00, 0x00, 0xBE, 0xA1, /* 0x00-0x03 */ | 8931 | 0xE8, 0xEA, 0x00, 0x00, 0x00, 0x00, 0xBE, 0xA1, /* 0x00-0x03 */ |
8932 | 0xE8, 0xEF, 0xE8, 0xEE, 0xBE, 0x7D, 0xE8, 0xE9, /* 0x04-0x07 */ | 8932 | 0xE8, 0xEF, 0xE8, 0xEE, 0xBE, 0x7D, 0xE8, 0xE9, /* 0x04-0x07 */ |
8933 | 0xE8, 0xED, 0xBE, 0x7E, 0x00, 0x00, 0x00, 0x00, /* 0x08-0x0B */ | 8933 | 0xE8, 0xED, 0xBE, 0x7E, 0x00, 0x00, 0x00, 0x00, /* 0x08-0x0B */ |
@@ -8995,7 +8995,7 @@ static unsigned char u2c_9D[512] = { | |||
8995 | 0x00, 0x00, 0xF8, 0xE6, 0xF8, 0xDD, 0xF8, 0xE5, /* 0xFC-0xFF */ | 8995 | 0x00, 0x00, 0xF8, 0xE6, 0xF8, 0xDD, 0xF8, 0xE5, /* 0xFC-0xFF */ |
8996 | }; | 8996 | }; |
8997 | 8997 | ||
8998 | static unsigned char u2c_9E[512] = { | 8998 | static const unsigned char u2c_9E[512] = { |
8999 | 0xF8, 0xE2, 0xF8, 0xE3, 0xF8, 0xDC, 0xF8, 0xDF, /* 0x00-0x03 */ | 8999 | 0xF8, 0xE2, 0xF8, 0xE3, 0xF8, 0xDC, 0xF8, 0xDF, /* 0x00-0x03 */ |
9000 | 0xF8, 0xE7, 0xF8, 0xE1, 0xF8, 0xE0, 0xF8, 0xDE, /* 0x04-0x07 */ | 9000 | 0xF8, 0xE7, 0xF8, 0xE1, 0xF8, 0xE0, 0xF8, 0xDE, /* 0x04-0x07 */ |
9001 | 0x00, 0x00, 0xF8, 0xE4, 0x00, 0x00, 0xF9, 0x5D, /* 0x08-0x0B */ | 9001 | 0x00, 0x00, 0xF8, 0xE4, 0x00, 0x00, 0xF9, 0x5D, /* 0x08-0x0B */ |
@@ -9063,7 +9063,7 @@ static unsigned char u2c_9E[512] = { | |||
9063 | 0xF3, 0xF5, 0xE0, 0xEF, 0x00, 0x00, 0xEF, 0xB1, /* 0xFC-0xFF */ | 9063 | 0xF3, 0xF5, 0xE0, 0xEF, 0x00, 0x00, 0xEF, 0xB1, /* 0xFC-0xFF */ |
9064 | }; | 9064 | }; |
9065 | 9065 | ||
9066 | static unsigned char u2c_9F[512] = { | 9066 | static const unsigned char u2c_9F[512] = { |
9067 | 0xF1, 0xE2, 0xF1, 0xE1, 0x00, 0x00, 0x00, 0x00, /* 0x00-0x03 */ | 9067 | 0xF1, 0xE2, 0xF1, 0xE1, 0x00, 0x00, 0x00, 0x00, /* 0x00-0x03 */ |
9068 | 0x00, 0x00, 0x00, 0x00, 0xF8, 0x78, 0xC6, 0x52, /* 0x04-0x07 */ | 9068 | 0x00, 0x00, 0x00, 0x00, 0xF8, 0x78, 0xC6, 0x52, /* 0x04-0x07 */ |
9069 | 0x00, 0x00, 0xF9, 0x65, 0xF9, 0x7E, 0x00, 0x00, /* 0x08-0x0B */ | 9069 | 0x00, 0x00, 0xF9, 0x65, 0xF9, 0x7E, 0x00, 0x00, /* 0x08-0x0B */ |
@@ -9109,11 +9109,11 @@ static unsigned char u2c_9F[512] = { | |||
9109 | 0xF9, 0xA1, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xA4-0xA7 */ | 9109 | 0xF9, 0xA1, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xA4-0xA7 */ |
9110 | }; | 9110 | }; |
9111 | 9111 | ||
9112 | static unsigned char u2c_DC[512] = { | 9112 | static const unsigned char u2c_DC[512] = { |
9113 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x00-0x03 */ | 9113 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x00-0x03 */ |
9114 | }; | 9114 | }; |
9115 | 9115 | ||
9116 | static unsigned char u2c_F9[512] = { | 9116 | static const unsigned char u2c_F9[512] = { |
9117 | 0xB0, 0x5A, 0xA7, 0xF3, 0xA8, 0xAE, 0xB8, 0xEB, /* 0x00-0x03 */ | 9117 | 0xB0, 0x5A, 0xA7, 0xF3, 0xA8, 0xAE, 0xB8, 0xEB, /* 0x00-0x03 */ |
9118 | 0xB7, 0xC6, 0xA6, 0xEA, 0xA5, 0x79, 0xC0, 0x74, /* 0x04-0x07 */ | 9118 | 0xB7, 0xC6, 0xA6, 0xEA, 0xA5, 0x79, 0xC0, 0x74, /* 0x04-0x07 */ |
9119 | 0xC0, 0x74, 0xAB, 0xB4, 0xAA, 0xF7, 0xB3, 0xE2, /* 0x08-0x0B */ | 9119 | 0xC0, 0x74, 0xAB, 0xB4, 0xAA, 0xF7, 0xB3, 0xE2, /* 0x08-0x0B */ |
@@ -9181,7 +9181,7 @@ static unsigned char u2c_F9[512] = { | |||
9181 | 0xC3, 0xD1, 0xA4, 0xB0, 0xAF, 0xF9, 0xA8, 0xEB, /* 0xFC-0xFF */ | 9181 | 0xC3, 0xD1, 0xA4, 0xB0, 0xAF, 0xF9, 0xA8, 0xEB, /* 0xFC-0xFF */ |
9182 | }; | 9182 | }; |
9183 | 9183 | ||
9184 | static unsigned char u2c_FA[512] = { | 9184 | static const unsigned char u2c_FA[512] = { |
9185 | 0xA4, 0xC1, 0xAB, 0xD7, 0xA9, 0xDD, 0xBF, 0x7D, /* 0x00-0x03 */ | 9185 | 0xA4, 0xC1, 0xAB, 0xD7, 0xA9, 0xDD, 0xBF, 0x7D, /* 0x00-0x03 */ |
9186 | 0xA6, 0x76, 0xAC, 0x7D, 0xBC, 0xC9, 0xBF, 0xE7, /* 0x04-0x07 */ | 9186 | 0xA6, 0x76, 0xAC, 0x7D, 0xBC, 0xC9, 0xBF, 0xE7, /* 0x04-0x07 */ |
9187 | 0xA6, 0xE6, 0xAD, 0xB0, 0xA8, 0xA3, 0xB9, 0xF8, /* 0x08-0x0B */ | 9187 | 0xA6, 0xE6, 0xAD, 0xB0, 0xA8, 0xA3, 0xB9, 0xF8, /* 0x08-0x0B */ |
@@ -9196,7 +9196,7 @@ static unsigned char u2c_FA[512] = { | |||
9196 | 0xC0, 0x5D, 0xC5, 0x62, 0x00, 0x00, 0x00, 0x00, /* 0x2C-0x2F */ | 9196 | 0xC0, 0x5D, 0xC5, 0x62, 0x00, 0x00, 0x00, 0x00, /* 0x2C-0x2F */ |
9197 | }; | 9197 | }; |
9198 | 9198 | ||
9199 | static unsigned char u2c_FE[512] = { | 9199 | static const unsigned char u2c_FE[512] = { |
9200 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x00-0x03 */ | 9200 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x00-0x03 */ |
9201 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x04-0x07 */ | 9201 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x04-0x07 */ |
9202 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x08-0x0B */ | 9202 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x08-0x0B */ |
@@ -9226,7 +9226,7 @@ static unsigned char u2c_FE[512] = { | |||
9226 | 0xA2, 0x42, 0xA2, 0x4C, 0xA2, 0x4D, 0xA2, 0x4E, /* 0x68-0x6B */ | 9226 | 0xA2, 0x42, 0xA2, 0x4C, 0xA2, 0x4D, 0xA2, 0x4E, /* 0x68-0x6B */ |
9227 | }; | 9227 | }; |
9228 | 9228 | ||
9229 | static unsigned char u2c_FF[512] = { | 9229 | static const unsigned char u2c_FF[512] = { |
9230 | 0x00, 0x00, 0xA1, 0x49, 0xA1, 0xA8, 0xA1, 0xAD, /* 0x00-0x03 */ | 9230 | 0x00, 0x00, 0xA1, 0x49, 0xA1, 0xA8, 0xA1, 0xAD, /* 0x00-0x03 */ |
9231 | 0xA2, 0x43, 0xA2, 0x48, 0xA1, 0xAE, 0xA1, 0xA6, /* 0x04-0x07 */ | 9231 | 0xA2, 0x43, 0xA2, 0x48, 0xA1, 0xAE, 0xA1, 0xA6, /* 0x04-0x07 */ |
9232 | 0xA1, 0x5D, 0xA1, 0x5E, 0xA1, 0xAF, 0xA1, 0xCF, /* 0x08-0x0B */ | 9232 | 0xA1, 0x5D, 0xA1, 0x5E, 0xA1, 0xAF, 0xA1, 0xCF, /* 0x08-0x0B */ |
@@ -9288,7 +9288,7 @@ static unsigned char u2c_FF[512] = { | |||
9288 | 0x00, 0x00, 0xA2, 0x44, 0x00, 0x00, 0x00, 0x00, /* 0xE4-0xE7 */ | 9288 | 0x00, 0x00, 0xA2, 0x44, 0x00, 0x00, 0x00, 0x00, /* 0xE4-0xE7 */ |
9289 | }; | 9289 | }; |
9290 | 9290 | ||
9291 | static unsigned char *page_uni2charset[256] = { | 9291 | static const unsigned char *const page_uni2charset[256] = { |
9292 | NULL, NULL, u2c_02, u2c_03, NULL, NULL, NULL, NULL, | 9292 | NULL, NULL, u2c_02, u2c_03, NULL, NULL, NULL, NULL, |
9293 | NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, | 9293 | NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, |
9294 | NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, | 9294 | NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, |
@@ -9322,7 +9322,7 @@ static unsigned char *page_uni2charset[256] = { | |||
9322 | NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, | 9322 | NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, |
9323 | NULL, u2c_F9, u2c_FA, NULL, NULL, NULL, u2c_FE, u2c_FF, }; | 9323 | NULL, u2c_F9, u2c_FA, NULL, NULL, NULL, u2c_FE, u2c_FF, }; |
9324 | 9324 | ||
9325 | static unsigned char charset2lower[256] = { | 9325 | static const unsigned char charset2lower[256] = { |
9326 | 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, /* 0x00-0x07 */ | 9326 | 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, /* 0x00-0x07 */ |
9327 | 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, /* 0x08-0x0f */ | 9327 | 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, /* 0x08-0x0f */ |
9328 | 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17, /* 0x10-0x17 */ | 9328 | 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17, /* 0x10-0x17 */ |
@@ -9358,7 +9358,7 @@ static unsigned char charset2lower[256] = { | |||
9358 | 0xf8, 0xf9, 0xfa, 0xfb, 0xfc, 0xfd, 0xfe, 0xff, /* 0xf8-0xff */ | 9358 | 0xf8, 0xf9, 0xfa, 0xfb, 0xfc, 0xfd, 0xfe, 0xff, /* 0xf8-0xff */ |
9359 | }; | 9359 | }; |
9360 | 9360 | ||
9361 | static unsigned char charset2upper[256] = { | 9361 | static const unsigned char charset2upper[256] = { |
9362 | 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, /* 0x00-0x07 */ | 9362 | 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, /* 0x00-0x07 */ |
9363 | 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, /* 0x08-0x0f */ | 9363 | 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, /* 0x08-0x0f */ |
9364 | 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17, /* 0x10-0x17 */ | 9364 | 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17, /* 0x10-0x17 */ |
@@ -9397,7 +9397,7 @@ static unsigned char charset2upper[256] = { | |||
9397 | static int uni2char(const wchar_t uni, | 9397 | static int uni2char(const wchar_t uni, |
9398 | unsigned char *out, int boundlen) | 9398 | unsigned char *out, int boundlen) |
9399 | { | 9399 | { |
9400 | unsigned char *uni2charset; | 9400 | const unsigned char *uni2charset; |
9401 | unsigned char cl = uni&0xFF; | 9401 | unsigned char cl = uni&0xFF; |
9402 | unsigned char ch = (uni>>8)&0xFF; | 9402 | unsigned char ch = (uni>>8)&0xFF; |
9403 | int n; | 9403 | int n; |
@@ -9429,7 +9429,7 @@ static int char2uni(const unsigned char *rawstring, int boundlen, | |||
9429 | wchar_t *uni) | 9429 | wchar_t *uni) |
9430 | { | 9430 | { |
9431 | unsigned char ch, cl; | 9431 | unsigned char ch, cl; |
9432 | wchar_t *charset2uni; | 9432 | const wchar_t *charset2uni; |
9433 | int n; | 9433 | int n; |
9434 | 9434 | ||
9435 | if (boundlen <= 0) | 9435 | if (boundlen <= 0) |
diff --git a/fs/nls/nls_euc-jp.c b/fs/nls/nls_euc-jp.c index 73293511578b..7424929a278b 100644 --- a/fs/nls/nls_euc-jp.c +++ b/fs/nls/nls_euc-jp.c | |||
@@ -57,7 +57,7 @@ static struct nls_table *p_nls; | |||
57 | } while(0) | 57 | } while(0) |
58 | 58 | ||
59 | /* SJIS IBM extended characters to EUC map */ | 59 | /* SJIS IBM extended characters to EUC map */ |
60 | static unsigned char sjisibm2euc_map[][2] = { | 60 | static const unsigned char sjisibm2euc_map[][2] = { |
61 | {0xF3, 0xF3}, {0xF3, 0xF4}, {0xF3, 0xF5}, {0xF3, 0xF6}, {0xF3, 0xF7}, | 61 | {0xF3, 0xF3}, {0xF3, 0xF4}, {0xF3, 0xF5}, {0xF3, 0xF6}, {0xF3, 0xF7}, |
62 | {0xF3, 0xF8}, {0xF3, 0xF9}, {0xF3, 0xFA}, {0xF3, 0xFB}, {0xF3, 0xFC}, | 62 | {0xF3, 0xF8}, {0xF3, 0xF9}, {0xF3, 0xFA}, {0xF3, 0xFB}, {0xF3, 0xFC}, |
63 | {0xF3, 0xFD}, {0xF3, 0xFE}, {0xF4, 0xA1}, {0xF4, 0xA2}, {0xF4, 0xA3}, | 63 | {0xF3, 0xFD}, {0xF3, 0xFE}, {0xF4, 0xA1}, {0xF4, 0xA2}, {0xF4, 0xA3}, |
@@ -243,7 +243,7 @@ static struct { | |||
243 | }; | 243 | }; |
244 | 244 | ||
245 | /* EUC to SJIS IBM extended characters map (G3 Upper block) */ | 245 | /* EUC to SJIS IBM extended characters map (G3 Upper block) */ |
246 | static unsigned char euc2sjisibm_g3upper_map[][2] = { | 246 | static const unsigned char euc2sjisibm_g3upper_map[][2] = { |
247 | {0xFA, 0x40}, {0xFA, 0x41}, {0xFA, 0x42}, {0xFA, 0x43}, {0xFA, 0x44}, | 247 | {0xFA, 0x40}, {0xFA, 0x41}, {0xFA, 0x42}, {0xFA, 0x43}, {0xFA, 0x44}, |
248 | {0xFA, 0x45}, {0xFA, 0x46}, {0xFA, 0x47}, {0xFA, 0x48}, {0xFA, 0x49}, | 248 | {0xFA, 0x45}, {0xFA, 0x46}, {0xFA, 0x47}, {0xFA, 0x48}, {0xFA, 0x49}, |
249 | {0xFA, 0x4A}, {0xFA, 0x4B}, {0xFA, 0x4C}, {0xFA, 0x4D}, {0xFA, 0x4E}, | 249 | {0xFA, 0x4A}, {0xFA, 0x4B}, {0xFA, 0x4C}, {0xFA, 0x4D}, {0xFA, 0x4E}, |
diff --git a/fs/nls/nls_iso8859-1.c b/fs/nls/nls_iso8859-1.c index 2483c3c6c1c1..7b951bb5849c 100644 --- a/fs/nls/nls_iso8859-1.c +++ b/fs/nls/nls_iso8859-1.c | |||
@@ -13,7 +13,7 @@ | |||
13 | #include <linux/nls.h> | 13 | #include <linux/nls.h> |
14 | #include <linux/errno.h> | 14 | #include <linux/errno.h> |
15 | 15 | ||
16 | static wchar_t charset2uni[256] = { | 16 | static const wchar_t charset2uni[256] = { |
17 | /* 0x00*/ | 17 | /* 0x00*/ |
18 | 0x0000, 0x0001, 0x0002, 0x0003, | 18 | 0x0000, 0x0001, 0x0002, 0x0003, |
19 | 0x0004, 0x0005, 0x0006, 0x0007, | 19 | 0x0004, 0x0005, 0x0006, 0x0007, |
@@ -96,7 +96,7 @@ static wchar_t charset2uni[256] = { | |||
96 | 0x00fc, 0x00fd, 0x00fe, 0x00ff, | 96 | 0x00fc, 0x00fd, 0x00fe, 0x00ff, |
97 | }; | 97 | }; |
98 | 98 | ||
99 | static unsigned char page00[256] = { | 99 | static const unsigned char page00[256] = { |
100 | 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, /* 0x00-0x07 */ | 100 | 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, /* 0x00-0x07 */ |
101 | 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, /* 0x08-0x0f */ | 101 | 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, /* 0x08-0x0f */ |
102 | 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17, /* 0x10-0x17 */ | 102 | 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17, /* 0x10-0x17 */ |
@@ -132,11 +132,11 @@ static unsigned char page00[256] = { | |||
132 | 0xf8, 0xf9, 0xfa, 0xfb, 0xfc, 0xfd, 0xfe, 0xff, /* 0xf8-0xff */ | 132 | 0xf8, 0xf9, 0xfa, 0xfb, 0xfc, 0xfd, 0xfe, 0xff, /* 0xf8-0xff */ |
133 | }; | 133 | }; |
134 | 134 | ||
135 | static unsigned char *page_uni2charset[256] = { | 135 | static const unsigned char *const page_uni2charset[256] = { |
136 | page00, NULL, NULL, NULL, NULL, NULL, NULL, NULL, | 136 | page00, NULL, NULL, NULL, NULL, NULL, NULL, NULL, |
137 | }; | 137 | }; |
138 | 138 | ||
139 | static unsigned char charset2lower[256] = { | 139 | static const unsigned char charset2lower[256] = { |
140 | 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, /* 0x00-0x07 */ | 140 | 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, /* 0x00-0x07 */ |
141 | 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, /* 0x08-0x0f */ | 141 | 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, /* 0x08-0x0f */ |
142 | 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17, /* 0x10-0x17 */ | 142 | 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17, /* 0x10-0x17 */ |
@@ -172,7 +172,7 @@ static unsigned char charset2lower[256] = { | |||
172 | 0xf8, 0xf9, 0xfa, 0xfb, 0xfc, 0xfd, 0xfe, 0xff, /* 0xf8-0xff */ | 172 | 0xf8, 0xf9, 0xfa, 0xfb, 0xfc, 0xfd, 0xfe, 0xff, /* 0xf8-0xff */ |
173 | }; | 173 | }; |
174 | 174 | ||
175 | static unsigned char charset2upper[256] = { | 175 | static const unsigned char charset2upper[256] = { |
176 | 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, /* 0x00-0x07 */ | 176 | 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, /* 0x00-0x07 */ |
177 | 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, /* 0x08-0x0f */ | 177 | 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, /* 0x08-0x0f */ |
178 | 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17, /* 0x10-0x17 */ | 178 | 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17, /* 0x10-0x17 */ |
@@ -210,7 +210,7 @@ static unsigned char charset2upper[256] = { | |||
210 | 210 | ||
211 | static int uni2char(wchar_t uni, unsigned char *out, int boundlen) | 211 | static int uni2char(wchar_t uni, unsigned char *out, int boundlen) |
212 | { | 212 | { |
213 | unsigned char *uni2charset; | 213 | const unsigned char *uni2charset; |
214 | unsigned char cl = uni & 0x00ff; | 214 | unsigned char cl = uni & 0x00ff; |
215 | unsigned char ch = (uni & 0xff00) >> 8; | 215 | unsigned char ch = (uni & 0xff00) >> 8; |
216 | 216 | ||
diff --git a/fs/nls/nls_iso8859-13.c b/fs/nls/nls_iso8859-13.c index 7b8721d74368..c4d52ea9f092 100644 --- a/fs/nls/nls_iso8859-13.c +++ b/fs/nls/nls_iso8859-13.c | |||
@@ -11,7 +11,7 @@ | |||
11 | #include <linux/nls.h> | 11 | #include <linux/nls.h> |
12 | #include <linux/errno.h> | 12 | #include <linux/errno.h> |
13 | 13 | ||
14 | static wchar_t charset2uni[256] = { | 14 | static const wchar_t charset2uni[256] = { |
15 | /* 0x00*/ | 15 | /* 0x00*/ |
16 | 0x0000, 0x0001, 0x0002, 0x0003, | 16 | 0x0000, 0x0001, 0x0002, 0x0003, |
17 | 0x0004, 0x0005, 0x0006, 0x0007, | 17 | 0x0004, 0x0005, 0x0006, 0x0007, |
@@ -94,7 +94,7 @@ static wchar_t charset2uni[256] = { | |||
94 | 0x00fc, 0x017c, 0x017e, 0x2019, | 94 | 0x00fc, 0x017c, 0x017e, 0x2019, |
95 | }; | 95 | }; |
96 | 96 | ||
97 | static unsigned char page00[256] = { | 97 | static const unsigned char page00[256] = { |
98 | 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, /* 0x00-0x07 */ | 98 | 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, /* 0x00-0x07 */ |
99 | 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, /* 0x08-0x0f */ | 99 | 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, /* 0x08-0x0f */ |
100 | 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17, /* 0x10-0x17 */ | 100 | 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17, /* 0x10-0x17 */ |
@@ -130,7 +130,7 @@ static unsigned char page00[256] = { | |||
130 | 0xb8, 0x00, 0x00, 0x00, 0xfc, 0x00, 0x00, 0x00, /* 0xf8-0xff */ | 130 | 0xb8, 0x00, 0x00, 0x00, 0xfc, 0x00, 0x00, 0x00, /* 0xf8-0xff */ |
131 | }; | 131 | }; |
132 | 132 | ||
133 | static unsigned char page01[256] = { | 133 | static const unsigned char page01[256] = { |
134 | 0xc2, 0xe2, 0x00, 0x00, 0xc0, 0xe0, 0xc3, 0xe3, /* 0x00-0x07 */ | 134 | 0xc2, 0xe2, 0x00, 0x00, 0xc0, 0xe0, 0xc3, 0xe3, /* 0x00-0x07 */ |
135 | 0x00, 0x00, 0x00, 0x00, 0xc8, 0xe8, 0x00, 0x00, /* 0x08-0x0f */ | 135 | 0x00, 0x00, 0x00, 0x00, 0xc8, 0xe8, 0x00, 0x00, /* 0x08-0x0f */ |
136 | 0x00, 0x00, 0xc7, 0xe7, 0x00, 0x00, 0xcb, 0xeb, /* 0x10-0x17 */ | 136 | 0x00, 0x00, 0xc7, 0xe7, 0x00, 0x00, 0xcb, 0xeb, /* 0x10-0x17 */ |
@@ -149,14 +149,14 @@ static unsigned char page01[256] = { | |||
149 | 0x00, 0xca, 0xea, 0xdd, 0xfd, 0xde, 0xfe, 0x00, /* 0x78-0x7f */ | 149 | 0x00, 0xca, 0xea, 0xdd, 0xfd, 0xde, 0xfe, 0x00, /* 0x78-0x7f */ |
150 | }; | 150 | }; |
151 | 151 | ||
152 | static unsigned char page20[256] = { | 152 | static const unsigned char page20[256] = { |
153 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x00-0x07 */ | 153 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x00-0x07 */ |
154 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x08-0x0f */ | 154 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x08-0x0f */ |
155 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x10-0x17 */ | 155 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x10-0x17 */ |
156 | 0x00, 0xff, 0x00, 0x00, 0xb4, 0xa1, 0xa5, 0x00, /* 0x18-0x1f */ | 156 | 0x00, 0xff, 0x00, 0x00, 0xb4, 0xa1, 0xa5, 0x00, /* 0x18-0x1f */ |
157 | }; | 157 | }; |
158 | 158 | ||
159 | static unsigned char *page_uni2charset[256] = { | 159 | static const unsigned char *const page_uni2charset[256] = { |
160 | page00, page01, NULL, NULL, NULL, NULL, NULL, NULL, | 160 | page00, page01, NULL, NULL, NULL, NULL, NULL, NULL, |
161 | NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, | 161 | NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, |
162 | NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, | 162 | NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, |
@@ -164,7 +164,7 @@ static unsigned char *page_uni2charset[256] = { | |||
164 | page20, NULL, NULL, NULL, NULL, NULL, NULL, NULL, | 164 | page20, NULL, NULL, NULL, NULL, NULL, NULL, NULL, |
165 | }; | 165 | }; |
166 | 166 | ||
167 | static unsigned char charset2lower[256] = { | 167 | static const unsigned char charset2lower[256] = { |
168 | 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, /* 0x00-0x07 */ | 168 | 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, /* 0x00-0x07 */ |
169 | 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, /* 0x08-0x0f */ | 169 | 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, /* 0x08-0x0f */ |
170 | 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17, /* 0x10-0x17 */ | 170 | 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17, /* 0x10-0x17 */ |
@@ -200,7 +200,7 @@ static unsigned char charset2lower[256] = { | |||
200 | 0xf8, 0xf9, 0xfa, 0xfb, 0xfc, 0xfd, 0xfe, 0xff, /* 0xf8-0xff */ | 200 | 0xf8, 0xf9, 0xfa, 0xfb, 0xfc, 0xfd, 0xfe, 0xff, /* 0xf8-0xff */ |
201 | }; | 201 | }; |
202 | 202 | ||
203 | static unsigned char charset2upper[256] = { | 203 | static const unsigned char charset2upper[256] = { |
204 | 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, /* 0x00-0x07 */ | 204 | 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, /* 0x00-0x07 */ |
205 | 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, /* 0x08-0x0f */ | 205 | 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, /* 0x08-0x0f */ |
206 | 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17, /* 0x10-0x17 */ | 206 | 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17, /* 0x10-0x17 */ |
@@ -238,7 +238,7 @@ static unsigned char charset2upper[256] = { | |||
238 | 238 | ||
239 | static int uni2char(wchar_t uni, unsigned char *out, int boundlen) | 239 | static int uni2char(wchar_t uni, unsigned char *out, int boundlen) |
240 | { | 240 | { |
241 | unsigned char *uni2charset; | 241 | const unsigned char *uni2charset; |
242 | unsigned char cl = uni & 0x00ff; | 242 | unsigned char cl = uni & 0x00ff; |
243 | unsigned char ch = (uni & 0xff00) >> 8; | 243 | unsigned char ch = (uni & 0xff00) >> 8; |
244 | 244 | ||
diff --git a/fs/nls/nls_iso8859-14.c b/fs/nls/nls_iso8859-14.c index 2e895e638dba..dc02600c7fe1 100644 --- a/fs/nls/nls_iso8859-14.c +++ b/fs/nls/nls_iso8859-14.c | |||
@@ -18,7 +18,7 @@ | |||
18 | #include <linux/nls.h> | 18 | #include <linux/nls.h> |
19 | #include <linux/errno.h> | 19 | #include <linux/errno.h> |
20 | 20 | ||
21 | static wchar_t charset2uni[256] = { | 21 | static const wchar_t charset2uni[256] = { |
22 | /* 0x00*/ | 22 | /* 0x00*/ |
23 | 0x0000, 0x0001, 0x0002, 0x0003, | 23 | 0x0000, 0x0001, 0x0002, 0x0003, |
24 | 0x0004, 0x0005, 0x0006, 0x0007, | 24 | 0x0004, 0x0005, 0x0006, 0x0007, |
@@ -101,7 +101,7 @@ static wchar_t charset2uni[256] = { | |||
101 | 0x00fc, 0x00fd, 0x0177, 0x00ff, | 101 | 0x00fc, 0x00fd, 0x0177, 0x00ff, |
102 | }; | 102 | }; |
103 | 103 | ||
104 | static unsigned char page00[256] = { | 104 | static const unsigned char page00[256] = { |
105 | 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, /* 0x00-0x07 */ | 105 | 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, /* 0x00-0x07 */ |
106 | 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, /* 0x08-0x0f */ | 106 | 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, /* 0x08-0x0f */ |
107 | 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17, /* 0x10-0x17 */ | 107 | 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17, /* 0x10-0x17 */ |
@@ -137,7 +137,7 @@ static unsigned char page00[256] = { | |||
137 | 0xf8, 0xf9, 0xfa, 0xfb, 0xfc, 0xfd, 0x00, 0xff, /* 0xf8-0xff */ | 137 | 0xf8, 0xf9, 0xfa, 0xfb, 0xfc, 0xfd, 0x00, 0xff, /* 0xf8-0xff */ |
138 | }; | 138 | }; |
139 | 139 | ||
140 | static unsigned char page01[256] = { | 140 | static const unsigned char page01[256] = { |
141 | 0x00, 0x00, 0xa1, 0xa2, 0x00, 0x00, 0x00, 0x00, /* 0x00-0x07 */ | 141 | 0x00, 0x00, 0xa1, 0xa2, 0x00, 0x00, 0x00, 0x00, /* 0x00-0x07 */ |
142 | 0x00, 0x00, 0xa6, 0xab, 0x00, 0x00, 0x00, 0x00, /* 0x08-0x0f */ | 142 | 0x00, 0x00, 0xa6, 0xab, 0x00, 0x00, 0x00, 0x00, /* 0x08-0x0f */ |
143 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x10-0x17 */ | 143 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x10-0x17 */ |
@@ -173,7 +173,7 @@ static unsigned char page01[256] = { | |||
173 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xf8-0xff */ | 173 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xf8-0xff */ |
174 | }; | 174 | }; |
175 | 175 | ||
176 | static unsigned char page1e[256] = { | 176 | static const unsigned char page1e[256] = { |
177 | 0x00, 0x00, 0xa1, 0xa2, 0x00, 0x00, 0x00, 0x00, /* 0x00-0x07 */ | 177 | 0x00, 0x00, 0xa1, 0xa2, 0x00, 0x00, 0x00, 0x00, /* 0x00-0x07 */ |
178 | 0x00, 0x00, 0xa6, 0xab, 0x00, 0x00, 0x00, 0x00, /* 0x08-0x0f */ | 178 | 0x00, 0x00, 0xa6, 0xab, 0x00, 0x00, 0x00, 0x00, /* 0x08-0x0f */ |
179 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x10-0x17 */ | 179 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x10-0x17 */ |
@@ -209,7 +209,7 @@ static unsigned char page1e[256] = { | |||
209 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xf8-0xff */ | 209 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xf8-0xff */ |
210 | }; | 210 | }; |
211 | 211 | ||
212 | static unsigned char *page_uni2charset[256] = { | 212 | static const unsigned char *const page_uni2charset[256] = { |
213 | page00, page01, NULL, NULL, NULL, NULL, NULL, NULL, | 213 | page00, page01, NULL, NULL, NULL, NULL, NULL, NULL, |
214 | NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, | 214 | NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, |
215 | 215 | ||
@@ -220,7 +220,7 @@ static unsigned char *page_uni2charset[256] = { | |||
220 | NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, | 220 | NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, |
221 | }; | 221 | }; |
222 | 222 | ||
223 | static unsigned char charset2lower[256] = { | 223 | static const unsigned char charset2lower[256] = { |
224 | 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, /* 0x00-0x07 */ | 224 | 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, /* 0x00-0x07 */ |
225 | 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, /* 0x08-0x0f */ | 225 | 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, /* 0x08-0x0f */ |
226 | 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17, /* 0x10-0x17 */ | 226 | 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17, /* 0x10-0x17 */ |
@@ -256,7 +256,7 @@ static unsigned char charset2lower[256] = { | |||
256 | 0xf8, 0xf9, 0xfa, 0xfb, 0xfc, 0xfd, 0xfe, 0xff, /* 0xf8-0xff */ | 256 | 0xf8, 0xf9, 0xfa, 0xfb, 0xfc, 0xfd, 0xfe, 0xff, /* 0xf8-0xff */ |
257 | }; | 257 | }; |
258 | 258 | ||
259 | static unsigned char charset2upper[256] = { | 259 | static const unsigned char charset2upper[256] = { |
260 | 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, /* 0x00-0x07 */ | 260 | 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, /* 0x00-0x07 */ |
261 | 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, /* 0x08-0x0f */ | 261 | 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, /* 0x08-0x0f */ |
262 | 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17, /* 0x10-0x17 */ | 262 | 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17, /* 0x10-0x17 */ |
@@ -294,7 +294,7 @@ static unsigned char charset2upper[256] = { | |||
294 | 294 | ||
295 | static int uni2char(wchar_t uni, unsigned char *out, int boundlen) | 295 | static int uni2char(wchar_t uni, unsigned char *out, int boundlen) |
296 | { | 296 | { |
297 | unsigned char *uni2charset; | 297 | const unsigned char *uni2charset; |
298 | unsigned char cl = uni & 0x00ff; | 298 | unsigned char cl = uni & 0x00ff; |
299 | unsigned char ch = (uni & 0xff00) >> 8; | 299 | unsigned char ch = (uni & 0xff00) >> 8; |
300 | 300 | ||
diff --git a/fs/nls/nls_iso8859-15.c b/fs/nls/nls_iso8859-15.c index 5c91592779fe..3c7dfc832ef1 100644 --- a/fs/nls/nls_iso8859-15.c +++ b/fs/nls/nls_iso8859-15.c | |||
@@ -11,7 +11,7 @@ | |||
11 | #include <linux/nls.h> | 11 | #include <linux/nls.h> |
12 | #include <linux/errno.h> | 12 | #include <linux/errno.h> |
13 | 13 | ||
14 | static wchar_t charset2uni[256] = { | 14 | static const wchar_t charset2uni[256] = { |
15 | /* 0x00*/ | 15 | /* 0x00*/ |
16 | 0x0000, 0x0001, 0x0002, 0x0003, | 16 | 0x0000, 0x0001, 0x0002, 0x0003, |
17 | 0x0004, 0x0005, 0x0006, 0x0007, | 17 | 0x0004, 0x0005, 0x0006, 0x0007, |
@@ -94,7 +94,7 @@ static wchar_t charset2uni[256] = { | |||
94 | 0x00fc, 0x00fd, 0x00fe, 0x00ff, | 94 | 0x00fc, 0x00fd, 0x00fe, 0x00ff, |
95 | }; | 95 | }; |
96 | 96 | ||
97 | static unsigned char page00[256] = { | 97 | static const unsigned char page00[256] = { |
98 | 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, /* 0x00-0x07 */ | 98 | 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, /* 0x00-0x07 */ |
99 | 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, /* 0x08-0x0f */ | 99 | 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, /* 0x08-0x0f */ |
100 | 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17, /* 0x10-0x17 */ | 100 | 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17, /* 0x10-0x17 */ |
@@ -130,7 +130,7 @@ static unsigned char page00[256] = { | |||
130 | 0xf8, 0xf9, 0xfa, 0xfb, 0xfc, 0xfd, 0xfe, 0xff, /* 0xf8-0xff */ | 130 | 0xf8, 0xf9, 0xfa, 0xfb, 0xfc, 0xfd, 0xfe, 0xff, /* 0xf8-0xff */ |
131 | }; | 131 | }; |
132 | 132 | ||
133 | static unsigned char page01[256] = { | 133 | static const unsigned char page01[256] = { |
134 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x00-0x07 */ | 134 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x00-0x07 */ |
135 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x08-0x0f */ | 135 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x08-0x0f */ |
136 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x10-0x17 */ | 136 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x10-0x17 */ |
@@ -149,7 +149,7 @@ static unsigned char page01[256] = { | |||
149 | 0xbe, 0x00, 0x00, 0x00, 0x00, 0xb4, 0xb8, 0x00, /* 0x78-0x7f */ | 149 | 0xbe, 0x00, 0x00, 0x00, 0x00, 0xb4, 0xb8, 0x00, /* 0x78-0x7f */ |
150 | }; | 150 | }; |
151 | 151 | ||
152 | static unsigned char page20[256] = { | 152 | static const unsigned char page20[256] = { |
153 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x00-0x07 */ | 153 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x00-0x07 */ |
154 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x08-0x0f */ | 154 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x08-0x0f */ |
155 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x10-0x17 */ | 155 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x10-0x17 */ |
@@ -175,7 +175,7 @@ static unsigned char page20[256] = { | |||
175 | 0x00, 0x00, 0x00, 0x00, 0xa4, 0x00, 0x00, 0x00, /* 0xa8-0xaf */ | 175 | 0x00, 0x00, 0x00, 0x00, 0xa4, 0x00, 0x00, 0x00, /* 0xa8-0xaf */ |
176 | }; | 176 | }; |
177 | 177 | ||
178 | static unsigned char *page_uni2charset[256] = { | 178 | static const unsigned char *const page_uni2charset[256] = { |
179 | page00, page01, NULL, NULL, NULL, NULL, NULL, NULL, | 179 | page00, page01, NULL, NULL, NULL, NULL, NULL, NULL, |
180 | NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, | 180 | NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, |
181 | 181 | ||
@@ -186,7 +186,7 @@ static unsigned char *page_uni2charset[256] = { | |||
186 | NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, | 186 | NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, |
187 | }; | 187 | }; |
188 | 188 | ||
189 | static unsigned char charset2lower[256] = { | 189 | static const unsigned char charset2lower[256] = { |
190 | 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, /* 0x00-0x07 */ | 190 | 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, /* 0x00-0x07 */ |
191 | 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, /* 0x08-0x0f */ | 191 | 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, /* 0x08-0x0f */ |
192 | 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17, /* 0x10-0x17 */ | 192 | 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17, /* 0x10-0x17 */ |
@@ -222,7 +222,7 @@ static unsigned char charset2lower[256] = { | |||
222 | 0xf8, 0xf9, 0xfa, 0xfb, 0xfc, 0xfd, 0xfe, 0xff, /* 0xf8-0xff */ | 222 | 0xf8, 0xf9, 0xfa, 0xfb, 0xfc, 0xfd, 0xfe, 0xff, /* 0xf8-0xff */ |
223 | }; | 223 | }; |
224 | 224 | ||
225 | static unsigned char charset2upper[256] = { | 225 | static const unsigned char charset2upper[256] = { |
226 | 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, /* 0x00-0x07 */ | 226 | 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, /* 0x00-0x07 */ |
227 | 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, /* 0x08-0x0f */ | 227 | 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, /* 0x08-0x0f */ |
228 | 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17, /* 0x10-0x17 */ | 228 | 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17, /* 0x10-0x17 */ |
@@ -260,7 +260,7 @@ static unsigned char charset2upper[256] = { | |||
260 | 260 | ||
261 | static int uni2char(wchar_t uni, unsigned char *out, int boundlen) | 261 | static int uni2char(wchar_t uni, unsigned char *out, int boundlen) |
262 | { | 262 | { |
263 | unsigned char *uni2charset; | 263 | const unsigned char *uni2charset; |
264 | unsigned char cl = uni & 0x00ff; | 264 | unsigned char cl = uni & 0x00ff; |
265 | unsigned char ch = (uni & 0xff00) >> 8; | 265 | unsigned char ch = (uni & 0xff00) >> 8; |
266 | 266 | ||
diff --git a/fs/nls/nls_iso8859-2.c b/fs/nls/nls_iso8859-2.c index 892d38fe9530..a2d2197e4c77 100644 --- a/fs/nls/nls_iso8859-2.c +++ b/fs/nls/nls_iso8859-2.c | |||
@@ -13,7 +13,7 @@ | |||
13 | #include <linux/nls.h> | 13 | #include <linux/nls.h> |
14 | #include <linux/errno.h> | 14 | #include <linux/errno.h> |
15 | 15 | ||
16 | static wchar_t charset2uni[256] = { | 16 | static const wchar_t charset2uni[256] = { |
17 | /* 0x00*/ | 17 | /* 0x00*/ |
18 | 0x0000, 0x0001, 0x0002, 0x0003, | 18 | 0x0000, 0x0001, 0x0002, 0x0003, |
19 | 0x0004, 0x0005, 0x0006, 0x0007, | 19 | 0x0004, 0x0005, 0x0006, 0x0007, |
@@ -96,7 +96,7 @@ static wchar_t charset2uni[256] = { | |||
96 | 0x00fc, 0x00fd, 0x0163, 0x02d9, | 96 | 0x00fc, 0x00fd, 0x0163, 0x02d9, |
97 | }; | 97 | }; |
98 | 98 | ||
99 | static unsigned char page00[256] = { | 99 | static const unsigned char page00[256] = { |
100 | 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, /* 0x00-0x07 */ | 100 | 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, /* 0x00-0x07 */ |
101 | 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, /* 0x08-0x0f */ | 101 | 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, /* 0x08-0x0f */ |
102 | 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17, /* 0x10-0x17 */ | 102 | 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17, /* 0x10-0x17 */ |
@@ -132,7 +132,7 @@ static unsigned char page00[256] = { | |||
132 | 0x00, 0x00, 0xfa, 0x00, 0xfc, 0xfd, 0x00, 0x00, /* 0xf8-0xff */ | 132 | 0x00, 0x00, 0xfa, 0x00, 0xfc, 0xfd, 0x00, 0x00, /* 0xf8-0xff */ |
133 | }; | 133 | }; |
134 | 134 | ||
135 | static unsigned char page01[256] = { | 135 | static const unsigned char page01[256] = { |
136 | 0x00, 0x00, 0xc3, 0xe3, 0xa1, 0xb1, 0xc6, 0xe6, /* 0x00-0x07 */ | 136 | 0x00, 0x00, 0xc3, 0xe3, 0xa1, 0xb1, 0xc6, 0xe6, /* 0x00-0x07 */ |
137 | 0x00, 0x00, 0x00, 0x00, 0xc8, 0xe8, 0xcf, 0xef, /* 0x08-0x0f */ | 137 | 0x00, 0x00, 0x00, 0x00, 0xc8, 0xe8, 0xcf, 0xef, /* 0x08-0x0f */ |
138 | 0xd0, 0xf0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x10-0x17 */ | 138 | 0xd0, 0xf0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x10-0x17 */ |
@@ -151,7 +151,7 @@ static unsigned char page01[256] = { | |||
151 | 0x00, 0xac, 0xbc, 0xaf, 0xbf, 0xae, 0xbe, 0x00, /* 0x78-0x7f */ | 151 | 0x00, 0xac, 0xbc, 0xaf, 0xbf, 0xae, 0xbe, 0x00, /* 0x78-0x7f */ |
152 | }; | 152 | }; |
153 | 153 | ||
154 | static unsigned char page02[256] = { | 154 | static const unsigned char page02[256] = { |
155 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x00-0x07 */ | 155 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x00-0x07 */ |
156 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x08-0x0f */ | 156 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x08-0x0f */ |
157 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x10-0x17 */ | 157 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x10-0x17 */ |
@@ -183,11 +183,11 @@ static unsigned char page02[256] = { | |||
183 | 0xa2, 0xff, 0x00, 0xb2, 0x00, 0xbd, 0x00, 0x00, /* 0xd8-0xdf */ | 183 | 0xa2, 0xff, 0x00, 0xb2, 0x00, 0xbd, 0x00, 0x00, /* 0xd8-0xdf */ |
184 | }; | 184 | }; |
185 | 185 | ||
186 | static unsigned char *page_uni2charset[256] = { | 186 | static const unsigned char *const page_uni2charset[256] = { |
187 | page00, page01, page02, NULL, NULL, NULL, NULL, NULL, | 187 | page00, page01, page02, NULL, NULL, NULL, NULL, NULL, |
188 | }; | 188 | }; |
189 | 189 | ||
190 | static unsigned char charset2lower[256] = { | 190 | static const unsigned char charset2lower[256] = { |
191 | 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, /* 0x00-0x07 */ | 191 | 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, /* 0x00-0x07 */ |
192 | 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, /* 0x08-0x0f */ | 192 | 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, /* 0x08-0x0f */ |
193 | 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17, /* 0x10-0x17 */ | 193 | 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17, /* 0x10-0x17 */ |
@@ -223,7 +223,7 @@ static unsigned char charset2lower[256] = { | |||
223 | 0xf8, 0xf9, 0xfa, 0xfb, 0xfc, 0xfd, 0xfe, 0xff, /* 0xf8-0xff */ | 223 | 0xf8, 0xf9, 0xfa, 0xfb, 0xfc, 0xfd, 0xfe, 0xff, /* 0xf8-0xff */ |
224 | }; | 224 | }; |
225 | 225 | ||
226 | static unsigned char charset2upper[256] = { | 226 | static const unsigned char charset2upper[256] = { |
227 | 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, /* 0x00-0x07 */ | 227 | 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, /* 0x00-0x07 */ |
228 | 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, /* 0x08-0x0f */ | 228 | 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, /* 0x08-0x0f */ |
229 | 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17, /* 0x10-0x17 */ | 229 | 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17, /* 0x10-0x17 */ |
@@ -261,7 +261,7 @@ static unsigned char charset2upper[256] = { | |||
261 | 261 | ||
262 | static int uni2char(wchar_t uni, unsigned char *out, int boundlen) | 262 | static int uni2char(wchar_t uni, unsigned char *out, int boundlen) |
263 | { | 263 | { |
264 | unsigned char *uni2charset; | 264 | const unsigned char *uni2charset; |
265 | unsigned char cl = uni & 0x00ff; | 265 | unsigned char cl = uni & 0x00ff; |
266 | unsigned char ch = (uni & 0xff00) >> 8; | 266 | unsigned char ch = (uni & 0xff00) >> 8; |
267 | 267 | ||
diff --git a/fs/nls/nls_iso8859-3.c b/fs/nls/nls_iso8859-3.c index 49317bcdb4be..a61e0daa3a86 100644 --- a/fs/nls/nls_iso8859-3.c +++ b/fs/nls/nls_iso8859-3.c | |||
@@ -13,7 +13,7 @@ | |||
13 | #include <linux/nls.h> | 13 | #include <linux/nls.h> |
14 | #include <linux/errno.h> | 14 | #include <linux/errno.h> |
15 | 15 | ||
16 | static wchar_t charset2uni[256] = { | 16 | static const wchar_t charset2uni[256] = { |
17 | /* 0x00*/ | 17 | /* 0x00*/ |
18 | 0x0000, 0x0001, 0x0002, 0x0003, | 18 | 0x0000, 0x0001, 0x0002, 0x0003, |
19 | 0x0004, 0x0005, 0x0006, 0x0007, | 19 | 0x0004, 0x0005, 0x0006, 0x0007, |
@@ -96,7 +96,7 @@ static wchar_t charset2uni[256] = { | |||
96 | 0x00fc, 0x016d, 0x015d, 0x02d9, | 96 | 0x00fc, 0x016d, 0x015d, 0x02d9, |
97 | }; | 97 | }; |
98 | 98 | ||
99 | static unsigned char page00[256] = { | 99 | static const unsigned char page00[256] = { |
100 | 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, /* 0x00-0x07 */ | 100 | 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, /* 0x00-0x07 */ |
101 | 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, /* 0x08-0x0f */ | 101 | 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, /* 0x08-0x0f */ |
102 | 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17, /* 0x10-0x17 */ | 102 | 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17, /* 0x10-0x17 */ |
@@ -132,7 +132,7 @@ static unsigned char page00[256] = { | |||
132 | 0x00, 0xf9, 0xfa, 0xfb, 0xfc, 0x00, 0x00, 0x00, /* 0xf8-0xff */ | 132 | 0x00, 0xf9, 0xfa, 0xfb, 0xfc, 0x00, 0x00, 0x00, /* 0xf8-0xff */ |
133 | }; | 133 | }; |
134 | 134 | ||
135 | static unsigned char page01[256] = { | 135 | static const unsigned char page01[256] = { |
136 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x00-0x07 */ | 136 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x00-0x07 */ |
137 | 0xc6, 0xe6, 0xc5, 0xe5, 0x00, 0x00, 0x00, 0x00, /* 0x08-0x0f */ | 137 | 0xc6, 0xe6, 0xc5, 0xe5, 0x00, 0x00, 0x00, 0x00, /* 0x08-0x0f */ |
138 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x10-0x17 */ | 138 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x10-0x17 */ |
@@ -151,7 +151,7 @@ static unsigned char page01[256] = { | |||
151 | 0x00, 0x00, 0x00, 0xaf, 0xbf, 0x00, 0x00, 0x00, /* 0x78-0x7f */ | 151 | 0x00, 0x00, 0x00, 0xaf, 0xbf, 0x00, 0x00, 0x00, /* 0x78-0x7f */ |
152 | }; | 152 | }; |
153 | 153 | ||
154 | static unsigned char page02[256] = { | 154 | static const unsigned char page02[256] = { |
155 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x00-0x07 */ | 155 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x00-0x07 */ |
156 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x08-0x0f */ | 156 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x08-0x0f */ |
157 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x10-0x17 */ | 157 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x10-0x17 */ |
@@ -183,11 +183,11 @@ static unsigned char page02[256] = { | |||
183 | 0xa2, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xd8-0xdf */ | 183 | 0xa2, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xd8-0xdf */ |
184 | }; | 184 | }; |
185 | 185 | ||
186 | static unsigned char *page_uni2charset[256] = { | 186 | static const unsigned char *const page_uni2charset[256] = { |
187 | page00, page01, page02, NULL, NULL, NULL, NULL, NULL, | 187 | page00, page01, page02, NULL, NULL, NULL, NULL, NULL, |
188 | }; | 188 | }; |
189 | 189 | ||
190 | static unsigned char charset2lower[256] = { | 190 | static const unsigned char charset2lower[256] = { |
191 | 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, /* 0x00-0x07 */ | 191 | 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, /* 0x00-0x07 */ |
192 | 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, /* 0x08-0x0f */ | 192 | 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, /* 0x08-0x0f */ |
193 | 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17, /* 0x10-0x17 */ | 193 | 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17, /* 0x10-0x17 */ |
@@ -223,7 +223,7 @@ static unsigned char charset2lower[256] = { | |||
223 | 0xf8, 0xf9, 0xfa, 0xfb, 0xfc, 0xfd, 0xfe, 0xff, /* 0xf8-0xff */ | 223 | 0xf8, 0xf9, 0xfa, 0xfb, 0xfc, 0xfd, 0xfe, 0xff, /* 0xf8-0xff */ |
224 | }; | 224 | }; |
225 | 225 | ||
226 | static unsigned char charset2upper[256] = { | 226 | static const unsigned char charset2upper[256] = { |
227 | 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, /* 0x00-0x07 */ | 227 | 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, /* 0x00-0x07 */ |
228 | 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, /* 0x08-0x0f */ | 228 | 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, /* 0x08-0x0f */ |
229 | 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17, /* 0x10-0x17 */ | 229 | 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17, /* 0x10-0x17 */ |
@@ -261,7 +261,7 @@ static unsigned char charset2upper[256] = { | |||
261 | 261 | ||
262 | static int uni2char(wchar_t uni, unsigned char *out, int boundlen) | 262 | static int uni2char(wchar_t uni, unsigned char *out, int boundlen) |
263 | { | 263 | { |
264 | unsigned char *uni2charset; | 264 | const unsigned char *uni2charset; |
265 | unsigned char cl = uni & 0x00ff; | 265 | unsigned char cl = uni & 0x00ff; |
266 | unsigned char ch = (uni & 0xff00) >> 8; | 266 | unsigned char ch = (uni & 0xff00) >> 8; |
267 | 267 | ||
diff --git a/fs/nls/nls_iso8859-4.c b/fs/nls/nls_iso8859-4.c index 9f3b9368c2cf..e8ff555483b6 100644 --- a/fs/nls/nls_iso8859-4.c +++ b/fs/nls/nls_iso8859-4.c | |||
@@ -13,7 +13,7 @@ | |||
13 | #include <linux/nls.h> | 13 | #include <linux/nls.h> |
14 | #include <linux/errno.h> | 14 | #include <linux/errno.h> |
15 | 15 | ||
16 | static wchar_t charset2uni[256] = { | 16 | static const wchar_t charset2uni[256] = { |
17 | /* 0x00*/ | 17 | /* 0x00*/ |
18 | 0x0000, 0x0001, 0x0002, 0x0003, | 18 | 0x0000, 0x0001, 0x0002, 0x0003, |
19 | 0x0004, 0x0005, 0x0006, 0x0007, | 19 | 0x0004, 0x0005, 0x0006, 0x0007, |
@@ -96,7 +96,7 @@ static wchar_t charset2uni[256] = { | |||
96 | 0x00fc, 0x0169, 0x016b, 0x02d9, | 96 | 0x00fc, 0x0169, 0x016b, 0x02d9, |
97 | }; | 97 | }; |
98 | 98 | ||
99 | static unsigned char page00[256] = { | 99 | static const unsigned char page00[256] = { |
100 | 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, /* 0x00-0x07 */ | 100 | 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, /* 0x00-0x07 */ |
101 | 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, /* 0x08-0x0f */ | 101 | 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, /* 0x08-0x0f */ |
102 | 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17, /* 0x10-0x17 */ | 102 | 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17, /* 0x10-0x17 */ |
@@ -132,7 +132,7 @@ static unsigned char page00[256] = { | |||
132 | 0xf8, 0x00, 0xfa, 0xfb, 0xfc, 0x00, 0x00, 0x00, /* 0xf8-0xff */ | 132 | 0xf8, 0x00, 0xfa, 0xfb, 0xfc, 0x00, 0x00, 0x00, /* 0xf8-0xff */ |
133 | }; | 133 | }; |
134 | 134 | ||
135 | static unsigned char page01[256] = { | 135 | static const unsigned char page01[256] = { |
136 | 0xc0, 0xe0, 0x00, 0x00, 0xa1, 0xb1, 0x00, 0x00, /* 0x00-0x07 */ | 136 | 0xc0, 0xe0, 0x00, 0x00, 0xa1, 0xb1, 0x00, 0x00, /* 0x00-0x07 */ |
137 | 0x00, 0x00, 0x00, 0x00, 0xc8, 0xe8, 0x00, 0x00, /* 0x08-0x0f */ | 137 | 0x00, 0x00, 0x00, 0x00, 0xc8, 0xe8, 0x00, 0x00, /* 0x08-0x0f */ |
138 | 0xd0, 0xf0, 0xaa, 0xba, 0x00, 0x00, 0xcc, 0xec, /* 0x10-0x17 */ | 138 | 0xd0, 0xf0, 0xaa, 0xba, 0x00, 0x00, 0xcc, 0xec, /* 0x10-0x17 */ |
@@ -151,7 +151,7 @@ static unsigned char page01[256] = { | |||
151 | 0x00, 0x00, 0x00, 0x00, 0x00, 0xae, 0xbe, 0x00, /* 0x78-0x7f */ | 151 | 0x00, 0x00, 0x00, 0x00, 0x00, 0xae, 0xbe, 0x00, /* 0x78-0x7f */ |
152 | }; | 152 | }; |
153 | 153 | ||
154 | static unsigned char page02[256] = { | 154 | static const unsigned char page02[256] = { |
155 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x00-0x07 */ | 155 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x00-0x07 */ |
156 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x08-0x0f */ | 156 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x08-0x0f */ |
157 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x10-0x17 */ | 157 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x10-0x17 */ |
@@ -183,11 +183,11 @@ static unsigned char page02[256] = { | |||
183 | 0x00, 0xff, 0x00, 0xb2, 0x00, 0x00, 0x00, 0x00, /* 0xd8-0xdf */ | 183 | 0x00, 0xff, 0x00, 0xb2, 0x00, 0x00, 0x00, 0x00, /* 0xd8-0xdf */ |
184 | }; | 184 | }; |
185 | 185 | ||
186 | static unsigned char *page_uni2charset[256] = { | 186 | static const unsigned char *const page_uni2charset[256] = { |
187 | page00, page01, page02, NULL, NULL, NULL, NULL, NULL, | 187 | page00, page01, page02, NULL, NULL, NULL, NULL, NULL, |
188 | }; | 188 | }; |
189 | 189 | ||
190 | static unsigned char charset2lower[256] = { | 190 | static const unsigned char charset2lower[256] = { |
191 | 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, /* 0x00-0x07 */ | 191 | 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, /* 0x00-0x07 */ |
192 | 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, /* 0x08-0x0f */ | 192 | 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, /* 0x08-0x0f */ |
193 | 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17, /* 0x10-0x17 */ | 193 | 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17, /* 0x10-0x17 */ |
@@ -223,7 +223,7 @@ static unsigned char charset2lower[256] = { | |||
223 | 0xf8, 0xf9, 0xfa, 0xfb, 0xfc, 0xfd, 0xfe, 0xff, /* 0xf8-0xff */ | 223 | 0xf8, 0xf9, 0xfa, 0xfb, 0xfc, 0xfd, 0xfe, 0xff, /* 0xf8-0xff */ |
224 | }; | 224 | }; |
225 | 225 | ||
226 | static unsigned char charset2upper[256] = { | 226 | static const unsigned char charset2upper[256] = { |
227 | 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, /* 0x00-0x07 */ | 227 | 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, /* 0x00-0x07 */ |
228 | 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, /* 0x08-0x0f */ | 228 | 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, /* 0x08-0x0f */ |
229 | 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17, /* 0x10-0x17 */ | 229 | 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17, /* 0x10-0x17 */ |
@@ -261,7 +261,7 @@ static unsigned char charset2upper[256] = { | |||
261 | 261 | ||
262 | static int uni2char(wchar_t uni, unsigned char *out, int boundlen) | 262 | static int uni2char(wchar_t uni, unsigned char *out, int boundlen) |
263 | { | 263 | { |
264 | unsigned char *uni2charset; | 264 | const unsigned char *uni2charset; |
265 | unsigned char cl = uni & 0x00ff; | 265 | unsigned char cl = uni & 0x00ff; |
266 | unsigned char ch = (uni & 0xff00) >> 8; | 266 | unsigned char ch = (uni & 0xff00) >> 8; |
267 | 267 | ||
diff --git a/fs/nls/nls_iso8859-5.c b/fs/nls/nls_iso8859-5.c index 001a2bb132ce..4721e8930124 100644 --- a/fs/nls/nls_iso8859-5.c +++ b/fs/nls/nls_iso8859-5.c | |||
@@ -13,7 +13,7 @@ | |||
13 | #include <linux/nls.h> | 13 | #include <linux/nls.h> |
14 | #include <linux/errno.h> | 14 | #include <linux/errno.h> |
15 | 15 | ||
16 | static wchar_t charset2uni[256] = { | 16 | static const wchar_t charset2uni[256] = { |
17 | /* 0x00*/ | 17 | /* 0x00*/ |
18 | 0x0000, 0x0001, 0x0002, 0x0003, | 18 | 0x0000, 0x0001, 0x0002, 0x0003, |
19 | 0x0004, 0x0005, 0x0006, 0x0007, | 19 | 0x0004, 0x0005, 0x0006, 0x0007, |
@@ -96,7 +96,7 @@ static wchar_t charset2uni[256] = { | |||
96 | 0x045c, 0x00a7, 0x045e, 0x045f, | 96 | 0x045c, 0x00a7, 0x045e, 0x045f, |
97 | }; | 97 | }; |
98 | 98 | ||
99 | static unsigned char page00[256] = { | 99 | static const unsigned char page00[256] = { |
100 | 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, /* 0x00-0x07 */ | 100 | 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, /* 0x00-0x07 */ |
101 | 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, /* 0x08-0x0f */ | 101 | 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, /* 0x08-0x0f */ |
102 | 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17, /* 0x10-0x17 */ | 102 | 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17, /* 0x10-0x17 */ |
@@ -122,7 +122,7 @@ static unsigned char page00[256] = { | |||
122 | 0x00, 0x00, 0x00, 0x00, 0x00, 0xad, 0x00, 0x00, /* 0xa8-0xaf */ | 122 | 0x00, 0x00, 0x00, 0x00, 0x00, 0xad, 0x00, 0x00, /* 0xa8-0xaf */ |
123 | }; | 123 | }; |
124 | 124 | ||
125 | static unsigned char page04[256] = { | 125 | static const unsigned char page04[256] = { |
126 | 0x00, 0xa1, 0xa2, 0xa3, 0xa4, 0xa5, 0xa6, 0xa7, /* 0x00-0x07 */ | 126 | 0x00, 0xa1, 0xa2, 0xa3, 0xa4, 0xa5, 0xa6, 0xa7, /* 0x00-0x07 */ |
127 | 0xa8, 0xa9, 0xaa, 0xab, 0xac, 0x00, 0xae, 0xaf, /* 0x08-0x0f */ | 127 | 0xa8, 0xa9, 0xaa, 0xab, 0xac, 0x00, 0xae, 0xaf, /* 0x08-0x0f */ |
128 | 0xb0, 0xb1, 0xb2, 0xb3, 0xb4, 0xb5, 0xb6, 0xb7, /* 0x10-0x17 */ | 128 | 0xb0, 0xb1, 0xb2, 0xb3, 0xb4, 0xb5, 0xb6, 0xb7, /* 0x10-0x17 */ |
@@ -137,13 +137,13 @@ static unsigned char page04[256] = { | |||
137 | 0xf8, 0xf9, 0xfa, 0xfb, 0xfc, 0x00, 0xfe, 0xff, /* 0x58-0x5f */ | 137 | 0xf8, 0xf9, 0xfa, 0xfb, 0xfc, 0x00, 0xfe, 0xff, /* 0x58-0x5f */ |
138 | }; | 138 | }; |
139 | 139 | ||
140 | static unsigned char page21[256] = { | 140 | static const unsigned char page21[256] = { |
141 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x00-0x07 */ | 141 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x00-0x07 */ |
142 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x08-0x0f */ | 142 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x08-0x0f */ |
143 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf0, 0x00, /* 0x10-0x17 */ | 143 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf0, 0x00, /* 0x10-0x17 */ |
144 | }; | 144 | }; |
145 | 145 | ||
146 | static unsigned char *page_uni2charset[256] = { | 146 | static const unsigned char *const page_uni2charset[256] = { |
147 | page00, NULL, NULL, NULL, page04, NULL, NULL, NULL, | 147 | page00, NULL, NULL, NULL, page04, NULL, NULL, NULL, |
148 | NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, | 148 | NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, |
149 | NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, | 149 | NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, |
@@ -151,7 +151,7 @@ static unsigned char *page_uni2charset[256] = { | |||
151 | NULL, page21, NULL, NULL, NULL, NULL, NULL, NULL, | 151 | NULL, page21, NULL, NULL, NULL, NULL, NULL, NULL, |
152 | }; | 152 | }; |
153 | 153 | ||
154 | static unsigned char charset2lower[256] = { | 154 | static const unsigned char charset2lower[256] = { |
155 | 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, /* 0x00-0x07 */ | 155 | 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, /* 0x00-0x07 */ |
156 | 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, /* 0x08-0x0f */ | 156 | 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, /* 0x08-0x0f */ |
157 | 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17, /* 0x10-0x17 */ | 157 | 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17, /* 0x10-0x17 */ |
@@ -187,7 +187,7 @@ static unsigned char charset2lower[256] = { | |||
187 | 0xf8, 0xf9, 0xfa, 0xfb, 0xfc, 0xfd, 0xfe, 0xff, /* 0xf8-0xff */ | 187 | 0xf8, 0xf9, 0xfa, 0xfb, 0xfc, 0xfd, 0xfe, 0xff, /* 0xf8-0xff */ |
188 | }; | 188 | }; |
189 | 189 | ||
190 | static unsigned char charset2upper[256] = { | 190 | static const unsigned char charset2upper[256] = { |
191 | 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, /* 0x00-0x07 */ | 191 | 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, /* 0x00-0x07 */ |
192 | 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, /* 0x08-0x0f */ | 192 | 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, /* 0x08-0x0f */ |
193 | 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17, /* 0x10-0x17 */ | 193 | 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17, /* 0x10-0x17 */ |
@@ -225,7 +225,7 @@ static unsigned char charset2upper[256] = { | |||
225 | 225 | ||
226 | static int uni2char(wchar_t uni, unsigned char *out, int boundlen) | 226 | static int uni2char(wchar_t uni, unsigned char *out, int boundlen) |
227 | { | 227 | { |
228 | unsigned char *uni2charset; | 228 | const unsigned char *uni2charset; |
229 | unsigned char cl = uni & 0x00ff; | 229 | unsigned char cl = uni & 0x00ff; |
230 | unsigned char ch = (uni & 0xff00) >> 8; | 230 | unsigned char ch = (uni & 0xff00) >> 8; |
231 | 231 | ||
diff --git a/fs/nls/nls_iso8859-6.c b/fs/nls/nls_iso8859-6.c index 8cec03d66088..01a517d6d306 100644 --- a/fs/nls/nls_iso8859-6.c +++ b/fs/nls/nls_iso8859-6.c | |||
@@ -13,7 +13,7 @@ | |||
13 | #include <linux/nls.h> | 13 | #include <linux/nls.h> |
14 | #include <linux/errno.h> | 14 | #include <linux/errno.h> |
15 | 15 | ||
16 | static wchar_t charset2uni[256] = { | 16 | static const wchar_t charset2uni[256] = { |
17 | /* 0x00*/ | 17 | /* 0x00*/ |
18 | 0x0000, 0x0001, 0x0002, 0x0003, | 18 | 0x0000, 0x0001, 0x0002, 0x0003, |
19 | 0x0004, 0x0005, 0x0006, 0x0007, | 19 | 0x0004, 0x0005, 0x0006, 0x0007, |
@@ -96,7 +96,7 @@ static wchar_t charset2uni[256] = { | |||
96 | 0x0000, 0x0000, 0x0000, 0x0000, | 96 | 0x0000, 0x0000, 0x0000, 0x0000, |
97 | }; | 97 | }; |
98 | 98 | ||
99 | static unsigned char page00[256] = { | 99 | static const unsigned char page00[256] = { |
100 | 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, /* 0x00-0x07 */ | 100 | 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, /* 0x00-0x07 */ |
101 | 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, /* 0x08-0x0f */ | 101 | 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, /* 0x08-0x0f */ |
102 | 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17, /* 0x10-0x17 */ | 102 | 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17, /* 0x10-0x17 */ |
@@ -122,7 +122,7 @@ static unsigned char page00[256] = { | |||
122 | 0x00, 0x00, 0x00, 0x00, 0x00, 0xad, 0x00, 0x00, /* 0xa8-0xaf */ | 122 | 0x00, 0x00, 0x00, 0x00, 0x00, 0xad, 0x00, 0x00, /* 0xa8-0xaf */ |
123 | }; | 123 | }; |
124 | 124 | ||
125 | static unsigned char page06[256] = { | 125 | static const unsigned char page06[256] = { |
126 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x00-0x07 */ | 126 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x00-0x07 */ |
127 | 0x00, 0x00, 0x00, 0x00, 0xac, 0x00, 0x00, 0x00, /* 0x08-0x0f */ | 127 | 0x00, 0x00, 0x00, 0x00, 0xac, 0x00, 0x00, 0x00, /* 0x08-0x0f */ |
128 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x10-0x17 */ | 128 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x10-0x17 */ |
@@ -139,11 +139,11 @@ static unsigned char page06[256] = { | |||
139 | 0x38, 0x39, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x68-0x6f */ | 139 | 0x38, 0x39, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x68-0x6f */ |
140 | }; | 140 | }; |
141 | 141 | ||
142 | static unsigned char *page_uni2charset[256] = { | 142 | static const unsigned char *const page_uni2charset[256] = { |
143 | page00, NULL, NULL, NULL, NULL, NULL, page06, NULL, | 143 | page00, NULL, NULL, NULL, NULL, NULL, page06, NULL, |
144 | }; | 144 | }; |
145 | 145 | ||
146 | static unsigned char charset2lower[256] = { | 146 | static const unsigned char charset2lower[256] = { |
147 | 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, /* 0x00-0x07 */ | 147 | 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, /* 0x00-0x07 */ |
148 | 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, /* 0x08-0x0f */ | 148 | 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, /* 0x08-0x0f */ |
149 | 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17, /* 0x10-0x17 */ | 149 | 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17, /* 0x10-0x17 */ |
@@ -179,7 +179,7 @@ static unsigned char charset2lower[256] = { | |||
179 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xf8-0xff */ | 179 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xf8-0xff */ |
180 | }; | 180 | }; |
181 | 181 | ||
182 | static unsigned char charset2upper[256] = { | 182 | static const unsigned char charset2upper[256] = { |
183 | 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, /* 0x00-0x07 */ | 183 | 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, /* 0x00-0x07 */ |
184 | 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, /* 0x08-0x0f */ | 184 | 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, /* 0x08-0x0f */ |
185 | 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17, /* 0x10-0x17 */ | 185 | 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17, /* 0x10-0x17 */ |
@@ -216,7 +216,7 @@ static unsigned char charset2upper[256] = { | |||
216 | 216 | ||
217 | static int uni2char(wchar_t uni, unsigned char *out, int boundlen) | 217 | static int uni2char(wchar_t uni, unsigned char *out, int boundlen) |
218 | { | 218 | { |
219 | unsigned char *uni2charset; | 219 | const unsigned char *uni2charset; |
220 | unsigned char cl = uni & 0x00ff; | 220 | unsigned char cl = uni & 0x00ff; |
221 | unsigned char ch = (uni & 0xff00) >> 8; | 221 | unsigned char ch = (uni & 0xff00) >> 8; |
222 | 222 | ||
diff --git a/fs/nls/nls_iso8859-7.c b/fs/nls/nls_iso8859-7.c index 1be707d5ac31..2d27b93ef19e 100644 --- a/fs/nls/nls_iso8859-7.c +++ b/fs/nls/nls_iso8859-7.c | |||
@@ -13,7 +13,7 @@ | |||
13 | #include <linux/nls.h> | 13 | #include <linux/nls.h> |
14 | #include <linux/errno.h> | 14 | #include <linux/errno.h> |
15 | 15 | ||
16 | static wchar_t charset2uni[256] = { | 16 | static const wchar_t charset2uni[256] = { |
17 | /* 0x00*/ | 17 | /* 0x00*/ |
18 | 0x0000, 0x0001, 0x0002, 0x0003, | 18 | 0x0000, 0x0001, 0x0002, 0x0003, |
19 | 0x0004, 0x0005, 0x0006, 0x0007, | 19 | 0x0004, 0x0005, 0x0006, 0x0007, |
@@ -96,7 +96,7 @@ static wchar_t charset2uni[256] = { | |||
96 | 0x03cc, 0x03cd, 0x03ce, 0x0000, | 96 | 0x03cc, 0x03cd, 0x03ce, 0x0000, |
97 | }; | 97 | }; |
98 | 98 | ||
99 | static unsigned char page00[256] = { | 99 | static const unsigned char page00[256] = { |
100 | 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, /* 0x00-0x07 */ | 100 | 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, /* 0x00-0x07 */ |
101 | 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, /* 0x08-0x0f */ | 101 | 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, /* 0x08-0x0f */ |
102 | 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17, /* 0x10-0x17 */ | 102 | 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17, /* 0x10-0x17 */ |
@@ -124,7 +124,7 @@ static unsigned char page00[256] = { | |||
124 | 0x00, 0x00, 0x00, 0xbb, 0x00, 0xbd, 0x00, 0x00, /* 0xb8-0xbf */ | 124 | 0x00, 0x00, 0x00, 0xbb, 0x00, 0xbd, 0x00, 0x00, /* 0xb8-0xbf */ |
125 | }; | 125 | }; |
126 | 126 | ||
127 | static unsigned char page02[256] = { | 127 | static const unsigned char page02[256] = { |
128 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x00-0x07 */ | 128 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x00-0x07 */ |
129 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x08-0x0f */ | 129 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x08-0x0f */ |
130 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x10-0x17 */ | 130 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x10-0x17 */ |
@@ -152,7 +152,7 @@ static unsigned char page02[256] = { | |||
152 | 0x00, 0x00, 0x00, 0x00, 0xa2, 0xa1, 0x00, 0x00, /* 0xb8-0xbf */ | 152 | 0x00, 0x00, 0x00, 0x00, 0xa2, 0xa1, 0x00, 0x00, /* 0xb8-0xbf */ |
153 | }; | 153 | }; |
154 | 154 | ||
155 | static unsigned char page03[256] = { | 155 | static const unsigned char page03[256] = { |
156 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x00-0x07 */ | 156 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x00-0x07 */ |
157 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x08-0x0f */ | 157 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x08-0x0f */ |
158 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x10-0x17 */ | 158 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x10-0x17 */ |
@@ -182,13 +182,13 @@ static unsigned char page03[256] = { | |||
182 | 0xf8, 0xf9, 0xfa, 0xfb, 0xfc, 0xfd, 0xfe, 0x00, /* 0xc8-0xcf */ | 182 | 0xf8, 0xf9, 0xfa, 0xfb, 0xfc, 0xfd, 0xfe, 0x00, /* 0xc8-0xcf */ |
183 | }; | 183 | }; |
184 | 184 | ||
185 | static unsigned char page20[256] = { | 185 | static const unsigned char page20[256] = { |
186 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x00-0x07 */ | 186 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x00-0x07 */ |
187 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x08-0x0f */ | 187 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x08-0x0f */ |
188 | 0x00, 0x00, 0x00, 0x00, 0x00, 0xaf, 0x00, 0x00, /* 0x10-0x17 */ | 188 | 0x00, 0x00, 0x00, 0x00, 0x00, 0xaf, 0x00, 0x00, /* 0x10-0x17 */ |
189 | }; | 189 | }; |
190 | 190 | ||
191 | static unsigned char *page_uni2charset[256] = { | 191 | static const unsigned char *const page_uni2charset[256] = { |
192 | page00, NULL, page02, page03, NULL, NULL, NULL, NULL, | 192 | page00, NULL, page02, page03, NULL, NULL, NULL, NULL, |
193 | NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, | 193 | NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, |
194 | NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, | 194 | NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, |
@@ -196,7 +196,7 @@ static unsigned char *page_uni2charset[256] = { | |||
196 | page20, NULL, NULL, NULL, NULL, NULL, NULL, NULL, | 196 | page20, NULL, NULL, NULL, NULL, NULL, NULL, NULL, |
197 | }; | 197 | }; |
198 | 198 | ||
199 | static unsigned char charset2lower[256] = { | 199 | static const unsigned char charset2lower[256] = { |
200 | 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, /* 0x00-0x07 */ | 200 | 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, /* 0x00-0x07 */ |
201 | 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, /* 0x08-0x0f */ | 201 | 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, /* 0x08-0x0f */ |
202 | 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17, /* 0x10-0x17 */ | 202 | 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17, /* 0x10-0x17 */ |
@@ -232,7 +232,7 @@ static unsigned char charset2lower[256] = { | |||
232 | 0xf8, 0xf9, 0xfa, 0xfb, 0xfc, 0xfd, 0xfe, 0x00, /* 0xf8-0xff */ | 232 | 0xf8, 0xf9, 0xfa, 0xfb, 0xfc, 0xfd, 0xfe, 0x00, /* 0xf8-0xff */ |
233 | }; | 233 | }; |
234 | 234 | ||
235 | static unsigned char charset2upper[256] = { | 235 | static const unsigned char charset2upper[256] = { |
236 | 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, /* 0x00-0x07 */ | 236 | 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, /* 0x00-0x07 */ |
237 | 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, /* 0x08-0x0f */ | 237 | 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, /* 0x08-0x0f */ |
238 | 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17, /* 0x10-0x17 */ | 238 | 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17, /* 0x10-0x17 */ |
@@ -270,7 +270,7 @@ static unsigned char charset2upper[256] = { | |||
270 | 270 | ||
271 | static int uni2char(wchar_t uni, unsigned char *out, int boundlen) | 271 | static int uni2char(wchar_t uni, unsigned char *out, int boundlen) |
272 | { | 272 | { |
273 | unsigned char *uni2charset; | 273 | const unsigned char *uni2charset; |
274 | unsigned char cl = uni & 0x00ff; | 274 | unsigned char cl = uni & 0x00ff; |
275 | unsigned char ch = (uni & 0xff00) >> 8; | 275 | unsigned char ch = (uni & 0xff00) >> 8; |
276 | 276 | ||
diff --git a/fs/nls/nls_iso8859-9.c b/fs/nls/nls_iso8859-9.c index 8c0146f73834..694bf070c721 100644 --- a/fs/nls/nls_iso8859-9.c +++ b/fs/nls/nls_iso8859-9.c | |||
@@ -13,7 +13,7 @@ | |||
13 | #include <linux/nls.h> | 13 | #include <linux/nls.h> |
14 | #include <linux/errno.h> | 14 | #include <linux/errno.h> |
15 | 15 | ||
16 | static wchar_t charset2uni[256] = { | 16 | static const wchar_t charset2uni[256] = { |
17 | /* 0x00*/ | 17 | /* 0x00*/ |
18 | 0x0000, 0x0001, 0x0002, 0x0003, | 18 | 0x0000, 0x0001, 0x0002, 0x0003, |
19 | 0x0004, 0x0005, 0x0006, 0x0007, | 19 | 0x0004, 0x0005, 0x0006, 0x0007, |
@@ -96,7 +96,7 @@ static wchar_t charset2uni[256] = { | |||
96 | 0x00fc, 0x0131, 0x015f, 0x00ff, | 96 | 0x00fc, 0x0131, 0x015f, 0x00ff, |
97 | }; | 97 | }; |
98 | 98 | ||
99 | static unsigned char page00[256] = { | 99 | static const unsigned char page00[256] = { |
100 | 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, /* 0x00-0x07 */ | 100 | 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, /* 0x00-0x07 */ |
101 | 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, /* 0x08-0x0f */ | 101 | 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, /* 0x08-0x0f */ |
102 | 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17, /* 0x10-0x17 */ | 102 | 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17, /* 0x10-0x17 */ |
@@ -132,7 +132,7 @@ static unsigned char page00[256] = { | |||
132 | 0xf8, 0xf9, 0xfa, 0xfb, 0xfc, 0x00, 0x00, 0xff, /* 0xf8-0xff */ | 132 | 0xf8, 0xf9, 0xfa, 0xfb, 0xfc, 0x00, 0x00, 0xff, /* 0xf8-0xff */ |
133 | }; | 133 | }; |
134 | 134 | ||
135 | static unsigned char page01[256] = { | 135 | static const unsigned char page01[256] = { |
136 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x00-0x07 */ | 136 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x00-0x07 */ |
137 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x08-0x0f */ | 137 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x08-0x0f */ |
138 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x10-0x17 */ | 138 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x10-0x17 */ |
@@ -147,11 +147,11 @@ static unsigned char page01[256] = { | |||
147 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xde, 0xfe, /* 0x58-0x5f */ | 147 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xde, 0xfe, /* 0x58-0x5f */ |
148 | }; | 148 | }; |
149 | 149 | ||
150 | static unsigned char *page_uni2charset[256] = { | 150 | static const unsigned char *const page_uni2charset[256] = { |
151 | page00, page01, NULL, NULL, NULL, NULL, NULL, NULL, | 151 | page00, page01, NULL, NULL, NULL, NULL, NULL, NULL, |
152 | }; | 152 | }; |
153 | 153 | ||
154 | static unsigned char charset2lower[256] = { | 154 | static const unsigned char charset2lower[256] = { |
155 | 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, /* 0x00-0x07 */ | 155 | 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, /* 0x00-0x07 */ |
156 | 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, /* 0x08-0x0f */ | 156 | 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, /* 0x08-0x0f */ |
157 | 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17, /* 0x10-0x17 */ | 157 | 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17, /* 0x10-0x17 */ |
@@ -187,7 +187,7 @@ static unsigned char charset2lower[256] = { | |||
187 | 0xf8, 0xf9, 0xfa, 0xfb, 0xfc, 0xfd, 0xfe, 0xff, /* 0xf8-0xff */ | 187 | 0xf8, 0xf9, 0xfa, 0xfb, 0xfc, 0xfd, 0xfe, 0xff, /* 0xf8-0xff */ |
188 | }; | 188 | }; |
189 | 189 | ||
190 | static unsigned char charset2upper[256] = { | 190 | static const unsigned char charset2upper[256] = { |
191 | 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, /* 0x00-0x07 */ | 191 | 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, /* 0x00-0x07 */ |
192 | 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, /* 0x08-0x0f */ | 192 | 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, /* 0x08-0x0f */ |
193 | 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17, /* 0x10-0x17 */ | 193 | 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17, /* 0x10-0x17 */ |
@@ -225,7 +225,7 @@ static unsigned char charset2upper[256] = { | |||
225 | 225 | ||
226 | static int uni2char(wchar_t uni, unsigned char *out, int boundlen) | 226 | static int uni2char(wchar_t uni, unsigned char *out, int boundlen) |
227 | { | 227 | { |
228 | unsigned char *uni2charset; | 228 | const unsigned char *uni2charset; |
229 | unsigned char cl = uni & 0x00ff; | 229 | unsigned char cl = uni & 0x00ff; |
230 | unsigned char ch = (uni & 0xff00) >> 8; | 230 | unsigned char ch = (uni & 0xff00) >> 8; |
231 | 231 | ||
diff --git a/fs/nls/nls_koi8-r.c b/fs/nls/nls_koi8-r.c index fefbe0807265..43875310540d 100644 --- a/fs/nls/nls_koi8-r.c +++ b/fs/nls/nls_koi8-r.c | |||
@@ -13,7 +13,7 @@ | |||
13 | #include <linux/nls.h> | 13 | #include <linux/nls.h> |
14 | #include <linux/errno.h> | 14 | #include <linux/errno.h> |
15 | 15 | ||
16 | static wchar_t charset2uni[256] = { | 16 | static const wchar_t charset2uni[256] = { |
17 | /* 0x00*/ | 17 | /* 0x00*/ |
18 | 0x0000, 0x0001, 0x0002, 0x0003, | 18 | 0x0000, 0x0001, 0x0002, 0x0003, |
19 | 0x0004, 0x0005, 0x0006, 0x0007, | 19 | 0x0004, 0x0005, 0x0006, 0x0007, |
@@ -96,7 +96,7 @@ static wchar_t charset2uni[256] = { | |||
96 | 0x042d, 0x0429, 0x0427, 0x042a, | 96 | 0x042d, 0x0429, 0x0427, 0x042a, |
97 | }; | 97 | }; |
98 | 98 | ||
99 | static unsigned char page00[256] = { | 99 | static const unsigned char page00[256] = { |
100 | 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, /* 0x00-0x07 */ | 100 | 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, /* 0x00-0x07 */ |
101 | 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, /* 0x08-0x0f */ | 101 | 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, /* 0x08-0x0f */ |
102 | 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17, /* 0x10-0x17 */ | 102 | 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17, /* 0x10-0x17 */ |
@@ -131,7 +131,7 @@ static unsigned char page00[256] = { | |||
131 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x9f, /* 0xf0-0xf7 */ | 131 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x9f, /* 0xf0-0xf7 */ |
132 | }; | 132 | }; |
133 | 133 | ||
134 | static unsigned char page04[256] = { | 134 | static const unsigned char page04[256] = { |
135 | 0x00, 0xb3, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x00-0x07 */ | 135 | 0x00, 0xb3, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x00-0x07 */ |
136 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x08-0x0f */ | 136 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x08-0x0f */ |
137 | 0xe1, 0xe2, 0xf7, 0xe7, 0xe4, 0xe5, 0xf6, 0xfa, /* 0x10-0x17 */ | 137 | 0xe1, 0xe2, 0xf7, 0xe7, 0xe4, 0xe5, 0xf6, 0xfa, /* 0x10-0x17 */ |
@@ -145,7 +145,7 @@ static unsigned char page04[256] = { | |||
145 | 0x00, 0xa3, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x50-0x57 */ | 145 | 0x00, 0xa3, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x50-0x57 */ |
146 | }; | 146 | }; |
147 | 147 | ||
148 | static unsigned char page22[256] = { | 148 | static const unsigned char page22[256] = { |
149 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x00-0x07 */ | 149 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x00-0x07 */ |
150 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x08-0x0f */ | 150 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x08-0x0f */ |
151 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x10-0x17 */ | 151 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x10-0x17 */ |
@@ -161,7 +161,7 @@ static unsigned char page22[256] = { | |||
161 | 0x00, 0x00, 0x00, 0x00, 0x98, 0x99, 0x00, 0x00, /* 0x60-0x67 */ | 161 | 0x00, 0x00, 0x00, 0x00, 0x98, 0x99, 0x00, 0x00, /* 0x60-0x67 */ |
162 | }; | 162 | }; |
163 | 163 | ||
164 | static unsigned char page23[256] = { | 164 | static const unsigned char page23[256] = { |
165 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x00-0x07 */ | 165 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x00-0x07 */ |
166 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x08-0x0f */ | 166 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x08-0x0f */ |
167 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x10-0x17 */ | 167 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x10-0x17 */ |
@@ -169,7 +169,7 @@ static unsigned char page23[256] = { | |||
169 | 0x93, 0x9b, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x20-0x27 */ | 169 | 0x93, 0x9b, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x20-0x27 */ |
170 | }; | 170 | }; |
171 | 171 | ||
172 | static unsigned char page25[256] = { | 172 | static const unsigned char page25[256] = { |
173 | 0x80, 0x00, 0x81, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x00-0x07 */ | 173 | 0x80, 0x00, 0x81, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x00-0x07 */ |
174 | 0x00, 0x00, 0x00, 0x00, 0x82, 0x00, 0x00, 0x00, /* 0x08-0x0f */ | 174 | 0x00, 0x00, 0x00, 0x00, 0x82, 0x00, 0x00, 0x00, /* 0x08-0x0f */ |
175 | 0x83, 0x00, 0x00, 0x00, 0x84, 0x00, 0x00, 0x00, /* 0x10-0x17 */ | 175 | 0x83, 0x00, 0x00, 0x00, 0x84, 0x00, 0x00, 0x00, /* 0x10-0x17 */ |
@@ -194,7 +194,7 @@ static unsigned char page25[256] = { | |||
194 | 0x94, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xa0-0xa7 */ | 194 | 0x94, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xa0-0xa7 */ |
195 | }; | 195 | }; |
196 | 196 | ||
197 | static unsigned char *page_uni2charset[256] = { | 197 | static const unsigned char *const page_uni2charset[256] = { |
198 | page00, NULL, NULL, NULL, page04, NULL, NULL, NULL, | 198 | page00, NULL, NULL, NULL, page04, NULL, NULL, NULL, |
199 | NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, | 199 | NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, |
200 | NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, | 200 | NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, |
@@ -202,7 +202,7 @@ static unsigned char *page_uni2charset[256] = { | |||
202 | NULL, NULL, page22, page23, NULL, page25, NULL, NULL, | 202 | NULL, NULL, page22, page23, NULL, page25, NULL, NULL, |
203 | }; | 203 | }; |
204 | 204 | ||
205 | static unsigned char charset2lower[256] = { | 205 | static const unsigned char charset2lower[256] = { |
206 | 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, /* 0x00-0x07 */ | 206 | 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, /* 0x00-0x07 */ |
207 | 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, /* 0x08-0x0f */ | 207 | 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, /* 0x08-0x0f */ |
208 | 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17, /* 0x10-0x17 */ | 208 | 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17, /* 0x10-0x17 */ |
@@ -238,7 +238,7 @@ static unsigned char charset2lower[256] = { | |||
238 | 0xd8, 0xd9, 0xda, 0xdb, 0xdc, 0xdd, 0xde, 0xdf, /* 0xf8-0xff */ | 238 | 0xd8, 0xd9, 0xda, 0xdb, 0xdc, 0xdd, 0xde, 0xdf, /* 0xf8-0xff */ |
239 | }; | 239 | }; |
240 | 240 | ||
241 | static unsigned char charset2upper[256] = { | 241 | static const unsigned char charset2upper[256] = { |
242 | 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, /* 0x00-0x07 */ | 242 | 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, /* 0x00-0x07 */ |
243 | 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, /* 0x08-0x0f */ | 243 | 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, /* 0x08-0x0f */ |
244 | 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17, /* 0x10-0x17 */ | 244 | 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17, /* 0x10-0x17 */ |
@@ -276,7 +276,7 @@ static unsigned char charset2upper[256] = { | |||
276 | 276 | ||
277 | static int uni2char(wchar_t uni, unsigned char *out, int boundlen) | 277 | static int uni2char(wchar_t uni, unsigned char *out, int boundlen) |
278 | { | 278 | { |
279 | unsigned char *uni2charset; | 279 | const unsigned char *uni2charset; |
280 | unsigned char cl = uni & 0x00ff; | 280 | unsigned char cl = uni & 0x00ff; |
281 | unsigned char ch = (uni & 0xff00) >> 8; | 281 | unsigned char ch = (uni & 0xff00) >> 8; |
282 | 282 | ||
diff --git a/fs/nls/nls_koi8-u.c b/fs/nls/nls_koi8-u.c index 015070211f22..8c9f0292b5ae 100644 --- a/fs/nls/nls_koi8-u.c +++ b/fs/nls/nls_koi8-u.c | |||
@@ -11,7 +11,7 @@ | |||
11 | #include <linux/nls.h> | 11 | #include <linux/nls.h> |
12 | #include <linux/errno.h> | 12 | #include <linux/errno.h> |
13 | 13 | ||
14 | static wchar_t charset2uni[256] = { | 14 | static const wchar_t charset2uni[256] = { |
15 | /* 0x00*/ | 15 | /* 0x00*/ |
16 | 0x0000, 0x0001, 0x0002, 0x0003, | 16 | 0x0000, 0x0001, 0x0002, 0x0003, |
17 | 0x0004, 0x0005, 0x0006, 0x0007, | 17 | 0x0004, 0x0005, 0x0006, 0x0007, |
@@ -94,7 +94,7 @@ static wchar_t charset2uni[256] = { | |||
94 | 0x042d, 0x0429, 0x0427, 0x042a, | 94 | 0x042d, 0x0429, 0x0427, 0x042a, |
95 | }; | 95 | }; |
96 | 96 | ||
97 | static unsigned char page00[256] = { | 97 | static const unsigned char page00[256] = { |
98 | 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, /* 0x00-0x07 */ | 98 | 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, /* 0x00-0x07 */ |
99 | 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, /* 0x08-0x0f */ | 99 | 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, /* 0x08-0x0f */ |
100 | 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17, /* 0x10-0x17 */ | 100 | 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17, /* 0x10-0x17 */ |
@@ -129,7 +129,7 @@ static unsigned char page00[256] = { | |||
129 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x9f, /* 0xf0-0xf7 */ | 129 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x9f, /* 0xf0-0xf7 */ |
130 | }; | 130 | }; |
131 | 131 | ||
132 | static unsigned char page04[256] = { | 132 | static const unsigned char page04[256] = { |
133 | 0x00, 0xb3, 0x00, 0x00, 0xb4, 0x00, 0xb6, 0xb7, /* 0x00-0x07 */ | 133 | 0x00, 0xb3, 0x00, 0x00, 0xb4, 0x00, 0xb6, 0xb7, /* 0x00-0x07 */ |
134 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x08-0x0f */ | 134 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x08-0x0f */ |
135 | 0xe1, 0xe2, 0xf7, 0xe7, 0xe4, 0xe5, 0xf6, 0xfa, /* 0x10-0x17 */ | 135 | 0xe1, 0xe2, 0xf7, 0xe7, 0xe4, 0xe5, 0xf6, 0xfa, /* 0x10-0x17 */ |
@@ -152,7 +152,7 @@ static unsigned char page04[256] = { | |||
152 | 0xbd, 0xad, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x90-0x97 */ | 152 | 0xbd, 0xad, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x90-0x97 */ |
153 | }; | 153 | }; |
154 | 154 | ||
155 | static unsigned char page22[256] = { | 155 | static const unsigned char page22[256] = { |
156 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x00-0x07 */ | 156 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x00-0x07 */ |
157 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x08-0x0f */ | 157 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x08-0x0f */ |
158 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x10-0x17 */ | 158 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x10-0x17 */ |
@@ -168,7 +168,7 @@ static unsigned char page22[256] = { | |||
168 | 0x00, 0x00, 0x00, 0x00, 0x98, 0x99, 0x00, 0x00, /* 0x60-0x67 */ | 168 | 0x00, 0x00, 0x00, 0x00, 0x98, 0x99, 0x00, 0x00, /* 0x60-0x67 */ |
169 | }; | 169 | }; |
170 | 170 | ||
171 | static unsigned char page23[256] = { | 171 | static const unsigned char page23[256] = { |
172 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x00-0x07 */ | 172 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x00-0x07 */ |
173 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x08-0x0f */ | 173 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x08-0x0f */ |
174 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x10-0x17 */ | 174 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x10-0x17 */ |
@@ -176,7 +176,7 @@ static unsigned char page23[256] = { | |||
176 | 0x93, 0x9b, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x20-0x27 */ | 176 | 0x93, 0x9b, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x20-0x27 */ |
177 | }; | 177 | }; |
178 | 178 | ||
179 | static unsigned char page25[256] = { | 179 | static const unsigned char page25[256] = { |
180 | 0x80, 0x00, 0x81, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x00-0x07 */ | 180 | 0x80, 0x00, 0x81, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x00-0x07 */ |
181 | 0x00, 0x00, 0x00, 0x00, 0x82, 0x00, 0x00, 0x00, /* 0x08-0x0f */ | 181 | 0x00, 0x00, 0x00, 0x00, 0x82, 0x00, 0x00, 0x00, /* 0x08-0x0f */ |
182 | 0x83, 0x00, 0x00, 0x00, 0x84, 0x00, 0x00, 0x00, /* 0x10-0x17 */ | 182 | 0x83, 0x00, 0x00, 0x00, 0x84, 0x00, 0x00, 0x00, /* 0x10-0x17 */ |
@@ -201,7 +201,7 @@ static unsigned char page25[256] = { | |||
201 | 0x94, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xa0-0xa7 */ | 201 | 0x94, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xa0-0xa7 */ |
202 | }; | 202 | }; |
203 | 203 | ||
204 | static unsigned char *page_uni2charset[256] = { | 204 | static const unsigned char *const page_uni2charset[256] = { |
205 | page00, NULL, NULL, NULL, page04, NULL, NULL, NULL, | 205 | page00, NULL, NULL, NULL, page04, NULL, NULL, NULL, |
206 | NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, | 206 | NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, |
207 | NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, | 207 | NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, |
@@ -209,7 +209,7 @@ static unsigned char *page_uni2charset[256] = { | |||
209 | NULL, NULL, page22, page23, NULL, page25, NULL, NULL, | 209 | NULL, NULL, page22, page23, NULL, page25, NULL, NULL, |
210 | }; | 210 | }; |
211 | 211 | ||
212 | static unsigned char charset2lower[256] = { | 212 | static const unsigned char charset2lower[256] = { |
213 | 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, /* 0x00-0x07 */ | 213 | 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, /* 0x00-0x07 */ |
214 | 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, /* 0x08-0x0f */ | 214 | 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, /* 0x08-0x0f */ |
215 | 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17, /* 0x10-0x17 */ | 215 | 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17, /* 0x10-0x17 */ |
@@ -245,7 +245,7 @@ static unsigned char charset2lower[256] = { | |||
245 | 0xd8, 0xd9, 0xda, 0xdb, 0xdc, 0xdd, 0xde, 0xdf, /* 0xf8-0xff */ | 245 | 0xd8, 0xd9, 0xda, 0xdb, 0xdc, 0xdd, 0xde, 0xdf, /* 0xf8-0xff */ |
246 | }; | 246 | }; |
247 | 247 | ||
248 | static unsigned char charset2upper[256] = { | 248 | static const unsigned char charset2upper[256] = { |
249 | 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, /* 0x00-0x07 */ | 249 | 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, /* 0x00-0x07 */ |
250 | 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, /* 0x08-0x0f */ | 250 | 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, /* 0x08-0x0f */ |
251 | 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17, /* 0x10-0x17 */ | 251 | 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17, /* 0x10-0x17 */ |
@@ -283,7 +283,7 @@ static unsigned char charset2upper[256] = { | |||
283 | 283 | ||
284 | static int uni2char(wchar_t uni, unsigned char *out, int boundlen) | 284 | static int uni2char(wchar_t uni, unsigned char *out, int boundlen) |
285 | { | 285 | { |
286 | unsigned char *uni2charset; | 286 | const unsigned char *uni2charset; |
287 | unsigned char cl = uni & 0x00ff; | 287 | unsigned char cl = uni & 0x00ff; |
288 | unsigned char ch = (uni & 0xff00) >> 8; | 288 | unsigned char ch = (uni & 0xff00) >> 8; |
289 | 289 | ||
diff --git a/fs/ntfs/file.c b/fs/ntfs/file.c index c814204d4ea0..6cd08dfdc2ed 100644 --- a/fs/ntfs/file.c +++ b/fs/ntfs/file.c | |||
@@ -61,7 +61,7 @@ static int ntfs_file_open(struct inode *vi, struct file *filp) | |||
61 | { | 61 | { |
62 | if (sizeof(unsigned long) < 8) { | 62 | if (sizeof(unsigned long) < 8) { |
63 | if (i_size_read(vi) > MAX_LFS_FILESIZE) | 63 | if (i_size_read(vi) > MAX_LFS_FILESIZE) |
64 | return -EFBIG; | 64 | return -EOVERFLOW; |
65 | } | 65 | } |
66 | return generic_file_open(vi, filp); | 66 | return generic_file_open(vi, filp); |
67 | } | 67 | } |
diff --git a/fs/ntfs/super.c b/fs/ntfs/super.c index 90c4e3a29706..3e76f3b216bc 100644 --- a/fs/ntfs/super.c +++ b/fs/ntfs/super.c | |||
@@ -2381,14 +2381,14 @@ static void ntfs_put_super(struct super_block *sb) | |||
2381 | */ | 2381 | */ |
2382 | ntfs_commit_inode(vol->mft_ino); | 2382 | ntfs_commit_inode(vol->mft_ino); |
2383 | write_inode_now(vol->mft_ino, 1); | 2383 | write_inode_now(vol->mft_ino, 1); |
2384 | if (!list_empty(&sb->s_dirty)) { | 2384 | if (sb_has_dirty_inodes(sb)) { |
2385 | const char *s1, *s2; | 2385 | const char *s1, *s2; |
2386 | 2386 | ||
2387 | mutex_lock(&vol->mft_ino->i_mutex); | 2387 | mutex_lock(&vol->mft_ino->i_mutex); |
2388 | truncate_inode_pages(vol->mft_ino->i_mapping, 0); | 2388 | truncate_inode_pages(vol->mft_ino->i_mapping, 0); |
2389 | mutex_unlock(&vol->mft_ino->i_mutex); | 2389 | mutex_unlock(&vol->mft_ino->i_mutex); |
2390 | write_inode_now(vol->mft_ino, 1); | 2390 | write_inode_now(vol->mft_ino, 1); |
2391 | if (!list_empty(&sb->s_dirty)) { | 2391 | if (sb_has_dirty_inodes(sb)) { |
2392 | static const char *_s1 = "inodes"; | 2392 | static const char *_s1 = "inodes"; |
2393 | static const char *_s2 = ""; | 2393 | static const char *_s2 = ""; |
2394 | s1 = _s1; | 2394 | s1 = _s1; |
@@ -3080,8 +3080,7 @@ struct kmem_cache *ntfs_inode_cache; | |||
3080 | struct kmem_cache *ntfs_big_inode_cache; | 3080 | struct kmem_cache *ntfs_big_inode_cache; |
3081 | 3081 | ||
3082 | /* Init once constructor for the inode slab cache. */ | 3082 | /* Init once constructor for the inode slab cache. */ |
3083 | static void ntfs_big_inode_init_once(void *foo, struct kmem_cache *cachep, | 3083 | static void ntfs_big_inode_init_once(struct kmem_cache *cachep, void *foo) |
3084 | unsigned long flags) | ||
3085 | { | 3084 | { |
3086 | ntfs_inode *ni = (ntfs_inode *)foo; | 3085 | ntfs_inode *ni = (ntfs_inode *)foo; |
3087 | 3086 | ||
diff --git a/fs/ocfs2/dir.c b/fs/ocfs2/dir.c index 7453b70c1a19..6a2f143e269c 100644 --- a/fs/ocfs2/dir.c +++ b/fs/ocfs2/dir.c | |||
@@ -586,7 +586,7 @@ bail: | |||
586 | } | 586 | } |
587 | 587 | ||
588 | static int ocfs2_dir_foreach_blk_id(struct inode *inode, | 588 | static int ocfs2_dir_foreach_blk_id(struct inode *inode, |
589 | unsigned long *f_version, | 589 | u64 *f_version, |
590 | loff_t *f_pos, void *priv, | 590 | loff_t *f_pos, void *priv, |
591 | filldir_t filldir, int *filldir_err) | 591 | filldir_t filldir, int *filldir_err) |
592 | { | 592 | { |
@@ -648,7 +648,7 @@ revalidate: | |||
648 | * not the directory has been modified | 648 | * not the directory has been modified |
649 | * during the copy operation. | 649 | * during the copy operation. |
650 | */ | 650 | */ |
651 | unsigned long version = *f_version; | 651 | u64 version = *f_version; |
652 | unsigned char d_type = DT_UNKNOWN; | 652 | unsigned char d_type = DT_UNKNOWN; |
653 | 653 | ||
654 | if (de->file_type < OCFS2_FT_MAX) | 654 | if (de->file_type < OCFS2_FT_MAX) |
@@ -677,7 +677,7 @@ out: | |||
677 | } | 677 | } |
678 | 678 | ||
679 | static int ocfs2_dir_foreach_blk_el(struct inode *inode, | 679 | static int ocfs2_dir_foreach_blk_el(struct inode *inode, |
680 | unsigned long *f_version, | 680 | u64 *f_version, |
681 | loff_t *f_pos, void *priv, | 681 | loff_t *f_pos, void *priv, |
682 | filldir_t filldir, int *filldir_err) | 682 | filldir_t filldir, int *filldir_err) |
683 | { | 683 | { |
@@ -798,7 +798,7 @@ out: | |||
798 | return stored; | 798 | return stored; |
799 | } | 799 | } |
800 | 800 | ||
801 | static int ocfs2_dir_foreach_blk(struct inode *inode, unsigned long *f_version, | 801 | static int ocfs2_dir_foreach_blk(struct inode *inode, u64 *f_version, |
802 | loff_t *f_pos, void *priv, filldir_t filldir, | 802 | loff_t *f_pos, void *priv, filldir_t filldir, |
803 | int *filldir_err) | 803 | int *filldir_err) |
804 | { | 804 | { |
@@ -818,7 +818,7 @@ int ocfs2_dir_foreach(struct inode *inode, loff_t *f_pos, void *priv, | |||
818 | filldir_t filldir) | 818 | filldir_t filldir) |
819 | { | 819 | { |
820 | int ret = 0, filldir_err = 0; | 820 | int ret = 0, filldir_err = 0; |
821 | unsigned long version = inode->i_version; | 821 | u64 version = inode->i_version; |
822 | 822 | ||
823 | while (*f_pos < i_size_read(inode)) { | 823 | while (*f_pos < i_size_read(inode)) { |
824 | ret = ocfs2_dir_foreach_blk(inode, &version, f_pos, priv, | 824 | ret = ocfs2_dir_foreach_blk(inode, &version, f_pos, priv, |
diff --git a/fs/ocfs2/dlm/dlmfs.c b/fs/ocfs2/dlm/dlmfs.c index 7418dc83de1c..6639baab0798 100644 --- a/fs/ocfs2/dlm/dlmfs.c +++ b/fs/ocfs2/dlm/dlmfs.c | |||
@@ -255,9 +255,8 @@ static ssize_t dlmfs_file_write(struct file *filp, | |||
255 | return writelen; | 255 | return writelen; |
256 | } | 256 | } |
257 | 257 | ||
258 | static void dlmfs_init_once(void *foo, | 258 | static void dlmfs_init_once(struct kmem_cache *cachep, |
259 | struct kmem_cache *cachep, | 259 | void *foo) |
260 | unsigned long flags) | ||
261 | { | 260 | { |
262 | struct dlmfs_inode_private *ip = | 261 | struct dlmfs_inode_private *ip = |
263 | (struct dlmfs_inode_private *) foo; | 262 | (struct dlmfs_inode_private *) foo; |
@@ -588,13 +587,17 @@ static int __init init_dlmfs_fs(void) | |||
588 | 587 | ||
589 | dlmfs_print_version(); | 588 | dlmfs_print_version(); |
590 | 589 | ||
590 | status = bdi_init(&dlmfs_backing_dev_info); | ||
591 | if (status) | ||
592 | return status; | ||
593 | |||
591 | dlmfs_inode_cache = kmem_cache_create("dlmfs_inode_cache", | 594 | dlmfs_inode_cache = kmem_cache_create("dlmfs_inode_cache", |
592 | sizeof(struct dlmfs_inode_private), | 595 | sizeof(struct dlmfs_inode_private), |
593 | 0, (SLAB_HWCACHE_ALIGN|SLAB_RECLAIM_ACCOUNT| | 596 | 0, (SLAB_HWCACHE_ALIGN|SLAB_RECLAIM_ACCOUNT| |
594 | SLAB_MEM_SPREAD), | 597 | SLAB_MEM_SPREAD), |
595 | dlmfs_init_once); | 598 | dlmfs_init_once); |
596 | if (!dlmfs_inode_cache) | 599 | if (!dlmfs_inode_cache) |
597 | return -ENOMEM; | 600 | goto bail; |
598 | cleanup_inode = 1; | 601 | cleanup_inode = 1; |
599 | 602 | ||
600 | user_dlm_worker = create_singlethread_workqueue("user_dlm"); | 603 | user_dlm_worker = create_singlethread_workqueue("user_dlm"); |
@@ -611,6 +614,7 @@ bail: | |||
611 | kmem_cache_destroy(dlmfs_inode_cache); | 614 | kmem_cache_destroy(dlmfs_inode_cache); |
612 | if (cleanup_worker) | 615 | if (cleanup_worker) |
613 | destroy_workqueue(user_dlm_worker); | 616 | destroy_workqueue(user_dlm_worker); |
617 | bdi_destroy(&dlmfs_backing_dev_info); | ||
614 | } else | 618 | } else |
615 | printk("OCFS2 User DLM kernel interface loaded\n"); | 619 | printk("OCFS2 User DLM kernel interface loaded\n"); |
616 | return status; | 620 | return status; |
@@ -624,6 +628,8 @@ static void __exit exit_dlmfs_fs(void) | |||
624 | destroy_workqueue(user_dlm_worker); | 628 | destroy_workqueue(user_dlm_worker); |
625 | 629 | ||
626 | kmem_cache_destroy(dlmfs_inode_cache); | 630 | kmem_cache_destroy(dlmfs_inode_cache); |
631 | |||
632 | bdi_destroy(&dlmfs_backing_dev_info); | ||
627 | } | 633 | } |
628 | 634 | ||
629 | MODULE_AUTHOR("Oracle"); | 635 | MODULE_AUTHOR("Oracle"); |
diff --git a/fs/ocfs2/super.c b/fs/ocfs2/super.c index 0e2a1b45bf92..be562ac3e89c 100644 --- a/fs/ocfs2/super.c +++ b/fs/ocfs2/super.c | |||
@@ -1000,9 +1000,7 @@ bail: | |||
1000 | return status; | 1000 | return status; |
1001 | } | 1001 | } |
1002 | 1002 | ||
1003 | static void ocfs2_inode_init_once(void *data, | 1003 | static void ocfs2_inode_init_once(struct kmem_cache *cachep, void *data) |
1004 | struct kmem_cache *cachep, | ||
1005 | unsigned long flags) | ||
1006 | { | 1004 | { |
1007 | struct ocfs2_inode_info *oi = data; | 1005 | struct ocfs2_inode_info *oi = data; |
1008 | 1006 | ||
@@ -658,7 +658,8 @@ static int chown_common(struct dentry * dentry, uid_t user, gid_t group) | |||
658 | newattrs.ia_gid = group; | 658 | newattrs.ia_gid = group; |
659 | } | 659 | } |
660 | if (!S_ISDIR(inode->i_mode)) | 660 | if (!S_ISDIR(inode->i_mode)) |
661 | newattrs.ia_valid |= ATTR_KILL_SUID|ATTR_KILL_SGID; | 661 | newattrs.ia_valid |= |
662 | ATTR_KILL_SUID | ATTR_KILL_SGID | ATTR_KILL_PRIV; | ||
662 | mutex_lock(&inode->i_mutex); | 663 | mutex_lock(&inode->i_mutex); |
663 | error = notify_change(dentry, &newattrs); | 664 | error = notify_change(dentry, &newattrs); |
664 | mutex_unlock(&inode->i_mutex); | 665 | mutex_unlock(&inode->i_mutex); |
@@ -1177,7 +1178,7 @@ asmlinkage long sys_vhangup(void) | |||
1177 | int generic_file_open(struct inode * inode, struct file * filp) | 1178 | int generic_file_open(struct inode * inode, struct file * filp) |
1178 | { | 1179 | { |
1179 | if (!(filp->f_flags & O_LARGEFILE) && i_size_read(inode) > MAX_NON_LFS) | 1180 | if (!(filp->f_flags & O_LARGEFILE) && i_size_read(inode) > MAX_NON_LFS) |
1180 | return -EFBIG; | 1181 | return -EOVERFLOW; |
1181 | return 0; | 1182 | return 0; |
1182 | } | 1183 | } |
1183 | 1184 | ||
diff --git a/fs/openpromfs/inode.c b/fs/openpromfs/inode.c index dd86be2aa6c9..d88173840082 100644 --- a/fs/openpromfs/inode.c +++ b/fs/openpromfs/inode.c | |||
@@ -415,7 +415,7 @@ static struct file_system_type openprom_fs_type = { | |||
415 | .kill_sb = kill_anon_super, | 415 | .kill_sb = kill_anon_super, |
416 | }; | 416 | }; |
417 | 417 | ||
418 | static void op_inode_init_once(void *data, struct kmem_cache * cachep, unsigned long flags) | 418 | static void op_inode_init_once(struct kmem_cache * cachep, void *data) |
419 | { | 419 | { |
420 | struct op_inode_info *oi = (struct op_inode_info *) data; | 420 | struct op_inode_info *oi = (struct op_inode_info *) data; |
421 | 421 | ||
diff --git a/fs/proc/base.c b/fs/proc/base.c index 78fdfea1a7f8..4fe74d156416 100644 --- a/fs/proc/base.c +++ b/fs/proc/base.c | |||
@@ -199,27 +199,6 @@ static int proc_root_link(struct inode *inode, struct dentry **dentry, struct vf | |||
199 | (task->state == TASK_STOPPED || task->state == TASK_TRACED) && \ | 199 | (task->state == TASK_STOPPED || task->state == TASK_TRACED) && \ |
200 | security_ptrace(current,task) == 0)) | 200 | security_ptrace(current,task) == 0)) |
201 | 201 | ||
202 | static int proc_pid_environ(struct task_struct *task, char * buffer) | ||
203 | { | ||
204 | int res = 0; | ||
205 | struct mm_struct *mm = get_task_mm(task); | ||
206 | if (mm) { | ||
207 | unsigned int len; | ||
208 | |||
209 | res = -ESRCH; | ||
210 | if (!ptrace_may_attach(task)) | ||
211 | goto out; | ||
212 | |||
213 | len = mm->env_end - mm->env_start; | ||
214 | if (len > PAGE_SIZE) | ||
215 | len = PAGE_SIZE; | ||
216 | res = access_process_vm(task, mm->env_start, buffer, len, 0); | ||
217 | out: | ||
218 | mmput(mm); | ||
219 | } | ||
220 | return res; | ||
221 | } | ||
222 | |||
223 | static int proc_pid_cmdline(struct task_struct *task, char * buffer) | 202 | static int proc_pid_cmdline(struct task_struct *task, char * buffer) |
224 | { | 203 | { |
225 | int res = 0; | 204 | int res = 0; |
@@ -658,6 +637,76 @@ static const struct file_operations proc_mem_operations = { | |||
658 | .open = mem_open, | 637 | .open = mem_open, |
659 | }; | 638 | }; |
660 | 639 | ||
640 | static ssize_t environ_read(struct file *file, char __user *buf, | ||
641 | size_t count, loff_t *ppos) | ||
642 | { | ||
643 | struct task_struct *task = get_proc_task(file->f_dentry->d_inode); | ||
644 | char *page; | ||
645 | unsigned long src = *ppos; | ||
646 | int ret = -ESRCH; | ||
647 | struct mm_struct *mm; | ||
648 | |||
649 | if (!task) | ||
650 | goto out_no_task; | ||
651 | |||
652 | if (!ptrace_may_attach(task)) | ||
653 | goto out; | ||
654 | |||
655 | ret = -ENOMEM; | ||
656 | page = (char *)__get_free_page(GFP_TEMPORARY); | ||
657 | if (!page) | ||
658 | goto out; | ||
659 | |||
660 | ret = 0; | ||
661 | |||
662 | mm = get_task_mm(task); | ||
663 | if (!mm) | ||
664 | goto out_free; | ||
665 | |||
666 | while (count > 0) { | ||
667 | int this_len, retval, max_len; | ||
668 | |||
669 | this_len = mm->env_end - (mm->env_start + src); | ||
670 | |||
671 | if (this_len <= 0) | ||
672 | break; | ||
673 | |||
674 | max_len = (count > PAGE_SIZE) ? PAGE_SIZE : count; | ||
675 | this_len = (this_len > max_len) ? max_len : this_len; | ||
676 | |||
677 | retval = access_process_vm(task, (mm->env_start + src), | ||
678 | page, this_len, 0); | ||
679 | |||
680 | if (retval <= 0) { | ||
681 | ret = retval; | ||
682 | break; | ||
683 | } | ||
684 | |||
685 | if (copy_to_user(buf, page, retval)) { | ||
686 | ret = -EFAULT; | ||
687 | break; | ||
688 | } | ||
689 | |||
690 | ret += retval; | ||
691 | src += retval; | ||
692 | buf += retval; | ||
693 | count -= retval; | ||
694 | } | ||
695 | *ppos = src; | ||
696 | |||
697 | mmput(mm); | ||
698 | out_free: | ||
699 | free_page((unsigned long) page); | ||
700 | out: | ||
701 | put_task_struct(task); | ||
702 | out_no_task: | ||
703 | return ret; | ||
704 | } | ||
705 | |||
706 | static const struct file_operations proc_environ_operations = { | ||
707 | .read = environ_read, | ||
708 | }; | ||
709 | |||
661 | static ssize_t oom_adjust_read(struct file *file, char __user *buf, | 710 | static ssize_t oom_adjust_read(struct file *file, char __user *buf, |
662 | size_t count, loff_t *ppos) | 711 | size_t count, loff_t *ppos) |
663 | { | 712 | { |
@@ -2049,7 +2098,7 @@ static const struct pid_entry tgid_base_stuff[] = { | |||
2049 | DIR("task", S_IRUGO|S_IXUGO, task), | 2098 | DIR("task", S_IRUGO|S_IXUGO, task), |
2050 | DIR("fd", S_IRUSR|S_IXUSR, fd), | 2099 | DIR("fd", S_IRUSR|S_IXUSR, fd), |
2051 | DIR("fdinfo", S_IRUSR|S_IXUSR, fdinfo), | 2100 | DIR("fdinfo", S_IRUSR|S_IXUSR, fdinfo), |
2052 | INF("environ", S_IRUSR, pid_environ), | 2101 | REG("environ", S_IRUSR, environ), |
2053 | INF("auxv", S_IRUSR, pid_auxv), | 2102 | INF("auxv", S_IRUSR, pid_auxv), |
2054 | INF("status", S_IRUGO, pid_status), | 2103 | INF("status", S_IRUGO, pid_status), |
2055 | #ifdef CONFIG_SCHED_DEBUG | 2104 | #ifdef CONFIG_SCHED_DEBUG |
@@ -2336,7 +2385,7 @@ out_no_task: | |||
2336 | static const struct pid_entry tid_base_stuff[] = { | 2385 | static const struct pid_entry tid_base_stuff[] = { |
2337 | DIR("fd", S_IRUSR|S_IXUSR, fd), | 2386 | DIR("fd", S_IRUSR|S_IXUSR, fd), |
2338 | DIR("fdinfo", S_IRUSR|S_IXUSR, fdinfo), | 2387 | DIR("fdinfo", S_IRUSR|S_IXUSR, fdinfo), |
2339 | INF("environ", S_IRUSR, pid_environ), | 2388 | REG("environ", S_IRUSR, environ), |
2340 | INF("auxv", S_IRUSR, pid_auxv), | 2389 | INF("auxv", S_IRUSR, pid_auxv), |
2341 | INF("status", S_IRUGO, pid_status), | 2390 | INF("status", S_IRUGO, pid_status), |
2342 | #ifdef CONFIG_SCHED_DEBUG | 2391 | #ifdef CONFIG_SCHED_DEBUG |
@@ -2586,7 +2635,7 @@ static int proc_task_readdir(struct file * filp, void * dirent, filldir_t filldi | |||
2586 | /* f_version caches the tgid value that the last readdir call couldn't | 2635 | /* f_version caches the tgid value that the last readdir call couldn't |
2587 | * return. lseek aka telldir automagically resets f_version to 0. | 2636 | * return. lseek aka telldir automagically resets f_version to 0. |
2588 | */ | 2637 | */ |
2589 | tid = filp->f_version; | 2638 | tid = (int)filp->f_version; |
2590 | filp->f_version = 0; | 2639 | filp->f_version = 0; |
2591 | for (task = first_tid(leader, tid, pos - 2); | 2640 | for (task = first_tid(leader, tid, pos - 2); |
2592 | task; | 2641 | task; |
@@ -2595,7 +2644,7 @@ static int proc_task_readdir(struct file * filp, void * dirent, filldir_t filldi | |||
2595 | if (proc_task_fill_cache(filp, dirent, filldir, task, tid) < 0) { | 2644 | if (proc_task_fill_cache(filp, dirent, filldir, task, tid) < 0) { |
2596 | /* returning this tgid failed, save it as the first | 2645 | /* returning this tgid failed, save it as the first |
2597 | * pid for the next readir call */ | 2646 | * pid for the next readir call */ |
2598 | filp->f_version = tid; | 2647 | filp->f_version = (u64)tid; |
2599 | put_task_struct(task); | 2648 | put_task_struct(task); |
2600 | break; | 2649 | break; |
2601 | } | 2650 | } |
diff --git a/fs/proc/inode.c b/fs/proc/inode.c index 0e4d37c93eea..99ca00485fc3 100644 --- a/fs/proc/inode.c +++ b/fs/proc/inode.c | |||
@@ -107,7 +107,7 @@ static void proc_destroy_inode(struct inode *inode) | |||
107 | kmem_cache_free(proc_inode_cachep, PROC_I(inode)); | 107 | kmem_cache_free(proc_inode_cachep, PROC_I(inode)); |
108 | } | 108 | } |
109 | 109 | ||
110 | static void init_once(void * foo, struct kmem_cache * cachep, unsigned long flags) | 110 | static void init_once(struct kmem_cache * cachep, void *foo) |
111 | { | 111 | { |
112 | struct proc_inode *ei = (struct proc_inode *) foo; | 112 | struct proc_inode *ei = (struct proc_inode *) foo; |
113 | 113 | ||
@@ -119,10 +119,8 @@ int __init proc_init_inodecache(void) | |||
119 | proc_inode_cachep = kmem_cache_create("proc_inode_cache", | 119 | proc_inode_cachep = kmem_cache_create("proc_inode_cache", |
120 | sizeof(struct proc_inode), | 120 | sizeof(struct proc_inode), |
121 | 0, (SLAB_RECLAIM_ACCOUNT| | 121 | 0, (SLAB_RECLAIM_ACCOUNT| |
122 | SLAB_MEM_SPREAD), | 122 | SLAB_MEM_SPREAD|SLAB_PANIC), |
123 | init_once); | 123 | init_once); |
124 | if (proc_inode_cachep == NULL) | ||
125 | return -ENOMEM; | ||
126 | return 0; | 124 | return 0; |
127 | } | 125 | } |
128 | 126 | ||
diff --git a/fs/proc/mmu.c b/fs/proc/mmu.c index 25d2d9c6e329..8ae221dfd010 100644 --- a/fs/proc/mmu.c +++ b/fs/proc/mmu.c | |||
@@ -8,27 +8,10 @@ | |||
8 | * as published by the Free Software Foundation; either version | 8 | * as published by the Free Software Foundation; either version |
9 | * 2 of the License, or (at your option) any later version. | 9 | * 2 of the License, or (at your option) any later version. |
10 | */ | 10 | */ |
11 | 11 | #include <linux/spinlock.h> | |
12 | #include <linux/types.h> | ||
13 | #include <linux/errno.h> | ||
14 | #include <linux/time.h> | ||
15 | #include <linux/kernel.h> | ||
16 | #include <linux/string.h> | ||
17 | #include <linux/mman.h> | ||
18 | #include <linux/proc_fs.h> | ||
19 | #include <linux/mm.h> | ||
20 | #include <linux/mmzone.h> | ||
21 | #include <linux/pagemap.h> | ||
22 | #include <linux/swap.h> | ||
23 | #include <linux/slab.h> | ||
24 | #include <linux/smp.h> | ||
25 | #include <linux/seq_file.h> | ||
26 | #include <linux/hugetlb.h> | ||
27 | #include <linux/vmalloc.h> | 12 | #include <linux/vmalloc.h> |
28 | #include <asm/uaccess.h> | 13 | #include <linux/highmem.h> |
29 | #include <asm/pgtable.h> | 14 | #include <asm/pgtable.h> |
30 | #include <asm/tlb.h> | ||
31 | #include <asm/div64.h> | ||
32 | #include "internal.h" | 15 | #include "internal.h" |
33 | 16 | ||
34 | void get_vmalloc_info(struct vmalloc_info *vmi) | 17 | void get_vmalloc_info(struct vmalloc_info *vmi) |
diff --git a/fs/proc/proc_misc.c b/fs/proc/proc_misc.c index 5de7f874d95c..d6dc72c78bc1 100644 --- a/fs/proc/proc_misc.c +++ b/fs/proc/proc_misc.c | |||
@@ -526,11 +526,8 @@ static int show_stat(struct seq_file *p, void *v) | |||
526 | } | 526 | } |
527 | seq_printf(p, "intr %llu", (unsigned long long)sum); | 527 | seq_printf(p, "intr %llu", (unsigned long long)sum); |
528 | 528 | ||
529 | #ifndef CONFIG_SMP | ||
530 | /* Touches too many cache lines on SMP setups */ | ||
531 | for (i = 0; i < NR_IRQS; i++) | 529 | for (i = 0; i < NR_IRQS; i++) |
532 | seq_printf(p, " %u", per_irq_sum[i]); | 530 | seq_printf(p, " %u", per_irq_sum[i]); |
533 | #endif | ||
534 | 531 | ||
535 | seq_printf(p, | 532 | seq_printf(p, |
536 | "\nctxt %llu\n" | 533 | "\nctxt %llu\n" |
diff --git a/fs/qnx4/inode.c b/fs/qnx4/inode.c index df8bd87e49b7..638bdb963213 100644 --- a/fs/qnx4/inode.c +++ b/fs/qnx4/inode.c | |||
@@ -536,8 +536,7 @@ static void qnx4_destroy_inode(struct inode *inode) | |||
536 | kmem_cache_free(qnx4_inode_cachep, qnx4_i(inode)); | 536 | kmem_cache_free(qnx4_inode_cachep, qnx4_i(inode)); |
537 | } | 537 | } |
538 | 538 | ||
539 | static void init_once(void *foo, struct kmem_cache * cachep, | 539 | static void init_once(struct kmem_cache *cachep, void *foo) |
540 | unsigned long flags) | ||
541 | { | 540 | { |
542 | struct qnx4_inode_info *ei = (struct qnx4_inode_info *) foo; | 541 | struct qnx4_inode_info *ei = (struct qnx4_inode_info *) foo; |
543 | 542 | ||
diff --git a/fs/ramfs/Makefile b/fs/ramfs/Makefile index 5a0236e02ee1..c71e65dcad25 100644 --- a/fs/ramfs/Makefile +++ b/fs/ramfs/Makefile | |||
@@ -2,7 +2,7 @@ | |||
2 | # Makefile for the linux ramfs routines. | 2 | # Makefile for the linux ramfs routines. |
3 | # | 3 | # |
4 | 4 | ||
5 | obj-$(CONFIG_RAMFS) += ramfs.o | 5 | obj-y += ramfs.o |
6 | 6 | ||
7 | file-mmu-y := file-nommu.o | 7 | file-mmu-y := file-nommu.o |
8 | file-mmu-$(CONFIG_MMU) := file-mmu.o | 8 | file-mmu-$(CONFIG_MMU) := file-mmu.o |
diff --git a/fs/ramfs/inode.c b/fs/ramfs/inode.c index ef2b46d099ff..8428d5b2711d 100644 --- a/fs/ramfs/inode.c +++ b/fs/ramfs/inode.c | |||
@@ -223,7 +223,17 @@ module_exit(exit_ramfs_fs) | |||
223 | 223 | ||
224 | int __init init_rootfs(void) | 224 | int __init init_rootfs(void) |
225 | { | 225 | { |
226 | return register_filesystem(&rootfs_fs_type); | 226 | int err; |
227 | |||
228 | err = bdi_init(&ramfs_backing_dev_info); | ||
229 | if (err) | ||
230 | return err; | ||
231 | |||
232 | err = register_filesystem(&rootfs_fs_type); | ||
233 | if (err) | ||
234 | bdi_destroy(&ramfs_backing_dev_info); | ||
235 | |||
236 | return err; | ||
227 | } | 237 | } |
228 | 238 | ||
229 | MODULE_LICENSE("GPL"); | 239 | MODULE_LICENSE("GPL"); |
diff --git a/fs/reiserfs/bitmap.c b/fs/reiserfs/bitmap.c index b286ccb08587..2a5dd34649b3 100644 --- a/fs/reiserfs/bitmap.c +++ b/fs/reiserfs/bitmap.c | |||
@@ -1201,63 +1201,6 @@ int reiserfs_allocate_blocknrs(reiserfs_blocknr_hint_t * hint, b_blocknr_t * new | |||
1201 | return ret; | 1201 | return ret; |
1202 | } | 1202 | } |
1203 | 1203 | ||
1204 | /* These 2 functions are here to provide blocks reservation to the rest of kernel */ | ||
1205 | /* Reserve @blocks amount of blocks in fs pointed by @sb. Caller must make sure | ||
1206 | there are actually this much blocks on the FS available */ | ||
1207 | void reiserfs_claim_blocks_to_be_allocated(struct super_block *sb, /* super block of | ||
1208 | filesystem where | ||
1209 | blocks should be | ||
1210 | reserved */ | ||
1211 | int blocks /* How much to reserve */ | ||
1212 | ) | ||
1213 | { | ||
1214 | |||
1215 | /* Fast case, if reservation is zero - exit immediately. */ | ||
1216 | if (!blocks) | ||
1217 | return; | ||
1218 | |||
1219 | spin_lock(&REISERFS_SB(sb)->bitmap_lock); | ||
1220 | REISERFS_SB(sb)->reserved_blocks += blocks; | ||
1221 | spin_unlock(&REISERFS_SB(sb)->bitmap_lock); | ||
1222 | } | ||
1223 | |||
1224 | /* Unreserve @blocks amount of blocks in fs pointed by @sb */ | ||
1225 | void reiserfs_release_claimed_blocks(struct super_block *sb, /* super block of | ||
1226 | filesystem where | ||
1227 | blocks should be | ||
1228 | reserved */ | ||
1229 | int blocks /* How much to unreserve */ | ||
1230 | ) | ||
1231 | { | ||
1232 | |||
1233 | /* Fast case, if unreservation is zero - exit immediately. */ | ||
1234 | if (!blocks) | ||
1235 | return; | ||
1236 | |||
1237 | spin_lock(&REISERFS_SB(sb)->bitmap_lock); | ||
1238 | REISERFS_SB(sb)->reserved_blocks -= blocks; | ||
1239 | spin_unlock(&REISERFS_SB(sb)->bitmap_lock); | ||
1240 | RFALSE(REISERFS_SB(sb)->reserved_blocks < 0, | ||
1241 | "amount of blocks reserved became zero?"); | ||
1242 | } | ||
1243 | |||
1244 | /* This function estimates how much pages we will be able to write to FS | ||
1245 | used for reiserfs_file_write() purposes for now. */ | ||
1246 | int reiserfs_can_fit_pages(struct super_block *sb /* superblock of filesystem | ||
1247 | to estimate space */ ) | ||
1248 | { | ||
1249 | int space; | ||
1250 | |||
1251 | spin_lock(&REISERFS_SB(sb)->bitmap_lock); | ||
1252 | space = | ||
1253 | (SB_FREE_BLOCKS(sb) - | ||
1254 | REISERFS_SB(sb)->reserved_blocks) >> (PAGE_CACHE_SHIFT - | ||
1255 | sb->s_blocksize_bits); | ||
1256 | spin_unlock(&REISERFS_SB(sb)->bitmap_lock); | ||
1257 | |||
1258 | return space > 0 ? space : 0; | ||
1259 | } | ||
1260 | |||
1261 | void reiserfs_cache_bitmap_metadata(struct super_block *sb, | 1204 | void reiserfs_cache_bitmap_metadata(struct super_block *sb, |
1262 | struct buffer_head *bh, | 1205 | struct buffer_head *bh, |
1263 | struct reiserfs_bitmap_info *info) | 1206 | struct reiserfs_bitmap_info *info) |
diff --git a/fs/reiserfs/dir.c b/fs/reiserfs/dir.c index ffbfc2caaf20..e6b03d2020c1 100644 --- a/fs/reiserfs/dir.c +++ b/fs/reiserfs/dir.c | |||
@@ -121,6 +121,16 @@ static int reiserfs_readdir(struct file *filp, void *dirent, filldir_t filldir) | |||
121 | continue; | 121 | continue; |
122 | d_reclen = entry_length(bh, ih, entry_num); | 122 | d_reclen = entry_length(bh, ih, entry_num); |
123 | d_name = B_I_DEH_ENTRY_FILE_NAME(bh, ih, deh); | 123 | d_name = B_I_DEH_ENTRY_FILE_NAME(bh, ih, deh); |
124 | |||
125 | if (d_reclen <= 0 || | ||
126 | d_name + d_reclen > bh->b_data + bh->b_size) { | ||
127 | /* There is corrupted data in entry, | ||
128 | * We'd better stop here */ | ||
129 | pathrelse(&path_to_entry); | ||
130 | ret = -EIO; | ||
131 | goto out; | ||
132 | } | ||
133 | |||
124 | if (!d_name[d_reclen - 1]) | 134 | if (!d_name[d_reclen - 1]) |
125 | d_reclen = strlen(d_name); | 135 | d_reclen = strlen(d_name); |
126 | 136 | ||
diff --git a/fs/reiserfs/inode.c b/fs/reiserfs/inode.c index 95051d44a918..9ea12004fa57 100644 --- a/fs/reiserfs/inode.c +++ b/fs/reiserfs/inode.c | |||
@@ -208,8 +208,8 @@ static int file_capable(struct inode *inode, long block) | |||
208 | return 0; | 208 | return 0; |
209 | } | 209 | } |
210 | 210 | ||
211 | /*static*/ int restart_transaction(struct reiserfs_transaction_handle *th, | 211 | static int restart_transaction(struct reiserfs_transaction_handle *th, |
212 | struct inode *inode, struct treepath *path) | 212 | struct inode *inode, struct treepath *path) |
213 | { | 213 | { |
214 | struct super_block *s = th->t_super; | 214 | struct super_block *s = th->t_super; |
215 | int len = th->t_blocks_allocated; | 215 | int len = th->t_blocks_allocated; |
diff --git a/fs/reiserfs/journal.c b/fs/reiserfs/journal.c index f25086aeef5f..4cad9e75ef56 100644 --- a/fs/reiserfs/journal.c +++ b/fs/reiserfs/journal.c | |||
@@ -615,6 +615,31 @@ static int journal_list_still_alive(struct super_block *s, | |||
615 | return 0; | 615 | return 0; |
616 | } | 616 | } |
617 | 617 | ||
618 | /* | ||
619 | * If page->mapping was null, we failed to truncate this page for | ||
620 | * some reason. Most likely because it was truncated after being | ||
621 | * logged via data=journal. | ||
622 | * | ||
623 | * This does a check to see if the buffer belongs to one of these | ||
624 | * lost pages before doing the final put_bh. If page->mapping was | ||
625 | * null, it tries to free buffers on the page, which should make the | ||
626 | * final page_cache_release drop the page from the lru. | ||
627 | */ | ||
628 | static void release_buffer_page(struct buffer_head *bh) | ||
629 | { | ||
630 | struct page *page = bh->b_page; | ||
631 | if (!page->mapping && !TestSetPageLocked(page)) { | ||
632 | page_cache_get(page); | ||
633 | put_bh(bh); | ||
634 | if (!page->mapping) | ||
635 | try_to_free_buffers(page); | ||
636 | unlock_page(page); | ||
637 | page_cache_release(page); | ||
638 | } else { | ||
639 | put_bh(bh); | ||
640 | } | ||
641 | } | ||
642 | |||
618 | static void reiserfs_end_buffer_io_sync(struct buffer_head *bh, int uptodate) | 643 | static void reiserfs_end_buffer_io_sync(struct buffer_head *bh, int uptodate) |
619 | { | 644 | { |
620 | char b[BDEVNAME_SIZE]; | 645 | char b[BDEVNAME_SIZE]; |
@@ -628,8 +653,9 @@ static void reiserfs_end_buffer_io_sync(struct buffer_head *bh, int uptodate) | |||
628 | set_buffer_uptodate(bh); | 653 | set_buffer_uptodate(bh); |
629 | else | 654 | else |
630 | clear_buffer_uptodate(bh); | 655 | clear_buffer_uptodate(bh); |
656 | |||
631 | unlock_buffer(bh); | 657 | unlock_buffer(bh); |
632 | put_bh(bh); | 658 | release_buffer_page(bh); |
633 | } | 659 | } |
634 | 660 | ||
635 | static void reiserfs_end_ordered_io(struct buffer_head *bh, int uptodate) | 661 | static void reiserfs_end_ordered_io(struct buffer_head *bh, int uptodate) |
@@ -966,7 +992,8 @@ static int flush_older_commits(struct super_block *s, | |||
966 | } | 992 | } |
967 | return 0; | 993 | return 0; |
968 | } | 994 | } |
969 | int reiserfs_async_progress_wait(struct super_block *s) | 995 | |
996 | static int reiserfs_async_progress_wait(struct super_block *s) | ||
970 | { | 997 | { |
971 | DEFINE_WAIT(wait); | 998 | DEFINE_WAIT(wait); |
972 | struct reiserfs_journal *j = SB_JOURNAL(s); | 999 | struct reiserfs_journal *j = SB_JOURNAL(s); |
@@ -1546,9 +1573,10 @@ static int flush_journal_list(struct super_block *s, | |||
1546 | BUG_ON(!test_clear_buffer_journal_dirty | 1573 | BUG_ON(!test_clear_buffer_journal_dirty |
1547 | (cn->bh)); | 1574 | (cn->bh)); |
1548 | 1575 | ||
1549 | /* undo the inc from journal_mark_dirty */ | 1576 | /* drop one ref for us */ |
1550 | put_bh(cn->bh); | 1577 | put_bh(cn->bh); |
1551 | brelse(cn->bh); | 1578 | /* drop one ref for journal_mark_dirty */ |
1579 | release_buffer_page(cn->bh); | ||
1552 | } | 1580 | } |
1553 | cn = cn->next; | 1581 | cn = cn->next; |
1554 | } | 1582 | } |
@@ -2621,6 +2649,61 @@ static int journal_init_dev(struct super_block *super, | |||
2621 | return result; | 2649 | return result; |
2622 | } | 2650 | } |
2623 | 2651 | ||
2652 | /** | ||
2653 | * When creating/tuning a file system user can assign some | ||
2654 | * journal params within boundaries which depend on the ratio | ||
2655 | * blocksize/standard_blocksize. | ||
2656 | * | ||
2657 | * For blocks >= standard_blocksize transaction size should | ||
2658 | * be not less then JOURNAL_TRANS_MIN_DEFAULT, and not more | ||
2659 | * then JOURNAL_TRANS_MAX_DEFAULT. | ||
2660 | * | ||
2661 | * For blocks < standard_blocksize these boundaries should be | ||
2662 | * decreased proportionally. | ||
2663 | */ | ||
2664 | #define REISERFS_STANDARD_BLKSIZE (4096) | ||
2665 | |||
2666 | static int check_advise_trans_params(struct super_block *p_s_sb, | ||
2667 | struct reiserfs_journal *journal) | ||
2668 | { | ||
2669 | if (journal->j_trans_max) { | ||
2670 | /* Non-default journal params. | ||
2671 | Do sanity check for them. */ | ||
2672 | int ratio = 1; | ||
2673 | if (p_s_sb->s_blocksize < REISERFS_STANDARD_BLKSIZE) | ||
2674 | ratio = REISERFS_STANDARD_BLKSIZE / p_s_sb->s_blocksize; | ||
2675 | |||
2676 | if (journal->j_trans_max > JOURNAL_TRANS_MAX_DEFAULT / ratio || | ||
2677 | journal->j_trans_max < JOURNAL_TRANS_MIN_DEFAULT / ratio || | ||
2678 | SB_ONDISK_JOURNAL_SIZE(p_s_sb) / journal->j_trans_max < | ||
2679 | JOURNAL_MIN_RATIO) { | ||
2680 | reiserfs_warning(p_s_sb, | ||
2681 | "sh-462: bad transaction max size (%u). FSCK?", | ||
2682 | journal->j_trans_max); | ||
2683 | return 1; | ||
2684 | } | ||
2685 | if (journal->j_max_batch != (journal->j_trans_max) * | ||
2686 | JOURNAL_MAX_BATCH_DEFAULT/JOURNAL_TRANS_MAX_DEFAULT) { | ||
2687 | reiserfs_warning(p_s_sb, | ||
2688 | "sh-463: bad transaction max batch (%u). FSCK?", | ||
2689 | journal->j_max_batch); | ||
2690 | return 1; | ||
2691 | } | ||
2692 | } else { | ||
2693 | /* Default journal params. | ||
2694 | The file system was created by old version | ||
2695 | of mkreiserfs, so some fields contain zeros, | ||
2696 | and we need to advise proper values for them */ | ||
2697 | if (p_s_sb->s_blocksize != REISERFS_STANDARD_BLKSIZE) | ||
2698 | reiserfs_panic(p_s_sb, "sh-464: bad blocksize (%u)", | ||
2699 | p_s_sb->s_blocksize); | ||
2700 | journal->j_trans_max = JOURNAL_TRANS_MAX_DEFAULT; | ||
2701 | journal->j_max_batch = JOURNAL_MAX_BATCH_DEFAULT; | ||
2702 | journal->j_max_commit_age = JOURNAL_MAX_COMMIT_AGE; | ||
2703 | } | ||
2704 | return 0; | ||
2705 | } | ||
2706 | |||
2624 | /* | 2707 | /* |
2625 | ** must be called once on fs mount. calls journal_read for you | 2708 | ** must be called once on fs mount. calls journal_read for you |
2626 | */ | 2709 | */ |
@@ -2716,49 +2799,8 @@ int journal_init(struct super_block *p_s_sb, const char *j_dev_name, | |||
2716 | le32_to_cpu(jh->jh_journal.jp_journal_max_commit_age); | 2799 | le32_to_cpu(jh->jh_journal.jp_journal_max_commit_age); |
2717 | journal->j_max_trans_age = JOURNAL_MAX_TRANS_AGE; | 2800 | journal->j_max_trans_age = JOURNAL_MAX_TRANS_AGE; |
2718 | 2801 | ||
2719 | if (journal->j_trans_max) { | 2802 | if (check_advise_trans_params(p_s_sb, journal) != 0) |
2720 | /* make sure these parameters are available, assign it if they are not */ | 2803 | goto free_and_return; |
2721 | __u32 initial = journal->j_trans_max; | ||
2722 | __u32 ratio = 1; | ||
2723 | |||
2724 | if (p_s_sb->s_blocksize < 4096) | ||
2725 | ratio = 4096 / p_s_sb->s_blocksize; | ||
2726 | |||
2727 | if (SB_ONDISK_JOURNAL_SIZE(p_s_sb) / journal->j_trans_max < | ||
2728 | JOURNAL_MIN_RATIO) | ||
2729 | journal->j_trans_max = | ||
2730 | SB_ONDISK_JOURNAL_SIZE(p_s_sb) / JOURNAL_MIN_RATIO; | ||
2731 | if (journal->j_trans_max > JOURNAL_TRANS_MAX_DEFAULT / ratio) | ||
2732 | journal->j_trans_max = | ||
2733 | JOURNAL_TRANS_MAX_DEFAULT / ratio; | ||
2734 | if (journal->j_trans_max < JOURNAL_TRANS_MIN_DEFAULT / ratio) | ||
2735 | journal->j_trans_max = | ||
2736 | JOURNAL_TRANS_MIN_DEFAULT / ratio; | ||
2737 | |||
2738 | if (journal->j_trans_max != initial) | ||
2739 | reiserfs_warning(p_s_sb, | ||
2740 | "sh-461: journal_init: wrong transaction max size (%u). Changed to %u", | ||
2741 | initial, journal->j_trans_max); | ||
2742 | |||
2743 | journal->j_max_batch = journal->j_trans_max * | ||
2744 | JOURNAL_MAX_BATCH_DEFAULT / JOURNAL_TRANS_MAX_DEFAULT; | ||
2745 | } | ||
2746 | |||
2747 | if (!journal->j_trans_max) { | ||
2748 | /*we have the file system was created by old version of mkreiserfs | ||
2749 | so this field contains zero value */ | ||
2750 | journal->j_trans_max = JOURNAL_TRANS_MAX_DEFAULT; | ||
2751 | journal->j_max_batch = JOURNAL_MAX_BATCH_DEFAULT; | ||
2752 | journal->j_max_commit_age = JOURNAL_MAX_COMMIT_AGE; | ||
2753 | |||
2754 | /* for blocksize >= 4096 - max transaction size is 1024. For block size < 4096 | ||
2755 | trans max size is decreased proportionally */ | ||
2756 | if (p_s_sb->s_blocksize < 4096) { | ||
2757 | journal->j_trans_max /= (4096 / p_s_sb->s_blocksize); | ||
2758 | journal->j_max_batch = (journal->j_trans_max) * 9 / 10; | ||
2759 | } | ||
2760 | } | ||
2761 | |||
2762 | journal->j_default_max_commit_age = journal->j_max_commit_age; | 2804 | journal->j_default_max_commit_age = journal->j_max_commit_age; |
2763 | 2805 | ||
2764 | if (commit_max_age != 0) { | 2806 | if (commit_max_age != 0) { |
@@ -3708,13 +3750,8 @@ int journal_mark_freed(struct reiserfs_transaction_handle *th, | |||
3708 | } | 3750 | } |
3709 | } | 3751 | } |
3710 | 3752 | ||
3711 | if (bh) { | 3753 | if (bh) |
3712 | put_bh(bh); /* get_hash grabs the buffer */ | 3754 | release_buffer_page(bh); /* get_hash grabs the buffer */ |
3713 | if (atomic_read(&(bh->b_count)) < 0) { | ||
3714 | reiserfs_warning(p_s_sb, | ||
3715 | "journal-2165: bh->b_count < 0"); | ||
3716 | } | ||
3717 | } | ||
3718 | return 0; | 3755 | return 0; |
3719 | } | 3756 | } |
3720 | 3757 | ||
diff --git a/fs/reiserfs/super.c b/fs/reiserfs/super.c index a005451930b7..b82897ae090b 100644 --- a/fs/reiserfs/super.c +++ b/fs/reiserfs/super.c | |||
@@ -145,7 +145,7 @@ static int finish_unfinished(struct super_block *s) | |||
145 | { | 145 | { |
146 | INITIALIZE_PATH(path); | 146 | INITIALIZE_PATH(path); |
147 | struct cpu_key max_cpu_key, obj_key; | 147 | struct cpu_key max_cpu_key, obj_key; |
148 | struct reiserfs_key save_link_key; | 148 | struct reiserfs_key save_link_key, last_inode_key; |
149 | int retval = 0; | 149 | int retval = 0; |
150 | struct item_head *ih; | 150 | struct item_head *ih; |
151 | struct buffer_head *bh; | 151 | struct buffer_head *bh; |
@@ -166,6 +166,8 @@ static int finish_unfinished(struct super_block *s) | |||
166 | set_cpu_key_k_offset(&max_cpu_key, ~0U); | 166 | set_cpu_key_k_offset(&max_cpu_key, ~0U); |
167 | max_cpu_key.key_length = 3; | 167 | max_cpu_key.key_length = 3; |
168 | 168 | ||
169 | memset(&last_inode_key, 0, sizeof(last_inode_key)); | ||
170 | |||
169 | #ifdef CONFIG_QUOTA | 171 | #ifdef CONFIG_QUOTA |
170 | /* Needed for iput() to work correctly and not trash data */ | 172 | /* Needed for iput() to work correctly and not trash data */ |
171 | if (s->s_flags & MS_ACTIVE) { | 173 | if (s->s_flags & MS_ACTIVE) { |
@@ -278,8 +280,18 @@ static int finish_unfinished(struct super_block *s) | |||
278 | REISERFS_I(inode)->i_flags |= i_link_saved_unlink_mask; | 280 | REISERFS_I(inode)->i_flags |= i_link_saved_unlink_mask; |
279 | /* not completed unlink (rmdir) found */ | 281 | /* not completed unlink (rmdir) found */ |
280 | reiserfs_info(s, "Removing %k..", INODE_PKEY(inode)); | 282 | reiserfs_info(s, "Removing %k..", INODE_PKEY(inode)); |
281 | /* removal gets completed in iput */ | 283 | if (memcmp(&last_inode_key, INODE_PKEY(inode), |
282 | retval = 0; | 284 | sizeof(last_inode_key))){ |
285 | last_inode_key = *INODE_PKEY(inode); | ||
286 | /* removal gets completed in iput */ | ||
287 | retval = 0; | ||
288 | } else { | ||
289 | reiserfs_warning(s, "Dead loop in " | ||
290 | "finish_unfinished detected, " | ||
291 | "just remove save link\n"); | ||
292 | retval = remove_save_link_only(s, | ||
293 | &save_link_key, 0); | ||
294 | } | ||
283 | } | 295 | } |
284 | 296 | ||
285 | iput(inode); | 297 | iput(inode); |
@@ -508,7 +520,7 @@ static void reiserfs_destroy_inode(struct inode *inode) | |||
508 | kmem_cache_free(reiserfs_inode_cachep, REISERFS_I(inode)); | 520 | kmem_cache_free(reiserfs_inode_cachep, REISERFS_I(inode)); |
509 | } | 521 | } |
510 | 522 | ||
511 | static void init_once(void *foo, struct kmem_cache * cachep, unsigned long flags) | 523 | static void init_once(struct kmem_cache * cachep, void *foo) |
512 | { | 524 | { |
513 | struct reiserfs_inode_info *ei = (struct reiserfs_inode_info *)foo; | 525 | struct reiserfs_inode_info *ei = (struct reiserfs_inode_info *)foo; |
514 | 526 | ||
diff --git a/fs/romfs/inode.c b/fs/romfs/inode.c index dae7945f90e4..a49cf5b9a195 100644 --- a/fs/romfs/inode.c +++ b/fs/romfs/inode.c | |||
@@ -92,7 +92,7 @@ static inline unsigned long romfs_maxsize(struct super_block *sb) | |||
92 | 92 | ||
93 | static inline struct romfs_inode_info *ROMFS_I(struct inode *inode) | 93 | static inline struct romfs_inode_info *ROMFS_I(struct inode *inode) |
94 | { | 94 | { |
95 | return list_entry(inode, struct romfs_inode_info, vfs_inode); | 95 | return container_of(inode, struct romfs_inode_info, vfs_inode); |
96 | } | 96 | } |
97 | 97 | ||
98 | static __u32 | 98 | static __u32 |
@@ -555,7 +555,7 @@ static struct kmem_cache * romfs_inode_cachep; | |||
555 | static struct inode *romfs_alloc_inode(struct super_block *sb) | 555 | static struct inode *romfs_alloc_inode(struct super_block *sb) |
556 | { | 556 | { |
557 | struct romfs_inode_info *ei; | 557 | struct romfs_inode_info *ei; |
558 | ei = (struct romfs_inode_info *)kmem_cache_alloc(romfs_inode_cachep, GFP_KERNEL); | 558 | ei = kmem_cache_alloc(romfs_inode_cachep, GFP_KERNEL); |
559 | if (!ei) | 559 | if (!ei) |
560 | return NULL; | 560 | return NULL; |
561 | return &ei->vfs_inode; | 561 | return &ei->vfs_inode; |
@@ -566,7 +566,7 @@ static void romfs_destroy_inode(struct inode *inode) | |||
566 | kmem_cache_free(romfs_inode_cachep, ROMFS_I(inode)); | 566 | kmem_cache_free(romfs_inode_cachep, ROMFS_I(inode)); |
567 | } | 567 | } |
568 | 568 | ||
569 | static void init_once(void *foo, struct kmem_cache *cachep, unsigned long flags) | 569 | static void init_once(struct kmem_cache *cachep, void *foo) |
570 | { | 570 | { |
571 | struct romfs_inode_info *ei = foo; | 571 | struct romfs_inode_info *ei = foo; |
572 | 572 | ||
diff --git a/fs/select.c b/fs/select.c index 46dca31c607a..7dede89658f5 100644 --- a/fs/select.c +++ b/fs/select.c | |||
@@ -586,7 +586,7 @@ static int do_poll(unsigned int nfds, struct poll_list *list, | |||
586 | /* Optimise the no-wait case */ | 586 | /* Optimise the no-wait case */ |
587 | if (!(*timeout)) | 587 | if (!(*timeout)) |
588 | pt = NULL; | 588 | pt = NULL; |
589 | 589 | ||
590 | for (;;) { | 590 | for (;;) { |
591 | struct poll_list *walk; | 591 | struct poll_list *walk; |
592 | long __timeout; | 592 | long __timeout; |
@@ -616,10 +616,12 @@ static int do_poll(unsigned int nfds, struct poll_list *list, | |||
616 | * a poll_table to them on the next loop iteration. | 616 | * a poll_table to them on the next loop iteration. |
617 | */ | 617 | */ |
618 | pt = NULL; | 618 | pt = NULL; |
619 | if (count || !*timeout || signal_pending(current)) | 619 | if (!count) { |
620 | break; | 620 | count = wait->error; |
621 | count = wait->error; | 621 | if (signal_pending(current)) |
622 | if (count) | 622 | count = -EINTR; |
623 | } | ||
624 | if (count || !*timeout) | ||
623 | break; | 625 | break; |
624 | 626 | ||
625 | if (*timeout < 0) { | 627 | if (*timeout < 0) { |
@@ -651,93 +653,89 @@ static int do_poll(unsigned int nfds, struct poll_list *list, | |||
651 | int do_sys_poll(struct pollfd __user *ufds, unsigned int nfds, s64 *timeout) | 653 | int do_sys_poll(struct pollfd __user *ufds, unsigned int nfds, s64 *timeout) |
652 | { | 654 | { |
653 | struct poll_wqueues table; | 655 | struct poll_wqueues table; |
654 | int fdcount, err; | 656 | int err = -EFAULT, fdcount, len, size; |
655 | unsigned int i; | ||
656 | struct poll_list *head; | ||
657 | struct poll_list *walk; | ||
658 | /* Allocate small arguments on the stack to save memory and be | 657 | /* Allocate small arguments on the stack to save memory and be |
659 | faster - use long to make sure the buffer is aligned properly | 658 | faster - use long to make sure the buffer is aligned properly |
660 | on 64 bit archs to avoid unaligned access */ | 659 | on 64 bit archs to avoid unaligned access */ |
661 | long stack_pps[POLL_STACK_ALLOC/sizeof(long)]; | 660 | long stack_pps[POLL_STACK_ALLOC/sizeof(long)]; |
662 | struct poll_list *stack_pp = NULL; | 661 | struct poll_list *const head = (struct poll_list *)stack_pps; |
662 | struct poll_list *walk = head; | ||
663 | unsigned long todo = nfds; | ||
663 | 664 | ||
664 | /* Do a sanity check on nfds ... */ | ||
665 | if (nfds > current->signal->rlim[RLIMIT_NOFILE].rlim_cur) | 665 | if (nfds > current->signal->rlim[RLIMIT_NOFILE].rlim_cur) |
666 | return -EINVAL; | 666 | return -EINVAL; |
667 | 667 | ||
668 | poll_initwait(&table); | 668 | len = min_t(unsigned int, nfds, N_STACK_PPS); |
669 | for (;;) { | ||
670 | walk->next = NULL; | ||
671 | walk->len = len; | ||
672 | if (!len) | ||
673 | break; | ||
669 | 674 | ||
670 | head = NULL; | 675 | if (copy_from_user(walk->entries, ufds + nfds-todo, |
671 | walk = NULL; | 676 | sizeof(struct pollfd) * walk->len)) |
672 | i = nfds; | 677 | goto out_fds; |
673 | err = -ENOMEM; | 678 | |
674 | while(i!=0) { | 679 | todo -= walk->len; |
675 | struct poll_list *pp; | 680 | if (!todo) |
676 | int num, size; | 681 | break; |
677 | if (stack_pp == NULL) | ||
678 | num = N_STACK_PPS; | ||
679 | else | ||
680 | num = POLLFD_PER_PAGE; | ||
681 | if (num > i) | ||
682 | num = i; | ||
683 | size = sizeof(struct poll_list) + sizeof(struct pollfd)*num; | ||
684 | if (!stack_pp) | ||
685 | stack_pp = pp = (struct poll_list *)stack_pps; | ||
686 | else { | ||
687 | pp = kmalloc(size, GFP_KERNEL); | ||
688 | if (!pp) | ||
689 | goto out_fds; | ||
690 | } | ||
691 | pp->next=NULL; | ||
692 | pp->len = num; | ||
693 | if (head == NULL) | ||
694 | head = pp; | ||
695 | else | ||
696 | walk->next = pp; | ||
697 | 682 | ||
698 | walk = pp; | 683 | len = min(todo, POLLFD_PER_PAGE); |
699 | if (copy_from_user(pp->entries, ufds + nfds-i, | 684 | size = sizeof(struct poll_list) + sizeof(struct pollfd) * len; |
700 | sizeof(struct pollfd)*num)) { | 685 | walk = walk->next = kmalloc(size, GFP_KERNEL); |
701 | err = -EFAULT; | 686 | if (!walk) { |
687 | err = -ENOMEM; | ||
702 | goto out_fds; | 688 | goto out_fds; |
703 | } | 689 | } |
704 | i -= pp->len; | ||
705 | } | 690 | } |
706 | 691 | ||
692 | poll_initwait(&table); | ||
707 | fdcount = do_poll(nfds, head, &table, timeout); | 693 | fdcount = do_poll(nfds, head, &table, timeout); |
694 | poll_freewait(&table); | ||
708 | 695 | ||
709 | /* OK, now copy the revents fields back to user space. */ | 696 | for (walk = head; walk; walk = walk->next) { |
710 | walk = head; | ||
711 | err = -EFAULT; | ||
712 | while(walk != NULL) { | ||
713 | struct pollfd *fds = walk->entries; | 697 | struct pollfd *fds = walk->entries; |
714 | int j; | 698 | int j; |
715 | 699 | ||
716 | for (j=0; j < walk->len; j++, ufds++) { | 700 | for (j = 0; j < walk->len; j++, ufds++) |
717 | if(__put_user(fds[j].revents, &ufds->revents)) | 701 | if (__put_user(fds[j].revents, &ufds->revents)) |
718 | goto out_fds; | 702 | goto out_fds; |
719 | } | ||
720 | walk = walk->next; | ||
721 | } | 703 | } |
704 | |||
722 | err = fdcount; | 705 | err = fdcount; |
723 | if (!fdcount && signal_pending(current)) | ||
724 | err = -EINTR; | ||
725 | out_fds: | 706 | out_fds: |
726 | walk = head; | 707 | walk = head->next; |
727 | while(walk!=NULL) { | 708 | while (walk) { |
728 | struct poll_list *pp = walk->next; | 709 | struct poll_list *pos = walk; |
729 | if (walk != stack_pp) | 710 | walk = walk->next; |
730 | kfree(walk); | 711 | kfree(pos); |
731 | walk = pp; | ||
732 | } | 712 | } |
733 | poll_freewait(&table); | 713 | |
734 | return err; | 714 | return err; |
735 | } | 715 | } |
736 | 716 | ||
717 | static long do_restart_poll(struct restart_block *restart_block) | ||
718 | { | ||
719 | struct pollfd __user *ufds = (struct pollfd __user*)restart_block->arg0; | ||
720 | int nfds = restart_block->arg1; | ||
721 | s64 timeout = ((s64)restart_block->arg3<<32) | (s64)restart_block->arg2; | ||
722 | int ret; | ||
723 | |||
724 | ret = do_sys_poll(ufds, nfds, &timeout); | ||
725 | if (ret == -EINTR) { | ||
726 | restart_block->fn = do_restart_poll; | ||
727 | restart_block->arg2 = timeout & 0xFFFFFFFF; | ||
728 | restart_block->arg3 = (u64)timeout >> 32; | ||
729 | ret = -ERESTART_RESTARTBLOCK; | ||
730 | } | ||
731 | return ret; | ||
732 | } | ||
733 | |||
737 | asmlinkage long sys_poll(struct pollfd __user *ufds, unsigned int nfds, | 734 | asmlinkage long sys_poll(struct pollfd __user *ufds, unsigned int nfds, |
738 | long timeout_msecs) | 735 | long timeout_msecs) |
739 | { | 736 | { |
740 | s64 timeout_jiffies; | 737 | s64 timeout_jiffies; |
738 | int ret; | ||
741 | 739 | ||
742 | if (timeout_msecs > 0) { | 740 | if (timeout_msecs > 0) { |
743 | #if HZ > 1000 | 741 | #if HZ > 1000 |
@@ -752,7 +750,18 @@ asmlinkage long sys_poll(struct pollfd __user *ufds, unsigned int nfds, | |||
752 | timeout_jiffies = timeout_msecs; | 750 | timeout_jiffies = timeout_msecs; |
753 | } | 751 | } |
754 | 752 | ||
755 | return do_sys_poll(ufds, nfds, &timeout_jiffies); | 753 | ret = do_sys_poll(ufds, nfds, &timeout_jiffies); |
754 | if (ret == -EINTR) { | ||
755 | struct restart_block *restart_block; | ||
756 | restart_block = ¤t_thread_info()->restart_block; | ||
757 | restart_block->fn = do_restart_poll; | ||
758 | restart_block->arg0 = (unsigned long)ufds; | ||
759 | restart_block->arg1 = nfds; | ||
760 | restart_block->arg2 = timeout_jiffies & 0xFFFFFFFF; | ||
761 | restart_block->arg3 = (u64)timeout_jiffies >> 32; | ||
762 | ret = -ERESTART_RESTARTBLOCK; | ||
763 | } | ||
764 | return ret; | ||
756 | } | 765 | } |
757 | 766 | ||
758 | #ifdef TIF_RESTORE_SIGMASK | 767 | #ifdef TIF_RESTORE_SIGMASK |
diff --git a/fs/signalfd.c b/fs/signalfd.c index aefb0be07942..fb7f7e8034df 100644 --- a/fs/signalfd.c +++ b/fs/signalfd.c | |||
@@ -74,45 +74,45 @@ static int signalfd_copyinfo(struct signalfd_siginfo __user *uinfo, | |||
74 | * If you change siginfo_t structure, please be sure | 74 | * If you change siginfo_t structure, please be sure |
75 | * this code is fixed accordingly. | 75 | * this code is fixed accordingly. |
76 | */ | 76 | */ |
77 | err |= __put_user(kinfo->si_signo, &uinfo->signo); | 77 | err |= __put_user(kinfo->si_signo, &uinfo->ssi_signo); |
78 | err |= __put_user(kinfo->si_errno, &uinfo->err); | 78 | err |= __put_user(kinfo->si_errno, &uinfo->ssi_errno); |
79 | err |= __put_user((short)kinfo->si_code, &uinfo->code); | 79 | err |= __put_user((short) kinfo->si_code, &uinfo->ssi_code); |
80 | switch (kinfo->si_code & __SI_MASK) { | 80 | switch (kinfo->si_code & __SI_MASK) { |
81 | case __SI_KILL: | 81 | case __SI_KILL: |
82 | err |= __put_user(kinfo->si_pid, &uinfo->pid); | 82 | err |= __put_user(kinfo->si_pid, &uinfo->ssi_pid); |
83 | err |= __put_user(kinfo->si_uid, &uinfo->uid); | 83 | err |= __put_user(kinfo->si_uid, &uinfo->ssi_uid); |
84 | break; | 84 | break; |
85 | case __SI_TIMER: | 85 | case __SI_TIMER: |
86 | err |= __put_user(kinfo->si_tid, &uinfo->tid); | 86 | err |= __put_user(kinfo->si_tid, &uinfo->ssi_tid); |
87 | err |= __put_user(kinfo->si_overrun, &uinfo->overrun); | 87 | err |= __put_user(kinfo->si_overrun, &uinfo->ssi_overrun); |
88 | err |= __put_user((long)kinfo->si_ptr, &uinfo->svptr); | 88 | err |= __put_user((long) kinfo->si_ptr, &uinfo->ssi_ptr); |
89 | break; | 89 | break; |
90 | case __SI_POLL: | 90 | case __SI_POLL: |
91 | err |= __put_user(kinfo->si_band, &uinfo->band); | 91 | err |= __put_user(kinfo->si_band, &uinfo->ssi_band); |
92 | err |= __put_user(kinfo->si_fd, &uinfo->fd); | 92 | err |= __put_user(kinfo->si_fd, &uinfo->ssi_fd); |
93 | break; | 93 | break; |
94 | case __SI_FAULT: | 94 | case __SI_FAULT: |
95 | err |= __put_user((long)kinfo->si_addr, &uinfo->addr); | 95 | err |= __put_user((long) kinfo->si_addr, &uinfo->ssi_addr); |
96 | #ifdef __ARCH_SI_TRAPNO | 96 | #ifdef __ARCH_SI_TRAPNO |
97 | err |= __put_user(kinfo->si_trapno, &uinfo->trapno); | 97 | err |= __put_user(kinfo->si_trapno, &uinfo->ssi_trapno); |
98 | #endif | 98 | #endif |
99 | break; | 99 | break; |
100 | case __SI_CHLD: | 100 | case __SI_CHLD: |
101 | err |= __put_user(kinfo->si_pid, &uinfo->pid); | 101 | err |= __put_user(kinfo->si_pid, &uinfo->ssi_pid); |
102 | err |= __put_user(kinfo->si_uid, &uinfo->uid); | 102 | err |= __put_user(kinfo->si_uid, &uinfo->ssi_uid); |
103 | err |= __put_user(kinfo->si_status, &uinfo->status); | 103 | err |= __put_user(kinfo->si_status, &uinfo->ssi_status); |
104 | err |= __put_user(kinfo->si_utime, &uinfo->utime); | 104 | err |= __put_user(kinfo->si_utime, &uinfo->ssi_utime); |
105 | err |= __put_user(kinfo->si_stime, &uinfo->stime); | 105 | err |= __put_user(kinfo->si_stime, &uinfo->ssi_stime); |
106 | break; | 106 | break; |
107 | case __SI_RT: /* This is not generated by the kernel as of now. */ | 107 | case __SI_RT: /* This is not generated by the kernel as of now. */ |
108 | case __SI_MESGQ: /* But this is */ | 108 | case __SI_MESGQ: /* But this is */ |
109 | err |= __put_user(kinfo->si_pid, &uinfo->pid); | 109 | err |= __put_user(kinfo->si_pid, &uinfo->ssi_pid); |
110 | err |= __put_user(kinfo->si_uid, &uinfo->uid); | 110 | err |= __put_user(kinfo->si_uid, &uinfo->ssi_uid); |
111 | err |= __put_user((long)kinfo->si_ptr, &uinfo->svptr); | 111 | err |= __put_user((long) kinfo->si_ptr, &uinfo->ssi_ptr); |
112 | break; | 112 | break; |
113 | default: /* this is just in case for now ... */ | 113 | default: /* this is just in case for now ... */ |
114 | err |= __put_user(kinfo->si_pid, &uinfo->pid); | 114 | err |= __put_user(kinfo->si_pid, &uinfo->ssi_pid); |
115 | err |= __put_user(kinfo->si_uid, &uinfo->uid); | 115 | err |= __put_user(kinfo->si_uid, &uinfo->ssi_uid); |
116 | break; | 116 | break; |
117 | } | 117 | } |
118 | 118 | ||
diff --git a/fs/smbfs/inode.c b/fs/smbfs/inode.c index 73d1450a95d4..ab517755ece0 100644 --- a/fs/smbfs/inode.c +++ b/fs/smbfs/inode.c | |||
@@ -67,7 +67,7 @@ static void smb_destroy_inode(struct inode *inode) | |||
67 | kmem_cache_free(smb_inode_cachep, SMB_I(inode)); | 67 | kmem_cache_free(smb_inode_cachep, SMB_I(inode)); |
68 | } | 68 | } |
69 | 69 | ||
70 | static void init_once(void * foo, struct kmem_cache * cachep, unsigned long flags) | 70 | static void init_once(struct kmem_cache *cachep, void *foo) |
71 | { | 71 | { |
72 | struct smb_inode_info *ei = (struct smb_inode_info *) foo; | 72 | struct smb_inode_info *ei = (struct smb_inode_info *) foo; |
73 | 73 | ||
diff --git a/fs/splice.c b/fs/splice.c index 59a941d404d9..6bdcb6107bc3 100644 --- a/fs/splice.c +++ b/fs/splice.c | |||
@@ -824,13 +824,18 @@ generic_file_splice_write(struct pipe_inode_info *pipe, struct file *out, | |||
824 | { | 824 | { |
825 | struct address_space *mapping = out->f_mapping; | 825 | struct address_space *mapping = out->f_mapping; |
826 | struct inode *inode = mapping->host; | 826 | struct inode *inode = mapping->host; |
827 | int killsuid, killpriv; | ||
827 | ssize_t ret; | 828 | ssize_t ret; |
828 | int err; | 829 | int err = 0; |
829 | 830 | ||
830 | err = should_remove_suid(out->f_path.dentry); | 831 | killpriv = security_inode_need_killpriv(out->f_path.dentry); |
831 | if (unlikely(err)) { | 832 | killsuid = should_remove_suid(out->f_path.dentry); |
833 | if (unlikely(killsuid || killpriv)) { | ||
832 | mutex_lock(&inode->i_mutex); | 834 | mutex_lock(&inode->i_mutex); |
833 | err = __remove_suid(out->f_path.dentry, err); | 835 | if (killpriv) |
836 | err = security_inode_killpriv(out->f_path.dentry); | ||
837 | if (!err && killsuid) | ||
838 | err = __remove_suid(out->f_path.dentry, killsuid); | ||
834 | mutex_unlock(&inode->i_mutex); | 839 | mutex_unlock(&inode->i_mutex); |
835 | if (err) | 840 | if (err) |
836 | return err; | 841 | return err; |
diff --git a/fs/super.c b/fs/super.c index fc8ebedc6bed..1bfcca2104be 100644 --- a/fs/super.c +++ b/fs/super.c | |||
@@ -67,6 +67,7 @@ static struct super_block *alloc_super(struct file_system_type *type) | |||
67 | } | 67 | } |
68 | INIT_LIST_HEAD(&s->s_dirty); | 68 | INIT_LIST_HEAD(&s->s_dirty); |
69 | INIT_LIST_HEAD(&s->s_io); | 69 | INIT_LIST_HEAD(&s->s_io); |
70 | INIT_LIST_HEAD(&s->s_more_io); | ||
70 | INIT_LIST_HEAD(&s->s_files); | 71 | INIT_LIST_HEAD(&s->s_files); |
71 | INIT_LIST_HEAD(&s->s_instances); | 72 | INIT_LIST_HEAD(&s->s_instances); |
72 | INIT_HLIST_HEAD(&s->s_anon); | 73 | INIT_HLIST_HEAD(&s->s_anon); |
diff --git a/fs/sysfs/dir.c b/fs/sysfs/dir.c index 9161db4d6b5c..7a8ce9e98b32 100644 --- a/fs/sysfs/dir.c +++ b/fs/sysfs/dir.c | |||
@@ -24,9 +24,9 @@ | |||
24 | 24 | ||
25 | DEFINE_MUTEX(sysfs_mutex); | 25 | DEFINE_MUTEX(sysfs_mutex); |
26 | DEFINE_MUTEX(sysfs_rename_mutex); | 26 | DEFINE_MUTEX(sysfs_rename_mutex); |
27 | spinlock_t sysfs_assoc_lock = SPIN_LOCK_UNLOCKED; | 27 | DEFINE_SPINLOCK(sysfs_assoc_lock); |
28 | 28 | ||
29 | static spinlock_t sysfs_ino_lock = SPIN_LOCK_UNLOCKED; | 29 | static DEFINE_SPINLOCK(sysfs_ino_lock); |
30 | static DEFINE_IDA(sysfs_ino_ida); | 30 | static DEFINE_IDA(sysfs_ino_ida); |
31 | 31 | ||
32 | /** | 32 | /** |
@@ -112,8 +112,7 @@ struct dentry *sysfs_get_dentry(struct sysfs_dirent *sd) | |||
112 | /* look it up */ | 112 | /* look it up */ |
113 | parent = dentry; | 113 | parent = dentry; |
114 | mutex_lock(&parent->d_inode->i_mutex); | 114 | mutex_lock(&parent->d_inode->i_mutex); |
115 | dentry = lookup_one_len_kern(cur->s_name, parent, | 115 | dentry = lookup_one_noperm(cur->s_name, parent); |
116 | strlen(cur->s_name)); | ||
117 | mutex_unlock(&parent->d_inode->i_mutex); | 116 | mutex_unlock(&parent->d_inode->i_mutex); |
118 | dput(parent); | 117 | dput(parent); |
119 | 118 | ||
diff --git a/fs/sysfs/inode.c b/fs/sysfs/inode.c index c4ef945d39c8..d9262f74f94e 100644 --- a/fs/sysfs/inode.c +++ b/fs/sysfs/inode.c | |||
@@ -37,6 +37,11 @@ static const struct inode_operations sysfs_inode_operations ={ | |||
37 | .setattr = sysfs_setattr, | 37 | .setattr = sysfs_setattr, |
38 | }; | 38 | }; |
39 | 39 | ||
40 | int __init sysfs_inode_init(void) | ||
41 | { | ||
42 | return bdi_init(&sysfs_backing_dev_info); | ||
43 | } | ||
44 | |||
40 | int sysfs_setattr(struct dentry * dentry, struct iattr * iattr) | 45 | int sysfs_setattr(struct dentry * dentry, struct iattr * iattr) |
41 | { | 46 | { |
42 | struct inode * inode = dentry->d_inode; | 47 | struct inode * inode = dentry->d_inode; |
diff --git a/fs/sysfs/mount.c b/fs/sysfs/mount.c index c76c540be3c8..74168266cd59 100644 --- a/fs/sysfs/mount.c +++ b/fs/sysfs/mount.c | |||
@@ -92,6 +92,10 @@ int __init sysfs_init(void) | |||
92 | if (!sysfs_dir_cachep) | 92 | if (!sysfs_dir_cachep) |
93 | goto out; | 93 | goto out; |
94 | 94 | ||
95 | err = sysfs_inode_init(); | ||
96 | if (err) | ||
97 | goto out_err; | ||
98 | |||
95 | err = register_filesystem(&sysfs_fs_type); | 99 | err = register_filesystem(&sysfs_fs_type); |
96 | if (!err) { | 100 | if (!err) { |
97 | sysfs_mount = kern_mount(&sysfs_fs_type); | 101 | sysfs_mount = kern_mount(&sysfs_fs_type); |
diff --git a/fs/sysfs/sysfs.h b/fs/sysfs/sysfs.h index f0326f281d1c..f8417988f6b0 100644 --- a/fs/sysfs/sysfs.h +++ b/fs/sysfs/sysfs.h | |||
@@ -146,6 +146,7 @@ static inline void sysfs_put(struct sysfs_dirent *sd) | |||
146 | struct inode *sysfs_get_inode(struct sysfs_dirent *sd); | 146 | struct inode *sysfs_get_inode(struct sysfs_dirent *sd); |
147 | int sysfs_setattr(struct dentry *dentry, struct iattr *iattr); | 147 | int sysfs_setattr(struct dentry *dentry, struct iattr *iattr); |
148 | int sysfs_hash_and_remove(struct sysfs_dirent *dir_sd, const char *name); | 148 | int sysfs_hash_and_remove(struct sysfs_dirent *dir_sd, const char *name); |
149 | int sysfs_inode_init(void); | ||
149 | 150 | ||
150 | /* | 151 | /* |
151 | * file.c | 152 | * file.c |
diff --git a/fs/sysv/inode.c b/fs/sysv/inode.c index 7c4e5d302abb..81ec6c548c07 100644 --- a/fs/sysv/inode.c +++ b/fs/sysv/inode.c | |||
@@ -318,7 +318,7 @@ static void sysv_destroy_inode(struct inode *inode) | |||
318 | kmem_cache_free(sysv_inode_cachep, SYSV_I(inode)); | 318 | kmem_cache_free(sysv_inode_cachep, SYSV_I(inode)); |
319 | } | 319 | } |
320 | 320 | ||
321 | static void init_once(void *p, struct kmem_cache *cachep, unsigned long flags) | 321 | static void init_once(struct kmem_cache *cachep, void *p) |
322 | { | 322 | { |
323 | struct sysv_inode_info *si = (struct sysv_inode_info *)p; | 323 | struct sysv_inode_info *si = (struct sysv_inode_info *)p; |
324 | 324 | ||
diff --git a/fs/udf/balloc.c b/fs/udf/balloc.c index 87e87dcd3f9c..ab26176f6b91 100644 --- a/fs/udf/balloc.c +++ b/fs/udf/balloc.c | |||
@@ -689,7 +689,7 @@ static int udf_table_new_block(struct super_block *sb, | |||
689 | uint32_t spread = 0xFFFFFFFF, nspread = 0xFFFFFFFF; | 689 | uint32_t spread = 0xFFFFFFFF, nspread = 0xFFFFFFFF; |
690 | uint32_t newblock = 0, adsize; | 690 | uint32_t newblock = 0, adsize; |
691 | uint32_t elen, goal_elen = 0; | 691 | uint32_t elen, goal_elen = 0; |
692 | kernel_lb_addr eloc, goal_eloc; | 692 | kernel_lb_addr eloc, uninitialized_var(goal_eloc); |
693 | struct extent_position epos, goal_epos; | 693 | struct extent_position epos, goal_epos; |
694 | int8_t etype; | 694 | int8_t etype; |
695 | 695 | ||
diff --git a/fs/udf/super.c b/fs/udf/super.c index c68a6e730b97..4360c7a05743 100644 --- a/fs/udf/super.c +++ b/fs/udf/super.c | |||
@@ -134,7 +134,7 @@ static void udf_destroy_inode(struct inode *inode) | |||
134 | kmem_cache_free(udf_inode_cachep, UDF_I(inode)); | 134 | kmem_cache_free(udf_inode_cachep, UDF_I(inode)); |
135 | } | 135 | } |
136 | 136 | ||
137 | static void init_once(void *foo, struct kmem_cache *cachep, unsigned long flags) | 137 | static void init_once(struct kmem_cache *cachep, void *foo) |
138 | { | 138 | { |
139 | struct udf_inode_info *ei = (struct udf_inode_info *)foo; | 139 | struct udf_inode_info *ei = (struct udf_inode_info *)foo; |
140 | 140 | ||
@@ -913,8 +913,7 @@ static int udf_load_partdesc(struct super_block *sb, struct buffer_head *bh) | |||
913 | UDF_SB_PARTMAPS(sb)[i].s_uspace.s_table = | 913 | UDF_SB_PARTMAPS(sb)[i].s_uspace.s_table = |
914 | udf_iget(sb, loc); | 914 | udf_iget(sb, loc); |
915 | if (!UDF_SB_PARTMAPS(sb)[i].s_uspace.s_table) { | 915 | if (!UDF_SB_PARTMAPS(sb)[i].s_uspace.s_table) { |
916 | udf_debug("cannot load unallocSpaceTable (part %d)\n", | 916 | udf_debug("cannot load unallocSpaceTable (part %d)\n", i); |
917 | i); | ||
918 | return 1; | 917 | return 1; |
919 | } | 918 | } |
920 | UDF_SB_PARTFLAGS(sb,i) |= UDF_PART_FLAG_UNALLOC_TABLE; | 919 | UDF_SB_PARTFLAGS(sb,i) |= UDF_PART_FLAG_UNALLOC_TABLE; |
@@ -944,8 +943,7 @@ static int udf_load_partdesc(struct super_block *sb, struct buffer_head *bh) | |||
944 | UDF_SB_PARTMAPS(sb)[i].s_fspace.s_table = | 943 | UDF_SB_PARTMAPS(sb)[i].s_fspace.s_table = |
945 | udf_iget(sb, loc); | 944 | udf_iget(sb, loc); |
946 | if (!UDF_SB_PARTMAPS(sb)[i].s_fspace.s_table) { | 945 | if (!UDF_SB_PARTMAPS(sb)[i].s_fspace.s_table) { |
947 | udf_debug("cannot load freedSpaceTable (part %d)\n", | 946 | udf_debug("cannot load freedSpaceTable (part %d)\n", i); |
948 | i); | ||
949 | return 1; | 947 | return 1; |
950 | } | 948 | } |
951 | UDF_SB_PARTFLAGS(sb,i) |= UDF_PART_FLAG_FREED_TABLE; | 949 | UDF_SB_PARTFLAGS(sb,i) |= UDF_PART_FLAG_FREED_TABLE; |
@@ -1293,19 +1291,16 @@ static int udf_load_partition(struct super_block *sb, kernel_lb_addr *fileset) | |||
1293 | 1291 | ||
1294 | if (!UDF_SB_LASTBLOCK(sb)) { | 1292 | if (!UDF_SB_LASTBLOCK(sb)) { |
1295 | udf_debug("Unable to determine Lastblock (For " | 1293 | udf_debug("Unable to determine Lastblock (For " |
1296 | "Virtual Partition)\n"); | 1294 | "Virtual Partition)\n"); |
1297 | return 1; | 1295 | return 1; |
1298 | } | 1296 | } |
1299 | 1297 | ||
1300 | for (j = 0; j < UDF_SB_NUMPARTS(sb); j++) { | 1298 | for (j = 0; j < UDF_SB_NUMPARTS(sb); j++) { |
1301 | if (j != i && UDF_SB_PARTVSN(sb, i) == | 1299 | if (j != i && |
1302 | UDF_SB_PARTVSN(sb, j) && | 1300 | UDF_SB_PARTVSN(sb, i) == UDF_SB_PARTVSN(sb, j) && |
1303 | UDF_SB_PARTNUM(sb, i) == | 1301 | UDF_SB_PARTNUM(sb, i) == UDF_SB_PARTNUM(sb, j)) { |
1304 | UDF_SB_PARTNUM(sb, j)) { | ||
1305 | ino.partitionReferenceNum = j; | 1302 | ino.partitionReferenceNum = j; |
1306 | ino.logicalBlockNum = | 1303 | ino.logicalBlockNum = UDF_SB_LASTBLOCK(sb) - UDF_SB_PARTROOT(sb, j); |
1307 | UDF_SB_LASTBLOCK(sb) - | ||
1308 | UDF_SB_PARTROOT(sb, j); | ||
1309 | break; | 1304 | break; |
1310 | } | 1305 | } |
1311 | } | 1306 | } |
@@ -1318,9 +1313,9 @@ static int udf_load_partition(struct super_block *sb, kernel_lb_addr *fileset) | |||
1318 | 1313 | ||
1319 | if (UDF_SB_PARTTYPE(sb, i) == UDF_VIRTUAL_MAP15) { | 1314 | if (UDF_SB_PARTTYPE(sb, i) == UDF_VIRTUAL_MAP15) { |
1320 | UDF_SB_TYPEVIRT(sb, i).s_start_offset = | 1315 | UDF_SB_TYPEVIRT(sb, i).s_start_offset = |
1321 | udf_ext0_offset(UDF_SB_VAT(sb)); | 1316 | udf_ext0_offset(UDF_SB_VAT(sb)); |
1322 | UDF_SB_TYPEVIRT(sb, i).s_num_entries = | 1317 | UDF_SB_TYPEVIRT(sb, i).s_num_entries = |
1323 | (UDF_SB_VAT(sb)->i_size - 36) >> 2; | 1318 | (UDF_SB_VAT(sb)->i_size - 36) >> 2; |
1324 | } else if (UDF_SB_PARTTYPE(sb, i) == UDF_VIRTUAL_MAP20) { | 1319 | } else if (UDF_SB_PARTTYPE(sb, i) == UDF_VIRTUAL_MAP20) { |
1325 | struct buffer_head *bh = NULL; | 1320 | struct buffer_head *bh = NULL; |
1326 | uint32_t pos; | 1321 | uint32_t pos; |
@@ -1330,19 +1325,15 @@ static int udf_load_partition(struct super_block *sb, kernel_lb_addr *fileset) | |||
1330 | if (!bh) | 1325 | if (!bh) |
1331 | return 1; | 1326 | return 1; |
1332 | UDF_SB_TYPEVIRT(sb, i).s_start_offset = | 1327 | UDF_SB_TYPEVIRT(sb, i).s_start_offset = |
1333 | le16_to_cpu(((struct | 1328 | le16_to_cpu(((struct virtualAllocationTable20 *)bh->b_data + |
1334 | virtualAllocationTable20 *)bh->b_data + | 1329 | udf_ext0_offset(UDF_SB_VAT(sb)))->lengthHeader) + |
1335 | udf_ext0_offset(UDF_SB_VAT(sb)))-> | 1330 | udf_ext0_offset(UDF_SB_VAT(sb)); |
1336 | lengthHeader) + | 1331 | UDF_SB_TYPEVIRT(sb, i).s_num_entries = (UDF_SB_VAT(sb)->i_size - |
1337 | udf_ext0_offset(UDF_SB_VAT(sb)); | 1332 | UDF_SB_TYPEVIRT(sb, i).s_start_offset) >> 2; |
1338 | UDF_SB_TYPEVIRT(sb, i).s_num_entries = | ||
1339 | (UDF_SB_VAT(sb)->i_size - | ||
1340 | UDF_SB_TYPEVIRT(sb, i).s_start_offset) >> 2; | ||
1341 | brelse(bh); | 1333 | brelse(bh); |
1342 | } | 1334 | } |
1343 | UDF_SB_PARTROOT(sb, i) = udf_get_pblock(sb, 0, i, 0); | 1335 | UDF_SB_PARTROOT(sb, i) = udf_get_pblock(sb, 0, i, 0); |
1344 | UDF_SB_PARTLEN(sb, i) = UDF_SB_PARTLEN(sb, | 1336 | UDF_SB_PARTLEN(sb, i) = UDF_SB_PARTLEN(sb, ino.partitionReferenceNum); |
1345 | ino.partitionReferenceNum); | ||
1346 | } | 1337 | } |
1347 | } | 1338 | } |
1348 | return 0; | 1339 | return 0; |
@@ -1357,21 +1348,17 @@ static void udf_open_lvid(struct super_block *sb) | |||
1357 | UDF_SB_LVIDIU(sb)->impIdent.identSuffix[0] = UDF_OS_CLASS_UNIX; | 1348 | UDF_SB_LVIDIU(sb)->impIdent.identSuffix[0] = UDF_OS_CLASS_UNIX; |
1358 | UDF_SB_LVIDIU(sb)->impIdent.identSuffix[1] = UDF_OS_ID_LINUX; | 1349 | UDF_SB_LVIDIU(sb)->impIdent.identSuffix[1] = UDF_OS_ID_LINUX; |
1359 | if (udf_time_to_stamp(&cpu_time, CURRENT_TIME)) | 1350 | if (udf_time_to_stamp(&cpu_time, CURRENT_TIME)) |
1360 | UDF_SB_LVID(sb)->recordingDateAndTime = | 1351 | UDF_SB_LVID(sb)->recordingDateAndTime = cpu_to_lets(cpu_time); |
1361 | cpu_to_lets(cpu_time); | ||
1362 | UDF_SB_LVID(sb)->integrityType = LVID_INTEGRITY_TYPE_OPEN; | 1352 | UDF_SB_LVID(sb)->integrityType = LVID_INTEGRITY_TYPE_OPEN; |
1363 | 1353 | ||
1364 | UDF_SB_LVID(sb)->descTag.descCRC = | 1354 | UDF_SB_LVID(sb)->descTag.descCRC = cpu_to_le16(udf_crc((char *)UDF_SB_LVID(sb) + sizeof(tag), |
1365 | cpu_to_le16(udf_crc((char *)UDF_SB_LVID(sb) + sizeof(tag), | 1355 | le16_to_cpu(UDF_SB_LVID(sb)->descTag.descCRCLength), 0)); |
1366 | le16_to_cpu(UDF_SB_LVID(sb)->descTag. | ||
1367 | descCRCLength), 0)); | ||
1368 | 1356 | ||
1369 | UDF_SB_LVID(sb)->descTag.tagChecksum = 0; | 1357 | UDF_SB_LVID(sb)->descTag.tagChecksum = 0; |
1370 | for (i = 0; i < 16; i++) | 1358 | for (i = 0; i < 16; i++) |
1371 | if (i != 4) | 1359 | if (i != 4) |
1372 | UDF_SB_LVID(sb)->descTag.tagChecksum += | 1360 | UDF_SB_LVID(sb)->descTag.tagChecksum += |
1373 | ((uint8_t *) & | 1361 | ((uint8_t *) &(UDF_SB_LVID(sb)->descTag))[i]; |
1374 | (UDF_SB_LVID(sb)->descTag))[i]; | ||
1375 | 1362 | ||
1376 | mark_buffer_dirty(UDF_SB_LVIDBH(sb)); | 1363 | mark_buffer_dirty(UDF_SB_LVIDBH(sb)); |
1377 | } | 1364 | } |
diff --git a/fs/udf/udftime.c b/fs/udf/udftime.c index 3fd80eb66af3..adcb87c2da7e 100644 --- a/fs/udf/udftime.c +++ b/fs/udf/udftime.c | |||
@@ -108,10 +108,10 @@ time_t *udf_stamp_to_time(time_t *dest, long *dest_usec, kernel_timestamp src) | |||
108 | *dest = year_seconds[src.year - EPOCH_YEAR]; | 108 | *dest = year_seconds[src.year - EPOCH_YEAR]; |
109 | *dest -= offset * 60; | 109 | *dest -= offset * 60; |
110 | 110 | ||
111 | yday = ((__mon_yday[__isleap (src.year)] | 111 | yday = ((__mon_yday[__isleap(src.year)][src.month - 1]) + src.day - 1); |
112 | [src.month - 1]) + (src.day - 1)); | 112 | *dest += (((yday * 24) + src.hour) * 60 + src.minute) * 60 + src.second; |
113 | *dest += ( ( (yday * 24) + src.hour ) * 60 + src.minute ) * 60 + src.second; | 113 | *dest_usec = src.centiseconds * 10000 + |
114 | *dest_usec = src.centiseconds * 10000 + src.hundredsOfMicroseconds * 100 + src.microseconds; | 114 | src.hundredsOfMicroseconds * 100 + src.microseconds; |
115 | return dest; | 115 | return dest; |
116 | } | 116 | } |
117 | 117 | ||
diff --git a/fs/ufs/balloc.c b/fs/ufs/balloc.c index 841ac25fd950..f63a09ce8683 100644 --- a/fs/ufs/balloc.c +++ b/fs/ufs/balloc.c | |||
@@ -19,6 +19,7 @@ | |||
19 | #include <linux/bitops.h> | 19 | #include <linux/bitops.h> |
20 | #include <asm/byteorder.h> | 20 | #include <asm/byteorder.h> |
21 | 21 | ||
22 | #include "ufs.h" | ||
22 | #include "swab.h" | 23 | #include "swab.h" |
23 | #include "util.h" | 24 | #include "util.h" |
24 | 25 | ||
diff --git a/fs/ufs/cylinder.c b/fs/ufs/cylinder.c index 09c39e5e6386..2a815665644f 100644 --- a/fs/ufs/cylinder.c +++ b/fs/ufs/cylinder.c | |||
@@ -17,6 +17,7 @@ | |||
17 | 17 | ||
18 | #include <asm/byteorder.h> | 18 | #include <asm/byteorder.h> |
19 | 19 | ||
20 | #include "ufs.h" | ||
20 | #include "swab.h" | 21 | #include "swab.h" |
21 | #include "util.h" | 22 | #include "util.h" |
22 | 23 | ||
diff --git a/fs/ufs/dir.c b/fs/ufs/dir.c index 2410ec6002db..30f8c2bb0c3e 100644 --- a/fs/ufs/dir.c +++ b/fs/ufs/dir.c | |||
@@ -21,6 +21,7 @@ | |||
21 | #include <linux/ufs_fs.h> | 21 | #include <linux/ufs_fs.h> |
22 | #include <linux/swap.h> | 22 | #include <linux/swap.h> |
23 | 23 | ||
24 | #include "ufs.h" | ||
24 | #include "swab.h" | 25 | #include "swab.h" |
25 | #include "util.h" | 26 | #include "util.h" |
26 | 27 | ||
diff --git a/fs/ufs/file.c b/fs/ufs/file.c index 6705d74c6d2d..a46c97bf023f 100644 --- a/fs/ufs/file.c +++ b/fs/ufs/file.c | |||
@@ -27,6 +27,9 @@ | |||
27 | #include <linux/ufs_fs.h> | 27 | #include <linux/ufs_fs.h> |
28 | #include <linux/buffer_head.h> /* for sync_mapping_buffers() */ | 28 | #include <linux/buffer_head.h> /* for sync_mapping_buffers() */ |
29 | 29 | ||
30 | #include "ufs.h" | ||
31 | |||
32 | |||
30 | static int ufs_sync_file(struct file *file, struct dentry *dentry, int datasync) | 33 | static int ufs_sync_file(struct file *file, struct dentry *dentry, int datasync) |
31 | { | 34 | { |
32 | struct inode *inode = dentry->d_inode; | 35 | struct inode *inode = dentry->d_inode; |
diff --git a/fs/ufs/ialloc.c b/fs/ufs/ialloc.c index c28a8b6f2feb..7e260bc0d94f 100644 --- a/fs/ufs/ialloc.c +++ b/fs/ufs/ialloc.c | |||
@@ -34,6 +34,7 @@ | |||
34 | #include <linux/bitops.h> | 34 | #include <linux/bitops.h> |
35 | #include <asm/byteorder.h> | 35 | #include <asm/byteorder.h> |
36 | 36 | ||
37 | #include "ufs.h" | ||
37 | #include "swab.h" | 38 | #include "swab.h" |
38 | #include "util.h" | 39 | #include "util.h" |
39 | 40 | ||
diff --git a/fs/ufs/inode.c b/fs/ufs/inode.c index d84d4b0f4779..4320782761ae 100644 --- a/fs/ufs/inode.c +++ b/fs/ufs/inode.c | |||
@@ -38,6 +38,7 @@ | |||
38 | #include <linux/smp_lock.h> | 38 | #include <linux/smp_lock.h> |
39 | #include <linux/buffer_head.h> | 39 | #include <linux/buffer_head.h> |
40 | 40 | ||
41 | #include "ufs.h" | ||
41 | #include "swab.h" | 42 | #include "swab.h" |
42 | #include "util.h" | 43 | #include "util.h" |
43 | 44 | ||
diff --git a/fs/ufs/namei.c b/fs/ufs/namei.c index a059ccd064ea..d8bfbee2fe2b 100644 --- a/fs/ufs/namei.c +++ b/fs/ufs/namei.c | |||
@@ -31,7 +31,7 @@ | |||
31 | #include <linux/fs.h> | 31 | #include <linux/fs.h> |
32 | #include <linux/ufs_fs.h> | 32 | #include <linux/ufs_fs.h> |
33 | #include <linux/smp_lock.h> | 33 | #include <linux/smp_lock.h> |
34 | #include "swab.h" /* will go away - see comment in mknod() */ | 34 | #include "ufs.h" |
35 | #include "util.h" | 35 | #include "util.h" |
36 | 36 | ||
37 | static inline int ufs_add_nondir(struct dentry *dentry, struct inode *inode) | 37 | static inline int ufs_add_nondir(struct dentry *dentry, struct inode *inode) |
@@ -110,7 +110,6 @@ static int ufs_mknod (struct inode * dir, struct dentry *dentry, int mode, dev_t | |||
110 | err = PTR_ERR(inode); | 110 | err = PTR_ERR(inode); |
111 | if (!IS_ERR(inode)) { | 111 | if (!IS_ERR(inode)) { |
112 | init_special_inode(inode, mode, rdev); | 112 | init_special_inode(inode, mode, rdev); |
113 | /* NOTE: that'll go when we get wide dev_t */ | ||
114 | ufs_set_inode_dev(inode->i_sb, UFS_I(inode), rdev); | 113 | ufs_set_inode_dev(inode->i_sb, UFS_I(inode), rdev); |
115 | mark_inode_dirty(inode); | 114 | mark_inode_dirty(inode); |
116 | lock_kernel(); | 115 | lock_kernel(); |
diff --git a/fs/ufs/super.c b/fs/ufs/super.c index 38eb0b7a1f3d..584cf12cc40f 100644 --- a/fs/ufs/super.c +++ b/fs/ufs/super.c | |||
@@ -88,7 +88,10 @@ | |||
88 | #include <linux/buffer_head.h> | 88 | #include <linux/buffer_head.h> |
89 | #include <linux/vfs.h> | 89 | #include <linux/vfs.h> |
90 | #include <linux/log2.h> | 90 | #include <linux/log2.h> |
91 | #include <linux/mount.h> | ||
92 | #include <linux/seq_file.h> | ||
91 | 93 | ||
94 | #include "ufs.h" | ||
92 | #include "swab.h" | 95 | #include "swab.h" |
93 | #include "util.h" | 96 | #include "util.h" |
94 | 97 | ||
@@ -286,16 +289,28 @@ void ufs_warning (struct super_block * sb, const char * function, | |||
286 | } | 289 | } |
287 | 290 | ||
288 | enum { | 291 | enum { |
289 | Opt_type_old, Opt_type_sunx86, Opt_type_sun, Opt_type_44bsd, | 292 | Opt_type_old = UFS_MOUNT_UFSTYPE_OLD, |
290 | Opt_type_ufs2, Opt_type_hp, Opt_type_nextstepcd, Opt_type_nextstep, | 293 | Opt_type_sunx86 = UFS_MOUNT_UFSTYPE_SUNx86, |
291 | Opt_type_openstep, Opt_onerror_panic, Opt_onerror_lock, | 294 | Opt_type_sun = UFS_MOUNT_UFSTYPE_SUN, |
292 | Opt_onerror_umount, Opt_onerror_repair, Opt_err | 295 | Opt_type_sunos = UFS_MOUNT_UFSTYPE_SUNOS, |
296 | Opt_type_44bsd = UFS_MOUNT_UFSTYPE_44BSD, | ||
297 | Opt_type_ufs2 = UFS_MOUNT_UFSTYPE_UFS2, | ||
298 | Opt_type_hp = UFS_MOUNT_UFSTYPE_HP, | ||
299 | Opt_type_nextstepcd = UFS_MOUNT_UFSTYPE_NEXTSTEP_CD, | ||
300 | Opt_type_nextstep = UFS_MOUNT_UFSTYPE_NEXTSTEP, | ||
301 | Opt_type_openstep = UFS_MOUNT_UFSTYPE_OPENSTEP, | ||
302 | Opt_onerror_panic = UFS_MOUNT_ONERROR_PANIC, | ||
303 | Opt_onerror_lock = UFS_MOUNT_ONERROR_LOCK, | ||
304 | Opt_onerror_umount = UFS_MOUNT_ONERROR_UMOUNT, | ||
305 | Opt_onerror_repair = UFS_MOUNT_ONERROR_REPAIR, | ||
306 | Opt_err | ||
293 | }; | 307 | }; |
294 | 308 | ||
295 | static match_table_t tokens = { | 309 | static match_table_t tokens = { |
296 | {Opt_type_old, "ufstype=old"}, | 310 | {Opt_type_old, "ufstype=old"}, |
297 | {Opt_type_sunx86, "ufstype=sunx86"}, | 311 | {Opt_type_sunx86, "ufstype=sunx86"}, |
298 | {Opt_type_sun, "ufstype=sun"}, | 312 | {Opt_type_sun, "ufstype=sun"}, |
313 | {Opt_type_sunos, "ufstype=sunos"}, | ||
299 | {Opt_type_44bsd, "ufstype=44bsd"}, | 314 | {Opt_type_44bsd, "ufstype=44bsd"}, |
300 | {Opt_type_ufs2, "ufstype=ufs2"}, | 315 | {Opt_type_ufs2, "ufstype=ufs2"}, |
301 | {Opt_type_ufs2, "ufstype=5xbsd"}, | 316 | {Opt_type_ufs2, "ufstype=5xbsd"}, |
@@ -303,6 +318,7 @@ static match_table_t tokens = { | |||
303 | {Opt_type_nextstepcd, "ufstype=nextstep-cd"}, | 318 | {Opt_type_nextstepcd, "ufstype=nextstep-cd"}, |
304 | {Opt_type_nextstep, "ufstype=nextstep"}, | 319 | {Opt_type_nextstep, "ufstype=nextstep"}, |
305 | {Opt_type_openstep, "ufstype=openstep"}, | 320 | {Opt_type_openstep, "ufstype=openstep"}, |
321 | /*end of possible ufs types */ | ||
306 | {Opt_onerror_panic, "onerror=panic"}, | 322 | {Opt_onerror_panic, "onerror=panic"}, |
307 | {Opt_onerror_lock, "onerror=lock"}, | 323 | {Opt_onerror_lock, "onerror=lock"}, |
308 | {Opt_onerror_umount, "onerror=umount"}, | 324 | {Opt_onerror_umount, "onerror=umount"}, |
@@ -339,6 +355,10 @@ static int ufs_parse_options (char * options, unsigned * mount_options) | |||
339 | ufs_clear_opt (*mount_options, UFSTYPE); | 355 | ufs_clear_opt (*mount_options, UFSTYPE); |
340 | ufs_set_opt (*mount_options, UFSTYPE_SUN); | 356 | ufs_set_opt (*mount_options, UFSTYPE_SUN); |
341 | break; | 357 | break; |
358 | case Opt_type_sunos: | ||
359 | ufs_clear_opt(*mount_options, UFSTYPE); | ||
360 | ufs_set_opt(*mount_options, UFSTYPE_SUNOS); | ||
361 | break; | ||
342 | case Opt_type_44bsd: | 362 | case Opt_type_44bsd: |
343 | ufs_clear_opt (*mount_options, UFSTYPE); | 363 | ufs_clear_opt (*mount_options, UFSTYPE); |
344 | ufs_set_opt (*mount_options, UFSTYPE_44BSD); | 364 | ufs_set_opt (*mount_options, UFSTYPE_44BSD); |
@@ -654,8 +674,8 @@ static int ufs_fill_super(struct super_block *sb, void *data, int silent) | |||
654 | ufs_set_opt (sbi->s_mount_opt, UFSTYPE_OLD); | 674 | ufs_set_opt (sbi->s_mount_opt, UFSTYPE_OLD); |
655 | } | 675 | } |
656 | 676 | ||
657 | sbi->s_uspi = uspi = | 677 | uspi = kzalloc(sizeof(struct ufs_sb_private_info), GFP_KERNEL); |
658 | kmalloc (sizeof(struct ufs_sb_private_info), GFP_KERNEL); | 678 | sbi->s_uspi = uspi; |
659 | if (!uspi) | 679 | if (!uspi) |
660 | goto failed; | 680 | goto failed; |
661 | uspi->s_dirblksize = UFS_SECTOR_SIZE; | 681 | uspi->s_dirblksize = UFS_SECTOR_SIZE; |
@@ -692,10 +712,22 @@ static int ufs_fill_super(struct super_block *sb, void *data, int silent) | |||
692 | uspi->s_fshift = 10; | 712 | uspi->s_fshift = 10; |
693 | uspi->s_sbsize = super_block_size = 2048; | 713 | uspi->s_sbsize = super_block_size = 2048; |
694 | uspi->s_sbbase = 0; | 714 | uspi->s_sbbase = 0; |
695 | uspi->s_maxsymlinklen = 56; | 715 | uspi->s_maxsymlinklen = 0; /* Not supported on disk */ |
696 | flags |= UFS_DE_OLD | UFS_UID_EFT | UFS_ST_SUN | UFS_CG_SUN; | 716 | flags |= UFS_DE_OLD | UFS_UID_EFT | UFS_ST_SUN | UFS_CG_SUN; |
697 | break; | 717 | break; |
698 | 718 | ||
719 | case UFS_MOUNT_UFSTYPE_SUNOS: | ||
720 | UFSD(("ufstype=sunos\n")) | ||
721 | uspi->s_fsize = block_size = 1024; | ||
722 | uspi->s_fmask = ~(1024 - 1); | ||
723 | uspi->s_fshift = 10; | ||
724 | uspi->s_sbsize = 2048; | ||
725 | super_block_size = 2048; | ||
726 | uspi->s_sbbase = 0; | ||
727 | uspi->s_maxsymlinklen = 0; /* Not supported on disk */ | ||
728 | flags |= UFS_DE_OLD | UFS_UID_OLD | UFS_ST_SUNOS | UFS_CG_SUN; | ||
729 | break; | ||
730 | |||
699 | case UFS_MOUNT_UFSTYPE_SUNx86: | 731 | case UFS_MOUNT_UFSTYPE_SUNx86: |
700 | UFSD("ufstype=sunx86\n"); | 732 | UFSD("ufstype=sunx86\n"); |
701 | uspi->s_fsize = block_size = 1024; | 733 | uspi->s_fsize = block_size = 1024; |
@@ -703,7 +735,7 @@ static int ufs_fill_super(struct super_block *sb, void *data, int silent) | |||
703 | uspi->s_fshift = 10; | 735 | uspi->s_fshift = 10; |
704 | uspi->s_sbsize = super_block_size = 2048; | 736 | uspi->s_sbsize = super_block_size = 2048; |
705 | uspi->s_sbbase = 0; | 737 | uspi->s_sbbase = 0; |
706 | uspi->s_maxsymlinklen = 56; | 738 | uspi->s_maxsymlinklen = 0; /* Not supported on disk */ |
707 | flags |= UFS_DE_OLD | UFS_UID_EFT | UFS_ST_SUNx86 | UFS_CG_SUN; | 739 | flags |= UFS_DE_OLD | UFS_UID_EFT | UFS_ST_SUNx86 | UFS_CG_SUN; |
708 | break; | 740 | break; |
709 | 741 | ||
@@ -805,11 +837,18 @@ again: | |||
805 | if (!ubh) | 837 | if (!ubh) |
806 | goto failed; | 838 | goto failed; |
807 | 839 | ||
808 | |||
809 | usb1 = ubh_get_usb_first(uspi); | 840 | usb1 = ubh_get_usb_first(uspi); |
810 | usb2 = ubh_get_usb_second(uspi); | 841 | usb2 = ubh_get_usb_second(uspi); |
811 | usb3 = ubh_get_usb_third(uspi); | 842 | usb3 = ubh_get_usb_third(uspi); |
812 | 843 | ||
844 | /* Sort out mod used on SunOS 4.1.3 for fs_state */ | ||
845 | uspi->s_postblformat = fs32_to_cpu(sb, usb3->fs_postblformat); | ||
846 | if (((flags & UFS_ST_MASK) == UFS_ST_SUNOS) && | ||
847 | (uspi->s_postblformat != UFS_42POSTBLFMT)) { | ||
848 | flags &= ~UFS_ST_MASK; | ||
849 | flags |= UFS_ST_SUN; | ||
850 | } | ||
851 | |||
813 | /* | 852 | /* |
814 | * Check ufs magic number | 853 | * Check ufs magic number |
815 | */ | 854 | */ |
@@ -894,18 +933,20 @@ magic_found: | |||
894 | goto again; | 933 | goto again; |
895 | } | 934 | } |
896 | 935 | ||
897 | sbi->s_flags = flags;/*after that line some functions use s_flags*/ | 936 | /* Set sbi->s_flags here, used by ufs_get_fs_state() below */ |
937 | sbi->s_flags = flags; | ||
898 | ufs_print_super_stuff(sb, usb1, usb2, usb3); | 938 | ufs_print_super_stuff(sb, usb1, usb2, usb3); |
899 | 939 | ||
900 | /* | 940 | /* |
901 | * Check, if file system was correctly unmounted. | 941 | * Check, if file system was correctly unmounted. |
902 | * If not, make it read only. | 942 | * If not, make it read only. |
903 | */ | 943 | */ |
904 | if (((flags & UFS_ST_MASK) == UFS_ST_44BSD) || | 944 | if ((((flags & UFS_ST_MASK) == UFS_ST_44BSD) || |
905 | ((flags & UFS_ST_MASK) == UFS_ST_OLD) || | 945 | ((flags & UFS_ST_MASK) == UFS_ST_OLD) || |
906 | (((flags & UFS_ST_MASK) == UFS_ST_SUN || | 946 | ((flags & UFS_ST_MASK) == UFS_ST_SUN) || |
907 | (flags & UFS_ST_MASK) == UFS_ST_SUNx86) && | 947 | ((flags & UFS_ST_MASK) == UFS_ST_SUNOS) || |
908 | (ufs_get_fs_state(sb, usb1, usb3) == (UFS_FSOK - fs32_to_cpu(sb, usb1->fs_time))))) { | 948 | ((flags & UFS_ST_MASK) == UFS_ST_SUNx86)) && |
949 | (ufs_get_fs_state(sb, usb1, usb3) == (UFS_FSOK - fs32_to_cpu(sb, usb1->fs_time)))) { | ||
909 | switch(usb1->fs_clean) { | 950 | switch(usb1->fs_clean) { |
910 | case UFS_FSCLEAN: | 951 | case UFS_FSCLEAN: |
911 | UFSD("fs is clean\n"); | 952 | UFSD("fs is clean\n"); |
@@ -995,7 +1036,6 @@ magic_found: | |||
995 | uspi->s_contigsumsize = fs32_to_cpu(sb, usb3->fs_un2.fs_44.fs_contigsumsize); | 1036 | uspi->s_contigsumsize = fs32_to_cpu(sb, usb3->fs_un2.fs_44.fs_contigsumsize); |
996 | uspi->s_qbmask = ufs_get_fs_qbmask(sb, usb3); | 1037 | uspi->s_qbmask = ufs_get_fs_qbmask(sb, usb3); |
997 | uspi->s_qfmask = ufs_get_fs_qfmask(sb, usb3); | 1038 | uspi->s_qfmask = ufs_get_fs_qfmask(sb, usb3); |
998 | uspi->s_postblformat = fs32_to_cpu(sb, usb3->fs_postblformat); | ||
999 | uspi->s_nrpos = fs32_to_cpu(sb, usb3->fs_nrpos); | 1039 | uspi->s_nrpos = fs32_to_cpu(sb, usb3->fs_nrpos); |
1000 | uspi->s_postbloff = fs32_to_cpu(sb, usb3->fs_postbloff); | 1040 | uspi->s_postbloff = fs32_to_cpu(sb, usb3->fs_postbloff); |
1001 | uspi->s_rotbloff = fs32_to_cpu(sb, usb3->fs_rotbloff); | 1041 | uspi->s_rotbloff = fs32_to_cpu(sb, usb3->fs_rotbloff); |
@@ -1077,6 +1117,7 @@ static void ufs_write_super(struct super_block *sb) | |||
1077 | if (!(sb->s_flags & MS_RDONLY)) { | 1117 | if (!(sb->s_flags & MS_RDONLY)) { |
1078 | usb1->fs_time = cpu_to_fs32(sb, get_seconds()); | 1118 | usb1->fs_time = cpu_to_fs32(sb, get_seconds()); |
1079 | if ((flags & UFS_ST_MASK) == UFS_ST_SUN | 1119 | if ((flags & UFS_ST_MASK) == UFS_ST_SUN |
1120 | || (flags & UFS_ST_MASK) == UFS_ST_SUNOS | ||
1080 | || (flags & UFS_ST_MASK) == UFS_ST_SUNx86) | 1121 | || (flags & UFS_ST_MASK) == UFS_ST_SUNx86) |
1081 | ufs_set_fs_state(sb, usb1, usb3, | 1122 | ufs_set_fs_state(sb, usb1, usb3, |
1082 | UFS_FSOK - fs32_to_cpu(sb, usb1->fs_time)); | 1123 | UFS_FSOK - fs32_to_cpu(sb, usb1->fs_time)); |
@@ -1146,6 +1187,7 @@ static int ufs_remount (struct super_block *sb, int *mount_flags, char *data) | |||
1146 | ufs_put_super_internal(sb); | 1187 | ufs_put_super_internal(sb); |
1147 | usb1->fs_time = cpu_to_fs32(sb, get_seconds()); | 1188 | usb1->fs_time = cpu_to_fs32(sb, get_seconds()); |
1148 | if ((flags & UFS_ST_MASK) == UFS_ST_SUN | 1189 | if ((flags & UFS_ST_MASK) == UFS_ST_SUN |
1190 | || (flags & UFS_ST_MASK) == UFS_ST_SUNOS | ||
1149 | || (flags & UFS_ST_MASK) == UFS_ST_SUNx86) | 1191 | || (flags & UFS_ST_MASK) == UFS_ST_SUNx86) |
1150 | ufs_set_fs_state(sb, usb1, usb3, | 1192 | ufs_set_fs_state(sb, usb1, usb3, |
1151 | UFS_FSOK - fs32_to_cpu(sb, usb1->fs_time)); | 1193 | UFS_FSOK - fs32_to_cpu(sb, usb1->fs_time)); |
@@ -1162,6 +1204,7 @@ static int ufs_remount (struct super_block *sb, int *mount_flags, char *data) | |||
1162 | return -EINVAL; | 1204 | return -EINVAL; |
1163 | #else | 1205 | #else |
1164 | if (ufstype != UFS_MOUNT_UFSTYPE_SUN && | 1206 | if (ufstype != UFS_MOUNT_UFSTYPE_SUN && |
1207 | ufstype != UFS_MOUNT_UFSTYPE_SUNOS && | ||
1165 | ufstype != UFS_MOUNT_UFSTYPE_44BSD && | 1208 | ufstype != UFS_MOUNT_UFSTYPE_44BSD && |
1166 | ufstype != UFS_MOUNT_UFSTYPE_SUNx86 && | 1209 | ufstype != UFS_MOUNT_UFSTYPE_SUNx86 && |
1167 | ufstype != UFS_MOUNT_UFSTYPE_UFS2) { | 1210 | ufstype != UFS_MOUNT_UFSTYPE_UFS2) { |
@@ -1179,6 +1222,26 @@ static int ufs_remount (struct super_block *sb, int *mount_flags, char *data) | |||
1179 | return 0; | 1222 | return 0; |
1180 | } | 1223 | } |
1181 | 1224 | ||
1225 | static int ufs_show_options(struct seq_file *seq, struct vfsmount *vfs) | ||
1226 | { | ||
1227 | struct ufs_sb_info *sbi = UFS_SB(vfs->mnt_sb); | ||
1228 | unsigned mval = sbi->s_mount_opt & UFS_MOUNT_UFSTYPE; | ||
1229 | struct match_token *tp = tokens; | ||
1230 | |||
1231 | while (tp->token != Opt_onerror_panic && tp->token != mval) | ||
1232 | ++tp; | ||
1233 | BUG_ON(tp->token == Opt_onerror_panic); | ||
1234 | seq_printf(seq, ",%s", tp->pattern); | ||
1235 | |||
1236 | mval = sbi->s_mount_opt & UFS_MOUNT_ONERROR; | ||
1237 | while (tp->token != Opt_err && tp->token != mval) | ||
1238 | ++tp; | ||
1239 | BUG_ON(tp->token == Opt_err); | ||
1240 | seq_printf(seq, ",%s", tp->pattern); | ||
1241 | |||
1242 | return 0; | ||
1243 | } | ||
1244 | |||
1182 | static int ufs_statfs(struct dentry *dentry, struct kstatfs *buf) | 1245 | static int ufs_statfs(struct dentry *dentry, struct kstatfs *buf) |
1183 | { | 1246 | { |
1184 | struct super_block *sb = dentry->d_sb; | 1247 | struct super_block *sb = dentry->d_sb; |
@@ -1232,7 +1295,7 @@ static void ufs_destroy_inode(struct inode *inode) | |||
1232 | kmem_cache_free(ufs_inode_cachep, UFS_I(inode)); | 1295 | kmem_cache_free(ufs_inode_cachep, UFS_I(inode)); |
1233 | } | 1296 | } |
1234 | 1297 | ||
1235 | static void init_once(void * foo, struct kmem_cache * cachep, unsigned long flags) | 1298 | static void init_once(struct kmem_cache * cachep, void *foo) |
1236 | { | 1299 | { |
1237 | struct ufs_inode_info *ei = (struct ufs_inode_info *) foo; | 1300 | struct ufs_inode_info *ei = (struct ufs_inode_info *) foo; |
1238 | 1301 | ||
@@ -1271,6 +1334,7 @@ static const struct super_operations ufs_super_ops = { | |||
1271 | .write_super = ufs_write_super, | 1334 | .write_super = ufs_write_super, |
1272 | .statfs = ufs_statfs, | 1335 | .statfs = ufs_statfs, |
1273 | .remount_fs = ufs_remount, | 1336 | .remount_fs = ufs_remount, |
1337 | .show_options = ufs_show_options, | ||
1274 | #ifdef CONFIG_QUOTA | 1338 | #ifdef CONFIG_QUOTA |
1275 | .quota_read = ufs_quota_read, | 1339 | .quota_read = ufs_quota_read, |
1276 | .quota_write = ufs_quota_write, | 1340 | .quota_write = ufs_quota_write, |
diff --git a/fs/ufs/symlink.c b/fs/ufs/symlink.c index d8549f807e80..43ac10e75a4a 100644 --- a/fs/ufs/symlink.c +++ b/fs/ufs/symlink.c | |||
@@ -28,6 +28,8 @@ | |||
28 | #include <linux/fs.h> | 28 | #include <linux/fs.h> |
29 | #include <linux/namei.h> | 29 | #include <linux/namei.h> |
30 | #include <linux/ufs_fs.h> | 30 | #include <linux/ufs_fs.h> |
31 | #include "ufs.h" | ||
32 | |||
31 | 33 | ||
32 | static void *ufs_follow_link(struct dentry *dentry, struct nameidata *nd) | 34 | static void *ufs_follow_link(struct dentry *dentry, struct nameidata *nd) |
33 | { | 35 | { |
diff --git a/fs/ufs/truncate.c b/fs/ufs/truncate.c index 79c54c85fb58..311ded34c2b2 100644 --- a/fs/ufs/truncate.c +++ b/fs/ufs/truncate.c | |||
@@ -46,6 +46,7 @@ | |||
46 | #include <linux/blkdev.h> | 46 | #include <linux/blkdev.h> |
47 | #include <linux/sched.h> | 47 | #include <linux/sched.h> |
48 | 48 | ||
49 | #include "ufs.h" | ||
49 | #include "swab.h" | 50 | #include "swab.h" |
50 | #include "util.h" | 51 | #include "util.h" |
51 | 52 | ||
diff --git a/fs/ufs/ufs.h b/fs/ufs/ufs.h new file mode 100644 index 000000000000..7faa4cd71a27 --- /dev/null +++ b/fs/ufs/ufs.h | |||
@@ -0,0 +1,157 @@ | |||
1 | #ifndef _UFS_UFS_H | ||
2 | #define _UFS_UFS_H 1 | ||
3 | |||
4 | #define UFS_MAX_GROUP_LOADED 8 | ||
5 | #define UFS_CGNO_EMPTY ((unsigned)-1) | ||
6 | |||
7 | struct ufs_sb_private_info; | ||
8 | struct ufs_cg_private_info; | ||
9 | struct ufs_csum; | ||
10 | |||
11 | struct ufs_sb_info { | ||
12 | struct ufs_sb_private_info * s_uspi; | ||
13 | struct ufs_csum * s_csp; | ||
14 | unsigned s_bytesex; | ||
15 | unsigned s_flags; | ||
16 | struct buffer_head ** s_ucg; | ||
17 | struct ufs_cg_private_info * s_ucpi[UFS_MAX_GROUP_LOADED]; | ||
18 | unsigned s_cgno[UFS_MAX_GROUP_LOADED]; | ||
19 | unsigned short s_cg_loaded; | ||
20 | unsigned s_mount_opt; | ||
21 | }; | ||
22 | |||
23 | struct ufs_inode_info { | ||
24 | union { | ||
25 | __fs32 i_data[15]; | ||
26 | __u8 i_symlink[4*15]; | ||
27 | __fs64 u2_i_data[15]; | ||
28 | } i_u1; | ||
29 | __u32 i_flags; | ||
30 | __u32 i_shadow; | ||
31 | __u32 i_unused1; | ||
32 | __u32 i_unused2; | ||
33 | __u32 i_oeftflag; | ||
34 | __u16 i_osync; | ||
35 | __u64 i_lastfrag; | ||
36 | __u32 i_dir_start_lookup; | ||
37 | struct inode vfs_inode; | ||
38 | }; | ||
39 | |||
40 | /* mount options */ | ||
41 | #define UFS_MOUNT_ONERROR 0x0000000F | ||
42 | #define UFS_MOUNT_ONERROR_PANIC 0x00000001 | ||
43 | #define UFS_MOUNT_ONERROR_LOCK 0x00000002 | ||
44 | #define UFS_MOUNT_ONERROR_UMOUNT 0x00000004 | ||
45 | #define UFS_MOUNT_ONERROR_REPAIR 0x00000008 | ||
46 | |||
47 | #define UFS_MOUNT_UFSTYPE 0x0000FFF0 | ||
48 | #define UFS_MOUNT_UFSTYPE_OLD 0x00000010 | ||
49 | #define UFS_MOUNT_UFSTYPE_44BSD 0x00000020 | ||
50 | #define UFS_MOUNT_UFSTYPE_SUN 0x00000040 | ||
51 | #define UFS_MOUNT_UFSTYPE_NEXTSTEP 0x00000080 | ||
52 | #define UFS_MOUNT_UFSTYPE_NEXTSTEP_CD 0x00000100 | ||
53 | #define UFS_MOUNT_UFSTYPE_OPENSTEP 0x00000200 | ||
54 | #define UFS_MOUNT_UFSTYPE_SUNx86 0x00000400 | ||
55 | #define UFS_MOUNT_UFSTYPE_HP 0x00000800 | ||
56 | #define UFS_MOUNT_UFSTYPE_UFS2 0x00001000 | ||
57 | #define UFS_MOUNT_UFSTYPE_SUNOS 0x00002000 | ||
58 | |||
59 | #define ufs_clear_opt(o,opt) o &= ~UFS_MOUNT_##opt | ||
60 | #define ufs_set_opt(o,opt) o |= UFS_MOUNT_##opt | ||
61 | #define ufs_test_opt(o,opt) ((o) & UFS_MOUNT_##opt) | ||
62 | |||
63 | /* | ||
64 | * Debug code | ||
65 | */ | ||
66 | #ifdef CONFIG_UFS_DEBUG | ||
67 | # define UFSD(f, a...) { \ | ||
68 | printk ("UFSD (%s, %d): %s:", \ | ||
69 | __FILE__, __LINE__, __FUNCTION__); \ | ||
70 | printk (f, ## a); \ | ||
71 | } | ||
72 | #else | ||
73 | # define UFSD(f, a...) /**/ | ||
74 | #endif | ||
75 | |||
76 | /* balloc.c */ | ||
77 | extern void ufs_free_fragments (struct inode *, u64, unsigned); | ||
78 | extern void ufs_free_blocks (struct inode *, u64, unsigned); | ||
79 | extern u64 ufs_new_fragments(struct inode *, void *, u64, u64, | ||
80 | unsigned, int *, struct page *); | ||
81 | |||
82 | /* cylinder.c */ | ||
83 | extern struct ufs_cg_private_info * ufs_load_cylinder (struct super_block *, unsigned); | ||
84 | extern void ufs_put_cylinder (struct super_block *, unsigned); | ||
85 | |||
86 | /* dir.c */ | ||
87 | extern const struct inode_operations ufs_dir_inode_operations; | ||
88 | extern int ufs_add_link (struct dentry *, struct inode *); | ||
89 | extern ino_t ufs_inode_by_name(struct inode *, struct dentry *); | ||
90 | extern int ufs_make_empty(struct inode *, struct inode *); | ||
91 | extern struct ufs_dir_entry *ufs_find_entry(struct inode *, struct dentry *, struct page **); | ||
92 | extern int ufs_delete_entry(struct inode *, struct ufs_dir_entry *, struct page *); | ||
93 | extern int ufs_empty_dir (struct inode *); | ||
94 | extern struct ufs_dir_entry *ufs_dotdot(struct inode *, struct page **); | ||
95 | extern void ufs_set_link(struct inode *dir, struct ufs_dir_entry *de, | ||
96 | struct page *page, struct inode *inode); | ||
97 | |||
98 | /* file.c */ | ||
99 | extern const struct inode_operations ufs_file_inode_operations; | ||
100 | extern const struct file_operations ufs_file_operations; | ||
101 | |||
102 | extern const struct address_space_operations ufs_aops; | ||
103 | |||
104 | /* ialloc.c */ | ||
105 | extern void ufs_free_inode (struct inode *inode); | ||
106 | extern struct inode * ufs_new_inode (struct inode *, int); | ||
107 | |||
108 | /* inode.c */ | ||
109 | extern void ufs_read_inode (struct inode *); | ||
110 | extern void ufs_put_inode (struct inode *); | ||
111 | extern int ufs_write_inode (struct inode *, int); | ||
112 | extern int ufs_sync_inode (struct inode *); | ||
113 | extern void ufs_delete_inode (struct inode *); | ||
114 | extern struct buffer_head * ufs_bread (struct inode *, unsigned, int, int *); | ||
115 | extern int ufs_getfrag_block (struct inode *inode, sector_t fragment, struct buffer_head *bh_result, int create); | ||
116 | |||
117 | /* namei.c */ | ||
118 | extern const struct file_operations ufs_dir_operations; | ||
119 | |||
120 | /* super.c */ | ||
121 | extern void ufs_warning (struct super_block *, const char *, const char *, ...) __attribute__ ((format (printf, 3, 4))); | ||
122 | extern void ufs_error (struct super_block *, const char *, const char *, ...) __attribute__ ((format (printf, 3, 4))); | ||
123 | extern void ufs_panic (struct super_block *, const char *, const char *, ...) __attribute__ ((format (printf, 3, 4))); | ||
124 | |||
125 | /* symlink.c */ | ||
126 | extern const struct inode_operations ufs_fast_symlink_inode_operations; | ||
127 | |||
128 | /* truncate.c */ | ||
129 | extern int ufs_truncate (struct inode *, loff_t); | ||
130 | |||
131 | static inline struct ufs_sb_info *UFS_SB(struct super_block *sb) | ||
132 | { | ||
133 | return sb->s_fs_info; | ||
134 | } | ||
135 | |||
136 | static inline struct ufs_inode_info *UFS_I(struct inode *inode) | ||
137 | { | ||
138 | return container_of(inode, struct ufs_inode_info, vfs_inode); | ||
139 | } | ||
140 | |||
141 | /* | ||
142 | * Give cylinder group number for a file system block. | ||
143 | * Give cylinder group block number for a file system block. | ||
144 | */ | ||
145 | /* #define ufs_dtog(d) ((d) / uspi->s_fpg) */ | ||
146 | static inline u64 ufs_dtog(struct ufs_sb_private_info * uspi, u64 b) | ||
147 | { | ||
148 | do_div(b, uspi->s_fpg); | ||
149 | return b; | ||
150 | } | ||
151 | /* #define ufs_dtogd(d) ((d) % uspi->s_fpg) */ | ||
152 | static inline u32 ufs_dtogd(struct ufs_sb_private_info * uspi, u64 b) | ||
153 | { | ||
154 | return do_div(b, uspi->s_fpg); | ||
155 | } | ||
156 | |||
157 | #endif /* _UFS_UFS_H */ | ||
diff --git a/fs/ufs/util.c b/fs/ufs/util.c index 84357f1ff0ec..410084dae389 100644 --- a/fs/ufs/util.c +++ b/fs/ufs/util.c | |||
@@ -11,6 +11,7 @@ | |||
11 | #include <linux/ufs_fs.h> | 11 | #include <linux/ufs_fs.h> |
12 | #include <linux/buffer_head.h> | 12 | #include <linux/buffer_head.h> |
13 | 13 | ||
14 | #include "ufs.h" | ||
14 | #include "swab.h" | 15 | #include "swab.h" |
15 | #include "util.h" | 16 | #include "util.h" |
16 | 17 | ||
diff --git a/fs/ufs/util.h b/fs/ufs/util.h index 79a340a1909e..b26fc4dec1e7 100644 --- a/fs/ufs/util.h +++ b/fs/ufs/util.h | |||
@@ -38,6 +38,10 @@ ufs_get_fs_state(struct super_block *sb, struct ufs_super_block_first *usb1, | |||
38 | struct ufs_super_block_third *usb3) | 38 | struct ufs_super_block_third *usb3) |
39 | { | 39 | { |
40 | switch (UFS_SB(sb)->s_flags & UFS_ST_MASK) { | 40 | switch (UFS_SB(sb)->s_flags & UFS_ST_MASK) { |
41 | case UFS_ST_SUNOS: | ||
42 | if (fs32_to_cpu(sb, usb3->fs_postblformat) == UFS_42POSTBLFMT) | ||
43 | return fs32_to_cpu(sb, usb1->fs_u0.fs_sun.fs_state); | ||
44 | /* Fall Through to UFS_ST_SUN */ | ||
41 | case UFS_ST_SUN: | 45 | case UFS_ST_SUN: |
42 | return fs32_to_cpu(sb, usb3->fs_un2.fs_sun.fs_state); | 46 | return fs32_to_cpu(sb, usb3->fs_un2.fs_sun.fs_state); |
43 | case UFS_ST_SUNx86: | 47 | case UFS_ST_SUNx86: |
@@ -53,6 +57,12 @@ ufs_set_fs_state(struct super_block *sb, struct ufs_super_block_first *usb1, | |||
53 | struct ufs_super_block_third *usb3, s32 value) | 57 | struct ufs_super_block_third *usb3, s32 value) |
54 | { | 58 | { |
55 | switch (UFS_SB(sb)->s_flags & UFS_ST_MASK) { | 59 | switch (UFS_SB(sb)->s_flags & UFS_ST_MASK) { |
60 | case UFS_ST_SUNOS: | ||
61 | if (fs32_to_cpu(sb, usb3->fs_postblformat == UFS_42POSTBLFMT)) { | ||
62 | usb1->fs_u0.fs_sun.fs_state = cpu_to_fs32(sb, value); | ||
63 | break; | ||
64 | } | ||
65 | /* Fall Through to UFS_ST_SUN */ | ||
56 | case UFS_ST_SUN: | 66 | case UFS_ST_SUN: |
57 | usb3->fs_un2.fs_sun.fs_state = cpu_to_fs32(sb, value); | 67 | usb3->fs_un2.fs_sun.fs_state = cpu_to_fs32(sb, value); |
58 | break; | 68 | break; |
@@ -81,6 +91,7 @@ ufs_get_fs_qbmask(struct super_block *sb, struct ufs_super_block_third *usb3) | |||
81 | __fs64 tmp; | 91 | __fs64 tmp; |
82 | 92 | ||
83 | switch (UFS_SB(sb)->s_flags & UFS_ST_MASK) { | 93 | switch (UFS_SB(sb)->s_flags & UFS_ST_MASK) { |
94 | case UFS_ST_SUNOS: | ||
84 | case UFS_ST_SUN: | 95 | case UFS_ST_SUN: |
85 | ((__fs32 *)&tmp)[0] = usb3->fs_un2.fs_sun.fs_qbmask[0]; | 96 | ((__fs32 *)&tmp)[0] = usb3->fs_un2.fs_sun.fs_qbmask[0]; |
86 | ((__fs32 *)&tmp)[1] = usb3->fs_un2.fs_sun.fs_qbmask[1]; | 97 | ((__fs32 *)&tmp)[1] = usb3->fs_un2.fs_sun.fs_qbmask[1]; |
@@ -104,6 +115,7 @@ ufs_get_fs_qfmask(struct super_block *sb, struct ufs_super_block_third *usb3) | |||
104 | __fs64 tmp; | 115 | __fs64 tmp; |
105 | 116 | ||
106 | switch (UFS_SB(sb)->s_flags & UFS_ST_MASK) { | 117 | switch (UFS_SB(sb)->s_flags & UFS_ST_MASK) { |
118 | case UFS_ST_SUNOS: | ||
107 | case UFS_ST_SUN: | 119 | case UFS_ST_SUN: |
108 | ((__fs32 *)&tmp)[0] = usb3->fs_un2.fs_sun.fs_qfmask[0]; | 120 | ((__fs32 *)&tmp)[0] = usb3->fs_un2.fs_sun.fs_qfmask[0]; |
109 | ((__fs32 *)&tmp)[1] = usb3->fs_un2.fs_sun.fs_qfmask[1]; | 121 | ((__fs32 *)&tmp)[1] = usb3->fs_un2.fs_sun.fs_qfmask[1]; |
@@ -179,10 +191,12 @@ static inline u32 | |||
179 | ufs_get_inode_uid(struct super_block *sb, struct ufs_inode *inode) | 191 | ufs_get_inode_uid(struct super_block *sb, struct ufs_inode *inode) |
180 | { | 192 | { |
181 | switch (UFS_SB(sb)->s_flags & UFS_UID_MASK) { | 193 | switch (UFS_SB(sb)->s_flags & UFS_UID_MASK) { |
182 | case UFS_UID_EFT: | ||
183 | return fs32_to_cpu(sb, inode->ui_u3.ui_sun.ui_uid); | ||
184 | case UFS_UID_44BSD: | 194 | case UFS_UID_44BSD: |
185 | return fs32_to_cpu(sb, inode->ui_u3.ui_44.ui_uid); | 195 | return fs32_to_cpu(sb, inode->ui_u3.ui_44.ui_uid); |
196 | case UFS_UID_EFT: | ||
197 | if (inode->ui_u1.oldids.ui_suid == 0xFFFF) | ||
198 | return fs32_to_cpu(sb, inode->ui_u3.ui_sun.ui_uid); | ||
199 | /* Fall through */ | ||
186 | default: | 200 | default: |
187 | return fs16_to_cpu(sb, inode->ui_u1.oldids.ui_suid); | 201 | return fs16_to_cpu(sb, inode->ui_u1.oldids.ui_suid); |
188 | } | 202 | } |
@@ -192,24 +206,31 @@ static inline void | |||
192 | ufs_set_inode_uid(struct super_block *sb, struct ufs_inode *inode, u32 value) | 206 | ufs_set_inode_uid(struct super_block *sb, struct ufs_inode *inode, u32 value) |
193 | { | 207 | { |
194 | switch (UFS_SB(sb)->s_flags & UFS_UID_MASK) { | 208 | switch (UFS_SB(sb)->s_flags & UFS_UID_MASK) { |
195 | case UFS_UID_EFT: | ||
196 | inode->ui_u3.ui_sun.ui_uid = cpu_to_fs32(sb, value); | ||
197 | break; | ||
198 | case UFS_UID_44BSD: | 209 | case UFS_UID_44BSD: |
199 | inode->ui_u3.ui_44.ui_uid = cpu_to_fs32(sb, value); | 210 | inode->ui_u3.ui_44.ui_uid = cpu_to_fs32(sb, value); |
211 | inode->ui_u1.oldids.ui_suid = cpu_to_fs16(sb, value); | ||
212 | break; | ||
213 | case UFS_UID_EFT: | ||
214 | inode->ui_u3.ui_sun.ui_uid = cpu_to_fs32(sb, value); | ||
215 | if (value > 0xFFFF) | ||
216 | value = 0xFFFF; | ||
217 | /* Fall through */ | ||
218 | default: | ||
219 | inode->ui_u1.oldids.ui_suid = cpu_to_fs16(sb, value); | ||
200 | break; | 220 | break; |
201 | } | 221 | } |
202 | inode->ui_u1.oldids.ui_suid = cpu_to_fs16(sb, value); | ||
203 | } | 222 | } |
204 | 223 | ||
205 | static inline u32 | 224 | static inline u32 |
206 | ufs_get_inode_gid(struct super_block *sb, struct ufs_inode *inode) | 225 | ufs_get_inode_gid(struct super_block *sb, struct ufs_inode *inode) |
207 | { | 226 | { |
208 | switch (UFS_SB(sb)->s_flags & UFS_UID_MASK) { | 227 | switch (UFS_SB(sb)->s_flags & UFS_UID_MASK) { |
209 | case UFS_UID_EFT: | ||
210 | return fs32_to_cpu(sb, inode->ui_u3.ui_sun.ui_gid); | ||
211 | case UFS_UID_44BSD: | 228 | case UFS_UID_44BSD: |
212 | return fs32_to_cpu(sb, inode->ui_u3.ui_44.ui_gid); | 229 | return fs32_to_cpu(sb, inode->ui_u3.ui_44.ui_gid); |
230 | case UFS_UID_EFT: | ||
231 | if (inode->ui_u1.oldids.ui_suid == 0xFFFF) | ||
232 | return fs32_to_cpu(sb, inode->ui_u3.ui_sun.ui_gid); | ||
233 | /* Fall through */ | ||
213 | default: | 234 | default: |
214 | return fs16_to_cpu(sb, inode->ui_u1.oldids.ui_sgid); | 235 | return fs16_to_cpu(sb, inode->ui_u1.oldids.ui_sgid); |
215 | } | 236 | } |
@@ -219,14 +240,19 @@ static inline void | |||
219 | ufs_set_inode_gid(struct super_block *sb, struct ufs_inode *inode, u32 value) | 240 | ufs_set_inode_gid(struct super_block *sb, struct ufs_inode *inode, u32 value) |
220 | { | 241 | { |
221 | switch (UFS_SB(sb)->s_flags & UFS_UID_MASK) { | 242 | switch (UFS_SB(sb)->s_flags & UFS_UID_MASK) { |
222 | case UFS_UID_EFT: | ||
223 | inode->ui_u3.ui_sun.ui_gid = cpu_to_fs32(sb, value); | ||
224 | break; | ||
225 | case UFS_UID_44BSD: | 243 | case UFS_UID_44BSD: |
226 | inode->ui_u3.ui_44.ui_gid = cpu_to_fs32(sb, value); | 244 | inode->ui_u3.ui_44.ui_gid = cpu_to_fs32(sb, value); |
245 | inode->ui_u1.oldids.ui_sgid = cpu_to_fs16(sb, value); | ||
246 | break; | ||
247 | case UFS_UID_EFT: | ||
248 | inode->ui_u3.ui_sun.ui_gid = cpu_to_fs32(sb, value); | ||
249 | if (value > 0xFFFF) | ||
250 | value = 0xFFFF; | ||
251 | /* Fall through */ | ||
252 | default: | ||
253 | inode->ui_u1.oldids.ui_sgid = cpu_to_fs16(sb, value); | ||
227 | break; | 254 | break; |
228 | } | 255 | } |
229 | inode->ui_u1.oldids.ui_sgid = cpu_to_fs16(sb, value); | ||
230 | } | 256 | } |
231 | 257 | ||
232 | extern dev_t ufs_get_inode_dev(struct super_block *, struct ufs_inode_info *); | 258 | extern dev_t ufs_get_inode_dev(struct super_block *, struct ufs_inode_info *); |
diff --git a/fs/utimes.c b/fs/utimes.c index 682eb63b20ad..b9912ecbee24 100644 --- a/fs/utimes.c +++ b/fs/utimes.c | |||
@@ -38,6 +38,14 @@ asmlinkage long sys_utime(char __user *filename, struct utimbuf __user *times) | |||
38 | 38 | ||
39 | #endif | 39 | #endif |
40 | 40 | ||
41 | static bool nsec_valid(long nsec) | ||
42 | { | ||
43 | if (nsec == UTIME_OMIT || nsec == UTIME_NOW) | ||
44 | return true; | ||
45 | |||
46 | return nsec >= 0 && nsec <= 999999999; | ||
47 | } | ||
48 | |||
41 | /* If times==NULL, set access and modification to current time, | 49 | /* If times==NULL, set access and modification to current time, |
42 | * must be owner or have write permission. | 50 | * must be owner or have write permission. |
43 | * Else, update from *times, must be owner or super user. | 51 | * Else, update from *times, must be owner or super user. |
@@ -52,6 +60,11 @@ long do_utimes(int dfd, char __user *filename, struct timespec *times, int flags | |||
52 | struct file *f = NULL; | 60 | struct file *f = NULL; |
53 | 61 | ||
54 | error = -EINVAL; | 62 | error = -EINVAL; |
63 | if (times && (!nsec_valid(times[0].tv_nsec) || | ||
64 | !nsec_valid(times[1].tv_nsec))) { | ||
65 | goto out; | ||
66 | } | ||
67 | |||
55 | if (flags & ~AT_SYMLINK_NOFOLLOW) | 68 | if (flags & ~AT_SYMLINK_NOFOLLOW) |
56 | goto out; | 69 | goto out; |
57 | 70 | ||
diff --git a/fs/xfs/linux-2.6/kmem.h b/fs/xfs/linux-2.6/kmem.h index e6ea293f303c..5e9564902976 100644 --- a/fs/xfs/linux-2.6/kmem.h +++ b/fs/xfs/linux-2.6/kmem.h | |||
@@ -79,7 +79,7 @@ kmem_zone_init(int size, char *zone_name) | |||
79 | 79 | ||
80 | static inline kmem_zone_t * | 80 | static inline kmem_zone_t * |
81 | kmem_zone_init_flags(int size, char *zone_name, unsigned long flags, | 81 | kmem_zone_init_flags(int size, char *zone_name, unsigned long flags, |
82 | void (*construct)(void *, kmem_zone_t *, unsigned long)) | 82 | void (*construct)(kmem_zone_t *, void *)) |
83 | { | 83 | { |
84 | return kmem_cache_create(zone_name, size, 0, flags, construct); | 84 | return kmem_cache_create(zone_name, size, 0, flags, construct); |
85 | } | 85 | } |
diff --git a/fs/xfs/linux-2.6/xfs_aops.c b/fs/xfs/linux-2.6/xfs_aops.c index 354d68a32d4a..52bd08c0a278 100644 --- a/fs/xfs/linux-2.6/xfs_aops.c +++ b/fs/xfs/linux-2.6/xfs_aops.c | |||
@@ -402,10 +402,9 @@ xfs_start_page_writeback( | |||
402 | clear_page_dirty_for_io(page); | 402 | clear_page_dirty_for_io(page); |
403 | set_page_writeback(page); | 403 | set_page_writeback(page); |
404 | unlock_page(page); | 404 | unlock_page(page); |
405 | if (!buffers) { | 405 | /* If no buffers on the page are to be written, finish it here */ |
406 | if (!buffers) | ||
406 | end_page_writeback(page); | 407 | end_page_writeback(page); |
407 | wbc->pages_skipped++; /* We didn't write this page */ | ||
408 | } | ||
409 | } | 408 | } |
410 | 409 | ||
411 | static inline int bio_add_buffer(struct bio *bio, struct buffer_head *bh) | 410 | static inline int bio_add_buffer(struct bio *bio, struct buffer_head *bh) |
diff --git a/fs/xfs/linux-2.6/xfs_iops.c b/fs/xfs/linux-2.6/xfs_iops.c index 0b5fa124bef2..e0e06dd4bef2 100644 --- a/fs/xfs/linux-2.6/xfs_iops.c +++ b/fs/xfs/linux-2.6/xfs_iops.c | |||
@@ -133,7 +133,7 @@ xfs_ichgtime( | |||
133 | */ | 133 | */ |
134 | SYNCHRONIZE(); | 134 | SYNCHRONIZE(); |
135 | ip->i_update_core = 1; | 135 | ip->i_update_core = 1; |
136 | if (!(inode->i_state & I_LOCK)) | 136 | if (!(inode->i_state & I_SYNC)) |
137 | mark_inode_dirty_sync(inode); | 137 | mark_inode_dirty_sync(inode); |
138 | } | 138 | } |
139 | 139 | ||
@@ -185,7 +185,7 @@ xfs_ichgtime_fast( | |||
185 | */ | 185 | */ |
186 | SYNCHRONIZE(); | 186 | SYNCHRONIZE(); |
187 | ip->i_update_core = 1; | 187 | ip->i_update_core = 1; |
188 | if (!(inode->i_state & I_LOCK)) | 188 | if (!(inode->i_state & I_SYNC)) |
189 | mark_inode_dirty_sync(inode); | 189 | mark_inode_dirty_sync(inode); |
190 | } | 190 | } |
191 | 191 | ||
diff --git a/fs/xfs/linux-2.6/xfs_super.c b/fs/xfs/linux-2.6/xfs_super.c index 491d1f4f202d..9c7d8202088f 100644 --- a/fs/xfs/linux-2.6/xfs_super.c +++ b/fs/xfs/linux-2.6/xfs_super.c | |||
@@ -356,9 +356,8 @@ xfs_fs_destroy_inode( | |||
356 | 356 | ||
357 | STATIC void | 357 | STATIC void |
358 | xfs_fs_inode_init_once( | 358 | xfs_fs_inode_init_once( |
359 | void *vnode, | ||
360 | kmem_zone_t *zonep, | 359 | kmem_zone_t *zonep, |
361 | unsigned long flags) | 360 | void *vnode) |
362 | { | 361 | { |
363 | inode_init_once(vn_to_inode((bhv_vnode_t *)vnode)); | 362 | inode_init_once(vn_to_inode((bhv_vnode_t *)vnode)); |
364 | } | 363 | } |