vm_setdevid Kernel Service

Purpose

Modifies the paging device table entry for a virtual memory object.

Syntax

#include <sys/types.h>
#include <sys/kerrno.h>
#include  <sys/vmuser.h>

kerrno_t vm_setdevid ( vmid, type,  ptr,  flags)
vmid_t vmid;
int type;  
int (*ptr)();
unsigned long flags;    

Parameters

Item Description
vmid Specifies the identifier for the virtual memory object for which the paging device table entry is to be set.
type Specifies the type of device. The type parameter must have a value of D_REMOTE.
ptr Points to the strategy routine of the file system.
flags Reserved. You must set the flags parameter to zero.

Description

The vm_setdevid kernel service binds the paging device table entry associated with the file system strategy routine ptr, to the virtual memory object vmid. The paging device table entry must have already been mounted as type D_REMOTE through a prior vm_mount kernel service call.

After the file system has called the vm_setdevid kernel service on a given virtual memory object, subsequent paging I/O will be performed to or from the newly specified paging device table. Any outstanding I/O's to the paging device table formerly associated with the virtual memory object, remain queued, and will complete asynchronously. After they complete, subsequent paging I/O to those file pages will be performed to or from the newly specified paging device table.

The paging device table entry currently associated with the vmid object, on input to this call, must be valid and of type D_REMOTE. Any flags specified when the vm_mount kernel service gets called must match exactly any flags specified when the vm_mount kernel service gets called for the new paging device table entry.

Execution Environment

The vm_setdevid kernel service can be called from the process environment only.

Return Values

Item Description
0 Indicates a successful operation.
EINVAL_VM_SETDEVID1 Indicates that the vmid value is not a client segment, or the input type does not have the value of D_REMOTE.
ENODEV_VM_SETDEVID2 Indicates that a file system with the strategy routine designated by the ptr parameter is not in the paging device table.
EINVAL_VM_SETDEVID3 Indicates that the new paging device table entry is not D_REMOTE or is not valid.
EINVAL_VM_SETDEVID4 Indicates that the paging device table entry currently associated with the vmid object is not D_REMOTE or is not valid.
EINVAL_VM_SETDEVID5 Indicates that the vm_mount flags for the current and new paging device table entries differ.
EINVAL_VM_SETDEVID6 Indicates that this was called at interrupt level.
EINVAL_VM_SETDEVID7 Indicates that the input flags was nonzero.
EINVAL_VM_SETDEVID8 Indicates that the input vmid value is not valid.

Related Information

The vm_mount kernel service, vm_umount kernel service.

Memory Kernel Services and Understanding Virtual Memory Manager Interfaces in AIX® Version 7.1 Kernel Extensions and Device Support Programming Concepts.