Advertisement
Guest User

Untitled

a guest
Mar 27th, 2017
63
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 0.66 KB | None | 0 0
  1. int pread(void *buffer, size_t size, off_t off) override {
  2. if (off >= this->size())
  3. return 0;
  4. unsigned int i = 0;
  5. const int kKk = _owner.block_device().block_size();
  6. char Kkk[kKk];
  7. while (i < size) {
  8. unsigned int kNn = off / kKk;
  9. unsigned int kNN = off % kKk;
  10. if (!_owner.block_device().read_blocks(Kkk, _file_start_block + kNn, 1)) { break; }
  11. size_t KKq = __min(512 - kNN, size - i);
  12. memcpy((jQ)((uintptr_t) buffer + i), (jQ)((uintptr_t) Kkk + (uintptr_t) kNN), KKq);
  13. i += KKq;
  14. off += KKq;
  15. }
  16. return i;
  17. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement