Android-x86
Fork
Donation

  • R/O
  • HTTP
  • SSH
  • HTTPS

system-vold: Commit

system/vold


Commit MetaInfo

Revision1a6fe4a008591c35c476c4f95ff18532341fb8a9 (tree)
Time2019-12-17 14:19:56
AuthorChih-Wei Huang <cwhuang@linu...>
CommiterChih-Wei Huang

Log Message

Move kMajor* constants to a header file

Currently each cpp defines its own kMajor* that can't be shared.
Move the kMajor* to a header to avoid duplicate definitions.

Change isVirtioBlkDevice() to be a public static method of Disk
so that the logic could be shared as well.

Change Summary

Incremental Difference

--- a/VolumeManager.cpp
+++ b/VolumeManager.cpp
@@ -94,10 +94,6 @@ static const std::string kEmptyString("");
9494 /* 512MiB is large enough for testing purposes */
9595 static const unsigned int kSizeVirtualDisk = 536870912;
9696
97-static const unsigned int kMajorBlockMmc = 179;
98-static const unsigned int kMajorBlockExperimentalMin = 240;
99-static const unsigned int kMajorBlockExperimentalMax = 254;
100-
10197 VolumeManager* VolumeManager::sInstance = NULL;
10298
10399 VolumeManager* VolumeManager::Instance() {
@@ -218,9 +214,8 @@ void VolumeManager::handleBlockEvent(NetlinkEvent* evt) {
218214 // emulator-specific; see Disk.cpp for details) devices are SD,
219215 // and that everything else is USB
220216 int flags = source->getFlags();
221- if (major == kMajorBlockMmc || (android::vold::IsRunningInEmulator() &&
222- major >= (int)kMajorBlockExperimentalMin &&
223- major <= (int)kMajorBlockExperimentalMax)) {
217+ if (major == android::vold::Disk::kMajorBlockMmc ||
218+ android::vold::Disk::isVirtioBlkDevice(major)) {
224219 flags |= android::vold::Disk::Flags::kSd;
225220 } else {
226221 flags |= android::vold::Disk::Flags::kUsb;
--- a/model/Disk.cpp
+++ b/model/Disk.cpp
@@ -56,29 +56,6 @@ static const char* kSysfsLoopMaxMinors = "/sys/module/loop/parameters/max_part";
5656 static const char* kSysfsMmcMaxMinorsDeprecated = "/sys/module/mmcblk/parameters/perdev_minors";
5757 static const char* kSysfsMmcMaxMinors = "/sys/module/mmc_block/parameters/perdev_minors";
5858
59-static const unsigned int kMajorBlockLoop = 7;
60-static const unsigned int kMajorBlockScsiA = 8;
61-static const unsigned int kMajorBlockScsiB = 65;
62-static const unsigned int kMajorBlockScsiC = 66;
63-static const unsigned int kMajorBlockScsiD = 67;
64-static const unsigned int kMajorBlockScsiE = 68;
65-static const unsigned int kMajorBlockScsiF = 69;
66-static const unsigned int kMajorBlockScsiG = 70;
67-static const unsigned int kMajorBlockScsiH = 71;
68-static const unsigned int kMajorBlockScsiI = 128;
69-static const unsigned int kMajorBlockScsiJ = 129;
70-static const unsigned int kMajorBlockScsiK = 130;
71-static const unsigned int kMajorBlockScsiL = 131;
72-static const unsigned int kMajorBlockScsiM = 132;
73-static const unsigned int kMajorBlockScsiN = 133;
74-static const unsigned int kMajorBlockScsiO = 134;
75-static const unsigned int kMajorBlockScsiP = 135;
76-static const unsigned int kMajorBlockMmc = 179;
77-static const unsigned int kMajorBlockExperimentalMin = 240;
78-static const unsigned int kMajorBlockExperimentalMax = 254;
79-static const unsigned int kMajorBlockDynamicMin = 234;
80-static const unsigned int kMajorBlockDynamicMax = 512;
81-
8259 static const char* kGptBasicData = "EBD0A0A2-B9E5-4433-87C0-68B6B72699C7";
8360 static const char* kGptAndroidMeta = "19A710A2-B3CA-11E4-B026-10604B889DCF";
8461 static const char* kGptAndroidExpand = "193D1EA4-B3CA-11E4-B075-10604B889DCF";
@@ -89,7 +66,7 @@ enum class Table {
8966 kGpt,
9067 };
9168
92-static bool isVirtioBlkDevice(unsigned int major) {
69+bool Disk::isVirtioBlkDevice(unsigned int major) {
9370 /*
9471 * The new emulator's "ranchu" virtual board no longer includes a goldfish
9572 * MMC-based SD card device; instead, it emulates SD cards with virtio-blk,
@@ -117,8 +94,8 @@ static bool isVirtioBlkDevice(unsigned int major) {
11794 }
11895
11996 static bool isNvmeBlkDevice(unsigned int major, const std::string& sysPath) {
120- return sysPath.find("nvme") != std::string::npos && major >= kMajorBlockDynamicMin &&
121- major <= kMajorBlockDynamicMax;
97+ return sysPath.find("nvme") != std::string::npos && major >= Disk::kMajorBlockDynamicMin &&
98+ major <= Disk::kMajorBlockDynamicMax;
12299 }
123100
124101 Disk::Disk(const std::string& eventPath, dev_t device, const std::string& nickname, int flags)
--- a/model/Disk.h
+++ b/model/Disk.h
@@ -40,6 +40,31 @@ class Disk {
4040 Disk(const std::string& eventPath, dev_t device, const std::string& nickname, int flags);
4141 virtual ~Disk();
4242
43+ enum {
44+ kMajorBlockLoop = 7,
45+ kMajorBlockScsiA = 8,
46+ kMajorBlockScsiB = 65,
47+ kMajorBlockScsiC = 66,
48+ kMajorBlockScsiD = 67,
49+ kMajorBlockScsiE = 68,
50+ kMajorBlockScsiF = 69,
51+ kMajorBlockScsiG = 70,
52+ kMajorBlockScsiH = 71,
53+ kMajorBlockScsiI = 128,
54+ kMajorBlockScsiJ = 129,
55+ kMajorBlockScsiK = 130,
56+ kMajorBlockScsiL = 131,
57+ kMajorBlockScsiM = 132,
58+ kMajorBlockScsiN = 133,
59+ kMajorBlockScsiO = 134,
60+ kMajorBlockScsiP = 135,
61+ kMajorBlockMmc = 179,
62+ kMajorBlockExperimentalMin = 240,
63+ kMajorBlockExperimentalMax = 254,
64+ kMajorBlockDynamicMin = 234,
65+ kMajorBlockDynamicMax = 512,
66+ };
67+
4368 enum Flags {
4469 /* Flag that disk is adoptable */
4570 kAdoptable = 1 << 0,
@@ -81,6 +106,8 @@ class Disk {
81106 virtual status_t partitionPrivate();
82107 virtual status_t partitionMixed(int8_t ratio);
83108
109+ static bool isVirtioBlkDevice(unsigned int major);
110+
84111 protected:
85112 /* ID that uniquely references this disk */
86113 std::string mId;
--- a/model/PrivateVolume.cpp
+++ b/model/PrivateVolume.cpp
@@ -41,8 +41,6 @@ using android::base::StringPrintf;
4141 namespace android {
4242 namespace vold {
4343
44-static const unsigned int kMajorBlockMmc = 179;
45-
4644 PrivateVolume::PrivateVolume(dev_t device, const std::string& keyRaw)
4745 : VolumeBase(Type::kPrivate), mRawDevice(device), mKeyRaw(keyRaw) {
4846 setId(StringPrintf("private:%u,%u", major(device), minor(device)));
@@ -180,7 +178,7 @@ status_t PrivateVolume::doFormat(const std::string& fsType) {
180178 if (fsType == "auto") {
181179 // For now, assume that all MMC devices are flash-based SD cards, and
182180 // give everyone else ext4 because sysfs rotational isn't reliable.
183- if ((major(mRawDevice) == kMajorBlockMmc) && f2fs::IsSupported()) {
181+ if ((major(mRawDevice) == Disk::kMajorBlockMmc) && f2fs::IsSupported()) {
184182 resolvedFsType = "f2fs";
185183 } else {
186184 resolvedFsType = "ext4";
Show on old repository browser