[Krafton Jungle] PintOS 2.0.0
크래프톤 정글 PintOS
 
Loading...
Searching...
No Matches
vaddr.h File Reference
#include <debug.h>
#include <stdint.h>
#include <stdbool.h>
#include "threads/loader.h"
Include dependency graph for vaddr.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Macros

#define BITMASK(SHIFT, CNT)   (((1ul << (CNT)) - 1) << (SHIFT))
 
#define PGSHIFT   0 /* Index of first offset bit. */
 
#define PGBITS   12 /* Number of offset bits. */
 
#define PGSIZE   (1 << PGBITS) /* Bytes in a page. */
 
#define PGMASK   BITMASK(PGSHIFT, PGBITS) /* Page offset bits (0:12). */
 
#define pg_ofs(va)   ((uint64_t) (va) & PGMASK)
 
#define pg_no(va)   ((uint64_t) (va) >> PGBITS)
 
#define pg_round_up(va)   ((void *) (((uint64_t) (va) + PGSIZE - 1) & ~PGMASK))
 
#define pg_round_down(va)   (void *) ((uint64_t) (va) & ~PGMASK)
 
#define KERN_BASE   LOADER_KERN_BASE
 
#define USER_STACK   0x47480000
 
#define is_user_vaddr(vaddr)   (!is_kernel_vaddr((vaddr)))
 
#define is_kernel_vaddr(vaddr)   ((uint64_t)(vaddr) >= KERN_BASE)
 
#define ptov(paddr)   ((void *) (((uint64_t) paddr) + KERN_BASE))
 
#define vtop(vaddr)
 

Macro Definition Documentation

◆ BITMASK

#define BITMASK (   SHIFT,
  CNT 
)    (((1ul << (CNT)) - 1) << (SHIFT))

◆ is_kernel_vaddr

#define is_kernel_vaddr (   vaddr)    ((uint64_t)(vaddr) >= KERN_BASE)

◆ is_user_vaddr

#define is_user_vaddr (   vaddr)    (!is_kernel_vaddr((vaddr)))

◆ KERN_BASE

#define KERN_BASE   LOADER_KERN_BASE

◆ pg_no

#define pg_no (   va)    ((uint64_t) (va) >> PGBITS)

◆ pg_ofs

#define pg_ofs (   va)    ((uint64_t) (va) & PGMASK)

◆ pg_round_down

#define pg_round_down (   va)    (void *) ((uint64_t) (va) & ~PGMASK)

◆ pg_round_up

#define pg_round_up (   va)    ((void *) (((uint64_t) (va) + PGSIZE - 1) & ~PGMASK))

◆ PGBITS

#define PGBITS   12 /* Number of offset bits. */

◆ PGMASK

#define PGMASK   BITMASK(PGSHIFT, PGBITS) /* Page offset bits (0:12). */

◆ PGSHIFT

#define PGSHIFT   0 /* Index of first offset bit. */

◆ PGSIZE

#define PGSIZE   (1 << PGBITS) /* Bytes in a page. */

◆ ptov

#define ptov (   paddr)    ((void *) (((uint64_t) paddr) + KERN_BASE))

◆ USER_STACK

#define USER_STACK   0x47480000

◆ vtop

#define vtop (   vaddr)
Value:
({ \
ASSERT(is_kernel_vaddr(vaddr)); \
((uint64_t) (vaddr) - (uint64_t) KERN_BASE);\
})
unsigned long long int uint64_t
Definition: stdint.h:29
#define is_kernel_vaddr(vaddr)
Definition: vaddr.h:44
#define KERN_BASE
Definition: vaddr.h:35