home *** CD-ROM | disk | FTP | other *** search
/ Geek Gadgets 1 / ADE-1.bin / ade-dist / kaffe-0.5p4-src.tgz / tar.out / contrib / kaffe / kaffevm / baseClasses.h < prev    next >
C/C++ Source or Header  |  1996-09-28  |  1KB  |  66 lines

  1. /*
  2.  * baseClasses.h
  3.  * Handle base classes.
  4.  *
  5.  * Copyright (c) 1996 Systems Architecture Research Centre,
  6.  *           City University, London, UK.
  7.  *
  8.  * See the file "license.terms" for information on usage and redistribution
  9.  * of this file, and for a DISCLAIMER OF ALL WARRANTIES.
  10.  *
  11.  * Written by Tim Wilkinson <tim@sarc.city.ac.uk>, February 1996.
  12.  */
  13.  
  14. #ifndef __baseclasses_h
  15. #define __baseclasses_h
  16.  
  17. #include "object.h"
  18.  
  19. typedef struct _stringClass {
  20.     object        head;
  21.     object*        value;
  22.     int        offset;
  23.     int        count;
  24. } stringClass;
  25.  
  26. #define    STRINGCLASS    "java/lang/String"
  27. #define    STRINGINIT    "<init>"
  28. #define    STRINGINITSIG    "([C)V"
  29.  
  30. #define    OBJECTCLASS    "java/lang/Object"
  31. #define    CLASSCLASS    "java/lang/Class"
  32.  
  33. #define    CLONEABLECLASS    "java/lang/Cloneable"
  34.  
  35. /*
  36.  * Exception object.
  37.  */
  38. typedef struct _throwable {
  39.     object            head;
  40.     object*            backtrace;
  41.     struct _stringClass*    message;
  42. } throwable;
  43.  
  44. void        initBaseClasses(void);
  45.  
  46. struct _strconst;
  47. struct _strpair;
  48. struct _constants;
  49. struct _classes;
  50. struct _slots;
  51.  
  52. char*        addStringLen(char*, int);
  53. struct _strpair* addStringPair(char*, char*);
  54. stringClass*    getString(struct _strconst*);
  55. struct _slots*    makeStringObject(int, struct _constants*);
  56. void        initClasses(void);
  57.  
  58. #define        addString(_s)    addStringLen((_s), strlen(_s))
  59.  
  60. extern char* ObjectClassName;
  61. extern struct _classes*    ObjectClass;
  62. extern struct _classes*    ClassClass;
  63. extern struct _classes*    ClassString;
  64.  
  65. #endif
  66.