| /* 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 CRYPTOHOME_MOUNT_HELPERS_H_ |
| #define CRYPTOHOME_MOUNT_HELPERS_H_ |
| |
| #include <glib.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* str, 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); |
| |
| #endif // CRYPTOHOME_MOUNT_HELPERS_H_ |