unistd.c 490 B

1234567891011121314151617181920
  1. #include <common/unistd.h>
  2. #include <common/glib.h>
  3. void swab(void *restrict src, void *restrict dest, ssize_t nbytes)
  4. {
  5. unsigned char buf[32];
  6. char *_src = src;
  7. char *_dest = dest;
  8. uint32_t transfer;
  9. for (; nbytes > 0; nbytes -= transfer)
  10. {
  11. transfer = (nbytes > 32) ? 32 : nbytes;
  12. memcpy(buf, _src, transfer);
  13. memcpy(_src, _dest, transfer);
  14. memcpy(_dest, buf, transfer);
  15. _src += transfer;
  16. _dest += transfer;
  17. }
  18. }