mirror of
https://github.com/LadybirdBrowser/ladybird.git
synced 2025-06-03 00:42:54 +00:00
Kernel+keymap+KeyboardMapper: New pledge for getkeymap
This commit is contained in:
parent
272df54a3e
commit
cbee0c26e1
Notes:
sideshowbarker
2024-07-18 22:40:02 +09:00
Author: https://github.com/BenWiederhake
Commit: cbee0c26e1
Pull-request: https://github.com/SerenityOS/serenity/pull/5192
Reviewed-by: https://github.com/awesomekling
Reviewed-by: https://github.com/bcoles
Reviewed-by: https://github.com/emanuele6
Reviewed-by: https://github.com/linusg
4 changed files with 11 additions and 5 deletions
|
@ -82,7 +82,8 @@ extern VirtualAddress g_return_to_ring3_from_signal_trampoline;
|
||||||
__ENUMERATE_PLEDGE_PROMISE(settime) \
|
__ENUMERATE_PLEDGE_PROMISE(settime) \
|
||||||
__ENUMERATE_PLEDGE_PROMISE(sigaction) \
|
__ENUMERATE_PLEDGE_PROMISE(sigaction) \
|
||||||
__ENUMERATE_PLEDGE_PROMISE(setkeymap) \
|
__ENUMERATE_PLEDGE_PROMISE(setkeymap) \
|
||||||
__ENUMERATE_PLEDGE_PROMISE(prot_exec)
|
__ENUMERATE_PLEDGE_PROMISE(prot_exec) \
|
||||||
|
__ENUMERATE_PLEDGE_PROMISE(getkeymap)
|
||||||
|
|
||||||
enum class Pledge : u32 {
|
enum class Pledge : u32 {
|
||||||
#define __ENUMERATE_PLEDGE_PROMISE(x) x,
|
#define __ENUMERATE_PLEDGE_PROMISE(x) x,
|
||||||
|
|
|
@ -69,7 +69,7 @@ int Process::sys$setkeymap(Userspace<const Syscall::SC_setkeymap_params*> user_p
|
||||||
|
|
||||||
int Process::sys$getkeymap(Userspace<const Syscall::SC_getkeymap_params*> user_params)
|
int Process::sys$getkeymap(Userspace<const Syscall::SC_getkeymap_params*> user_params)
|
||||||
{
|
{
|
||||||
REQUIRE_PROMISE(stdio);
|
REQUIRE_PROMISE(getkeymap);
|
||||||
|
|
||||||
Syscall::SC_getkeymap_params params;
|
Syscall::SC_getkeymap_params params;
|
||||||
if (!copy_from_user(¶ms, user_params))
|
if (!copy_from_user(¶ms, user_params))
|
||||||
|
|
|
@ -40,14 +40,14 @@ int main(int argc, char** argv)
|
||||||
args_parser.add_positional_argument(path, "Keyboard character mapping file.", "file", Core::ArgsParser::Required::No);
|
args_parser.add_positional_argument(path, "Keyboard character mapping file.", "file", Core::ArgsParser::Required::No);
|
||||||
args_parser.parse(argc, argv);
|
args_parser.parse(argc, argv);
|
||||||
|
|
||||||
if (pledge("stdio thread rpath accept cpath wpath recvfd sendfd unix fattr", nullptr) < 0) {
|
if (pledge("stdio getkeymap thread rpath accept cpath wpath recvfd sendfd unix fattr", nullptr) < 0) {
|
||||||
perror("pledge");
|
perror("pledge");
|
||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
auto app = GUI::Application::construct(argc, argv);
|
auto app = GUI::Application::construct(argc, argv);
|
||||||
|
|
||||||
if (pledge("stdio thread rpath accept cpath wpath recvfd sendfd", nullptr) < 0) {
|
if (pledge("stdio getkeymap thread rpath accept cpath wpath recvfd sendfd", nullptr) < 0) {
|
||||||
perror("pledge");
|
perror("pledge");
|
||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
|
@ -69,6 +69,11 @@ int main(int argc, char** argv)
|
||||||
keyboard_mapper_widget->load_from_system();
|
keyboard_mapper_widget->load_from_system();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (pledge("stdio thread rpath accept cpath wpath recvfd sendfd", nullptr) < 0) {
|
||||||
|
perror("pledge");
|
||||||
|
return 1;
|
||||||
|
}
|
||||||
|
|
||||||
// Actions
|
// Actions
|
||||||
auto open_action = GUI::CommonActions::make_open_action(
|
auto open_action = GUI::CommonActions::make_open_action(
|
||||||
[&](auto&) {
|
[&](auto&) {
|
||||||
|
|
|
@ -32,7 +32,7 @@
|
||||||
|
|
||||||
int main(int argc, char** argv)
|
int main(int argc, char** argv)
|
||||||
{
|
{
|
||||||
if (pledge("stdio setkeymap rpath", nullptr) < 0) {
|
if (pledge("stdio setkeymap getkeymap rpath", nullptr) < 0) {
|
||||||
perror("pledge");
|
perror("pledge");
|
||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue