Source Activity

Syndicate content
Haiku's main repository
Updated: 1 hour 32 min ago

Whitespace and style cleanup only.

Sun, 2015-04-12 16:27
Categories: Development

network stack: Copy right amount of data from request buffer.

Sun, 2015-04-12 16:23
The full size of the entry, including the size of the following addresses, was used when copying the request instead of just the request buffer size. Also clear the request buffer to 0 as not all of it is otherwise initialized. The full size of the entry, including the size of the following addresses, was used when copying the request instead of just the request buffer size. Also clear the request buffer to 0 as not all of it is otherwise initialized.
Categories: Development

arm/mmu: Fix boot on beagle-xm

Sun, 2015-04-12 15:52
* The changes for pi2 support led to the virtual addresses overlapping with the page table again on the beagle, because the kernel address space overlaps with the physical RAM identity mapped. Try to find a memory range in a way that will work in both cases. * The changes for pi2 support led to the virtual addresses overlapping with the page table again on the beagle, because the kernel address space overlaps with the physical RAM identity mapped. Try to find a memory range in a way that will work in both cases.
Categories: Development

libbnetapi: Add BNetworkRoute to replace use of route_entry.

Sun, 2015-04-12 15:43
The BNetworkRoute class manages a route_entry and the sockaddr's associated with it. It replaces the direct use of route_entry in the BNetworkInterface API. Using route_entry is fragile and inconvenient as it only holds pointers to the sockaddr's. When getting a list of routes from the kernel, each route_entry is set up so that its pointers point into the single flat buffer that is passed around. Creating a copy of the route_entry and then deleting the flat buffer makes the pointers in the copy stale. Returning these route entries therefore always lead to a use-after-free when they were eventually used. BNetworkRoute also takes over the code and functionallity of getting routes from RouteSupport. The corresponding method in BNetworkRoster is replaced by a static method in BNetworkRoute. Also distinguish between the default route and gateway of an interface. GetDefaultRoute() now gets the default BNetworkRoute for the interface while GetDefaultGateway() gets the associated gateway address within that default route. Adjust network preferences panel to this change. Note that we currently only seem to have per interface default routes and not an actual global default route. This was already the case before these changes and I did not further investigate what this means. The BNetworkRoute class manages a route_entry and the sockaddr's associated with it. It replaces the direct use of route_entry in the BNetworkInterface API. Using route_entry is fragile and inconvenient as it only holds pointers to the sockaddr's. When getting a list of routes from the kernel, each route_entry is set up so that its pointers point into the single flat buffer that is passed around. Creating a copy of the route_entry and then deleting the flat buffer makes the pointers in the copy stale. Returning these route entries therefore always lead to a use-after-free when they were eventually used. BNetworkRoute also takes over the code and functionallity of getting routes from RouteSupport. The corresponding method in BNetworkRoster is replaced by a static method in BNetworkRoute. Also distinguish between the default route and gateway of an interface. GetDefaultRoute() now gets the default BNetworkRoute for the interface while GetDefaultGateway() gets the associated gateway address within that default route. Adjust network preferences panel to this change. Note that we currently only seem to have per interface default routes and not an actual global default route. This was already the case before these changes and I did not further investigate what this means.
Categories: Development

arm: Initial Cubieboard4 work

Sat, 2015-04-11 21:52
* SD cards are "blessed" with a boot0 spl and boot1 u-boot at fixed locations. * Allwinner's u-boot is lacking a lot. * Upstream u-boot should be better at some point. WIP: http://lists.denx.de/pipermail/u-boot/2015-January/201537.html * SD cards are "blessed" with a boot0 spl and boot1 u-boot at fixed locations. * Allwinner's u-boot is lacking a lot. * Upstream u-boot should be better at some point. WIP: http://lists.denx.de/pipermail/u-boot/2015-January/201537.html
Categories: Development

syscalls: Remove get_stack_trace syscall again.

Sat, 2015-04-11 21:36
This reverts the other half of b959d46dbd2f9087ae860dbced40440c28596a6e. This reverts the other half of b959d46dbd2f9087ae860dbced40440c28596a6e.
Categories: Development

guarded_heap: Use __arch_get_stack_trace() instead of syscall.

Sat, 2015-04-11 21:31
The stack base and end addresses are stored in TLS slots that are prepared when enabling stack traces and filled in lazily on use for each thread. This avoids the need of calling get_thread_info to get these values. Also simplifies the code somewhat due to proper frame skipping support. The stack base and end addresses are stored in TLS slots that are prepared when enabling stack traces and filled in lazily on use for each thread. This avoids the need of calling get_thread_info to get these values. Also simplifies the code somewhat due to proper frame skipping support.
Categories: Development

libroot: Add private __arch_get_stack_trace().

Sat, 2015-04-11 21:21
It can be used to get a stack trace of the current thread. Note that this works by walking frame pointers and will not produce anything useful if an application is compiled with the frame pointers omitted. The stack base and end addresses have to be provided as arguments and are used to check that the frame pointers fall within that range. These values are thread specific and can be retrieved with get_thread_info(). No other sanity checks (like checking for loops in the linked list) are done. This is a simplified rewrite of the stack trace code from the kernel debugger. As this code is common to x86 and x86_64 but is not generic across architectures I introduced x86_common as a directory to put such sources. It can be used to get a stack trace of the current thread. Note that this works by walking frame pointers and will not produce anything useful if an application is compiled with the frame pointers omitted. The stack base and end addresses have to be provided as arguments and are used to check that the frame pointers fall within that range. These values are thread specific and can be retrieved with get_thread_info(). No other sanity checks (like checking for loops in the linked list) are done. This is a simplified rewrite of the stack trace code from the kernel debugger. As this code is common to x86 and x86_64 but is not generic across architectures I introduced x86_common as a directory to put such sources.
Categories: Development

libicon: Fix leak of Icon::Gradient.

Sat, 2015-04-11 12:55
This was most prominently visible in applications that show a lot of icons like Tracker and Deskbar. This was most prominently visible in applications that show a lot of icons like Tracker and Deskbar.
Categories: Development

Shortcuts: Fix use-after-free in EditWindow return.

Sat, 2015-04-11 11:39
Calling Quit() on the window deletes it, so using the fTextControl member to get the result does not work. Calling Quit() on the window deletes it, so using the fTextControl member to get the result does not work.
Categories: Development

Whitespace cleanup only.

Sat, 2015-04-11 11:37
Categories: Development

AboutSystem: Fix leak of package credits.

Sat, 2015-04-11 11:34
Categories: Development

syscalls: Remove lookup_symbol syscall again.

Sat, 2015-04-11 09:13
This partially reverts b959d46dbd2f9087ae860dbced40440c28596a6e. This partially reverts b959d46dbd2f9087ae860dbced40440c28596a6e.
Categories: Development

guarded_heap: Replace symbol lookup syscall with runtime_loader.

Sat, 2015-04-11 09:11
Use the private runtime_loader API to do the symbol lookup instead of using the syscall. Use the private runtime_loader API to do the symbol lookup instead of using the syscall.
Categories: Development

runtime_loader: Add imageName and exactMatch to symbol lookup.

Sat, 2015-04-11 09:00
Extend the get_nearest_symbol_at_address() private runtime_loader export to include imageName and exactMatch arguments. The imageName holds the SONAME of the image, if available, so cannot neccessarily be extracted from the image path. Whether or not there was an exact match, i.e. the symbol with its size contains the address, is now returned in exactMatch. Extend the get_nearest_symbol_at_address() private runtime_loader export to include imageName and exactMatch arguments. The imageName holds the SONAME of the image, if available, so cannot neccessarily be extracted from the image path. Whether or not there was an exact match, i.e. the symbol with its size contains the address, is now returned in exactMatch.
Categories: Development

Added FilWip package.

Sat, 2015-04-11 08:40
Categories: Development

Add leak_analyser shell script to analyse guarded heap info.

Sat, 2015-04-11 07:24
The script runs the guarded heap allocation output through c++filt to demangle stack trace symbols and filters out a list of known globals that are never freed. It also allows to exclude further patterns provided on the command line. The script runs the guarded heap allocation output through c++filt to demangle stack trace symbols and filters out a list of known globals that are never freed. It also allows to exclude further patterns provided on the command line.
Categories: Development

Make guarded heap accessible through its own libroot_guarded.so.

Sat, 2015-04-11 07:19
This adds libroot_guarded.so to the HaikuDevel package. It is the same as libroot_debug with the debug heap swapped out for the guarded heap. The guarded heap has some useful features that make it desirable to use while having the disadvantage of a large memory and address space overhead which make it unusable in some situations. Therefore the guarded heap cannot simply replace the debug heap but should still be made available. As the heap init needs to happen even before having environment variables, the heap to use can not be chosen dynamically. Exposing them through their own libraries is the next best thing. This adds libroot_guarded.so to the HaikuDevel package. It is the same as libroot_debug with the debug heap swapped out for the guarded heap. The guarded heap has some useful features that make it desirable to use while having the disadvantage of a large memory and address space overhead which make it unusable in some situations. Therefore the guarded heap cannot simply replace the debug heap but should still be made available. As the heap init needs to happen even before having environment variables, the heap to use can not be chosen dynamically. Exposing them through their own libraries is the next best thing.
Categories: Development

Added gcc4 versions of cdrtools and BurnItNow (by luroh)

Sat, 2015-04-11 06:14
luroh was so kind to compile those for gcc4. cdrtools don't build on x86_64, so there's no reason provide a 64bit BurnItNow version either. Corrected name of gcc2 source package of burnitnow. luroh was so kind to compile those for gcc4. cdrtools don't build on x86_64, so there's no reason provide a 64bit BurnItNow version either. Corrected name of gcc2 source package of burnitnow.
Categories: Development