tuxonice_io.h 1.7 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374
  1. /*
  2. * kernel/power/tuxonice_io.h
  3. *
  4. * Copyright (C) 2005-2014 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. #include <linux/utsname.h>
  12. #include "tuxonice_pagedir.h"
  13. /* Non-module data saved in our image header */
  14. struct toi_header {
  15. /*
  16. * Mirror struct swsusp_info, but without
  17. * the page aligned attribute
  18. */
  19. struct new_utsname uts;
  20. u32 version_code;
  21. unsigned long num_physpages;
  22. int cpus;
  23. unsigned long image_pages;
  24. unsigned long pages;
  25. unsigned long size;
  26. /* Our own data */
  27. unsigned long orig_mem_free;
  28. int page_size;
  29. int pageset_2_size;
  30. int param0;
  31. int param1;
  32. int param2;
  33. int param3;
  34. int progress0;
  35. int progress1;
  36. int progress2;
  37. int progress3;
  38. int io_time[2][2];
  39. struct pagedir pagedir;
  40. dev_t root_fs;
  41. unsigned long bkd; /* Boot kernel data locn */
  42. };
  43. extern int write_pageset(struct pagedir *pagedir);
  44. extern int write_image_header(void);
  45. extern int read_pageset1(void);
  46. extern int read_pageset2(int overwrittenpagesonly);
  47. extern int toi_attempt_to_parse_resume_device(int quiet);
  48. extern void attempt_to_parse_resume_device2(void);
  49. extern void attempt_to_parse_alt_resume_param(void);
  50. int image_exists_read(const char *page, int count);
  51. int image_exists_write(const char *buffer, int count);
  52. extern void save_restore_alt_param(int replace, int quiet);
  53. extern atomic_t toi_io_workers;
  54. /* Args to save_restore_alt_param */
  55. #define RESTORE 0
  56. #define SAVE 1
  57. #define NOQUIET 0
  58. #define QUIET 1
  59. extern dev_t name_to_dev_t(char *line);
  60. extern wait_queue_head_t toi_io_queue_flusher;
  61. extern int toi_bio_queue_flusher_should_finish;
  62. int fs_info_space_needed(void);
  63. extern int toi_max_workers;