No Description

roots.h 2.2KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162
  1. /*
  2. * Copyright (C) 2007 The Android Open Source Project
  3. *
  4. * Licensed under the Apache License, Version 2.0 (the "License");
  5. * you may not use this file except in compliance with the License.
  6. * You may obtain a copy of the License at
  7. *
  8. * http://www.apache.org/licenses/LICENSE-2.0
  9. *
  10. * Unless required by applicable law or agreed to in writing, software
  11. * distributed under the License is distributed on an "AS IS" BASIS,
  12. * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  13. * See the License for the specific language governing permissions and
  14. * limitations under the License.
  15. */
  16. #ifndef RECOVERY_ROOTS_H_
  17. #define RECOVERY_ROOTS_H_
  18. #include <string>
  19. typedef struct fstab_rec Volume;
  20. // Load and parse volume data from /etc/recovery.fstab.
  21. void load_volume_table();
  22. // Return the Volume* record for this mount point (or nullptr).
  23. Volume* volume_for_mount_point(const std::string& mount_point);
  24. // Make sure that the volume 'path' is on is mounted. Returns 0 on
  25. // success (volume is mounted).
  26. int ensure_volume_mounted(Volume* v);
  27. int ensure_path_mounted(const char* path);
  28. // Similar to ensure_path_mounted, but allows one to specify the mount_point.
  29. int ensure_path_mounted_at(const char* path, const char* mount_point);
  30. // Make sure that the volume 'path' is on is unmounted. Returns 0 on
  31. // success (volume is unmounted);
  32. int ensure_volume_unmounted(const Volume *v, bool detach=false);
  33. int ensure_path_unmounted(const char* path, bool detach=false);
  34. // Reformat the given volume (must be the mount point only, eg
  35. // "/cache"), no paths permitted. Attempts to unmount the volume if
  36. // it is mounted.
  37. int format_volume(const char* volume);
  38. // Reformat the given volume (must be the mount point only, eg
  39. // "/cache"), no paths permitted. Attempts to unmount the volume if
  40. // it is mounted.
  41. // Copies 'directory' to root of the newly formatted volume
  42. int format_volume(const char* volume, const char* directory);
  43. // Ensure that all and only the volumes that packages expect to find
  44. // mounted (/tmp and /cache) are mounted. Returns 0 on success.
  45. int setup_install_mounts();
  46. int get_num_volumes();
  47. #define MAX_NUM_MANAGED_VOLUMES 10
  48. #endif // RECOVERY_ROOTS_H_