f660f0145069894fe7600517ec7d0f210af139b3
[sdk] / compiler / bootstrap / ecere / bootstrap / System.c
1 #if defined(__GNUC__)
2 typedef long long int64;
3 typedef unsigned long long uint64;
4 #ifndef _WIN32
5 #define __declspec(x)
6 #endif
7 #elif defined(__TINYC__)
8 #include <stdarg.h>
9 #define __builtin_va_list va_list
10 #define __builtin_va_start va_start
11 #define __builtin_va_end va_end
12 #ifdef _WIN32
13 #define strcasecmp stricmp
14 #define strncasecmp strnicmp
15 #define __declspec(x) __attribute__((x))
16 #else
17 #define __declspec(x)
18 #endif
19 typedef long long int64;
20 typedef unsigned long long uint64;
21 #else
22 typedef __int64 int64;
23 typedef unsigned __int64 uint64;
24 #endif
25 #ifdef __BIG_ENDIAN__
26 #define __ENDIAN_PAD(x) (8 - (x))
27 #else
28 #define __ENDIAN_PAD(x) 0
29 #endif
30 #include <stdint.h>
31 extern void *  __ecereNameSpace__ecere__com__eSystem_New(unsigned int size);
32
33 extern void *  __ecereNameSpace__ecere__com__eSystem_New0(unsigned int size);
34
35 extern void *  __ecereNameSpace__ecere__com__eSystem_Renew(void *  memory, unsigned int size);
36
37 extern void *  __ecereNameSpace__ecere__com__eSystem_Renew0(void *  memory, unsigned int size);
38
39 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass___ecereNameSpace__ecere__sys__BTNode;
40
41 struct __ecereNameSpace__ecere__sys__BTNode;
42
43 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass___ecereNameSpace__ecere__sys__BinaryTree;
44
45 struct __ecereNameSpace__ecere__sys__BinaryTree
46 {
47 struct __ecereNameSpace__ecere__sys__BTNode * root;
48 int count;
49 int (*  CompareKey)(struct __ecereNameSpace__ecere__sys__BinaryTree * tree, uintptr_t a, uintptr_t b);
50 void (*  FreeKey)(void *  key);
51 } __attribute__ ((gcc_struct));
52
53 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass___ecereNameSpace__ecere__sys__OldList;
54
55 struct __ecereNameSpace__ecere__sys__OldList
56 {
57 void *  first;
58 void *  last;
59 int count;
60 unsigned int offset;
61 unsigned int circ;
62 } __attribute__ ((gcc_struct));
63
64 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass___ecereNameSpace__ecere__com__Class;
65
66 struct __ecereNameSpace__ecere__com__Class
67 {
68 struct __ecereNameSpace__ecere__com__Class * prev;
69 struct __ecereNameSpace__ecere__com__Class * next;
70 char *  name;
71 int offset;
72 int structSize;
73 int (* *  _vTbl)();
74 int vTblSize;
75 int (*  Constructor)(struct __ecereNameSpace__ecere__com__Instance *);
76 void (*  Destructor)(struct __ecereNameSpace__ecere__com__Instance *);
77 int offsetClass;
78 int sizeClass;
79 struct __ecereNameSpace__ecere__com__Class * base;
80 struct __ecereNameSpace__ecere__sys__BinaryTree methods;
81 struct __ecereNameSpace__ecere__sys__BinaryTree members;
82 struct __ecereNameSpace__ecere__sys__BinaryTree prop;
83 struct __ecereNameSpace__ecere__sys__OldList membersAndProperties;
84 struct __ecereNameSpace__ecere__sys__BinaryTree classProperties;
85 struct __ecereNameSpace__ecere__sys__OldList derivatives;
86 int memberID;
87 int startMemberID;
88 int type;
89 struct __ecereNameSpace__ecere__com__Instance * module;
90 struct __ecereNameSpace__ecere__com__NameSpace *  nameSpace;
91 char *  dataTypeString;
92 struct __ecereNameSpace__ecere__com__Instance * dataType;
93 int typeSize;
94 int defaultAlignment;
95 void (*  Initialize)();
96 int memberOffset;
97 struct __ecereNameSpace__ecere__sys__OldList selfWatchers;
98 char *  designerClass;
99 unsigned int noExpansion;
100 char *  defaultProperty;
101 unsigned int comRedefinition;
102 int count;
103 unsigned int isRemote;
104 unsigned int internalDecl;
105 void *  data;
106 unsigned int computeSize;
107 int structAlignment;
108 int destructionWatchOffset;
109 unsigned int fixed;
110 struct __ecereNameSpace__ecere__sys__OldList delayedCPValues;
111 int inheritanceAccess;
112 char *  fullName;
113 void *  symbol;
114 struct __ecereNameSpace__ecere__sys__OldList conversions;
115 struct __ecereNameSpace__ecere__sys__OldList templateParams;
116 struct __ecereNameSpace__ecere__com__ClassTemplateArgument *  templateArgs;
117 struct __ecereNameSpace__ecere__com__Class * templateClass;
118 struct __ecereNameSpace__ecere__sys__OldList templatized;
119 int numParams;
120 } __attribute__ ((gcc_struct));
121
122 extern long long __ecereNameSpace__ecere__com__eClass_GetProperty(struct __ecereNameSpace__ecere__com__Class * _class, char *  name);
123
124 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass___ecereNameSpace__ecere__com__Instance;
125
126 struct __ecereNameSpace__ecere__com__Instance
127 {
128 int (* *  _vTbl)();
129 struct __ecereNameSpace__ecere__com__Class * _class;
130 int _refCount;
131 } __attribute__ ((gcc_struct));
132
133 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass___ecereNameSpace__ecere__com__Property;
134
135 struct __ecereNameSpace__ecere__com__Property
136 {
137 struct __ecereNameSpace__ecere__com__Property * prev;
138 struct __ecereNameSpace__ecere__com__Property * next;
139 char *  name;
140 unsigned int isProperty;
141 int memberAccess;
142 int id;
143 struct __ecereNameSpace__ecere__com__Class * _class;
144 char *  dataTypeString;
145 struct __ecereNameSpace__ecere__com__Class * dataTypeClass;
146 struct __ecereNameSpace__ecere__com__Instance * dataType;
147 void (*  Set)(void * , int);
148 int (*  Get)(void * );
149 unsigned int (*  IsSet)(void * );
150 void *  data;
151 void *  symbol;
152 int vid;
153 unsigned int conversion;
154 unsigned int watcherOffset;
155 char *  category;
156 unsigned int compiled;
157 unsigned int selfWatchable;
158 unsigned int isWatchable;
159 } __attribute__ ((gcc_struct));
160
161 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass___ecereNameSpace__ecere__com__DataMember;
162
163 struct __ecereNameSpace__ecere__com__DataMember
164 {
165 struct __ecereNameSpace__ecere__com__DataMember * prev;
166 struct __ecereNameSpace__ecere__com__DataMember * next;
167 char *  name;
168 unsigned int isProperty;
169 int memberAccess;
170 int id;
171 struct __ecereNameSpace__ecere__com__Class * _class;
172 char *  dataTypeString;
173 struct __ecereNameSpace__ecere__com__Class * dataTypeClass;
174 struct __ecereNameSpace__ecere__com__Instance * dataType;
175 int type;
176 int offset;
177 int memberID;
178 struct __ecereNameSpace__ecere__sys__OldList members;
179 struct __ecereNameSpace__ecere__sys__BinaryTree membersAlpha;
180 int memberOffset;
181 int structAlignment;
182 } __attribute__ ((gcc_struct));
183
184 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass___ecereNameSpace__ecere__com__Method;
185
186 struct __ecereNameSpace__ecere__com__Method
187 {
188 char *  name;
189 struct __ecereNameSpace__ecere__com__Method * parent;
190 struct __ecereNameSpace__ecere__com__Method * left;
191 struct __ecereNameSpace__ecere__com__Method * right;
192 int depth;
193 int (*  function)();
194 int vid;
195 int type;
196 struct __ecereNameSpace__ecere__com__Class * _class;
197 void *  symbol;
198 char *  dataTypeString;
199 struct __ecereNameSpace__ecere__com__Instance * dataType;
200 int memberAccess;
201 } __attribute__ ((gcc_struct));
202
203 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass___ecereNameSpace__ecere__com__SerialBuffer;
204
205 struct __ecereNameSpace__ecere__com__SerialBuffer
206 {
207 unsigned char *  _buffer;
208 unsigned int count;
209 unsigned int _size;
210 unsigned int pos;
211 } __attribute__ ((gcc_struct));
212
213 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass___ecereNameSpace__ecere__com__DataValue;
214
215 struct __ecereNameSpace__ecere__com__DataValue
216 {
217 union
218 {
219 char c;
220 unsigned char uc;
221 short s;
222 unsigned short us;
223 int i;
224 unsigned int ui;
225 void *  p;
226 float f;
227 double d;
228 long long i64;
229 uint64 ui64;
230 } __attribute__ ((gcc_struct));
231 } __attribute__ ((gcc_struct));
232
233 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass___ecereNameSpace__ecere__com__ClassTemplateArgument;
234
235 struct __ecereNameSpace__ecere__com__ClassTemplateArgument
236 {
237 union
238 {
239 struct
240 {
241 char *  dataTypeString;
242 struct __ecereNameSpace__ecere__com__Class * dataTypeClass;
243 } __attribute__ ((gcc_struct));
244 struct __ecereNameSpace__ecere__com__DataValue expression;
245 struct
246 {
247 char *  memberString;
248 union
249 {
250 struct __ecereNameSpace__ecere__com__DataMember * member;
251 struct __ecereNameSpace__ecere__com__Property * prop;
252 struct __ecereNameSpace__ecere__com__Method * method;
253 } __attribute__ ((gcc_struct));
254 } __attribute__ ((gcc_struct));
255 } __attribute__ ((gcc_struct));
256 } __attribute__ ((gcc_struct));
257
258 typedef __builtin_va_list __gnuc_va_list;
259
260 typedef __gnuc_va_list va_list;
261
262 typedef uintptr_t size_t;
263
264 void exit(int status);
265
266 void * calloc(size_t nmemb, size_t size);
267
268 void free(void * ptr);
269
270 void * malloc(size_t size);
271
272 void * realloc(void * ptr, size_t size);
273
274 long int strtol(const char * nptr, char ** endptr, int base);
275
276 long long int strtoll(const char * nptr, char ** endptr, int base);
277
278 unsigned long long int strtoull(const char * nptr, char ** endptr, int base);
279
280 typedef void FILE;
281
282 FILE * bsl_stdin(void);
283
284 FILE * bsl_stdout(void);
285
286 FILE * bsl_stderr(void);
287
288 char * fgets(char * s, int size, FILE * stream);
289
290 FILE * fopen(const char * path, const char * mode);
291
292 int fclose(FILE * fp);
293
294 int fflush(FILE * stream);
295
296 int fgetc(FILE * stream);
297
298 int fprintf(FILE * stream, const char * format, ...);
299
300 int fputc(int c, FILE * stream);
301
302 size_t fread(void * ptr, size_t size, size_t nmemb, FILE * stream);
303
304 size_t fwrite(const void * ptr, size_t size, size_t nmemb, FILE * stream);
305
306 int vsnprintf(char *, size_t, const char *, ...);
307
308 int snprintf(char * str, size_t, const char * format, ...);
309
310 int fseek(FILE * stream, long offset, int whence);
311
312 long ftell(FILE * stream);
313
314 int feof(FILE * stream);
315
316 int ferror(FILE * stream);
317
318 int fileno(FILE * stream);
319
320 FILE * eC_stdout(void);
321
322 FILE * eC_stderr(void);
323
324 unsigned int System_MoveFile(char * source, char * dest);
325
326 unsigned int System_RenameFile(char * oldName, char * newName);
327
328 unsigned int System_DeleteFile(char * fileName);
329
330 unsigned int System_MakeDir(char * path);
331
332 unsigned int System_RemoveDir(char * path);
333
334 char * System_GetWorkingDir(char * buf, int size);
335
336 unsigned int System_ChangeWorkingDir(char * buf);
337
338 char * System_GetEnvironment(char * envName, char * envValue, int max);
339
340 void System_SetEnvironment(char * envName, char * envValue);
341
342 void System_UnsetEnvironment(char * envName);
343
344 unsigned int System_Execute(char * env, char * command, va_list args);
345
346 unsigned int System_ShellOpen(char * fileName, va_list args);
347
348 void System_GetFreeSpace(char * path, struct __ecereNameSpace__ecere__com__Instance ** size);
349
350 static struct __ecereNameSpace__ecere__com__Class * __ecereClass___ecereNameSpace__ecere__sys__LoggingMode;
351
352 static struct __ecereNameSpace__ecere__com__Class * __ecereClass___ecereNameSpace__ecere__sys__ErrorLevel;
353
354
355 static struct __ecereNameSpace__ecere__com__Class * __ecereClass___ecereNameSpace__ecere__sys__ErrorCode;
356
357 static struct __ecereNameSpace__ecere__com__Class * __ecereClass___ecereNameSpace__ecere__sys__SysErrorCode;
358
359
360 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass___ecereNameSpace__ecere__com__Array;
361
362 struct __ecereNameSpace__ecere__com__Array
363 {
364 uint64 *  array;
365 unsigned int count;
366 unsigned int minAllocSize;
367 } __attribute__ ((gcc_struct));
368
369 extern char *  __ecereNameSpace__ecere__GetTranslatedString(struct __ecereNameSpace__ecere__com__Instance * module, char *  string, char *  stringAndContext);
370
371 extern struct __ecereNameSpace__ecere__com__Instance * __thisModule;
372
373 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass___ecereNameSpace__ecere__com__BuiltInContainer;
374
375 struct __ecereNameSpace__ecere__com__BuiltInContainer
376 {
377 void *  _vTbl;
378 struct __ecereNameSpace__ecere__com__Class * _class;
379 int _refCount;
380 void *  data;
381 int count;
382 struct __ecereNameSpace__ecere__com__Class * type;
383 } __attribute__ ((gcc_struct));
384
385 static struct __ecereNameSpace__ecere__com__Instance * __ecereNameSpace__ecere__sys__errorMessages;
386
387 unsigned int __ecereNameSpace__ecere__sys__MoveFile(char * source, char * dest)
388 {
389 return System_MoveFile(source, dest);
390 }
391
392 unsigned int __ecereNameSpace__ecere__sys__RenameFile(char * oldName, char * newName)
393 {
394 return System_RenameFile(oldName, newName);
395 }
396
397 unsigned int __ecereNameSpace__ecere__sys__DeleteFile(char * fileName)
398 {
399 return System_DeleteFile(fileName);
400 }
401
402 unsigned int __ecereNameSpace__ecere__sys__MakeDir(char * path)
403 {
404 return System_MakeDir(path);
405 }
406
407 unsigned int __ecereNameSpace__ecere__sys__RemoveDir(char * path)
408 {
409 return System_RemoveDir(path);
410 }
411
412 char * __ecereNameSpace__ecere__sys__GetWorkingDir(char * buf, int size)
413 {
414 return System_GetWorkingDir(buf, size);
415 }
416
417 unsigned int __ecereNameSpace__ecere__sys__ChangeWorkingDir(char * buf)
418 {
419 return System_ChangeWorkingDir(buf);
420 }
421
422 char * __ecereNameSpace__ecere__sys__GetEnvironment(char * envName, char * envValue, int max)
423 {
424 return System_GetEnvironment(envName, envValue, max);
425 }
426
427 void __ecereNameSpace__ecere__sys__SetEnvironment(char * envName, char * envValue)
428 {
429 System_SetEnvironment(envName, envValue);
430 }
431
432 void __ecereNameSpace__ecere__sys__UnsetEnvironment(char * envName)
433 {
434 System_UnsetEnvironment(envName);
435 }
436
437 unsigned int __ecereNameSpace__ecere__sys__Execute(char * command, ...)
438 {
439 unsigned int result;
440 va_list args;
441
442 __builtin_va_start(args, command);
443 result = System_Execute((((void *)0)), command, args);
444 __builtin_va_end(args);
445 return result;
446 }
447
448 unsigned int __ecereNameSpace__ecere__sys__ExecuteEnv(char * env, char * command, ...)
449 {
450 unsigned int result;
451 va_list args;
452
453 __builtin_va_start(args, command);
454 result = System_Execute(env, command, args);
455 __builtin_va_end(args);
456 return result;
457 }
458
459 unsigned int __ecereNameSpace__ecere__sys__ShellOpen(char * fileName, ...)
460 {
461 unsigned int result;
462 va_list args;
463
464 result = System_ShellOpen(fileName, args);
465 __builtin_va_end(args);
466 return result;
467 }
468
469 void __ecereNameSpace__ecere__sys__GetFreeSpace(char * path, struct __ecereNameSpace__ecere__com__Instance ** size)
470 {
471 System_GetFreeSpace(path, size);
472 }
473
474 void __ecereNameSpace__ecere__sys__Log(char *  text);
475
476 void __ecereNameSpace__ecere__sys__Logf(char * format, ...)
477 {
478 va_list args;
479 char string[1025];
480
481 __builtin_va_start(args, format);
482 vsnprintf(string, sizeof string, format, args);
483 string[sizeof string - 1] = (char)0;
484 __ecereNameSpace__ecere__sys__Log(string);
485 __builtin_va_end(args);
486 }
487
488 struct __ecereNameSpace__ecere__sys__System __ecereNameSpace__ecere__sys__globalSystem;
489
490 struct __ecereNameSpace__ecere__sys__System
491 {
492 int errorLoggingMode;
493 char * errorBuffer;
494 int errorBufferSize;
495 char logFile[797];
496 unsigned int lastErrorCode;
497 int errorLevel;
498 struct __ecereNameSpace__ecere__com__Instance * eventSemaphore;
499 struct __ecereNameSpace__ecere__sys__OldList fileMonitors;
500 struct __ecereNameSpace__ecere__com__Instance * fileMonitorMutex;
501 struct __ecereNameSpace__ecere__com__Instance * fileMonitorThread;
502 unsigned int systemTerminate;
503 } __attribute__ ((gcc_struct));
504
505 static struct __ecereNameSpace__ecere__com__Class * __ecereClass___ecereNameSpace__ecere__sys__System;
506
507 extern int fputs(char * , void *  stream);
508
509 extern struct __ecereNameSpace__ecere__com__Instance * __ecereNameSpace__ecere__sys__FileOpen(char *  fileName, int mode);
510
511 extern char *  strcat(char * , const char * );
512
513 int __ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts;
514
515 extern void __ecereNameSpace__ecere__com__eInstance_DecRef(struct __ecereNameSpace__ecere__com__Instance * instance);
516
517 void __ecereNameSpace__ecere__sys__Log(char * text)
518 {
519 switch(__ecereNameSpace__ecere__sys__globalSystem.errorLoggingMode)
520 {
521 case 3:
522 case 1:
523 fputs(text, eC_stdout());
524 fflush(eC_stdout());
525 break;
526 case 2:
527 fputs(text, eC_stderr());
528 fflush(eC_stderr());
529 break;
530 case 4:
531 {
532 struct __ecereNameSpace__ecere__com__Instance * f;
533
534 if((f = __ecereNameSpace__ecere__sys__FileOpen(__ecereNameSpace__ecere__sys__globalSystem.logFile, 3)))
535 {
536 ((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const char *  string))f->_vTbl[__ecereVMethodID___ecereNameSpace__ecere__sys__File_Puts])(f, text);
537 (__ecereNameSpace__ecere__com__eInstance_DecRef(f), f = 0);
538 }
539 break;
540 }
541 case 6:
542 case 5:
543 strcat(__ecereNameSpace__ecere__sys__globalSystem.errorBuffer, text);
544 break;
545 }
546 }
547
548 extern int printf(char * , ...);
549
550 void __ecereNameSpace__ecere__sys__DumpErrors(unsigned int display)
551 {
552 if(__ecereNameSpace__ecere__sys__globalSystem.errorBuffer && __ecereNameSpace__ecere__sys__globalSystem.errorBuffer[0])
553 {
554 if(display)
555 {
556 printf(__ecereNameSpace__ecere__sys__globalSystem.errorBuffer);
557 }
558 __ecereNameSpace__ecere__sys__globalSystem.errorBuffer[0] = '\0';
559 }
560 }
561
562 void __ecereNameSpace__ecere__sys__LogErrorCode(unsigned int errorCode, char * details)
563 {
564 if(((int)((errorCode & 0x3000) >> 12)) <= __ecereNameSpace__ecere__sys__globalSystem.errorLevel)
565 {
566 if(details)
567 __ecereNameSpace__ecere__sys__Logf("System Error [%d]: %s (%s).\n", ((int)((errorCode & 0x3000) >> 12)), ((char **)((struct __ecereNameSpace__ecere__com__Array *)(((char *)__ecereNameSpace__ecere__sys__errorMessages + 12)))->array)[((unsigned int)((errorCode & 0xFFF) >> 0))], details);
568 else
569 __ecereNameSpace__ecere__sys__Logf("System Error [%d]: %s.\n", ((int)((errorCode & 0x3000) >> 12)), ((char **)((struct __ecereNameSpace__ecere__com__Array *)(((char *)__ecereNameSpace__ecere__sys__errorMessages + 12)))->array)[((unsigned int)((errorCode & 0xFFF) >> 0))]);
570 }
571 __ecereNameSpace__ecere__sys__globalSystem.lastErrorCode = errorCode;
572 }
573
574 unsigned int __ecereNameSpace__ecere__sys__GetLastErrorCode()
575 {
576 return (unsigned int)__ecereNameSpace__ecere__sys__globalSystem.lastErrorCode;
577 }
578
579 void __ecereNameSpace__ecere__sys__ResetError()
580 {
581 __ecereNameSpace__ecere__sys__globalSystem.lastErrorCode = 0;
582 }
583
584 void __ecereNameSpace__ecere__sys__SetErrorLevel(int level)
585 {
586 __ecereNameSpace__ecere__sys__globalSystem.errorLevel = level;
587 }
588
589 extern char *  strcpy(char * , const char * );
590
591 void __ecereNameSpace__ecere__sys__SetLoggingMode(int mode, void * where)
592 {
593 __ecereNameSpace__ecere__sys__globalSystem.errorLoggingMode = mode;
594 if(mode == 4)
595 {
596 struct __ecereNameSpace__ecere__com__Instance * file;
597
598 strcpy(__ecereNameSpace__ecere__sys__globalSystem.logFile, where);
599 file = __ecereNameSpace__ecere__sys__FileOpen(__ecereNameSpace__ecere__sys__globalSystem.logFile, 2);
600 (__ecereNameSpace__ecere__com__eInstance_DecRef(file), file = 0);
601 }
602 else if(mode == 6 || mode == 5)
603 {
604 if(!__ecereNameSpace__ecere__sys__globalSystem.errorBuffer)
605 {
606 __ecereNameSpace__ecere__sys__globalSystem.errorBufferSize = (100 * (1025));
607 __ecereNameSpace__ecere__sys__globalSystem.errorBuffer = __ecereNameSpace__ecere__com__eSystem_New(sizeof(char) * ((100 * (1025))));
608 }
609 __ecereNameSpace__ecere__sys__globalSystem.errorBuffer[0] = (char)0;
610 }
611 else if(mode == 3)
612 {
613 }
614 if(mode == (int)0)
615 {
616 __ecereNameSpace__ecere__sys__DumpErrors(0x1);
617 if(__ecereNameSpace__ecere__sys__globalSystem.errorBuffer)
618 {
619 (__ecereNameSpace__ecere__com__eSystem_Delete(__ecereNameSpace__ecere__sys__globalSystem.errorBuffer), __ecereNameSpace__ecere__sys__globalSystem.errorBuffer = 0);
620 __ecereNameSpace__ecere__sys__globalSystem.errorBufferSize = 0;
621 }
622 }
623 }
624
625
626 extern struct __ecereNameSpace__ecere__com__Class * __ecereNameSpace__ecere__com__eSystem_RegisterClass(int type, char *  name, char *  baseName, int size, int sizeClass, unsigned int (* )(void * ), void (* )(void * ), struct __ecereNameSpace__ecere__com__Instance * module, int declMode, int inheritanceAccess);
627
628 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass___ecereNameSpace__ecere__com__NameSpace;
629
630 struct __ecereNameSpace__ecere__com__NameSpace
631 {
632 char *  name;
633 struct __ecereNameSpace__ecere__com__NameSpace *  btParent;
634 struct __ecereNameSpace__ecere__com__NameSpace *  left;
635 struct __ecereNameSpace__ecere__com__NameSpace *  right;
636 int depth;
637 struct __ecereNameSpace__ecere__com__NameSpace *  parent;
638 struct __ecereNameSpace__ecere__sys__BinaryTree nameSpaces;
639 struct __ecereNameSpace__ecere__sys__BinaryTree classes;
640 struct __ecereNameSpace__ecere__sys__BinaryTree defines;
641 struct __ecereNameSpace__ecere__sys__BinaryTree functions;
642 } __attribute__ ((gcc_struct));
643
644 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass___ecereNameSpace__ecere__com__Module;
645
646 struct __ecereNameSpace__ecere__com__Module
647 {
648 struct __ecereNameSpace__ecere__com__Instance * application;
649 struct __ecereNameSpace__ecere__sys__OldList classes;
650 struct __ecereNameSpace__ecere__sys__OldList defines;
651 struct __ecereNameSpace__ecere__sys__OldList functions;
652 struct __ecereNameSpace__ecere__sys__OldList modules;
653 struct __ecereNameSpace__ecere__com__Instance * prev;
654 struct __ecereNameSpace__ecere__com__Instance * next;
655 char *  name;
656 void *  library;
657 void *  Unload;
658 int importType;
659 int origImportType;
660 struct __ecereNameSpace__ecere__com__NameSpace privateNameSpace;
661 struct __ecereNameSpace__ecere__com__NameSpace publicNameSpace;
662 } __attribute__ ((gcc_struct));
663
664 extern void __ecereNameSpace__ecere__com__eEnum_AddFixedValue(struct __ecereNameSpace__ecere__com__Class * _class, char *  string, int value);
665
666 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass___ecereNameSpace__ecere__com__DefinedExpression;
667
668 struct __ecereNameSpace__ecere__com__DefinedExpression;
669
670 extern struct __ecereNameSpace__ecere__com__DefinedExpression * __ecereNameSpace__ecere__com__eSystem_RegisterDefine(char *  name, char *  value, struct __ecereNameSpace__ecere__com__Instance * module, int declMode);
671
672 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass___ecereNameSpace__ecere__com__BitMember;
673
674 struct __ecereNameSpace__ecere__com__BitMember;
675
676 extern struct __ecereNameSpace__ecere__com__BitMember * __ecereNameSpace__ecere__com__eClass_AddBitMember(struct __ecereNameSpace__ecere__com__Class * _class, char *  name, char *  type, int bitSize, int bitPos, int declMode);
677
678 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass___ecereNameSpace__ecere__com__GlobalFunction;
679
680 struct __ecereNameSpace__ecere__com__GlobalFunction;
681
682 extern struct __ecereNameSpace__ecere__com__GlobalFunction * __ecereNameSpace__ecere__com__eSystem_RegisterFunction(char *  name, char *  type, void *  func, struct __ecereNameSpace__ecere__com__Instance * module, int declMode);
683
684 extern struct __ecereNameSpace__ecere__com__DataMember * __ecereNameSpace__ecere__com__eClass_AddDataMember(struct __ecereNameSpace__ecere__com__Class * _class, char *  name, char *  type, unsigned int size, unsigned int alignment, int declMode);
685
686 void __ecereRegisterModule_System(struct __ecereNameSpace__ecere__com__Instance * module)
687 {
688 struct __ecereNameSpace__ecere__com__Class * class;
689
690 class = __ecereNameSpace__ecere__com__eSystem_RegisterClass(4, "ecere::sys::LoggingMode", 0, 0, 0, 0, 0, module, 1, 1);
691 if(((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + 12)))->application == ((struct __ecereNameSpace__ecere__com__Module *)(((char *)__thisModule + 12)))->application && class)
692 __ecereClass___ecereNameSpace__ecere__sys__LoggingMode = class;
693 __ecereNameSpace__ecere__com__eEnum_AddFixedValue(class, "noLogging", 0);
694 __ecereNameSpace__ecere__com__eEnum_AddFixedValue(class, "stdOut", 1);
695 __ecereNameSpace__ecere__com__eEnum_AddFixedValue(class, "stdErr", 2);
696 __ecereNameSpace__ecere__com__eEnum_AddFixedValue(class, "debug", 3);
697 __ecereNameSpace__ecere__com__eEnum_AddFixedValue(class, "logFile", 4);
698 __ecereNameSpace__ecere__com__eEnum_AddFixedValue(class, "msgBox", 5);
699 __ecereNameSpace__ecere__com__eEnum_AddFixedValue(class, "buffer", 6);
700 class = __ecereNameSpace__ecere__com__eSystem_RegisterClass(4, "ecere::sys::ErrorLevel", 0, 0, 0, 0, 0, module, 1, 1);
701 if(((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + 12)))->application == ((struct __ecereNameSpace__ecere__com__Module *)(((char *)__thisModule + 12)))->application && class)
702 __ecereClass___ecereNameSpace__ecere__sys__ErrorLevel = class;
703 __ecereNameSpace__ecere__com__eEnum_AddFixedValue(class, "veryFatal", 0);
704 __ecereNameSpace__ecere__com__eEnum_AddFixedValue(class, "fatal", 1);
705 __ecereNameSpace__ecere__com__eEnum_AddFixedValue(class, "major", 2);
706 __ecereNameSpace__ecere__com__eEnum_AddFixedValue(class, "minor", 3);
707 __ecereNameSpace__ecere__com__eSystem_RegisterDefine("ecere::sys::AllErrors", "ecere::sys::ErrorLevel::Minor", module, 1);
708 class = __ecereNameSpace__ecere__com__eSystem_RegisterClass(2, "ecere::sys::ErrorCode", 0, 0, 0, 0, 0, module, 1, 1);
709 if(((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + 12)))->application == ((struct __ecereNameSpace__ecere__com__Module *)(((char *)__thisModule + 12)))->application && class)
710 __ecereClass___ecereNameSpace__ecere__sys__ErrorCode = class;
711 __ecereNameSpace__ecere__com__eClass_AddBitMember(class, "level", "ecere::sys::ErrorLevel", 2, 12, 2);
712 __ecereNameSpace__ecere__com__eClass_AddBitMember(class, "code", "uint", 12, 0, 2);
713 class = __ecereNameSpace__ecere__com__eSystem_RegisterClass(4, "ecere::sys::SysErrorCode", "ecere::sys::ErrorCode", 0, 0, 0, 0, module, 1, 1);
714 if(((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + 12)))->application == ((struct __ecereNameSpace__ecere__com__Module *)(((char *)__thisModule + 12)))->application && class)
715 __ecereClass___ecereNameSpace__ecere__sys__SysErrorCode = class;
716 __ecereNameSpace__ecere__com__eEnum_AddFixedValue(class, "allocationFailed", 0);
717 __ecereNameSpace__ecere__com__eEnum_AddFixedValue(class, "nameInexistant", 1);
718 __ecereNameSpace__ecere__com__eEnum_AddFixedValue(class, "nameExists", 2);
719 __ecereNameSpace__ecere__com__eEnum_AddFixedValue(class, "missingLibrary", 3);
720 __ecereNameSpace__ecere__com__eEnum_AddFixedValue(class, "fileNotFound", 4);
721 __ecereNameSpace__ecere__com__eEnum_AddFixedValue(class, "writeFailed", 5);
722 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("ecere::sys::MoveFile", "bool ecere::sys::MoveFile(char * source, char * dest)", __ecereNameSpace__ecere__sys__MoveFile, module, 1);
723 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("ecere::sys::RenameFile", "bool ecere::sys::RenameFile(char * oldName, char * newName)", __ecereNameSpace__ecere__sys__RenameFile, module, 1);
724 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("ecere::sys::DeleteFile", "bool ecere::sys::DeleteFile(char * fileName)", __ecereNameSpace__ecere__sys__DeleteFile, module, 1);
725 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("ecere::sys::MakeDir", "bool ecere::sys::MakeDir(char * path)", __ecereNameSpace__ecere__sys__MakeDir, module, 1);
726 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("ecere::sys::RemoveDir", "bool ecere::sys::RemoveDir(char * path)", __ecereNameSpace__ecere__sys__RemoveDir, module, 1);
727 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("ecere::sys::GetWorkingDir", "char * ecere::sys::GetWorkingDir(char * buf, int size)", __ecereNameSpace__ecere__sys__GetWorkingDir, module, 1);
728 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("ecere::sys::ChangeWorkingDir", "bool ecere::sys::ChangeWorkingDir(char * buf)", __ecereNameSpace__ecere__sys__ChangeWorkingDir, module, 1);
729 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("ecere::sys::GetEnvironment", "char * ecere::sys::GetEnvironment(char * envName, char * envValue, int max)", __ecereNameSpace__ecere__sys__GetEnvironment, module, 1);
730 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("ecere::sys::SetEnvironment", "void ecere::sys::SetEnvironment(char * envName, char * envValue)", __ecereNameSpace__ecere__sys__SetEnvironment, module, 1);
731 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("ecere::sys::UnsetEnvironment", "void ecere::sys::UnsetEnvironment(char * envName)", __ecereNameSpace__ecere__sys__UnsetEnvironment, module, 1);
732 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("ecere::sys::Execute", "bool ecere::sys::Execute(char * command, ...)", __ecereNameSpace__ecere__sys__Execute, module, 1);
733 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("ecere::sys::ExecuteEnv", "bool ecere::sys::ExecuteEnv(char * env, char * command, ...)", __ecereNameSpace__ecere__sys__ExecuteEnv, module, 1);
734 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("ecere::sys::ShellOpen", "bool ecere::sys::ShellOpen(char * fileName, ...)", __ecereNameSpace__ecere__sys__ShellOpen, module, 1);
735 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("ecere::sys::GetFreeSpace", "void ecere::sys::GetFreeSpace(char * path, FileSize64 * size)", __ecereNameSpace__ecere__sys__GetFreeSpace, module, 1);
736 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("ecere::sys::Logf", "void ecere::sys::Logf(char * format, ...)", __ecereNameSpace__ecere__sys__Logf, module, 1);
737 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("ecere::sys::Log", "void ecere::sys::Log(char * text)", __ecereNameSpace__ecere__sys__Log, module, 1);
738 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("ecere::sys::DumpErrors", "void ecere::sys::DumpErrors(bool display)", __ecereNameSpace__ecere__sys__DumpErrors, module, 1);
739 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("ecere::sys::LogErrorCode", "void ecere::sys::LogErrorCode(ecere::sys::ErrorCode errorCode, char * details)", __ecereNameSpace__ecere__sys__LogErrorCode, module, 1);
740 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("ecere::sys::GetLastErrorCode", "uint ecere::sys::GetLastErrorCode(void)", __ecereNameSpace__ecere__sys__GetLastErrorCode, module, 1);
741 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("ecere::sys::ResetError", "void ecere::sys::ResetError(void)", __ecereNameSpace__ecere__sys__ResetError, module, 1);
742 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("ecere::sys::SetErrorLevel", "void ecere::sys::SetErrorLevel(ecere::sys::ErrorLevel level)", __ecereNameSpace__ecere__sys__SetErrorLevel, module, 1);
743 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("ecere::sys::SetLoggingMode", "void ecere::sys::SetLoggingMode(ecere::sys::LoggingMode mode, void * where)", __ecereNameSpace__ecere__sys__SetLoggingMode, module, 1);
744 class = __ecereNameSpace__ecere__com__eSystem_RegisterClass(1, "ecere::sys::System", 0, sizeof(struct __ecereNameSpace__ecere__sys__System), 0, 0, 0, module, 2, 1);
745 if(((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + 12)))->application == ((struct __ecereNameSpace__ecere__com__Module *)(((char *)__thisModule + 12)))->application && class)
746 __ecereClass___ecereNameSpace__ecere__sys__System = class;
747 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "errorLoggingMode", "ecere::sys::LoggingMode", 4, 4, 1);
748 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "errorBuffer", "char *", 4, 4, 1);
749 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "errorBufferSize", "int", 4, 4, 1);
750 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "logFile", "char[MAX_LOCATION]", 797, 1, 1);
751 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "lastErrorCode", "ecere::sys::ErrorCode", 4, 4, 1);
752 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "errorLevel", "ecere::sys::ErrorLevel", 4, 4, 1);
753 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "eventSemaphore", "Semaphore", 4, 4, 1);
754 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "fileMonitors", "ecere::sys::OldList", 20, 4, 1);
755 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "fileMonitorMutex", "Mutex", 4, 4, 1);
756 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "fileMonitorThread", "Thread", 4, 4, 1);
757 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "systemTerminate", "bool", 4, 4, 1);
758 }
759
760 void __ecereUnregisterModule_System(struct __ecereNameSpace__ecere__com__Instance * module)
761 {
762
763 }
764
765 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass___ecereNameSpace__ecere__com__Array_TPL_String_;
766
767 extern void *  __ecereNameSpace__ecere__com__eInstance_New(struct __ecereNameSpace__ecere__com__Class * _class);
768
769 void __ecereProp___ecereNameSpace__ecere__com__Container_Set_copySrc(struct __ecereNameSpace__ecere__com__Instance * this, struct __ecereNameSpace__ecere__com__Instance * value);
770
771 extern struct __ecereNameSpace__ecere__com__Property ** __ecereProp___ecereNameSpace__ecere__com__Container_copySrc;
772
773 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass_String;
774
775 void __ecereCreateModuleInstances_System()
776 {
777 (__ecereNameSpace__ecere__sys__errorMessages = __ecereNameSpace__ecere__com__eInstance_New(__ecereClass___ecereNameSpace__ecere__com__Array_TPL_String_), __ecereProp___ecereNameSpace__ecere__com__Container_Set_copySrc(__ecereNameSpace__ecere__sys__errorMessages, ((struct __ecereNameSpace__ecere__com__Instance *)&__extension__ (struct __ecereNameSpace__ecere__com__BuiltInContainer)
778 {
779 __ecereClass___ecereNameSpace__ecere__com__BuiltInContainer->_vTbl, __ecereClass___ecereNameSpace__ecere__com__BuiltInContainer, 0, __extension__ (char * [])
780 {
781 __ecereNameSpace__ecere__GetTranslatedString(__thisModule, "No error", (((void *)0))), __ecereNameSpace__ecere__GetTranslatedString(__thisModule, "Memory allocation failed", (((void *)0))), __ecereNameSpace__ecere__GetTranslatedString(__thisModule, "Inexistant string identifier specified", (((void *)0))), __ecereNameSpace__ecere__GetTranslatedString(__thisModule, "Identic string identifier already exists", (((void *)0))), __ecereNameSpace__ecere__GetTranslatedString(__thisModule, "Shared library loading failed", (((void *)0))), __ecereNameSpace__ecere__GetTranslatedString(__thisModule, "File not found", (((void *)0))), __ecereNameSpace__ecere__GetTranslatedString(__thisModule, "Couldn't write to file", (((void *)0)))
782 }, 7, __ecereClass_String
783 })));
784 __ecereNameSpace__ecere__com__eInstance_IncRef(__ecereNameSpace__ecere__sys__errorMessages);
785 }
786
787 void __ecereDestroyModuleInstances_System()
788 {
789 (__ecereNameSpace__ecere__com__eInstance_DecRef(__ecereNameSpace__ecere__sys__errorMessages), __ecereNameSpace__ecere__sys__errorMessages = 0);
790 }
791