shufflecake/shufflecake-userland/include/cli.h
2025-07-30 00:25:50 +02:00

67 lines
2.5 KiB
C

/*
* Copyright The Shufflecake Project Authors (2022)
* Copyright The Shufflecake Project Contributors (2022)
* Copyright Contributors to the The Shufflecake Project.
*
* See the AUTHORS file at the top-level directory of this distribution and at
* <https://www.shufflecake.net/permalinks/shufflecake-userland/AUTHORS>
*
* This file is part of the program shufflecake-c, which is part of the
* Shufflecake Project. Shufflecake is a plausible deniability (hidden storage)
* layer for Linux. See <https://www.shufflecake.net>.
*
* This program is free software: you can redistribute it and/or modify it
* under the terms of the GNU General Public License as published by the Free
* Software Foundation, either version 2 of the License, or (at your option)
* any later version. This program is distributed in the hope that it will be
* useful, but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General
* Public License for more details. You should have received a copy of the
* GNU General Public License along with this program.
* If not, see <https://www.gnu.org/licenses/>.
*/
#ifndef _CLI_H_
#define _CLI_H_
#include <stdbool.h>
/*****************************************************
* CONSTANTS *
*****************************************************/
/* Action to create volumes */
#define SFLC_CLI_INITACT "init"
/* Action to open volumes */
#define SFLC_CLI_OPENACT "open"
/* Action to close volumes */
#define SFLC_CLI_CLOSEACT "close"
/* Action to test password */
#define SFLC_CLI_TESTPWDACT "testpwd"
/* Action to change password */
#define SFLC_CLI_CHANGEPWDACT "changepwd"
/*****************************************************
* PUBLIC FUNCTIONS PROTOTYPES *
*****************************************************/
/* Called by the main to parse the arguments and dispatch to the right command */
int sflc_cli_dispatch(int argc, char **argv);
/* Initializes device and create empty volumes */
int sflc_cli_init(char *block_device, int sflc_mode, int num_volumes, int skip_randfill);
/* Open volumes */
int sflc_cli_open(char *block_device, int sflc_mode, bool use_read_queue, bool use_write_queue);
/* Close volumes */
int sflc_cli_close(char *block_device);
/* Test password */
int sflc_cli_testPwd(char *block_device);
/* Change password */
int sflc_cli_changePwd(char *block_device);
#endif /* _CLI_H_ */