mirror of
				https://source.denx.de/u-boot/u-boot.git
				synced 2025-10-31 16:31:25 +01:00 
			
		
		
		
	* Patch by Murray Jensen, 24 Jun 2003: - make sure to use only U-boot provided header files - fix problems with ".rodata.str1.4" section as used by GCC-3.x
		
			
				
	
	
		
			51 lines
		
	
	
		
			1.2 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
			
		
		
	
	
			51 lines
		
	
	
		
			1.2 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
| /*
 | |
|  *  linux/include/asm-arm/proc-armv/domain.h
 | |
|  *
 | |
|  *  Copyright (C) 1999 Russell King.
 | |
|  *
 | |
|  * This program is free software; you can redistribute it and/or modify
 | |
|  * it under the terms of the GNU General Public License version 2 as
 | |
|  * published by the Free Software Foundation.
 | |
|  */
 | |
| #ifndef __ASM_PROC_DOMAIN_H
 | |
| #define __ASM_PROC_DOMAIN_H
 | |
| 
 | |
| /*
 | |
|  * Domain numbers
 | |
|  *
 | |
|  *  DOMAIN_IO     - domain 2 includes all IO only
 | |
|  *  DOMAIN_KERNEL - domain 1 includes all kernel memory only
 | |
|  *  DOMAIN_USER   - domain 0 includes all user memory only
 | |
|  */
 | |
| #define DOMAIN_USER	0
 | |
| #define DOMAIN_KERNEL	1
 | |
| #define DOMAIN_TABLE	1
 | |
| #define DOMAIN_IO	2
 | |
| 
 | |
| /*
 | |
|  * Domain types
 | |
|  */
 | |
| #define DOMAIN_NOACCESS	0
 | |
| #define DOMAIN_CLIENT	1
 | |
| #define DOMAIN_MANAGER	3
 | |
| 
 | |
| #define domain_val(dom,type)	((type) << 2*(dom))
 | |
| 
 | |
| #define set_domain(x)					\
 | |
| 	do {						\
 | |
| 	__asm__ __volatile__(				\
 | |
| 	"mcr	p15, 0, %0, c3, c0	@ set domain"	\
 | |
| 	  : : "r" (x));					\
 | |
| 	} while (0)
 | |
| 
 | |
| #define modify_domain(dom,type)				\
 | |
| 	do {						\
 | |
| 	unsigned int domain = current->thread.domain;	\
 | |
| 	domain &= ~domain_val(dom, DOMAIN_MANAGER);	\
 | |
| 	domain |= domain_val(dom, type);		\
 | |
| 	current->thread.domain = domain;		\
 | |
| 	set_domain(current->thread.domain);		\
 | |
| 	} while (0)
 | |
| 
 | |
| #endif
 |