From 4ce4d08b7ba39f0a8f3ee844d0bee83dadb4a0c1 Mon Sep 17 00:00:00 2001 From: Florian Pose Date: Fri, 2 Feb 2024 10:56:09 +0100 Subject: [PATCH] Made some more pointer arguments const in API. --- include/ecrt.h | 31 ++++++++++++++----------------- lib/master.c | 21 +++++++++++---------- lib/reg_request.c | 4 ++-- lib/sdo_request.c | 2 +- lib/slave_config.c | 2 +- lib/soe_request.c | 2 +- lib/voe_handler.c | 2 +- master/coe_emerg_ring.c | 2 +- master/coe_emerg_ring.h | 2 +- master/master.c | 11 ++++++----- master/reg_request.c | 2 +- master/sdo_request.c | 2 +- master/slave_config.c | 2 +- master/soe_request.c | 2 +- master/voe_handler.c | 2 +- 15 files changed, 44 insertions(+), 45 deletions(-) diff --git a/include/ecrt.h b/include/ecrt.h index 915654a2..90f0feff 100644 --- a/include/ecrt.h +++ b/include/ecrt.h @@ -916,7 +916,7 @@ EC_PUBLIC_API int ecrt_master_sdo_download( uint16_t slave_position, /**< Slave position. */ uint16_t index, /**< Index of the SDO. */ uint8_t subindex, /**< Subindex of the SDO. */ - uint8_t *data, /**< Data buffer to download. */ + const uint8_t *data, /**< Data buffer to download. */ size_t data_size, /**< Size of the data buffer. */ uint32_t *abort_code /**< Abort code of the SDO download. */ ); @@ -935,7 +935,7 @@ EC_PUBLIC_API int ecrt_master_sdo_download_complete( ec_master_t *master, /**< EtherCAT master. */ uint16_t slave_position, /**< Slave position. */ uint16_t index, /**< Index of the SDO. */ - uint8_t *data, /**< Data buffer to download. */ + const uint8_t *data, /**< Data buffer to download. */ size_t data_size, /**< Size of the data buffer. */ uint32_t *abort_code /**< Abort code of the SDO download. */ ); @@ -973,7 +973,7 @@ EC_PUBLIC_API int ecrt_master_write_idn( uint16_t slave_position, /**< Slave position. */ uint8_t drive_no, /**< Drive number. */ uint16_t idn, /**< SoE IDN (see ecrt_slave_config_idn()). */ - uint8_t *data, /**< Pointer to data to write. */ + const uint8_t *data, /**< Pointer to data to write. */ size_t data_size, /**< Size of data to write. */ uint16_t *error_code /**< Pointer to variable, where an SoE error code can be stored. */ @@ -1192,7 +1192,7 @@ EC_PUBLIC_API void ecrt_master_sync_slave_clocks( * \retval -EIO Slave synchronization datagram was not received. */ EC_PUBLIC_API int ecrt_master_reference_clock_time( - ec_master_t *master, /**< EtherCAT master. */ + const ec_master_t *master, /**< EtherCAT master. */ uint32_t *time /**< Pointer to store the queried system time. */ ); @@ -1219,7 +1219,7 @@ EC_PUBLIC_API void ecrt_master_sync_monitor_queue( * \return Upper estimation of the maximum time difference in ns. */ EC_PUBLIC_API uint32_t ecrt_master_sync_monitor_process( - ec_master_t *master /**< EtherCAT master. */ + const ec_master_t *master /**< EtherCAT master. */ ); /** Retry configuring slaves. @@ -1228,6 +1228,8 @@ EC_PUBLIC_API uint32_t ecrt_master_sync_monitor_process( * OP state. In general, this is not necessary, because it is automatically * done by the master. But with special slaves, that can be reconfigured by * the vendor during runtime, it can be useful. + * + * \ingroup ApplicationInterfaceRT */ EC_PUBLIC_API void ecrt_master_reset( ec_master_t *master /**< EtherCAT master. */ @@ -1643,7 +1645,7 @@ EC_PUBLIC_API int ecrt_slave_config_emerg_clear( * \return Number of overruns since last clear, or negative error code. */ EC_PUBLIC_API int ecrt_slave_config_emerg_overruns( - ec_slave_config_t *sc /**< Slave configuration. */ + const ec_slave_config_t *sc /**< Slave configuration. */ ); /** Create an SDO request to exchange SDOs during realtime operation. @@ -1953,7 +1955,7 @@ EC_PUBLIC_API void ecrt_sdo_request_timeout( * \return Pointer to the internal SDO data memory. */ EC_PUBLIC_API uint8_t *ecrt_sdo_request_data( - ec_sdo_request_t *req /**< SDO request. */ + const ec_sdo_request_t *req /**< SDO request. */ ); /** Returns the current SDO data size. @@ -2058,7 +2060,7 @@ void ecrt_soe_request_timeout( * \return Pointer to the internal IDN data memory. */ EC_PUBLIC_API uint8_t *ecrt_soe_request_data( - ec_soe_request_t *req /**< SoE request. */ + const ec_soe_request_t *req /**< SoE request. */ ); /** Returns the current IDN data size. @@ -2078,7 +2080,8 @@ EC_PUBLIC_API size_t ecrt_soe_request_data_size( * \return Request state. */ EC_PUBLIC_API ec_request_state_t ecrt_soe_request_state( - ec_soe_request_t *req /**< SoE request. */ + ec_soe_request_t *req /**< SoE request. Not const, because the + internal data size may be updated. */ ); /** Schedule an SoE IDN write operation. @@ -2155,7 +2158,7 @@ EC_PUBLIC_API void ecrt_voe_handler_received_header( * \return Pointer to the internal memory. */ EC_PUBLIC_API uint8_t *ecrt_voe_handler_data( - ec_voe_handler_t *voe /**< VoE handler. */ + const ec_voe_handler_t *voe /**< VoE handler. */ ); /** Returns the current data size. @@ -2257,22 +2260,16 @@ EC_PUBLIC_API ec_request_state_t ecrt_voe_handler_execute( * \return Pointer to the internal memory. */ EC_PUBLIC_API uint8_t *ecrt_reg_request_data( - ec_reg_request_t *req /**< Register request. */ + const ec_reg_request_t *req /**< Register request. */ ); /** Get the current state of the register request. * * \return Request state. */ -#ifdef __KERNEL__ ec_request_state_t ecrt_reg_request_state( const ec_reg_request_t *req /**< Register request. */ ); -#else -EC_PUBLIC_API ec_request_state_t ecrt_reg_request_state( - ec_reg_request_t *req /**< Register request. */ - ); -#endif /** Schedule an register write operation. * diff --git a/lib/master.c b/lib/master.c index b02cdd86..f2d846e1 100644 --- a/lib/master.c +++ b/lib/master.c @@ -405,9 +405,9 @@ int ecrt_master_get_pdo_entry(ec_master_t *master, uint16_t slave_position, /****************************************************************************/ -int ecrt_master_sdo_download(ec_master_t *master, uint16_t slave_position, - uint16_t index, uint8_t subindex, uint8_t *data, - size_t data_size, uint32_t *abort_code) +int ecrt_master_sdo_download(ec_master_t *master, + uint16_t slave_position, uint16_t index, uint8_t subindex, + const uint8_t *data, size_t data_size, uint32_t *abort_code) { ec_ioctl_slave_sdo_download_t download; int ret; @@ -417,7 +417,7 @@ int ecrt_master_sdo_download(ec_master_t *master, uint16_t slave_position, download.sdo_entry_subindex = subindex; download.complete_access = 0; download.data_size = data_size; - download.data = data; + download.data = (uint8_t *) data; // will only be read in ioctl() ret = ioctl(master->fd, EC_IOCTL_SLAVE_SDO_DOWNLOAD, &download); if (EC_IOCTL_IS_ERROR(ret)) { @@ -435,7 +435,7 @@ int ecrt_master_sdo_download(ec_master_t *master, uint16_t slave_position, /****************************************************************************/ int ecrt_master_sdo_download_complete(ec_master_t *master, - uint16_t slave_position, uint16_t index, uint8_t *data, + uint16_t slave_position, uint16_t index, const uint8_t *data, size_t data_size, uint32_t *abort_code) { ec_ioctl_slave_sdo_download_t download; @@ -446,7 +446,7 @@ int ecrt_master_sdo_download_complete(ec_master_t *master, download.sdo_entry_subindex = 0; download.complete_access = 1; download.data_size = data_size; - download.data = data; + download.data = (uint8_t *) data; // will only be read in ioctl() ret = ioctl(master->fd, EC_IOCTL_SLAVE_SDO_DOWNLOAD, &download); if (EC_IOCTL_IS_ERROR(ret)) { @@ -493,7 +493,7 @@ int ecrt_master_sdo_upload(ec_master_t *master, uint16_t slave_position, /****************************************************************************/ int ecrt_master_write_idn(ec_master_t *master, uint16_t slave_position, - uint8_t drive_no, uint16_t idn, uint8_t *data, size_t data_size, + uint8_t drive_no, uint16_t idn, const uint8_t *data, size_t data_size, uint16_t *error_code) { ec_ioctl_slave_soe_write_t io; @@ -503,7 +503,7 @@ int ecrt_master_write_idn(ec_master_t *master, uint16_t slave_position, io.drive_no = drive_no; io.idn = idn; io.data_size = data_size; - io.data = data; + io.data = (uint8_t *) data; // will only be read in ioctl() ret = ioctl(master->fd, EC_IOCTL_SLAVE_SOE_WRITE, &io); if (EC_IOCTL_IS_ERROR(ret)) { @@ -742,7 +742,8 @@ void ecrt_master_sync_slave_clocks(ec_master_t *master) /****************************************************************************/ -int ecrt_master_reference_clock_time(ec_master_t *master, uint32_t *time) +int ecrt_master_reference_clock_time(const ec_master_t *master, + uint32_t *time) { int ret; @@ -770,7 +771,7 @@ void ecrt_master_sync_monitor_queue(ec_master_t *master) /****************************************************************************/ -uint32_t ecrt_master_sync_monitor_process(ec_master_t *master) +uint32_t ecrt_master_sync_monitor_process(const ec_master_t *master) { uint32_t time_diff; int ret; diff --git a/lib/reg_request.c b/lib/reg_request.c index db824f92..6fb04c98 100644 --- a/lib/reg_request.c +++ b/lib/reg_request.c @@ -48,14 +48,14 @@ void ec_reg_request_clear(ec_reg_request_t *reg) * Application interface. ****************************************************************************/ -uint8_t *ecrt_reg_request_data(ec_reg_request_t *reg) +uint8_t *ecrt_reg_request_data(const ec_reg_request_t *reg) { return reg->data; } /****************************************************************************/ -ec_request_state_t ecrt_reg_request_state(ec_reg_request_t *reg) +ec_request_state_t ecrt_reg_request_state(const ec_reg_request_t *reg) { ec_ioctl_reg_request_t io; int ret; diff --git a/lib/sdo_request.c b/lib/sdo_request.c index 4f9df6de..6271f642 100644 --- a/lib/sdo_request.c +++ b/lib/sdo_request.c @@ -86,7 +86,7 @@ void ecrt_sdo_request_timeout(ec_sdo_request_t *req, uint32_t timeout) /****************************************************************************/ -uint8_t *ecrt_sdo_request_data(ec_sdo_request_t *req) +uint8_t *ecrt_sdo_request_data(const ec_sdo_request_t *req) { return req->data; } diff --git a/lib/slave_config.c b/lib/slave_config.c index 6b3b2e44..4ac132a9 100644 --- a/lib/slave_config.c +++ b/lib/slave_config.c @@ -523,7 +523,7 @@ int ecrt_slave_config_emerg_clear(ec_slave_config_t *sc) /****************************************************************************/ -int ecrt_slave_config_emerg_overruns(ec_slave_config_t *sc) +int ecrt_slave_config_emerg_overruns(const ec_slave_config_t *sc) { ec_ioctl_sc_emerg_t io; int ret; diff --git a/lib/soe_request.c b/lib/soe_request.c index 1516ec93..d95a4ef1 100644 --- a/lib/soe_request.c +++ b/lib/soe_request.c @@ -86,7 +86,7 @@ void ecrt_soe_request_timeout(ec_soe_request_t *req, uint32_t timeout) /****************************************************************************/ -uint8_t *ecrt_soe_request_data(ec_soe_request_t *req) +uint8_t *ecrt_soe_request_data(const ec_soe_request_t *req) { return req->data; } diff --git a/lib/voe_handler.c b/lib/voe_handler.c index a743ff26..f0ae45c9 100644 --- a/lib/voe_handler.c +++ b/lib/voe_handler.c @@ -86,7 +86,7 @@ void ecrt_voe_handler_received_header(const ec_voe_handler_t *voe, /****************************************************************************/ -uint8_t *ecrt_voe_handler_data(ec_voe_handler_t *voe) +uint8_t *ecrt_voe_handler_data(const ec_voe_handler_t *voe) { return voe->data; } diff --git a/master/coe_emerg_ring.c b/master/coe_emerg_ring.c index 6e19b982..b0026c3b 100644 --- a/master/coe_emerg_ring.c +++ b/master/coe_emerg_ring.c @@ -160,7 +160,7 @@ int ec_coe_emerg_ring_clear_ring( * \return Number of overruns. */ int ec_coe_emerg_ring_overruns( - ec_coe_emerg_ring_t *ring /**< Emergency ring. */ + const ec_coe_emerg_ring_t *ring /**< Emergency ring. */ ) { return ring->overruns; diff --git a/master/coe_emerg_ring.h b/master/coe_emerg_ring.h index 2f00c01d..36ab2c41 100644 --- a/master/coe_emerg_ring.h +++ b/master/coe_emerg_ring.h @@ -63,7 +63,7 @@ int ec_coe_emerg_ring_size(ec_coe_emerg_ring_t *, size_t); void ec_coe_emerg_ring_push(ec_coe_emerg_ring_t *, const u8 *); int ec_coe_emerg_ring_pop(ec_coe_emerg_ring_t *, u8 *); int ec_coe_emerg_ring_clear_ring(ec_coe_emerg_ring_t *); -int ec_coe_emerg_ring_overruns(ec_coe_emerg_ring_t *); +int ec_coe_emerg_ring_overruns(const ec_coe_emerg_ring_t *); /****************************************************************************/ diff --git a/master/master.c b/master/master.c index 0e06367a..8a8c7744 100644 --- a/master/master.c +++ b/master/master.c @@ -2769,7 +2769,8 @@ void ecrt_master_application_time(ec_master_t *master, uint64_t app_time) /****************************************************************************/ -int ecrt_master_reference_clock_time(ec_master_t *master, uint32_t *time) +int ecrt_master_reference_clock_time(const ec_master_t *master, + uint32_t *time) { if (!master->dc_ref_clock) { return -ENXIO; @@ -2829,7 +2830,7 @@ void ecrt_master_sync_monitor_queue(ec_master_t *master) /****************************************************************************/ -uint32_t ecrt_master_sync_monitor_process(ec_master_t *master) +uint32_t ecrt_master_sync_monitor_process(const ec_master_t *master) { if (master->sync_mon_datagram.state == EC_DATAGRAM_RECEIVED) { return EC_READ_U32(master->sync_mon_datagram.data) & 0x7fffffff; @@ -2841,7 +2842,7 @@ uint32_t ecrt_master_sync_monitor_process(ec_master_t *master) /****************************************************************************/ int ecrt_master_sdo_download(ec_master_t *master, uint16_t slave_position, - uint16_t index, uint8_t subindex, uint8_t *data, + uint16_t index, uint8_t subindex, const uint8_t *data, size_t data_size, uint32_t *abort_code) { ec_sdo_request_t request; @@ -2920,7 +2921,7 @@ int ecrt_master_sdo_download(ec_master_t *master, uint16_t slave_position, /****************************************************************************/ int ecrt_master_sdo_download_complete(ec_master_t *master, - uint16_t slave_position, uint16_t index, uint8_t *data, + uint16_t slave_position, uint16_t index, const uint8_t *data, size_t data_size, uint32_t *abort_code) { ec_sdo_request_t request; @@ -3084,7 +3085,7 @@ int ecrt_master_sdo_upload(ec_master_t *master, uint16_t slave_position, /****************************************************************************/ int ecrt_master_write_idn(ec_master_t *master, uint16_t slave_position, - uint8_t drive_no, uint16_t idn, uint8_t *data, size_t data_size, + uint8_t drive_no, uint16_t idn, const uint8_t *data, size_t data_size, uint16_t *error_code) { ec_soe_request_t request; diff --git a/master/reg_request.c b/master/reg_request.c index 627061be..29f7d4e2 100644 --- a/master/reg_request.c +++ b/master/reg_request.c @@ -75,7 +75,7 @@ void ec_reg_request_clear( * Application interface. ****************************************************************************/ -uint8_t *ecrt_reg_request_data(ec_reg_request_t *reg) +uint8_t *ecrt_reg_request_data(const ec_reg_request_t *reg) { return reg->data; } diff --git a/master/sdo_request.c b/master/sdo_request.c index 3a4c66c6..d0de57db 100644 --- a/master/sdo_request.c +++ b/master/sdo_request.c @@ -194,7 +194,7 @@ void ecrt_sdo_request_timeout(ec_sdo_request_t *req, uint32_t timeout) /****************************************************************************/ -uint8_t *ecrt_sdo_request_data(ec_sdo_request_t *req) +uint8_t *ecrt_sdo_request_data(const ec_sdo_request_t *req) { return req->data; } diff --git a/master/slave_config.c b/master/slave_config.c index b68cfd14..d09d4055 100644 --- a/master/slave_config.c +++ b/master/slave_config.c @@ -1121,7 +1121,7 @@ int ecrt_slave_config_emerg_clear(ec_slave_config_t *sc) /****************************************************************************/ -int ecrt_slave_config_emerg_overruns(ec_slave_config_t *sc) +int ecrt_slave_config_emerg_overruns(const ec_slave_config_t *sc) { return ec_coe_emerg_ring_overruns(&sc->emerg_ring); } diff --git a/master/soe_request.c b/master/soe_request.c index 7acd50bf..20aa231a 100644 --- a/master/soe_request.c +++ b/master/soe_request.c @@ -279,7 +279,7 @@ void ecrt_soe_request_timeout(ec_soe_request_t *req, uint32_t timeout) /****************************************************************************/ -uint8_t *ecrt_soe_request_data(ec_soe_request_t *req) +uint8_t *ecrt_soe_request_data(const ec_soe_request_t *req) { return req->data; } diff --git a/master/voe_handler.c b/master/voe_handler.c index 68df5397..bc09069e 100644 --- a/master/voe_handler.c +++ b/master/voe_handler.c @@ -134,7 +134,7 @@ void ecrt_voe_handler_received_header(const ec_voe_handler_t *voe, /****************************************************************************/ -uint8_t *ecrt_voe_handler_data(ec_voe_handler_t *voe) +uint8_t *ecrt_voe_handler_data(const ec_voe_handler_t *voe) { return voe->datagram.data + EC_MBOX_HEADER_SIZE + EC_VOE_HEADER_SIZE; }