Beispiel #1
0
/*
 * pmemblk_read -- read a block in a block memory pool
 */
int
pmemblk_read(PMEMblkpool *pbp, void *buf, off_t blockno)
{
	LOG(3, "pbp %p buf %p blockno %lld", pbp, buf, (long long)blockno);

	int lane = lane_enter(pbp);

	if (lane < 0)
		return -1;

	int err = btt_read(pbp->bttp, lane, blockno, buf);

	lane_exit(pbp, lane);

	return err;
}
Beispiel #2
0
Datei: blk.c Projekt: xguo/nvml
/*
 * pmemblk_read -- read a block in a block memory pool
 */
int
pmemblk_read(PMEMblkpool *pbp, void *buf, off_t blockno)
{
	LOG(3, "pbp %p buf %p blockno %lld", pbp, buf, (long long)blockno);

	if (blockno < 0) {
		ERR("negative block number");
		errno = EINVAL;
		return -1;
	}

	unsigned lane;

	lane_enter(pbp, &lane);

	int err = btt_read(pbp->bttp, lane, (uint64_t)blockno, buf);

	lane_exit(pbp, lane);

	return err;
}