From e1419be7cd785669b50013afbf0919ffddc8813f Mon Sep 17 00:00:00 2001 From: Aleksey Bragin Date: Sun, 22 Jun 2008 12:08:15 +0000 Subject: [PATCH] SVN Maintenance: set eol-style:native for lib/sdk/crt. svn path=/trunk/; revision=34046 --- reactos/lib/sdk/crt/except/powerpc/seh.s | 150 +++++++-------- reactos/lib/sdk/crt/process/thread.c | 230 +++++++++++------------ 2 files changed, 190 insertions(+), 190 deletions(-) diff --git a/reactos/lib/sdk/crt/except/powerpc/seh.s b/reactos/lib/sdk/crt/except/powerpc/seh.s index 4965d634b9b..29145068694 100644 --- a/reactos/lib/sdk/crt/except/powerpc/seh.s +++ b/reactos/lib/sdk/crt/except/powerpc/seh.s @@ -1,75 +1,75 @@ -/* - * COPYRIGHT: See COPYING in the top level directory - * PROJECT: ReactOS CRT - * FILE: lib/crt/misc/i386/seh.S - * PURPOSE: SEH Support for the CRT - * PROGRAMMERS: arty - */ - -/* INCLUDES ******************************************************************/ - -#include - -#define DISPOSITION_DISMISS 0 -#define DISPOSITION_CONTINUE_SEARCH 1 -#define DISPOSITION_COLLIDED_UNWIND 3 - -/* GLOBALS *******************************************************************/ - -.globl _global_unwind2 -.globl _local_unwind2 -.globl _abnormal_termination -.globl _except_handler2 -.globl _except_handler3 - -/* FUNCTIONS *****************************************************************/ - -unwind_handler: - blr - -_global_unwind2: - blr - -_local_unwind2: - blr - -_except_handler2: - blr - -_except_handler3: - blr - -// -// -// REMOVE ME REMOVE ME REMOVE ME REMOVE ME REMOVE ME REMOVE ME REMOVE ME -// sorry -// -// -.globl RtlpGetStackLimits -RtlpGetStackLimits: - stwu 1,16(1) - mflr 0 - - stw 0,4(1) - stw 3,8(1) - stw 4,12(1) - - /* Get the current thread */ - lwz 3,KPCR_CURRENT_THREAD(13) - - /* Get the stack limits */ - lwz 4,KTHREAD_STACK_LIMIT(3) - lwz 5,KTHREAD_INITIAL_STACK(3) - subi 5,5,SIZEOF_FX_SAVE_AREA - - /* Return them */ - lwz 3,8(1) - stw 4,0(3) - - lwz 3,12(1) - stw 5,0(3) - - addi 1,1,16 - - /* return */ - blr +/* + * COPYRIGHT: See COPYING in the top level directory + * PROJECT: ReactOS CRT + * FILE: lib/crt/misc/i386/seh.S + * PURPOSE: SEH Support for the CRT + * PROGRAMMERS: arty + */ + +/* INCLUDES ******************************************************************/ + +#include + +#define DISPOSITION_DISMISS 0 +#define DISPOSITION_CONTINUE_SEARCH 1 +#define DISPOSITION_COLLIDED_UNWIND 3 + +/* GLOBALS *******************************************************************/ + +.globl _global_unwind2 +.globl _local_unwind2 +.globl _abnormal_termination +.globl _except_handler2 +.globl _except_handler3 + +/* FUNCTIONS *****************************************************************/ + +unwind_handler: + blr + +_global_unwind2: + blr + +_local_unwind2: + blr + +_except_handler2: + blr + +_except_handler3: + blr + +// +// +// REMOVE ME REMOVE ME REMOVE ME REMOVE ME REMOVE ME REMOVE ME REMOVE ME +// sorry +// +// +.globl RtlpGetStackLimits +RtlpGetStackLimits: + stwu 1,16(1) + mflr 0 + + stw 0,4(1) + stw 3,8(1) + stw 4,12(1) + + /* Get the current thread */ + lwz 3,KPCR_CURRENT_THREAD(13) + + /* Get the stack limits */ + lwz 4,KTHREAD_STACK_LIMIT(3) + lwz 5,KTHREAD_INITIAL_STACK(3) + subi 5,5,SIZEOF_FX_SAVE_AREA + + /* Return them */ + lwz 3,8(1) + stw 4,0(3) + + lwz 3,12(1) + stw 5,0(3) + + addi 1,1,16 + + /* return */ + blr diff --git a/reactos/lib/sdk/crt/process/thread.c b/reactos/lib/sdk/crt/process/thread.c index 3fdab9af142..51ead1e101e 100644 --- a/reactos/lib/sdk/crt/process/thread.c +++ b/reactos/lib/sdk/crt/process/thread.c @@ -1,115 +1,115 @@ -/* - * msvcrt.dll thread functions - * - * Copyright 2000 Jon Griffiths - * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 2.1 of the License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the Free Software - * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA - */ - -#include -#include - -#include -#include - -void _amsg_exit (int errnum); -/* Index to TLS */ -DWORD MSVCRT_tls_index; - -typedef void (*_beginthread_start_routine_t)(void *); -typedef unsigned int (__stdcall *_beginthreadex_start_routine_t)(void *); - -/********************************************************************/ - -typedef struct { - _beginthread_start_routine_t start_address; - void *arglist; -} _beginthread_trampoline_t; - -/********************************************************************* - * msvcrt_get_thread_data - * - * Return the thread local storage structure. - */ -MSVCRT_thread_data *msvcrt_get_thread_data(void) -{ - MSVCRT_thread_data *ptr; - DWORD err = GetLastError(); /* need to preserve last error */ - - if (!(ptr = TlsGetValue( MSVCRT_tls_index ))) - { - if (!(ptr = HeapAlloc( GetProcessHeap(), HEAP_ZERO_MEMORY, sizeof(*ptr) ))) - _amsg_exit( _RT_THREAD ); - if (!TlsSetValue( MSVCRT_tls_index, ptr )) _amsg_exit( _RT_THREAD ); - ptr->random_seed = 1; - } - SetLastError( err ); - return ptr; -} - - -/********************************************************************* - * _beginthread_trampoline - */ -static DWORD CALLBACK _beginthread_trampoline(LPVOID arg) -{ - _beginthread_trampoline_t local_trampoline; - - /* Maybe it's just being paranoid, but freeing arg right - * away seems safer. - */ - memcpy(&local_trampoline,arg,sizeof(local_trampoline)); - free(arg); - - local_trampoline.start_address(local_trampoline.arglist); - return 0; -} - -/********************************************************************* - * _beginthread (MSVCRT.@) - */ -unsigned long _beginthread( - _beginthread_start_routine_t start_address, /* [in] Start address of routine that begins execution of new thread */ - unsigned int stack_size, /* [in] Stack size for new thread or 0 */ - void *arglist) /* [in] Argument list to be passed to new thread or NULL */ -{ - _beginthread_trampoline_t* trampoline; - - TRACE("(%p, %d, %p)\n", start_address, stack_size, arglist); - - /* Allocate the trampoline here so that it is still valid when the thread - * starts... typically after this function has returned. - * _beginthread_trampoline is responsible for freeing the trampoline - */ - trampoline=malloc(sizeof(*trampoline)); - trampoline->start_address = start_address; - trampoline->arglist = arglist; - - /* FIXME */ - return (unsigned long)CreateThread(NULL, stack_size, _beginthread_trampoline, - trampoline, 0, NULL); -} - -/********************************************************************* - * _endthread (MSVCRT.@) - */ -void CDECL _endthread(void) -{ - TRACE("(void)\n"); - - /* FIXME */ - ExitThread(0); -} - +/* + * msvcrt.dll thread functions + * + * Copyright 2000 Jon Griffiths + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the Free Software + * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA + */ + +#include +#include + +#include +#include + +void _amsg_exit (int errnum); +/* Index to TLS */ +DWORD MSVCRT_tls_index; + +typedef void (*_beginthread_start_routine_t)(void *); +typedef unsigned int (__stdcall *_beginthreadex_start_routine_t)(void *); + +/********************************************************************/ + +typedef struct { + _beginthread_start_routine_t start_address; + void *arglist; +} _beginthread_trampoline_t; + +/********************************************************************* + * msvcrt_get_thread_data + * + * Return the thread local storage structure. + */ +MSVCRT_thread_data *msvcrt_get_thread_data(void) +{ + MSVCRT_thread_data *ptr; + DWORD err = GetLastError(); /* need to preserve last error */ + + if (!(ptr = TlsGetValue( MSVCRT_tls_index ))) + { + if (!(ptr = HeapAlloc( GetProcessHeap(), HEAP_ZERO_MEMORY, sizeof(*ptr) ))) + _amsg_exit( _RT_THREAD ); + if (!TlsSetValue( MSVCRT_tls_index, ptr )) _amsg_exit( _RT_THREAD ); + ptr->random_seed = 1; + } + SetLastError( err ); + return ptr; +} + + +/********************************************************************* + * _beginthread_trampoline + */ +static DWORD CALLBACK _beginthread_trampoline(LPVOID arg) +{ + _beginthread_trampoline_t local_trampoline; + + /* Maybe it's just being paranoid, but freeing arg right + * away seems safer. + */ + memcpy(&local_trampoline,arg,sizeof(local_trampoline)); + free(arg); + + local_trampoline.start_address(local_trampoline.arglist); + return 0; +} + +/********************************************************************* + * _beginthread (MSVCRT.@) + */ +unsigned long _beginthread( + _beginthread_start_routine_t start_address, /* [in] Start address of routine that begins execution of new thread */ + unsigned int stack_size, /* [in] Stack size for new thread or 0 */ + void *arglist) /* [in] Argument list to be passed to new thread or NULL */ +{ + _beginthread_trampoline_t* trampoline; + + TRACE("(%p, %d, %p)\n", start_address, stack_size, arglist); + + /* Allocate the trampoline here so that it is still valid when the thread + * starts... typically after this function has returned. + * _beginthread_trampoline is responsible for freeing the trampoline + */ + trampoline=malloc(sizeof(*trampoline)); + trampoline->start_address = start_address; + trampoline->arglist = arglist; + + /* FIXME */ + return (unsigned long)CreateThread(NULL, stack_size, _beginthread_trampoline, + trampoline, 0, NULL); +} + +/********************************************************************* + * _endthread (MSVCRT.@) + */ +void CDECL _endthread(void) +{ + TRACE("(void)\n"); + + /* FIXME */ + ExitThread(0); +} +