KVM
Functions | Variables
early_alloc.c File Reference
#include <asm/kvm_pgtable.h>
#include <nvhe/early_alloc.h>
#include <nvhe/memory.h>
Include dependency graph for early_alloc.c:

Go to the source code of this file.

Functions

unsigned long hyp_early_alloc_nr_used_pages (void)
 
void * hyp_early_alloc_contig (unsigned int nr_pages)
 
void * hyp_early_alloc_page (void *arg)
 
static void hyp_early_alloc_get_page (void *addr)
 
static void hyp_early_alloc_put_page (void *addr)
 
void hyp_early_alloc_init (void *virt, unsigned long size)
 

Variables

struct kvm_pgtable_mm_ops hyp_early_alloc_mm_ops
 
s64 __ro_after_init hyp_physvirt_offset
 
static unsigned long base
 
static unsigned long end
 
static unsigned long cur
 

Function Documentation

◆ hyp_early_alloc_contig()

void* hyp_early_alloc_contig ( unsigned int  nr_pages)

Definition at line 24 of file early_alloc.c.

25 {
26  unsigned long size = (nr_pages << PAGE_SHIFT);
27  void *ret = (void *)cur;
28 
29  if (!nr_pages)
30  return NULL;
31 
32  if (end - cur < size)
33  return NULL;
34 
35  cur += size;
36  memset(ret, 0, size);
37 
38  return ret;
39 }
static unsigned long cur
Definition: early_alloc.c:17
static unsigned long end
Definition: early_alloc.c:16
size_t size
Definition: gen-hyprel.c:133
Here is the caller graph for this function:

◆ hyp_early_alloc_get_page()

static void hyp_early_alloc_get_page ( void *  addr)
static

Definition at line 46 of file early_alloc.c.

46 { }
Here is the caller graph for this function:

◆ hyp_early_alloc_init()

void hyp_early_alloc_init ( void *  virt,
unsigned long  size 
)

Definition at line 49 of file early_alloc.c.

50 {
51  base = cur = (unsigned long)virt;
52  end = base + size;
53 
59 }
struct kvm_pgtable_mm_ops hyp_early_alloc_mm_ops
Definition: early_alloc.c:12
static unsigned long base
Definition: early_alloc.c:15
void * hyp_early_alloc_page(void *arg)
Definition: early_alloc.c:41
static void hyp_early_alloc_get_page(void *addr)
Definition: early_alloc.c:46
static void hyp_early_alloc_put_page(void *addr)
Definition: early_alloc.c:47
static void * hyp_phys_to_virt(phys_addr_t phys)
Definition: memory.h:20
static phys_addr_t hyp_virt_to_phys(void *addr)
Definition: memory.h:25
Here is the call graph for this function:
Here is the caller graph for this function:

◆ hyp_early_alloc_nr_used_pages()

unsigned long hyp_early_alloc_nr_used_pages ( void  )

Definition at line 19 of file early_alloc.c.

20 {
21  return (cur - base) >> PAGE_SHIFT;
22 }
Here is the caller graph for this function:

◆ hyp_early_alloc_page()

void* hyp_early_alloc_page ( void *  arg)

Definition at line 41 of file early_alloc.c.

42 {
43  return hyp_early_alloc_contig(1);
44 }
void * hyp_early_alloc_contig(unsigned int nr_pages)
Definition: early_alloc.c:24
Here is the call graph for this function:
Here is the caller graph for this function:

◆ hyp_early_alloc_put_page()

static void hyp_early_alloc_put_page ( void *  addr)
static

Definition at line 47 of file early_alloc.c.

47 { }
Here is the caller graph for this function:

Variable Documentation

◆ base

unsigned long base
static

Definition at line 15 of file early_alloc.c.

◆ cur

unsigned long cur
static

Definition at line 17 of file early_alloc.c.

◆ end

unsigned long end
static

Definition at line 16 of file early_alloc.c.

◆ hyp_early_alloc_mm_ops

struct kvm_pgtable_mm_ops hyp_early_alloc_mm_ops

Definition at line 1 of file early_alloc.c.

◆ hyp_physvirt_offset

s64 __ro_after_init hyp_physvirt_offset

Definition at line 13 of file early_alloc.c.