1053d50935e0e311286543bd7c535ae2c863c0deThe Android Open Source Project/*
2053d50935e0e311286543bd7c535ae2c863c0deThe Android Open Source Project * Copyright (C) 2008,2009  OMRON SOFTWARE Co., Ltd.
3053d50935e0e311286543bd7c535ae2c863c0deThe Android Open Source Project *
4053d50935e0e311286543bd7c535ae2c863c0deThe Android Open Source Project * Licensed under the Apache License, Version 2.0 (the "License");
5053d50935e0e311286543bd7c535ae2c863c0deThe Android Open Source Project * you may not use this file except in compliance with the License.
6053d50935e0e311286543bd7c535ae2c863c0deThe Android Open Source Project * You may obtain a copy of the License at
7053d50935e0e311286543bd7c535ae2c863c0deThe Android Open Source Project *
8053d50935e0e311286543bd7c535ae2c863c0deThe Android Open Source Project *      http://www.apache.org/licenses/LICENSE-2.0
9053d50935e0e311286543bd7c535ae2c863c0deThe Android Open Source Project *
10053d50935e0e311286543bd7c535ae2c863c0deThe Android Open Source Project * Unless required by applicable law or agreed to in writing, software
11053d50935e0e311286543bd7c535ae2c863c0deThe Android Open Source Project * distributed under the License is distributed on an "AS IS" BASIS,
12053d50935e0e311286543bd7c535ae2c863c0deThe Android Open Source Project * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13053d50935e0e311286543bd7c535ae2c863c0deThe Android Open Source Project * See the License for the specific language governing permissions and
14053d50935e0e311286543bd7c535ae2c863c0deThe Android Open Source Project * limitations under the License.
15053d50935e0e311286543bd7c535ae2c863c0deThe Android Open Source Project */
16053d50935e0e311286543bd7c535ae2c863c0deThe Android Open Source Project
17053d50935e0e311286543bd7c535ae2c863c0deThe Android Open Source Project#ifndef _NJ_DIC_H_
18053d50935e0e311286543bd7c535ae2c863c0deThe Android Open Source Project#define _NJ_DIC_H_
19053d50935e0e311286543bd7c535ae2c863c0deThe Android Open Source Project
20053d50935e0e311286543bd7c535ae2c863c0deThe Android Open Source Project#define NJ_DIC_TYPE_JIRITSU                     0x00000000
21053d50935e0e311286543bd7c535ae2c863c0deThe Android Open Source Project#define NJ_DIC_TYPE_FZK                         0x00000001
22053d50935e0e311286543bd7c535ae2c863c0deThe Android Open Source Project#define NJ_DIC_TYPE_TANKANJI                    0x00000002
23053d50935e0e311286543bd7c535ae2c863c0deThe Android Open Source Project#define NJ_DIC_TYPE_CUSTOM_COMPRESS             0x00000003
24053d50935e0e311286543bd7c535ae2c863c0deThe Android Open Source Project#define NJ_DIC_TYPE_STDFORE                     0x00000004
25053d50935e0e311286543bd7c535ae2c863c0deThe Android Open Source Project#define NJ_DIC_TYPE_FORECONV                    0x00000005
26053d50935e0e311286543bd7c535ae2c863c0deThe Android Open Source Project#define NJ_DIC_TYPE_YOMINASHI                   0x00010000
27053d50935e0e311286543bd7c535ae2c863c0deThe Android Open Source Project#define NJ_DIC_TYPE_CUSTOM_INCOMPRESS           0x00020002
28053d50935e0e311286543bd7c535ae2c863c0deThe Android Open Source Project#define NJ_DIC_TYPE_USER                        0x80030000
29053d50935e0e311286543bd7c535ae2c863c0deThe Android Open Source Project#define NJ_DIC_TYPE_RULE                        0x000F0000
30053d50935e0e311286543bd7c535ae2c863c0deThe Android Open Source Project
31053d50935e0e311286543bd7c535ae2c863c0deThe Android Open Source Project#define NJ_HINSI_V2_F            0
32053d50935e0e311286543bd7c535ae2c863c0deThe Android Open Source Project#define NJ_HINSI_SUUJI_B        14
33053d50935e0e311286543bd7c535ae2c863c0deThe Android Open Source Project#define NJ_HINSI_BUNTOU_B        3
34053d50935e0e311286543bd7c535ae2c863c0deThe Android Open Source Project#define NJ_HINSI_TANKANJI_F      4
35053d50935e0e311286543bd7c535ae2c863c0deThe Android Open Source Project#define NJ_HINSI_TANKANJI_B      5
36053d50935e0e311286543bd7c535ae2c863c0deThe Android Open Source Project#define NJ_HINSI_MEISI_F         6
37053d50935e0e311286543bd7c535ae2c863c0deThe Android Open Source Project#define NJ_HINSI_MEISI_B         7
38053d50935e0e311286543bd7c535ae2c863c0deThe Android Open Source Project#define NJ_HINSI_JINMEI_F        8
39053d50935e0e311286543bd7c535ae2c863c0deThe Android Open Source Project#define NJ_HINSI_JINMEI_B        9
40053d50935e0e311286543bd7c535ae2c863c0deThe Android Open Source Project#define NJ_HINSI_CHIMEI_F       10
41053d50935e0e311286543bd7c535ae2c863c0deThe Android Open Source Project#define NJ_HINSI_CHIMEI_B       11
42053d50935e0e311286543bd7c535ae2c863c0deThe Android Open Source Project#define NJ_HINSI_KIGOU_F        12
43053d50935e0e311286543bd7c535ae2c863c0deThe Android Open Source Project#define NJ_HINSI_KIGOU_B        13
44053d50935e0e311286543bd7c535ae2c863c0deThe Android Open Source Project#define NJ_HINSI_V1_F           15
45053d50935e0e311286543bd7c535ae2c863c0deThe Android Open Source Project#define NJ_HINSI_V3_F           16
46053d50935e0e311286543bd7c535ae2c863c0deThe Android Open Source Project#define NJ_RULE_TYPE_BTOF       0
47053d50935e0e311286543bd7c535ae2c863c0deThe Android Open Source Project#define NJ_RULE_TYPE_FTOB       1
48053d50935e0e311286543bd7c535ae2c863c0deThe Android Open Source Project
49053d50935e0e311286543bd7c535ae2c863c0deThe Android Open Source Project#define NJD_SAME_INDEX_LIMIT    50
50053d50935e0e311286543bd7c535ae2c863c0deThe Android Open Source Project
51053d50935e0e311286543bd7c535ae2c863c0deThe Android Open Source Project#define NJ_INT16_READ(in)                                               \
52053d50935e0e311286543bd7c535ae2c863c0deThe Android Open Source Project    (((((NJ_INT16)((in)[0])) << 8) & 0xff00U) + ((in)[1] & 0xffU))
53053d50935e0e311286543bd7c535ae2c863c0deThe Android Open Source Project
54053d50935e0e311286543bd7c535ae2c863c0deThe Android Open Source Project#define NJ_INT32_READ(in)                                               \
55053d50935e0e311286543bd7c535ae2c863c0deThe Android Open Source Project    (((((NJ_INT32)((in)[0])) << 24) & 0xff000000) |                     \
56053d50935e0e311286543bd7c535ae2c863c0deThe Android Open Source Project     ((((NJ_INT32)((in)[1])) << 16) &   0xff0000) |                     \
57053d50935e0e311286543bd7c535ae2c863c0deThe Android Open Source Project     ((((NJ_INT32)((in)[2])) <<  8) &     0xff00) |                     \
58053d50935e0e311286543bd7c535ae2c863c0deThe Android Open Source Project     ((((NJ_INT32)((in)[3]))      ) &       0xff))
59053d50935e0e311286543bd7c535ae2c863c0deThe Android Open Source Project
60053d50935e0e311286543bd7c535ae2c863c0deThe Android Open Source Project#define NJ_INT32_WRITE(to, from)\
61053d50935e0e311286543bd7c535ae2c863c0deThe Android Open Source Project        {(to)[0]=(NJ_UINT8)(((from)>>24) & 0x000000ff);\
62053d50935e0e311286543bd7c535ae2c863c0deThe Android Open Source Project         (to)[1]=(NJ_UINT8)(((from)>>16) & 0x000000ff);\
63053d50935e0e311286543bd7c535ae2c863c0deThe Android Open Source Project         (to)[2]=(NJ_UINT8)(((from)>>8) & 0x000000ff);\
64053d50935e0e311286543bd7c535ae2c863c0deThe Android Open Source Project         (to)[3]=(NJ_UINT8)((from) & 0x000000ff);}
65053d50935e0e311286543bd7c535ae2c863c0deThe Android Open Source Project
66053d50935e0e311286543bd7c535ae2c863c0deThe Android Open Source Project#define NJ_INT16_WRITE(to, from)\
67053d50935e0e311286543bd7c535ae2c863c0deThe Android Open Source Project        {(to)[0]=(NJ_UINT8)(((from)>>8) & 0x00ff);\
68053d50935e0e311286543bd7c535ae2c863c0deThe Android Open Source Project         (to)[1]=(NJ_UINT8)((from) & 0x00ff);}
69053d50935e0e311286543bd7c535ae2c863c0deThe Android Open Source Project
70053d50935e0e311286543bd7c535ae2c863c0deThe Android Open Source Project#define NJ_GET_MAX_YLEN(h) ((NJ_INT16)(NJ_INT16_READ((h)+0x16)/sizeof(NJ_CHAR)))
71053d50935e0e311286543bd7c535ae2c863c0deThe Android Open Source Project
72053d50935e0e311286543bd7c535ae2c863c0deThe Android Open Source Project#define NJ_GET_MAX_KLEN(h) ((NJ_INT16)(NJ_INT16_READ((h)+0x1A)/sizeof(NJ_CHAR)))
73053d50935e0e311286543bd7c535ae2c863c0deThe Android Open Source Project
74053d50935e0e311286543bd7c535ae2c863c0deThe Android Open Source Project#define NJ_GET_DIC_TYPE(h) ((NJ_UINT32)(NJ_INT32_READ((h)+8)))
75053d50935e0e311286543bd7c535ae2c863c0deThe Android Open Source Project
76053d50935e0e311286543bd7c535ae2c863c0deThe Android Open Source Project#define F_HINSI_SET_CNT(h) ((NJ_UINT16)(NJ_INT16_READ((h)+0x1C)))
77053d50935e0e311286543bd7c535ae2c863c0deThe Android Open Source Project#define B_HINSI_SET_CNT(h) ((NJ_UINT16)(NJ_INT16_READ((h)+0x1E)))
78053d50935e0e311286543bd7c535ae2c863c0deThe Android Open Source Project
79053d50935e0e311286543bd7c535ae2c863c0deThe Android Open Source Project
80053d50935e0e311286543bd7c535ae2c863c0deThe Android Open Source Project#endif
81