diff options
| author | Giovanni Di Sirio <gdisirio@gmail.com> | 2018-12-02 15:09:24 +0000 | 
|---|---|---|
| committer | Giovanni Di Sirio <gdisirio@gmail.com> | 2018-12-02 15:09:24 +0000 | 
| commit | 0f8c6b90f7c4e43beaa83ce2e694980952a79b9f (patch) | |
| tree | a96cc9b9e5486bef4b8503641a7e068430b7376a /os/hal/src | |
| parent | 559b4aa2d31e6bc4bbf9fbb7202608fefc5a57cc (diff) | |
| download | ChibiOS-0f8c6b90f7c4e43beaa83ce2e694980952a79b9f.tar.gz ChibiOS-0f8c6b90f7c4e43beaa83ce2e694980952a79b9f.tar.bz2 ChibiOS-0f8c6b90f7c4e43beaa83ce2e694980952a79b9f.zip  | |
New buffers performance tuning option added.
git-svn-id: svn://svn.code.sf.net/p/chibios/svn/trunk@12456 110e8d01-0319-4d1e-a829-52ad28d1bb01
Diffstat (limited to 'os/hal/src')
| -rw-r--r-- | os/hal/src/hal_buffers.c | 20 | 
1 files changed, 10 insertions, 10 deletions
diff --git a/os/hal/src/hal_buffers.c b/os/hal/src/hal_buffers.c index f7b2c9f4a..1ca880f1a 100644 --- a/os/hal/src/hal_buffers.c +++ b/os/hal/src/hal_buffers.c @@ -388,12 +388,12 @@ size_t ibqReadTimeout(input_buffers_queue_t *ibqp, uint8_t *bp,      /* Smaller chunks in order to not make the critical zone too long,
         this impacts throughput however.*/
 -    if (size > 64U) {
 +    if (size > (size_t)BUFFERS_CHUNKS_SIZE) {
        /* Giving the compiler a chance to optimize for a fixed size move.*/
 -      memcpy(bp, ibqp->ptr, 64U);
 -      bp        += 64U;
 -      ibqp->ptr += 64U;
 -      r         += 64U;
 +      memcpy(bp, ibqp->ptr, BUFFERS_CHUNKS_SIZE);
 +      bp        += (size_t)BUFFERS_CHUNKS_SIZE;
 +      ibqp->ptr += (size_t)BUFFERS_CHUNKS_SIZE;
 +      r         += (size_t)BUFFERS_CHUNKS_SIZE;
      }
      else {
        memcpy(bp, ibqp->ptr, size);
 @@ -751,12 +751,12 @@ size_t obqWriteTimeout(output_buffers_queue_t *obqp, const uint8_t *bp,      /* Smaller chunks in order to not make the critical zone too long,
         this impacts throughput however.*/
 -    if (size > 64U) {
 +    if (size > (size_t)BUFFERS_CHUNKS_SIZE) {
        /* Giving the compiler a chance to optimize for a fixed size move.*/
 -      memcpy(obqp->ptr, bp, 64U);
 -      bp        += 64U;
 -      obqp->ptr += 64U;
 -      w         += 64U;
 +      memcpy(obqp->ptr, bp, (size_t)BUFFERS_CHUNKS_SIZE);
 +      bp        += (size_t)BUFFERS_CHUNKS_SIZE;
 +      obqp->ptr += (size_t)BUFFERS_CHUNKS_SIZE;
 +      w         += (size_t)BUFFERS_CHUNKS_SIZE;
      }
      else {
        memcpy(obqp->ptr, bp, size);
  | 
