Commit Graph

58037 Commits

Author SHA1 Message Date
Jérôme Duval
755bade8ba Factorize multi audio drivers control function.
With user buffer checks and copies about the same for every driver, it seems logical
to avoid duplicate this code.

Sponsored-by:	https://liberapay.com/korli
2018-01-18 21:19:03 +01:00
Leorize
1a59e1d91c gnu: introduce memmem(3)
Implementation imported from OpenBSD

Change-Id: If2620dc7ed373650bb3dabb0f22c2cd84b9e0ef9
2018-01-17 19:39:18 +00:00
Jérôme Duval
964fb0c378 kernel: make arch_kernel.h for x86 C safe. 2018-01-17 19:20:59 +01:00
Jérôme Duval
8d794763d5 dprintf: remove redondant user address check.
check user_memcpy success.
2018-01-17 19:19:36 +01:00
Jérôme Duval
181bcc8c78 Include libedit by default for Debugger. 2018-01-16 20:48:05 +01:00
hyche
3f43dd8710 btrfs: Fix btrfs_dir_entry doesn't read data from disk correctly. 2018-01-16 16:21:46 +00:00
Jérôme Duval
483c45843d kernel: x86: add some more cpuid flags. 2018-01-15 20:18:43 +01:00
Jérôme Duval
05a859ebd7 usb: map registers or allocate area for the kernel only. 2018-01-15 19:52:13 +01:00
hyche
ce029df2d8 btrfs: Fix wrong function name in log error 2018-01-14 15:02:20 +00:00
hyche
5686d4e190 btrfs: Init status, prevent from unitialized check 2018-01-14 15:02:20 +00:00
hyche
b568492fbd btrfs: Make SearchSlot() look cleaner 2018-01-14 15:02:20 +00:00
Leorize
cedb0e1179 uchar: Introduce C11 uchar.h
Currently this implementation only supports UTF-32
2018-01-14 14:42:34 +00:00
Jérôme Duval
a2021292d4 kernel: Binary code patches on x86.
This will be used to support SMAP.

Sponsored-by:	https://liberapay.com/korli
2018-01-14 13:20:38 +01:00
Jérôme Duval
e6168b4ffe Set the image size for debug releases to 900MB. 2018-01-14 10:08:05 +01:00
Rene Gollent
7082366900 Debugger: Fix crash in teams window.
- Some of the recent changes for memory management exposed a race
  condition, where the teams window would potentially try to access
  already freed objects on quit. Ensure we acquire references to the target
  host so this doesn't happen.
2018-01-13 15:36:22 -05:00
Jérôme Duval
813b6c656f disasm: add to the image on x86_64. 2018-01-13 15:54:21 +01:00
Jérôme Duval
0291f00909 udis86: update to current version. 2018-01-13 15:54:21 +01:00
Jérôme Duval
9409021432 kernel: x86: add cpuid feature 7 flags. 2018-01-13 09:33:47 +01:00
Rene Gollent
ac9e464b78 Debugger: Fix various issues in the DWARF subsystem.
AttributeClasses:
- Fix typo in get_attribute_name_classes which resulted in us not
  handling DW_AT_linkage_name properly.
- Fix incorrect class specification for DW_AT_default_value due
  to inconsistencies in the DWARF documentation (the table of attribute
  classes indicates it is only a reference, but the detailed description
  indicates it also being possible to be a flag or constant, both of
  which gcc outputs).

DebugInfoEntries:
- Add accessor for DIEClassBaseType's inner types.

DwarfImageDebugInfo:
- When looking up types, create a basic target interface to pass on
  to the type context. Otherwise, type lookups that required DWARF
  expression evaluation would crash.
- When building the type name table, we now recursively walk a class's
  inner types, and add them to the list as well. This omission would
  cause the debugger to lack the type description for such classes,
  and consequently be unable to display their details in the variables
  view.
2018-01-12 22:23:57 -05:00
Andrew Aldridge
f6d25a3a81 strtod: Do not consume "x" in incomplete hex input
Adapted from upstream glibc commits:
* 405698e946dbed472491f85867eb511eb080e05a
* 43b9d657408fbf47a47934f9e7c84ed87f7f5a18

Fixes #13949
2018-01-12 16:45:14 +00:00
Jérôme Duval
a820f1f01d WebPositive: disable debug code.
should fix the debug build for WebPositive.
2018-01-12 16:46:08 +01:00
Rene Gollent
c0936b5a03 Debugger: Another set of #13800 fixes.
AbstractTable/Table/TreeTable:
- Let BColumnListView take care of deleting columns. The previous
  approach was resulting in the columns being leaked.

Debugger:
- Don't detach the UI reference, as TeamDebugger will acquire its own.

GraphicalUserInterface:
- Cleanup of file panel handler.

SourceView:
- Clean up marker manager.

*Roster:
- Clean up registered objects in destructors.

GlobalTypeLookup:
- Clean up hash tables.

NetworkTargetHostInterfaceInfo:
- Fix reference handling for settings.
2018-01-11 22:39:55 -05:00
Rene Gollent
ffe684b96c Debugger: Fix type issue in BList handler.
BListValueNode:
- BList's item count member is an int32. However, when the handler was reading
  said variable, it was mistakenly reading the number of bytes corresponding to
  to the address size of the architecture instead.This would cause the read to
  fail, and consequently BList and/or BObjectList variables to not display
  their contents properly on x86-64.
2018-01-11 22:39:55 -05:00
Jérôme Duval
bbb5a50f9b kernel: debug: map the frame_buffer for the kernel only. 2018-01-11 19:59:10 +01:00
Rene Gollent
3995592cdf Debugger: Fix #13939, more work on #13800.
- Fix various cases where OpenHashTables weren't being cleared properly.
- Fix various reference counting errors.
- Simplify FileManager reference handling.
- Fix bug in LocatableDirectory where the directory named '/' would have its
  name returned as empty. This would lead to failed lookups for entries already
  in the table, and ultimately corrupted the hash table when deleting unused
  entries, leading to #13939. This was previously never noticed due to the
  entries not being freed properly.
- AbbreviationTable wasn't clearing its entries.
2018-01-10 19:29:36 -05:00
Augustin Cavalier
e56d7050a3 docs/develop/packages: Update links and rename index.wiki to README.wiki.
Now this page is rendered when you open the directory on GitHub,
and you can use the links to open any of the files.
2018-01-10 16:54:32 -05:00
Augustin Cavalier
7a988ea15b docs/develop/packages: More fixes to syntax. 2018-01-10 16:48:08 -05:00
Augustin Cavalier
fc2b04e7e4 docs/develop/packages: Convert wiki files to MediaWiki syntax.
This is what GitHub actually is rendering pages as.
2018-01-10 16:37:28 -05:00
Augustin Cavalier
5492447a60 docs/develop: Migrate Package Management docs from Trac.
Still in Trac Wiki format (GitHub renders this well enough.)
2018-01-10 16:19:41 -05:00
Augustin Cavalier
42877d24cf makefile-engine.html: Does not belong in docs/develop.
docs/develop is for documentation about Haiku's internals. The Makefile-Engine
is public API. For now, put it in docs/misc.
2018-01-10 16:12:15 -05:00
Augustin Cavalier
e81a954787 docs/develop: Mass directory restructure.
Now vaguely follows the tree structure of "src", with the exception of
directories that described subsystems spanning more than one "kit" or
"server" (e.g. "media", "midi", "bluetooth") -- these have been left as their
own top-level directory within docs/develop.
2018-01-10 16:12:14 -05:00
Augustin Cavalier
cdf0ad6a80 docs/develop: Delete some more old/obsolete directories. 2018-01-10 16:12:14 -05:00
Augustin Cavalier
96efe3b3c0 docs/user: Migrate Axel's "Introduction to the Launch Daemon" from Trac. 2018-01-10 16:12:14 -05:00
Augustin Cavalier
4241437c83 docs/misc: Add BeIDE_ProjFileFormat.
This is the beginning of a large "move developer docs from the wiki
to the tree" operation, which will probably take some time to complete.

The general goal is to consolidate all docs that would be used by developers
(i.e., anyone working on the Haiku tree) into the tree itself. Docs on
getting started contributing, or for translators, designers, etc. will remain
on Trac and on the website.
2018-01-10 16:12:14 -05:00
Jérôme Duval
144f03cda1 random: use user_memcpy/user_strlcpy to read/write the user buffer.
* also check the user buffer address.
2018-01-10 20:57:59 +01:00
Jérôme Duval
d9e4ef3f76 dprintf: use user_memcpy/user_strlcpy to read the user buffer.
* also check the user buffer address.
2018-01-10 19:08:30 +00:00
Augustin Cavalier
a31e05bb68 MediaPlayer: Compare return value of FindMatch against B_ERROR.
Thanks Rene for the review!
2018-01-10 13:49:32 -05:00
Jérôme Duval
79707fefe0 bfs: INode::ReadAttribute() and WriteAttribute() used the user buffer directly
They now use user_memcpy(). Also copy the user buffer used to update the index.
2018-01-10 18:28:14 +00:00
Jérôme Duval
149553d727 packagefs: ReadAttribute with user_memcpy(). 2018-01-10 18:26:24 +00:00
Owen
6ba5b421a3 Add PlaylistTrackCount and PlaylistTrackTitle to scripting
PlaylistTrackCount returns the number of tracks in Playlist,
and PlaylistTrackTitle the title of a numbered track.

Also, remove B_TRANSLATE macros in scripting properties
2018-01-10 18:20:58 +00:00
Jérôme Duval
8c44fc0f65 PackageKit: tweak classes used by packagefs to write to user buffers.
when compiled in kernel mode, BMemoryIO::WriteAt() and BBufferDataReader::ReadData()
now check the buffer to write to, and eventually call user_memcpy() instead of memcpy().
2018-01-09 20:40:12 +01:00
Jérôme Duval
51051c56d3 kernel: wait_for_objects: read the user sigmask with user_memcpy() 2018-01-08 22:19:07 +01:00
Jérôme Duval
9fbffea6f4 kernel: vfs: don't use the attribute name user buffer directly.
instead copy the name on the stack.
2018-01-07 23:33:04 +01:00
Jérôme Duval
ff678dd91b kernel: image: _get_next_image_info shouldn't use a user buffer directly
_user_get_next_image_info() now copies the cookie on the stack, calls
_get_next_image_info() and copy back the cookie to the user buffer.
2018-01-07 22:57:41 +01:00
Jérôme Duval
6e28d80927 kernel: port: check USE_USER_COPY flag before masking it.
writev_port_etc() used memcpy() instead of user_memcpy() for user buffers.
The branch was even left out silently as an optimization on gcc5.
2018-01-07 22:41:39 +01:00
Jérôme Duval
da8f9c86bd kernel: disk_device_manager: no return in method returning void 2018-01-06 21:38:16 +01:00
Jérôme Duval
4644c7cc92 kernel: disk_device_manager: clean user interface
* avoid assignment in if statements
* use boolean conditions
* use copy_from_user_value/copy_to_user_value instead of user_memcpy
* no functional changes except user buffer addresses check in:
_user_get_next_disk_device_id(), _user_get_disk_system_info(),
_user_get_next_disk_system_info(), _user_find_disk_system()
* remove TODO "Add user address checks and check return values of user_memcpy()!".
2018-01-06 21:38:16 +01:00
Jérôme Duval
74fed5b52c kernel: net_notifications: check user buffer address ...
in control syscall
2018-01-06 21:38:09 +01:00
Jérôme Duval
9572fa7340 kernel: signal: check user buffer addresses...
in _user_set_signal_mask(), _user_sigaction(), _user_sigsuspend(), _user_set_signal_stack().
2018-01-06 17:15:18 +01:00
Jérôme Duval
e04d859b34 PowerStatus: call the APM syscall with the correct struct. 2018-01-06 16:13:11 +01:00