blob: d08e4b1287340cffce98b9ac858a035fa6fbf6e0 [file] [log] [blame]
/*
* kernel/power/tuxonice_pagedir.h
*
* Copyright (C) 2006-2010 Nigel Cunningham (nigel at tuxonice net)
*
* This file is released under the GPLv2.
*
* Declarations for routines for handling pagesets.
*/
#ifndef KERNEL_POWER_PAGEDIR_H
#define KERNEL_POWER_PAGEDIR_H
/* Pagedir
*
* Contains the metadata for a set of pages saved in the image.
*/
struct pagedir {
int id;
unsigned long size;
#ifdef CONFIG_HIGHMEM
unsigned long size_high;
#endif
};
#ifdef CONFIG_HIGHMEM
#define get_highmem_size(pagedir) (pagedir.size_high)
#define set_highmem_size(pagedir, sz) do { pagedir.size_high = sz; } while (0)
#define inc_highmem_size(pagedir) do { pagedir.size_high++; } while (0)
#define get_lowmem_size(pagedir) (pagedir.size - pagedir.size_high)
#else
#define get_highmem_size(pagedir) (0)
#define set_highmem_size(pagedir, sz) do { } while (0)
#define inc_highmem_size(pagedir) do { } while (0)
#define get_lowmem_size(pagedir) (pagedir.size)
#endif
extern struct pagedir pagedir1, pagedir2;
extern void toi_copy_pageset1(void);
extern int toi_get_pageset1_load_addresses(void);
extern unsigned long __toi_get_nonconflicting_page(void);
struct page *___toi_get_nonconflicting_page(int can_be_highmem);
extern void toi_reset_alt_image_pageset2_pfn(void);
extern int add_boot_kernel_data_pbe(void);
#endif