--- /dev/null
+/* Automatically generated from for_cmetric_config.o */
+/* Conditionals to control compilation */
+/* Defines from the values defined to symbols */
+#define FLAG_BAR_b 0x01
+#define FLAG_BAR_m 0x02
+#define FLAG_FOO_b 0x0
+#define FLAG_FOO_m 0x01
+#define o_blah_field1 0x0
+#define o_blah_field2 0x04
+#define o_blah_flags 0x08
+#define s_blah_field1 0x04
+#define s_blah_field2 0x01
+#define s_blah_flags 0x04
--- /dev/null
+/* Export of offset information to assembly source code */
+
+/* %N (for N a digit) means print operand N in usual manner.
+ %lN label name with no punctuation
+ %cN constant expression with no punctuation
+ %aN means expect operand N to be a memory address
+ (not a memory reference!) and print a reference
+ to that address.
+ %nN constant expression for minus the value with no other punctuation.
+ */
+
+#include "header.h"
+
+#define NUM2ASM(sym,val) \
+ __asm__ ( \
+ ".set " #sym ",%c0\n" \
+ ".global " #sym "\n" \
+ ::"n"(val) \
+ )
+
+#define FIELD2ASM(strct, fld) \
+ NUM2ASM(_cmetric2def_o_##strct##_##fld,&((struct strct*)0L)->fld); \
+ NUM2ASM(_cmetric2def_s_##strct##_##fld,sizeof(((struct strct*)0L)->fld))
+
+#define MASKBIT2ASM(def_base) \
+ NUM2ASM(_cmetric2def_##def_base##_b,def_base##_b); \
+ NUM2ASM(_cmetric2def_##def_base##_m,def_base##_m)
+
+#define VALUE2ASM(value_name,value) \
+ NUM2ASM(_cmetric2def_##value_name,value)
+
+
+void pxmc_public2asm(void)
+{
+
+#ifdef CONFIG_TEST_OPTION1
+VALUE2ASM(CMETRIC_TEST_OPTION1,1);
+#endif
+#ifdef CONFIG_TEST_OPTION2
+VALUE2ASM(CMETRIC_TEST_OPTION2,1);
+#endif
+#ifdef CONFIG_TEST_OPTION3
+VALUE2ASM(CMETRIC_TEST_OPTION3,1);
+#endif
+#ifdef CONFIG_TEST_OPTION4
+VALUE2ASM(CMETRIC_TEST_OPTION4,1);
+#endif
+#ifdef CONFIG_TEST_OPTION5
+VALUE2ASM(CMETRIC_TEST_OPTION5,1);
+#endif
+#ifdef CONFIG_TEST_OPTION6
+VALUE2ASM(CMETRIC_TEST_OPTION6,1);
+#endif
+
+MASKBIT2ASM(FLAG_FOO);
+MASKBIT2ASM(FLAG_BAR);
+
+FIELD2ASM(blah, field1);
+FIELD2ASM(blah, field2);
+FIELD2ASM(blah, flags);
+
+}