- Comment out NtRaiseException and NtContinue for now
- Use TrapFrame->PreviousMode like done for arm
svn path=/branches/ros-amd64-bringup/; revision=45187
[HAL]: Add code to detect EISA systems with ELCR (Edge/Level Control Register). Since the current HAL does not support these, warn users about any level/shared interrupts, since they are likely to cause trouble.
svn path=/trunk/; revision=45180
New noteworthy improvements include (in addition to the other improvements made in the commits that were reverted in trunk):
- Support for sending/receiving packets > 16KB in size
- Samba-tng works
- Tracert works
- Major speed and stability improvements (especially for TCP connections)
- Use ExAllocatePoolWithTag/ExFreePoolWithTag instead of memtrack
svn path=/trunk/; revision=45172
Please, next time before you harass us with e-mails, try to read your logs. LD choses a random entrypoint if the symbol cannot be found.
svn path=/trunk/; revision=45162
[NTOS]: Implement KiIsNpxPresent and KiIsNpxErrataPresent in C. It's much clearer what these are doing now.
[NTOS]: Implement KiFlushNPXState and fix some bugs that were present in the ASM version, such as a wrong NPX state check.
[NTOS]: Implement working intrinsics for fxrstor, fxsave, fnsave and enable them for flushing. We'll update the FPU trap code to use these later.
svn path=/trunk/; revision=45156
[NTOS]: Make KiSystemStartup the real C entrypoint of the kernel, and move the "Am I being booted by FreeLDR" logic inside it -- it will then call KiRosPrepareForSystemStartup as earlier.
[NTOS]: Move the Double Fault and Boot Stack declaration in C code, with the proper alignment attribute.
[NTOS]: Although the concern that KiSystemStartup cannot be 100% C since it modifies ESP is real (Thomas' original fix of Alex's code), we don't need that much of it in assembly. Instead, write a simple trampoline (KiSwitchToBootStack) inline which switches stacks and jumps to a second-stage C function.
[NTOS]: Completely remove boot.S as it isn't needed anymore, ReactOS startup is back to being (nearly) 100% C.
svn path=/trunk/; revision=45152
[NTOS]: Implement SYSENTER system calls in C as well.
All system calls are now handled in C. This code will be further optimized/refined soon.
svn path=/trunk/; revision=45148
[NTOS]: The ASM KiServiceExit/KiServiceExit2 are no more. All system call exit is now done through the C trap exit code.
svn path=/trunk/; revision=45144
[NTOS]: Implement C version of KiServiceExit, the second system call exit routine. This one sets a new EAX value to be returned to the caller and is used by system calls.
[NTOS]: Implement NtContinue in C instead of ASM. Due to the changes above, this can now be done in C and use the new KiServiceExit.
svn path=/trunk/; revision=45142
[NTOS]: Implement system service exit (for system calls or KiServiceExit2) in KiExitTrap. Both iret (for user calls), jmp (for kernel calls) and sysexit (for user fast calls) are implemented.
[NTOS]: Implement KiThreadStartup in C instead of ASM. It is the first caller of the new KiServiceExit2. Threads now start up in C!
svn path=/trunk/; revision=45141
[NTOS]: Implement KiComputeTimerTableIndex in C instead of ASM. Based off eVb's ARM implementation, bugfixed to do correct math instead.
As a side effect, this should fix timers on ARM ;-)
svn path=/trunk/; revision=45140
Fix buffer overrun in ExFreePoolWithTag when dealing with a PoolType other than NonPagedPool and PagedPool. Spotted by Amine Khaldi.
svn path=/trunk/; revision=45134