Subversion Repositories HelenOS

Compare Revisions

Ignore whitespace Rev 2262 → Rev 2263

/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,11 → 118,10
}
 
/**
* 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
* \param pt level 0 page table
* \param i index of the entry to return
*/
static inline int get_pt_level0_flags(pte_level0_t *pt, index_t i)
{
139,11 → 137,10
;
}
 
/**
* 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
* \param pt level 1 page table
* \param i index of the entry to return
*/
static inline int get_pt_level1_flags(pte_level1_t *pt, index_t i)
{
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?
* \param pt level 0 page table
* \param i index of the entry to be changed
* \param flags new flags
*/
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,16 → 179,15
}
}
 
/**
* 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
* \param flags new flags
* \param pt level 1 page table
* \param i index of the entry to be changed
* \param flags new flags
*/
static inline void set_pt_level1_flags(pte_level1_t *pt, index_t i, int flags)
{
/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
 
/** @}
*/