Flushes the processor's cache for a specified address range.
#include <sys/types.h> #include <sys/errno.h> #include <sys/vmuser.h>
void vm_cflush (eaddr, nbytes) caddr_t eaddr; int nbytes;
eaddr | Specifies the starting address of the specified range. |
nbytes | Specifies the number of bytes in the address range. If this parameter is negative or 0, no lines are invalidated. |
The vm_cflush kernel service writes to memory all modified cache lines that intersect the address range (eaddr, eaddr + nbytes -1). The eaddr parameter can have any alignment in a page.
The vm_cflush kernel service can only be called with addresses in the system (kernel) address space.
The vm_cflush kernel service can be called from both the interrupt and the process environment.
The vm_cflush kernel service has no return values.
The vm_cflush kernel service is part of Base Operating System (BOS) Runtime.
Memory Kernel Services and Understanding Virtual Memory Manager Interfaces in AIX Kernel Extensions and Device Support Programming Concepts.