The vm_area_struct represents a contigous area of virtual memory within a process. It contains the start and end addresses, permissions and flags for the memory area.
struct vm_area_struct
{
unsigned long vm_start; //Start address
unsigned long vm_end; //End address
unsigned long vm_flags; //Flags(read/write/execute)
struct vm_area_struct *vm_next; // Next VMA in the list