-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
yaml --- r: 148748 b: refs/heads/master c: 5c01b46 h: refs/heads/master v: v3
- Loading branch information
Arnd Bergmann
authored and
Arnd Bergmann
committed
Jun 11, 2009
1 parent
a30b2ac
commit c597d85
Showing
9 changed files
with
241 additions
and
1 deletion.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,2 +1,2 @@ | ||
--- | ||
refs/heads/master: 3f7e212df82ca0459d44c91d9e019efd1b5f936c | ||
refs/heads/master: 5c01b46bb6bb8f2662573c05c87b5d68fa25af89 |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,12 @@ | ||
#ifndef __ASM_GENERIC_CACHE_H | ||
#define __ASM_GENERIC_CACHE_H | ||
/* | ||
* 32 bytes appears to be the most common cache line size, | ||
* so make that the default here. Architectures with larger | ||
* cache lines need to provide their own cache.h. | ||
*/ | ||
|
||
#define L1_CACHE_SHIFT 5 | ||
#define L1_CACHE_BYTES (1 << L1_CACHE_SHIFT) | ||
|
||
#endif /* __ASM_GENERIC_CACHE_H */ |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,30 @@ | ||
#ifndef __ASM_CACHEFLUSH_H | ||
#define __ASM_CACHEFLUSH_H | ||
|
||
/* Keep includes the same across arches. */ | ||
#include <linux/mm.h> | ||
|
||
/* | ||
* The cache doesn't need to be flushed when TLB entries change when | ||
* the cache is mapped to physical memory, not virtual memory | ||
*/ | ||
#define flush_cache_all() do { } while (0) | ||
#define flush_cache_mm(mm) do { } while (0) | ||
#define flush_cache_dup_mm(mm) do { } while (0) | ||
#define flush_cache_range(vma, start, end) do { } while (0) | ||
#define flush_cache_page(vma, vmaddr, pfn) do { } while (0) | ||
#define flush_dcache_page(page) do { } while (0) | ||
#define flush_dcache_mmap_lock(mapping) do { } while (0) | ||
#define flush_dcache_mmap_unlock(mapping) do { } while (0) | ||
#define flush_icache_range(start, end) do { } while (0) | ||
#define flush_icache_page(vma,pg) do { } while (0) | ||
#define flush_icache_user_range(vma,pg,adr,len) do { } while (0) | ||
#define flush_cache_vmap(start, end) do { } while (0) | ||
#define flush_cache_vunmap(start, end) do { } while (0) | ||
|
||
#define copy_to_user_page(vma, page, vaddr, dst, src, len) \ | ||
memcpy(dst, src, len) | ||
#define copy_from_user_page(vma, page, vaddr, dst, src, len) \ | ||
memcpy(dst, src, len) | ||
|
||
#endif /* __ASM_CACHEFLUSH_H */ |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,15 @@ | ||
#ifndef __ASM_GENERIC_MMU_H | ||
#define __ASM_GENERIC_MMU_H | ||
|
||
/* | ||
* This is the mmu.h header for nommu implementations. | ||
* Architectures with an MMU need something more complex. | ||
*/ | ||
#ifndef __ASSEMBLY__ | ||
typedef struct { | ||
struct vm_list_struct *vmlist; | ||
unsigned long end_brk; | ||
} mm_context_t; | ||
#endif | ||
|
||
#endif /* __ASM_GENERIC_MMU_H */ |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,45 @@ | ||
#ifndef __ASM_GENERIC_MMU_CONTEXT_H | ||
#define __ASM_GENERIC_MMU_CONTEXT_H | ||
|
||
/* | ||
* Generic hooks for NOMMU architectures, which do not need to do | ||
* anything special here. | ||
*/ | ||
|
||
#include <asm-generic/mm_hooks.h> | ||
|
||
struct task_struct; | ||
struct mm_struct; | ||
|
||
static inline void enter_lazy_tlb(struct mm_struct *mm, | ||
struct task_struct *tsk) | ||
{ | ||
} | ||
|
||
static inline int init_new_context(struct task_struct *tsk, | ||
struct mm_struct *mm) | ||
{ | ||
return 0; | ||
} | ||
|
||
static inline void destroy_context(struct mm_struct *mm) | ||
{ | ||
} | ||
|
||
static inline void deactivate_mm(struct task_struct *task, | ||
struct mm_struct *mm) | ||
{ | ||
} | ||
|
||
static inline void switch_mm(struct mm_struct *prev, | ||
struct mm_struct *next, | ||
struct task_struct *tsk) | ||
{ | ||
} | ||
|
||
static inline void activate_mm(struct mm_struct *prev_mm, | ||
struct mm_struct *next_mm) | ||
{ | ||
} | ||
|
||
#endif /* __ASM_GENERIC_MMU_CONTEXT_H */ |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,99 @@ | ||
#ifndef __ASM_GENERIC_PAGE_H | ||
#define __ASM_GENERIC_PAGE_H | ||
/* | ||
* Generic page.h implementation, for NOMMU architectures. | ||
* This provides the dummy definitions for the memory management. | ||
*/ | ||
|
||
#ifdef CONFIG_MMU | ||
#error need to prove a real asm/page.h | ||
#endif | ||
|
||
|
||
/* PAGE_SHIFT determines the page size */ | ||
|
||
#define PAGE_SHIFT 12 | ||
#ifdef __ASSEMBLY__ | ||
#define PAGE_SIZE (1 << PAGE_SHIFT) | ||
#else | ||
#define PAGE_SIZE (1UL << PAGE_SHIFT) | ||
#endif | ||
#define PAGE_MASK (~(PAGE_SIZE-1)) | ||
|
||
#include <asm/setup.h> | ||
|
||
#ifndef __ASSEMBLY__ | ||
|
||
#define get_user_page(vaddr) __get_free_page(GFP_KERNEL) | ||
#define free_user_page(page, addr) free_page(addr) | ||
|
||
#define clear_page(page) memset((page), 0, PAGE_SIZE) | ||
#define copy_page(to,from) memcpy((to), (from), PAGE_SIZE) | ||
|
||
#define clear_user_page(page, vaddr, pg) clear_page(page) | ||
#define copy_user_page(to, from, vaddr, pg) copy_page(to, from) | ||
|
||
/* | ||
* These are used to make use of C type-checking.. | ||
*/ | ||
typedef struct { | ||
unsigned long pte; | ||
} pte_t; | ||
typedef struct { | ||
unsigned long pmd[16]; | ||
} pmd_t; | ||
typedef struct { | ||
unsigned long pgd; | ||
} pgd_t; | ||
typedef struct { | ||
unsigned long pgprot; | ||
} pgprot_t; | ||
typedef struct page *pgtable_t; | ||
|
||
#define pte_val(x) ((x).pte) | ||
#define pmd_val(x) ((&x)->pmd[0]) | ||
#define pgd_val(x) ((x).pgd) | ||
#define pgprot_val(x) ((x).pgprot) | ||
|
||
#define __pte(x) ((pte_t) { (x) } ) | ||
#define __pmd(x) ((pmd_t) { (x) } ) | ||
#define __pgd(x) ((pgd_t) { (x) } ) | ||
#define __pgprot(x) ((pgprot_t) { (x) } ) | ||
|
||
extern unsigned long memory_start; | ||
extern unsigned long memory_end; | ||
|
||
#endif /* !__ASSEMBLY__ */ | ||
|
||
#ifdef CONFIG_KERNEL_RAM_BASE_ADDRESS | ||
#define PAGE_OFFSET (CONFIG_KERNEL_RAM_BASE_ADDRESS) | ||
#else | ||
#define PAGE_OFFSET (0) | ||
#endif | ||
|
||
#ifndef __ASSEMBLY__ | ||
|
||
#define __va(x) ((void *)((unsigned long)(x) + PAGE_OFFSET)) | ||
#define __pa(x) ((unsigned long) (x) - PAGE_OFFSET) | ||
|
||
#define virt_to_pfn(kaddr) (__pa(kaddr) >> PAGE_SHIFT) | ||
#define pfn_to_virt(pfn) __va((pfn) << PAGE_SHIFT) | ||
|
||
#define virt_to_page(addr) (mem_map + (((unsigned long)(addr)-PAGE_OFFSET) >> PAGE_SHIFT)) | ||
#define page_to_virt(page) ((((page) - mem_map) << PAGE_SHIFT) + PAGE_OFFSET) | ||
|
||
#ifndef page_to_phys | ||
#define page_to_phys(page) ((dma_addr_t)page_to_pfn(page) << PAGE_SHIFT) | ||
#endif | ||
|
||
#define pfn_valid(pfn) ((pfn) < max_mapnr) | ||
|
||
#define virt_addr_valid(kaddr) (((void *)(kaddr) >= (void *)PAGE_OFFSET) && \ | ||
((void *)(kaddr) < (void *)memory_end)) | ||
|
||
#endif /* __ASSEMBLY__ */ | ||
|
||
#include <asm-generic/memory_model.h> | ||
#include <asm-generic/getorder.h> | ||
|
||
#endif /* __ASM_GENERIC_PAGE_H */ |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,12 @@ | ||
#ifndef __ASM_GENERIC_PGALLOC_H | ||
#define __ASM_GENERIC_PGALLOC_H | ||
/* | ||
* an empty file is enough for a nommu architecture | ||
*/ | ||
#ifdef CONFIG_MMU | ||
#error need to implement an architecture specific asm/pgalloc.h | ||
#endif | ||
|
||
#define check_pgt_cache() do { } while (0) | ||
|
||
#endif /* __ASM_GENERIC_PGALLOC_H */ |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,9 @@ | ||
#ifndef __ASM_GENERIC_SEGMENT_H | ||
#define __ASM_GENERIC_SEGMENT_H | ||
/* | ||
* Only here because we have some old header files that expect it... | ||
* | ||
* New architectures probably don't want to have their own version. | ||
*/ | ||
|
||
#endif /* __ASM_GENERIC_SEGMENT_H */ |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,18 @@ | ||
#ifndef __ASM_GENERIC_TLBFLUSH_H | ||
#define __ASM_GENERIC_TLBFLUSH_H | ||
/* | ||
* This is a dummy tlbflush implementation that can be used on all | ||
* nommu architectures. | ||
* If you have an MMU, you need to write your own functions. | ||
*/ | ||
#ifdef CONFIG_MMU | ||
#error need to implement an architecture specific asm/tlbflush.h | ||
#endif | ||
|
||
static inline void flush_tlb_mm(struct mm_struct *mm) | ||
{ | ||
BUG(); | ||
} | ||
|
||
|
||
#endif /* __ASM_GENERIC_TLBFLUSH_H */ |