diff options
| author | Suren A. Chilingaryan <csa@dside.dyndns.org> | 2011-05-02 12:39:02 +0200 | 
|---|---|---|
| committer | Suren A. Chilingaryan <csa@dside.dyndns.org> | 2011-05-02 12:39:02 +0200 | 
| commit | 33edd4a542232582368f85203e0640c5f8123e76 (patch) | |
| tree | df0c335aabf52b88668805be328b04134ae64297 | |
| parent | 4be69efe315f2c510b886ce0039df8d52695cae0 (diff) | |
| download | ipecamera-33edd4a542232582368f85203e0640c5f8123e76.tar.gz ipecamera-33edd4a542232582368f85203e0640c5f8123e76.tar.bz2 ipecamera-33edd4a542232582368f85203e0640c5f8123e76.tar.xz ipecamera-33edd4a542232582368f85203e0640c5f8123e76.zip  | |
A bit faster datacpy
| -rw-r--r-- | tools.c | 27 | 
1 files changed, 17 insertions, 10 deletions
@@ -197,19 +197,26 @@ void *pcilib_datacpy32(void * dst, void const * src, uint8_t size, size_t n, pci      uint32_t const * plSrc = (uint32_t const *) src;      int swap = 0; -     -    if (endianess) swap = (endianess == PCILIB_BIG_ENDIAN)?(ntohs(1)!=1):(ntohs(1)==1); - -    assert(size == 4);	// only 32 bit at the moment -    while (n > 0) { -	if (swap) *plDst = ntohl(*plSrc); -	else *plDst = *plSrc; +    if (endianess)  +        swap = (endianess == PCILIB_BIG_ENDIAN)?(ntohs(1)!=1):(ntohs(1)==1); -        ++plSrc; -        ++plDst; +    assert(size == 4);	// only 32 bit at the moment -        --n; +    if (swap) { +        while (n > 0) { +            *plDst = ntohl(*plSrc); +            ++plSrc; +            ++plDst; +            --n; +        } +    } else { +        while (n > 0) { +            *plDst = *plSrc; +            ++plSrc; +            ++plDst; +            --n; +        }      }  }   | 
