102a103,105
> self.isStateDecl = ("state_decl" in self)
> self.statePermPairs = []
>
160a164,166
> def statePermPairAdd(self, state_name, perm_name):
> self.statePermPairs.append([state_name, perm_name])
>
448a455,457
> ''')
> if self.isStateDecl:
> code('#include "mem/protocol/AccessPermission.hh"')
449a459,460
> code('''
>
493a505,512
> if self.isStateDecl:
> code('''
>
> // Code to convert the current state to an access permission
> AccessPermission ${{self.c_ident}}_to_permission(const ${{self.c_ident}}& obj);
>
> ''')
>
521a541,561
> if self.isStateDecl:
> code('''
> // Code to convert the current state to an access permission
> AccessPermission ${{self.c_ident}}_to_permission(const ${{self.c_ident}}& obj)
> {
> switch(obj) {
> ''')
> # For each case
> code.indent()
> for statePerm in self.statePermPairs:
> code(' case ${{self.c_ident}}_${{statePerm[0]}}:')
> code(' return AccessPermission_${{statePerm[1]}};')
> code.dedent()
> code ('''
> default:
> panic("Unknown state access permission converstion for ${{self.c_ident}}");
> }
> }
>
> ''')
>