xref: /kernel/linux/linux-6.6/arch/csky/abiv1/inc/abi/page.h
  • Home
  • History
  • Annotate Annotate
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
  • only in /kernel/linux/linux-6.6/arch/csky/abiv1/inc/abi/
162306a36Sopenharmony_ci/* SPDX-License-Identifier: GPL-2.0 */
262306a36Sopenharmony_ci
362306a36Sopenharmony_ci#include <asm/shmparam.h>
462306a36Sopenharmony_ci
562306a36Sopenharmony_ciextern void flush_dcache_page(struct page *page);
662306a36Sopenharmony_ci
762306a36Sopenharmony_cistatic inline unsigned long pages_do_alias(unsigned long addr1,
862306a36Sopenharmony_ci					   unsigned long addr2)
962306a36Sopenharmony_ci{
1062306a36Sopenharmony_ci	return (addr1 ^ addr2) & (SHMLBA-1);
1162306a36Sopenharmony_ci}
1262306a36Sopenharmony_ci
1362306a36Sopenharmony_cistatic inline void clear_user_page(void *addr, unsigned long vaddr,
1462306a36Sopenharmony_ci				   struct page *page)
1562306a36Sopenharmony_ci{
1662306a36Sopenharmony_ci	clear_page(addr);
1762306a36Sopenharmony_ci	if (pages_do_alias((unsigned long) addr, vaddr & PAGE_MASK))
1862306a36Sopenharmony_ci		flush_dcache_page(page);
1962306a36Sopenharmony_ci}
2062306a36Sopenharmony_ci
2162306a36Sopenharmony_cistatic inline void copy_user_page(void *to, void *from, unsigned long vaddr,
2262306a36Sopenharmony_ci				  struct page *page)
2362306a36Sopenharmony_ci{
2462306a36Sopenharmony_ci	copy_page(to, from);
2562306a36Sopenharmony_ci	if (pages_do_alias((unsigned long) to, vaddr & PAGE_MASK))
2662306a36Sopenharmony_ci		flush_dcache_page(page);
2762306a36Sopenharmony_ci}
28

Indexes created Thu Nov 07 10:32:03 CST 2024