traslate
user_0531932
c_cpp
a year ago
830 B
4
Indexable
Never
/* Translate virtual address to physical address. If [virtual_addr] is valid, * return 1 and write its physical counterpart to [physical_addr]. * Otherwise, return 0 */ static int translate( addr_t virtual_addr, // Given virtual address addr_t *physical_addr, // Physical address to be returned struct pcb_t *proc) { // Process uses given virtual address /* Offset of the virtual address */ addr_t offset = get_offset(virtual_addr); offset++; offset--; /* The first layer index */ addr_t first_lv = get_first_lv(virtual_addr); /* The second layer index */ // addr_t second_lv = get_second_lv(virtual_addr); /* Search in the first level */ struct trans_table_t *trans_table = NULL; trans_table = get_trans_table(first_lv, proc->page_table); if (trans_table == NULL) { return 0; } }