/* SPDX-License-Identifier: MIT */
/*
* Copyright © 2024 Intel Corporation
*/
#ifndef _TTM_BACKUP_H_
#define _TTM_BACKUP_H_
#include <linux/mm_types.h>
#include <linux/shmem_fs.h>
/**
* ttm_backup_handle_to_page_ptr ( ) - Convert handle to struct page pointer
* @ handle : The handle to convert .
*
* Converts an opaque handle received from the
* ttm_backup_backup_page ( ) function to an ( invalid )
* struct page pointer suitable for a struct page array .
*
* Return : An ( invalid ) struct page pointer .
*/
static inline struct page *
ttm_backup_handle_to_page_ptr(unsigned long handle)
{
return (struct page *)(handle << 1 | 1 );
}
/**
* ttm_backup_page_ptr_is_handle ( ) - Whether a struct page pointer is a handle
* @ page : The struct page pointer to check .
*
* Return : true if the struct page pointer is a handld returned from
* ttm_backup_handle_to_page_ptr ( ) . False otherwise .
*/
static inline bool ttm_backup_page_ptr_is_handle(const struct page *page)
{
return (unsigned long )page & 1 ;
}
/**
* ttm_backup_page_ptr_to_handle ( ) - Convert a struct page pointer to a handle
* @ page : The struct page pointer to convert
*
* Return : The handle that was previously used in
* ttm_backup_handle_to_page_ptr ( ) to obtain a struct page pointer , suitable
* for use as argument in the struct ttm_backup_drop ( ) or
* ttm_backup_copy_page ( ) functions .
*/
static inline unsigned long
ttm_backup_page_ptr_to_handle(const struct page *page)
{
WARN_ON(!ttm_backup_page_ptr_is_handle(page));
return (unsigned long )page >> 1 ;
}
void ttm_backup_drop(struct file *backup, pgoff_t handle);
int ttm_backup_copy_page(struct file *backup, struct page *dst,
pgoff_t handle, bool intr);
s64
ttm_backup_backup_page(struct file *backup, struct page *page,
bool writeback, pgoff_t idx, gfp_t page_gfp,
gfp_t alloc_gfp);
void ttm_backup_fini(struct file *backup);
u64 ttm_backup_bytes_avail(void );
struct file *ttm_backup_shmem_create(loff_t size);
#endif
Messung V0.5 in Prozent C=93 H=79 G=86
¤ Dauer der Verarbeitung: 0.13 Sekunden
(vorverarbeitet am 2026-09-28)
¤
*© Formatika GbR, Deutschland