Timeline

Many hyperlinks are disabled.
Use anonymous login to enable hyperlinks.

50 most recent check-ins

2023-12-07
19:18
-- Mail : enable port -- Mail: * make it part of the build ; * adapt to type dev_t being 64bit in hog ; * adapt to inode type being unsigned in hog ; * comment-out BPrintJob etc since we don't provide that part of the API yet ; * clean-up "FooKit.h" header usage since we try not to provide those "kitchen-sink" headers yet ; * replace usage of malloc.h with stdlib.h ; Deps: * make needed dependancies part of the build (MailDaemon.cpp, TypeConstants.cpp) ; * provide needed stubs inside BFont like count_font_families() ; -- TESTS -- * the Mail GUI runs and looks good ; * gets stuck in Qemu sometimes though (might be in query-related sem_acquire?) ; * good enough to take a screenshot, but: ; * no mail_daemon yet ; * no mail-prefs (account settings) yet ; Leaf check-in: a9f3359155 user: user tags: trunk
11:02
fossil-add Haiku R1/b1 verbatim: (Be)Mail app, and a few dependancies (class BMailDaemon, TypesConstants.cpp, some Web+ classes) check-in: a79ba0fc1d user: user tags: trunk
2023-12-05
11:11
-- Add GeDepot, Support Falkon etc deployment -- Add new 'GeDepot' app to install packages from depot.genode.org and run them: * with hardcoded "Download" and "Run" buttons (acting as toggle run/kill) for nano3d, mesa-gears, Falkon, Morph, etc ; * "download" interacts with depot_download (manager) ; * "run" interacts with registrar ; Implement Genode-pkg deployment in Registrar.Launch(): * deskbar.run: remove static/hardwired deployement test, we're now fully dynamic ; * deskbar.run: extended run scenario with GeDepot and sample depot infrastructure ; * registrar: the depot_deploy 'init' code is generated from registrar now ; * new class "DepotPilot" (pilots depot_deploy), lives side-by-side with "InitPilot" in registrar ; * registrar: the new class can be used for launching packages, as usual in Be apps : from Deskbar, from GeDepot, or anyone calling Launch(), can launch a package like Falkon, Morph, etc ; -- TESTS -- * Falkon works (testing e.g. the twitter feed of KDE) ! ; * all packages listed in GeDepot work ; * keyboard input is still broken in Qt apps however ("key such-and-such lacks Qt mapping") ; * will first upgrade to more recent packages, and investigate if still no-go ; check-in: 0f4e1fe274 user: user tags: trunk
2023-11-24
20:47
-- Add early Depot packages support (Mesa-Gears, qt5_TextEdit...) -- * add new "_geDepotDaemon.inc" jamfile which instantiates depot components, for inclusion in deskbar.run or distro ; * will clean-up the deskbar.run changes and commit soon ; * works in a similar way to Genode's SculptOS ; * relies on "depot_download" to download depot.genode.org packages to /public and expand them into /depot ; * relies on "depot_deploy" to use the runtime/blueprints in /depot to locate the exe and its libs, route access to them as ROMs, and launch ; * currently testing with static/hardcoded launches (nano3d, mesa-gears, textedit), gotta come up with some sort of Deskbar integration ; -- TESTS -- * downloads and launches qt5_textedit etc if wired to an ok FS ; * alphanum keys don't seem to work in textedit though, it complains about "lack of Qt mapping for key" ; check-in: 1463eed21d user: user tags: trunk
2023-11-15
16:16
-- Enable MESA (static and dynit), Enable Nic in dynit, Complete qwerty layout -- Enable mesa-OpenGL-gears launching: * add optional run scenario in hog-demos.run for "gears" OpenGL ; * tweak dynit to hardcode 'software' mesa pipe for now ; * tweak dynit to set priority -2 for 'gears' to play nice with the rest, since 'gears' is CPU-bound ; * tweak dynit to treat apps in /boot/depot_hog_alpha/ the same as apps in /boot/apps/genode, ie connect them to wm ; Enable launching from vfs-NTFS files, not just ROMs: * roster: temporarily disable checking for rwX bit until I figure out how to set the X bit in NTFS ; * route requests for .so ROMs to core in common cases (libc, zlib, etc), so that only 'extra' libraries (mesa.lib.so etc) are looked-up from the file system ; Enable networking for apps (e.g. FtpPositive) launched by dynit, not just static: * tweak dynit to forward RM and Nic ; * tweak dynit to hardcode "lxip" permission for FTP+ for now ; * (all that cruft will go once I come up with a permission system) ; Add missing keys to qwerty layout: * add Function Keys, add punctuation ; -- TESTS -- * mesa-gears-OpenGL works, provided the exe and libs are installed before-hand in /boot/depot_hog_alpha/ and in /boot respectively ; * (tested both static launch in "jam hog-demos" and dynit launch in distro) ; * launch is somewhat fast, maybe would be even faster with cached_fs_rom ? ; * runs at 40 FPS with software-pipe on my T410, cool ; * next, implement something similar to depot_download ; * FtpPositive can be (re)launched in dynit, not just statically -- check networking though ; * F11 (full-screen) works in AC ; check-in: be6f10a489 user: user tags: trunk
2023-11-03
16:20
(release: 23.3) * Jamrules: #define __HAIKU__ so as to get proper builds of (e.g.) src/bin/ utilities ; * Jamrules: implement rule UseHeaders properly, as used in e.g. src/bin/ utilities ; * mime_db: adapt todo comment, now that the __HAIKU__ define compiles it in full ; * InitPilot: fix memory leak ; * InitPilot: tweak to generate shorter app name/path, to keep logs more compact & readable ; * broker_server: make logging a tad less verbose ; check-in: 56da641d59 user: user tags: release, trunk
2023-11-02
15:28
-- Enable FTP client/server, Implement keyboard modifiers -- Fix/enable build of FtpPositive client and dependancies: * fix non-portable Be-isms in FtpPositive that prevented it from compiling in HoG ; * work-around HoG's GetAppInfo() shortcomings that led to NULL ptr crash ; * work-around lack of file manager in HoG : direct downloads directly to the right directory ; * fix our fcntl.h which was clobbering the F_SETFL #define and broke it -- now let the underlying FreeBSD fcntl.h alone, only add those symbols that are strictly Be specific and defined nowhere else ; * tweak ColumnListView to not use GetClippingRegion() since we don't implement it ; I.Kit: implement Shift/Alt modifiers: * add an app-wide keyboard-modifiers state ; * maintain it in window thread, Tx it in BMessages ; * qwerty keymap: add most of the missing non-shift table, and much of the shift table ; Jam-build: * bump ROM module slot count some more, to make way for FTP+ and ftpd ; * enable socket/networking also in Be apps (not just Genode native apps) ; * usb_hid_drv: bump from 140 to 180 caps, following suit from Genode ca. 20.10 ; * NAT: forward connections to port 21 (FTP) ; * embedded DHCP: transmit DNS setting from (external) DHCP so that e.g. FTP+ may look-up domains ; -- TESTS -- * FTP+ client can list and download files ; * the distro's ftpd server can Rx files and manage dirs (tested with FileZilla) ; * shift-scrolling works (in Lightning) ; * shift kbd table works (FTP+, AK, etc) ; * simple keyboard shortcuts work (though subject to the pesky window focus problem yet) ; check-in: ddbf542c20 user: user tags: trunk
10:41
fossil-add FtpPositive and missing OS dependancies: * HaikuArchives/FtpPositive (1.2.2+) (11nov22) (48a5acd) ; * Haiku R1/b1: ColumnListView (used by ftp+), PictureButton header (#included even though not actually used) ; check-in: 0e61344a1c user: user tags: trunk
2023-09-22
10:38
(release: 23.2) * tweak some ToDo markers ; check-in: ffa0866517 user: user tags: release, trunk
2023-09-21
13:51
-- Improve Dynit, in preparation for 23.2 release -- * rename "dyn" to "dynit" (easier to grep for) ; * refactor the code for init config generation into class InitPilot ; * that class allows (at last!) multiple app launches and "toggling" (launch-or-kill) ; * still todo: listen to init reports, and maintain our internal state, when an app is exited by the user ; * connect the Gui service either to MOTIF/wm or directly to nitpicker, depending on presence of /boot/apps/genode folder prefix ; * (in the future a fully adaptable runtime configurator will have to be invented, but for now we'll make do with this convention of sorting apps in a genode/ subfolder or be-hai/ folder as a configuration "hint" to the dynit launcher) ; * crank up fs_rom RAM since the one instance has to load all multiple application instances simultaneously ; -- Misc robustness -- * BApplication: make launch more robust when racing with registrar launch (try connecting to registrar 4 times) -- later we'll probably have some sort of launch_daemon ; * BScreen: hardcode resolution to rule out the (rare but annoying) race case where the nitpicker connection is not yet established -- later a refactor will solve this cleanly ; * broker_server: restore close()ing of named pipes, since I now apply the stability fix patch ; * hush some log tracing and ToDo markers ; -- TESTS -- * everything going well stability-wise, will release soon ; check-in: 4a28602ee6 user: user tags: trunk
2023-09-05
09:02
-- Fix-up launch infrastructure -- * deskbar.run: broker's vfs now only exports the bro2app/ directory ; * deskbar.run: move exes to within bin/ and apps/ subdirs to somewhat mirror upstream Hai's layout ; * AppKit's get_app_ref(): implement by looking in environ[] for variable "_" (seems standard in upstream Hai ?) to discover what the app path (ref) is, so that BApplication.Init() will register correctly in the deskbar-registry ; * fix build of jam t1/t2 by moving load_image() implementation to layer-6-only source file ; * set-up: pass the actual argc/argv/environ to main() ; * tear-down: sever connection to the broker on tear down ; * tear-down: call exit() to actually terminate (and clean-up) the process when main() returns ; * broker: recycle pipes, so that we don't run out of pipes after just a handful launches ; * broker: work-around ticket #4987 by *not* closing the pipe at our (writer's) end ; -- Fix-up misc -- * WindowNitpickerPriv window decorations: implement B_NOT_CLOSABLE, otherwise one may unexpectedly close the deskbar when opening its pull-down menu ; * tweak priority levels of ToDo's ; -- TESTS -- * apps now get registered (by name) in the deskbar as they should ; * apps now get launched one after the other sans crashing ; * had an instance of "running out of launches" after ca. 18 launches of AK once, despite the broker recycling pipes, gotta dig ; * AC automation looking good when using launcher-launched AC (but bootmodule launch now fails for some reason) ; * had one AC freeze though, let's dig, must make sure to maintain/return to 100% stability ; check-in: 4826d8ad82 user: user tags: trunk
2023-08-23
18:54
-- Add (unfinished) app-launcher infrastructure (load_image() and sub-init) -- * add load_image() implementation ; * it uses the newly created BRoster::RemoteLaunchInRegistrar() which talks to registrar ; * enable more code in Roster.cpp ; * add AddDynLauncher rule that configures a sub-init component which listens to reports from registrar ; * use that rule in the "jam deskbar.run" unit test : one may now launch "top" or "nano3d" or "Pulse" from the deskbar menu ; * several ToDo's and questions left (why do I have to add some traverse-the-symlink hack code in Roster.cpp ?) ; -- TESTS -- * testing deskbar.run looks good ; * except for one bug : relaunching a native Be-style app that makes use of the broker-to-app vfs (e.g. Pulse) results in a crash of said vfs server ; check-in: 2a880f427b user: user tags: trunk
2023-07-28
10:48
-- Early PoC for "Suspend-to-RAM" and (half-working) "Resume" -- * hai-OS: added Deskbar -> roster -> registrar -> pseudo-kernel -> Genode code chain for invoking Suspend ; * (the deskbar "Suspend" menu item was already present in upstream, just hidden behind an #ifdef) ; * for now we're hiding this feature behind a "return -1" in kapm_control(), change it to "return 0" to play with it ; * Genode/deskbar.run script: enabled suspend in acpica, added test-suspend binary ; * for resuming out of suspend state, that script also "demos" restarting VESA and PS/2 every 25 seconds (obviously this should only be done once, and deterministically) ; -- Enable (un-rem-out) BRoster::Launch() guts -- * will work on it in the next few commits ; -- TESTS -- * Qemu: suspend works, resume works, including vesa_drv (despite a resume error message in acpica) ; * Bare metal: suspend works, but the VESA driver does not seem to come back up when resuming, the screen remains black, and no-go either with vnc_server (didn't try to restart nic_drv yet) ; * see notes in api-public_main.cpp as to why it's better to wait for newer Genode revs before doing further work on this ; check-in: a64b600c40 user: user tags: trunk
2023-07-17
09:21
Genode 23.05 support : -- Adapt to Genode 23.05 changes -- * adapt to snprintf.h header new location/namespace/library ; * adapt to Genode::Connection new ctor ; * adapt to new libc and stdcxx packages ; -- Misc -- * bench: several benchmarks perform faster (except find_thread() which shoots way up, oddly) ; * indexer: downgrade a warning() ; * toolchain/gcc 12 compiler notes: I can still compile with gcc10 (using the associated stdcxx), with 4 minor changes to the genode repo ; * some clean-ups after the previous commit (xattr vfs handle overhaul) ; -- TESTS -- * vfs is still 100% solid (and we no longer need to patch Genode for stability) ; * there might be a new *regression* with pthread_create() though: it seems to sometimes leak 1 capability ; check-in: 7f9bf0a1a8 user: user tags: new-genode-rev, trunk
2023-07-15
18:03
-- XAttr : Fix "packet operation=0 failed" conundrum -- * ntfs plug-in: open() now detects non-existent attributes and returns an error, instead of (shockingly) instantiating a vfs handle for a non-readable xattr, which would throw curve balls at the downstream code ; * libroot: handle error code at open() stage instead of read() stage ; * this gets rid of "packet operation=0 failed" spamming issued by fs client/server code ; * this seems to speed-up attr reading a bit (e.g. Lightning querying 45 files completes in ca. 5 secs now on my old T410) ; * this (should) fix stability problems, hangs/lock-ups/freezes/stalls ; * in fact this commit is 100% indispensable before applying the next commit (23.05-support), otherwise Genode 23.05 just 'stalls' all my apps at launch or right after launch (i.e. my faulty xattr code was tolerated before, but no longer is) ; * also clean-up unused param in VirtualizedXattr ctor ; -- TESTS -- * so NOW we should be stable re. writing, and xattr reading :-) ; * will report more in the 23.05-support commit ; check-in: c963a5cb85 user: user tags: trunk
2023-06-24
10:32
Genode 23.02 support, plus some tweaks : -- Adapt to Genode 23.02 APIs -- * adapt to Byte_range_ptr API usage ; * adapt to size_t API usage ; * adapt to deprecated base/debug.h Genode header ; * adapt to deprecated Genode::abs() function ; -- Adapt to Genode 23.02 build and integration -- * build new rev of grub2 ; * add new argument (bender "serial") needed by new grub2 (otherwise boot-up fails) ; * adapt to new acpica policy in platform_drv config (otherwise power-off fails) ; * add a note to make SURE integrators enable /dev/rtc in broker (otherwise broker fails to write to vfs pipes) ; -- Tweak FS to tolerate 'extreme' test-suite modes -- * vfs_ntfs: make it (partially) compatible with use-case where indexer is client-side whereas vfs_ntfs is server-side ; * works for GetNextAttrName() (needed strncpy symbol, and improvements in leaf_path() and directory()) ; * works (seemingly) for BQuery aka dev_for_path("/boot/newfile") ; * failed GetAttrInfo()/B_ENTRY_NOT_FOUND test: would need patching fs_file_system.h/_complete_read() to generate READ_ERR_INVALID instead of READ_ERR_IO ; -- Misc -- * indexer: fix the downstream libntfs-3g warning about "un-normalized path" by using an alternate variant of path.import() which does NOT create an un-normalized path to begin with ; * test-suite: return to local-fs mode for now that I'm no longer working on FS stability (if ever needed again, will need to put ALL vfs plug-ins server-side, like in production, otherwise I keep chasing extreme corner/pathological cases) ; * benchmarks: some tweaks, plus opendir() takes a bit longer ; -- TESTS -- * we're stable doing FS writing at last ! AutoCast has been running for a few days with ReportLog enable, with zero issue ; * credit goes to Genode Labs' ruthless quest for code clean-ups, which helped bring the bug's root cause to the fore and forced me to investigate :-) ; * that's with a custom-made fs_file_system patch though (forced wakeup_vfs_user() in _handle_ack()) ; * that's also with a post-23.02 vfs/pipe/plugin.cc patch cherry-picked/back-ported from #4785 (might be necessary, together with the /dev/rtc thing) ; * next I'll overhaul the xattr code so as to no longer need that patch ; * can't compile/run vnc_server any more though, but I'll upgrade to 23.05 later on, that one has an official binary available ; check-in: 91b37516e8 user: user tags: new-genode-rev, trunk
2023-06-23
11:19
-- Media Kit : fix Duration() calculation -- * decoder/resampler: fix an (upstream?) issue whereby the progress() accessor returned incorrect values when the audio file's sample-rate differed from the Audio-Out sampling rate (e.g. with 22050 versus 44100 Hz, only half of the file would play before being considered finished) ; -- FS etc -- * NTFS-Fuse readdir: weed-out "." and "..", as is done in other file systems ; * clean-up and improve tracing ; -- TESTS -- * audio duration looks good on all test files now ; check-in: 61ba83d049 user: user tags: trunk
2023-05-22
12:15
-- Improve thread robustness -- * overhaul life-cycle handle for threads, with a proper enum ; * handle multiple concurrent wait_for_thread() calls on the same target thread, by using a semaphore instead of directly relying on pthread_join() ; * add test-suite test for that ; * need that for proper/stable support of BAlert and others ; * join()ing a terminated thread is now done deterministically in the dtor (we no longer have a "thread/garbage collector") ; -- TESTS -- * test results: ; * BAlert no longer hangs up, no matter if in sync or async mode ; check-in: 0eb7451d50 user: user tags: trunk
2023-05-15
13:44
-- Add networking, add jam-t9 tests -- * this commit enables internet access for libc sockets API applications, like e.g. vnc (with BSocket style API support to follow later) ; * added new "AddNetworkingComponents" rule -- call it if your run scenario involves internet traffic, it will setup nic_drv and nic_router ; * increased ROM count ceiling from 65 to 75 items ; * added VNC server compatibility in the new network rules and also in event_filter (so that vncd can "inject" mouse/kbd events) -- thus including vnc in a run scenario is now as simple as adding the vnc_server component referring to /socket/lxip, it just has to hardcode ip_addr=10.0.3.11 ; * added "jam t9" test level which adds networking on top of the rest, though this really only checks that the driver runs in qemu, no actual "socket" tests have been added to the testsuite ; * also cleaned-up/optim'ed other test levels -- "jam t1" is especially fast now ; -- TESTS -- * our main test laptop now runs vnc_server (patched for "zero alloc" problem) for hours at end, with a semi-permanent client connection to keep on eye on AutoCast from another computer on the LAN, with zero issue thus far ; check-in: 97df03ccdb user: user tags: trunk
2023-05-02
16:26
-- Improve Media Kit support of ogg/vorbis etc -- * fix decoder's iterating of demuxer packets : don't give up on the file if stumbling on an unknown chunk ; * cap ProduceBuffer() iterations at a given 'max' value (previously it was provided a 'min' value) ; * also make sure to not leak AV packets in any code path ; * altogether, this changeset restores behavior of the original genode-world sample code, which supported ogg/vorbis etc ; -- Extend FS test suite to exhibit opendir 'freeze' -- * allow FS tests to also run in client-server mode, in addition to hosting the ntfs plug-in in the client as previously ; * add more systematic tests for opendir() ; * that allows to demonstrate an opendir() 'hang up' that is 100% reproducible (in qemu), so long as the indexer is part of the combo ; * the culprit is probably our indexer plug-in and not Genode ; -- TESTS -- * those media changes fix audio playback of the test ogg/vorbis files here ; * we're still 100% stable in AC, so long as report-logging is disabled ; * still working on the FS lock-up, seems ge-libc's opendir does not return from "monitor" or some such ; check-in: ff8044a67e user: user tags: trunk
2023-04-14
08:58
(release: 23.1) -- Tweak MediaKit, InterfaceKit -- * BMediaFile et al: add wiring for HasData(), though that does not seem to improve detection of aborted decodings (ogg/vorbis eg) ; * replace open-ended loop with bounded loop, to make infinite looping impossible ; * only fill the samples FIFO up to 50%, seems to make a difference ; * todo markers: plan ahead to clean up the mess ; * BWindow.UpdateIfNeeded(): release the window lock after (not before) we're done painting ; -- TESTS -- * stability seems to improve with the above changes ; * let's widen the test pool to gather more data ; check-in: 23de9e0e66 user: user tags: release, trunk
2023-04-12
19:56
-- Fix semaphores, update test suite -- * delete_sem() now "ups" (releases) the semaphore before destroying it, mirroring upstream-hai behavior ; * that fixes BAlert.Go() never returning in some cases (asynchronous mode & invoked from a BWindow thread) ; * test suite: added a test case for the above, plus a lot of NTFS test tweaks ; * GeInput: support a few more keys ; -- TESTS -- * test suite: we fail just 2 symlink-related tests (deviation required in order to support dot-paths for xattr purposes, it seems) ; * benchmarks: some timing ceilings have increased, some decreased a bit ; check-in: cf56bb84c5 user: user tags: trunk
2023-04-10
19:32
clean-up todo markers -- * downgrade many FIXME's into ToDo's, most of them can no longer block the release and will have to wait ; * downgrade a few 'error' logs into 'warning's too ; -- TESTS -- * seems freezes are still there, just very difficult to replicate now (when BAlerts are involved, but also when AC transitions to a new audio file), maybe I'll have to rely on "heartbeat" CoS after all ; check-in: a7eabee25d user: user tags: trunk
2023-04-03
18:11
-- Implement Media Kit, layer 7 -- * comment out various things I don't need ; * wire Be classes to the Ge back-end in a kinda round-abount way (play/access 'mediatrack' through 'mediafile' for now) ; * will revisit in a few months to track the BMediaFile/BMediaTrack/BSoundPlayer separation more closely and cleanly ; * with that check-in, the code compiles and works and we now officially support "jam t7" ; -- TESTS -- * still 100% stable on TTS tests on main laptop ; will broaden the test pool later ; check-in: e8fe934e40 user: user tags: trunk
07:15
fossil-add Haiku R1/b1 verbatim: MediaDefs check-in: 71c5133aff user: user tags: trunk
2023-03-30
11:27
fossil-add Haiku R1/b1 verbatim: BMediaFile, BMediaTrack, couple other headers. With the next few commits this will allow building to "jam t8" (not just t6) level. check-in: 30e9892b38 user: user tags: trunk
2023-03-28
19:52
fossil-add new LeakChecker and RingLog classes -- * located in newly created hog-libs/ folder, for code that may be used even in pure Genode components, not just in hybrid components ; * LeakChecker came in handy to find malloc/free issues in the ntfs plug-in ; * RingLog is useful for high-volume logging for which only the "tail-end snapshot" matters, e.g. BSoundPlayer's ge-native-audio classes ; -- TESTS -- * still getting flying colors, green across the board, thanks to the update to Genode 22.11 ; check-in: 19a4537a02 user: user tags: trunk
2023-03-23
12:42
Genode 22.11 support, plus various tweaks -- * acpica/Deskbar build-and-run: acpica now requires a report route for the "suspend" state, so we provide a placeholder in the run script for now (will try to actually implement suspend later, sounds intriguing) ; * adopted change re. intel_hwp boot module ; * Genode's hardware abstration layer now uses a pci_decode component, and requires adding info="yes" policy attributes to platform_drv, we follow suit ; * also adopt the change re. using the "devices" file ; * attempt fixing the "bad symlink on first ever build" issue (not sure it works tho) ; * crank up boot-module slots from 60 to 65 (fixes growth issue with TTS distro) and provide for proper exhaustion warning next time I run out of slots ; * configure Qemu with 1 GB RAM instead of 768 MB (helps with TTS distro) ; * libc: enable "pthread placement=all-cpus" (helps with TTS apps) ; * comment out vfs_oss (no longer being used with TTS apps for now) ; -- TESTS -- * no longer seeing AC lock-ups since the upgrade to Genode 22.11, looks like I'll base my distro on this Genode rev! ; check-in: d6d6d9c2dd user: user tags: new-genode-rev, trunk
2023-03-20
18:48
-- Fix NTFS plug-in (realloc corruption, memory leak) -- * found out that memory usage explodes when disabling num_dirent cache -- was due to readdir ; * fix readdir() memory leak -- instead of adding the missing free() (it was commented out, dang), just refactor struct fuse_dirhandle so that it has a dtor that free()s without fail ; * that required bringing in some additional FUSE headers so that we can patch them, and to dis-ambiguate include paths ; * implement realloc() properly, adding the necessary book-keeping, otherwise we'd sometimes corrupt memory ; * we can now use realloc() in more places, including in the (newly leak-free) readdir/dirhandle code ; -- TESTS -- * the vfs server can now use the vfs_fuse_ntfs_tts plug-in without leaking memory much, and the occasional crash is gone ; * there remains one leak for each mkdir() call, which does seems to be due to upstream lib-ntfs (fortunately we don't create dirs too often) ; check-in: b51b5c61a3 user: user tags: trunk
18:22
-- Fix semaphores -- * acquire_sem() was not calling genode_sem.down() but was instead busy looping (sending EAGAIN back and forth) on 'busy' semaphores ; * we now call down() properly, being careful to first release the giant kernel lock ; * this introduces a race though (what if the sem is deleted inbetween), will look into it soon-ish ; -- TESTS -- * a few months back, we would lock-up or at least slow down to a crawl due to the busy-looping-with-giant-lock-held crazyness ; * been testing this fix for quite a few weeks now, looking good ; check-in: 05b6c4490f user: user tags: trunk
2023-03-15
10:44
-- Implement Media Kit : add a 'native' audio-out back-end -- * keep the OSS back-end mothballed, with a tweak to IsAlmostFull(), might return to it later ; * add a 'native' (direct-to-Genode-mixer) back-end which does not rely on signals but polls stream.queued() instead ; * this is being used successfully with AC ; * still have to clean-up/commit a few missing classes yet for the Media Kit to compile ; -- TESTS -- * audio playback is fluid (no 'on-air blanks') with upperlimit_queue_threshold set to 64, on my T410 ; * stability was bad starting a couple months back, but seems to be good now, no more lock-ups for the last few days, after I fixed a mem leak in my vfs-ntfs code (coincidence ?) ; * there remains a few question marks yet (do "grep FIXME" to find them) ; check-in: 2dd1f3902d user: user tags: trunk
2023-03-01
17:29
-- clean-up: various minor tweaks -- * Jamrules: revert roles of NEEDLIBS / UNDEFS again, seems more compatible ; * BDirectory: comment out fcntl(...CLOEXEC..) to dodge "n/i" log warnings ; * logging tweaks ; * comment tweaks ; * ToDo's ; No functional change intended ; check-in: 314a522e76 user: user tags: trunk
2023-01-09
19:41
-- Implement Power-Off -- * registrar: use the passed flag to distinguish between reset and power-off ; * jamfiles: refactor the "system" ROM, into a "platform_report_rom" report in the "core" jamrules ; -- Fix-up Reset -- * no longer rely on acpica ; * instead, enable (and rely on) ps2_drv reset, which is compatible with most devices old and new ; * in the future I could also enable pc_platform_drv reset if needed on some devices ; -- jamfiles -- * use mainline "pc_usb_drv" instead of legacy one, now that I download the driver from the depot I'm back in business despite not compiling it myself ; * OSS: add vfs_oss.lib.so now that I use it in my suite ; -- TESTS on BARE METAL -- * I can now both reset and power-off on all my test devices ; check-in: 6077b9a1ec user: user tags: trunk
17:27
fossil-add Haiku R1/b1 verbatim: BStopWatch -- * handy to get a "feel" of vfs perf ; fossil-add MediaKit back-end -- * Audio-Out targetting OSS plug-in (didn't get "direct" code to work, OSS works well anyway) ; * LibAV for decoding MP3 etc files (inspired by Genode's sample code, thanks!) ; * that's Part 1, still need to commit BMediaFile et al ; TESTS on BARE METAL -- * continuing multi-hour tests ; * sometimes the audio chain gets 'stuck', will refit the buffer sizes, loops, etc, hopefully that'll be it ; check-in: 05d8a123f2 user: user tags: trunk
2022-12-26
20:12
Fix-up/Improve FS indexer -- * implement index persistency (load in ctor, save after each write) ; * chroot the underlying FS (e.g. ntfs) inside a subfolder named "_Hai_Genode_Root_Folder_" ; * (or rather, "chroot to within a subfolder in the supporting FS") ; * fix type handling (filter out non-string attrs, we don't want to index e.g. binary data!) ; * fix running in pure-Genode vfs server (missing symbol) ; * fix run-away loop in index-walker (was not checking end-of-buffer) ; * fix build (misplaced #endif) ; Fix-up GUI -- * add an ugly wireframe substitute for missing canvas.FillArc() implementation, better than nothing for navigating Pie Menus ; * redirect canvas.FillTriangle() (make it a wiry polygon for now) as that "crashes" on zero-alloc in Polygon code, will investigate later ; TESTS on BARE METAL -- * tested on r61/t410/t430 with full distro scenario (indexed attributes are assigned and queried-for correctly, even across boot-ups) ; check-in: 9f18ae4e83 user: user tags: trunk
2022-12-18
11:54
Fix-up GUI, Fix-up FS, Optimize FS -- * vfs_fuse_ntfs: synchronize "hiberfile.sys" check with read/write mode ; this allows mounting hibernated partitions, so long as they're mounted R/O ; * BWindow: fix _FindView() so that it finds views even when ScrollBy()'d, in e.g. a BFilePanel ; * LongAndDragTrackingFilter: add a bug diagnostic for the benefit of upstream (!), re. get_click_speed() sometimes getting messed up, exclusively in upstream (not in HoG), with cascading effects on "long click detection/RMB emulation" ; * libroot_build/fs.cpp: backport upstream hai optimization of normalize_dir_path() by ws ; Improve Attributes and BQuery compatibility with server and clients -- * vfs_fuse_ntfs: provide strncmp() otherwise we abort() on xattr writing ; * vfs_fuse_ntfs: accomodate "remote vfs server" use case, so that Attributes and BQuery work even through a vfs server ; * indexer: add sanity checks to detect mis-configuration ; * indexer: mirroring the changes in vfs_fuse_ntfs, we need to accomodate call patterns originating from vfs-server : unlike when using a local-fs, vfs-server will route XAttr usage and BQuery usage through leaf_path() and directory() ; * indexer: in query predicates we now allow spaces around operators (e.g. "Artist == RogerWaters") and unquotted operands , to accomodate Lightning ; TESTS on BARE METAL -- * with this and upcoming acquire_sem() fixes, BFilePanel is getting truly nice to use ; check-in: fcaf944286 user: user tags: trunk
2022-11-22
20:30
InterfaceKit & BFilePanel improvements -- * BWindow: implement rendering of scrolled BViews (good enough to just Invalidate()) ; * BView: make CopyBits() good-enough for Tracker/BFilePanel live updates ; * BView: make B_OP_BLEND good-enough for Tracker/BFilepanel selection ; * mini input_server: implement double-click (!) ; AppKit & BfilePanel workaround -- * BMessageRunner: stay quiet on non-infinite runs, otherwise it triggers multiple long-click events in Tracker/BFilePanel until the runner gets reset by a mouse-up ; TESTS on BARE METAL -- * looking good ! BFilePanel is now quite usable for picking files ; * there remains one crashing bug though, "Error: attempt to allocate zero-size block from heap" ; check-in: 75f5e0fbe1 user: user tags: trunk
2022-11-06
10:39
Fix/Improve Readdir and XAttr in NTFS -- * Add xml-config flag to choose between read-only and read-write ; * Fix read-only support (MUST be specified with the 'ctx->ro' flag !) ; * Fix xattr support (must enable with 'ctx->streams = NF_STREAMS_INTERFACE_XATTR' flag) ; * Improve logging with coloring and proper va_arg handling ; New XAttr scheme in LibRoot -- * move away from ioctl() scheme, in fact we only want Genode to provide us with the FD base path itself, we can build the extended "magic xattr path" and act on it ourselves ; * thus, adapt to the (newly elaborated) Genode patch (see Wiki) which provides a simplified path_for_genode_fd() accessor instead of extending the existing ioctl() code ; TESTS on BARE METAL -- * I can now read-only mount even hibernated NTFS partitions ; * I can now read *all* NTFS folders on all five test rigs here ; * No XAttr regression, we still pass all "jam t8" tests ; check-in: 3970ec3157 user: user tags: trunk
2022-10-14
16:14
fossil-add NTFS (FUSE) vfs plug-in -- * adapted from Genode's world/src/server/fuse (license preserved o.c.) ; * converted from "server" code to "vfs plug-in" code ; * integrated into my build system ; * extended with xattr support ; This is functional enough to pass (most of) the hog testsuite, with several things left to iron out ; This should complete ticket 193 at my end ; check-in: 7473954e0f user: user tags: trunk
09:29
FUSE tweaks in support of ntfs-3g: - fill_dir(): make the dirent array/buffer grow as needed ; - init: add a path-to-block-device argument ; - init: provide a logging handler that redirects logging to 'pure' Genode::log() (don't expect an actual libc with printf()), and enable error/critical messages, so that we can see e.g. the reason for mount failures (hibernated partitions e.g.) ; The latter helps the transition to a VFS plug-in (plug-ins can't use the whole/full-fledged libc) ; the dirent fix seems to address an original issue ; check-in: 8b5f676b63 user: user tags: trunk
08:51
fossil-add Genode-World ca. 22.08 (verbatim contents, re-organized directory structure): * libfuse (fuse.cc) ; * libc_fuse_ntfs-3g (init.cc) ; That will be the basis for an NTFS FUSE plug-in, in the next commits ; There's more upstream, but let's only import files that we need to tweak/override, the rest can be used as-is from genode-world check-in: 94019faf10 user: user tags: trunk
2022-10-10
09:29
Genode 22.08 support -- * no real change required on our side ; * build looks better if silencing -Wno-deprecated-copy though, so do that ; TESTS (BARE METAL) -- Tested on everything I have in reach here ; acpica works again, something must have changed in Genode 22.08 ; no regression found ; now let's apply vfs optimizations (in next iteration) and find out whether I can tie that off ! check-in: a9750f0df8 user: user tags: new-genode-rev, trunk
2022-10-06
16:51
Genode 22.05 support -- * build/integration: use new hash for jpeg lib ; * build/integration: use "legacy_pc_usb_host_drv" instead of "x86_pc_usb_host_drv" (was true in 22.02 as well but forgot it in the previous commit) ; * that might disappear in the future, at which point I'll need to find out why I can't build the new usb-host ; TESTS (BARE METAL) -- * audio tested ok on a couple TPs ; * usb-hid tested ok on a couple TPs ; * acpica reset still no-go on TPs (and on TC?), same as in 22.02, turns out it crashes on start : "acpica: detected ec", followed by "quota guard <Ram> error... abort", and that does not go away even if the ram quota is increased to 150 MB ; check-in: 9939527bdc user: user tags: new-genode-rev, trunk
2022-10-04
12:45
Genode 22.02 support: * indexer: class Genode::Token now requires a second predicate -> add it ; * build/integration: seems 'platform_drv' is now named 'legacy_pc_platform_drv' -> adapt build ; * build system: default to gcc10 (not gcc8), now we're in sync with the Wiki ; * build system: another fix, in interface_private ; * build system: fix out-of-tree app builds (refer to the hog tree, not to the out-of-tree app) ; * build system: fix build of broker (only "haiku" apps should link against haiku.lib.so, not "GenodeExe" apps) ; check-in: b97d6aa6a2 user: user tags: new-genode-rev, trunk
2022-09-27
19:31
Genode 21.11 support: * Fix build basics (running late), how to find headers etc ; * Add support for official (GCC10-based) toolchain - various build fixes, stricter header requirements, use "genode world" foldername/hash for libav as per updated build directions, etc ; * Tweak nitpicker "focus", that fixes the build (that wasn't an issue in my other repo though) ; TESTING: I'm in a rush to get to 22.02 and test the block/vfs speed-ups, but jam t6 looks good in qemu at least ; check-in: af4cad46e4 user: user tags: new-genode-rev, trunk
2022-07-21
17:58
clean-up config, tracing, add todo's: Configuration: - config XML: tweak some report_rom etc configs, to restore audio/mixer/etc function ; - jam: break rule AddHaikuLibs... out of rule AddInteractiveComponents, since some lightweight scenarios only need the libs but not the rest ; - jam: move vesa_fb_drv to rule AddInteractiveComponents where it belongs, for the same reason ; - jam: use those changes to make hog-bench.run as lean as possible ; Benchmarks: - added benchmarks for normalize() in preparation for its optimization (sourced from upstream), which should be spectacular ; check-in: f41fec1ef6 user: ttcoder tags: trunk
2022-07-18
12:14
FIX window "black canvas" refresh, ADD screen resolution handling: - BWindow: stability FIX (?): removed a lock in GetDecorations(), seems deadlocks are gone now ; - BWindow: fix initial "black canvas until clicked" and "wrong initial geometry" on some windows, eg deskbar calendar, file panel, AK settings, etc (refactor code into _Adopt() and such) ; - BWindow: fix some windows appearing before their Show() method is called (e.g. file panel) ; - BWindow: fix/finish SetSizeLimits() ; - BScreen: add resolution retrieval from nitpicker, we no longer hardcode the resolution to 1024x768, since tests are starting to use (higher) native resolutions now ; Qemu TESTS: we pass: jam t8 ; jam hog-demos ; jam deskbar ; BARE METAL: we pass "jam tts-distro" on: M73 (needs specific VESA resolution) ; F2A55 (VESA same, and still no USB) ; 430 (still no USB) ; 530 (everything works) ; R61 ; check-in: 94844f66c7 user: ttcoder tags: trunk
2022-07-14
16:24
kern_shutdown() implemented, with ACPICA, invokable via newly-enabled Deskbar menu: - hai-kernel-emul: implement _kern_shutdown() by feeding a "reset" to a report_rom, which forwards it to ACPICA ; - registrar: add one-liner _kern_shutdown() call (will enable full-blown fShutdownProcess later) ; - Deskbar: enabled roster.ShutDown() call to registrar ; - Deskbar unit test: added ACPICA/registrar/etc config (enabled by Deskbar_FULL_TEST variable ) ; - Deskbar unit test: fixed main menu (was empty for lack of /system/data/deskbar/menu_entries directory) ; TESTS: one may now launch "jam hog-deskbar.emu8", open the deskbar menu, click "Shutdown", and reboot ; BARE METAL TESTS: shutdown-reset works on M73/F2A55/530/430 ; check-in: f64dfe324a user: ttcoder tags: trunk
2022-07-08
17:12
Improve config (decorations, logging, USB-HID): Improve config file to allow for simultaneous use of Haiku and Genode window decorations: - Haiku apps talk to Nitpicker directly ; - Genode apps talk to Decorator and WM, which then handles nitpicker ; - hog-demos.run: demonstrate the above by invoking Nano3D, with Genode decorations, side by side with Haiku demos using their own window decorations, yay ; Logging: - re-route some logging to terminal (when and if available), that comes in handy when testing e.g. USB-HID on bare-metal ; USB-HID: - increase ram and cap quotas where needed ; - disable all except EHCI ; Misc: - increase qemu memory to accomodate TTS distro scenarios ; BARE METAL TESTING: tested (especially) jam tts-distro.run, on T4x0 laptops and M73, USB-HID looks good now with just EHCI enabled ; check-in: 6acf9ca48c user: ttcoder tags: trunk
07:57
Tweaks for Tracker/Deskbar/desktop: - BMenu: disable menu 'triggers' (BeOS-style label underscores), in line with modern Haiku ; - BDateTimeFormat: implement date as used in detailed folder listings ; - BStringFormat: implement phrase e.g. "2 items" as used in folder footer ; - BStatable: enable GetPermissions(), using FreeBSD libc's ALLPERMS mask ; - Tracker find-panel: fix small issue in upstream, saves us an stderr warning about "resize mode/flags swapped" ; - dev_for_path(): restore upstream reliance on stat(), now that stat() sets the correct device in all cases (even for top level "/boot" path) ; check-in: 320cc91566 user: ttcoder tags: trunk