Bootloader: replace blacklist with blocklist

Various projects, both commercial and OSS, began to use inclusive
terminology. There is no reason to not do it.

In Haiku, bootloader uses Blacklist, which is recommended to replace
with Denylist or Blocklist. I think Blocklist is appropriate here,
since it's a list used to block offending driver at boot.

Some strings remain unchanged for compatibility with previous naming,
but this change prepares for later removal of these (once everyone has
updated their kernel and bootloader).

Change-Id: Id9105ff5e9fcb866000355089b5ef97bf63ee854
Reviewed-on: https://review.haiku-os.org/c/haiku/+/3145
Reviewed-by: Adrien Destugues <pulkomandy@gmail.com>
This commit is contained in:
Murai Takashi 2020-08-12 12:04:20 +09:00 committed by Adrien Destugues
parent a78899d40a
commit 560961ee2a
13 changed files with 162 additions and 145 deletions

View File

@ -2,8 +2,8 @@
* Copyright 2013, Ingo Weinhold, ingo_weinhold@gmx.de.
* Distributed under the terms of the MIT License.
*/
#ifndef KERNEL_BOOT_PATH_BLACKLIST_H
#define KERNEL_BOOT_PATH_BLACKLIST_H
#ifndef KERNEL_BOOT_PATH_BLOCKLIST_H
#define KERNEL_BOOT_PATH_BLOCKLIST_H
#include <string.h>
@ -11,10 +11,10 @@
#include <util/SinglyLinkedList.h>
class BlacklistedPath : public SinglyLinkedListLinkImpl<BlacklistedPath> {
class BlockedPath : public SinglyLinkedListLinkImpl<BlockedPath> {
public:
BlacklistedPath();
~BlacklistedPath();
BlockedPath();
~BlockedPath();
bool SetTo(const char* path);
@ -39,13 +39,13 @@ private:
};
class PathBlacklist {
class PathBlocklist {
public:
typedef SinglyLinkedList<BlacklistedPath>::Iterator Iterator;
typedef SinglyLinkedList<BlockedPath>::Iterator Iterator;
public:
PathBlacklist();
~PathBlacklist();
PathBlocklist();
~PathBlocklist();
bool Add(const char* path);
void Remove(const char* path);
@ -59,14 +59,14 @@ public:
{ return fPaths.GetIterator(); }
private:
BlacklistedPath* _FindPath(const char* path) const;
BlockedPath* _FindPath(const char* path) const;
private:
typedef SinglyLinkedList<BlacklistedPath> PathList;
typedef SinglyLinkedList<BlockedPath> PathList;
private:
PathList fPaths;
};
#endif // KERNEL_BOOT_PATH_BLACKLIST_H
#endif // KERNEL_BOOT_PATH_BLOCKLIST_H

View File

@ -108,7 +108,7 @@ struct Package::LoaderContentHandler : BPackageContentHandler {
{
if (fErrorOccurred
|| (fLastSettingsEntry != NULL
&& fLastSettingsEntry->IsBlackListed())) {
&& fLastSettingsEntry->IsBlocked())) {
return B_OK;
}
@ -128,7 +128,7 @@ struct Package::LoaderContentHandler : BPackageContentHandler {
if (settingsEntry != NULL) {
fLastSettingsEntry = settingsEntry;
fLastSettingsEntryEntry = entry;
if (fLastSettingsEntry->IsBlackListed())
if (fLastSettingsEntry->IsBlocked())
return B_OK;
}
}
@ -191,7 +191,7 @@ struct Package::LoaderContentHandler : BPackageContentHandler {
{
if (fErrorOccurred
|| (fLastSettingsEntry != NULL
&& fLastSettingsEntry->IsBlackListed())) {
&& fLastSettingsEntry->IsBlocked())) {
return B_OK;
}

View File

@ -16,7 +16,8 @@
#include "DebugSupport.h"
static const char* const kEntryBlacklistParameterName = "EntryBlacklist";
static const char* const kBlockedEntriesParameterName = "BlockedEntries";
static const char* const kLegacyBlockedEntriesParameterName = "EntryBlacklist";
// #pragma mark - PackageSettingsItem
@ -56,10 +57,12 @@ PackageSettingsItem::ApplySettings(const driver_parameter* parameters,
{
for (int i = 0; i < parameterCount; i++) {
const driver_parameter& subParameter = parameters[i];
if (strcmp(subParameter.name, kEntryBlacklistParameterName) != 0)
if (strcmp(subParameter.name, kBlockedEntriesParameterName) != 0
&& strcmp(subParameter.name, kLegacyBlockedEntriesParameterName)
!= 0)
continue;
status_t error = _AddBlackListedEntries(subParameter);
status_t error = _AddBlockedEntries(subParameter);
// abort only in case of serious issues (memory shortage)
if (error == B_NO_MEMORY)
return error;
@ -130,7 +133,7 @@ PackageSettingsItem::FindEntry(Entry* parent, const char* name) const
status_t
PackageSettingsItem::_AddBlackListedEntries(const driver_parameter& parameter)
PackageSettingsItem::_AddBlockedEntries(const driver_parameter& parameter)
{
for (int i = 0; i < parameter.parameter_count; i++) {
Entry* entry;
@ -139,7 +142,7 @@ PackageSettingsItem::_AddBlackListedEntries(const driver_parameter& parameter)
if (error == B_NO_MEMORY)
return error;
entry->SetBlackListed(true);
entry->SetBlocked(true);
}
return B_OK;

View File

@ -23,7 +23,7 @@ public:
:
fParent(parent),
fName(name),
fIsBlackListed(false)
fIsBlocked(false)
{
}
@ -37,14 +37,14 @@ public:
return fName;
}
bool IsBlackListed() const
bool IsBlocked() const
{
return fIsBlackListed;
return fIsBlocked;
}
void SetBlackListed(bool blackListed)
void SetBlocked(bool blocked)
{
fIsBlackListed = blackListed;
fIsBlocked = blocked;
}
Entry*& HashNext()
@ -55,7 +55,7 @@ public:
private:
Entry* fParent;
String fName;
bool fIsBlackListed;
bool fIsBlocked;
Entry* fHashNext;
};
@ -150,7 +150,7 @@ private:
typedef BOpenHashTable<EntryHashDefinition> EntryTable;
private:
status_t _AddBlackListedEntries(
status_t _AddBlockedEntries(
const driver_parameter& parameter);
private:

View File

@ -104,7 +104,7 @@ for platform in [ MultiBootSubDirSetup ] {
BootStaticLibrary [ MultiBootGristFiles boot_loader ] :
PathBlacklist.cpp
PathBlocklist.cpp
elf.cpp
heap.cpp
kernel_args.cpp

View File

@ -4,17 +4,17 @@
*/
#include <boot/PathBlacklist.h>
#include <boot/PathBlocklist.h>
#include <stdlib.h>
#include <algorithm>
// #pragma mark - BlacklistedPath
// #pragma mark - BlockedPath
BlacklistedPath::BlacklistedPath()
BlockedPath::BlockedPath()
:
fPath(NULL),
fLength(0),
@ -23,14 +23,14 @@ BlacklistedPath::BlacklistedPath()
}
BlacklistedPath::~BlacklistedPath()
BlockedPath::~BlockedPath()
{
free(fPath);
}
bool
BlacklistedPath::SetTo(const char* path)
BlockedPath::SetTo(const char* path)
{
size_t length = strlen(path);
if (length > 0 && path[length - 1] == '/')
@ -49,7 +49,7 @@ BlacklistedPath::SetTo(const char* path)
bool
BlacklistedPath::Append(const char* component)
BlockedPath::Append(const char* component)
{
size_t componentLength = strlen(component);
if (componentLength > 0 && component[componentLength - 1] == '/')
@ -70,7 +70,7 @@ BlacklistedPath::Append(const char* component)
bool
BlacklistedPath::_Resize(size_t length, bool keepData)
BlockedPath::_Resize(size_t length, bool keepData)
{
if (length == 0) {
free(fPath);
@ -109,71 +109,71 @@ BlacklistedPath::_Resize(size_t length, bool keepData)
}
// #pragma mark - PathBlacklist
// #pragma mark - PathBlocklist
PathBlacklist::PathBlacklist()
PathBlocklist::PathBlocklist()
{
}
PathBlacklist::~PathBlacklist()
PathBlocklist::~PathBlocklist()
{
MakeEmpty();
}
bool
PathBlacklist::Add(const char* path)
PathBlocklist::Add(const char* path)
{
BlacklistedPath* blacklistedPath = _FindPath(path);
if (blacklistedPath != NULL)
BlockedPath* blockedPath = _FindPath(path);
if (blockedPath != NULL)
return true;
blacklistedPath = new(std::nothrow) BlacklistedPath;
if (blacklistedPath == NULL || !blacklistedPath->SetTo(path)) {
delete blacklistedPath;
blockedPath = new(std::nothrow) BlockedPath;
if (blockedPath == NULL || !blockedPath->SetTo(path)) {
delete blockedPath;
return false;
}
fPaths.Add(blacklistedPath);
fPaths.Add(blockedPath);
return true;
}
void
PathBlacklist::Remove(const char* path)
PathBlocklist::Remove(const char* path)
{
BlacklistedPath* blacklistedPath = _FindPath(path);
if (blacklistedPath != NULL) {
fPaths.Remove(blacklistedPath);
delete blacklistedPath;
BlockedPath* blockedPath = _FindPath(path);
if (blockedPath != NULL) {
fPaths.Remove(blockedPath);
delete blockedPath;
}
}
bool
PathBlacklist::Contains(const char* path) const
PathBlocklist::Contains(const char* path) const
{
return _FindPath(path) != NULL;
}
void
PathBlacklist::MakeEmpty()
PathBlocklist::MakeEmpty()
{
while (BlacklistedPath* blacklistedPath = fPaths.RemoveHead())
delete blacklistedPath;
while (BlockedPath* blockedPath = fPaths.RemoveHead())
delete blockedPath;
}
BlacklistedPath*
PathBlacklist::_FindPath(const char* path) const
BlockedPath*
PathBlocklist::_FindPath(const char* path) const
{
for (PathList::Iterator it = fPaths.GetIterator(); it.HasNext();) {
BlacklistedPath* blacklistedPath = it.Next();
if (*blacklistedPath == path)
return blacklistedPath;
BlockedPath* blockedPath = it.Next();
if (*blockedPath == path)
return blockedPath;
}
return NULL;

View File

@ -90,7 +90,7 @@ PackageSettingsItem::Init(const driver_parameter& parameter)
if (strcmp(subParameter.name, "EntryBlacklist") != 0)
continue;
status_t error = _AddBlackListedEntries(subParameter);
status_t error = _AddBlockedEntries(subParameter);
// abort only in case of serious issues (memory shortage)
if (error == B_NO_MEMORY)
return error;
@ -163,7 +163,7 @@ PackageSettingsItem::FindEntry(Entry* parent, const char* name,
status_t
PackageSettingsItem::_AddBlackListedEntries(const driver_parameter& parameter)
PackageSettingsItem::_AddBlockedEntries(const driver_parameter& parameter)
{
for (int i = 0; i < parameter.parameter_count; i++) {
Entry* entry;
@ -172,7 +172,7 @@ PackageSettingsItem::_AddBlackListedEntries(const driver_parameter& parameter)
if (error == B_NO_MEMORY)
return error;
entry->SetBlackListed(true);
entry->SetBlocked(true);
}
return B_OK;

View File

@ -27,7 +27,7 @@ public:
:
fParent(parent),
fName(NULL),
fIsBlackListed(false),
fIsBlocked(false),
fHashNext(NULL)
{
}
@ -58,14 +58,14 @@ public:
return fName;
}
bool IsBlackListed() const
bool IsBlocked() const
{
return fIsBlackListed;
return fIsBlocked;
}
void SetBlackListed(bool blackListed)
void SetBlocked(bool blocked)
{
fIsBlackListed = blackListed;
fIsBlocked = blocked;
}
Entry*& HashNext()
@ -76,7 +76,7 @@ public:
private:
Entry* fParent;
char* fName;
bool fIsBlackListed;
bool fIsBlocked;
Entry* fHashNext;
};
@ -176,7 +176,7 @@ private:
typedef BOpenHashTable<EntryHashDefinition> EntryTable;
private:
status_t _AddBlackListedEntries(
status_t _AddBlockedEntries(
const driver_parameter& parameter);
private:

View File

@ -24,7 +24,7 @@
#include <Referenceable.h>
#include <boot/PathBlacklist.h>
#include <boot/PathBlocklist.h>
#include <boot/platform.h>
#include "PackageSettingsItem.h"
@ -390,7 +390,7 @@ struct PackageLoaderContentHandler : BPackageContentHandler {
{
if (fErrorOccurred
|| (fLastSettingsEntry != NULL
&& fLastSettingsEntry->IsBlackListed())) {
&& fLastSettingsEntry->IsBlocked())) {
return B_OK;
}
@ -411,7 +411,7 @@ struct PackageLoaderContentHandler : BPackageContentHandler {
if (settingsEntry != NULL) {
fLastSettingsEntry = settingsEntry;
fLastSettingsEntryEntry = entry;
if (fLastSettingsEntry->IsBlackListed())
if (fLastSettingsEntry->IsBlocked())
return B_OK;
}
}
@ -885,14 +885,14 @@ packagefs_mount_file(int fd, ::Directory* systemDirectory,
void
packagefs_apply_path_blacklist(::Directory* systemDirectory,
const PathBlacklist& pathBlacklist)
packagefs_apply_path_blocklist(::Directory* systemDirectory,
const PathBlocklist& pathBlocklist)
{
PackageFS::Directory* directory
= static_cast<PackageFS::Directory*>(systemDirectory);
for (PathBlacklist::Iterator it = pathBlacklist.GetIterator();
BlacklistedPath* path = it.Next();) {
for (PathBlocklist::Iterator it = pathBlocklist.GetIterator();
BlockedPath* path = it.Next();) {
directory->RemoveEntry(path->Path());
}
}

View File

@ -11,7 +11,7 @@
#include <SupportDefs.h>
class PathBlacklist;
class PathBlocklist;
class Directory;
class Node;
@ -19,8 +19,8 @@ class Node;
status_t packagefs_mount_file(int fd, Directory* systemDirectory,
Directory*& _mountedDirectory);
void packagefs_apply_path_blacklist(Directory* systemDirectory,
const PathBlacklist& pathBlacklist);
void packagefs_apply_path_blocklist(Directory* systemDirectory,
const PathBlocklist& pathBlocklist);
#endif // BOOT_LOADER_FILE_SYSTEMS_PACKAGEFS_H

View File

@ -12,7 +12,7 @@
#include <boot/vfs.h>
#include <boot/platform.h>
#include <boot/heap.h>
#include <boot/PathBlacklist.h>
#include <boot/PathBlocklist.h>
#include <boot/stdio.h>
#include <boot/net/NetStack.h>
@ -62,7 +62,7 @@ main(stage2_args *args)
bool mountedAllVolumes = false;
BootVolume bootVolume;
PathBlacklist pathBlacklist;
PathBlocklist pathBlocklist;
if (get_boot_file_system(args, bootVolume) != B_OK
|| (platform_boot_options() & BOOT_OPTION_MENU) != 0) {
@ -79,7 +79,7 @@ main(stage2_args *args)
mountedAllVolumes = true;
if (user_menu(bootVolume, pathBlacklist) < B_OK) {
if (user_menu(bootVolume, pathBlocklist) < B_OK) {
// user requested to quit the loader
goto out;
}
@ -103,7 +103,7 @@ main(stage2_args *args)
mountedAllVolumes = true;
}
if (user_menu(bootVolume, pathBlacklist) != B_OK
if (user_menu(bootVolume, pathBlocklist) != B_OK
|| !bootVolume.IsValid()) {
// user requested to quit the loader
goto out;
@ -115,8 +115,8 @@ main(stage2_args *args)
// know our boot volume, too
if (status == B_OK) {
if (bootVolume.IsPackaged()) {
packagefs_apply_path_blacklist(bootVolume.SystemDirectory(),
pathBlacklist);
packagefs_apply_path_blocklist(bootVolume.SystemDirectory(),
pathBlocklist);
}
register_boot_file_system(bootVolume);

View File

@ -17,7 +17,7 @@
#include <AutoDeleter.h>
#include <boot/menu.h>
#include <boot/PathBlacklist.h>
#include <boot/PathBlocklist.h>
#include <boot/stage2.h>
#include <boot/vfs.h>
#include <boot/platform.h>
@ -46,9 +46,9 @@
// only set while in user_menu()
static Menu* sMainMenu = NULL;
static Menu* sBlacklistRootMenu = NULL;
static Menu* sBlocklistRootMenu = NULL;
static BootVolume* sBootVolume = NULL;
static PathBlacklist* sPathBlacklist;
static PathBlocklist* sPathBlocklist;
MenuItem::MenuItem(const char *label, Menu *subMenu)
@ -518,12 +518,12 @@ size_to_string(off_t size, char* buffer, size_t bufferSize)
}
// #pragma mark - blacklist menu
// #pragma mark - blocklist menu
class BlacklistMenuItem : public MenuItem {
class BlocklistMenuItem : public MenuItem {
public:
BlacklistMenuItem(char* label, Node* node, Menu* subMenu)
BlocklistMenuItem(char* label, Node* node, Menu* subMenu)
:
MenuItem(label, subMenu),
fNode(node),
@ -533,7 +533,7 @@ public:
SetType(MENU_ITEM_MARKABLE);
}
~BlacklistMenuItem()
~BlocklistMenuItem()
{
fNode->Release();
@ -546,12 +546,12 @@ public:
return fNode->Type() == S_IFDIR;
}
bool GetPath(BlacklistedPath& _path) const
bool GetPath(BlockedPath& _path) const
{
Menu* menu = Supermenu();
if (menu != NULL && menu != sBlacklistRootMenu
if (menu != NULL && menu != sBlocklistRootMenu
&& menu->Superitem() != NULL) {
return static_cast<BlacklistMenuItem*>(menu->Superitem())
return static_cast<BlocklistMenuItem*>(menu->Superitem())
->GetPath(_path)
&& _path.Append(Label());
}
@ -559,11 +559,11 @@ public:
return _path.SetTo(Label());
}
void UpdateBlacklisted()
void UpdateBlocked()
{
BlacklistedPath path;
BlockedPath path;
if (GetPath(path))
_SetMarked(sPathBlacklist->Contains(path.Path()), false);
_SetMarked(sPathBlocklist->Contains(path.Path()), false);
}
virtual void SetMarked(bool marked)
@ -573,10 +573,10 @@ public:
static bool Less(const MenuItem* a, const MenuItem* b)
{
const BlacklistMenuItem* item1
= static_cast<const BlacklistMenuItem*>(a);
const BlacklistMenuItem* item2
= static_cast<const BlacklistMenuItem*>(b);
const BlocklistMenuItem* item1
= static_cast<const BlocklistMenuItem*>(a);
const BlocklistMenuItem* item2
= static_cast<const BlocklistMenuItem*>(b);
// directories come first
if (item1->IsDirectoryItem() != item2->IsDirectoryItem())
@ -587,7 +587,7 @@ public:
}
private:
void _SetMarked(bool marked, bool updateBlacklist)
void _SetMarked(bool marked, bool updateBlocklist)
{
if (marked == IsMarked())
return;
@ -596,13 +596,13 @@ private:
if (IsDirectoryItem())
SetSubmenu(marked ? NULL : fSubMenu);
if (updateBlacklist) {
BlacklistedPath path;
if (updateBlocklist) {
BlockedPath path;
if (GetPath(path)) {
if (marked)
sPathBlacklist->Add(path.Path());
sPathBlocklist->Add(path.Path());
else
sPathBlacklist->Remove(path.Path());
sPathBlocklist->Remove(path.Path());
}
}
@ -615,16 +615,16 @@ private:
};
class BlacklistMenu : public Menu {
class BlocklistMenu : public Menu {
public:
BlacklistMenu()
BlocklistMenu()
:
Menu(STANDARD_MENU, kDefaultMenuTitle),
fDirectory(NULL)
{
}
~BlacklistMenu()
~BlocklistMenu()
{
SetDirectory(NULL);
}
@ -638,19 +638,19 @@ public:
if (fDirectory->Open(&cookie, O_RDONLY) == B_OK) {
Node* node;
while (fDirectory->GetNextNode(cookie, &node) == B_OK) {
BlacklistMenuItem* item = _CreateItem(node);
BlocklistMenuItem* item = _CreateItem(node);
node->Release();
if (item == NULL)
break;
AddItem(item);
item->UpdateBlacklisted();
item->UpdateBlocked();
}
fDirectory->Close(cookie);
}
SortItems(&BlacklistMenuItem::Less);
SortItems(&BlocklistMenuItem::Less);
}
if (CountItems() > 0)
@ -676,7 +676,7 @@ protected:
}
private:
static BlacklistMenuItem* _CreateItem(Node* node)
static BlocklistMenuItem* _CreateItem(Node* node)
{
// Get the node name and duplicate it, so we can use it as a label.
char name[B_FILE_NAME_LENGTH];
@ -689,17 +689,17 @@ private:
strlcat(name, "/", sizeof(name));
// If this is a directory, create the submenu.
BlacklistMenu* subMenu = NULL;
BlocklistMenu* subMenu = NULL;
if (isDirectory) {
subMenu = new(std::nothrow) BlacklistMenu;
subMenu = new(std::nothrow) BlocklistMenu;
if (subMenu != NULL)
subMenu->SetDirectory(static_cast<Directory*>(node));
}
ObjectDeleter<BlacklistMenu> subMenuDeleter(subMenu);
ObjectDeleter<BlocklistMenu> subMenuDeleter(subMenu);
// create the menu item
BlacklistMenuItem* item = new(std::nothrow) BlacklistMenuItem(name,
BlocklistMenuItem* item = new(std::nothrow) BlocklistMenuItem(name,
node, subMenu);
if (item == NULL)
return NULL;
@ -723,22 +723,22 @@ protected:
};
const char* const BlacklistMenu::kDefaultMenuTitle
= "Mark the entries to blacklist";
const char* const BlocklistMenu::kDefaultMenuTitle
= "Mark the entries to blocklist";
class BlacklistRootMenu : public BlacklistMenu {
class BlocklistRootMenu : public BlocklistMenu {
public:
BlacklistRootMenu()
BlocklistRootMenu()
:
BlacklistMenu()
BlocklistMenu()
{
}
virtual void Entered()
{
// Get the system directory, but only if this is a packaged Haiku.
// Otherwise blacklisting isn't supported.
// Otherwise blocklisting isn't supported.
if (sBootVolume != NULL && sBootVolume->IsValid()
&& sBootVolume->IsPackaged()) {
SetDirectory(sBootVolume->SystemDirectory());
@ -746,11 +746,11 @@ public:
} else {
SetDirectory(NULL);
SetTitle(sBootVolume != NULL && sBootVolume->IsValid()
? "The selected boot volume doesn't support blacklisting!"
? "The selected boot volume doesn't support blocklisting!"
: "No boot volume selected!");
}
BlacklistMenu::Entered();
BlocklistMenu::Entered();
// rename last item
if (MenuItem* item = ItemAt(CountItems() - 1))
@ -759,7 +759,7 @@ public:
virtual void Exited()
{
BlacklistMenu::Exited();
BlocklistMenu::Exited();
SetDirectory(NULL);
}
};
@ -952,7 +952,7 @@ user_menu_boot_volume(Menu* menu, MenuItem* item)
if (sBootVolume->IsValid() && sBootVolume->RootDirectory() == item->Data())
return true;
sPathBlacklist->MakeEmpty();
sPathBlocklist->MakeEmpty();
status_t status = sBootVolume->SetTo((Directory*)item->Data());
update_continue_booting_menu_item(status);
@ -978,7 +978,7 @@ user_menu_boot_volume_state(Menu* menu, MenuItem* _item)
volumeItem->Select(true);
volumeItem->UpdateStateName(item->VolumeState());
sPathBlacklist->MakeEmpty();
sPathBlocklist->MakeEmpty();
status_t status = sBootVolume->SetTo((Directory*)item->Data(),
item->VolumeInfo(), item->VolumeState());
@ -1336,9 +1336,9 @@ add_safe_mode_menu()
platform_add_menus(safeMenu);
safeMenu->AddSeparatorItem();
sBlacklistRootMenu = new(std::nothrow) BlacklistRootMenu;
safeMenu->AddItem(item = new(std::nothrow) MenuItem("Blacklist entries",
sBlacklistRootMenu));
sBlocklistRootMenu = new(std::nothrow) BlocklistRootMenu;
safeMenu->AddItem(item = new(std::nothrow) MenuItem("Blocklist entries",
sBlocklistRootMenu));
item->SetHelpText("Allows to select system files that shall be ignored. "
"Useful e.g. to disable drivers temporarily.");
@ -1542,15 +1542,29 @@ apply_safe_mode_options(Menu* menu)
static void
apply_safe_mode_path_blacklist()
apply_safe_mode_path_blocklist()
{
if (sPathBlacklist->IsEmpty())
if (sPathBlocklist->IsEmpty())
return;
bool success = sSafeModeOptionsBuffer.Append("EntryBlacklist {\n");
bool success = sSafeModeOptionsBuffer.Append("BlockedEntries {\n");
for (PathBlacklist::Iterator it = sPathBlacklist->GetIterator();
BlacklistedPath* path = it.Next();) {
for (PathBlocklist::Iterator it = sPathBlocklist->GetIterator();
BlockedPath* path = it.Next();) {
success &= sSafeModeOptionsBuffer.Append(path->Path());
success &= sSafeModeOptionsBuffer.Append("\n", 1);
}
success &= sSafeModeOptionsBuffer.Append("}\n");
// Append the option a second time using the legacy name, so it also works
// for older kernel.
// TODO remove this after R1 beta3 is released and no one is using older
// kernels anymore.
success &= sSafeModeOptionsBuffer.Append("EntryBlacklist {\n");
for (PathBlocklist::Iterator it = sPathBlocklist->GetIterator();
BlockedPath* path = it.Next();) {
success &= sSafeModeOptionsBuffer.Append(path->Path());
success &= sSafeModeOptionsBuffer.Append("\n", 1);
}
@ -1559,7 +1573,7 @@ apply_safe_mode_path_blacklist()
if (!success) {
dprintf("apply_safe_mode_options(): failed to append path "
"blacklist to buffer\n");
"blocklist to buffer\n");
}
}
@ -1573,14 +1587,14 @@ user_menu_reboot(Menu* menu, MenuItem* item)
status_t
user_menu(BootVolume& _bootVolume, PathBlacklist& _pathBlacklist)
user_menu(BootVolume& _bootVolume, PathBlocklist& _pathBlocklist)
{
Menu* menu = new(std::nothrow) Menu(MAIN_MENU);
sMainMenu = menu;
sBootVolume = &_bootVolume;
sPathBlacklist = &_pathBlacklist;
sPathBlocklist = &_pathBlocklist;
Menu* safeModeMenu = NULL;
Menu* debugMenu = NULL;
@ -1621,7 +1635,7 @@ user_menu(BootVolume& _bootVolume, PathBlacklist& _pathBlacklist)
apply_safe_mode_options(safeModeMenu);
apply_safe_mode_options(debugMenu);
apply_safe_mode_path_blacklist();
apply_safe_mode_path_blocklist();
add_safe_mode_settings(sSafeModeOptionsBuffer.String());
delete menu;
@ -1629,8 +1643,8 @@ user_menu(BootVolume& _bootVolume, PathBlacklist& _pathBlacklist)
TRACE(("user_menu: leave\n"));
sMainMenu = NULL;
sBlacklistRootMenu = NULL;
sBlocklistRootMenu = NULL;
sBootVolume = NULL;
sPathBlacklist = NULL;
sPathBlocklist = NULL;
return B_OK;
}

View File

@ -9,11 +9,11 @@
#include <boot/vfs.h>
class PathBlacklist;
class PathBlocklist;
extern status_t user_menu(BootVolume& _bootVolume,
PathBlacklist& _pathBlacklist);
PathBlocklist& _pathBlocklist);
#endif /* MENU_H */