]> git.feebdaed.xyz Git - 0xmirror/SOEM.git/commitdiff
Fix llvm compiler implicit-int-conversion warnings
authorAndreas Karlsson <andreas.karlsson@rt-labs.com>
Fri, 9 Oct 2020 14:57:53 +0000 (16:57 +0200)
committerAndreas Karlsson <andreas.karlsson@rt-labs.com>
Mon, 12 Oct 2020 14:24:42 +0000 (16:24 +0200)
* use uint8 for idx
* make config Isize/Osize uint32
* generally, align sizes in functions to HW objects
* Fix non-standard [0] size data array in EoE struct

29 files changed:
oshw/erika/nicdrv.c
oshw/erika/nicdrv.h
oshw/intime/nicdrv.c
oshw/intime/nicdrv.h
oshw/linux/nicdrv.c
oshw/linux/nicdrv.h
oshw/macosx/nicdrv.c
oshw/macosx/nicdrv.h
oshw/rtems/nicdrv.c
oshw/rtems/nicdrv.h
oshw/rtk/nicdrv.c
oshw/rtk/nicdrv.h
oshw/vxworks/nicdrv.c
oshw/vxworks/nicdrv.h
oshw/win32/nicdrv.c
oshw/win32/nicdrv.h
soem/ethercatbase.c
soem/ethercatbase.h
soem/ethercatcoe.c
soem/ethercatcoe.h
soem/ethercatconfig.c
soem/ethercateoe.c
soem/ethercateoe.h
soem/ethercatfoe.c
soem/ethercatmain.c
soem/ethercatmain.h
soem/ethercatsoe.c
soem/ethercatsoe.h
soem/ethercattype.h

index bfe4c7c68ba608ac1cb5a760e00d14b66696c553..3ef4574b446a0be0eb9709219a0433045dea89ca 100644 (file)
@@ -165,10 +165,10 @@ void ec_setupheader(void *p)
  * @param[in] port        = port context struct
  * @return new index.
  */
-int ecx_getindex(ecx_portt *port)
+uint8 ecx_getindex(ecx_portt *port)
 {
-       int idx;
-       int cnt = 0;
+       uint8 idx;
+       uint8 cnt = 0;
 
        ee_port_lock();
 
@@ -199,7 +199,7 @@ int ecx_getindex(ecx_portt *port)
  * @param[in] idx      = index in buffer array
  * @param[in] bufstat  = status to set
  */
-void ecx_setbufstat(ecx_portt *port, int idx, int bufstat)
+void ecx_setbufstat(ecx_portt *port, uint8 idx, int bufstat)
 {
        port->rxbufstat[idx] = bufstat;
        if (port->redstate != ECT_RED_NONE)
@@ -212,7 +212,7 @@ void ecx_setbufstat(ecx_portt *port, int idx, int bufstat)
  * @param[in] stacknumber  = 0=Primary 1=Secondary stack
  * @return socket send result
  */
-int ecx_outframe(ecx_portt *port, int idx, int stacknumber)
+int ecx_outframe(ecx_portt *port, uint8 idx, int stacknumber)
 {
        int lp;
        ec_stackT *stack;
@@ -234,7 +234,7 @@ int ecx_outframe(ecx_portt *port, int idx, int stacknumber)
  * @param[in] idx = index in tx buffer array
  * @return socket send result
  */
-int ecx_outframe_red(ecx_portt *port, int idx)
+int ecx_outframe_red(ecx_portt *port, uint8 idx)
 {
        ec_comt *datagramP;
        ec_etherheadert *ehp;
@@ -300,11 +300,11 @@ static int ecx_recvpkt(ecx_portt *port, int stacknumber)
  * @return Workcounter if a frame is found with corresponding index, otherwise
  * EC_NOFRAME or EC_OTHERFRAME.
  */
-int ecx_inframe(ecx_portt *port, int idx, int stacknumber)
+int ecx_inframe(ecx_portt *port, uint8 idx, int stacknumber)
 {
        uint16  l;
        int     rval;
-       int     idxf;
+       uint8     idxf;
        ec_etherheadert *ehp;
        ec_comt *ecp;
        ec_stackT *stack;
@@ -389,7 +389,7 @@ int ecx_inframe(ecx_portt *port, int idx, int stacknumber)
  * @return Workcounter if a frame is found with corresponding index, otherwise
  * EC_NOFRAME.
  */
-static int ecx_waitinframe_red(ecx_portt *port, int idx, osal_timert *timer)
+static int ecx_waitinframe_red(ecx_portt *port, uint8 idx, osal_timert *timer)
 {
        osal_timert timer2;
        int wkc  = EC_NOFRAME;
@@ -464,7 +464,7 @@ static int ecx_waitinframe_red(ecx_portt *port, int idx, osal_timert *timer)
  * @return Workcounter if a frame is found with corresponding index, otherwise
  * EC_NOFRAME.
  */
-int ecx_waitinframe(ecx_portt *port, int idx, int timeout)
+int ecx_waitinframe(ecx_portt *port, uint8 idx, int timeout)
 {
        int wkc;
        osal_timert timer;
@@ -487,7 +487,7 @@ int ecx_waitinframe(ecx_portt *port, int idx, int timeout)
  * @param[in] timeout  = timeout in us
  * @return Workcounter or EC_NOFRAME
  */
-int ecx_srconfirm(ecx_portt *port, int idx, int timeout)
+int ecx_srconfirm(ecx_portt *port, uint8 idx, int timeout)
 {
        int wkc = EC_NOFRAME;
        osal_timert timer1, timer2;
@@ -529,32 +529,32 @@ int ec_getindex(void)
    return ecx_getindex(&ecx_port);
 }
 
-void ec_setbufstat(int idx, int bufstat)
+void ec_setbufstat(uint8 idx, int bufstat)
 {
    ecx_setbufstat(&ecx_port, idx, bufstat);
 }
 
-int ec_outframe(int idx, int stacknumber)
+int ec_outframe(uint8 idx, int stacknumber)
 {
    return ecx_outframe(&ecx_port, idx, stacknumber);
 }
 
-int ec_outframe_red(int idx)
+int ec_outframe_red(uint8 idx)
 {
    return ecx_outframe_red(&ecx_port, idx);
 }
 
-int ec_inframe(int idx, int stacknumber)
+int ec_inframe(uint8 idx, int stacknumber)
 {
    return ecx_inframe(&ecx_port, idx, stacknumber);
 }
 
-int ec_waitinframe(int idx, int timeout)
+int ec_waitinframe(uint8 idx, int timeout)
 {
    return ecx_waitinframe(&ecx_port, idx, timeout);
 }
 
-int ec_srconfirm(int idx, int timeout)
+int ec_srconfirm(uint8 idx, int timeout)
 {
    return ecx_srconfirm(&ecx_port, idx, timeout);
 }
index 2398040e59c57f8d05098030e9d158fae1207855..20e5d8248b85e971daa52fba561b59b314633efe 100644 (file)
@@ -73,7 +73,7 @@ typedef struct
        /** temporary tx buffer length */
        int txbuflength2;
        /** last used frame index */
-       int lastidx;
+       uint8 lastidx;
        /** current redundancy state */
        int redstate;
        /** pointer to redundancy port and buffers */
@@ -94,26 +94,26 @@ extern ecx_redportt  ecx_redport;
 
 int ec_setupnic(const char * ifname, int secondary);
 int ec_closenic(void);
-void ec_setbufstat(int idx, int bufstat);
-int ec_getindex(void);
-int ec_outframe(int idx, int sock);
-int ec_outframe_red(int idx);
-int ec_waitinframe(int idx, int timeout);
-int ec_srconfirm(int idx,int timeout);
-int ec_inframe(int idx, int stacknumber);
+void ec_setbufstat(uint8 idx, int bufstat);
+uint8 ec_getindex(void);
+int ec_outframe(uint8 idx, int sock);
+int ec_outframe_red(uint8 idx);
+int ec_waitinframe(uint8 idx, int timeout);
+int ec_srconfirm(uint8 idx,int timeout);
+int ec_inframe(uint8 idx, int stacknumber);
 #endif
 
 void ec_setupheader(void *p);
 int ecx_setupnic(ecx_portt *port, const char *ifname, int secondary);
 int ecx_closenic(ecx_portt *port);
-void ecx_setbufstat(ecx_portt *port, int idx, int bufstat);
-int ecx_getindex(ecx_portt *port);
-int ecx_outframe(ecx_portt *port, int idx, int sock);
-int ecx_outframe_red(ecx_portt *port, int idx);
-int ecx_waitinframe(ecx_portt *port, int idx, int timeout);
-int ecx_srconfirm(ecx_portt *port, int idx,int timeout);
+void ecx_setbufstat(ecx_portt *port, uint8 idx, int bufstat);
+uint8 ecx_getindex(ecx_portt *port);
+int ecx_outframe(ecx_portt *port, uint8 idx, int sock);
+int ecx_outframe_red(ecx_portt *port, uint8 idx);
+int ecx_waitinframe(ecx_portt *port, uint8 idx, int timeout);
+int ecx_srconfirm(ecx_portt *port, uint8 idx,int timeout);
 
-int ecx_inframe(ecx_portt *port, int idx, int stacknumber);
+int ecx_inframe(ecx_portt *port, uint8 idx, int stacknumber);
 
 #ifdef __cplusplus
 }
index 7cb3516dbe87ecb6b121e3479e46d46082458772..a7751d1eee9fd118d1fdce3397221699c7a6c124 100644 (file)
@@ -267,10 +267,10 @@ void ec_setupheader(void *p)
 /** Get new frame identifier index and allocate corresponding rx buffer.
  * @return new index.
  */
-int ecx_getindex(ecx_portt *port)
+uint8 ecx_getindex(ecx_portt *port)
 {
    uint8 idx;
-   int cnt;
+   uint8 cnt;
 
    WaitForRtControl(port->getindex_region);
 
@@ -307,7 +307,7 @@ int ecx_getindex(ecx_portt *port)
  * @param[in] idx      = index in buffer array
  * @param[in] bufstat  = status to set
  */
-void ecx_setbufstat(ecx_portt *port, int idx, int bufstat)
+void ecx_setbufstat(ecx_portt *port, uint8 idx, int bufstat)
 {
    port->rxbufstat[idx] = bufstat;
    if (port->redstate != ECT_RED_NONE)
@@ -321,7 +321,7 @@ void ecx_setbufstat(ecx_portt *port, int idx, int bufstat)
  * @param[in] stacknumber  = 0=Primary 1=Secondary stack
  * @return socket send result
  */
-int ecx_outframe(ecx_portt *port, int idx, int stacknumber)
+int ecx_outframe(ecx_portt *port, uint8 idx, int stacknumber)
 {
    HPESTATUS status;
    DWORD txstate;
@@ -384,7 +384,7 @@ end:
  * @param[in] idx         = index in tx buffer array
  * @return socket send result
  */
-int ecx_outframe_red(ecx_portt *port, int idx)
+int ecx_outframe_red(ecx_portt *port, uint8 idx)
 {
    HPESTATUS status;
    ec_comt *datagramP;
@@ -471,7 +471,7 @@ static int ecx_recvpkt(ecx_portt *port, int stacknumber)
  * @return Workcounter if a frame is found with corresponding index, otherwise
  * EC_NOFRAME or EC_OTHERFRAME.
  */
-int ecx_inframe(ecx_portt *port, int idx, int stacknumber)
+int ecx_inframe(ecx_portt *port, uint8 idx, int stacknumber)
 {
    uint16  l;
    int     rval;
@@ -560,7 +560,7 @@ int ecx_inframe(ecx_portt *port, int idx, int stacknumber)
  * @return Workcounter if a frame is found with corresponding index, otherwise
  * EC_NOFRAME.
  */
-static int ecx_waitinframe_red(ecx_portt *port, int idx, osal_timert *timer)
+static int ecx_waitinframe_red(ecx_portt *port, uint8 idx, osal_timert *timer)
 {
    osal_timert timer2;
    int wkc  = EC_NOFRAME;
@@ -646,7 +646,7 @@ static int ecx_waitinframe_red(ecx_portt *port, int idx, osal_timert *timer)
  * @return Workcounter if a frame is found with corresponding index, otherwise
  * EC_NOFRAME.
  */
-int ecx_waitinframe(ecx_portt *port, int idx, int timeout)
+int ecx_waitinframe(ecx_portt *port, uint8 idx, int timeout)
 {
    int wkc;
    osal_timert timer;
@@ -681,7 +681,7 @@ int ecx_waitinframe(ecx_portt *port, int idx, int timeout)
  * @param[in] timeout  = timeout in us
  * @return Workcounter or EC_NOFRAME
  */
-int ecx_srconfirm(ecx_portt *port, int idx, int timeout)
+int ecx_srconfirm(ecx_portt *port, uint8 idx, int timeout)
 {
    int wkc = EC_NOFRAME;
    osal_timert timer1;
@@ -706,37 +706,37 @@ int ec_closenic(void)
    return ecx_closenic(&ecx_port);
 }
 
-int ec_getindex(void)
+uint8 ec_getindex(void)
 {
    return ecx_getindex(&ecx_port);
 }
 
-void ec_setbufstat(int idx, int bufstat)
+void ec_setbufstat(uint8 idx, int bufstat)
 {
    ecx_setbufstat(&ecx_port, idx, bufstat);
 }
 
-int ec_outframe(int idx, int stacknumber)
+int ec_outframe(uint8 idx, int stacknumber)
 {
    return ecx_outframe(&ecx_port, idx, stacknumber);
 }
 
-int ec_outframe_red(int idx)
+int ec_outframe_red(uint8 idx)
 {
    return ecx_outframe_red(&ecx_port, idx);
 }
 
-int ec_inframe(int idx, int stacknumber)
+int ec_inframe(uint8 idx, int stacknumber)
 {
    return ecx_inframe(&ecx_port, idx, stacknumber);
 }
 
-int ec_waitinframe(int idx, int timeout)
+int ec_waitinframe(uint8 idx, int timeout)
 {
    return ecx_waitinframe(&ecx_port, idx, timeout);
 }
 
-int ec_srconfirm(int idx, int timeout)
+int ec_srconfirm(uint8 idx, int timeout)
 {
    return ecx_srconfirm(&ecx_port, idx, timeout);
 }
index 7ae8ed3091d7d2b6aa3db75b0f5c4e77f0be1734..8802d4eda97b9fe584fe55c33bdfaa0ce9edf995 100644 (file)
@@ -74,7 +74,7 @@ typedef struct
    /** temporary tx buffer length */
    int            txbuflength2;
    /** last used frame index */
-   int            lastidx;
+   uint8          lastidx;
    /** current redundancy state */
    int            redstate;
    /** pointer to redundancy port and buffers */
@@ -97,20 +97,20 @@ extern const uint16 secMAC[3];
 int ec_setupnic(const char * ifname, int secondary);
 int ec_closenic(void);
 void ec_setupheader(void *p);
-void ec_setbufstat(int idx, int bufstat);
-int ec_getindex(void);
-int ec_outframe(int idx, int sock);
-int ec_outframe_red(int idx);
-int ec_waitinframe(int idx, int timeout);
-int ec_srconfirm(int idx,int timeout);
+void ec_setbufstat(uint8 idx, int bufstat);
+uint8 ec_getindex(void);
+int ec_outframe(uint8 idx, int sock);
+int ec_outframe_red(uint8 idx);
+int ec_waitinframe(uint8 idx, int timeout);
+int ec_srconfirm(uint8 idx,int timeout);
 
 int ecx_setupnic(ecx_portt *port, const char * ifname, int secondary);
 int ecx_closenic(ecx_portt *port);
-void ecx_setbufstat(ecx_portt *port, int idx, int bufstat);
-int ecx_getindex(ecx_portt *port);
-int ecx_outframe(ecx_portt *port, int idx, int sock);
-int ecx_outframe_red(ecx_portt *port, int idx);
-int ecx_waitinframe(ecx_portt *port, int idx, int timeout);
-int ecx_srconfirm(ecx_portt *port, int idx,int timeout);
+void ecx_setbufstat(ecx_portt *port, uint8 idx, int bufstat);
+uint8 ecx_getindex(ecx_portt *port);
+int ecx_outframe(ecx_portt *port, uint8 idx, int sock);
+int ecx_outframe_red(ecx_portt *port, uint8 idx);
+int ecx_waitinframe(ecx_portt *port, uint8 idx, int timeout);
+int ecx_srconfirm(ecx_portt *port, uint8 idx,int timeout);
 
 #endif
index 6b72a0256cdfe2bcf5cc687ff1c1033ad31a48c1..8391bfaf7582f2bf81f95a3fecdb67f74f6efb68 100644 (file)
@@ -215,10 +215,10 @@ void ec_setupheader(void *p)
  * @param[in] port        = port context struct
  * @return new index.
  */
-int ecx_getindex(ecx_portt *port)
+uint8 ecx_getindex(ecx_portt *port)
 {
-   int idx;
-   int cnt;
+   uint8 idx;
+   uint8 cnt;
 
    pthread_mutex_lock( &(port->getindex_mutex) );
 
@@ -254,7 +254,7 @@ int ecx_getindex(ecx_portt *port)
  * @param[in] idx      = index in buffer array
  * @param[in] bufstat  = status to set
  */
-void ecx_setbufstat(ecx_portt *port, int idx, int bufstat)
+void ecx_setbufstat(ecx_portt *port, uint8 idx, int bufstat)
 {
    port->rxbufstat[idx] = bufstat;
    if (port->redstate != ECT_RED_NONE)
@@ -267,7 +267,7 @@ void ecx_setbufstat(ecx_portt *port, int idx, int bufstat)
  * @param[in] stacknumber  = 0=Primary 1=Secondary stack
  * @return socket send result
  */
-int ecx_outframe(ecx_portt *port, int idx, int stacknumber)
+int ecx_outframe(ecx_portt *port, uint8 idx, int stacknumber)
 {
    int lp, rval;
    ec_stackT *stack;
@@ -296,7 +296,7 @@ int ecx_outframe(ecx_portt *port, int idx, int stacknumber)
  * @param[in] idx = index in tx buffer array
  * @return socket send result
  */
-int ecx_outframe_red(ecx_portt *port, int idx)
+int ecx_outframe_red(ecx_portt *port, uint8 idx)
 {
    ec_comt *datagramP;
    ec_etherheadert *ehp;
@@ -370,11 +370,11 @@ static int ecx_recvpkt(ecx_portt *port, int stacknumber)
  * @return Workcounter if a frame is found with corresponding index, otherwise
  * EC_NOFRAME or EC_OTHERFRAME.
  */
-int ecx_inframe(ecx_portt *port, int idx, int stacknumber)
+int ecx_inframe(ecx_portt *port, uint8 idx, int stacknumber)
 {
    uint16  l;
    int     rval;
-   int     idxf;
+   uint8   idxf;
    ec_etherheadert *ehp;
    ec_comt *ecp;
    ec_stackT *stack;
@@ -464,7 +464,7 @@ int ecx_inframe(ecx_portt *port, int idx, int stacknumber)
  * @return Workcounter if a frame is found with corresponding index, otherwise
  * EC_NOFRAME.
  */
-static int ecx_waitinframe_red(ecx_portt *port, int idx, osal_timert *timer)
+static int ecx_waitinframe_red(ecx_portt *port, uint8 idx, osal_timert *timer)
 {
    osal_timert timer2;
    int wkc  = EC_NOFRAME;
@@ -547,7 +547,7 @@ static int ecx_waitinframe_red(ecx_portt *port, int idx, osal_timert *timer)
  * @return Workcounter if a frame is found with corresponding index, otherwise
  * EC_NOFRAME.
  */
-int ecx_waitinframe(ecx_portt *port, int idx, int timeout)
+int ecx_waitinframe(ecx_portt *port, uint8 idx, int timeout)
 {
    int wkc;
    osal_timert timer;
@@ -570,7 +570,7 @@ int ecx_waitinframe(ecx_portt *port, int idx, int timeout)
  * @param[in] timeout  = timeout in us
  * @return Workcounter or EC_NOFRAME
  */
-int ecx_srconfirm(ecx_portt *port, int idx, int timeout)
+int ecx_srconfirm(ecx_portt *port, uint8 idx, int timeout)
 {
    int wkc = EC_NOFRAME;
    osal_timert timer1, timer2;
@@ -608,37 +608,37 @@ int ec_closenic(void)
    return ecx_closenic(&ecx_port);
 }
 
-int ec_getindex(void)
+uint8 ec_getindex(void)
 {
    return ecx_getindex(&ecx_port);
 }
 
-void ec_setbufstat(int idx, int bufstat)
+void ec_setbufstat(uint8 idx, int bufstat)
 {
    ecx_setbufstat(&ecx_port, idx, bufstat);
 }
 
-int ec_outframe(int idx, int stacknumber)
+int ec_outframe(uint8 idx, int stacknumber)
 {
    return ecx_outframe(&ecx_port, idx, stacknumber);
 }
 
-int ec_outframe_red(int idx)
+int ec_outframe_red(uint8 idx)
 {
    return ecx_outframe_red(&ecx_port, idx);
 }
 
-int ec_inframe(int idx, int stacknumber)
+int ec_inframe(uint8 idx, int stacknumber)
 {
    return ecx_inframe(&ecx_port, idx, stacknumber);
 }
 
-int ec_waitinframe(int idx, int timeout)
+int ec_waitinframe(uint8 idx, int timeout)
 {
    return ecx_waitinframe(&ecx_port, idx, timeout);
 }
 
-int ec_srconfirm(int idx, int timeout)
+int ec_srconfirm(uint8 idx, int timeout)
 {
    return ecx_srconfirm(&ecx_port, idx, timeout);
 }
index a64af17b11a2a7b87bce8cb98b23291fad1ea21b..c2dd209c0b524d218cf3f1580f284c1ba60acd53 100644 (file)
@@ -76,7 +76,7 @@ typedef struct
    /** temporary tx buffer length */
    int txbuflength2;
    /** last used frame index */
-   int lastidx;
+   uint8 lastidx;
    /** current redundancy state */
    int redstate;
    /** pointer to redundancy port and buffers */
@@ -95,23 +95,23 @@ extern ecx_redportt  ecx_redport;
 
 int ec_setupnic(const char * ifname, int secondary);
 int ec_closenic(void);
-void ec_setbufstat(int idx, int bufstat);
-int ec_getindex(void);
-int ec_outframe(int idx, int sock);
-int ec_outframe_red(int idx);
-int ec_waitinframe(int idx, int timeout);
-int ec_srconfirm(int idx,int timeout);
+void ec_setbufstat(uint8 idx, int bufstat);
+uint8 ec_getindex(void);
+int ec_outframe(uint8 idx, int sock);
+int ec_outframe_red(uint8 idx);
+int ec_waitinframe(uint8 idx, int timeout);
+int ec_srconfirm(uint8 idx,int timeout);
 #endif
 
 void ec_setupheader(void *p);
 int ecx_setupnic(ecx_portt *port, const char * ifname, int secondary);
 int ecx_closenic(ecx_portt *port);
-void ecx_setbufstat(ecx_portt *port, int idx, int bufstat);
-int ecx_getindex(ecx_portt *port);
-int ecx_outframe(ecx_portt *port, int idx, int sock);
-int ecx_outframe_red(ecx_portt *port, int idx);
-int ecx_waitinframe(ecx_portt *port, int idx, int timeout);
-int ecx_srconfirm(ecx_portt *port, int idx,int timeout);
+void ecx_setbufstat(ecx_portt *port, uint8 idx, int bufstat);
+uint8 ecx_getindex(ecx_portt *port);
+int ecx_outframe(ecx_portt *port, uint8 idx, int sock);
+int ecx_outframe_red(ecx_portt *port, uint8 idx);
+int ecx_waitinframe(ecx_portt *port, uint8 idx, int timeout);
+int ecx_srconfirm(ecx_portt *port, uint8 idx,int timeout);
 
 #ifdef __cplusplus
 }
index a9ed49729e246d78ba2f8b3e5882d604d6c87f9e..e202bb02712000b9eee6527a92f2e9912b16a38f 100644 (file)
@@ -201,10 +201,10 @@ void ec_setupheader(void *p)
  * @param[in] port        = port context struct
  * @return new index.
  */
-int ecx_getindex(ecx_portt *port)
+uint8 ecx_getindex(ecx_portt *port)
 {
-   int idx;
-   int cnt;
+   uint8 idx;
+   uint8 cnt;
 
    pthread_mutex_lock(&(port->getindex_mutex));
 
@@ -240,7 +240,7 @@ int ecx_getindex(ecx_portt *port)
  * @param[in] idx      = index in buffer array
  * @param[in] bufstat   = status to set
  */
-void ecx_setbufstat(ecx_portt *port, int idx, int bufstat)
+void ecx_setbufstat(ecx_portt *port, uint8 idx, int bufstat)
 {
    port->rxbufstat[idx] = bufstat;
    if (port->redstate != ECT_RED_NONE)
@@ -253,7 +253,7 @@ void ecx_setbufstat(ecx_portt *port, int idx, int bufstat)
  * @param[in] stacknumber   = 0=Primary 1=Secondary stack
  * @return socket send result
  */
-int ecx_outframe(ecx_portt *port, int idx, int stacknumber)
+int ecx_outframe(ecx_portt *port, uint8 idx, int stacknumber)
 {
    int lp, rval;
    ec_stackT *stack;
@@ -282,7 +282,7 @@ int ecx_outframe(ecx_portt *port, int idx, int stacknumber)
  * @param[in] idx      = index in tx buffer array
  * @return socket send result
  */
-int ecx_outframe_red(ecx_portt *port, int idx)
+int ecx_outframe_red(ecx_portt *port, uint8 idx)
 {
    ec_comt *datagramP;
    ec_etherheadert *ehp;
@@ -371,11 +371,11 @@ static int ecx_recvpkt(ecx_portt *port, int stacknumber)
  * @return Workcounter if a frame is found with corresponding index, otherwise
  * EC_NOFRAME or EC_OTHERFRAME.
  */
-int ecx_inframe(ecx_portt *port, int idx, int stacknumber)
+int ecx_inframe(ecx_portt *port, uint8 idx, int stacknumber)
 {
    uint16  l;
    int     rval;
-   int     idxf;
+   uint8   idxf;
    ec_etherheadert *ehp;
    ec_comt *ecp;
    ec_stackT *stack;
@@ -465,7 +465,7 @@ int ecx_inframe(ecx_portt *port, int idx, int stacknumber)
  * @return Workcounter if a frame is found with corresponding index, otherwise
  * EC_NOFRAME.
  */
-static int ecx_waitinframe_red(ecx_portt *port, int idx, osal_timert *timer)
+static int ecx_waitinframe_red(ecx_portt *port, uint8 idx, osal_timert *timer)
 {
    osal_timert timer2;
    int wkc  = EC_NOFRAME;
@@ -548,7 +548,7 @@ static int ecx_waitinframe_red(ecx_portt *port, int idx, osal_timert *timer)
  * @return Workcounter if a frame is found with corresponding index, otherwise
  * EC_NOFRAME.
  */
-int ecx_waitinframe(ecx_portt *port, int idx, int timeout)
+int ecx_waitinframe(ecx_portt *port, uint8 idx, int timeout)
 {
    int wkc;
    osal_timert timer;
@@ -571,7 +571,7 @@ int ecx_waitinframe(ecx_portt *port, int idx, int timeout)
  * @param[in] timeout  = timeout in us
  * @return Workcounter or EC_NOFRAME
  */
-int ecx_srconfirm(ecx_portt *port, int idx, int timeout)
+int ecx_srconfirm(ecx_portt *port, uint8 idx, int timeout)
 {
    int wkc = EC_NOFRAME;
    osal_timert timer1, timer2;
@@ -611,37 +611,37 @@ int ec_closenic(void)
    return ecx_closenic(&ecx_port);
 }
 
-int ec_getindex(void)
+uint8 ec_getindex(void)
 {
    return ecx_getindex(&ecx_port);
 }
 
-void ec_setbufstat(int idx, int bufstat)
+void ec_setbufstat(uint8 idx, int bufstat)
 {
    ecx_setbufstat(&ecx_port, idx, bufstat);
 }
 
-int ec_outframe(int idx, int stacknumber)
+int ec_outframe(uint8 idx, int stacknumber)
 {
    return ecx_outframe(&ecx_port, idx, stacknumber);
 }
 
-int ec_outframe_red(int idx)
+int ec_outframe_red(uint8 idx)
 {
    return ecx_outframe_red(&ecx_port, idx);
 }
 
-int ec_inframe(int idx, int stacknumber)
+int ec_inframe(uint8 idx, int stacknumber)
 {
    return ecx_inframe(&ecx_port, idx, stacknumber);
 }
 
-int ec_waitinframe(int idx, int timeout)
+int ec_waitinframe(uint8 idx, int timeout)
 {
    return ecx_waitinframe(&ecx_port, idx, timeout);
 }
 
-int ec_srconfirm(int idx, int timeout)
+int ec_srconfirm(uint8 idx, int timeout)
 {
    return ecx_srconfirm(&ecx_port, idx, timeout);
 }
index 795cf27e1e07ed690a45697b5788db282f1319a1..45ac04ca5a30be613465d5b4c1eed9e959539f24 100644 (file)
@@ -76,7 +76,7 @@ typedef struct
    /** temporary tx buffer length */
    int txbuflength2;
    /** last used frame index */
-   int lastidx;
+   uint8 lastidx;
    /** current redundancy state */
    int redstate;
    /** pointer to redundancy port and buffers */
@@ -95,23 +95,23 @@ extern ecx_redportt  ecx_redport;
 
 int ec_setupnic(const char * ifname, int secondary);
 int ec_closenic(void);
-void ec_setbufstat(int idx, int bufstat);
-int ec_getindex(void);
-int ec_outframe(int idx, int sock);
-int ec_outframe_red(int idx);
-int ec_waitinframe(int idx, int timeout);
-int ec_srconfirm(int idx,int timeout);
+void ec_setbufstat(uint8 idx, int bufstat);
+uint8 ec_getindex(void);
+int ec_outframe(uint8 idx, int sock);
+int ec_outframe_red(uint8 idx);
+int ec_waitinframe(uint8 idx, int timeout);
+int ec_srconfirm(uint8 idx,int timeout);
 #endif
 
 void ec_setupheader(void *p);
 int ecx_setupnic(ecx_portt *port, const char * ifname, int secondary);
 int ecx_closenic(ecx_portt *port);
-void ecx_setbufstat(ecx_portt *port, int idx, int bufstat);
-int ecx_getindex(ecx_portt *port);
-int ecx_outframe(ecx_portt *port, int idx, int sock);
-int ecx_outframe_red(ecx_portt *port, int idx);
-int ecx_waitinframe(ecx_portt *port, int idx, int timeout);
-int ecx_srconfirm(ecx_portt *port, int idx,int timeout);
+void ecx_setbufstat(ecx_portt *port, uint8 idx, int bufstat);
+uint8 ecx_getindex(ecx_portt *port);
+int ecx_outframe(ecx_portt *port, uint8 idx, int sock);
+int ecx_outframe_red(ecx_portt *port, uint8 idx);
+int ecx_waitinframe(ecx_portt *port, uint8 idx, int timeout);
+int ecx_srconfirm(ecx_portt *port, uint8 idx,int timeout);
 
 #ifdef __cplusplus
 }
index c7cb2da254509edf50094b6f5761cae3ca0ac1b0..b2c9b2fed79006cafe83e5081f50f9c4c5220914 100644 (file)
@@ -260,10 +260,10 @@ void ec_setupheader(void *p)
  * @param[in] port        = port context struct
  * @return new index.
  */
-int ecx_getindex(ecx_portt *port)
+uint8 ecx_getindex(ecx_portt *port)
 {
-   int idx;
-   int cnt;
+   uint8 idx;
+   uint8 cnt;
 
    pthread_mutex_lock( &(port->getindex_mutex) );
 
@@ -299,7 +299,7 @@ int ecx_getindex(ecx_portt *port)
  * @param[in] idx      = index in buffer array
  * @param[in] bufstat  = status to set
  */
-void ecx_setbufstat(ecx_portt *port, int idx, int bufstat)
+void ecx_setbufstat(ecx_portt *port, uint8 idx, int bufstat)
 {
    port->rxbufstat[idx] = bufstat;
    if (port->redstate != ECT_RED_NONE)
@@ -312,7 +312,7 @@ void ecx_setbufstat(ecx_portt *port, int idx, int bufstat)
  * @param[in] stacknumber  = 0=Primary 1=Secondary stack
  * @return socket send result
  */
-int ecx_outframe(ecx_portt *port, int idx, int stacknumber)
+int ecx_outframe(ecx_portt *port, uint8 idx, int stacknumber)
 {
    int lp, rval;
    ec_stackT *stack;
@@ -342,7 +342,7 @@ int ecx_outframe(ecx_portt *port, int idx, int stacknumber)
  * @param[in] idx = index in tx buffer array
  * @return socket send result
  */
-int ecx_outframe_red(ecx_portt *port, int idx)
+int ecx_outframe_red(ecx_portt *port, uint8 idx)
 {
    ec_comt *datagramP;
    ec_etherheadert *ehp;
@@ -418,11 +418,11 @@ static int ecx_recvpkt(ecx_portt *port, int stacknumber)
  * @return Workcounter if a frame is found with corresponding index, otherwise
  * EC_NOFRAME or EC_OTHERFRAME.
  */
-int ecx_inframe(ecx_portt *port, int idx, int stacknumber)
+int ecx_inframe(ecx_portt *port, uint8 idx, int stacknumber)
 {
    uint16  l;
    int     rval;
-   int     idxf;
+   uint8   idxf;
    ec_etherheadert *ehp;
    ec_comt *ecp;
    ec_stackT *stack;
@@ -515,7 +515,7 @@ int ecx_inframe(ecx_portt *port, int idx, int stacknumber)
  * @return Workcounter if a frame is found with corresponding index, otherwise
  * EC_NOFRAME.
  */
-static int ecx_waitinframe_red(ecx_portt *port, int idx, osal_timert *timer)
+static int ecx_waitinframe_red(ecx_portt *port, uint8 idx, osal_timert *timer)
 {
    osal_timert timer2;
    int wkc  = EC_NOFRAME;
@@ -598,7 +598,7 @@ static int ecx_waitinframe_red(ecx_portt *port, int idx, osal_timert *timer)
  * @return Workcounter if a frame is found with corresponding index, otherwise
  * EC_NOFRAME.
  */
-int ecx_waitinframe(ecx_portt *port, int idx, int timeout)
+int ecx_waitinframe(ecx_portt *port, uint8 idx, int timeout)
 {
    int wkc;
    osal_timert timer;
@@ -621,7 +621,7 @@ int ecx_waitinframe(ecx_portt *port, int idx, int timeout)
  * @param[in] timeout  = timeout in us
  * @return Workcounter or EC_NOFRAME
  */
-int ecx_srconfirm(ecx_portt *port, int idx, int timeout)
+int ecx_srconfirm(ecx_portt *port, uint8 idx, int timeout)
 {
    int wkc = EC_NOFRAME;
    osal_timert timer1, timer2;
@@ -659,37 +659,37 @@ int ec_closenic(void)
    return ecx_closenic(&ecx_port);
 }
 
-int ec_getindex(void)
+uint8 ec_getindex(void)
 {
    return ecx_getindex(&ecx_port);
 }
 
-void ec_setbufstat(int idx, int bufstat)
+void ec_setbufstat(uint8 idx, int bufstat)
 {
    ecx_setbufstat(&ecx_port, idx, bufstat);
 }
 
-int ec_outframe(int idx, int stacknumber)
+int ec_outframe(uint8 idx, int stacknumber)
 {
    return ecx_outframe(&ecx_port, idx, stacknumber);
 }
 
-int ec_outframe_red(int idx)
+int ec_outframe_red(uint8 idx)
 {
    return ecx_outframe_red(&ecx_port, idx);
 }
 
-int ec_inframe(int idx, int stacknumber)
+int ec_inframe(uint8 idx, int stacknumber)
 {
    return ecx_inframe(&ecx_port, idx, stacknumber);
 }
 
-int ec_waitinframe(int idx, int timeout)
+int ec_waitinframe(uint8 idx, int timeout)
 {
    return ecx_waitinframe(&ecx_port, idx, timeout);
 }
 
-int ec_srconfirm(int idx, int timeout)
+int ec_srconfirm(uint8 idx, int timeout)
 {
    return ecx_srconfirm(&ecx_port, idx, timeout);
 }
index a64af17b11a2a7b87bce8cb98b23291fad1ea21b..c2dd209c0b524d218cf3f1580f284c1ba60acd53 100644 (file)
@@ -76,7 +76,7 @@ typedef struct
    /** temporary tx buffer length */
    int txbuflength2;
    /** last used frame index */
-   int lastidx;
+   uint8 lastidx;
    /** current redundancy state */
    int redstate;
    /** pointer to redundancy port and buffers */
@@ -95,23 +95,23 @@ extern ecx_redportt  ecx_redport;
 
 int ec_setupnic(const char * ifname, int secondary);
 int ec_closenic(void);
-void ec_setbufstat(int idx, int bufstat);
-int ec_getindex(void);
-int ec_outframe(int idx, int sock);
-int ec_outframe_red(int idx);
-int ec_waitinframe(int idx, int timeout);
-int ec_srconfirm(int idx,int timeout);
+void ec_setbufstat(uint8 idx, int bufstat);
+uint8 ec_getindex(void);
+int ec_outframe(uint8 idx, int sock);
+int ec_outframe_red(uint8 idx);
+int ec_waitinframe(uint8 idx, int timeout);
+int ec_srconfirm(uint8 idx,int timeout);
 #endif
 
 void ec_setupheader(void *p);
 int ecx_setupnic(ecx_portt *port, const char * ifname, int secondary);
 int ecx_closenic(ecx_portt *port);
-void ecx_setbufstat(ecx_portt *port, int idx, int bufstat);
-int ecx_getindex(ecx_portt *port);
-int ecx_outframe(ecx_portt *port, int idx, int sock);
-int ecx_outframe_red(ecx_portt *port, int idx);
-int ecx_waitinframe(ecx_portt *port, int idx, int timeout);
-int ecx_srconfirm(ecx_portt *port, int idx,int timeout);
+void ecx_setbufstat(ecx_portt *port, uint8 idx, int bufstat);
+uint8 ecx_getindex(ecx_portt *port);
+int ecx_outframe(ecx_portt *port, uint8 idx, int sock);
+int ecx_outframe_red(ecx_portt *port, uint8 idx);
+int ecx_waitinframe(ecx_portt *port, uint8 idx, int timeout);
+int ecx_srconfirm(ecx_portt *port, uint8 idx,int timeout);
 
 #ifdef __cplusplus
 }
index 537127dbd56876bf1ac7fc1dd6689aef3aea8a65..5568d84638a167b4481b21b8c957cc445484baf8 100644 (file)
@@ -192,10 +192,10 @@ void ec_setupheader(void *p)
  * @param[in] port        = port context struct
  * @return new index.
  */
-int ecx_getindex(ecx_portt *port)
+uint8 ecx_getindex(ecx_portt *port)
 {
-   int idx;
-   int cnt;
+   uint8 idx;
+   uint8 cnt;
 
    mtx_lock (port->getindex_mutex);
 
@@ -233,7 +233,7 @@ int ecx_getindex(ecx_portt *port)
  * @param[in] idx      = index in buffer array
  * @param[in] bufstat  = status to set
  */
-void ecx_setbufstat(ecx_portt *port, int idx, int bufstat)
+void ecx_setbufstat(ecx_portt *port, uint8 idx, int bufstat)
 {
    port->rxbufstat[idx] = bufstat;
    if (port->redstate != ECT_RED_NONE)
@@ -248,7 +248,7 @@ void ecx_setbufstat(ecx_portt *port, int idx, int bufstat)
  * @param[in] stacknumber  = 0=Primary 1=Secondary stack
  * @return socket send result
  */
-int ecx_outframe(ecx_portt *port, int idx, int stacknumber)
+int ecx_outframe(ecx_portt *port, uint8 idx, int stacknumber)
 {
    int lp, rval;
    ec_stackT *stack;
@@ -273,7 +273,7 @@ int ecx_outframe(ecx_portt *port, int idx, int stacknumber)
  * @param[in] idx = index in tx buffer array
  * @return socket send result
  */
-int ecx_outframe_red(ecx_portt *port, int idx)
+int ecx_outframe_red(ecx_portt *port, uint8 idx)
 {
    ec_comt *datagramP;
    ec_etherheadert *ehp;
@@ -347,7 +347,7 @@ static int ecx_recvpkt(ecx_portt *port, int stacknumber)
  * @return Workcounter if a frame is found with corresponding index, otherwise
  * EC_NOFRAME or EC_OTHERFRAME.
  */
-int ecx_inframe(ecx_portt *port, int idx, int stacknumber)
+int ecx_inframe(ecx_portt *port, uint8 idx, int stacknumber)
 {
    uint16  l;
    int     rval;
@@ -441,7 +441,7 @@ int ecx_inframe(ecx_portt *port, int idx, int stacknumber)
  * @return Workcounter if a frame is found with corresponding index, otherwise
  * EC_NOFRAME.
  */
-static int ecx_waitinframe_red(ecx_portt *port, int idx, osal_timert timer)
+static int ecx_waitinframe_red(ecx_portt *port, uint8 idx, osal_timert timer)
 {
    int wkc  = EC_NOFRAME;
    int wkc2 = EC_NOFRAME;
@@ -534,7 +534,7 @@ static int ecx_waitinframe_red(ecx_portt *port, int idx, osal_timert timer)
  * @return Workcounter if a frame is found with corresponding index, otherwise
  * EC_NOFRAME.
  */
-int ecx_waitinframe(ecx_portt *port, int idx, int timeout)
+int ecx_waitinframe(ecx_portt *port, uint8 idx, int timeout)
 {
    int wkc;
    osal_timert timer;
@@ -557,7 +557,7 @@ int ecx_waitinframe(ecx_portt *port, int idx, int timeout)
  * @param[in] timeout  = timeout in us
  * @return Workcounter or EC_NOFRAME
  */
-int ecx_srconfirm(ecx_portt *port, int idx, int timeout)
+int ecx_srconfirm(ecx_portt *port, uint8 idx, int timeout)
 {
    int wkc = EC_NOFRAME;
    osal_timert timer;
@@ -590,37 +590,37 @@ int ec_closenic(void)
    return ecx_closenic(&ecx_port);
 }
 
-int ec_getindex(void)
+uint8 ec_getindex(void)
 {
    return ecx_getindex(&ecx_port);
 }
 
-void ec_setbufstat(int idx, int bufstat)
+void ec_setbufstat(uint8 idx, int bufstat)
 {
    ecx_setbufstat(&ecx_port, idx, bufstat);
 }
 
-int ec_outframe(int idx, int stacknumber)
+int ec_outframe(uint8 idx, int stacknumber)
 {
    return ecx_outframe(&ecx_port, idx, stacknumber);
 }
 
-int ec_outframe_red(int idx)
+int ec_outframe_red(uint8 idx)
 {
    return ecx_outframe_red(&ecx_port, idx);
 }
 
-int ec_inframe(int idx, int stacknumber)
+int ec_inframe(uint8 idx, int stacknumber)
 {
    return ecx_inframe(&ecx_port, idx, stacknumber);
 }
 
-int ec_waitinframe(int idx, int timeout)
+int ec_waitinframe(uint8 idx, int timeout)
 {
    return ecx_waitinframe(&ecx_port, idx, timeout);
 }
 
-int ec_srconfirm(int idx, int timeout)
+int ec_srconfirm(uint8 idx, int timeout)
 {
    return ecx_srconfirm(&ecx_port, idx, timeout);
 }
index 900b3f570d6ff5cc7b7fe28c59a3370783ffc59e..b51fab89d37346fafb00c90c075199fb8ee31ec7 100644 (file)
@@ -69,7 +69,7 @@ typedef struct
    /** temporary tx buffer length */
    int txbuflength2;
    /** last used frame index */
-   int lastidx;
+   uint8 lastidx;
    /** current redundancy state */
    int redstate;
    /** pointer to redundancy port and buffers */
@@ -88,22 +88,22 @@ extern ecx_redportt  ecx_redport;
 
 int ec_setupnic(const char * ifname, int secondary);
 int ec_closenic(void);
-void ec_setbufstat(int idx, int bufstat);
-int ec_getindex(void);
-int ec_outframe(int idx, int stacknumber);
-int ec_outframe_red(int idx);
-int ec_waitinframe(int idx, int timeout);
-int ec_srconfirm(int idx,int timeout);
+void ec_setbufstat(uint8 idx, int bufstat);
+uint8 ec_getindex(void);
+int ec_outframe(uint8 idx, int stacknumber);
+int ec_outframe_red(uint8 idx);
+int ec_waitinframe(uint8 idx, int timeout);
+int ec_srconfirm(uint8 idx,int timeout);
 #endif
 
 void ec_setupheader(void *p);
 int ecx_setupnic(ecx_portt *port, const char * ifname, int secondary);
 int ecx_closenic(ecx_portt *port);
-void ecx_setbufstat(ecx_portt *port, int idx, int bufstat);
-int ecx_getindex(ecx_portt *port);
-int ecx_outframe(ecx_portt *port, int idx, int stacknumber);
-int ecx_outframe_red(ecx_portt *port, int idx);
-int ecx_waitinframe(ecx_portt *port, int idx, int timeout);
-int ecx_srconfirm(ecx_portt *port, int idx,int timeout);
+void ecx_setbufstat(ecx_portt *port, uint8 idx, int bufstat);
+uint8 ecx_getindex(ecx_portt *port);
+int ecx_outframe(ecx_portt *port, uint8 idx, int stacknumber);
+int ecx_outframe_red(ecx_portt *port, uint8 idx);
+int ecx_waitinframe(ecx_portt *port, uint8 idx, int timeout);
+int ecx_srconfirm(ecx_portt *port, uint8 idx,int timeout);
 
 #endif
index 0e4578790bc35ec153675e033cfa4577cce49442..3e37118023003bcd777fddddc565dde5fa2e3ff6 100644 (file)
@@ -371,10 +371,10 @@ void ec_setupheader(void *p)
  * @param[in] port        = port context struct
  * @return new index.
  */
-int ecx_getindex(ecx_portt *port)
+uint8 ecx_getindex(ecx_portt *port)
 {
-   int idx;
-   int cnt;
+   uint8 idx;
+   uint8 cnt;
 
    semTake(port->sem_get_index, WAIT_FOREVER);
    
@@ -408,7 +408,7 @@ int ecx_getindex(ecx_portt *port)
  * @param[in] idx      = index in buffer array
  * @param[in] bufstat  = status to set
  */
-void ecx_setbufstat(ecx_portt *port, int idx, int bufstat)
+void ecx_setbufstat(ecx_portt *port, uint8 idx, int bufstat)
 {
    port->rxbufstat[idx] = bufstat;
    if (port->redstate != ECT_RED_NONE)
@@ -423,7 +423,7 @@ void ecx_setbufstat(ecx_portt *port, int idx, int bufstat)
 * @param[in] len         = bytes to send
 * @return driver send result
 */
-static int ec_outfram_send(ETHERCAT_PKT_DEV * pPktDev, int idx, void * buf, int len)
+static int ec_outfram_send(ETHERCAT_PKT_DEV * pPktDev, uint8 idx, void * buf, int len)
 {
    STATUS status = OK;
    M_BLK_ID pPacket = NULL;
@@ -500,7 +500,7 @@ static int ec_outfram_send(ETHERCAT_PKT_DEV * pPktDev, int idx, void * buf, int
 * @param[in] stacknumber  = 0=Primary 1=Secondary stack
 * @return socket send result
 */
-int ecx_outframe(ecx_portt *port, int idx, int stacknumber)
+int ecx_outframe(ecx_portt *port, uint8 idx, int stacknumber)
 {
    int rval = 0;
    ec_stackT *stack;
@@ -537,7 +537,7 @@ int ecx_outframe(ecx_portt *port, int idx, int stacknumber)
  * @param[in] idx   = index in tx buffer array
  * @return socket send result
  */
-int ecx_outframe_red(ecx_portt *port, int idx)
+int ecx_outframe_red(ecx_portt *port, uint8 idx)
 {
    ec_comt *datagramP;
    ec_etherheadert *ehp;
@@ -581,7 +581,7 @@ int ecx_outframe_red(ecx_portt *port, int idx)
 static int mux_rx_callback(void* pCookie, long type, M_BLK_ID pMblk, LL_HDR_INFO *llHdrInfo, void *muxUserArg)
 {
    BOOL ret = FALSE;
-   int idxf;
+   uint8 idxf;
    ec_comt *ecp;
    ec_bufT * tempbuf;
    ecx_portt * port;
@@ -678,7 +678,7 @@ static int mux_rx_callback(void* pCookie, long type, M_BLK_ID pMblk, LL_HDR_INFO
  * @param[in] timeout    = timeout in us
  * @return >0 if frame is available and read
  */
-static int ecx_recvpkt(ecx_portt *port, int idx, int stacknumber, M_BLK_ID * pMblk, int timeout)
+static int ecx_recvpkt(ecx_portt *port, uint8 idx, int stacknumber, M_BLK_ID * pMblk, int timeout)
 {
    int bytesrx = 0;
    MSG_Q_ID  msgQId;
@@ -728,7 +728,7 @@ static int ecx_recvpkt(ecx_portt *port, int idx, int stacknumber, M_BLK_ID * pMb
  * @return Workcounter if a frame is found with corresponding index, otherwise
  * EC_NOFRAME or EC_OTHERFRAME.
  */
-int ecx_inframe(ecx_portt *port, int idx, int stacknumber, int timeout)
+int ecx_inframe(ecx_portt *port, uint8 idx, int stacknumber, int timeout)
 {
    uint16  l;
    int     rval;
@@ -792,7 +792,7 @@ int ecx_inframe(ecx_portt *port, int idx, int stacknumber, int timeout)
  * @return Workcounter if a frame is found with corresponding index, otherwise
  * EC_NOFRAME.
  */
-static int ecx_waitinframe_red(ecx_portt *port, int idx, osal_timert *timer, int timeout)
+static int ecx_waitinframe_red(ecx_portt *port, uint8 idx, osal_timert *timer, int timeout)
 {
    osal_timert timer2;
    int wkc  = EC_NOFRAME;
@@ -881,7 +881,7 @@ static int ecx_waitinframe_red(ecx_portt *port, int idx, osal_timert *timer, int
  * @return Workcounter if a frame is found with corresponding index, otherwise
  * EC_NOFRAME.
  */
-int ecx_waitinframe(ecx_portt *port, int idx, int timeout)
+int ecx_waitinframe(ecx_portt *port, uint8 idx, int timeout)
 {
    int wkc;
    osal_timert timer;
@@ -904,7 +904,7 @@ int ecx_waitinframe(ecx_portt *port, int idx, int timeout)
  * @param[in] timeout  = timeout in us
  * @return Workcounter or EC_NOFRAME
  */
-int ecx_srconfirm(ecx_portt *port, int idx, int timeout)
+int ecx_srconfirm(ecx_portt *port, uint8 idx, int timeout)
 {
    int wkc = EC_NOFRAME;
    osal_timert timer1, timer2;
@@ -943,37 +943,37 @@ int ec_closenic(void)
    return ecx_closenic(&ecx_port);
 }
 
-int ec_getindex(void)
+uint8 ec_getindex(void)
 {
    return ecx_getindex(&ecx_port);
 }
 
-void ec_setbufstat(int idx, int bufstat)
+void ec_setbufstat(uint8 idx, int bufstat)
 {
    ecx_setbufstat(&ecx_port, idx, bufstat);
 }
 
-int ec_outframe(int idx, int stacknumber)
+int ec_outframe(uint8 idx, int stacknumber)
 {
    return ecx_outframe(&ecx_port, idx, stacknumber);
 }
 
-int ec_outframe_red(int idx)
+int ec_outframe_red(uint8 idx)
 {
    return ecx_outframe_red(&ecx_port, idx);
 }
 
-int ec_inframe(int idx, int stacknumber, int timeout)
+int ec_inframe(uint8 idx, int stacknumber, int timeout)
 {
    return ecx_inframe(&ecx_port, idx, stacknumber, timeout);
 }
 
-int ec_waitinframe(int idx, int timeout)
+int ec_waitinframe(uint8 idx, int timeout)
 {
    return ecx_waitinframe(&ecx_port, idx, timeout);
 }
 
-int ec_srconfirm(int idx, int timeout)
+int ec_srconfirm(uint8 idx, int timeout)
 {
    return ecx_srconfirm(&ecx_port, idx, timeout);
 }
index e009399b469600a38d6922b31aa49dafc6640948..6bb34e5399f6a9e4ad36e4287fff8c1b1a474860 100644 (file)
@@ -85,7 +85,7 @@ typedef struct ecx_port
    /** temporary tx buffer length */
    int txbuflength2;
    /** last used frame index */
-   int lastidx;
+   uint8 lastidx;
    /** current redundancy state */
    int redstate;
    /** pointer to redundancy port and buffers */
@@ -105,23 +105,23 @@ extern ecx_redportt  ecx_redport;
 
 int ec_setupnic(const char * ifname, int secondary);
 int ec_closenic(void);
-void ec_setbufstat(int idx, int bufstat);
-int ec_getindex(void);
-int ec_outframe(int idx, int sock);
-int ec_outframe_red(int idx);
-int ec_waitinframe(int idx, int timeout);
-int ec_srconfirm(int idx,int timeout);
+void ec_setbufstat(uint8 idx, int bufstat);
+uint8 ec_getindex(void);
+int ec_outframe(uint8 idx, int sock);
+int ec_outframe_red(uint8 idx);
+int ec_waitinframe(uint8 idx, int timeout);
+int ec_srconfirm(uint8 idx,int timeout);
 #endif
 
 void ec_setupheader(void *p);
 int ecx_setupnic(ecx_portt *port, const char * ifname, int secondary);
 int ecx_closenic(ecx_portt *port);
-void ecx_setbufstat(ecx_portt *port, int idx, int bufstat);
-int ecx_getindex(ecx_portt *port);
-int ecx_outframe(ecx_portt *port, int idx, int sock);
-int ecx_outframe_red(ecx_portt *port, int idx);
-int ecx_waitinframe(ecx_portt *port, int idx, int timeout);
-int ecx_srconfirm(ecx_portt *port, int idx,int timeout);
+void ecx_setbufstat(ecx_portt *port, uint8 idx, int bufstat);
+uint8 ecx_getindex(ecx_portt *port);
+int ecx_outframe(ecx_portt *port, uint8 idx, int sock);
+int ecx_outframe_red(ecx_portt *port, uint8 idx);
+int ecx_waitinframe(ecx_portt *port, uint8 idx, int timeout);
+int ecx_srconfirm(ecx_portt *port, uint8 idx,int timeout);
 
 #ifdef __cplusplus
 }
index 598e4079575f6f56768c9f2dca483d4bee56b365..7c9b11cd8dcd0098928b897791e1e815af617f0e 100644 (file)
@@ -202,10 +202,10 @@ void ec_setupheader(void *p)
  * @param[in] port        = port context struct
  * @return new index.
  */
-int ecx_getindex(ecx_portt *port)
+uint8 ecx_getindex(ecx_portt *port)
 {
-   int idx;
-   int cnt;
+   uint8 idx;
+   uint8 cnt;
 
    EnterCriticalSection(&(port->getindex_mutex));
 
@@ -241,7 +241,7 @@ int ecx_getindex(ecx_portt *port)
  * @param[in] idx      = index in buffer array
  * @param[in] bufstat   = status to set
  */
-void ecx_setbufstat(ecx_portt *port, int idx, int bufstat)
+void ecx_setbufstat(ecx_portt *port, uint8 idx, int bufstat)
 {
    port->rxbufstat[idx] = bufstat;
    if (port->redstate != ECT_RED_NONE)
@@ -254,7 +254,7 @@ void ecx_setbufstat(ecx_portt *port, int idx, int bufstat)
  * @param[in] stacknumber   = 0=Primary 1=Secondary stack
  * @return socket send result
  */
-int ecx_outframe(ecx_portt *port, int idx, int stacknumber)
+int ecx_outframe(ecx_portt *port, uint8 idx, int stacknumber)
 {
    int lp, rval;
    ec_stackT *stack;
@@ -283,7 +283,7 @@ int ecx_outframe(ecx_portt *port, int idx, int stacknumber)
  * @param[in] idx      = index in tx buffer array
  * @return socket send result
  */
-int ecx_outframe_red(ecx_portt *port, int idx)
+int ecx_outframe_red(ecx_portt *port, uint8 idx)
 {
    ec_comt *datagramP;
    ec_etherheadert *ehp;
@@ -371,11 +371,11 @@ static int ecx_recvpkt(ecx_portt *port, int stacknumber)
  * @return Workcounter if a frame is found with corresponding index, otherwise
  * EC_NOFRAME or EC_OTHERFRAME.
  */
-int ecx_inframe(ecx_portt *port, int idx, int stacknumber)
+int ecx_inframe(ecx_portt *port, uint8 idx, int stacknumber)
 {
    uint16  l;
    int     rval;
-   int     idxf;
+   uint8   idxf;
    ec_etherheadert *ehp;
    ec_comt *ecp;
    ec_stackT *stack;
@@ -465,7 +465,7 @@ int ecx_inframe(ecx_portt *port, int idx, int stacknumber)
  * @return Workcounter if a frame is found with corresponding index, otherwise
  * EC_NOFRAME.
  */
-static int ecx_waitinframe_red(ecx_portt *port, int idx, osal_timert *timer)
+static int ecx_waitinframe_red(ecx_portt *port, uint8 idx, osal_timert *timer)
 {
    osal_timert timer2;
    int wkc  = EC_NOFRAME;
@@ -548,7 +548,7 @@ static int ecx_waitinframe_red(ecx_portt *port, int idx, osal_timert *timer)
  * @return Workcounter if a frame is found with corresponding index, otherwise
  * EC_NOFRAME.
  */
-int ecx_waitinframe(ecx_portt *port, int idx, int timeout)
+int ecx_waitinframe(ecx_portt *port, uint8 idx, int timeout)
 {
    int wkc;
    osal_timert timer;
@@ -571,7 +571,7 @@ int ecx_waitinframe(ecx_portt *port, int idx, int timeout)
  * @param[in] timeout  = timeout in us
  * @return Workcounter or EC_NOFRAME
  */
-int ecx_srconfirm(ecx_portt *port, int idx, int timeout)
+int ecx_srconfirm(ecx_portt *port, uint8 idx, int timeout)
 {
    int wkc = EC_NOFRAME;
    osal_timert timer1, timer2;
@@ -611,37 +611,37 @@ int ec_closenic(void)
    return ecx_closenic(&ecx_port);
 }
 
-int ec_getindex(void)
+uint8 ec_getindex(void)
 {
    return ecx_getindex(&ecx_port);
 }
 
-void ec_setbufstat(int idx, int bufstat)
+void ec_setbufstat(uint8 idx, int bufstat)
 {
    ecx_setbufstat(&ecx_port, idx, bufstat);
 }
 
-int ec_outframe(int idx, int stacknumber)
+int ec_outframe(uint8 idx, int stacknumber)
 {
    return ecx_outframe(&ecx_port, idx, stacknumber);
 }
 
-int ec_outframe_red(int idx)
+int ec_outframe_red(uint8 idx)
 {
    return ecx_outframe_red(&ecx_port, idx);
 }
 
-int ec_inframe(int idx, int stacknumber)
+int ec_inframe(uint8 idx, int stacknumber)
 {
    return ecx_inframe(&ecx_port, idx, stacknumber);
 }
 
-int ec_waitinframe(int idx, int timeout)
+int ec_waitinframe(uint8 idx, int timeout)
 {
    return ecx_waitinframe(&ecx_port, idx, timeout);
 }
 
-int ec_srconfirm(int idx, int timeout)
+int ec_srconfirm(uint8 idx, int timeout)
 {
    return ecx_srconfirm(&ecx_port, idx, timeout);
 }
index 20d5d519bd8d367733f4a6eb43c2c53d745f0a4c..32103a3a96de4da57a4c7081a24f8dbed4dd88b0 100644 (file)
@@ -79,7 +79,7 @@ typedef struct
    /** temporary tx buffer length */
    int txbuflength2;
    /** last used frame index */
-   int lastidx;
+   uint8 lastidx;
    /** current redundancy state */
    int redstate;
    /** pointer to redundancy port and buffers */
@@ -98,23 +98,23 @@ extern ecx_redportt  ecx_redport;
 
 int ec_setupnic(const char * ifname, int secondary);
 int ec_closenic(void);
-void ec_setbufstat(int idx, int bufstat);
-int ec_getindex(void);
-int ec_outframe(int idx, int sock);
-int ec_outframe_red(int idx);
-int ec_waitinframe(int idx, int timeout);
-int ec_srconfirm(int idx,int timeout);
+void ec_setbufstat(uint8 idx, int bufstat);
+uint8 ec_getindex(void);
+int ec_outframe(uint8 idx, int sock);
+int ec_outframe_red(uint8 idx);
+int ec_waitinframe(uint8 idx, int timeout);
+int ec_srconfirm(uint8 idx,int timeout);
 #endif
 
 void ec_setupheader(void *p);
 int ecx_setupnic(ecx_portt *port, const char * ifname, int secondary);
 int ecx_closenic(ecx_portt *port);
-void ecx_setbufstat(ecx_portt *port, int idx, int bufstat);
-int ecx_getindex(ecx_portt *port);
-int ecx_outframe(ecx_portt *port, int idx, int sock);
-int ecx_outframe_red(ecx_portt *port, int idx);
-int ecx_waitinframe(ecx_portt *port, int idx, int timeout);
-int ecx_srconfirm(ecx_portt *port, int idx,int timeout);
+void ecx_setbufstat(ecx_portt *port, uint8 idx, int bufstat);
+uint8 ecx_getindex(ecx_portt *port);
+int ecx_outframe(ecx_portt *port, uint8 idx, int sock);
+int ecx_outframe_red(ecx_portt *port, uint8 idx);
+int ecx_waitinframe(ecx_portt *port, uint8 idx, int timeout);
+int ecx_srconfirm(ecx_portt *port, uint8 idx,int timeout);
 
 #ifdef __cplusplus
 }
index a3a8510e6f11730c666675f5cd863fa4a3c2487c..ba9256398c730c2f06b3daf910958e30720f794d 100644 (file)
@@ -103,7 +103,7 @@ int ecx_setupdatagram(ecx_portt *port, void *frame, uint8 com, uint8 idx, uint16
  * @param[in]  data       = databuffer to be copied in datagram
  * @return Offset to data in rx frame, usefull to retrieve data after RX.
  */
-int ecx_adddatagram(ecx_portt *port, void *frame, uint8 com, uint8 idx, boolean more, uint16 ADP, uint16 ADO, uint16 length, void *data)
+uint16 ecx_adddatagram(ecx_portt *port, void *frame, uint8 com, uint8 idx, boolean more, uint16 ADP, uint16 ADO, uint16 length, void *data)
 {
    ec_comt *datagramP;
    uint8 *frameP;
@@ -111,7 +111,7 @@ int ecx_adddatagram(ecx_portt *port, void *frame, uint8 com, uint8 idx, boolean
 
    frameP = frame;
    /* copy previous frame size */
-   prevlength = port->txbuflength[idx];
+   prevlength = (uint16)port->txbuflength[idx];
    datagramP = (ec_comt*)&frameP[ETH_HEADERSIZE];
    /* add new datagram to ethernet frame size */
    datagramP->elength = htoes( etohs(datagramP->elength) + EC_HEADERSIZE + length );
@@ -541,7 +541,7 @@ int ec_setupdatagram(void *frame, uint8 com, uint8 idx, uint16 ADP, uint16 ADO,
    return ecx_setupdatagram (&ecx_port, frame, com, idx, ADP, ADO, length, data);
 }
 
-int ec_adddatagram (void *frame, uint8 com, uint8 idx, boolean more, uint16 ADP, uint16 ADO, uint16 length, void *data)
+uint16 ec_adddatagram (void *frame, uint8 com, uint8 idx, boolean more, uint16 ADP, uint16 ADO, uint16 length, void *data)
 {
    return ecx_adddatagram (&ecx_port, frame, com, idx, more, ADP, ADO, length, data);
 }
index 2f6a900892374b2bdc304b2e56a11592ee091605..e1ee6876b3228f272f9e30a1787dd7ede0815127 100644 (file)
@@ -17,7 +17,7 @@ extern "C"
 #endif
 
 int ecx_setupdatagram(ecx_portt *port, void *frame, uint8 com, uint8 idx, uint16 ADP, uint16 ADO, uint16 length, void *data);
-int ecx_adddatagram(ecx_portt *port, void *frame, uint8 com, uint8 idx, boolean more, uint16 ADP, uint16 ADO, uint16 length, void *data);
+uint16 ecx_adddatagram(ecx_portt *port, void *frame, uint8 com, uint8 idx, boolean more, uint16 ADP, uint16 ADO, uint16 length, void *data);
 int ecx_BWR(ecx_portt *port, uint16 ADP,uint16 ADO,uint16 length,void *data,int timeout);
 int ecx_BRD(ecx_portt *port, uint16 ADP,uint16 ADO,uint16 length,void *data,int timeout);
 int ecx_APRD(ecx_portt *port, uint16 ADP, uint16 ADO, uint16 length, void *data, int timeout);
@@ -37,7 +37,7 @@ int ecx_LRWDC(ecx_portt *port, uint32 LogAdr, uint16 length, void *data, uint16
 
 #ifdef EC_VER1
 int ec_setupdatagram(void *frame, uint8 com, uint8 idx, uint16 ADP, uint16 ADO, uint16 length, void *data);
-int ec_adddatagram(void *frame, uint8 com, uint8 idx, boolean more, uint16 ADP, uint16 ADO, uint16 length, void *data);
+uint16 ec_adddatagram(void *frame, uint8 com, uint8 idx, boolean more, uint16 ADP, uint16 ADO, uint16 length, void *data);
 int ec_BWR(uint16 ADP,uint16 ADO,uint16 length,void *data,int timeout);
 int ec_BRD(uint16 ADP,uint16 ADO,uint16 length,void *data,int timeout);
 int ec_APRD(uint16 ADP, uint16 ADO, uint16 length, void *data, int timeout);
index 735304d15df74d7ce1dd39f9a0978a9800226f02..e1a9ce3d00bd73b49d88afc12d90d4bbaa19c6b0 100644 (file)
@@ -142,7 +142,7 @@ int ecx_SDOread(ecx_contextt *context, uint16 slave, uint16 index, uint8 subinde
    /* get new mailbox count value, used as session handle */
    cnt = ec_nextmbxcnt(context->slavelist[slave].mbx_cnt);
    context->slavelist[slave].mbx_cnt = cnt;
-   SDOp->MbxHeader.mbxtype = ECT_MBXT_COE + (cnt << 4); /* CoE */
+   SDOp->MbxHeader.mbxtype = ECT_MBXT_COE + MBX_HDR_SET_CNT(cnt); /* CoE */
    SDOp->CANOpen = htoes(0x000 + (ECT_COES_SDOREQ << 12)); /* number 9bits service upper 4 bits (SDO request) */
    if (CA)
    {
@@ -218,7 +218,7 @@ int ecx_SDOread(ecx_contextt *context, uint16 slave, uint16 index, uint8 subinde
                         SDOp->MbxHeader.priority = 0x00;
                         cnt = ec_nextmbxcnt(context->slavelist[slave].mbx_cnt);
                         context->slavelist[slave].mbx_cnt = cnt;
-                        SDOp->MbxHeader.mbxtype = ECT_MBXT_COE + (cnt << 4); /* CoE */
+                        SDOp->MbxHeader.mbxtype = ECT_MBXT_COE + MBX_HDR_SET_CNT(cnt); /* CoE */
                         SDOp->CANOpen = htoes(0x000 + (ECT_COES_SDOREQ << 12)); /* number 9bits service upper 4 bits (SDO request) */
                         SDOp->Command = ECT_SDO_SEG_UP_REQ + toggle; /* segment upload request */
                         SDOp->Index = htoes(index);
@@ -331,10 +331,9 @@ int ecx_SDOwrite(ecx_contextt *context, uint16 Slave, uint16 Index, uint8 SubInd
                 boolean CA, int psize, void *p, int Timeout)
 {
    ec_SDOt *SDOp, *aSDOp;
-   int wkc, maxdata;
+   int wkc, maxdata, framedatasize;
    ec_mbxbuft MbxIn, MbxOut;
    uint8 cnt, toggle;
-   uint16 framedatasize;
    boolean  NotLast;
    uint8 *hp;
 
@@ -354,7 +353,7 @@ int ecx_SDOwrite(ecx_contextt *context, uint16 Slave, uint16 Index, uint8 SubInd
       /* get new mailbox counter, used for session handle */
       cnt = ec_nextmbxcnt(context->slavelist[Slave].mbx_cnt);
       context->slavelist[Slave].mbx_cnt = cnt;
-      SDOp->MbxHeader.mbxtype = ECT_MBXT_COE + (cnt << 4); /* CoE */
+      SDOp->MbxHeader.mbxtype = ECT_MBXT_COE + MBX_HDR_SET_CNT(cnt); /* CoE */
       SDOp->CANOpen = htoes(0x000 + (ECT_COES_SDOREQ << 12)); /* number 9bits service upper 4 bits */
       SDOp->Command = ECT_SDO_DOWN_EXP | (((4 - psize) << 2) & 0x0c); /* expedited SDO download transfer */
       SDOp->Index = htoes(Index);
@@ -404,13 +403,13 @@ int ecx_SDOwrite(ecx_contextt *context, uint16 Slave, uint16 Index, uint8 SubInd
          framedatasize = maxdata;  /*  segmented transfer needed  */
          NotLast = TRUE;
       }
-      SDOp->MbxHeader.length = htoes(0x0a + framedatasize);
+      SDOp->MbxHeader.length = htoes((uint16)(0x0a + framedatasize));
       SDOp->MbxHeader.address = htoes(0x0000);
       SDOp->MbxHeader.priority = 0x00;
       /* get new mailbox counter, used for session handle */
       cnt = ec_nextmbxcnt(context->slavelist[Slave].mbx_cnt);
       context->slavelist[Slave].mbx_cnt = cnt;
-      SDOp->MbxHeader.mbxtype = ECT_MBXT_COE + (cnt << 4); /* CoE */
+      SDOp->MbxHeader.mbxtype = ECT_MBXT_COE + MBX_HDR_SET_CNT(cnt); /* CoE */
       SDOp->CANOpen = htoes(0x000 + (ECT_COES_SDOREQ << 12)); /* number 9bits service upper 4 bits */
       if (CA)
       {
@@ -466,18 +465,18 @@ int ecx_SDOwrite(ecx_contextt *context, uint16 Slave, uint16 Index, uint8 SubInd
                   if (!NotLast && (framedatasize < 7))
                   {
                      SDOp->MbxHeader.length = htoes(0x0a); /* minimum size */
-                     SDOp->Command = 0x01 + ((7 - framedatasize) << 1); /* last segment reduced octets */
+                     SDOp->Command = (uint8)(0x01 + ((7 - framedatasize) << 1)); /* last segment reduced octets */
                   }
                   else
                   {
-                     SDOp->MbxHeader.length = htoes(framedatasize + 3); /* data + 2 CoE + 1 SDO */
+                     SDOp->MbxHeader.length = htoes((uint16)(framedatasize + 3)); /* data + 2 CoE + 1 SDO */
                   }
                   SDOp->MbxHeader.address = htoes(0x0000);
                   SDOp->MbxHeader.priority = 0x00;
                   /* get new mailbox counter value */
                   cnt = ec_nextmbxcnt(context->slavelist[Slave].mbx_cnt);
                   context->slavelist[Slave].mbx_cnt = cnt;
-                  SDOp->MbxHeader.mbxtype = ECT_MBXT_COE + (cnt << 4); /* CoE */
+                  SDOp->MbxHeader.mbxtype = ECT_MBXT_COE + MBX_HDR_SET_CNT(cnt); /* CoE */
                   SDOp->CANOpen = htoes(0x000 + (ECT_COES_SDOREQ << 12)); /* number 9bits service upper 4 bits (SDO request) */
                   SDOp->Command = SDOp->Command + toggle; /* add toggle bit to command byte */
                   /* copy parameter data to mailbox */
@@ -552,10 +551,9 @@ int ecx_SDOwrite(ecx_contextt *context, uint16 Slave, uint16 Index, uint8 SubInd
 int ecx_RxPDO(ecx_contextt *context, uint16 Slave, uint16 RxPDOnumber, int psize, void *p)
 {
    ec_SDOt *SDOp;
-   int wkc, maxdata;
+   int wkc, maxdata, framedatasize;
    ec_mbxbuft MbxIn, MbxOut;
    uint8 cnt;
-   uint16 framedatasize;
 
    ec_clearmbx(&MbxIn);
    /* Empty slave out mailbox if something is in. Timeout set to 0 */
@@ -568,13 +566,13 @@ int ecx_RxPDO(ecx_contextt *context, uint16 Slave, uint16 RxPDOnumber, int psize
    {
       framedatasize = maxdata;  /*  limit transfer */
    }
-   SDOp->MbxHeader.length = htoes(0x02 + framedatasize);
+   SDOp->MbxHeader.length = htoes((uint16)(0x02 + framedatasize));
    SDOp->MbxHeader.address = htoes(0x0000);
    SDOp->MbxHeader.priority = 0x00;
    /* get new mailbox counter, used for session handle */
    cnt = ec_nextmbxcnt(context->slavelist[Slave].mbx_cnt);
    context->slavelist[Slave].mbx_cnt = cnt;
-   SDOp->MbxHeader.mbxtype = ECT_MBXT_COE + (cnt << 4); /* CoE */
+   SDOp->MbxHeader.mbxtype = ECT_MBXT_COE + MBX_HDR_SET_CNT(cnt); /* CoE */
    SDOp->CANOpen = htoes((RxPDOnumber & 0x01ff) + (ECT_COES_RXPDO << 12)); /* number 9bits service upper 4 bits */
    /* copy PDO data to mailbox */
    memcpy(&SDOp->Command, p, framedatasize);
@@ -616,7 +614,7 @@ int ecx_TxPDO(ecx_contextt *context, uint16 slave, uint16 TxPDOnumber , int *psi
    /* get new mailbox counter, used for session handle */
    cnt = ec_nextmbxcnt(context->slavelist[slave].mbx_cnt);
    context->slavelist[slave].mbx_cnt = cnt;
-   SDOp->MbxHeader.mbxtype = ECT_MBXT_COE + (cnt << 4); /* CoE */
+   SDOp->MbxHeader.mbxtype = ECT_MBXT_COE + MBX_HDR_SET_CNT(cnt); /* CoE */
    SDOp->CANOpen = htoes((TxPDOnumber & 0x01ff) + (ECT_COES_TXPDO_RR << 12)); /* number 9bits service upper 4 bits */
    wkc = ecx_mbxsend(context, slave, (ec_mbxbuft *)&MbxOut, EC_TIMEOUTTXM);
    if (wkc > 0)
@@ -672,12 +670,13 @@ int ecx_TxPDO(ecx_contextt *context, uint16 slave, uint16 TxPDOnumber , int *psi
  * @param[in]  PDOassign     = PDO assign object
  * @return total bitlength of PDO assign
  */
-int ecx_readPDOassign(ecx_contextt *context, uint16 Slave, uint16 PDOassign)
+uint32 ecx_readPDOassign(ecx_contextt *context, uint16 Slave, uint16 PDOassign)
 {
    uint16 idxloop, nidx, subidxloop, rdat, idx, subidx;
    uint8 subcnt;
-   int wkc, bsize = 0, rdl;
+   int wkc, rdl;
    int32 rdat2;
+   uint32 bsize = 0;
 
    rdl = sizeof(rdat); rdat = 0;
    /* read PDO assign subindex 0 ( = number of PDO's) */
@@ -737,11 +736,12 @@ int ecx_readPDOassign(ecx_contextt *context, uint16 Slave, uint16 PDOassign)
  * @param[in]  PDOassign     = PDO assign object
  * @return total bitlength of PDO assign
  */
-int ecx_readPDOassignCA(ecx_contextt *context, uint16 Slave, int Thread_n,
+uint32 ecx_readPDOassignCA(ecx_contextt *context, uint16 Slave, int Thread_n,
       uint16 PDOassign)
 {
    uint16 idxloop, nidx, subidxloop, idx, subidx;
-   int wkc, bsize = 0, rdl;
+   int wkc, rdl;
+   uint32 bsize = 0;
 
    /* find maximum size of PDOassign buffer */
    rdl = sizeof(ec_PDOassignt);
@@ -807,12 +807,12 @@ int ecx_readPDOassignCA(ecx_contextt *context, uint16 Slave, int Thread_n,
  * @param[out] Isize   = Size in bits of input mapping (txPDO) found
  * @return >0 if mapping successful.
  */
-int ecx_readPDOmap(ecx_contextt *context, uint16 Slave, int *Osize, int *Isize)
+int ecx_readPDOmap(ecx_contextt *context, uint16 Slave, uint32 *Osize, uint32 *Isize)
 {
    int wkc, rdl;
    int retVal = 0;
    uint8 nSM, iSM, tSM;
-   int Tsize;
+   uint32 Tsize;
    uint8 SMt_bug_add;
 
    *Isize = 0;
@@ -868,7 +868,7 @@ int ecx_readPDOmap(ecx_contextt *context, uint16 Slave, int *Osize, int *Isize)
                /* if a mapping is found */
                if (Tsize)
                {
-                  context->slavelist[Slave].SM[iSM].SMlength = htoes((Tsize + 7) / 8);
+                  context->slavelist[Slave].SM[iSM].SMlength = htoes((uint16)((Tsize + 7) / 8));
                   if (tSM == 3)
                   {
                      /* we are doing outputs */
@@ -907,12 +907,12 @@ int ecx_readPDOmap(ecx_contextt *context, uint16 Slave, int *Osize, int *Isize)
  * @param[out] Isize    = Size in bits of input mapping (txPDO) found
  * @return >0 if mapping successful.
  */
-int ecx_readPDOmapCA(ecx_contextt *context, uint16 Slave, int Thread_n, int *Osize, int *Isize)
+int ecx_readPDOmapCA(ecx_contextt *context, uint16 Slave, int Thread_n, uint32 *Osize, uint32 *Isize)
 {
    int wkc, rdl;
    int retVal = 0;
    uint8 nSM, iSM, tSM;
-   int Tsize;
+   uint32 Tsize;
    uint8 SMt_bug_add;
 
    *Isize = 0;
@@ -964,7 +964,7 @@ int ecx_readPDOmapCA(ecx_contextt *context, uint16 Slave, int Thread_n, int *Osi
             /* if a mapping is found */
             if (Tsize)
             {
-               context->slavelist[Slave].SM[iSM].SMlength = htoes((Tsize + 7) / 8);
+               context->slavelist[Slave].SM[iSM].SMlength = htoes((uint16)((Tsize + 7) / 8));
                if (tSM == 3)
                {
                   /* we are doing outputs */
@@ -1019,7 +1019,7 @@ int ecx_readODlist(ecx_contextt *context, uint16 Slave, ec_ODlistt *pODlist)
    /* Get new mailbox counter value */
    cnt = ec_nextmbxcnt(context->slavelist[Slave].mbx_cnt);
    context->slavelist[Slave].mbx_cnt = cnt;
-   SDOp->MbxHeader.mbxtype = ECT_MBXT_COE + (cnt << 4); /* CoE */
+   SDOp->MbxHeader.mbxtype = ECT_MBXT_COE + MBX_HDR_SET_CNT(cnt); /* CoE */
    SDOp->CANOpen = htoes(0x000 + (ECT_COES_SDOINFO << 12)); /* number 9bits service upper 4 bits */
    SDOp->Opcode = ECT_GET_ODLIST_REQ; /* get object description list request */
    SDOp->Reserved = 0;
@@ -1139,7 +1139,7 @@ int ecx_readODdescription(ecx_contextt *context, uint16 Item, ec_ODlistt *pODlis
    /* Get new mailbox counter value */
    cnt = ec_nextmbxcnt(context->slavelist[Slave].mbx_cnt);
    context->slavelist[Slave].mbx_cnt = cnt;
-   SDOp->MbxHeader.mbxtype = ECT_MBXT_COE + (cnt << 4); /* CoE */
+   SDOp->MbxHeader.mbxtype = ECT_MBXT_COE + MBX_HDR_SET_CNT(cnt); /* CoE */
    SDOp->CANOpen = htoes(0x000 + (ECT_COES_SDOINFO << 12)); /* number 9bits service upper 4 bits */
    SDOp->Opcode = ECT_GET_OD_REQ; /* get object description request */
    SDOp->Reserved = 0;
@@ -1224,7 +1224,7 @@ int ecx_readOEsingle(ecx_contextt *context, uint16 Item, uint8 SubI, ec_ODlistt
    /* Get new mailbox counter value */
    cnt = ec_nextmbxcnt(context->slavelist[Slave].mbx_cnt);
    context->slavelist[Slave].mbx_cnt = cnt;
-   SDOp->MbxHeader.mbxtype = ECT_MBXT_COE + (cnt << 4); /* CoE */
+   SDOp->MbxHeader.mbxtype = ECT_MBXT_COE + MBX_HDR_SET_CNT(cnt); /* CoE */
    SDOp->CANOpen = htoes(0x000 + (ECT_COES_SDOINFO << 12)); /* number 9bits service upper 4 bits */
    SDOp->Opcode = ECT_GET_OE_REQ; /* get object entry description request */
    SDOp->Reserved = 0;
@@ -1408,7 +1408,7 @@ int ec_TxPDO(uint16 slave, uint16 TxPDOnumber , int *psize, void *p, int timeout
  * @param[in]  PDOassign     = PDO assign object
  * @return total bitlength of PDO assign
  */
-int ec_readPDOassign(uint16 Slave, uint16 PDOassign)
+uint32 ec_readPDOassign(uint16 Slave, uint16 PDOassign)
 {
    return ecx_readPDOassign(&ecx_context, Slave, PDOassign);
 }
@@ -1420,7 +1420,7 @@ int ec_readPDOassign(uint16 Slave, uint16 PDOassign)
  * @return total bitlength of PDO assign
  * @see ecx_readPDOmap
  */
-int ec_readPDOassignCA(uint16 Slave, uint16 PDOassign, int Thread_n)
+uint32 ec_readPDOassignCA(uint16 Slave, uint16 PDOassign, int Thread_n)
 {
    return ecx_readPDOassignCA(&ecx_context, Slave, Thread_n, PDOassign);
 }
@@ -1438,7 +1438,7 @@ int ec_readPDOassignCA(uint16 Slave, uint16 PDOassign, int Thread_n)
  * @param[out] Isize   = Size in bits of input mapping (txPDO) found
  * @return >0 if mapping succesful.
  */
-int ec_readPDOmap(uint16 Slave, int *Osize, int *Isize)
+int ec_readPDOmap(uint16 Slave, uint32 *Osize, uint32 *Isize)
 {
    return ecx_readPDOmap(&ecx_context, Slave, Osize, Isize);
 }
@@ -1456,7 +1456,7 @@ int ec_readPDOmap(uint16 Slave, int *Osize, int *Isize)
  * @return >0 if mapping succesful.
  * @see ecx_readPDOmap ec_readPDOmapCA
  */
-int ec_readPDOmapCA(uint16 Slave, int Thread_n, int *Osize, int *Isize)
+int ec_readPDOmapCA(uint16 Slave, int Thread_n, uint32 *Osize, uint32 *Isize)
 {
    return ecx_readPDOmapCA(&ecx_context, Slave, Thread_n, Osize, Isize);
 }
index 8a789c853d236aa605ed329c4bf087092dea9b7a..a237fb8e32fe95bc057ed79968c1f764ae8d9275 100644 (file)
@@ -66,8 +66,8 @@ int ec_SDOwrite(uint16 Slave, uint16 Index, uint8 SubIndex,
     boolean CA, int psize, void *p, int Timeout);
 int ec_RxPDO(uint16 Slave, uint16 RxPDOnumber , int psize, void *p);
 int ec_TxPDO(uint16 slave, uint16 TxPDOnumber , int *psize, void *p, int timeout);
-int ec_readPDOmap(uint16 Slave, int *Osize, int *Isize);
-int ec_readPDOmapCA(uint16 Slave, int Thread_n, int *Osize, int *Isize);
+int ec_readPDOmap(uint16 Slave, uint32 *Osize, uint32 *Isize);
+int ec_readPDOmapCA(uint16 Slave, int Thread_n, uint32 *Osize, uint32 *Isize);
 int ec_readODlist(uint16 Slave, ec_ODlistt *pODlist);
 int ec_readODdescription(uint16 Item, ec_ODlistt *pODlist);
 int ec_readOEsingle(uint16 Item, uint8 SubI, ec_ODlistt *pODlist, ec_OElistt *pOElist);
@@ -81,8 +81,8 @@ int ecx_SDOwrite(ecx_contextt *context, uint16 Slave, uint16 Index, uint8 SubInd
     boolean CA, int psize, void *p, int Timeout);
 int ecx_RxPDO(ecx_contextt *context, uint16 Slave, uint16 RxPDOnumber , int psize, void *p);
 int ecx_TxPDO(ecx_contextt *context, uint16 slave, uint16 TxPDOnumber , int *psize, void *p, int timeout);
-int ecx_readPDOmap(ecx_contextt *context, uint16 Slave, int *Osize, int *Isize);
-int ecx_readPDOmapCA(ecx_contextt *context, uint16 Slave, int Thread_n, int *Osize, int *Isize);
+int ecx_readPDOmap(ecx_contextt *context, uint16 Slave, uint32 *Osize, uint32 *Isize);
+int ecx_readPDOmapCA(ecx_contextt *context, uint16 Slave, int Thread_n, uint32 *Osize, uint32 *Isize);
 int ecx_readODlist(ecx_contextt *context, uint16 Slave, ec_ODlistt *pODlist);
 int ecx_readODdescription(ecx_contextt *context, uint16 Item, ec_ODlistt *pODlist);
 int ecx_readOEsingle(ecx_contextt *context, uint16 Item, uint8 SubI, ec_ODlistt *pODlist, ec_OElistt *pOElist);
index 85068f3fe508c4ab433856c8404cce8106abe776..f7c3125b56af8a614e0db7e57e8a22f823eee9be 100644 (file)
@@ -484,7 +484,7 @@ int ecx_config_init(ecx_contextt *context, uint8 usetable)
             context->slavelist[slave].SM[1].SMlength = htoes(context->slavelist[slave].mbx_rl);
             context->slavelist[slave].SM[1].SMflags = htoel(EC_DEFAULTMBXSM1);
             eedat = ecx_readeeprom2(context, slave, EC_TIMEOUTEEP);
-            context->slavelist[slave].mbx_proto = etohl(eedat);
+            context->slavelist[slave].mbx_proto = (uint16)etohl(eedat);
          }
          cindex = 0;
          /* use configuration table ? */
@@ -607,7 +607,7 @@ int ecx_config_init(ecx_contextt *context, uint8 usetable)
 /* If slave has SII mapping and same slave ID done before, use previous mapping.
  * This is safe because SII mapping is constant for same slave ID.
  */
-static int ecx_lookup_mapping(ecx_contextt *context, uint16 slave, int *Osize, int *Isize)
+static int ecx_lookup_mapping(ecx_contextt *context, uint16 slave, uint32 *Osize, uint32 *Isize)
 {
    int i, nSM;
    if ((slave > 1) && (*(context->slavecount) > 0))
@@ -629,8 +629,8 @@ static int ecx_lookup_mapping(ecx_contextt *context, uint16 slave, int *Osize, i
          }
          *Osize = context->slavelist[i].Obits;
          *Isize = context->slavelist[i].Ibits;
-         context->slavelist[slave].Obits = *Osize;
-         context->slavelist[slave].Ibits = *Isize;
+         context->slavelist[slave].Obits = (uint16)*Osize;
+         context->slavelist[slave].Ibits = (uint16)*Isize;
          EC_PRINT("Copy mapping slave %d from %d.\n", slave, i);
          return 1;
       }
@@ -640,7 +640,7 @@ static int ecx_lookup_mapping(ecx_contextt *context, uint16 slave, int *Osize, i
 
 static int ecx_map_coe_soe(ecx_contextt *context, uint16 slave, int thread_n)
 {
-   int Isize, Osize;
+   uint32 Isize, Osize;
    int rval;
 
    ecx_statecheck(context, slave, EC_STATE_PRE_OP, EC_TIMEOUTSTATE); /* check state change pre-op */
@@ -675,18 +675,18 @@ static int ecx_map_coe_soe(ecx_contextt *context, uint16 slave, int thread_n)
             /* read PDO mapping via CoE */
             rval = ecx_readPDOmap(context, slave, &Osize, &Isize);
          }
-         EC_PRINT("  CoE Osize:%d Isize:%d\n", Osize, Isize);
+         EC_PRINT("  CoE Osize:%u Isize:%u\n", Osize, Isize);
       }
       if ((!Isize && !Osize) && (context->slavelist[slave].mbx_proto & ECT_MBXPROT_SOE)) /* has SoE */
       {
          /* read AT / MDT mapping via SoE */
          rval = ecx_readIDNmap(context, slave, &Osize, &Isize);
-         context->slavelist[slave].SM[2].SMlength = htoes((Osize + 7) / 8);
-         context->slavelist[slave].SM[3].SMlength = htoes((Isize + 7) / 8);
-         EC_PRINT("  SoE Osize:%d Isize:%d\n", Osize, Isize);
+         context->slavelist[slave].SM[2].SMlength = htoes((uint16)((Osize + 7) / 8));
+         context->slavelist[slave].SM[3].SMlength = htoes((uint16)((Isize + 7) / 8));
+         EC_PRINT("  SoE Osize:%u Isize:%u\n", Osize, Isize);
       }
-      context->slavelist[slave].Obits = Osize;
-      context->slavelist[slave].Ibits = Isize;
+      context->slavelist[slave].Obits = (uint16)Osize;
+      context->slavelist[slave].Ibits = (uint16)Isize;
    }
 
    return 1;
@@ -694,7 +694,7 @@ static int ecx_map_coe_soe(ecx_contextt *context, uint16 slave, int thread_n)
 
 static int ecx_map_sii(ecx_contextt *context, uint16 slave)
 {
-   int Isize, Osize;
+   uint32 Isize, Osize;
    int nSM;
    ec_eepromPDOt eepPDO;
 
@@ -708,8 +708,8 @@ static int ecx_map_sii(ecx_contextt *context, uint16 slave)
    if (!Isize && !Osize) /* find PDO mapping by SII */
    {
       memset(&eepPDO, 0, sizeof(eepPDO));
-      Isize = (int)ecx_siiPDO(context, slave, &eepPDO, 0);
-      EC_PRINT("  SII Isize:%d\n", Isize);
+      Isize = ecx_siiPDO(context, slave, &eepPDO, 0);
+      EC_PRINT("  SII Isize:%u\n", Isize);
       for( nSM=0 ; nSM < EC_MAXSM ; nSM++ )
       {
          if (eepPDO.SMbitsize[nSM] > 0)
@@ -719,8 +719,8 @@ static int ecx_map_sii(ecx_contextt *context, uint16 slave)
             EC_PRINT("    SM%d length %d\n", nSM, eepPDO.SMbitsize[nSM]);
          }
       }
-      Osize = (int)ecx_siiPDO(context, slave, &eepPDO, 1);
-      EC_PRINT("  SII Osize:%d\n", Osize);
+      Osize = ecx_siiPDO(context, slave, &eepPDO, 1);
+      EC_PRINT("  SII Osize:%u\n", Osize);
       for( nSM=0 ; nSM < EC_MAXSM ; nSM++ )
       {
          if (eepPDO.SMbitsize[nSM] > 0)
@@ -731,8 +731,8 @@ static int ecx_map_sii(ecx_contextt *context, uint16 slave)
          }
       }
    }
-   context->slavelist[slave].Obits = Osize;
-   context->slavelist[slave].Ibits = Isize;
+   context->slavelist[slave].Obits = (uint16)Osize;
+   context->slavelist[slave].Ibits = (uint16)Isize;
    EC_PRINT("     ISIZE:%d %d OSIZE:%d\n",
       context->slavelist[slave].Ibits, Isize,context->slavelist[slave].Obits);
 
@@ -897,10 +897,10 @@ static void ecx_config_create_input_mappings(ecx_contextt *context, void *pIOmap
    uint8 group, int16 slave, uint32 * LogAddr, uint8 * BitPos)
 {
    int BitCount = 0;
-   int ByteCount = 0;
-   int FMMUsize = 0;
    int FMMUdone = 0;
    int AddToInputsWKC = 0;
+   uint16 ByteCount = 0;
+   uint16 FMMUsize = 0;
    uint8 SMc = 0;
    uint16 EndAddr;
    uint16 SMlength;
@@ -963,7 +963,7 @@ static void ecx_config_create_input_mappings(ecx_contextt *context, void *pIOmap
             *LogAddr += 1;
             *BitPos -= 8;
          }
-         FMMUsize = *LogAddr - etohl(context->slavelist[slave].FMMU[FMMUc].LogStart) + 1;
+         FMMUsize = (uint16)(*LogAddr - etohl(context->slavelist[slave].FMMU[FMMUc].LogStart) + 1);
          context->slavelist[slave].FMMU[FMMUc].LogLength = htoes(FMMUsize);
          context->slavelist[slave].FMMU[FMMUc].LogEndbit = *BitPos;
          *BitPos += 1;
@@ -987,7 +987,7 @@ static void ecx_config_create_input_mappings(ecx_contextt *context, void *pIOmap
          FMMUsize = ByteCount;
          if ((FMMUsize + FMMUdone)> (int)context->slavelist[slave].Ibytes)
          {
-            FMMUsize = context->slavelist[slave].Ibytes - FMMUdone;
+            FMMUsize = (uint16)(context->slavelist[slave].Ibytes - FMMUdone);
          }
          *LogAddr += FMMUsize;
          context->slavelist[slave].FMMU[FMMUc].LogLength = htoes(FMMUsize);
@@ -1041,10 +1041,10 @@ static void ecx_config_create_output_mappings(ecx_contextt *context, void *pIOma
    uint8 group, int16 slave, uint32 * LogAddr, uint8 * BitPos)
 {
    int BitCount = 0;
-   int ByteCount = 0;
-   int FMMUsize = 0;
    int FMMUdone = 0;
    int AddToOutputsWKC = 0;
+   uint16 ByteCount = 0;
+   uint16 FMMUsize = 0;
    uint8 SMc = 0;
    uint16 EndAddr;
    uint16 SMlength;
@@ -1101,7 +1101,7 @@ static void ecx_config_create_output_mappings(ecx_contextt *context, void *pIOma
             *LogAddr += 1;
             *BitPos -= 8;
          }
-         FMMUsize = *LogAddr - etohl(context->slavelist[slave].FMMU[FMMUc].LogStart) + 1;
+         FMMUsize = (uint16)(*LogAddr - etohl(context->slavelist[slave].FMMU[FMMUc].LogStart) + 1);
          context->slavelist[slave].FMMU[FMMUc].LogLength = htoes(FMMUsize);
          context->slavelist[slave].FMMU[FMMUc].LogEndbit = *BitPos;
          *BitPos += 1;
@@ -1125,7 +1125,7 @@ static void ecx_config_create_output_mappings(ecx_contextt *context, void *pIOma
          FMMUsize = ByteCount;
          if ((FMMUsize + FMMUdone)> (int)context->slavelist[slave].Obytes)
          {
-            FMMUsize = context->slavelist[slave].Obytes - FMMUdone;
+            FMMUsize = (uint16)(context->slavelist[slave].Obytes - FMMUdone);
          }
          *LogAddr += FMMUsize;
          context->slavelist[slave].FMMU[FMMUc].LogLength = htoes(FMMUsize);
@@ -1259,7 +1259,7 @@ int ecx_config_map_group(ecx_contextt *context, void *pIOmap, uint8 group)
       context->grouplist[group].Obytes = LogAddr - context->grouplist[group].logstartaddr;
       context->grouplist[group].nsegments = currentsegment + 1;
       context->grouplist[group].Isegment = currentsegment;
-      context->grouplist[group].Ioffset = segmentsize;
+      context->grouplist[group].Ioffset = (uint16)segmentsize;
       if (!group)
       {
          context->slavelist[0].outputs = pIOmap;
index a4445656caa30728618ccef454a971474f673fc3..b23773a36d30f5e8ccdf9ec0aeae9eb0889dc16f 100644 (file)
@@ -87,9 +87,9 @@ int ecx_EOEsetIp(ecx_contextt *context, uint16 slave, uint8 port, eoe_param_t *
    cnt = ec_nextmbxcnt(context->slavelist[slave].mbx_cnt);
    context->slavelist[slave].mbx_cnt = cnt;
 
-   EOEp->mbxheader.mbxtype = ECT_MBXT_EOE + (cnt << 4); /* EoE */
+   EOEp->mbxheader.mbxtype = ECT_MBXT_EOE + MBX_HDR_SET_CNT(cnt); /* EoE */
 
-   EOEp->frameinfo1 = htoes(EOE_HDR_FRAME_TYPE_SET(EOE_INIT_REQ) | 
+   EOEp->frameinfo1 = htoes(EOE_HDR_FRAME_TYPE_SET(EOE_INIT_REQ) |
       EOE_HDR_FRAME_PORT_SET(port) |
       EOE_HDR_LAST_FRAGMENT);
    EOEp->frameinfo2 = 0;
@@ -198,9 +198,9 @@ int ecx_EOEgetIp(ecx_contextt *context, uint16 slave, uint8 port, eoe_param_t *
    cnt = ec_nextmbxcnt(context->slavelist[slave].mbx_cnt);
    context->slavelist[slave].mbx_cnt = cnt;
 
-   EOEp->mbxheader.mbxtype = ECT_MBXT_EOE + (cnt << 4); /* EoE */
+   EOEp->mbxheader.mbxtype = ECT_MBXT_EOE + MBX_HDR_SET_CNT(cnt); /* EoE */
 
-   EOEp->frameinfo1 = htoes(EOE_HDR_FRAME_TYPE_SET(EOE_GET_IP_PARAM_REQ) | 
+   EOEp->frameinfo1 = htoes(EOE_HDR_FRAME_TYPE_SET(EOE_GET_IP_PARAM_REQ) |
       EOE_HDR_FRAME_PORT_SET(port) |
       EOE_HDR_LAST_FRAGMENT);
    EOEp->frameinfo2 = 0;
@@ -318,10 +318,9 @@ int ecx_EOEsend(ecx_contextt *context, uint16 slave, uint8 port, int psize, void
    ec_EOEt *EOEp;
    ec_mbxbuft MbxOut;
    uint16 frameinfo1, frameinfo2;
-   uint16 txframesize, txframeoffset;
    uint8 cnt, txfragmentno;  
    boolean  NotLast;
-   int wkc, maxdata;
+   int wkc, maxdata, txframesize, txframeoffset;
    const uint8 * buf = p;
    static uint8_t txframeno = 0;
 
@@ -371,8 +370,8 @@ int ecx_EOEsend(ecx_contextt *context, uint16 slave, uint8 port, int psize, void
       cnt = ec_nextmbxcnt(context->slavelist[slave].mbx_cnt);
       context->slavelist[slave].mbx_cnt = cnt;
 
-      EOEp->mbxheader.length = htoes(4 + txframesize); /* no timestamp */
-      EOEp->mbxheader.mbxtype = ECT_MBXT_EOE + (cnt << 4); /* EoE */
+      EOEp->mbxheader.length = htoes((uint16)(4 + txframesize)); /* no timestamp */
+      EOEp->mbxheader.mbxtype = ECT_MBXT_EOE + MBX_HDR_SET_CNT(cnt); /* EoE */
 
       EOEp->frameinfo1 = htoes(frameinfo1);
       EOEp->frameinfo2 = htoes(frameinfo2);
@@ -410,10 +409,10 @@ int ecx_EOErecv(ecx_contextt *context, uint16 slave, uint8 port, int * psize, vo
 {
    ec_EOEt *aEOEp;
    ec_mbxbuft MbxIn;
-   uint16 frameinfo1, frameinfo2, rxframesize, rxframeoffset, eoedatasize;
+   uint16 frameinfo1, frameinfo2;
    uint8 rxfragmentno, rxframeno;
    boolean NotLast;
-   int wkc, buffersize;
+   int wkc, buffersize, rxframesize, rxframeoffset, eoedatasize;
    uint8 * buf = p;
    
    ec_clearmbx(&MbxIn);
@@ -573,7 +572,7 @@ int ecx_EOEreadfragment(
       /* Is it a new frame?*/
       if (*rxfragmentno == 0)
       {
-         *rxframesize = (EOE_HDR_FRAME_OFFSET_GET(frameinfo2) << 5);
+         *rxframesize = (uint16)(EOE_HDR_FRAME_OFFSET_GET(frameinfo2) << 5);
          *rxframeoffset = 0;
          *rxframeno = EOE_HDR_FRAME_NO_GET(frameinfo2);
       }
index a4c2c73897f1b5999c7c2fe10d01111661317006..fabd9b4e31ae26bb52d232a4be3d321b7342edba 100644 (file)
@@ -18,6 +18,9 @@ extern "C"
 
 #include <ethercattype.h> 
 
+/* use maximum size for EOE mailbox data */
+#define EC_MAXEOEDATA EC_MAXMBX
+
 /** DNS length according to ETG 1000.6 */
 #define EOE_DNS_NAME_LENGTH  32
 /** Ethernet address length not including VLAN */
@@ -63,7 +66,7 @@ extern "C"
 #define EOE_HDR_FRAME_TYPE_GET(x)      (((x) >> 0) & 0xF)
 #define EOE_HDR_FRAME_PORT_OFFSET      4
 #define EOE_HDR_FRAME_PORT             (0xF << 4)
-#define EOE_HDR_FRAME_PORT_SET(x)      (((x) & 0xF) << 4)
+#define EOE_HDR_FRAME_PORT_SET(x)      ((uint16)(((x) & 0xF) << 4))
 #define EOE_HDR_FRAME_PORT_GET(x)      (((x) >> 4) & 0xF)
 #define EOE_HDR_LAST_FRAGMENT_OFFSET   8
 #define EOE_HDR_LAST_FRAGMENT          (0x1 << 8)
@@ -81,15 +84,15 @@ extern "C"
 /** Header frame info 2 */
 #define EOE_HDR_FRAG_NO_OFFSET         0
 #define EOE_HDR_FRAG_NO                (0x3F << 0)
-#define EOE_HDR_FRAG_NO_SET(x)         (((x) & 0x3F) << 0)
+#define EOE_HDR_FRAG_NO_SET(x)         ((uint16)(((x) & 0x3F) << 0))
 #define EOE_HDR_FRAG_NO_GET(x)         (((x) >> 0) & 0x3F)
 #define EOE_HDR_FRAME_OFFSET_OFFSET    6
 #define EOE_HDR_FRAME_OFFSET           (0x3F << 6)
-#define EOE_HDR_FRAME_OFFSET_SET(x)    (((x) & 0x3F) << 6)
+#define EOE_HDR_FRAME_OFFSET_SET(x)    ((uint16)(((x) & 0x3F) << 6))
 #define EOE_HDR_FRAME_OFFSET_GET(x)    (((x) >> 6) & 0x3F)
 #define EOE_HDR_FRAME_NO_OFFSET        12
 #define EOE_HDR_FRAME_NO               (0xF << 12)
-#define EOE_HDR_FRAME_NO_SET(x)        (((x) & 0xF) << 12)
+#define EOE_HDR_FRAME_NO_SET(x)        ((uint16)(((x) & 0xF) << 12))
 #define EOE_HDR_FRAME_NO_GET(x)        (((x) >> 12) & 0xF)
 
 /** EOE param */
@@ -165,7 +168,7 @@ typedef struct PACKED
       uint16_t frameinfo2;
       uint16_t result;
    };
-   uint8 data[0];
+   uint8 data[EC_MAXEOEDATA];
 } ec_EOEt;
 PACKED_END
 
index 7bab9857569fe3184a4cf40564dcbf5f2ca7ae5c..573cfc0c114ee3902fa8eb8217ca9afb3778547d 100644 (file)
@@ -98,7 +98,7 @@ int ecx_FOEread(ecx_contextt *context, uint16 slave, char *filename, uint32 pass
    /* get new mailbox count value, used as session handle */
    cnt = ec_nextmbxcnt(context->slavelist[slave].mbx_cnt);
    context->slavelist[slave].mbx_cnt = cnt;
-   FOEp->MbxHeader.mbxtype = ECT_MBXT_FOE + (cnt << 4); /* FoE */
+   FOEp->MbxHeader.mbxtype = ECT_MBXT_FOE + MBX_HDR_SET_CNT(cnt); /* FoE */
    FOEp->OpCode = ECT_FOE_READ;
    FOEp->Password = htoel(password);
    /* copy filename in mailbox */
@@ -138,7 +138,7 @@ int ecx_FOEread(ecx_contextt *context, uint16 slave, char *filename, uint32 pass
                      /* get new mailbox count value */
                      cnt = ec_nextmbxcnt(context->slavelist[slave].mbx_cnt);
                      context->slavelist[slave].mbx_cnt = cnt;
-                     FOEp->MbxHeader.mbxtype = ECT_MBXT_FOE + (cnt << 4); /* FoE */
+                     FOEp->MbxHeader.mbxtype = ECT_MBXT_FOE + MBX_HDR_SET_CNT(cnt); /* FoE */
                      FOEp->OpCode = ECT_FOE_ACK;
                      FOEp->PacketNumber = htoel(packetnumber);
                      /* send FoE ack to slave */
@@ -227,7 +227,7 @@ int ecx_FOEwrite(ecx_contextt *context, uint16 slave, char *filename, uint32 pas
    /* get new mailbox count value, used as session handle */
    cnt = ec_nextmbxcnt(context->slavelist[slave].mbx_cnt);
    context->slavelist[slave].mbx_cnt = cnt;
-   FOEp->MbxHeader.mbxtype = ECT_MBXT_FOE + (cnt << 4); /* FoE */
+   FOEp->MbxHeader.mbxtype = ECT_MBXT_FOE + MBX_HDR_SET_CNT(cnt); /* FoE */
    FOEp->OpCode = ECT_FOE_WRITE;
    FOEp->Password = htoel(password);
    /* copy filename in mailbox */
@@ -276,13 +276,13 @@ int ecx_FOEwrite(ecx_contextt *context, uint16 slave, char *filename, uint32 pas
                            {
                               dofinalzero = TRUE;
                            }
-                           FOEp->MbxHeader.length = htoes(0x0006 + segmentdata);
+                           FOEp->MbxHeader.length = htoes((uint16)(0x0006 + segmentdata));
                            FOEp->MbxHeader.address = htoes(0x0000);
                            FOEp->MbxHeader.priority = 0x00;
                            /* get new mailbox count value */
                            cnt = ec_nextmbxcnt(context->slavelist[slave].mbx_cnt);
                            context->slavelist[slave].mbx_cnt = cnt;
-                           FOEp->MbxHeader.mbxtype = ECT_MBXT_FOE + (cnt << 4); /* FoE */
+                           FOEp->MbxHeader.mbxtype = ECT_MBXT_FOE + MBX_HDR_SET_CNT(cnt); /* FoE */
                            FOEp->OpCode = ECT_FOE_DATA;
                            sendpacket++;
                            FOEp->PacketNumber = htoel(sendpacket);
index 7dcccd73ca8e49ba1a80940a27c8df85a9501c3a..48c4d8d2f177f2ab704815c13e75565a8ab906c7 100644 (file)
@@ -347,7 +347,7 @@ uint8 ecx_siigetbyte(ecx_contextt *context, uint16 slave, uint16 address)
    if (address < EC_MAXEEPBUF)
    {
       mapw = address >> 5;
-      mapb = address - (mapw << 5);
+      mapb = (uint16)(address - (mapw << 5));
       if (context->esimap[mapw] & (uint32)(1 << mapb))
       {
          /* byte is already in buffer */
@@ -375,7 +375,7 @@ uint8 ecx_siigetbyte(ecx_contextt *context, uint16 slave, uint16 address)
          }
          /* find bitmap location */
          mapw = eadr >> 4;
-         mapb = (eadr << 1) - (mapw << 5);
+         mapb = (uint16)((eadr << 1) - (mapw << 5));
          for(lp = 0 ; lp < cnt ; lp++)
          {
             /* set bitmap for each byte that is read */
@@ -550,7 +550,7 @@ uint16 ecx_siiSM(ecx_contextt *context, uint16 slave, ec_eepromSMt* SM)
       a = SM->Startpos;
       w = ecx_siigetbyte(context, slave, a++);
       w += (ecx_siigetbyte(context, slave, a++) << 8);
-      SM->nSM = (w / 4);
+      SM->nSM = (uint8)(w / 4);
       SM->PhStart = ecx_siigetbyte(context, slave, a++);
       SM->PhStart += (ecx_siigetbyte(context, slave, a++) << 8);
       SM->Plength = ecx_siigetbyte(context, slave, a++);
@@ -609,7 +609,7 @@ uint16 ecx_siiSMnext(ecx_contextt *context, uint16 slave, ec_eepromSMt* SM, uint
  *  @param[in]  t       = 0=RXPDO 1=TXPDO
  *  @return mapping size in bits of PDO
  */
-int ecx_siiPDO(ecx_contextt *context, uint16 slave, ec_eepromPDOt* PDO, uint8 t)
+uint32 ecx_siiPDO(ecx_contextt *context, uint16 slave, ec_eepromPDOt* PDO, uint8 t)
 {
    uint16 a , w, c, e, er, Size;
    uint8 eectl = context->slavelist[slave].eep_pdi;
@@ -683,7 +683,7 @@ int ecx_FPRD_multi(ecx_contextt *context, int n, uint16 *configlst, ec_alstatust
    int wkc;
    uint8 idx;
    ecx_portt *port;
-   int sldatapos[MAX_FPRD_MULTI];
+   uint16 sldatapos[MAX_FPRD_MULTI];
    int slcnt;
 
    port = context->port;
@@ -787,7 +787,7 @@ int ecx_readstate(ecx_contextt *context)
       fslave = 1;
       do
       {
-         lslave = *(context->slavecount);
+         lslave = (uint16)*(context->slavecount);
          if ((lslave - fslave) >= MAX_FPRD_MULTI)
          {
             lslave = fslave + MAX_FPRD_MULTI - 1;
@@ -1111,8 +1111,7 @@ int ecx_mbxreceive(ecx_contextt *context, uint16 slave, ec_mbxbuft *mbx, int tim
  */
 void ecx_esidump(ecx_contextt *context, uint16 slave, uint8 *esibuf)
 {
-   int address, incr;
-   uint16 configadr;
+   uint16 configadr, address, incr;
    uint64 *p64;
    uint16 *p16;
    uint64 edat;
@@ -1240,7 +1239,8 @@ int ecx_eeprom2pdi(ecx_contextt *context, uint16 slave)
 
 uint16 ecx_eeprom_waitnotbusyAP(ecx_contextt *context, uint16 aiadr,uint16 *estat, int timeout)
 {
-   int wkc, cnt = 0, retval = 0;
+   int wkc, cnt = 0;
+   uint16 retval = 0;
    osal_timert timer;
 
    osal_timer_start(&timer, timeout);
@@ -1409,7 +1409,8 @@ int ecx_writeeepromAP(ecx_contextt *context, uint16 aiadr, uint16 eeproma, uint1
 
 uint16 ecx_eeprom_waitnotbusyFP(ecx_contextt *context, uint16 configadr,uint16 *estat, int timeout)
 {
-   int wkc, cnt = 0, retval = 0;
+   int wkc, cnt = 0;
+   uint16 retval = 0;
    osal_timert timer;
 
    osal_timer_start(&timer, timeout);
@@ -1698,7 +1699,8 @@ static int ecx_main_send_processdata(ecx_contextt *context, uint8 group, boolean
 {
    uint32 LogAdr;
    uint16 w1, w2;
-   int length, sublength;
+   int length;
+   uint16 sublength;
    uint8 idx;
    int wkc;
    uint8* data;
@@ -1748,11 +1750,11 @@ static int ecx_main_send_processdata(ecx_contextt *context, uint8 group, boolean
             {
                if(currentsegment == context->grouplist[group].Isegment)
                {
-                  sublength = context->grouplist[group].IOsegment[currentsegment++] - context->grouplist[group].Ioffset;
+                  sublength = (uint16)(context->grouplist[group].IOsegment[currentsegment++] - context->grouplist[group].Ioffset);
                }
                else
                {
-                  sublength = context->grouplist[group].IOsegment[currentsegment++];
+                  sublength = (uint16)context->grouplist[group].IOsegment[currentsegment++];
                }
                /* get new index */
                idx = ecx_getindex(context->port);
@@ -1787,10 +1789,10 @@ static int ecx_main_send_processdata(ecx_contextt *context, uint8 group, boolean
             /* segment transfer if needed */
             do
             {
-               sublength = context->grouplist[group].IOsegment[currentsegment++];
+               sublength = (uint16)context->grouplist[group].IOsegment[currentsegment++];
                if((length - sublength) < 0)
                {
-                  sublength = length;
+                  sublength = (uint16)length;
                }
                /* get new index */
                idx = ecx_getindex(context->port);
@@ -1832,7 +1834,7 @@ static int ecx_main_send_processdata(ecx_contextt *context, uint8 group, boolean
          /* segment transfer if needed */
          do
          {
-            sublength = context->grouplist[group].IOsegment[currentsegment++];
+            sublength = (uint16)context->grouplist[group].IOsegment[currentsegment++];
             /* get new index */
             idx = ecx_getindex(context->port);
             w1 = LO_WORD(LogAdr);
@@ -1910,7 +1912,8 @@ int ecx_send_processdata_group(ecx_contextt *context, uint8 group)
  */
 int ecx_receive_processdata_group(ecx_contextt *context, uint8 group, int timeout)
 {
-   int pos, idx;
+   uint8 idx;
+   int pos;
    int wkc = 0, wkc2;
    uint16 le_wkc = 0;
    int valid_wkc = 0;
@@ -2127,7 +2130,7 @@ uint16 ec_siiSMnext(uint16 slave, ec_eepromSMt* SM, uint16 n)
  *  @return mapping size in bits of PDO
  *  @see ecx_siiPDO
  */
-int ec_siiPDO(uint16 slave, ec_eepromPDOt* PDO, uint8 t)
+uint32 ec_siiPDO(uint16 slave, ec_eepromPDOt* PDO, uint8 t)
 {
    return ecx_siiPDO (&ecx_context, slave, PDO, t);
 }
index 48c33da8dfd3225bfc536c412689f2324cd0405d..34ce9aa1c4c4659d280d17740830bbaae4c9f572 100644 (file)
@@ -453,7 +453,7 @@ void ec_siistring(char *str, uint16 slave, uint16 Sn);
 uint16 ec_siiFMMU(uint16 slave, ec_eepromFMMUt* FMMU);
 uint16 ec_siiSM(uint16 slave, ec_eepromSMt* SM);
 uint16 ec_siiSMnext(uint16 slave, ec_eepromSMt* SM, uint16 n);
-int ec_siiPDO(uint16 slave, ec_eepromPDOt* PDO, uint8 t);
+uint32 ec_siiPDO(uint16 slave, ec_eepromPDOt* PDO, uint8 t);
 int ec_readstate(void);
 int ec_writestate(uint16 slave);
 uint16 ec_statecheck(uint16 slave, uint16 reqstate, int timeout);
@@ -496,7 +496,7 @@ void ecx_siistring(ecx_contextt *context, char *str, uint16 slave, uint16 Sn);
 uint16 ecx_siiFMMU(ecx_contextt *context, uint16 slave, ec_eepromFMMUt* FMMU);
 uint16 ecx_siiSM(ecx_contextt *context, uint16 slave, ec_eepromSMt* SM);
 uint16 ecx_siiSMnext(ecx_contextt *context, uint16 slave, ec_eepromSMt* SM, uint16 n);
-int ecx_siiPDO(ecx_contextt *context, uint16 slave, ec_eepromPDOt* PDO, uint8 t);
+uint32 ecx_siiPDO(ecx_contextt *context, uint16 slave, ec_eepromPDOt* PDO, uint8 t);
 int ecx_readstate(ecx_contextt *context);
 int ecx_writestate(ecx_contextt *context, uint16 slave);
 uint16 ecx_statecheck(ecx_contextt *context, uint16 slave, uint16 reqstate, int timeout);
index ecc9348ce1f79929b6a36f978bcd72754be009e0..eb83a64dc3ae126f82cc31fa91828e019313903b 100644 (file)
@@ -78,7 +78,7 @@ void ecx_SoEerror(ecx_contextt *context, uint16 Slave, uint16 idn, uint16 Error)
 int ecx_SoEread(ecx_contextt *context, uint16 slave, uint8 driveNo, uint8 elementflags, uint16 idn, int *psize, void *p, int timeout)
 {
    ec_SoEt *SoEp, *aSoEp;
-   uint16 totalsize, framedatasize;
+   int totalsize, framedatasize;
    int wkc;
    uint8 *bp;
    uint8 *mp;
@@ -99,7 +99,7 @@ int ecx_SoEread(ecx_contextt *context, uint16 slave, uint8 driveNo, uint8 elemen
    /* get new mailbox count value, used as session handle */
    cnt = ec_nextmbxcnt(context->slavelist[slave].mbx_cnt);
    context->slavelist[slave].mbx_cnt = cnt;
-   SoEp->MbxHeader.mbxtype = ECT_MBXT_SOE + (cnt << 4); /* SoE */
+   SoEp->MbxHeader.mbxtype = ECT_MBXT_SOE + MBX_HDR_SET_CNT(cnt); /* SoE */
    SoEp->opCode = ECT_SOE_READREQ;
    SoEp->incomplete = 0;
    SoEp->error = 0;
@@ -200,7 +200,7 @@ int ecx_SoEread(ecx_contextt *context, uint16 slave, uint8 driveNo, uint8 elemen
 int ecx_SoEwrite(ecx_contextt *context, uint16 slave, uint8 driveNo, uint8 elementflags, uint16 idn, int psize, void *p, int timeout)
 {
    ec_SoEt *SoEp, *aSoEp;
-   uint16 framedatasize, maxdata;
+   int framedatasize, maxdata;
    int wkc;
    uint8 *mp;
    uint8 *hp;
@@ -236,13 +236,13 @@ int ecx_SoEwrite(ecx_contextt *context, uint16 slave, uint8 driveNo, uint8 eleme
          framedatasize = maxdata;  /*  segmented transfer needed  */
          NotLast = TRUE;
          SoEp->incomplete = 1;
-         SoEp->fragmentsleft = psize / maxdata;
+         SoEp->fragmentsleft = (uint16)(psize / maxdata);
       }
-      SoEp->MbxHeader.length = htoes(sizeof(ec_SoEt) - sizeof(ec_mbxheadert) + framedatasize);
+      SoEp->MbxHeader.length = htoes((uint16)(sizeof(ec_SoEt) - sizeof(ec_mbxheadert) + framedatasize));
       /* get new mailbox counter, used for session handle */
       cnt = ec_nextmbxcnt(context->slavelist[slave].mbx_cnt);
       context->slavelist[slave].mbx_cnt = cnt;
-      SoEp->MbxHeader.mbxtype = ECT_MBXT_SOE + (cnt << 4); /* SoE */
+      SoEp->MbxHeader.mbxtype = ECT_MBXT_SOE + MBX_HDR_SET_CNT(cnt); /* SoE */
       /* copy parameter data to mailbox */
       memcpy(mp, hp, framedatasize);
       hp += framedatasize;
@@ -309,12 +309,12 @@ int ecx_SoEwrite(ecx_contextt *context, uint16 slave, uint8 driveNo, uint8 eleme
  * @param[out] Isize   = Size in bits of input mapping (AT) found
  * @return >0 if mapping successful.
  */
-int ecx_readIDNmap(ecx_contextt *context, uint16 slave, int *Osize, int *Isize)
+int ecx_readIDNmap(ecx_contextt *context, uint16 slave, uint32 *Osize, uint32 *Isize)
 {
    int retVal = 0;
    int   wkc;
    int psize;
-   int driveNr;
+   uint8 driveNr;
    uint16 entries, itemcount;
    ec_SoEmappingt     SoEmapping;
    ec_SoEattributet   SoEattribute;
@@ -382,7 +382,7 @@ int ec_SoEwrite(uint16 slave, uint8 driveNo, uint8 elementflags, uint16 idn, int
    return ecx_SoEwrite(&ecx_context, slave, driveNo, elementflags, idn, psize, p, timeout);
 }
 
-int ec_readIDNmap(uint16 slave, int *Osize, int *Isize)
+int ec_readIDNmap(uint16 slave, uint32 *Osize, uint32 *Isize)
 {
    return ecx_readIDNmap(&ecx_context, slave, Osize, Isize);
 }
index 42de4885e7a45c832de6f8fea2206cd4c17bb81d..35d76d14622c19c462cad67e7354696efc641c6b 100644 (file)
@@ -116,12 +116,12 @@ PACKED_END
 #ifdef EC_VER1
 int ec_SoEread(uint16 slave, uint8 driveNo, uint8 elementflags, uint16 idn, int *psize, void *p, int timeout);
 int ec_SoEwrite(uint16 slave, uint8 driveNo, uint8 elementflags, uint16 idn, int psize, void *p, int timeout);
-int ec_readIDNmap(uint16 slave, int *Osize, int *Isize);
+int ec_readIDNmap(uint16 slave, uint32 *Osize, uint32 *Isize);
 #endif
 
 int ecx_SoEread(ecx_contextt *context, uint16 slave, uint8 driveNo, uint8 elementflags, uint16 idn, int *psize, void *p, int timeout);
 int ecx_SoEwrite(ecx_contextt *context, uint16 slave, uint8 driveNo, uint8 elementflags, uint16 idn, int psize, void *p, int timeout);
-int ecx_readIDNmap(ecx_contextt *context, uint16 slave, int *Osize, int *Isize);
+int ecx_readIDNmap(ecx_contextt *context, uint16 slave, uint32 *Osize, uint32 *Isize);
 
 #ifdef __cplusplus
 }
index 6b4d17cd68fa0d4a0c68a9ec49c1a3cc944e56cd..527ccd7ae741ae47272a128a6717a1a2ec589a7e 100644 (file)
@@ -506,6 +506,10 @@ typedef struct
 } ec_errort;
 
 /** Helper macros */
+
+/** Set the count value in the Mailbox header */
+#define MBX_HDR_SET_CNT(cnt) ((uint8)((cnt) << 4))
+
 /** Macro to make a word from 2 bytes */
 #define MK_WORD(msb, lsb)   ((((uint16)(msb))<<8) | (lsb))
 /** Macro to get hi byte of a word */