blob: 56645a5c6604bd8659d72359fc23a9e89345d7d5 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
|
/*
* kernel/power/tuxonice_io.h
*
* Copyright (C) 2005-2015 Nigel Cunningham (nigel at nigelcunningham com au)
*
* This file is released under the GPLv2.
*
* It contains high level IO routines for hibernating.
*
*/
#include <linux/utsname.h>
#include "tuxonice_pagedir.h"
/* Non-module data saved in our image header */
struct toi_header {
/*
* Mirror struct swsusp_info, but without
* the page aligned attribute
*/
struct new_utsname uts;
u32 version_code;
unsigned long num_physpages;
int cpus;
unsigned long image_pages;
unsigned long pages;
unsigned long size;
/* Our own data */
unsigned long orig_mem_free;
int page_size;
int pageset_2_size;
int param0;
int param1;
int param2;
int param3;
int progress0;
int progress1;
int progress2;
int progress3;
int io_time[2][2];
struct pagedir pagedir;
dev_t root_fs;
unsigned long bkd; /* Boot kernel data locn */
};
extern int write_pageset(struct pagedir *pagedir);
extern int write_image_header(void);
extern int read_pageset1(void);
extern int read_pageset2(int overwrittenpagesonly);
extern int toi_attempt_to_parse_resume_device(int quiet);
extern void attempt_to_parse_resume_device2(void);
extern void attempt_to_parse_alt_resume_param(void);
int image_exists_read(const char *page, int count);
int image_exists_write(const char *buffer, int count);
extern void save_restore_alt_param(int replace, int quiet);
extern atomic_t toi_io_workers;
/* Args to save_restore_alt_param */
#define RESTORE 0
#define SAVE 1
#define NOQUIET 0
#define QUIET 1
extern wait_queue_head_t toi_io_queue_flusher;
extern int toi_bio_queue_flusher_should_finish;
int fs_info_space_needed(void);
extern int toi_max_workers;
|