View of xos/include/system.h


XOS | Parent Directory | View | Download

/* Copyright (C) 2008  Emmanuel Varoquaux
 
   This file is part of XOS.
 
   This program is free software: you can redistribute it and/or modify
   it under the terms of the GNU General Public License as published by
   the Free Software Foundation, either version 3 of the License, or
   (at your option) any later version.
 
   This program is distributed in the hope that it will be useful,
   but WITHOUT ANY WARRANTY; without even the implied warranty of
   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
   GNU General Public License for more details.
 
   You should have received a copy of the GNU General Public License
   along with this program.  If not, see <http://www.gnu.org/licenses/>. */
 
#ifndef _SYSTEM_H
#define _SYSTEM_H
 
/* descripteurs */
 
struct descr_struct;
struct descr_data_struct;
 
void get_descr(const struct descr_struct *descr, struct descr_data_struct *descr_data);
void set_descr(struct descr_struct *descr, const struct descr_data_struct *descr_data);
 
/* selecteurs */
 
struct sel_data_struct;
 
void get_sel(const unsigned short *sel, struct sel_data_struct *sel_data);
void set_sel(unsigned short *sel, const struct sel_data_struct *sel_data);
 
/* adresses lineaires */
 
struct linear_address_data_struct;
 
void get_linear_address(const unsigned long *linear_address, struct linear_address_data_struct *linear_address_data);
void set_linear_address(unsigned long *linear_address, const struct linear_address_data_struct *linear_address_data);
 
/* entrees de table des pages */
 
struct page_table_entry_data_struct;
 
void get_page_table_entry(const unsigned long *page_table_entry, struct page_table_entry_data_struct *page_table_entry_data);
void set_page_table_entry(unsigned long *page_table_entry, const struct page_table_entry_data_struct *page_table_entry_data);
void clear_page_table(unsigned long *page_table);
 
/* segments d'etat de tache */
 
struct tss_struct;
struct tss_data_struct;
 
void get_tss(const struct tss_struct *tss, struct tss_data_struct *tss_data);
void set_tss(struct tss_struct *tss, const struct tss_data_struct *tss_data);
 
/* code d'erreur */
 
struct error_code_data_struct;
 
void get_error_code(const unsigned long *error_code, struct error_code_data_struct *error_code_data);
void set_error_code(unsigned long *error_code, const struct error_code_data_struct *error_code_data);
 
/* code d'erreur des defauts de page */
 
struct page_fault_error_code_data_struct;
 
void get_page_fault_error_code(const unsigned long *error_code, struct page_fault_error_code_data_struct *error_code_data);
void set_page_fault_error_code(unsigned long *error_code, const struct page_fault_error_code_data_struct *error_code_data);
 
#endif