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