paging.c File Reference

#include "routix/system.h"
#include "routix/paging.h"
#include "routix/debug.h"
#include <routix/kstdio.h>
#include "routix/kalloc.h"

Go to the source code of this file.

Defines

Functions


Define Documentation

#define ERR_DIR_BUSY   -1
 

Mapea una dirección física en una logica

Definition at line 77 of file paging.c.

Referenced by kmapmem().

#define ERR_DIR_EMPTY   -5
 

Definition at line 80 of file paging.c.

Referenced by kunmapmem().

#define ERR_NO_ALIGN   -2
 

Definition at line 78 of file paging.c.

Referenced by kmapmem(), and kunmapmem().


Function Documentation

void* convertir_direccion (  void *  dir_logica,
addr_t  cr3
) 
 

Convierte una direccion logica respecto a cierto CR3 a una direccion de memoria fisica.

Definition at line 27 of file paging.c.

Referenced by exec_sigpending(), sys_exec(), sys_execve(), sys_gets(), sys_getvar(), sys_perror(), sys_print(), sys_setvar(), sys_sigaction(), sys_signal_check(), sys_sigprocmask(), sys_void(), and sys_waitpid().

void* copy_page (  void *  dest,
const void *  src
) 
 

Copia una página entera (optimizado para velocidad).

Copia una pagina completa, moviendo de a 4 bytes (movsl) una cantidad de PAGINA_SIZE / sizeof(dword) (1024 veces si PAGINA_SIZE=4096 y el dword es de 4 bytes

Definition at line 200 of file paging.c.

Referenced by kmain(), make_pdt(), and sys_fork().

page_index_t get_page_index (  addr_t  p  ) 
 

Devuelve en la estructura la posicion dentro del DIR de paginas, y dentro de la Tabla.

Definition at line 16 of file paging.c.

Referenced by convertir_direccion(), inicializarInterrupciones(), init_all_memory(), init_MM_base(), kmapmem(), and kunmapmem().

int kmapmem (  addr_t  fisica,
addr_t  logica,
addr_t  directorio,
word  atributo
) 
 

Mapea una dirección física en una lógica.

Parameters:
fisica dirección de la pagina física (debe estar alineada a 4KB)
logica dirección lógica donde quiero tener la página anteriormente citada
directorio directorio de páginas en el cuál se desea mapear la dirección
atributo atributos de página
Returns:
0 en caso de exito y -1 en caso contrario

Definition at line 89 of file paging.c.

Referenced by levantar_fat(), sys_fork(), and umalloc_page().

int kunmapmem (  addr_t  logica,
addr_t  directorio
) 
 

"Desmapea" una dirección lógica Esta función se encarga de liberar la tabla de página si no posee entradas

Parameters:
logica dirección lógica de la página
directorio directorio de páginas donde se encuentra mapeada
Returns:
0 en caso de éxito, -1 en caso contrario

Definition at line 144 of file paging.c.

Referenced by sys_exit_mm().

pde_t make_pde (  addr_t  direccion,
word  atributos
) 
 

Crea una entrada de directorio (tanto para directorio como para tabla, ya que son iguales en IA32).

Definition at line 50 of file paging.c.

Referenced by inicializarInterrupciones(), init_all_memory(), init_MM_base(), and kmapmem().

void* make_pdt (  void   ) 
 

Genera un directorio de páginas para un proceso. Copia todo el mapeo del sistema contenido en el directorio del Kernel.

Definition at line 187 of file paging.c.

Referenced by init_new_task().

pte_t make_pte (  addr_t  direccion,
word  atributos
) 
 

Crea una entrada de Pagina (tanto para directorio como para tabla, ya que son iguales en IA32).

Definition at line 60 of file paging.c.

Referenced by inicializarInterrupciones(), init_all_memory(), init_MM_base(), and kmapmem().


Generated on Sun May 30 18:38:36 2004 for Routix OS by doxygen 1.3.6