/* Write a block. */ void put_block(block_t n, void *buf) { (void) read_and_set(n); mkfs_seek(mul64u(n, block_size), SEEK_SET); mkfs_write(buf, block_size); }
/* Write a block. */ void put_block(block_t n, void *buf) { (void) read_and_set(n); mkfs_seek((uint64_t)(n) * block_size, SEEK_SET); mkfs_write(buf, block_size); }
/* Write a block. */ void put_block(block_t n, void *buf) { (void) read_and_set(n); if (lseek64(fd, mul64u(n, block_size), SEEK_SET, NULL) == (off_t) -1) pexit("put_block couldn't seek"); if (write(fd, buf, block_size)!= block_size) pexit("put_block couldn't write block #%u", (unsigned)n); }
/* Read a block. */ void get_block(block_t n, void *buf) { ssize_t k; /* First access returns a zero block */ if (read_and_set(n) == 0) { memcpy(buf, zero, block_size); return; } mkfs_seek(mul64u(n, block_size), SEEK_SET); k = read(fd, buf, block_size); if (k != block_size) pexit("get_block couldn't read block #%u", (unsigned)n); }
/* Read a block. */ void get_block(block_t n, void *buf) { ssize_t k; /* First access returns a zero block */ if (read_and_set(n) == 0) { memcpy(buf, zero, block_size); return; } if (lseek64(fd, mul64u(n, block_size), SEEK_SET, NULL) == (off_t)(-1)) pexit("get_block couldn't seek"); k = read(fd, buf, block_size); if (k != block_size) pexit("get_block couldn't read block #%u", (unsigned)n); }