new type tag
[libfirm] / ir / common / firm_common.h
index 831c37c..80bfd34 100644 (file)
 #endif
 #endif
 
-/** a list of firm kinds */
+/** a list of firm kinds
+ @@@ not all datatypes are tagged yet. */
 typedef enum {
   k_entity,     /**< an entity */
   k_type,       /**< a type */
+  k_ir_graph,   /**< an ir graph */
   k_ir_node,    /**< an ir node */
-  k_ir_loop     /**< a loop */
+  k_ir_mode,    /**< an ir mode */
+  k_ir_op,      /**< an ir opcode */
+  k_tarval,     /**< a tarval */
+  k_ir_loop,    /**< a loop */
+  k_ir_compound_graph_path, /**< a compound graph path, see entity.h */
+  k_ir_max      /**< maximum value -- illegal for firm nodes. */
 } firm_kind;
 
 /**
  * Returns the kind of a thing.
  *
- * @param firm_thing  pointer repraesenting a firm object
+ * @param firm_thing  pointer representing a firm object
  */
-firm_kind get_kind(void *firm_thing);
+firm_kind get_kind(const void *firm_thing);
 
 /** Returns the kind of a thing as a string. */
 const char* print_firm_kind(void *firm_thing);