Hello,
Your problem is that you can't initialize structs like that. When initializing a struct with the {} syntax, you want to just provide a list of all the values of the members *in the order declared in the struct*. If the member is another struct, you can define the submembers using another {}. Try this (assuming that your definition of the struct regDef has the fields defined in the order maskVal, mode with no other members in the struct):
/* Edit, the forum ate my whitespace that made the comment line up with the values. Let me know if the syntax doesn't make sense... */
/* addr mode_val rst_val majVer majVer_rd maskVal mode end minVer minVer_rd maskVal mode end end_of_struct */
struct ver_id initval = {0x0, 0x0, 0x00100000, 1, { 0xFFF00000, READ }, 0, { 0x000FFFFF, READ } };
I can't run it because I don't have your definition of struct regDef, but assuming it is something like:
struct regDef {
U32 maskVal;
U32 mode;
};
Where READ is defined as some number, this should work (hopefully). Let me know...