xref: /aosp_15_r20/external/gptfdisk/gptcl.h (revision 57696d54d05c64fd1b1787f8371dbcf104911cfb)
1 /*
2     Implementation of GPTData class derivative with popt-based command
3     line processing
4     Copyright (C) 2010-2022 Roderick W. Smith
5 
6     This program is free software; you can redistribute it and/or modify
7     it under the terms of the GNU General Public License as published by
8     the Free Software Foundation; either version 2 of the License, or
9     (at your option) any later version.
10 
11     This program is distributed in the hope that it will be useful,
12     but WITHOUT ANY WARRANTY; without even the implied warranty of
13     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
14     GNU General Public License for more details.
15 
16     You should have received a copy of the GNU General Public License along
17     with this program; if not, write to the Free Software Foundation, Inc.,
18     51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
19 
20 */
21 
22 #ifndef __GPTCL_H
23 #define __GPTCL_H
24 
25 #include "gpt.h"
26 #include <popt.h>
27 #include <map>
28 
29 class GPTDataCL : public GPTData {
30    protected:
31       // Following are variables associated with popt parameters....
32       char *attributeOperation, *backupFile, *partName, *hybrids;
33       char *newPartInfo, *mbrParts, *twoParts, *outDevice, *typeCode;
34       char *partGUID, *diskGUID;
35       int alignment, deletePartNum, infoPartNum, largestPartNum, bsdPartNum;
36       bool alignEnd;
37       uint32_t tableSize;
38       poptContext poptCon;
39       std::map<int, char> typeRaw;
40 
41       int BuildMBR(char* argument, int isHybrid);
42    public:
43       GPTDataCL(void);
44       GPTDataCL(std::string filename);
45       ~GPTDataCL(void);
46       void LoadBackupFile(std::string backupFile, int &saveData, int &neverSaveData);
47       int DoOptions(int argc, char* argv[]);
48 }; // class GPTDataCL
49 
50 int CountColons(char* argument);
51 uint64_t GetInt(const std::string & argument, int itemNum);
52 std::string GetString(std::string argument, int itemNum);
53 
54 #endif
55