]> git.sur5r.net Git - cc65/blobdiff - src/common/symdefs.h
Since we have now builtin search paths, we need to be able to forget them,
[cc65] / src / common / symdefs.h
index 69a42f0241cc52126b0482439fec52ff04348207..b0d4bf6430ef4549f1dda58d88b17cfb34ab4cce 100644 (file)
@@ -6,10 +6,10 @@
 /*                                                                           */
 /*                                                                           */
 /*                                                                           */
-/* (C) 1998     Ullrich von Bassewitz                                        */
-/*              Wacholderweg 14                                              */
-/*              D-70597 Stuttgart                                            */
-/* EMail:       uz@musoftware.de                                             */
+/* (C) 1998-2003 Ullrich von Bassewitz                                       */
+/*               Römerstraße 52                                              */
+/*               D-70794 Filderstadt                                         */
+/* EMail:        uz@cc65.org                                                 */
 /*                                                                           */
 /*                                                                           */
 /* This software is provided 'as-is', without any expressed or implied       */
 
 
 
-/* Import size */
-#define IMP_ABS        0x00            /* Import as normal value */
-#define IMP_ZP                 0x01            /* Import as zero page symbol */
-#define IMP_MASK_SIZE  0x01            /* Size mask */
+/* Number of module constructor/destructor declarations for an export */
+#define EXP_CONDES_MASK                0x07
 
-#define IS_IMP_ABS(x)  (((x) & IMP_MASK_SIZE) == IMP_ABS)
-#define IS_IMP_ZP(x)   (((x) & IMP_MASK_SIZE) == IMP_ZP)
-
-/* Export size */
-#define EXP_ABS                0x00            /* Export as normal value */
-#define EXP_ZP                 0x01            /* Export as zero page value */
-#define EXP_MASK_SIZE  0x01            /* Size mask */
-
-#define IS_EXP_ABS(x)          (((x) & EXP_MASK_SIZE) == EXP_ABS)
-#define IS_EXP_ZP(x)   (((x) & EXP_MASK_SIZE) == EXP_ZP)
+#define IS_EXP_CONDES(x)       (((x) & EXP_CONDES_MASK) != 0)
+#define GET_EXP_CONDES_COUNT(x)        ((x) & EXP_CONDES_MASK)
+#define INC_EXP_CONDES_COUNT(x) ((x)++)
 
 /* Export value type */
-#define EXP_CONST      0x00            /* Mask bit for const values */
-#define EXP_EXPR       0x02            /* Mask bit for expr values */
-#define EXP_MASK_VAL   0x02            /* Value mask */
+#define EXP_CONST              0x00    /* Mask bit for const values */
+#define EXP_EXPR               0x10    /* Mask bit for expr values */
+#define EXP_MASK_VAL           0x10    /* Value mask */
 
-#define IS_EXP_CONST(x)        (((x) & EXP_MASK_VAL) == EXP_CONST)
-#define IS_EXP_EXPR(x)         (((x) & EXP_MASK_VAL) == EXP_EXPR)
+#define IS_EXP_CONST(x)                (((x) & EXP_MASK_VAL) == EXP_CONST)
+#define IS_EXP_EXPR(x)                 (((x) & EXP_MASK_VAL) == EXP_EXPR)
 
-/* Export initializer flag */
-#define EXP_INIT       0x04            /* Mask bit for initializer export */
-#define EXP_MASK_INIT  0x04            /* Value mask */
+/* Export usage */
+#define EXP_EQUATE              0x00           /* Mask bit for an equate */
+#define EXP_LABEL               0x20    /* Mask bit for a label */
+#define EXP_MASK_LABEL          0x20    /* Value mask */
 
-#define IS_EXP_INIT(x) (((x) & EXP_MASK_INIT) == EXP_INIT)
+#define IS_EXP_EQUATE(x)        (((x) & EXP_MASK_LABEL) == EXP_EQUATE)
+#define IS_EXP_LABEL(x)         (((x) & EXP_MASK_LABEL) == EXP_LABEL)