OSDN Git Service

AI003:config.txt, words.txtを追加。
[chnosproject/CHNOSProject.git] / CHNOSProject / chnos / tolset_chn_000 / chnos_010 / chnos / struct.c
1 \r
2 /*\83V\83X\83e\83\80\8d\\91¢\91Ì\8b¤\92Ê\8aÇ\97\9d\83\8b\81[\83`\83\93*/\r
3 \r
4 #include "core.h"\r
5 \r
6 System_CommonStruct *System_CommonStruct_Allocate(uint structid)\r
7 {\r
8         uint strsize;\r
9         System_CommonStruct *str;\r
10 \r
11         strsize = 0;\r
12         switch(structid){\r
13                 case SYSTEM_STRUCTID_SHEET:\r
14                         strsize = sizeof(UI_Sheet);\r
15                         break;\r
16                 case SYSTEM_STRUCTID_FIFO32:\r
17                         strsize = sizeof(DATA_FIFO32);\r
18                         break;\r
19                 case SYSTEM_STRUCTID_TEXTBOX:\r
20                         strsize = sizeof(UI_TextBox);\r
21                         break;\r
22                 case SYSTEM_STRUCTID_CONSOLE:\r
23                         strsize = sizeof(UI_Console);\r
24                         break;\r
25                 case SYSTEM_STRUCTID_FLOPPYDISK:\r
26                         strsize = sizeof(IO_FloppyDisk);\r
27                         break;\r
28                 case SYSTEM_STRUCTID_FILE:\r
29                         strsize = sizeof(IO_File);\r
30                         break;\r
31                 default:\r
32                         #ifdef CHNOSPROJECT_DEBUG_COMMON_STRUCT\r
33                                 debug("System_CommonStruct_Allocate:Unknown Struct.\n");\r
34                         #endif\r
35                         return Null;\r
36         }\r
37 \r
38         str = System_Memory_Allocate(strsize);\r
39         str->structid = structid;\r
40         str->structsize = strsize;\r
41 \r
42         return str;\r
43 }\r
44 \r
45 uint System_CommonStruct_Free(System_CommonStruct *str)\r
46 {\r
47         switch(str->structid){\r
48                 case SYSTEM_STRUCTID_SHEET:\r
49                 case SYSTEM_STRUCTID_FIFO32:\r
50                 case SYSTEM_STRUCTID_TEXTBOX:\r
51                 case SYSTEM_STRUCTID_CONSOLE:\r
52                 case SYSTEM_STRUCTID_FLOPPYDISK:\r
53                 case SYSTEM_STRUCTID_FILE:\r
54                         break;\r
55                 default:\r
56                         #ifdef CHNOSPROJECT_DEBUG_COMMON_STRUCT\r
57                                 debug("System_CommonStruct_Free:Unknown Struct.\n");\r
58                         #endif\r
59                 return 1;\r
60         }\r
61         str->structid = SYSTEM_STRUCTID_UNDEFINED;\r
62         System_Memory_Free(str, str->structsize);\r
63         return 0;\r
64 }\r
65 \r