43178 Commits

Author SHA1 Message Date
Alex Smith
e3ac2588e6 Changed runtime_loader to use elf_* typedefs over Elf32_*.
This means that it will be using ELF64 types on x86_64 rather than
ELF32. The next step for supporting x86_64 is to implement relocations.
2012-07-25 15:05:21 +01:00
Alex Smith
ce35b7a68a Fixed broken build for x86. 2012-07-25 15:00:50 +01:00
Alex Smith
6f1f972caf Finished system call handler.
The interrupt and system call handlers now perform all the necessary
kernel entry/exit work, and the system call handler now handles calls
with more than 6 arguments. Debugging and system call tracing hooks
are not yet called, will be added when user debugging gets implemented.
2012-07-25 08:56:47 +01:00
Alex Smith
370ab57d49 Initial userland support for x86_64.
Userland switch is implemented, as is basic system call support (using
SYSCALL/SYSRET). The system call handler is not yet complete: it doesn't
handle more than 6 arguments, and does not perform all the necessary kernel
entry/exit work (neither does the interrupt handler). However, this is
sufficient for runtime_loader to start and print some debug output.
2012-07-23 17:12:12 +01:00
Alex Smith
07c6bd65b8 Format string fixes for TRACE_{THREAD,TEAM}. 2012-07-23 14:20:29 +01:00
Alex Smith
fe2e732721 Avoid an unnecessary mov on syscalls with < 4 arguments. 2012-07-23 14:18:54 +01:00
Alex Smith
fd9f32c0db Added some libroot bits for x86_64.
Still some parts missing (the glibc bits + fenv.c), plus the TLS
functions are only stubs.
2012-07-22 14:59:42 +01:00
Alex Smith
aef19e3c95 Implemented creation and destruction of user translation maps. 2012-07-22 13:07:44 +01:00
Alex Smith
5afce632f3 Demangle symbols in stack traces.
Since the demangle debugger extension now gets loaded when booting
from an image, use it in stack traces. Can't print argument values
like on x86, however, since x86_64 uses registers to pass the first
6 arguments rather than the stack we can't easily get to them.
2012-07-22 12:13:04 +01:00
Alex Smith
700c8d3078 Support building images for x86_64.
Added a temporary Haiku64Image file that gets included instead of
HaikuImage when building for x86_64, which I will add to as I port
stuff. Images currently only include the boot loader, kernel and
a bunch of add-ons.
2012-07-22 11:36:50 +01:00
Alex Smith
1c24ebaa5f 64-bit compilation fixes for BFS, add to x86_64 boot image. 2012-07-22 10:42:35 +01:00
Alex Smith
59ae45c1ab Fixed commpage for x86_64.
Since the commpage is at a kernel address, changed 64-bit paging code
to match x86's behaviour of allowing user-accessible mappings to be
created in the kernel portion of the address space. This is also
required by some drivers.
2012-07-21 16:18:10 +01:00
Alex Smith
195a0f350e Changed argument type of fcntl syscall from uint32 to size_t.
Since this argument may be used to pass pointers, uint32 is not
correct for 64-bit. Effectively no change on 32-bit targets, both
size_t and uint32 are unsigned long there.
2012-07-21 14:33:27 +01:00
Alex Smith
5f6b522746 Merge branch 'master' into x86_64 2012-07-21 14:17:22 +01:00
Alex Smith
e6e6f56ccf Include compat/sys/kernel.h rather than "kernel.h".
Using "kernel.h" was pulling in the private kernel.h header instead,
which was causing a build failure on my branch since arch_cpu.h is
C++-only there.
hrev44372
2012-07-21 14:09:08 +01:00
Alex Smith
5234e66d32 Optimized memcpy/memset for x86_64. 2012-07-21 11:55:13 +01:00
Alex Smith
6497f6b1ec Moved the exception handling functions to arch_int.cpp, shared between x86 and x86_64. 2012-07-21 09:11:09 +01:00
Alex Smith
4451c47c64 Compile generic_x86 CPU module for x86_64. 2012-07-21 08:32:07 +01:00
Ingo Weinhold
0a592099a9 Debugger: Rework CLI setup to no longer create a BApplication
The main thread does now serve the CLI input loop.
hrev44371
2012-07-21 09:19:18 +02:00
Alexander von Gluck IV
5ba5e31f8a usb_serial: clean up usb device identification
* Update FTDI, KLSI, Prolific, and Silicon drivers to share a
  common structural layout for device identification.
* More flexible and cleaner than massive switch case statements.
* Avoids the problem of different chipsets from identical vendors.
hrev44370
2012-07-20 22:22:38 -05:00
Rene Gollent
667fd4d0ea Update webkit package with one additional bugfix. hrev44369 2012-07-20 23:01:23 -04:00
Rene Gollent
fd2ea9d893 Fix #8737.
- Updated haikuwebkit package with fixes for context menus and file downloads
  from aldeck's github repository.
hrev44368
2012-07-20 22:41:54 -04:00
Philippe Saint-Pierre
2d5785ba12 CID 611239: Fix resource leak hrev44367 2012-07-20 21:50:13 -04:00
Rene Gollent
902a98ad83 Fix #8753.
- Store whether or not the use of the horizontal scrollbar is desired
  on the class itself. If the CLV was set to use the horizontal scrollbar,
  and then asked to lay itself out while hidden, it would incorrectly assume
  the horizontal scrollbar wasn't in use, and consequently repositioned its
  views such that the horizontal scrollbar and outline view overlapped.
hrev44366
2012-07-20 19:35:21 -04:00
Philippe Saint-Pierre
cb1f2e6525 Precedence of operators issues
Bitwise OR is taking precedence on Conditional operator.

CID 701957, CID 602560
hrev44365
2012-07-20 18:31:44 -04:00
Philippe Saint-Pierre
599150a3fc CID 701957: opendir() NULL returns weren't accounted for. 2012-07-20 18:31:44 -04:00
Philippe Saint-Pierre
8f226f2e87 CID 602195: use sizeof() of structure rather than pointer 2012-07-20 18:31:43 -04:00
Philippe Saint-Pierre
a65ef31585 CID 609036: Avoid to exceed length of string 2012-07-20 18:31:43 -04:00
Philippe Saint-Pierre
cd383c3378 CID 610802: Unchecked return of FindMessage() 2012-07-20 18:31:43 -04:00
Philippe Saint-Pierre
c6df3cf4dc CID 702244: Uninit members were never used 2012-07-20 18:31:42 -04:00
Philippe Saint-Pierre
739ed61c38 CID 709703: Order of ops was unclear, but insignificant 2012-07-20 18:31:42 -04:00
Ingo Weinhold
6d60b554e6 Debugger: Some basic work to get the CLI going
There's an input loop thread which reads and parses command lines and
the infrastructure for registering and executing commands. Currently
only "help" and "quit" commands are implemented.
hrev44364
2012-07-20 23:32:58 +02:00
Ingo Weinhold
0f1f968ffb Debugger: Actually create the CLI, if requested 2012-07-20 23:32:58 +02:00
Ingo Weinhold
af350aa218 Add private shared class ArgumentVector
The parser is based on the FS shell's ArgVector.
2012-07-20 23:32:58 +02:00
Philippe Saint-Pierre
fc4d98a2c0 Coding style fixes, no functionnal changes.
Following comments from Axel about a previous commit of mine.  Sorry Axel for the delay.
hrev44363
2012-07-20 14:28:44 -04:00
Alex Smith
82694bd124 Merge branch 'master' into x86_64
Conflicts:
	headers/posix/arch/x86_64/arch_setjmp.h
	src/system/kernel/cache/block_cache.cpp
2012-07-20 18:33:46 +01:00
Alex Smith
a9fdaec18a Added disk drivers and CD file system modules to the boot image for x86_64.
This adds disk drivers, intel/session partitioning systems, and ISO9660
(+ write/attribute_overlay) modules to the CD/floppy boot image targets
for x86_64. The kernel now detects and mounts the boot CD, and runs up
to attempting to start the boot script.
2012-07-20 17:55:26 +01:00
Alex Smith
7f7e76e461 64-bit compilation fixes for write_overlay and intel partitioning system modules. 2012-07-20 17:53:59 +01:00
Alex Smith
0063d2ba51 Various 64-bit fixes to SCSI and ATA bus managers/drivers.
Mostly compilation fixes, as well as a few 64-bit safety fixes. I've
briefly looked through everything for any obvious issues and fixed
the ones I've found, and it seems like they're working properly, though
there could be some more well hidden ones that I've missed.
2012-07-20 17:47:12 +01:00
Alex Smith
d7ec2fa3bf A couple of format string fixes for tracing printfs. 2012-07-20 17:37:37 +01:00
Alex Smith
1b41387b5f Added missing packed attributes on disk_identifier. 2012-07-20 17:14:17 +01:00
Rene Gollent
fe0407cd46 Fix indentation. hrev44362 2012-07-20 07:34:11 -04:00
Alex Smith
12bd7812dd Ported PCI module to x86_64.
Uses the x86 architecture code, made fixes to printf formats and a
couple of 64-bit fixes. Only potentially intrusive change is that I've
changed PCI.h to use uint32 rather than ulong. I don't see any way
this would cause any issues, though.
2012-07-20 12:00:20 +01:00
Alex Smith
9d4e925cf0 Support x86_64 in config_manager. 2012-07-20 11:56:15 +01:00
Alex Smith
2865db34c8 Compile msi.cpp for x86_64.
Needed to link the PCI module, not enabling it yet though, I'm not
sure whether everything needed for it is in place yet.
2012-07-20 11:53:46 +01:00
Rene Gollent
0b4ae86086 Fix #8751 and possibly also #7198.
- The cdrecord port was using the wrong path for searching for SCSI
  devices. This led to it failing to find SATA CD drives. Updated
  package by Chris Roberts.
hrev44361
2012-07-19 20:58:57 -04:00
Rene Gollent
1f80f2eec3 Fix #8749.
- When a job needs to go dependent on another job, we no longer use recursion
  to manage the execution stack. Instead the job is simply marked as waiting
  and we execute other jobs with no dependencies in the meantime. When a job
  completes, all dependents are moved back onto the unscheduled list and
  executed as needed.

- Adjustments to ResolveValueNodeJob to handle the now asynchronous nature
  of waiting.
hrev44360
2012-07-19 20:24:52 -04:00
ahenriksson
0237895604 CheckBlocks() calculated the group block incorrectly
Signed-off-by: Axel Dörfler <axeld@pinc-software.de>
hrev44359
2012-07-20 01:02:05 +02:00
ahenriksson
d9879eddbf A duplicate array with a single value is not allowed
Such arrays could be created by the BFS code between hrev43837 and
hrev43924, and cause the array to not be free'd when the entry is
removed.

The check in _InsertDuplicate() is not changed, as doing an insertion
will actually repair this problem.

Potentially, the code could be modified to handle this state instead,
but since checkfs can fix it, it doesn't seem necessary.

Signed-off-by: Axel Dörfler <axeld@pinc-software.de>
2012-07-20 01:02:03 +02:00
Matt Madia
173f54f147 Updated copyright in headers. No functional change. hrev44358 2012-07-19 18:14:06 +00:00