/* Copyright (c) 2012 The Chromium OS Authors. All rights reserved. * Use of this source code is governed by a BSD-style license that can be * found in the LICENSE file. * * Header file for mount helpers. */ #ifndef _MOUNT_HELPERS_H_ #define _MOUNT_HELPERS_H_ /* General utility functions. */ uint64_t blk_size(const char *device); int remove_tree(const char *tree); int runcmd(const gchar *argv[], gchar **output); int same_vfs(const char *mnt_a, const char *mnt_b); char *stringify_hex(uint8_t *binary, size_t length); uint8_t *hexify_string(char *string, uint8_t *binary, size_t length); void shred(const char *keyfile); /* Loopback device attach/detach helpers. */ gchar *loop_attach(int fd, const char *name); int loop_detach(const gchar *loopback); int loop_detach_name(const char *name); /* Encrypted device mapper setup/teardown. */ int dm_setup(uint64_t bytes, const gchar *encryption_key, const char *name, const gchar *device, const char *path, int discard); int dm_teardown(const gchar *device); char *dm_get_key(const gchar *device); /* Sparse file creation. */ int sparse_create(const char *path, uint64_t bytes); /* Filesystem creation. */ int filesystem_build(const char *device, uint64_t block_bytes, uint64_t blocks_min, uint64_t blocks_max); int filesystem_resize(const char *device, uint64_t blocks, uint64_t blocks_max); /* Encrypted keyfile handling. */ char *keyfile_read(const char *keyfile, uint8_t *system_key); int keyfile_write(const char *keyfile, uint8_t *system_key, char *plain); #endif /* _MOUNT_HELPERS_H_ */