api refactoring
[m6w6/ext-psi] / src / data.h
diff --git a/src/data.h b/src/data.h
new file mode 100644 (file)
index 0000000..cc497fb
--- /dev/null
@@ -0,0 +1,31 @@
+#ifndef _PSI_DATA_H
+#define _PSI_DATA_H
+
+#include "types.h"
+
+#define PSI_DATA(D) ((struct psi_data *) (D))
+
+#define PSI_DATA_MEMBERS \
+       constants *consts; \
+       decl_typedefs *defs; \
+       decl_structs *structs; \
+       decl_unions *unions; \
+       decl_enums *enums; \
+       decls *decls; \
+       impls *impls; \
+       union { \
+               decl_file file; \
+               decl_libs libs; \
+       } psi; \
+       psi_error_cb error; \
+       unsigned errors; \
+       unsigned flags
+
+struct psi_data {
+       PSI_DATA_MEMBERS;
+};
+
+struct psi_data *psi_data_exchange(struct psi_data *dest, struct psi_data *src);
+void psi_data_dtor(struct psi_data *data);
+
+#endif