--- ksim/monitors/disk/ksimdisk.cpp.orig Mon Nov 4 11:03:53 2002 +++ ksim/monitors/disk/ksimdisk.cpp Wed Mar 19 13:37:39 2003 @@ -248,6 +253,16 @@ #endif #ifdef Q_OS_FREEBSD +#if __FreeBSD_version < 500107 +#define devstat_getdevs(fd, stats) getdevs(stats) +#define devstat_selectdevs selectdevs +#define bytes_read(dev) (dev).bytes_read +#define bytes_written(dev) (dev).bytes_written +#else +#define bytes_read(dev) (dev).bytes[DEVSTAT_READ] +#define bytes_written(dev) (dev).bytes[DEVSTAT_WRITE] +#endif + statinfo diskStats; bzero(&diskStats, sizeof(diskStats)); diskStats.dinfo = (struct devinfo *)malloc(sizeof(struct devinfo)); @@ -258,11 +273,11 @@ long generation; device_selection *deviceSelect = 0; - if (getdevs(&diskStats) < 0) + if (devstat_getdevs(NULL, &diskStats) < 0) return; deviceAmount = diskStats.dinfo->numdevs; - if (selectdevs(&deviceSelect, &selected, &selections, + if (devstat_selectdevs(&deviceSelect, &selected, &selections, &generation, diskStats.dinfo->generation, diskStats.dinfo->devices, deviceAmount, 0, 0, 0, 0, DS_SELECT_ONLY, 10, 1) < 0) @@ -275,8 +290,8 @@ disk = deviceSelect[i].position; device = diskStats.dinfo->devices[disk]; blockSize = (device.block_size <= 0 ? 512 : device.block_size); - readBlocks = device.bytes_read / blockSize; - writeBlocks = device.bytes_written / blockSize; + readBlocks = bytes_read(device) / blockSize; + writeBlocks = bytes_written(device) / blockSize; DiskData diskData; diskData.name = device.device_name