فهرست منبع

Fixes restrict keyword issue for MSVC

CapXilinx 9 سال پیش
والد
کامیت
2abebb12ea

+ 1 - 1
source/buildsupport/WIN32/OpENer_PLATFORM_INCLUDES.cmake

@@ -1,6 +1,6 @@
 macro(opener_platform_spec)
   find_path( MSINTTYPES_DIR inttypes.h ${PROJECT_SOURCE_DIR}/contrib/msinttypes)
   include_directories(${PORTS_SRC_DIR}/${OpENer_PLATFORM} ${PORTS_SRC_DIR}/${OpENer_PLATFORM}/sample_application ${MSINTTYPES_DIR} )
-  set( CMAKE_C_FLAGS "${CMAKE_C_FLAGS}" )
+  set( CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -DRESTRICT=__restrict -DWIN32" )
 endmacro(opener_platform_spec)
 

+ 7 - 8
source/src/cip/appcontype.c

@@ -12,7 +12,6 @@
 #include "opener_api.h"
 #include "assert.h"
 
-
 /** @brief External globals needed from connectionmanager.c */
 extern ConnectionObject *g_active_connection_list;
 
@@ -47,12 +46,12 @@ InputOnlyConnection g_input_only_connections[OPENER_CIP_NUM_INPUT_ONLY_CONNS]; /
 ListenOnlyConnection g_listen_only_connections[OPENER_CIP_NUM_LISTEN_ONLY_CONNS]; /**< Listen Only connections */
 
 ConnectionObject *GetExclusiveOwnerConnection(
-    const ConnectionObject *restrict connection_object, EipUint16 *const extended_error);
+    const ConnectionObject *RESTRICT connection_object, EipUint16 *const extended_error);
 
-ConnectionObject *GetInputOnlyConnection(const ConnectionObject *const restrict connection_object,
+ConnectionObject *GetInputOnlyConnection(const ConnectionObject *const RESTRICT connection_object,
                                          EipUint16 *const extended_error);
 
-ConnectionObject *GetListenOnlyConnection(const ConnectionObject *const restrict connection_object,
+ConnectionObject *GetListenOnlyConnection(const ConnectionObject *const RESTRICT connection_object,
                                           EipUint16 *const extended_error);
 
 void ConfigureExclusiveOwnerConnectionPoint(const unsigned int connection_number,
@@ -97,7 +96,7 @@ void ConfigureListenOnlyConnectionPoint(const unsigned int connection_number,
 }
 
 ConnectionObject *GetIoConnectionForConnectionData(
-    ConnectionObject *const restrict connection_object, EipUint16 *const extended_error) {
+    ConnectionObject *const RESTRICT connection_object, EipUint16 *const extended_error) {
   ConnectionObject *io_connection = NULL;
   *extended_error = 0;
 
@@ -137,7 +136,7 @@ ConnectionObject *GetIoConnectionForConnectionData(
 }
 
 ConnectionObject *GetExclusiveOwnerConnection(
-    const ConnectionObject *const restrict connection_object, EipUint16 *const extended_error) {
+    const ConnectionObject *const RESTRICT connection_object, EipUint16 *const extended_error) {
   ConnectionObject *exclusive_owner_connection = NULL;
 
   for (int i = 0; i < OPENER_CIP_NUM_EXLUSIVE_OWNER_CONNS; i++) {
@@ -163,7 +162,7 @@ ConnectionObject *GetExclusiveOwnerConnection(
   return exclusive_owner_connection;
 }
 
-ConnectionObject *GetInputOnlyConnection(const ConnectionObject *const restrict connection_object,
+ConnectionObject *GetInputOnlyConnection(const ConnectionObject *const RESTRICT connection_object,
                                          EipUint16 *const extended_error) {
   ConnectionObject *input_only_connection = NULL; //TODO: This variable has no use
 
@@ -197,7 +196,7 @@ ConnectionObject *GetInputOnlyConnection(const ConnectionObject *const restrict
   return input_only_connection;
 }
 
-ConnectionObject *GetListenOnlyConnection(const ConnectionObject *const restrict connection_object,
+ConnectionObject *GetListenOnlyConnection(const ConnectionObject *const RESTRICT connection_object,
                                           EipUint16 *const extended_error) {
   ConnectionObject *listen_only_connection = NULL; //TODO: This variable has no use
 

+ 1 - 1
source/src/cip/appcontype.h

@@ -24,7 +24,7 @@ void InitializeIoConnectionData(void);
  *        - on error: NULL
  */
 ConnectionObject *GetIoConnectionForConnectionData(
-    ConnectionObject *const restrict connection_object, EipUint16 *const extended_error);
+    ConnectionObject *const RESTRICT connection_object, EipUint16 *const extended_error);
 
 /** @brief Check if there exists already an exclusive owner or listen only connection
  *         which produces the input assembly.

+ 1 - 1
source/src/cip/cipclass3connection.c

@@ -16,7 +16,7 @@ ConnectionObject *GetFreeExplicitConnection(void);
 ConnectionObject g_explicit_connections[OPENER_CIP_NUM_EXPLICIT_CONNS];
 
 /**** Implementation ****/
-EipStatus EstablishClass3Connection(ConnectionObject *restrict const connection_object,
+EipStatus EstablishClass3Connection(ConnectionObject *RESTRICT const connection_object,
                               EipUint16 *const extended_error) {
   EipStatus eip_status = kEipStatusOk;
 

+ 1 - 1
source/src/cip/cipclass3connection.h

@@ -23,7 +23,7 @@
  *    - kEipStatusOk ... on success
  *    - On an error the general status code to be put into the response
  */
-EipStatus EstablishClass3Connection(ConnectionObject *restrict const connection_object,
+EipStatus EstablishClass3Connection(ConnectionObject *RESTRICT const connection_object,
                               EipUint16 *const extended_error);
 
 /** @brief Initializes the explicit connections mechanism

+ 4 - 4
source/src/cip/cipcommon.c

@@ -64,7 +64,7 @@ void ShutdownCipStack(void) {
   DeleteAllClasses();
 }
 
-EipStatus NotifyClass(const CipClass *restrict const cip_class,
+EipStatus NotifyClass(const CipClass *RESTRICT const cip_class,
                       CipMessageRouterRequest *const message_router_request,
                       CipMessageRouterResponse *const message_router_response) {
 
@@ -111,7 +111,7 @@ EipStatus NotifyClass(const CipClass *restrict const cip_class,
   return kEipStatusOkSend;
 }
 
-CipInstance *AddCipInstances(CipClass *restrict const cip_class, const int number_of_instances) {
+CipInstance *AddCipInstances(CipClass *RESTRICT const cip_class, const int number_of_instances) {
   CipInstance **next_instance = NULL;
   EipUint32 instance_number = 1; /* the first instance is number 1 */
 
@@ -155,7 +155,7 @@ CipInstance *AddCipInstances(CipClass *restrict const cip_class, const int numbe
   return first_instance;
 }
 
-CipInstance *AddCIPInstance(CipClass *restrict const class, const EipUint32 instance_id) {
+CipInstance *AddCIPInstance(CipClass *RESTRICT const class, const EipUint32 instance_id) {
   CipInstance *instance = GetCipInstance(class, instance_id);
 
   if (0 == instance) { /*we have no instance with given id*/
@@ -347,7 +347,7 @@ CipAttributeStruct *GetCipAttribute(const CipInstance *const instance,
 }
 
 /* TODO this needs to check for buffer overflow*/
-EipStatus GetAttributeSingle(CipInstance *restrict const instance,
+EipStatus GetAttributeSingle(CipInstance *RESTRICT const instance,
                              CipMessageRouterRequest *const message_router_request,
                              CipMessageRouterResponse *const message_router_response) {
   /* Mask for filtering get-ability */

+ 2 - 2
source/src/cip/cipcommon.h

@@ -31,7 +31,7 @@ extern EipUint8 g_message_data_reply_buffer[];
  *     - kEipStatusOk ... no reply to send back
  *     - kEipStatusError ... error
  */
-EipStatus NotifyClass(const CipClass *restrict const class,
+EipStatus NotifyClass(const CipClass *RESTRICT const class,
                       CipMessageRouterRequest *const message_router_request,
                       CipMessageRouterResponse *const message_router_response);
 
@@ -45,7 +45,7 @@ EipStatus NotifyClass(const CipClass *restrict const class,
  * @return status  >0 .. success
  *          -1 .. requested attribute not available
  */
-EipStatus GetAttributeSingle(CipInstance *restrict const instance,
+EipStatus GetAttributeSingle(CipInstance *RESTRICT const instance,
                              CipMessageRouterRequest *const message_router_request,
                              CipMessageRouterResponse *const message_router_response);
 

+ 3 - 3
source/src/cip/cipconnectionmanager.c

@@ -1140,7 +1140,7 @@ EipUint8 ParseConnectionPath(ConnectionObject *connection_object,
   return kEipStatusOk;
 }
 
-void CloseConnection(ConnectionObject *restrict connection_object) {
+void CloseConnection(ConnectionObject *RESTRICT connection_object) {
   connection_object->state = kConnectionStateNonExistent;
   if (0x03 != (connection_object->transport_type_class_trigger & 0x03)) {
     /* only close the UDP connection for not class 3 connections */
@@ -1156,8 +1156,8 @@ void CloseConnection(ConnectionObject *restrict connection_object) {
   RemoveFromActiveConnections(connection_object);
 }
 
-void CopyConnectionData(ConnectionObject *restrict destination,
-                        const ConnectionObject *restrict const source) {
+void CopyConnectionData(ConnectionObject *RESTRICT destination,
+                        const ConnectionObject *RESTRICT const source) {
   memcpy(destination, source, sizeof(ConnectionObject));
 }
 

+ 2 - 2
source/src/cip/cipconnectionmanager.h

@@ -254,7 +254,7 @@ ConnectionObject *GetConnectedOutputAssembly(EipUint32 output_assembly_id);
  * @param destination Destination of the copy operation
  * @param osurce Source of the copy operation
  */
-void CopyConnectionData(ConnectionObject *restrict destination, const ConnectionObject *restrict const source);
+void CopyConnectionData(ConnectionObject *RESTRICT destination, const ConnectionObject *RESTRICT const source);
 
 /** @brief Close the given connection
  *
@@ -263,7 +263,7 @@ void CopyConnectionData(ConnectionObject *restrict destination, const Connection
  * @param connection_object pointer to the connection object structure to be
  *closed
  */
-void CloseConnection(ConnectionObject *restrict connection_object);
+void CloseConnection(ConnectionObject *RESTRICT connection_object);
 
 /* TODO: Missing documentation */
 EipBool8 IsConnectedOutputAssembly(const EipUint32 instance_number);

+ 1 - 1
source/src/cip/cipioconnection.c

@@ -77,7 +77,7 @@ unsigned int g_config_data_length = 0;
 EipUint32 g_run_idle_state; /**< buffer for holding the run idle information. */
 
 /**** Implementation ****/
-EipStatus EstablishIoConnction(ConnectionObject *restrict const connection_object,
+EipStatus EstablishIoConnction(ConnectionObject *RESTRICT const connection_object,
                          EipUint16 *const extended_error) {
   int originator_to_target_connection_type,
       target_to_originator_connection_type;

+ 1 - 1
source/src/cip/cipioconnection.h

@@ -52,7 +52,7 @@
  *    - EIP_OK ... on success
  *    - On an error the general status code to be put into the response
  */
-EipStatus EstablishIoConnction(ConnectionObject *restrict const connection_object,
+EipStatus EstablishIoConnction(ConnectionObject *RESTRICT const connection_object,
                          EipUint16 *const extended_error);
 
 /** @brief Take the data given in the connection object structure and open the necessary communication channels

+ 1 - 1
source/src/cip/cipmessagerouter.c

@@ -98,7 +98,7 @@ CipClass *GetCipClass(const EipUint32 class_id) {
     return NULL;
 }
 
-CipInstance *GetCipInstance(const CipClass *restrict const cip_class, EipUint32 instance_number) {
+CipInstance *GetCipInstance(const CipClass *RESTRICT const cip_class, EipUint32 instance_number) {
 
   if (instance_number == 0)
     return (CipInstance *) cip_class; /* if the instance number is zero, return the class object itself*/

+ 4 - 4
source/src/cip/ciptcpipinterface.c

@@ -82,7 +82,7 @@ EipStatus ConfigureNetworkInterface(const char *const ip_address,
   return kEipStatusOk;
 }
 
-void ConfigureDomainName(const char *const restrict domain_name) {
+void ConfigureDomainName(const char *RESTRICT const domain_name) {
   if (NULL != interface_configuration_.domain_name.string) {
     /* if the string is already set to a value we have to free the resources
      * before we can set the new value in order to avoid memory leaks.
@@ -99,7 +99,7 @@ void ConfigureDomainName(const char *const restrict domain_name) {
   }
 }
 
-void ConfigureHostName(const char *const restrict hostname) {
+void ConfigureHostName(const char *RESTRICT const hostname) {
   if (NULL != hostname_.string) {
     /* if the string is already set to a value we have to free the resources
      * before we can set the new value in order to avoid memory leaks.
@@ -200,8 +200,8 @@ void ShutdownTcpIpInterface(void) {
 }
 
 EipStatus GetAttributeSingleTcpIpInterface(
-    CipInstance *const restrict instance, CipMessageRouterRequest *restrict const message_router_request,
-    CipMessageRouterResponse *restrict const message_router_response) {
+    CipInstance *RESTRICT const instance, CipMessageRouterRequest *RESTRICT const message_router_request,
+    CipMessageRouterResponse *RESTRICT const message_router_response) {
 
   EipStatus status = kEipStatusOkSend;
   EipByte *message = message_router_response->data;

+ 6 - 6
source/src/opener_api.h

@@ -44,13 +44,13 @@ void ConfigureMacAddress(const EipUint8 *const mac_address);
  * @brief Configure the domain name of the device
  * @param domain_name the domain name to be used
  */
-void ConfigureDomainName(const char *const restrict domain_name);
+void ConfigureDomainName(const char *const RESTRICT domain_name);
 
 /** @ingroup CIP_API
  * @brief Configure the host name of the device
  * @param host_name the host name to be used
  */
-void ConfigureHostName(const char *const restrict host_name);
+void ConfigureHostName(const char *const RESTRICT host_name);
 
 /** @ingroup CIP_API
  * @brief Set the serial number of the device's identity object.
@@ -104,7 +104,7 @@ CipClass *GetCipClass(const EipUint32 class_id);
  * @return pointer to CIP Instance
  *          0 if instance is not in the object
  */
-CipInstance *GetCipInstance(const CipClass *restrict const cip_object, const EipUint32 instance_number);
+CipInstance *GetCipInstance(const CipClass *RESTRICT const cip_object, const EipUint32 instance_number);
 
 /** @ingroup CIP_API
  * @brief Get a pointer to an instance's attribute
@@ -171,7 +171,7 @@ CipClass *CreateCipClass(const EipUint32 class_id, const int number_of_class_att
  * @return pointer to the first of the new instances
  *              0 on error
  */
-CipInstance *AddCipInstances(CipClass *restrict const cip_object_to_add_instances,
+CipInstance *AddCipInstances(CipClass *RESTRICT const cip_object_to_add_instances,
                              const int number_of_instances);
 
 /** @ingroup CIP_API
@@ -184,7 +184,7 @@ CipInstance *AddCipInstances(CipClass *restrict const cip_object_to_add_instance
  *         already exists the existing is returned an no new instance is created
  *
  */
-CipInstance *AddCIPInstance(CipClass *restrict const cip_class_to_add_instance,
+CipInstance *AddCIPInstance(CipClass *RESTRICT const cip_class_to_add_instance,
                             const EipUint32 instance_id);
 
 /** @ingroup CIP_API
@@ -278,7 +278,7 @@ typedef struct connection_object ConnectionObject;
  * @return CIP error code
  */
 typedef EipStatus (*OpenConnectionFunction)(
-    ConnectionObject *restrict const connection_object, EipUint16 *const extended_error_code);
+    ConnectionObject *RESTRICT const connection_object, EipUint16 *const extended_error_code);
 
 /** @ingroup CIP_API
  * @brief Function prototype for handling the closing of connections