xref: /aosp_15_r20/external/gptfdisk/gpttext.h (revision 57696d54d05c64fd1b1787f8371dbcf104911cfb)
1*57696d54SAkhilesh Sanikop /*
2*57696d54SAkhilesh Sanikop     Implementation of GPTData class derivative with basic text-mode interaction
3*57696d54SAkhilesh Sanikop     Copyright (C) 2010-2022 Roderick W. Smith
4*57696d54SAkhilesh Sanikop 
5*57696d54SAkhilesh Sanikop     This program is free software; you can redistribute it and/or modify
6*57696d54SAkhilesh Sanikop     it under the terms of the GNU General Public License as published by
7*57696d54SAkhilesh Sanikop     the Free Software Foundation; either version 2 of the License, or
8*57696d54SAkhilesh Sanikop     (at your option) any later version.
9*57696d54SAkhilesh Sanikop 
10*57696d54SAkhilesh Sanikop     This program is distributed in the hope that it will be useful,
11*57696d54SAkhilesh Sanikop     but WITHOUT ANY WARRANTY; without even the implied warranty of
12*57696d54SAkhilesh Sanikop     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
13*57696d54SAkhilesh Sanikop     GNU General Public License for more details.
14*57696d54SAkhilesh Sanikop 
15*57696d54SAkhilesh Sanikop     You should have received a copy of the GNU General Public License along
16*57696d54SAkhilesh Sanikop     with this program; if not, write to the Free Software Foundation, Inc.,
17*57696d54SAkhilesh Sanikop     51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
18*57696d54SAkhilesh Sanikop 
19*57696d54SAkhilesh Sanikop */
20*57696d54SAkhilesh Sanikop 
21*57696d54SAkhilesh Sanikop #ifndef __GPTDATATEXT_H
22*57696d54SAkhilesh Sanikop #define __GPTDATATEXT_H
23*57696d54SAkhilesh Sanikop 
24*57696d54SAkhilesh Sanikop #include "gpt.h"
25*57696d54SAkhilesh Sanikop 
26*57696d54SAkhilesh Sanikop class GPTDataTextUI : public GPTData {
27*57696d54SAkhilesh Sanikop    protected:
28*57696d54SAkhilesh Sanikop    public:
29*57696d54SAkhilesh Sanikop       GPTDataTextUI(void);
30*57696d54SAkhilesh Sanikop       GPTDataTextUI(std::string filename);
31*57696d54SAkhilesh Sanikop       ~GPTDataTextUI(void);
32*57696d54SAkhilesh Sanikop 
33*57696d54SAkhilesh Sanikop       // This one needs to be explicitly defined, even though it does nothing new....
34*57696d54SAkhilesh Sanikop //      const GPTPart & operator[](uint32_t partNum) {return GPTData::operator[](partNum);}
35*57696d54SAkhilesh Sanikop 
36*57696d54SAkhilesh Sanikop       // Extended (interactive) versions of some base-class functions
37*57696d54SAkhilesh Sanikop       WhichToUse UseWhichPartitions(void);
38*57696d54SAkhilesh Sanikop       int XFormDisklabel(void);
39*57696d54SAkhilesh Sanikop 
40*57696d54SAkhilesh Sanikop       // Request information from the user (& possibly do something with it)
41*57696d54SAkhilesh Sanikop       uint32_t GetPartNum(void);
42*57696d54SAkhilesh Sanikop       void ResizePartitionTable(void);
43*57696d54SAkhilesh Sanikop       void MoveMainTable(void);
44*57696d54SAkhilesh Sanikop       void CreatePartition(void);
45*57696d54SAkhilesh Sanikop       void DeletePartition(void);
46*57696d54SAkhilesh Sanikop       void ChangePartType(void);
47*57696d54SAkhilesh Sanikop       void ChangeUniqueGuid(void);
48*57696d54SAkhilesh Sanikop       void SetAttributes(uint32_t partNum);
49*57696d54SAkhilesh Sanikop       int SetName(uint32_t partNum);
50*57696d54SAkhilesh Sanikop       void ReverseName(uint32_t partNum);
51*57696d54SAkhilesh Sanikop       int SwapPartitions(void);
52*57696d54SAkhilesh Sanikop       int DestroyGPTwPrompt(void); // Returns 1 if user proceeds
53*57696d54SAkhilesh Sanikop       void ShowDetails(void);
54*57696d54SAkhilesh Sanikop       void MakeHybrid(void);
55*57696d54SAkhilesh Sanikop       int XFormToMBR(void); // convert GPT to MBR, wiping GPT afterwards. Returns 1 if successful
56*57696d54SAkhilesh Sanikop       uint64_t GetSectorNum(uint64_t low, uint64_t high, uint64_t def, const std::string & prompt);
57*57696d54SAkhilesh Sanikop 
58*57696d54SAkhilesh Sanikop       // An informational function....
59*57696d54SAkhilesh Sanikop       void WarnAboutIffyMBRPart(int partNum);
60*57696d54SAkhilesh Sanikop 
61*57696d54SAkhilesh Sanikop       // Main menu functions
62*57696d54SAkhilesh Sanikop       void MainMenu(std::string filename);
63*57696d54SAkhilesh Sanikop       void ShowCommands(void);
64*57696d54SAkhilesh Sanikop       void ExpertsMenu(std::string filename);
65*57696d54SAkhilesh Sanikop       void ShowExpertCommands(void);
66*57696d54SAkhilesh Sanikop       void RecoveryMenu(std::string filename);
67*57696d54SAkhilesh Sanikop       void ShowRecoveryCommands(void);
68*57696d54SAkhilesh Sanikop }; // class GPTDataTextUI
69*57696d54SAkhilesh Sanikop 
70*57696d54SAkhilesh Sanikop int GetMBRTypeCode(int defType);
71*57696d54SAkhilesh Sanikop UnicodeString ReadUString(void);
72*57696d54SAkhilesh Sanikop 
73*57696d54SAkhilesh Sanikop #endif // __GPTDATATEXT_H
74