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