+
+int
+mdevgetrange(int devid, uint64_t *base, uint64_t *size)
+{
+ assert(base);
+ assert(size);
+
+ /* filter invalid request */
+ if ((devid < 0) || (devid >= NB_MAX_MDEVICES)) {
+ return -1;
+ }
+
+ /* filter non-initialized memory devices */
+ if ((mdev[devid].mdFlags & mdInited) == 0) {
+ return -1;
+ }
+
+ *base = mdev[devid].mdBase << 12;
+ *size = mdev[devid].mdSize << 12;
+
+ /* make sure (base, size) is a valid range and will not overflow */
+ assert(*size < (UINT64_MAX - *base));
+
+ return 0;
+}
+