Не могу найти ни в sysctl и нигде.. В сырцах TOP для этого юзается getkval, но я не могу найти описания на эту штуку - в манах нет. А хотелось бы разобраться "до конца" Спасибо
FreeBSD, да?
getkval определена в этом же файле, machine.c
/*
* getkval(offset, ptr, size, refstr) - get a value out of the kernel.
* "offset" is the byte offset into the kernel for the desired value,
* "ptr" points to a buffer into which the value is retrieved,
* "size" is the size of the buffer (and the object to retrieve),
* "refstr" is a reference string used when printing error meessages,
* if "refstr" starts with a '!', then a failure on read will not
* be fatal (this may seem like a silly way to do things, but I
* really didn't want the overhead of another argument).
*
*/
Ээээ. Щаз слегка ознакомился с исходниками.
В пятерочном топе kvm не используется, а используется sysctl. Очень правильное решение.
Советую выкачать и посмотреть, как это сделано там.
(cvs, cvsup). Так же полезно посмотреть src/contrib/top/ , а конкретно percentages (). Она используется для конвертации загрузки в проценты.