~ [ source navigation ] ~ [ diff markup ] ~ [ identifier search ] ~

TOMOYO Linux Cross Reference
Linux/arch/tile/mm/migrate.h

Version: ~ [ linux-5.13-rc1 ] ~ [ linux-5.12.2 ] ~ [ linux-5.11.19 ] ~ [ linux-5.10.35 ] ~ [ linux-5.9.16 ] ~ [ linux-5.8.18 ] ~ [ linux-5.7.19 ] ~ [ linux-5.6.19 ] ~ [ linux-5.5.19 ] ~ [ linux-5.4.117 ] ~ [ linux-5.3.18 ] ~ [ linux-5.2.21 ] ~ [ linux-5.1.21 ] ~ [ linux-5.0.21 ] ~ [ linux-4.20.17 ] ~ [ linux-4.19.190 ] ~ [ linux-4.18.20 ] ~ [ linux-4.17.19 ] ~ [ linux-4.16.18 ] ~ [ linux-4.15.18 ] ~ [ linux-4.14.232 ] ~ [ linux-4.13.16 ] ~ [ linux-4.12.14 ] ~ [ linux-4.11.12 ] ~ [ linux-4.10.17 ] ~ [ linux-4.9.268 ] ~ [ linux-4.8.17 ] ~ [ linux-4.7.10 ] ~ [ linux-4.6.7 ] ~ [ linux-4.5.7 ] ~ [ linux-4.4.268 ] ~ [ linux-4.3.6 ] ~ [ linux-4.2.8 ] ~ [ linux-4.1.52 ] ~ [ linux-4.0.9 ] ~ [ linux-3.18.140 ] ~ [ linux-3.16.85 ] ~ [ linux-3.14.79 ] ~ [ linux-3.12.74 ] ~ [ linux-3.10.108 ] ~ [ linux-2.6.32.71 ] ~ [ linux-2.6.0 ] ~ [ linux-2.4.37.11 ] ~ [ unix-v6-master ] ~ [ ccs-tools-1.8.5 ] ~ [ policy-sample ] ~
Architecture: ~ [ i386 ] ~ [ alpha ] ~ [ m68k ] ~ [ mips ] ~ [ ppc ] ~ [ sparc ] ~ [ sparc64 ] ~

  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 */
 57 

~ [ source navigation ] ~ [ diff markup ] ~ [ identifier search ] ~

kernel.org | git.kernel.org | LWN.net | Project Home | Wiki (Japanese) | Wiki (English) | SVN repository | Mail admin

Linux® is a registered trademark of Linus Torvalds in the United States and other countries.
TOMOYO® is a registered trademark of NTT DATA CORPORATION.

osdn.jp