]> rtime.felk.cvut.cz Git - arc.git/commitdiff
Moved CanIf configuration types into CanIf_ConfigTypes.h
authortojo <devnull@localhost>
Wed, 9 Mar 2011 13:19:42 +0000 (14:19 +0100)
committertojo <devnull@localhost>
Wed, 9 Mar 2011 13:19:42 +0000 (14:19 +0100)
CanIf SW version bumbed to 1.3.0
Examples not updated yet

boards/mpc5516it/config/CanIf_Cfg.h
boards/mpc5567qrtech/config/CanIf_Cfg.h
include/CanIf.h
include/CanIf_ConfigTypes.h [new file with mode: 0644]

index b175509c319771ea3acd8f278f7ba0b745277df5..8602d2730cbbe20015f3acbd8249c019007d1bdd 100644 (file)
@@ -17,7 +17,6 @@
  *  @{ */\r
 \r
 /** @file CanIf_Cfg.h\r
- *  Definitions of configuration parameters for CAN Interface.\r
  */\r
 \r
 #warning "This default file may only be used as an example!"\r
@@ -44,44 +43,10 @@ typedef enum {
        CANIF_CHANNEL_CNT,\r
 } CanIf_Arc_ChannelIdType;\r
 \r
-/** Software filtering type */\r
-typedef enum {\r
-       CANIF_SOFTFILTER_TYPE_BINARY = 0,  /**< Not supported */\r
-       CANIF_SOFTFILTER_TYPE_INDEX,       /**< Not supported */\r
-       CANIF_SOFTFILTER_TYPE_LINEAR,      /**< Not supported */\r
-       CANIF_SOFTFILTER_TYPE_TABLE,       /**< Not supported */\r
-       CANIF_SOFTFILTER_TYPE_MASK,        /**< CanIfCanRxPduCanIdMask in RxPduConfig is used for filtering */\r
-} CanIf_SoftwareFilterTypeType;\r
-\r
-/** Type of the upper layer interfacing this module */\r
-typedef enum {\r
-       CANIF_USER_TYPE_CAN_NM,\r
-       CANIF_USER_TYPE_CAN_TP,\r
-       CANIF_USER_TYPE_CAN_PDUR,\r
-       CANIF_USER_TYPE_CAN_SPECIAL,\r
-} CanIf_UserTypeType;\r
-\r
-/** Notification function for CANIF_USER_TYPE_CAN_SPECIAL */\r
-typedef void (*CanIf_FuncTypeCanSpecial)(PduIdType, const uint8 *, uint8, Can_IdType);\r
-\r
-/** Defines if PDU Can id can be changed at runtime. */\r
-typedef enum {\r
-  CANIF_PDU_TYPE_STATIC = 0,\r
-  CANIF_PDU_TYPE_DYNAMIC       /**< Not supported */\r
-} CanIf_PduTypeType;\r
-\r
-/** PDU Can id type */\r
-typedef enum {\r
-  CANIF_CAN_ID_TYPE_29 = 0,\r
-  CANIF_CAN_ID_TYPE_11\r
-} CanIf_CanIdTypeType;\r
-\r
-/*\r
- * Public container\r
- */\r
 #define CANIF_VERSION_INFO_API              STD_ON   /**< Build version info API */\r
 #define CANIF_DEV_ERROR_DETECT              STD_ON   /**< Enable Development Error Trace */\r
 #define CANIF_DLC_CHECK                     STD_ON   /**< Enable/disable DLC checking. */\r
+#define CANIF_ARC_RUNTIME_PDU_CONFIGURATION    STD_OFF\r
 #define CANIF_MULITPLE_DRIVER_SUPPORT       STD_OFF  /**< Not supported */\r
 #define CANIF_READRXPDU_DATA_API            STD_OFF  /**< Not supported */\r
 #define CANIF_READRXPDU_NOTIFY_STATUS_API      STD_OFF  /**< Not supported */\r
@@ -91,339 +56,7 @@ typedef enum {
 #define CANIF_TRANSCEIVER_API               STD_OFF  /**< Not supported */\r
 #define CANIF_TRANSMIT_CANCELLATION         STD_OFF  /**< Not supported */\r
 \r
-\r
-//-------------------------------------------------------------------\r
-\r
-/** Parameters for configuring Can id ranges. Not supported. */\r
-typedef struct {\r
-       /** Lower CAN Identifier of a receive CAN L-PDU for identifier range\r
-        *  definition, in which all CAN Ids shall pass the software filtering. Range: 11\r
-     *  Bit for Standard CAN Identifier 29 Bit for Extended CAN Identifer */\r
-       uint32 CanIfRxPduLowerCanId;\r
-\r
-       /** Upper CAN Identifier of a receive CAN L-PDU for identifier range\r
-        *  definition, in which all CAN Ids shall pass the software filtering. Range: 11\r
-        *  Bit for Standard CAN Identifier 29 Bit for Extended CAN Identifer */\r
-       uint32 CanIfRxPduUpperCanId;\r
-} CanIf_HrhRangeConfigType;\r
-\r
-\r
-//-------------------------------------------------------------------\r
-/*\r
- * CanIfInitHrhConfig container\r
- */\r
-/** Definition of Hardware Receive Handle */\r
-typedef struct {\r
-       /** Defines the HRH type i.e, whether its a BasicCan or FullCan. If BasicCan is\r
-        *  configured, software filtering is enabled. */\r
-  Can_Arc_HohType CanIfHrhType;\r
-\r
-       /** Selects the hardware receive objects by using the HRH range/list from\r
-        *  CAN Driver configuration to define, for which HRH a software filtering has\r
-        *  to be performed at during receive processing. True: Software filtering is\r
-        *  enabled False: Software filtering is disabled */\r
-       boolean  CanIfSoftwareFilterHrh;\r
-\r
-       /** Reference to controller Id to which the HRH belongs to. A controller can\r
-        *  contain one or more HRHs. */\r
-       CanIf_Arc_ChannelIdType CanIfCanControllerHrhIdRef;\r
-\r
-       /** The parameter refers to a particular HRH object in the CAN Driver Module\r
-        *  configuration. The HRH id is unique in a given CAN Driver. The HRH Ids\r
-        *  are defined in the CAN Driver Module and hence it is derived from CAN\r
-        *  Driver Configuration. */\r
-       Can_Arc_HRHType CanIfHrhIdSymRef ;\r
-\r
-       /** Defines the parameters required for configuraing multiple\r
-        *  CANID ranges for a given same HRH. */\r
-       const CanIf_HrhRangeConfigType *CanIfHrhRangeConfig;\r
-\r
-  /** End Of List. Set to TRUE if this is the last object in the list. */\r
-  boolean CanIf_Arc_EOL;\r
-} CanIf_HrhConfigType;\r
-\r
-//-------------------------------------------------------------------\r
-/*\r
- * CanIfInitHthConfig container\r
- */\r
-/** Definition of Hardware Transmit Handle */\r
-typedef struct {\r
-  /** Defines the HTH type i.e, whether its a BasicCan or FullCan. */\r
-  Can_Arc_HohType CanIfHthType;\r
-\r
-  /** Reference to controller Id to which the HTH belongs to. A controller\r
-   *  can contain one or more HTHs */\r
-  CanIf_Arc_ChannelIdType CanIfCanControllerIdRef;\r
-\r
-  /** The parameter refers to a particular HTH object in the CAN Driver Module\r
-   *  configuration. The HTH id is unique in a given CAN Driver. The HTH Ids\r
-   *  are defined in the CAN Driver Module and hence it is derived from CAN\r
-   *  Driver Configuration. */\r
-  Can_Arc_HTHType CanIfHthIdSymRef ;\r
-\r
-  /** End Of List. Set to TRUE if this is the last object in the list. */\r
-  boolean CanIf_Arc_EOL;\r
-} CanIf_HthConfigType;\r
-\r
-//-------------------------------------------------------------------\r
-/*\r
- * CanIfInitHohConfig container\r
- */\r
-/** Definition of Hardware Object Handle. */\r
-typedef struct {\r
-  /** Reference to the CAN Driver controller config. */\r
-  const Can_ConfigSetType   *CanConfigSet;\r
-\r
-  /** This container contains contiguration parameters for each hardware receive object. */\r
-  const CanIf_HrhConfigType *CanIfHrhConfig;\r
-\r
-  /** This container contains parameters releated to each HTH */\r
-  const CanIf_HthConfigType *CanIfHthConfig;\r
-\r
-  /** End Of List. Set to TRUE if this is the last object in the list. */\r
-  boolean CanIf_Arc_EOL;\r
-} CanIf_InitHohConfigType;\r
-\r
-//-------------------------------------------------------------------\r
-/*\r
- * CanIfTxPduConfig container\r
- */\r
-\r
-/** Definition of Tx PDU (Protocol Data Unit). */\r
-typedef struct {\r
-       /** ECU wide unique, symbolic handle for transmit CAN L-PDU. The\r
-        *  CanIfCanTxPduId is configurable at pre-compile and post-built time.\r
-        *  Range: 0..max. number of CantTxPduIds       PduIdType       CanTxPduId; */\r
-       PduIdType CanIfTxPduId;\r
-\r
-       /** CAN Identifier of transmit CAN L-PDUs used by the CAN Driver for CAN L-\r
-        *  PDU transmission. Range: 11 Bit For Standard CAN Identifier ... 29 Bit For\r
-        *  Extended CAN identifier */\r
-       uint32  CanIfCanTxPduIdCanId;\r
-\r
-       /** Data length code (in bytes) of transmit CAN L-PDUs used by the CAN\r
-        *  Driver for CAN L-PDU transmission. The data area size of a CAN L-Pdu\r
-        *  can have a range from 0 to 8 bytes. */\r
-       uint8           CanIfCanTxPduIdDlc;\r
-\r
-       /** Defines the type of each transmit CAN L-PDU.\r
-        *  DYNAMIC  CAN ID is defined at runtime.\r
-        *  STATIC  CAN ID is defined at compile-time. */\r
-       CanIf_PduTypeType               CanIfCanTxPduType;\r
-\r
-#if ( CANIF_READTXPDU_NOTIFY_STATUS_API == STD_ON )\r
-       /** Enables and disables transmit confirmation for each transmit CAN L-PDU\r
-        *  for reading its notification status. True: Enabled False: Disabled */\r
-       boolean         CanIfReadTxPduNotifyStatus;\r
-#endif\r
-\r
-       /** CAN Identifier of transmit CAN L-PDUs used by the CAN Driver for CAN L-\r
-        *  PDU transmission.\r
-        *  EXTENDED_CAN  The CANID is of type Extended (29 bits).\r
-        *  STANDARD_CAN  The CANID is of type Standard (11 bits). */\r
-       CanIf_CanIdTypeType             CanIfTxPduIdCanIdType;\r
-\r
-       /** Name of target confirmation services to target upper layers (PduR, CanNm\r
-        *  and CanTp. If parameter is not configured then no call-out function is\r
-        *  provided by the upper layer for this Tx L-PDU. */\r
-       void (*CanIfUserTxConfirmation)(PduIdType);   /* CANIF 109 */\r
-\r
-       /** Handle, that defines the hardware object or the pool of hardware objects\r
-        *  configured for transmission. The parameter refers HTH Id, to which the L-\r
-        *  PDU belongs to. */\r
-       const CanIf_HthConfigType *CanIfCanTxPduHthRef;\r
-\r
-       /** Reference to the "global" Pdu structure to allow harmonization of handle\r
-        *  IDs in the COM-Stack. */\r
-       void *PduIdRef;\r
-} CanIf_TxPduConfigType;\r
-\r
-//-------------------------------------------------------------------\r
-/*\r
- * CanIfRxPduConfig container\r
- */\r
-\r
-\r
-/** Definition of Rx PDU (Protocol Data Unit). */\r
-typedef struct {\r
-  /** ECU wide unique, symbolic handle for receive CAN L-PDU. The\r
-   *  CanRxPduId is configurable at pre-compile and post-built time. It shall fulfill\r
-   *  ANSI/AUTOSAR definitions for constant defines. Range: 0..max. number\r
-   *  of defined CanRxPduIds */\r
-  PduIdType CanIfCanRxPduId;\r
-\r
-  /** CAN Identifier of Receive CAN L-PDUs used by the CAN Interface. Exa:\r
-   *  Software Filtering. Range: 11 Bit For Standard CAN Identifier ... 29 Bit For\r
-   *  Extended CAN identifier */\r
-       uint32          CanIfCanRxPduCanId;\r
-\r
-  /** Data Length code of received CAN L-PDUs used by the CAN Interface.\r
-   *  Exa: DLC check. The data area size of a CAN L-PDU can have a range\r
-   *  from 0 to 8 bytes.       uint8           CanIfCanRxPduDlc; */\r
-       uint8           CanIfCanRxPduDlc;\r
-\r
-#if ( CANIF_CANPDUID_READDATA_API == STD_ON )\r
-  /** Enables and disables the Rx buffering for reading of received L-PDU data.\r
-   *  True: Enabled False: Disabled */\r
-       boolean         CanIfReadRxPduData;\r
-#endif\r
-\r
-#if ( CANIF_READRXPDU_NOTIF_STATUS_API == STD_ON )\r
-  /** CanIfReadRxPduNotifyStatus {CANIF_READRXPDU_NOTIFY_STATUS}\r
-   *  Enables and disables receive indication for each receive CAN L-PDU for\r
-   *  reading its' notification status. True: Enabled False: Disabled */\r
-       boolean         CanIfReadRxPduNotifyStatus;\r
-#endif\r
-\r
-  /** CAN Identifier of receive CAN L-PDUs used by the CAN Driver for CAN L-\r
-   *  PDU transmission.\r
-   *  EXTENDED_CAN  The CANID is of type Extended (29 bits)\r
-   *  STANDARD_CAN  The CANID is of type Standard (11 bits) */\r
-       CanIf_CanIdTypeType     CanIfRxPduIdCanIdType;\r
-\r
-  /** This parameter defines the type of the receive indication call-outs called to\r
-   *  the corresponding upper layer the used TargetRxPduId belongs to. */\r
-       CanIf_UserTypeType  CanIfRxUserType;\r
-\r
-  /** Name of target indication services to target upper layers (PduRouter,\r
-   *  CanNm, CanTp and ComplexDeviceDrivers). If parameter is 0 no call-out\r
-   *  function is configured. */\r
-       void *CanIfUserRxIndication;\r
-\r
-  /** The HRH to which Rx L-PDU belongs to, is referred through this\r
-   *  parameter. */\r
-       const CanIf_HrhConfigType *CanIfCanRxPduHrhRef;\r
-\r
-  /** Reference to the "global" Pdu structure to allow harmonization of handle\r
-   *  IDs in the COM-Stack. */\r
-       void *PduIdRef;\r
-\r
-  /** Defines the type of software filtering that should be used\r
-   *  for this receive object. */\r
-       CanIf_SoftwareFilterTypeType CanIfSoftwareFilterType;\r
-\r
-  /** Acceptance filters, 1 - care, 0 - don't care.\r
-   *  Is enabled by the CanIfSoftwareFilterMask in CanIf_HrhConfigType\r
-   *  ArcCore exension */\r
-       uint32 CanIfCanRxPduCanIdMask;\r
-\r
-} CanIf_RxPduConfigType;\r
-\r
-//-------------------------------------------------------------------\r
-\r
-/*\r
- * CanIfControllerConfig container\r
- */\r
-/** Not supported. */\r
-typedef enum {\r
-       CANIF_WAKEUP_SUPPORT_CONTROLLER,\r
-       CANIF_WAKEUP_SUPPORT_NO_WAKEUP,\r
-       CANIF_WAKEUP_SUPPORT_TRANSCEIVER,\r
-} CanIf_WakeupSupportType;\r
-\r
-\r
-/** Container used to create channel init configurations.\r
- *  @see CanIf_Arc_ConfigurationIndexType\r
- *  @see CanIf_Arc_ChannelIdType */\r
-typedef struct {\r
-    /** Not used */\r
-       CanIf_WakeupSupportType WakeupSupport;\r
-\r
-       /** CanIf-specific id of the controller */\r
-       CanIf_Arc_ChannelIdType CanIfControllerIdRef;\r
-\r
-       /** Not used */\r
-       const char CanIfDriverNameRef[8];\r
-\r
-       /** Reference to */\r
-       const Can_ControllerConfigType *CanIfInitControllerRef;\r
-} CanIf_ControllerConfigType;\r
-\r
-//-------------------------------------------------------------------\r
-/*\r
- * CanIfTransceiverDrvConfig container\r
- */\r
-\r
-typedef struct {\r
-       boolean TrcvWakeupNotification;\r
-       uint8   TrcvIdRef;\r
-} CanIf_TransceiverDrvConfigType;\r
-\r
-\r
-typedef struct {\r
-       uint32 todo;\r
-} CanIf_TransceiverConfigType;\r
-\r
-/** Callout functions with respect to the upper layers. This callout functions\r
- *  defined in this container are common to all configured underlying CAN\r
- *  Drivers / CAN Transceiver Drivers. */\r
-typedef struct {\r
-       /** Name of target BusOff notification services to target upper layers\r
-        *  (PduRouter, CanNm, CanTp and ComplexDeviceDrivers). */\r
-       void (*CanIfBusOffNotification)(uint8 Controller);\r
-\r
-       /** Name of target wakeup notification services to target upper layers\r
-        *  e.g Ecu_StateManager. If parameter is 0\r
-        *  no call-out function is configured. */\r
-       void (*CanIfWakeUpNotification)();\r
-\r
-       /** Name of target wakeup validation notification services to target upper\r
-        *  layers (ECU State Manager). If parameter is 0 no call-out function is\r
-        *  configured. */\r
-       void (*CanIfWakeupValidNotification)();\r
-\r
-       /** ArcCore ext. */\r
-       void (*CanIfErrorNotificaton)(uint8,Can_Arc_ErrorType);\r
-\r
-} CanIf_DispatchConfigType;\r
-\r
-/** This container contains the references to the configuration setup of each\r
- *  underlying CAN driver. */\r
-typedef struct {\r
-       /** Not used. */\r
-       uint32 CanIfConfigSet;\r
-\r
-       /** Size of Rx PDU list. */\r
-       uint32 CanIfNumberOfCanRxPduIds;\r
-       /** Size of Tx PDU list. */\r
-       uint32 CanIfNumberOfCanTXPduIds;\r
-       /** Not used */\r
-       uint32 CanIfNumberOfDynamicCanTXPduIds;\r
-\r
-       //\r
-       // Containers\r
-       //\r
-\r
-  /** Hardware Object Handle list */\r
-       const CanIf_InitHohConfigType *CanIfHohConfigPtr;\r
-\r
-  /** Rx PDU's list */\r
-       const CanIf_RxPduConfigType *CanIfRxPduConfigPtr;\r
-\r
-  /** Tx PDU's list */\r
-       const CanIf_TxPduConfigType *CanIfTxPduConfigPtr;\r
-\r
-} CanIf_InitConfigType;\r
-\r
-/** Top level config container. */\r
-typedef struct {\r
-       /** Reference to the list of channel init configurations. */\r
-       const CanIf_ControllerConfigType        *ControllerConfig;\r
-\r
-       /** Callout functions with respect to the upper layers. This callout\r
-        *  functions defined in this container are common to all\r
-        *  configured underlying CAN Drivers / CAN Transceiver Drivers */\r
-       const CanIf_DispatchConfigType  *DispatchConfig;\r
-\r
-       /** This container contains the init parameters of the CAN Interface. */\r
-       const CanIf_InitConfigType              *InitConfig;\r
-\r
-       /** Not used */\r
-       const CanIf_TransceiverConfigType *TransceiverConfig;\r
-\r
-       /** ArcCore: Contains the mapping from CanIf-specific Channels to Can Controllers */\r
-       const CanControllerIdType                       *Arc_ChannelToControllerMap;\r
-} CanIf_ConfigType;\r
+#include "CanIf_ConfigTypes.h"\r
 \r
 /** Instance of the top level container. */\r
 extern CanIf_ConfigType CanIf_Config;\r
index 2542beb529cb9b6d23a5acbe4491c56837214923..8602d2730cbbe20015f3acbd8249c019007d1bdd 100644 (file)
  * for more details.\r
  * -------------------------------- Arctic Core ------------------------------*/\r
 \r
+/** @addtogroup CanIf CAN Interface\r
+ *  @{ */\r
 \r
-\r
-\r
-\r
-\r
-\r
+/** @file CanIf_Cfg.h\r
+ */\r
 \r
 #warning "This default file may only be used as an example!"\r
 \r
@@ -27,8 +26,8 @@
 \r
 #include "Can.h"\r
 \r
-// Identifiers for the elements in CanIfControllerConfig[]\r
-// This is the ConfigurationIndex in CanIf_InitController()\r
+/** Identifiers for the elements in CanIfControllerConfig[].\r
+ *  This is the ConfigurationIndex in CanIf_InitController(). */\r
 typedef enum {\r
        CANIF_CHANNEL_0_CONFIG_0 = 0,\r
 \r
@@ -37,415 +36,31 @@ typedef enum {
        CANIF_CHANNEL_CONFIGURATION_CNT\r
 } CanIf_Arc_ConfigurationIndexType;\r
 \r
+/** Channel id's */\r
 typedef enum {\r
        CANIF_CHANNEL_0,\r
        CANIF_CHANNEL_1,\r
        CANIF_CHANNEL_CNT,\r
 } CanIf_Arc_ChannelIdType;\r
 \r
-typedef enum {\r
-       CANIF_SOFTFILTER_TYPE_BINARY = 0,  // Not supported\r
-       CANIF_SOFTFILTER_TYPE_INDEX,  // Not supported\r
-       CANIF_SOFTFILTER_TYPE_LINEAR, // Not supported\r
-       CANIF_SOFTFILTER_TYPE_TABLE,  // Not supported\r
-       CANIF_SOFTFILTER_TYPE_MASK,  // CanIfCanRxPduCanIdMask in RxPduConfig is used for filtering\r
-} CanIf_SoftwareFilterTypeType;\r
-\r
-typedef enum {\r
-       CANIF_USER_TYPE_CAN_NM,\r
-       CANIF_USER_TYPE_CAN_TP,\r
-       CANIF_USER_TYPE_CAN_PDUR,\r
-       CANIF_USER_TYPE_CAN_SPECIAL,\r
-} CanIf_UserTypeType;\r
-\r
-\r
-\r
-typedef void (*CanIf_FuncTypeCanSpecial)(PduIdType, const uint8 *, uint8, Can_IdType);\r
-\r
-typedef enum {\r
-  CANIF_PDU_TYPE_STATIC = 0,\r
-  CANIF_PDU_TYPE_DYNAMIC       // Not supported\r
-} CanIf_PduTypeType;\r
-\r
-typedef enum {\r
-  CANIF_CAN_ID_TYPE_29 = 0,\r
-  CANIF_CAN_ID_TYPE_11\r
-} CanIf_CanIdTypeType;\r
-\r
-/*\r
- * Public container\r
- */\r
-#define CANIF_VERSION_INFO_API            STD_ON\r
-#define CANIF_DEV_ERROR_DETECT                             STD_ON\r
-#define CANIF_DLC_CHECK                   STD_ON\r
-#define CANIF_MULITPLE_DRIVER_SUPPORT     STD_OFF  // Not supported\r
-#define CANIF_READRXPDU_DATA_API                           STD_OFF  // Not supported\r
-#define CANIF_READRXPDU_NOTIFY_STATUS_API      STD_OFF  // Not supported\r
-#define CANIF_READTXPDU_NOTIFY_STATUS_API      STD_OFF  // Not supported\r
-#define CANIF_SETDYNAMICTXID_API          STD_OFF  // Not supported\r
-#define CANIF_WAKEUP_EVENT_API                             STD_OFF  // Not supported\r
-#define CANIF_TRANSCEIVER_API             STD_OFF  // Not supported\r
-#define CANIF_TRANSMIT_CANCELLATION       STD_OFF  // Not supported\r
-\r
-//-------------------------------------------------------------------\r
-/*\r
- * CanIfHrhRangeConfig container\r
- */\r
-\r
-typedef struct {\r
-       //      Lower CAN Identifier of a receive CAN L-PDU for identifier range\r
-       //      definition, in which all CAN Ids shall pass the software filtering. Range: 11\r
-       //      Bit for Standard CAN Identifier 29 Bit for Extended CAN Identifer\r
-       uint32 CanIfRxPduLowerCanId;\r
-\r
-       //      Upper CAN Identifier of a receive CAN L-PDU for identifier range\r
-       //      definition, in which all CAN Ids shall pass the software filtering. Range: 11\r
-       //      Bit for Standard CAN Identifier 29 Bit for Extended CAN Identifer\r
-       uint32 CanIfRxPduUpperCanId;\r
-} CanIf_HrhRangeConfigType;\r
-\r
-\r
-\r
-//-------------------------------------------------------------------\r
-/*\r
- * CanIfInitHrhConfig container\r
- */\r
-typedef struct {\r
-       //      Defines the HRH type i.e, whether its a BasicCan or FullCan. If BasicCan is\r
-       //      configured, software filtering is enabled.\r
-  Can_Arc_HohType CanIfHrhType;\r
-\r
-       //      Selects the hardware receive objects by using the HRH range/list from\r
-       //      CAN Driver configuration to define, for which HRH a software filtering has\r
-       //      to be performed at during receive processing. True: Software filtering is\r
-       //      enabled False: Software filtering is disabled\r
-       boolean  CanIfSoftwareFilterHrh;\r
-\r
-       //      Reference to controller Id to which the HRH belongs to. A controller can\r
-       //      contain one or more HRHs.\r
-       CanIf_Arc_ChannelIdType CanIfCanControllerHrhIdRef;\r
-\r
-       //      The parameter refers to a particular HRH object in the CAN Driver Module\r
-       //      configuration. The HRH id is unique in a given CAN Driver. The HRH Ids\r
-       //      are defined in the CAN Driver Module and hence it is derived from CAN\r
-       //      Driver Configuration.\r
-       Can_Arc_HRHType CanIfHrhIdSymRef ;\r
-\r
-       //      Defines the parameters required for configuraing multiple\r
-       //      CANID ranges for a given same HRH.\r
-       const CanIf_HrhRangeConfigType *CanIfHrhRangeConfig;\r
-\r
-  // End Of List. Set to TRUE is this is the last object in the list.\r
-  boolean CanIf_Arc_EOL;\r
-} CanIf_HrhConfigType;\r
-\r
-//-------------------------------------------------------------------\r
-/*\r
- * CanIfInitHthConfig container\r
- */\r
-\r
-typedef struct {\r
-  //  Defines the HTH type i.e, whether its a BasicCan or FullCan.\r
-  Can_Arc_HohType CanIfHthType;\r
-\r
-  // Reference to controller Id to which the HTH belongs to. A controller\r
-  // can contain one or more HTHs\r
-  CanIf_Arc_ChannelIdType CanIfCanControllerIdRef;\r
-\r
-  //  The parameter refers to a particular HTH object in the CAN Driver Module\r
-  //  configuration. The HTH id is unique in a given CAN Driver. The HTH Ids\r
-  //  are defined in the CAN Driver Module and hence it is derived from CAN\r
-  //  Driver Configuration.\r
-  Can_Arc_HTHType CanIfHthIdSymRef ;\r
-\r
-  // End Of List. Set to TRUE is this is the last object in the list.\r
-  boolean CanIf_Arc_EOL;\r
-} CanIf_HthConfigType;\r
-\r
-//-------------------------------------------------------------------\r
-/*\r
- * CanIfInitHohConfig container\r
- */\r
-typedef struct {\r
-  //  Selects the CAN interface specific configuration setup. This type of external\r
-  // data structure shall contain the post build initialization data for the\r
-  // CAN interface for all underlying CAN Drivers.\r
-  const Can_ConfigSetType   *CanConfigSet;\r
-\r
-  // This container contains contiguration parameters for each hardware receive object.\r
-  const CanIf_HrhConfigType *CanIfHrhConfig;\r
-\r
-  // This container contains parameters releated to each HTH\r
-  const CanIf_HthConfigType *CanIfHthConfig;\r
-\r
-  // End Of List. Set to TRUE is this is the last object in the list.\r
-  boolean CanIf_Arc_EOL;\r
-} CanIf_InitHohConfigType;\r
-\r
-//-------------------------------------------------------------------\r
-/*\r
- * CanIfTxPduConfig container\r
- */\r
-\r
-// This container contains the configuration (parameters) of each transmit\r
-// CAN L-PDU. The SHORT-NAME of "CanIfTxPduConfig" container\r
-// represents the symolic name of Transmit L-PDU.\r
-typedef struct {\r
-       //      ECU wide unique, symbolic handle for transmit CAN L-PDU. The\r
-       //      CanIfCanTxPduId is configurable at pre-compile and post-built time.\r
-       //      Range: 0..max. number of CantTxPduIds   PduIdType       CanTxPduId;\r
-       PduIdType CanIfTxPduId;\r
-\r
-       //      CAN Identifier of transmit CAN L-PDUs used by the CAN Driver for CAN L-\r
-       //      PDU transmission. Range: 11 Bit For Standard CAN Identifier ... 29 Bit For\r
-       //      Extended CAN identifier\r
-       uint32  CanIfCanTxPduIdCanId;\r
-\r
-       //      Data length code (in bytes) of transmit CAN L-PDUs used by the CAN\r
-       //      Driver for CAN L-PDU transmission. The data area size of a CAN L-Pdu\r
-       //      can have a range from 0 to 8 bytes.\r
-       uint8           CanIfCanTxPduIdDlc;\r
-\r
-       // Defines the type of each transmit CAN L-PDU.\r
-       // DYNAMIC  CAN ID is defined at runtime.\r
-       // STATIC  CAN ID is defined at compile-time.\r
-       CanIf_PduTypeType               CanIfCanTxPduType;\r
-\r
-#if ( CANIF_READTXPDU_NOTIFY_STATUS_API == STD_ON )\r
-       //      Enables and disables transmit confirmation for each transmit CAN L-PDU\r
-       //      for reading its notification status. True: Enabled False: Disabled\r
-       boolean         CanIfReadTxPduNotifyStatus;\r
-#endif\r
-\r
-       //      CAN Identifier of transmit CAN L-PDUs used by the CAN Driver for CAN L-\r
-       //      PDU transmission.\r
-       //  EXTENDED_CAN  The CANID is of type Extended (29 bits)\r
-       //  STANDARD_CAN  The CANID is of type Standard (11 bits)\r
-       CanIf_CanIdTypeType             CanIfTxPduIdCanIdType;\r
-\r
-       //      Name of target confirmation services to target upper layers (PduR, CanNm\r
-       //      and CanTp. If parameter is not configured then no call-out function is\r
-       //      provided by the upper layer for this Tx L-PDU.\r
-       void (*CanIfUserTxConfirmation)(PduIdType);   /* CANIF 109 */\r
-\r
-       //      Handle, that defines the hardware object or the pool of hardware objects\r
-       //      configured for transmission. The parameter refers HTH Id, to which the L-\r
-       //      PDU belongs to.\r
-       const CanIf_HthConfigType *CanIfCanTxPduHthRef;\r
-\r
-       //      Reference to the "global" Pdu structure to allow harmonization of handle\r
-       //      IDs in the COM-Stack.  ..\r
-       void *PduIdRef;\r
-} CanIf_TxPduConfigType;\r
-\r
-//-------------------------------------------------------------------\r
-/*\r
- * CanIfRxPduConfig container\r
- */\r
-\r
-\r
-// This container contains the configuration (parameters) of each receive\r
-// CAN L-PDU. The SHORT-NAME of "CanIfRxPduConfig" container itself\r
-// represents the symolic name of Receive L-PDU.\r
-\r
-typedef struct {\r
-  //  ECU wide unique, symbolic handle for receive CAN L-PDU. The\r
-  //  CanRxPduId is configurable at pre-compile and post-built time. It shall fulfill\r
-  //  ANSI/AUTOSAR definitions for constant defines. Range: 0..max. number\r
-  //  of defined CanRxPduIds\r
-  PduIdType CanIfCanRxPduId;\r
-\r
-  //   CAN Identifier of Receive CAN L-PDUs used by the CAN Interface. Exa:\r
-       //      Software Filtering. Range: 11 Bit For Standard CAN Identifier ... 29 Bit For\r
-       //      Extended CAN identifier\r
-       uint32          CanIfCanRxPduCanId;\r
-\r
-       //      Data Length code of received CAN L-PDUs used by the CAN Interface.\r
-       //      Exa: DLC check. The data area size of a CAN L-PDU can have a range\r
-       //      from 0 to 8 bytes.      uint8           CanIfCanRxPduDlc;\r
-       uint8           CanIfCanRxPduDlc;\r
-\r
-#if ( CANIF_CANPDUID_READDATA_API == STD_ON )\r
-       //      Enables and disables the Rx buffering for reading of received L-PDU data.\r
-       //      True: Enabled False: Disabled\r
-       boolean         CanIfReadRxPduData;\r
-#endif\r
-\r
-#if ( CANIF_READRXPDU_NOTIF_STATUS_API == STD_ON )\r
-       //      CanIfReadRxPduNotifyStatus {CANIF_READRXPDU_NOTIFY_STATUS}\r
-       //      Enables and disables receive indication for each receive CAN L-PDU for\r
-       //      reading its' notification status. True: Enabled False: Disabled\r
-       boolean         CanIfReadRxPduNotifyStatus;\r
-#endif\r
-\r
-  //  CAN Identifier of receive CAN L-PDUs used by the CAN Driver for CAN L-\r
-  //  PDU transmission.\r
-  //  EXTENDED_CAN  The CANID is of type Extended (29 bits)\r
-  //  STANDARD_CAN  The CANID is of type Standard (11 bits)\r
-       CanIf_CanIdTypeType     CanIfRxPduIdCanIdType;\r
-\r
-       //      This parameter defines the type of the receive indication call-outs called to\r
-       //      the corresponding upper layer the used TargetRxPduId belongs to.\r
-       CanIf_UserTypeType  CanIfRxUserType;\r
-\r
-       //      Name of target indication services to target upper layers (PduRouter,\r
-       //      CanNm, CanTp and ComplexDeviceDrivers). If parameter is 0 no call-out\r
-       //      function is configured.\r
-       void *CanIfUserRxIndication;\r
-\r
-       //      The HRH to which Rx L-PDU belongs to, is referred through this\r
-       //      parameter.\r
-       const CanIf_HrhConfigType *CanIfCanRxPduHrhRef;\r
-\r
-       //      Reference to the "global" Pdu structure to allow harmonization of handle\r
-       //      IDs in the COM-Stack.\r
-       void *PduIdRef;\r
-\r
-       // Defines the type of software filtering that should be used\r
-       // for this receive object.\r
-       CanIf_SoftwareFilterTypeType CanIfSoftwareFilterType;\r
-\r
-       // Acceptance filters, 1 - care, 0 - don't care.\r
-       // Is enabled by the CanIfSoftwareFilterMask in CanIf_HrhConfigType\r
-       // ArcCore exension\r
-       uint32 CanIfCanRxPduCanIdMask;\r
-\r
-} CanIf_RxPduConfigType;\r
-\r
-//-------------------------------------------------------------------\r
-\r
-/*\r
- * CanIfControllerConfig container\r
- */\r
-\r
-typedef enum {\r
-       CANIF_WAKEUP_SUPPORT_CONTROLLER,\r
-       CANIF_WAKEUP_SUPPORT_NO_WAKEUP,\r
-       CANIF_WAKEUP_SUPPORT_TRANSCEIVER,\r
-} CanIf_WakeupSupportType;\r
-\r
-\r
-// This is the type supplied to CanIf_InitController()\r
-typedef struct {\r
-       CanIf_WakeupSupportType WakeupSupport;  // Not used\r
-\r
-       // CanIf-specific id of the controller\r
-       CanIf_Arc_ChannelIdType CanIfControllerIdRef;\r
-\r
-       const char CanIfDriverNameRef[8]; // Not used\r
-\r
-       const Can_ControllerConfigType *CanIfInitControllerRef;\r
-} CanIf_ControllerConfigType;\r
-\r
-//-------------------------------------------------------------------\r
-/*\r
- * CanIfTransceiverDrvConfig container\r
- */\r
-\r
-typedef struct {\r
-       boolean TrcvWakeupNotification;\r
-       uint8   TrcvIdRef;\r
-} CanIf_TransceiverDrvConfigType;\r
-\r
-\r
-typedef struct {\r
-       uint32 todo;\r
-} CanIf_TransceiverConfigType;\r
-\r
-// Callout functions with respect to the upper layers. This callout functions\r
-// defined in this container are common to all configured underlying CAN\r
-// Drivers / CAN Transceiver Drivers.\r
-typedef struct {\r
-       //      Name of target BusOff notification services to target upper layers\r
-       //      (PduRouter, CanNm, CanTp and ComplexDeviceDrivers).\r
-       //  Multiplicity: 1\r
-       void (*CanIfBusOffNotification)(uint8 Controller);\r
-\r
-       //      Name of target wakeup notification services to target upper layers\r
-       //      e.g Ecu_StateManager. If parameter is 0\r
-       //      no call-out function is configured.\r
-       //  Multiplicity: 0..1\r
-       void (*CanIfWakeUpNotification)();\r
-\r
-       //      Name of target wakeup validation notification services to target upper\r
-       //      layers (ECU State Manager). If parameter is 0 no call-out function is\r
-       //      configured.\r
-       //  Multiplicity: 0..1\r
-       void (*CanIfWakeupValidNotification)();\r
-\r
-       // ArcCore ext.\r
-       void (*CanIfErrorNotificaton)(uint8,Can_Arc_ErrorType);\r
-\r
-} CanIf_DispatchConfigType;\r
-\r
-// This container contains the references to the configuration setup of each\r
-// underlying CAN driver.\r
-\r
-typedef struct {\r
-       //      Selects the CAN Interface specific configuration setup. This type of the\r
-       //      external data structure shall contain the post build initialization data for the\r
-       //      CAN Interface for all underlying CAN Dirvers. constant to CanIf_ConfigType\r
-       uint32 CanIfConfigSet;\r
-\r
-       uint32 CanIfNumberOfCanRxPduIds;\r
-       uint32 CanIfNumberOfCanTXPduIds;\r
-       uint32 CanIfNumberOfDynamicCanTXPduIds;\r
-\r
-       //\r
-       // Containers\r
-       //\r
-\r
-  //  This container contains the reference to the configuration\r
-       //  setup of each underlying CAN driver.\r
-  //  Multiplicity: 0..*\r
-       const CanIf_InitHohConfigType *CanIfHohConfigPtr;\r
-\r
-       //      This container contains the configuration (parameters) of each\r
-       //      receive CAN L-PDU. The SHORT-NAME of\r
-       //      "CanIfRxPduConfig" container itself represents the symolic\r
-       //      name of Receive L-PDU.\r
-       // Multiplicity: 0..*\r
-       const CanIf_RxPduConfigType *CanIfRxPduConfigPtr;\r
-\r
-       //      This container contains the configuration (parameters) of each\r
-       //      transmit CAN L-PDU. The SHORT-NAME of\r
-       //      "CanIfTxPduConfig" container represents the symolic name of\r
-       //  Transmit L-PDU.\r
-       // Multiplicity: 0..*\r
-       const CanIf_TxPduConfigType *CanIfTxPduConfigPtr;\r
-\r
-} CanIf_InitConfigType;\r
-\r
-\r
-typedef struct {\r
-       //      This container contains the configuration (parameters) of all\r
-       //      addressed CAN controllers by each underlying CAN driver.\r
-       //  Multiplicity: 1..*\r
-       const CanIf_ControllerConfigType        *ControllerConfig;\r
-\r
-       //      Callout functions with respect to the upper layers. This callout\r
-       //      functions defined in this container are common to all\r
-       //      configured underlying CAN Drivers / CAN Transceiver Drivers\r
-       const CanIf_DispatchConfigType  *DispatchConfig;\r
-\r
-       //      This container contains the init parameters of the CAN\r
-       //      Interface.\r
-       //  Multiplicity: 1..*\r
-       const CanIf_InitConfigType              *InitConfig;\r
-\r
-       //      This container contains the configuration (parameters) of all\r
-       //      addressed CAN transceivers by each underlying CAN\r
-       //      Transceiver Driver.\r
-       //  Multiplicity: 1..*\r
-       const CanIf_TransceiverConfigType *TransceiverConfig;\r
-\r
-       // ArcCore: Contains the mapping from CanIf-specific Channels to Can Controllers\r
-       const CanControllerIdType                       *Arc_ChannelToControllerMap;\r
-} CanIf_ConfigType;\r
-\r
-\r
+#define CANIF_VERSION_INFO_API              STD_ON   /**< Build version info API */\r
+#define CANIF_DEV_ERROR_DETECT              STD_ON   /**< Enable Development Error Trace */\r
+#define CANIF_DLC_CHECK                     STD_ON   /**< Enable/disable DLC checking. */\r
+#define CANIF_ARC_RUNTIME_PDU_CONFIGURATION    STD_OFF\r
+#define CANIF_MULITPLE_DRIVER_SUPPORT       STD_OFF  /**< Not supported */\r
+#define CANIF_READRXPDU_DATA_API            STD_OFF  /**< Not supported */\r
+#define CANIF_READRXPDU_NOTIFY_STATUS_API      STD_OFF  /**< Not supported */\r
+#define CANIF_READTXPDU_NOTIFY_STATUS_API      STD_OFF  /**< Not supported */\r
+#define CANIF_SETDYNAMICTXID_API            STD_OFF  /**< Not supported */\r
+#define CANIF_WAKEUP_EVENT_API              STD_OFF  /**< Not supported */\r
+#define CANIF_TRANSCEIVER_API               STD_OFF  /**< Not supported */\r
+#define CANIF_TRANSMIT_CANCELLATION         STD_OFF  /**< Not supported */\r
+\r
+#include "CanIf_ConfigTypes.h"\r
+\r
+/** Instance of the top level container. */\r
 extern CanIf_ConfigType CanIf_Config;\r
 \r
 #endif\r
-\r
+/** @} */\r
 \r
index 5c11b88fd51f9a3854ceb6a3b16950358cef2732..16b34fe8cb11cb06225033ffa83d3772f3c5e57e 100644 (file)
@@ -38,7 +38,7 @@
 #define CANIF_AR_PATCH_VERSION   2\r
 \r
 #define CANIF_SW_MAJOR_VERSION   1\r
-#define CANIF_SW_MINOR_VERSION   2\r
+#define CANIF_SW_MINOR_VERSION   3\r
 #define CANIF_SW_PATCH_VERSION   0\r
 \r
 #include "Det.h"\r
diff --git a/include/CanIf_ConfigTypes.h b/include/CanIf_ConfigTypes.h
new file mode 100644 (file)
index 0000000..9692b1c
--- /dev/null
@@ -0,0 +1,400 @@
+/* -------------------------------- Arctic Core ------------------------------\r
+ * Arctic Core - the open source AUTOSAR platform http://arccore.com\r
+ *\r
+ * Copyright (C) 2009  ArcCore AB <contact@arccore.com>\r
+ *\r
+ * This source code is free software; you can redistribute it and/or modify it\r
+ * under the terms of the GNU General Public License version 2 as published by the\r
+ * Free Software Foundation; See <http://www.gnu.org/licenses/old-licenses/gpl-2.0.txt>.\r
+ *\r
+ * This program is distributed in the hope that it will be useful, but\r
+ * WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY\r
+ * or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License\r
+ * for more details.\r
+ * -------------------------------- Arctic Core ------------------------------*/\r
+\r
+/** @addtogroup CanIf CAN Interface\r
+ *  @{ */\r
+\r
+/** @file CanIf_ConfigTypes.h\r
+ *  Definitions of configuration parameters for CAN Interface.\r
+ */\r
+\r
+#ifndef CANIF_CONFIGTYPES_H_\r
+#define CANIF_CONFIGTYPES_H_\r
+\r
+\r
+/** Software filtering type */\r
+typedef enum {\r
+       CANIF_SOFTFILTER_TYPE_BINARY = 0,  /**< Not supported */\r
+       CANIF_SOFTFILTER_TYPE_INDEX,       /**< Not supported */\r
+       CANIF_SOFTFILTER_TYPE_LINEAR,      /**< Not supported */\r
+       CANIF_SOFTFILTER_TYPE_TABLE,       /**< Not supported */\r
+       CANIF_SOFTFILTER_TYPE_MASK,        /**< CanIfCanRxPduCanIdMask in RxPduConfig is used for filtering */\r
+} CanIf_SoftwareFilterTypeType;\r
+\r
+/** Type of the upper layer interfacing this module */\r
+typedef enum {\r
+       CANIF_USER_TYPE_CAN_NM,\r
+       CANIF_USER_TYPE_CAN_TP,\r
+       CANIF_USER_TYPE_CAN_PDUR,\r
+       CANIF_USER_TYPE_CAN_SPECIAL\r
+} CanIf_UserTypeType;\r
+\r
+/** Notification function for CANIF_USER_TYPE_CAN_SPECIAL */\r
+typedef void (*CanIf_FuncTypeCanSpecial)(uint8 channel, PduIdType pduId, const uint8 *sduPtr, uint8 dlc, Can_IdType canId);\r
+\r
+/** Defines if PDU Can id can be changed at runtime. */\r
+typedef enum {\r
+  CANIF_PDU_TYPE_STATIC = 0,\r
+  CANIF_PDU_TYPE_DYNAMIC       /**< Not supported */\r
+} CanIf_PduTypeType;\r
+\r
+/** PDU Can id type */\r
+typedef enum {\r
+  CANIF_CAN_ID_TYPE_29 = 0,\r
+  CANIF_CAN_ID_TYPE_11\r
+} CanIf_CanIdTypeType;\r
+\r
+//-------------------------------------------------------------------\r
+/*\r
+ * CanIfHrhRangeConfig container\r
+ */\r
+\r
+/** Parameters for configuring Can id ranges. Not supported. */\r
+typedef struct {\r
+       /** Lower CAN Identifier of a receive CAN L-PDU for identifier range\r
+        *  definition, in which all CAN Ids shall pass the software filtering. Range: 11\r
+     *  Bit for Standard CAN Identifier 29 Bit for Extended CAN Identifer */\r
+       uint32 CanIfRxPduLowerCanId;\r
+\r
+       /** Upper CAN Identifier of a receive CAN L-PDU for identifier range\r
+        *  definition, in which all CAN Ids shall pass the software filtering. Range: 11\r
+        *  Bit for Standard CAN Identifier 29 Bit for Extended CAN Identifer */\r
+       uint32 CanIfRxPduUpperCanId;\r
+} CanIf_HrhRangeConfigType;\r
+\r
+\r
+//-------------------------------------------------------------------\r
+/*\r
+ * CanIfInitHrhConfig container\r
+ */\r
+/** Definition of Hardware Receive Handle */\r
+typedef struct {\r
+       /** Defines the HRH type i.e, whether its a BasicCan or FullCan. If BasicCan is\r
+        *  configured, software filtering is enabled. */\r
+  Can_Arc_HohType CanIfHrhType;\r
+\r
+       /** Selects the hardware receive objects by using the HRH range/list from\r
+        *  CAN Driver configuration to define, for which HRH a software filtering has\r
+        *  to be performed at during receive processing. True: Software filtering is\r
+        *  enabled False: Software filtering is disabled */\r
+       boolean  CanIfSoftwareFilterHrh;\r
+\r
+       /** Reference to controller Id to which the HRH belongs to. A controller can\r
+        *  contain one or more HRHs. */\r
+       CanIf_Arc_ChannelIdType CanIfCanControllerHrhIdRef;\r
+\r
+       /** The parameter refers to a particular HRH object in the CAN Driver Module\r
+        *  configuration. The HRH id is unique in a given CAN Driver. The HRH Ids\r
+        *  are defined in the CAN Driver Module and hence it is derived from CAN\r
+        *  Driver Configuration. */\r
+       Can_Arc_HRHType CanIfHrhIdSymRef ;\r
+\r
+       /** Defines the parameters required for configuraing multiple\r
+        *  CANID ranges for a given same HRH. */\r
+       const CanIf_HrhRangeConfigType *CanIfHrhRangeConfig;\r
+\r
+  /** End Of List. Set to TRUE if this is the last object in the list. */\r
+  boolean CanIf_Arc_EOL;\r
+} CanIf_HrhConfigType;\r
+\r
+//-------------------------------------------------------------------\r
+/*\r
+ * CanIfInitHthConfig container\r
+ */\r
+/** Definition of Hardware Transmit Handle */\r
+typedef struct {\r
+  /** Defines the HTH type i.e, whether its a BasicCan or FullCan. */\r
+  Can_Arc_HohType CanIfHthType;\r
+\r
+  /** Reference to controller Id to which the HTH belongs to. A controller\r
+   *  can contain one or more HTHs */\r
+  CanIf_Arc_ChannelIdType CanIfCanControllerIdRef;\r
+\r
+  /** The parameter refers to a particular HTH object in the CAN Driver Module\r
+   *  configuration. The HTH id is unique in a given CAN Driver. The HTH Ids\r
+   *  are defined in the CAN Driver Module and hence it is derived from CAN\r
+   *  Driver Configuration. */\r
+  Can_Arc_HTHType CanIfHthIdSymRef ;\r
+\r
+  /** End Of List. Set to TRUE if this is the last object in the list. */\r
+  boolean CanIf_Arc_EOL;\r
+} CanIf_HthConfigType;\r
+\r
+//-------------------------------------------------------------------\r
+/*\r
+ * CanIfInitHohConfig container\r
+ */\r
+/** Definition of Hardware Object Handle. */\r
+typedef struct {\r
+  /** Reference to the CAN Driver controller config. */\r
+  const Can_ConfigSetType   *CanConfigSet;\r
+\r
+  /** This container contains contiguration parameters for each hardware receive object. */\r
+  const CanIf_HrhConfigType *CanIfHrhConfig;\r
+\r
+  /** This container contains parameters releated to each HTH */\r
+  const CanIf_HthConfigType *CanIfHthConfig;\r
+\r
+  /** End Of List. Set to TRUE if this is the last object in the list. */\r
+  boolean CanIf_Arc_EOL;\r
+} CanIf_InitHohConfigType;\r
+\r
+//-------------------------------------------------------------------\r
+/*\r
+ * CanIfTxPduConfig container\r
+ */\r
+\r
+/** Definition of Tx PDU (Protocol Data Unit). */\r
+typedef struct {\r
+       /** ECU wide unique, symbolic handle for transmit CAN L-PDU. The\r
+        *  CanIfCanTxPduId is configurable at pre-compile and post-built time.\r
+        *  Range: 0..max. number of CantTxPduIds       PduIdType       CanTxPduId; */\r
+       PduIdType CanIfTxPduId;\r
+\r
+       /** CAN Identifier of transmit CAN L-PDUs used by the CAN Driver for CAN L-\r
+        *  PDU transmission. Range: 11 Bit For Standard CAN Identifier ... 29 Bit For\r
+        *  Extended CAN identifier */\r
+       uint32  CanIfCanTxPduIdCanId;\r
+\r
+       /** Data length code (in bytes) of transmit CAN L-PDUs used by the CAN\r
+        *  Driver for CAN L-PDU transmission. The data area size of a CAN L-Pdu\r
+        *  can have a range from 0 to 8 bytes. */\r
+       uint8           CanIfCanTxPduIdDlc;\r
+\r
+       /** Defines the type of each transmit CAN L-PDU.\r
+        *  DYNAMIC  CAN ID is defined at runtime.\r
+        *  STATIC  CAN ID is defined at compile-time. */\r
+       CanIf_PduTypeType               CanIfCanTxPduType;\r
+\r
+#if ( CANIF_READTXPDU_NOTIFY_STATUS_API == STD_ON )\r
+       /** Enables and disables transmit confirmation for each transmit CAN L-PDU\r
+        *  for reading its notification status. True: Enabled False: Disabled */\r
+       boolean         CanIfReadTxPduNotifyStatus;\r
+#endif\r
+\r
+       /** CAN Identifier of transmit CAN L-PDUs used by the CAN Driver for CAN L-\r
+        *  PDU transmission.\r
+        *  EXTENDED_CAN  The CANID is of type Extended (29 bits).\r
+        *  STANDARD_CAN  The CANID is of type Standard (11 bits). */\r
+       CanIf_CanIdTypeType             CanIfTxPduIdCanIdType;\r
+\r
+       /** Name of target confirmation services to target upper layers (PduR, CanNm\r
+        *  and CanTp. If parameter is not configured then no call-out function is\r
+        *  provided by the upper layer for this Tx L-PDU. */\r
+       void (*CanIfUserTxConfirmation)(PduIdType);   /* CANIF 109 */\r
+\r
+       /** Handle, that defines the hardware object or the pool of hardware objects\r
+        *  configured for transmission. The parameter refers HTH Id, to which the L-\r
+        *  PDU belongs to. */\r
+       const CanIf_HthConfigType *CanIfCanTxPduHthRef;\r
+\r
+       /** Reference to the "global" Pdu structure to allow harmonization of handle\r
+        *  IDs in the COM-Stack. */\r
+       void *PduIdRef;\r
+} CanIf_TxPduConfigType;\r
+\r
+//-------------------------------------------------------------------\r
+/*\r
+ * CanIfRxPduConfig container\r
+ */\r
+\r
+\r
+/** Definition of Rx PDU (Protocol Data Unit). */\r
+typedef struct {\r
+  /** ECU wide unique, symbolic handle for receive CAN L-PDU. The\r
+   *  CanRxPduId is configurable at pre-compile and post-built time. It shall fulfill\r
+   *  ANSI/AUTOSAR definitions for constant defines. Range: 0..max. number\r
+   *  of defined CanRxPduIds */\r
+  PduIdType CanIfCanRxPduId;\r
+\r
+  /** CAN Identifier of Receive CAN L-PDUs used by the CAN Interface. Exa:\r
+   *  Software Filtering. Range: 11 Bit For Standard CAN Identifier ... 29 Bit For\r
+   *  Extended CAN identifier */\r
+       uint32          CanIfCanRxPduCanId;\r
+\r
+  /** Data Length code of received CAN L-PDUs used by the CAN Interface.\r
+   *  Exa: DLC check. The data area size of a CAN L-PDU can have a range\r
+   *  from 0 to 8 bytes.       uint8           CanIfCanRxPduDlc; */\r
+       uint8           CanIfCanRxPduDlc;\r
+\r
+#if ( CANIF_CANPDUID_READDATA_API == STD_ON )\r
+  /** Enables and disables the Rx buffering for reading of received L-PDU data.\r
+   *  True: Enabled False: Disabled */\r
+       boolean         CanIfReadRxPduData;\r
+#endif\r
+\r
+#if ( CANIF_READRXPDU_NOTIF_STATUS_API == STD_ON )\r
+  /** CanIfReadRxPduNotifyStatus {CANIF_READRXPDU_NOTIFY_STATUS}\r
+   *  Enables and disables receive indication for each receive CAN L-PDU for\r
+   *  reading its' notification status. True: Enabled False: Disabled */\r
+       boolean         CanIfReadRxPduNotifyStatus;\r
+#endif\r
+\r
+  /** CAN Identifier of receive CAN L-PDUs used by the CAN Driver for CAN L-\r
+   *  PDU transmission.\r
+   *  EXTENDED_CAN  The CANID is of type Extended (29 bits)\r
+   *  STANDARD_CAN  The CANID is of type Standard (11 bits) */\r
+       CanIf_CanIdTypeType     CanIfRxPduIdCanIdType;\r
+\r
+  /** This parameter defines the type of the receive indication call-outs called to\r
+   *  the corresponding upper layer the used TargetRxPduId belongs to. */\r
+       CanIf_UserTypeType  CanIfRxUserType;\r
+\r
+  /** Name of target indication services to target upper layers (PduRouter,\r
+   *  CanNm, CanTp and ComplexDeviceDrivers). If parameter is 0 no call-out\r
+   *  function is configured. */\r
+       void *CanIfUserRxIndication;\r
+\r
+  /** The HRH to which Rx L-PDU belongs to, is referred through this\r
+   *  parameter. */\r
+       const CanIf_HrhConfigType *CanIfCanRxPduHrhRef;\r
+\r
+  /** Reference to the "global" Pdu structure to allow harmonization of handle\r
+   *  IDs in the COM-Stack. */\r
+       void *PduIdRef;\r
+\r
+  /** Defines the type of software filtering that should be used\r
+   *  for this receive object. */\r
+       CanIf_SoftwareFilterTypeType CanIfSoftwareFilterType;\r
+\r
+  /** Acceptance filters, 1 - care, 0 - don't care.\r
+   *  Is enabled by the CanIfSoftwareFilterMask in CanIf_HrhConfigType\r
+   *  ArcCore exension */\r
+       uint32 CanIfCanRxPduCanIdMask;\r
+\r
+} CanIf_RxPduConfigType;\r
+\r
+//-------------------------------------------------------------------\r
+\r
+/*\r
+ * CanIfControllerConfig container\r
+ */\r
+/** Not supported. */\r
+typedef enum {\r
+       CANIF_WAKEUP_SUPPORT_CONTROLLER,\r
+       CANIF_WAKEUP_SUPPORT_NO_WAKEUP,\r
+       CANIF_WAKEUP_SUPPORT_TRANSCEIVER\r
+} CanIf_WakeupSupportType;\r
+\r
+\r
+/** Container used to create channel init configurations.\r
+ *  @see CanIf_Arc_ConfigurationIndexType\r
+ *  @see CanIf_Arc_ChannelIdType */\r
+typedef struct {\r
+    /** Not used */\r
+       CanIf_WakeupSupportType WakeupSupport;\r
+\r
+       /** CanIf-specific id of the controller */\r
+       CanIf_Arc_ChannelIdType CanIfControllerIdRef;\r
+\r
+       /** Not used */\r
+       const char CanIfDriverNameRef[8];\r
+\r
+       /** Reference to */\r
+       const Can_ControllerConfigType *CanIfInitControllerRef;\r
+} CanIf_ControllerConfigType;\r
+\r
+//-------------------------------------------------------------------\r
+/*\r
+ * CanIfTransceiverDrvConfig container\r
+ */\r
+\r
+typedef struct {\r
+       boolean TrcvWakeupNotification;\r
+       uint8   TrcvIdRef;\r
+} CanIf_TransceiverDrvConfigType;\r
+\r
+\r
+typedef struct {\r
+       uint32 todo;\r
+} CanIf_TransceiverConfigType;\r
+\r
+/** Callout functions with respect to the upper layers. This callout functions\r
+ *  defined in this container are common to all configured underlying CAN\r
+ *  Drivers / CAN Transceiver Drivers. */\r
+typedef struct {\r
+       /** Name of target BusOff notification services to target upper layers\r
+        *  (PduRouter, CanNm, CanTp and ComplexDeviceDrivers). */\r
+       void (*CanIfBusOffNotification)(uint8 Controller);\r
+\r
+       /** Name of target wakeup notification services to target upper layers\r
+        *  e.g Ecu_StateManager. If parameter is 0\r
+        *  no call-out function is configured. */\r
+       void (*CanIfWakeUpNotification)();\r
+\r
+       /** Name of target wakeup validation notification services to target upper\r
+        *  layers (ECU State Manager). If parameter is 0 no call-out function is\r
+        *  configured. */\r
+       void (*CanIfWakeupValidNotification)();\r
+\r
+       /** ArcCore ext. */\r
+       void (*CanIfErrorNotificaton)(uint8,Can_Arc_ErrorType);\r
+\r
+} CanIf_DispatchConfigType;\r
+\r
+/** This container contains the references to the configuration setup of each\r
+ *  underlying CAN driver. */\r
+typedef struct {\r
+       /** Not used. */\r
+       uint32 CanIfConfigSet;\r
+\r
+       /** Size of Rx PDU list. */\r
+       uint32 CanIfNumberOfCanRxPduIds;\r
+       /** Size of Tx PDU list. */\r
+       uint32 CanIfNumberOfCanTXPduIds;\r
+       /** Not used */\r
+       uint32 CanIfNumberOfDynamicCanTXPduIds;\r
+\r
+       //\r
+       // Containers\r
+       //\r
+\r
+  /** Hardware Object Handle list */\r
+       const CanIf_InitHohConfigType *CanIfHohConfigPtr;\r
+\r
+  /** Rx PDU's list */\r
+       const CanIf_RxPduConfigType *CanIfRxPduConfigPtr;\r
+\r
+  /** Tx PDU's list */\r
+       const CanIf_TxPduConfigType *CanIfTxPduConfigPtr;\r
+\r
+} CanIf_InitConfigType;\r
+\r
+/** Top level config container. */\r
+typedef struct {\r
+       /** Reference to the list of channel init configurations. */\r
+       const CanIf_ControllerConfigType        *ControllerConfig;\r
+\r
+       /** Callout functions with respect to the upper layers. This callout\r
+        *  functions defined in this container are common to all\r
+        *  configured underlying CAN Drivers / CAN Transceiver Drivers */\r
+       const CanIf_DispatchConfigType  *DispatchConfig;\r
+\r
+       /** This container contains the init parameters of the CAN Interface. */\r
+       const CanIf_InitConfigType              *InitConfig;\r
+\r
+       /** Not used */\r
+       const CanIf_TransceiverConfigType *TransceiverConfig;\r
+\r
+       /** ArcCore: Contains the mapping from CanIf-specific Channels to Can Controllers */\r
+       const CanControllerIdType                       *Arc_ChannelToControllerMap;\r
+\r
+       const uint8                                                     *Arc_ChannelDefaultConfIndex;\r
+} CanIf_ConfigType;\r
+\r
+\r
+#endif /* CANIF_CONFIGTYPES_H_ */\r
+/** @} */\r
+\r