CORDET Framework - C2 Implementation
CrPsPcktAccFailCreate.c
Go to the documentation of this file.
1 
24 #include "CrPsPcktAccFailCreate.h"
25 
27 #include "FwPrDCreate.h"
28 #include "FwPrConfig.h"
29 #include <CrFwConstants.h>
30 
32 #include <stdlib.h>
33 
34 /* ----------------------------------------------------------------------------------------------------------------- */
36 FwPrBool_t CrPsPcktAccFailG2E(FwPrDesc_t prDesc)
37 {
38  CRFW_UNUSED(prDesc);
39  /* [ Else ] */
40  return 1;
41 }
42 
43 /* ----------------------------------------------------------------------------------------------------------------- */
44 FwPrDesc_t CrPsPcktAccFailCreate(void* prData)
45 {
46  const FwPrCounterU2_t DECISION1 = 1; /* The identifier of decision node DECISION1 in procedure CrPsPcktAccFail */
47  const FwPrCounterU2_t N_OUT_OF_DECISION1 = 2; /* The number of control flows out of decision node DECISION1 in procedure CrPsPcktAccFail */
48  const FwPrCounterU2_t DECISION2 = 2; /* The identifier of decision node DECISION2 in procedure CrPsPcktAccFail */
49  const FwPrCounterU2_t N_OUT_OF_DECISION2 = 2; /* The number of control flows out of decision node DECISION2 in procedure CrPsPcktAccFail */
50 
52  FwPrDesc_t prDesc = FwPrCreate(
53  6, /* N_ANODES - The number of action nodes */
54  2, /* N_DNODES - The number of decision nodes */
55  11, /* N_FLOWS - The number of control flows */
56  6, /* N_ACTIONS - The number of actions */
57  4 /* N_GUARDS - The number of guards */
58  );
59 
61  FwPrSetData(prDesc, prData);
62  FwPrAddActionNode(prDesc, CrPsPcktAccFail_N1, &CrPsPcktAccFailN1);
63  FwPrAddDecisionNode(prDesc, DECISION1, N_OUT_OF_DECISION1);
64  FwPrAddActionNode(prDesc, CrPsPcktAccFail_N2, &CrPsPcktAccFailN2);
65  FwPrAddDecisionNode(prDesc, DECISION2, N_OUT_OF_DECISION2);
66  FwPrAddActionNode(prDesc, CrPsPcktAccFail_N3, &CrPsPcktAccFailN3);
67  FwPrAddActionNode(prDesc, CrPsPcktAccFail_N4, &CrPsPcktAccFailN4);
68  FwPrAddActionNode(prDesc, CrPsPcktAccFail_N5, &CrPsPcktAccFailN5);
69  FwPrAddActionNode(prDesc, CrPsPcktAccFail_N6, &CrPsPcktAccFailN6);
70  FwPrAddFlowIniToDec(prDesc, DECISION1, NULL);
71  FwPrAddFlowActToFin(prDesc, CrPsPcktAccFail_N1, NULL);
72  FwPrAddFlowDecToAct(prDesc, DECISION1, CrPsPcktAccFail_N1, &CrPsPcktAccFailG1);
73  FwPrAddFlowDecToAct(prDesc, DECISION1, CrPsPcktAccFail_N2, &CrPsPcktAccFailG1E);
74  FwPrAddFlowActToDec(prDesc, CrPsPcktAccFail_N2, DECISION2, NULL);
75  FwPrAddFlowDecToAct(prDesc, DECISION2, CrPsPcktAccFail_N3, &CrPsPcktAccFailG2);
76  FwPrAddFlowDecToAct(prDesc, DECISION2, CrPsPcktAccFail_N4, &CrPsPcktAccFailG2E);
77  FwPrAddFlowActToFin(prDesc, CrPsPcktAccFail_N3, NULL);
78  FwPrAddFlowActToAct(prDesc, CrPsPcktAccFail_N4, CrPsPcktAccFail_N5, NULL);
79  FwPrAddFlowActToAct(prDesc, CrPsPcktAccFail_N5, CrPsPcktAccFail_N6, NULL);
80  FwPrAddFlowActToFin(prDesc, CrPsPcktAccFail_N6, NULL);
81 
82  return prDesc;
83 }
void CrPsPcktAccFailN6(FwPrDesc_t prDesc)
Action for node N6.
FwPrBool_t CrPsPcktAccFailG2E(FwPrDesc_t prDesc)
FW Profile function definitions.
#define CRFW_UNUSED(x)
A macro that can be used to specify that a function parameter is not used.
Definition: CrFwConstants.h:27
FwPrDesc_t CrPsPcktAccFailCreate(void *prData)
Create a new procedure descriptor.
Create one instance of the CrPsPcktAccFail procedure.
void CrPsPcktAccFailN3(FwPrDesc_t prDesc)
Action for node N3.
void CrPsPcktAccFailN1(FwPrDesc_t prDesc)
Action for node N1.
FwPrBool_t CrPsPcktAccFailG1(FwPrDesc_t prDesc)
Guard on the Control Flow from DECISION1 to N1.
Header file to define all invariant publicly available constants and types for the CORDET Framework...
FwPrBool_t CrPsPcktAccFailG2(FwPrDesc_t prDesc)
Guard on the Control Flow from DECISION2 to N3.
void CrPsPcktAccFailN5(FwPrDesc_t prDesc)
Action for node N5.
void CrPsPcktAccFailN2(FwPrDesc_t prDesc)
Action for node N2.
void CrPsPcktAccFailN4(FwPrDesc_t prDesc)
Action for node N4.
FwPrBool_t CrPsPcktAccFailG1E(FwPrDesc_t prDesc)
Guard on the Control Flow from DECISION1 to N2.
#define CrPsPcktAccFail_N1
Make sure to include this header file only once.
P&P Software GmbH, Copyright 2012-2013, All Rights Reserved