int cxl_mem_create_range_info()

in core/mbox.c [714:750]


int cxl_mem_create_range_info(struct cxl_dev_state *cxlds)
{
	int rc;

	if (cxlds->partition_align_bytes == 0) {
		cxlds->ram_range.start = 0;
		cxlds->ram_range.end = cxlds->volatile_only_bytes - 1;
		cxlds->pmem_range.start = cxlds->volatile_only_bytes;
		cxlds->pmem_range.end = cxlds->volatile_only_bytes +
				       cxlds->persistent_only_bytes - 1;
		return 0;
	}

	rc = cxl_mem_get_partition_info(cxlds);
	if (rc) {
		dev_err(cxlds->dev, "Failed to query partition information\n");
		return rc;
	}

	dev_dbg(cxlds->dev,
		"Get Partition Info\n"
		"     active_volatile_bytes = %#llx\n"
		"     active_persistent_bytes = %#llx\n"
		"     next_volatile_bytes = %#llx\n"
		"     next_persistent_bytes = %#llx\n",
		cxlds->active_volatile_bytes, cxlds->active_persistent_bytes,
		cxlds->next_volatile_bytes, cxlds->next_persistent_bytes);

	cxlds->ram_range.start = 0;
	cxlds->ram_range.end = cxlds->active_volatile_bytes - 1;

	cxlds->pmem_range.start = cxlds->active_volatile_bytes;
	cxlds->pmem_range.end =
		cxlds->active_volatile_bytes + cxlds->active_persistent_bytes - 1;

	return 0;
}