/* 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 . */ #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