Linux Kernel
3.7.1
Main Page
Related Pages
Modules
Namespaces
Data Structures
Files
File List
Globals
All
Data Structures
Namespaces
Files
Functions
Variables
Typedefs
Enumerations
Enumerator
Macros
Groups
Pages
arch
tile
mm
migrate.h
Go to the documentation of this file.
1
/*
2
* Copyright 2010 Tilera Corporation. All Rights Reserved.
3
*
4
* This program is free software; you can redistribute it and/or
5
* modify it under the terms of the GNU General Public License
6
* as published by the Free Software Foundation, version 2.
7
*
8
* This program is distributed in the hope that it will be useful, but
9
* WITHOUT ANY WARRANTY; without even the implied warranty of
10
* MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE, GOOD TITLE or
11
* NON INFRINGEMENT. See the GNU General Public License for
12
* more details.
13
*
14
* Structure definitions for migration, exposed here for use by
15
* arch/tile/kernel/asm-offsets.c.
16
*/
17
18
#ifndef MM_MIGRATE_H
19
#define MM_MIGRATE_H
20
21
#include <
linux/cpumask.h
>
22
#include <
hv/hypervisor.h
>
23
24
/*
25
* This function is used as a helper when setting up the initial
26
* page table (swapper_pg_dir).
27
*
28
* You must mask ALL interrupts prior to invoking this code, since
29
* you can't legally touch the stack during the cache flush.
30
*/
31
extern
int
flush_and_install_context
(
HV_PhysAddr
page_table,
HV_PTE
access
,
32
HV_ASID
asid
,
33
const
unsigned
long
*
cpumask
);
34
35
/*
36
* This function supports migration as a "helper" as follows:
37
*
38
* - Set the stack PTE itself to "migrating".
39
* - Do a global TLB flush for (va,length) and the specified ASIDs.
40
* - Do a cache-evict on all necessary cpus.
41
* - Write the new stack PTE.
42
*
43
* Note that any non-NULL pointers must not point to the page that
44
* is handled by the stack_pte itself.
45
*
46
* You must mask ALL interrupts prior to invoking this code, since
47
* you can't legally touch the stack during the cache flush.
48
*/
49
extern
int
homecache_migrate_stack_and_flush
(
pte_t
stack_pte,
unsigned
long
va
,
50
size_t
length
,
pte_t
*stack_ptep,
51
const
struct
cpumask
*cache_cpumask,
52
const
struct
cpumask
*tlb_cpumask,
53
HV_Remote_ASID
*asids,
54
int
asidcount);
55
56
#endif
/* MM_MIGRATE_H */
Generated on Thu Jan 10 2013 13:19:13 for Linux Kernel by
1.8.2