DCMD_PROC_PAGEDATA

Получение информации о смапированных страницах памяти процесса

Прототип:

#include <sys/procfs.h>
#define DCMD_PROC_PAGEDATA __DIOF( _DCMD_PROC, __PROC_SUBCMD_PROCFS + 20, procfs_mapinfo )

Аргументы:

filedes
Файловый дескриптор процесса (открытый файл /proc/PID/as).
dcmd
DCMD_PROC_PAGEDATA.
dev_data_ptr
NULL или указатель на массив структур procfs_mapinfo.
n_bytes
0 или размер массива структур procfs_mapinfo, полученный с помсощью sizeof().
dev_info_ptr
Указатель на int, где может быть сохранено число сегментов.

Описание:

Команда используется в сочетании с вызовом devctl(), а все перечисленные аргументы являются его типовыми параметрами. Команда позволяет получить информацию о смапированных страницах памяти процесса, ассоциированного с filedes, что соответствует памяти, присоединенной к адресному пространству с помощью mmap().

Если требуются получение специфичных для сегмента атрибутов, следует использовать команду DCMD_PROC_MAPINFO.

Исходящие данные:

Отсутствуют.

Входящие данные:

Заполненный массив структур procfs_mapinfo и общее число заполненных в нем элементов dev_info_ptr.

Примеры:

Получение числа сегментов, с указанием аргумента NULL:

devctl( fd, DCMD_PROC_PAGEDATA, NULL, 0, &n );

Выделение достаточного буфера для массива структур procfs_mapinfo под каждый сегмент и запрос информации о них:

my_buffer = (procfs_mapinfo *)malloc( sizeof( procfs_mapinfo ) * n );
if ( my_buffer == NULL )
{
/* Not enough memory. */
}
devctl( fd, DCMD_PROC_PAGEDATA, my_buffer, sizeof( procfs_mapinfo ) * n, &dummy );

Тематические ссылки:

pthread_join(), MsgReply(), InterruptWait(), MsgDeliverEvent(), MsgReceive(), MsgSend(), MsgSendPulse(), nanosleep(), procfs_mapinfo, pthread_cancel(), pthread_cond_wait(), pthread_create(), pthread_exit(), pthread_mutex_lock(), sigaction(), struct sigaction, SignalAction(), SignalKill(), sigsuspend(), sigwaitinfo(), SyncSemWait(), ThreadCreate()




Предыдущий раздел: перейти