Custom-OS-Kernel / h / vmSupport.h
vmSupport.h
Raw
#ifndef VMSUPPORT_H_INCLUDED
#define VMSUPPORT_H_INCLUDED

#include "pandos_const.h"
#include "pandos_types.h"
#include "libraries.h"


/* Initializes the swap table and swap pool semaphore */
void initSwapStructs();

/* Support level's pager. Handles page faults. */
void Support_Pager();

/* The pager's replacement algorithm: choses the page to drop located in a RAM frame, 
in order to free the frame. It returns the chosen page using a FIFO approach. */
int replacementAlgorithm();

/* The TLB refill handler: updates the cache in case of a tlb cache fault */
void uTLB_RefillHandler();

/** The flash device manager code.
 * @param command the command to send to the flash device. Can be read or write.
 * @param flash_asid the asid of the flash device, used to locate its address.
 * @param data_addr address of the frame to read/write onto the backing store.
 * @param deviceBlockNumber the number of the page to write into the backing store.
 *  
*/
void backStoreManager(unsigned int command, int flash_asid, unsigned int data_addr, unsigned int deviceBlockNumber);

// auxiliary function used by the syssupport when doing a sys9
void deleteSwTbEntries(int asid); 

// updates a single TLB entry located in the TLB 
void updateTLB(pteEntry_t *updated_entry);

#endif