/branches/arm/kernel/arch/arm32/include/mm/page.h |
---|
93,7 → 93,6 |
#define SET_FRAME_FLAGS_ARCH(ptl3, i, x) set_pt_level1_flags((pte_level1_t *)(ptl3), (index_t)(i), (x)) |
#define PTE_VALID_ARCH(pte) (*((uint32_t *) (pte)) != 0) |
// TODO: ?? != 0 |
#define PTE_PRESENT_ARCH(pte) ( ((pte_level0_t *)(pte))->descriptor_type != 0 ) |
/* pte should point into ptl3 */ |
119,8 → 118,7 |
} |
/** |
* Returns level 0 page table entry flags. |
/** Returns level 0 page table entry flags. |
* |
* \param pt level 0 page table |
* \param i index of the entry to return |
139,8 → 137,7 |
; |
} |
/** |
* Returns level 1 page table entry flags. |
/** Returns level 1 page table entry flags. |
* |
* \param pt level 1 page table |
* \param i index of the entry to return |
162,14 → 159,11 |
; |
} |
/** |
* Sets flags of level 0 page table entry. |
/** Sets flags of level 0 page table entry. |
* |
* \param pt level 0 page table |
* \param i index of the entry to be changed |
* \param flags new flags |
* |
* TODO: why should_be_zero set to 1? |
*/ |
static inline void set_pt_level0_flags(pte_level0_t *pt, index_t i, int flags) |
{ |
177,10 → 171,8 |
if (flags & PAGE_NOT_PRESENT) { |
p->descriptor_type = PTE_DESCRIPTOR_NOT_PRESENT; |
// ensures that the entry will be recognized as valid when PTE_VALID_ARCH applied |
p->should_be_zero = 1; |
// TODO: remove in final version |
// For Michal: Have to be here ... ensures this entry contains at least 1 non zero bit |
// all zero bits signals PTE_VALID_ARCH , it's different from not_present |
} else { |
p->descriptor_type = PTE_DESCRIPTOR_COARSE_TABLE; |
p->should_be_zero = 0; |
187,12 → 179,11 |
} |
} |
/** |
* Sets flags of level 1 page table entry. |
/** Sets flags of level 1 page table entry. |
* |
* We use same access rights for the whole page. When page is not preset then |
* store 1 in acess_rigts_3. |
* TODO: why access_right_3? |
* We use same access rights for the whole page. When page is not preset we |
* store 1 in acess_rigts_3 so that at least one bit is 1 (to mark correct |
* page entry, see #PAGE_VALID_ARCH). |
* |
* \param pt level 1 page table |
* \param i index of the entry to be changed |
/branches/arm/kernel/arch/arm32/include/drivers/gxemul.h |
---|
41,6 → 41,22 |
#define GXEMUL_IRQC_MAX_IRQ 8 |
#define GXEMUL_TIMER_FREQ 2 |
/** Struct containing mappings of gxemul HW devices into kernel part |
* * of virtual address space. */ |
typedef struct { |
uintptr_t videoram; |
uintptr_t kbd; |
uintptr_t rtc; |
uintptr_t rtc_freq; |
uintptr_t rtc_ack; |
uintptr_t irqc; |
uintptr_t irqc_mask; |
uintptr_t irqc_unmask; |
} gxemul_hw_map_t; |
void gxemul_hw_map_init(void); |
void gxemul_console(devno_t devno); |
void gxemul_kbd_release(void); |
void gxemul_kbd_grab(void); |
52,6 → 68,7 |
void gxemul_timer_irq_init(void); |
void gxemul_timer_start(uint32_t frequency); |
size_t gxemul_get_memory_size(void); |
/branches/arm/kernel/arch/arm32/include/drivers/init.h |
---|
0,0 → 1,45 |
/* |
* Copyright (c) 2007 Michal Kebrt |
* All rights reserved. |
* |
* Redistribution and use in source and binary forms, with or without |
* modification, are permitted provided that the following conditions |
* are met: |
* |
* - Redistributions of source code must retain the above copyright |
* notice, this list of conditions and the following disclaimer. |
* - Redistributions in binary form must reproduce the above copyright |
* notice, this list of conditions and the following disclaimer in the |
* documentation and/or other materials provided with the distribution. |
* - The name of the author may not be used to endorse or promote products |
* derived from this software without specific prior written permission. |
* |
* THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR |
* IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES |
* OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. |
* IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, |
* INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT |
* NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, |
* DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY |
* THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT |
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF |
* THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. |
*/ |
/** @addtogroup arm32 |
* @{ |
*/ |
/** @file |
*/ |
#ifndef KERN_arm32_DRIVERS_INIT_H_ |
#define KERN_arm32_DRIVERS_INIT_H_ |
void drivers_init(void); |
#endif |
/** @} |
*/ |