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