mirror of
https://github.com/RGBCube/serenity
synced 2025-07-03 05:32:13 +00:00
Kernel+ProcessManager: Let processes have an icon and show it in the table.
Processes can now have an icon assigned, which is essentially a 16x16 RGBA32 bitmap exposed as a shared buffer ID. You set the icon ID by calling set_process_icon(int) and the icon ID will be exposed through /proc/all. To make this work, I added a mechanism for making shared buffers globally accessible. For safety reasons, each app seals the icon buffer before making it global. Right now the first call to GWindow::set_icon() is what determines the process icon. We'll probably change this in the future. :^)
This commit is contained in:
parent
7356fd389f
commit
5ded77df39
14 changed files with 97 additions and 2 deletions
|
@ -299,6 +299,10 @@ static u32 handle(RegisterDump& regs, u32 function, u32 arg1, u32 arg2, u32 arg3
|
|||
return current->process().sys$dump_backtrace();
|
||||
case Syscall::SC_watch_file:
|
||||
return current->process().sys$watch_file((const char*)arg1, (int)arg2);
|
||||
case Syscall::SC_share_buffer_globally:
|
||||
return current->process().sys$share_buffer_globally((int)arg1);
|
||||
case Syscall::SC_set_process_icon:
|
||||
return current->process().sys$set_process_icon((int)arg1);
|
||||
default:
|
||||
kprintf("<%u> int0x82: Unknown function %u requested {%x, %x, %x}\n", current->process().pid(), function, arg1, arg2, arg3);
|
||||
return -ENOSYS;
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue