mirror of
https://github.com/Motorhead1991/qemu.git
synced 2025-08-05 16:53:55 -06:00
migration: Move page_cache.c to migration/
It is only used by migration, so move it there. Signed-off-by: Juan Quintela <quintela@redhat.com> Reviewed-by: Dr. David Alan Gilbert <dgilbert@redhat.com>
This commit is contained in:
parent
795c40b8bd
commit
aa3544c371
5 changed files with 2 additions and 3 deletions
86
migration/page_cache.h
Normal file
86
migration/page_cache.h
Normal file
|
@ -0,0 +1,86 @@
|
|||
/*
|
||||
* Page cache for QEMU
|
||||
* The cache is base on a hash of the page address
|
||||
*
|
||||
* Copyright 2012 Red Hat, Inc. and/or its affiliates
|
||||
*
|
||||
* Authors:
|
||||
* Orit Wasserman <owasserm@redhat.com>
|
||||
*
|
||||
* This work is licensed under the terms of the GNU GPL, version 2 or later.
|
||||
* See the COPYING file in the top-level directory.
|
||||
*
|
||||
*/
|
||||
|
||||
#ifndef PAGE_CACHE_H
|
||||
#define PAGE_CACHE_H
|
||||
|
||||
/* Page cache for storing guest pages */
|
||||
typedef struct PageCache PageCache;
|
||||
|
||||
/**
|
||||
* cache_init: Initialize the page cache
|
||||
*
|
||||
*
|
||||
* Returns new allocated cache or NULL on error
|
||||
*
|
||||
* @cache pointer to the PageCache struct
|
||||
* @num_pages: cache maximal number of cached pages
|
||||
* @page_size: cache page size
|
||||
*/
|
||||
PageCache *cache_init(int64_t num_pages, unsigned int page_size);
|
||||
|
||||
/**
|
||||
* cache_fini: free all cache resources
|
||||
* @cache pointer to the PageCache struct
|
||||
*/
|
||||
void cache_fini(PageCache *cache);
|
||||
|
||||
/**
|
||||
* cache_is_cached: Checks to see if the page is cached
|
||||
*
|
||||
* Returns %true if page is cached
|
||||
*
|
||||
* @cache pointer to the PageCache struct
|
||||
* @addr: page addr
|
||||
* @current_age: current bitmap generation
|
||||
*/
|
||||
bool cache_is_cached(const PageCache *cache, uint64_t addr,
|
||||
uint64_t current_age);
|
||||
|
||||
/**
|
||||
* get_cached_data: Get the data cached for an addr
|
||||
*
|
||||
* Returns pointer to the data cached or NULL if not cached
|
||||
*
|
||||
* @cache pointer to the PageCache struct
|
||||
* @addr: page addr
|
||||
*/
|
||||
uint8_t *get_cached_data(const PageCache *cache, uint64_t addr);
|
||||
|
||||
/**
|
||||
* cache_insert: insert the page into the cache. the page cache
|
||||
* will dup the data on insert. the previous value will be overwritten
|
||||
*
|
||||
* Returns -1 when the page isn't inserted into cache
|
||||
*
|
||||
* @cache pointer to the PageCache struct
|
||||
* @addr: page address
|
||||
* @pdata: pointer to the page
|
||||
* @current_age: current bitmap generation
|
||||
*/
|
||||
int cache_insert(PageCache *cache, uint64_t addr, const uint8_t *pdata,
|
||||
uint64_t current_age);
|
||||
|
||||
/**
|
||||
* cache_resize: resize the page cache. In case of size reduction the extra
|
||||
* pages will be freed
|
||||
*
|
||||
* Returns -1 on error new cache size on success
|
||||
*
|
||||
* @cache pointer to the PageCache struct
|
||||
* @num_pages: new page cache size (in pages)
|
||||
*/
|
||||
int64_t cache_resize(PageCache *cache, int64_t num_pages);
|
||||
|
||||
#endif
|
Loading…
Add table
Add a link
Reference in a new issue