Contents of /alx-src/tags/kernel26-2.6.12-alx-r9/include/asm-arm/domain.h
Parent Directory | Revision Log
Revision 630 -
(show annotations)
(download)
Wed Mar 4 11:03:09 2009 UTC (15 years, 6 months ago) by niro
File MIME type: text/plain
File size: 1279 byte(s)
Wed Mar 4 11:03:09 2009 UTC (15 years, 6 months ago) by niro
File MIME type: text/plain
File size: 1279 byte(s)
Tag kernel26-2.6.12-alx-r9
1 | /* |
2 | * linux/include/asm-arm/domain.h |
3 | * |
4 | * Copyright (C) 1999 Russell King. |
5 | * |
6 | * This program is free software; you can redistribute it and/or modify |
7 | * it under the terms of the GNU General Public License version 2 as |
8 | * published by the Free Software Foundation. |
9 | */ |
10 | #ifndef __ASM_PROC_DOMAIN_H |
11 | #define __ASM_PROC_DOMAIN_H |
12 | |
13 | /* |
14 | * Domain numbers |
15 | * |
16 | * DOMAIN_IO - domain 2 includes all IO only |
17 | * DOMAIN_USER - domain 1 includes all user memory only |
18 | * DOMAIN_KERNEL - domain 0 includes all kernel memory only |
19 | */ |
20 | #define DOMAIN_KERNEL 0 |
21 | #define DOMAIN_TABLE 0 |
22 | #define DOMAIN_USER 1 |
23 | #define DOMAIN_IO 2 |
24 | |
25 | /* |
26 | * Domain types |
27 | */ |
28 | #define DOMAIN_NOACCESS 0 |
29 | #define DOMAIN_CLIENT 1 |
30 | #define DOMAIN_MANAGER 3 |
31 | |
32 | #define domain_val(dom,type) ((type) << (2*(dom))) |
33 | |
34 | #ifndef __ASSEMBLY__ |
35 | #define set_domain(x) \ |
36 | do { \ |
37 | __asm__ __volatile__( \ |
38 | "mcr p15, 0, %0, c3, c0 @ set domain" \ |
39 | : : "r" (x)); \ |
40 | } while (0) |
41 | |
42 | #define modify_domain(dom,type) \ |
43 | do { \ |
44 | struct thread_info *thread = current_thread_info(); \ |
45 | unsigned int domain = thread->cpu_domain; \ |
46 | domain &= ~domain_val(dom, DOMAIN_MANAGER); \ |
47 | thread->cpu_domain = domain | domain_val(dom, type); \ |
48 | set_domain(thread->cpu_domain); \ |
49 | } while (0) |
50 | |
51 | #endif |
52 | #endif /* !__ASSEMBLY__ */ |