winehq.org
Sign In
Sign Up
Sign In
Sign Up
Manage this list
×
Keyboard Shortcuts
Thread View
j
: Next unread message
k
: Previous unread message
j a
: Jump to all threads
j l
: Jump to MailingList overview
2025
April
March
February
January
2024
December
November
October
September
August
July
June
May
April
March
February
January
2023
December
November
October
September
August
July
June
May
April
March
February
January
2022
December
November
October
September
August
July
June
May
April
March
February
January
2021
December
November
October
September
August
July
June
May
April
March
February
January
2020
December
November
October
September
August
July
June
May
April
March
February
January
2019
December
November
October
September
August
July
June
May
April
March
February
January
2018
December
November
October
September
August
July
June
May
April
March
February
January
2017
December
November
October
September
August
July
June
May
April
March
February
January
2016
December
November
October
September
August
July
June
May
April
March
February
January
2015
December
November
October
September
August
July
June
May
April
March
February
January
2014
December
November
October
September
August
July
June
May
April
March
February
January
2013
December
November
October
September
August
July
June
May
April
March
February
January
2012
December
November
October
September
August
July
June
May
April
March
February
January
2011
December
November
October
September
August
July
June
May
April
March
February
January
2010
December
November
October
September
August
July
June
May
April
March
February
January
2009
December
November
October
September
August
July
June
May
April
March
February
January
2008
December
November
October
September
August
July
June
May
April
March
February
January
2007
December
November
October
September
August
July
June
May
April
March
February
January
2006
December
November
October
September
August
July
June
May
April
March
February
January
2005
December
November
October
September
August
July
June
May
April
March
February
January
2004
December
November
October
September
August
July
June
May
April
March
February
January
2003
December
November
October
September
August
July
June
May
April
March
February
January
2002
December
November
October
September
August
July
June
May
April
March
February
January
2001
December
November
October
September
August
July
June
May
April
March
February
List overview
wine-commits
December 2009
----- 2025 -----
April 2025
March 2025
February 2025
January 2025
----- 2024 -----
December 2024
November 2024
October 2024
September 2024
August 2024
July 2024
June 2024
May 2024
April 2024
March 2024
February 2024
January 2024
----- 2023 -----
December 2023
November 2023
October 2023
September 2023
August 2023
July 2023
June 2023
May 2023
April 2023
March 2023
February 2023
January 2023
----- 2022 -----
December 2022
November 2022
October 2022
September 2022
August 2022
July 2022
June 2022
May 2022
April 2022
March 2022
February 2022
January 2022
----- 2021 -----
December 2021
November 2021
October 2021
September 2021
August 2021
July 2021
June 2021
May 2021
April 2021
March 2021
February 2021
January 2021
----- 2020 -----
December 2020
November 2020
October 2020
September 2020
August 2020
July 2020
June 2020
May 2020
April 2020
March 2020
February 2020
January 2020
----- 2019 -----
December 2019
November 2019
October 2019
September 2019
August 2019
July 2019
June 2019
May 2019
April 2019
March 2019
February 2019
January 2019
----- 2018 -----
December 2018
November 2018
October 2018
September 2018
August 2018
July 2018
June 2018
May 2018
April 2018
March 2018
February 2018
January 2018
----- 2017 -----
December 2017
November 2017
October 2017
September 2017
August 2017
July 2017
June 2017
May 2017
April 2017
March 2017
February 2017
January 2017
----- 2016 -----
December 2016
November 2016
October 2016
September 2016
August 2016
July 2016
June 2016
May 2016
April 2016
March 2016
February 2016
January 2016
----- 2015 -----
December 2015
November 2015
October 2015
September 2015
August 2015
July 2015
June 2015
May 2015
April 2015
March 2015
February 2015
January 2015
----- 2014 -----
December 2014
November 2014
October 2014
September 2014
August 2014
July 2014
June 2014
May 2014
April 2014
March 2014
February 2014
January 2014
----- 2013 -----
December 2013
November 2013
October 2013
September 2013
August 2013
July 2013
June 2013
May 2013
April 2013
March 2013
February 2013
January 2013
----- 2012 -----
December 2012
November 2012
October 2012
September 2012
August 2012
July 2012
June 2012
May 2012
April 2012
March 2012
February 2012
January 2012
----- 2011 -----
December 2011
November 2011
October 2011
September 2011
August 2011
July 2011
June 2011
May 2011
April 2011
March 2011
February 2011
January 2011
----- 2010 -----
December 2010
November 2010
October 2010
September 2010
August 2010
July 2010
June 2010
May 2010
April 2010
March 2010
February 2010
January 2010
----- 2009 -----
December 2009
November 2009
October 2009
September 2009
August 2009
July 2009
June 2009
May 2009
April 2009
March 2009
February 2009
January 2009
----- 2008 -----
December 2008
November 2008
October 2008
September 2008
August 2008
July 2008
June 2008
May 2008
April 2008
March 2008
February 2008
January 2008
----- 2007 -----
December 2007
November 2007
October 2007
September 2007
August 2007
July 2007
June 2007
May 2007
April 2007
March 2007
February 2007
January 2007
----- 2006 -----
December 2006
November 2006
October 2006
September 2006
August 2006
July 2006
June 2006
May 2006
April 2006
March 2006
February 2006
January 2006
----- 2005 -----
December 2005
November 2005
October 2005
September 2005
August 2005
July 2005
June 2005
May 2005
April 2005
March 2005
February 2005
January 2005
----- 2004 -----
December 2004
November 2004
October 2004
September 2004
August 2004
July 2004
June 2004
May 2004
April 2004
March 2004
February 2004
January 2004
----- 2003 -----
December 2003
November 2003
October 2003
September 2003
August 2003
July 2003
June 2003
May 2003
April 2003
March 2003
February 2003
January 2003
----- 2002 -----
December 2002
November 2002
October 2002
September 2002
August 2002
July 2002
June 2002
May 2002
April 2002
March 2002
February 2002
January 2002
----- 2001 -----
December 2001
November 2001
October 2001
September 2001
August 2001
July 2001
June 2001
May 2001
April 2001
March 2001
February 2001
wine-commits@winehq.org
3 participants
1233 discussions
Start a n
N
ew thread
André Hentschel : dbghelp: Fix a typo.
by Alexandre Julliard
31 Dec '09
31 Dec '09
Module: wine Branch: master Commit: 1f168cbd6ea4c026e068490576b61a22b9a46388 URL:
http://source.winehq.org/git/wine.git/?a=commit;h=1f168cbd6ea4c026e06849057…
Author: André Hentschel <nerv(a)dawncrow.de> Date: Wed Dec 30 17:32:20 2009 +0100 dbghelp: Fix a typo. --- dlls/dbghelp/dbghelp.c | 2 +- 1 files changed, 1 insertions(+), 1 deletions(-) diff --git a/dlls/dbghelp/dbghelp.c b/dlls/dbghelp/dbghelp.c index 860d267..d9a828f 100644 --- a/dlls/dbghelp/dbghelp.c +++ b/dlls/dbghelp/dbghelp.c @@ -160,7 +160,7 @@ struct cpu* dbghelp_current_cpu = #elif defined(__x86_64__) &cpu_x86_64 #else -#error define support for you CPU +#error define support for your CPU #endif ;
1
0
0
0
Alexandre Julliard : ole32: Fix some pointer cast warnings on 64-bit.
by Alexandre Julliard
31 Dec '09
31 Dec '09
Module: wine Branch: master Commit: 2bc9ba758ea0576361738adbd49994d64aebb592 URL:
http://source.winehq.org/git/wine.git/?a=commit;h=2bc9ba758ea0576361738adbd…
Author: Alexandre Julliard <julliard(a)winehq.org> Date: Wed Dec 30 21:24:43 2009 +0100 ole32: Fix some pointer cast warnings on 64-bit. --- dlls/ole32/stg_prop.c | 46 +++++++++++++++++++++------------------------- 1 files changed, 21 insertions(+), 25 deletions(-) diff --git a/dlls/ole32/stg_prop.c b/dlls/ole32/stg_prop.c index cd2395f..52153a2 100644 --- a/dlls/ole32/stg_prop.c +++ b/dlls/ole32/stg_prop.c @@ -236,7 +236,7 @@ static PROPVARIANT *PropertyStorage_FindProperty(PropertyStorage_impl *This, { PROPVARIANT *ret = NULL; - dictionary_find(This->propid_to_prop, (void *)propid, (void **)&ret); + dictionary_find(This->propid_to_prop, UlongToPtr(propid), (void **)&ret); TRACE("returning %p\n", ret); return ret; } @@ -246,14 +246,14 @@ static PROPVARIANT *PropertyStorage_FindPropertyByName( PropertyStorage_impl *This, LPCWSTR name) { PROPVARIANT *ret = NULL; - PROPID propid; + void *propid; if (!name) return NULL; if (This->codePage == CP_UNICODE) { - if (dictionary_find(This->name_to_propid, name, (void **)&propid)) - ret = PropertyStorage_FindProperty(This, propid); + if (dictionary_find(This->name_to_propid, name, &propid)) + ret = PropertyStorage_FindProperty(This, PtrToUlong(propid)); } else { @@ -263,9 +263,8 @@ static PROPVARIANT *PropertyStorage_FindPropertyByName( if (SUCCEEDED(hr)) { - if (dictionary_find(This->name_to_propid, ansiName, - (void **)&propid)) - ret = PropertyStorage_FindProperty(This, propid); + if (dictionary_find(This->name_to_propid, ansiName, &propid)) + ret = PropertyStorage_FindProperty(This, PtrToUlong(propid)); CoTaskMemFree(ansiName); } } @@ -278,7 +277,7 @@ static LPWSTR PropertyStorage_FindPropertyNameById(PropertyStorage_impl *This, { LPWSTR ret = NULL; - dictionary_find(This->propid_to_name, (void *)propid, (void **)&ret); + dictionary_find(This->propid_to_name, UlongToPtr(propid), (void **)&ret); TRACE("returning %p\n", ret); return ret; } @@ -490,7 +489,7 @@ static HRESULT PropertyStorage_StorePropWithId(PropertyStorage_impl *This, lcid); if (SUCCEEDED(hr)) { - dictionary_insert(This->propid_to_prop, (void *)propid, prop); + dictionary_insert(This->propid_to_prop, UlongToPtr(propid), prop); if (propid > This->highestProp) This->highestProp = propid; } @@ -534,8 +533,8 @@ static HRESULT PropertyStorage_StoreNameWithId(PropertyStorage_impl *This, TRACE("Adding prop name %s, propid %d\n", This->codePage == CP_UNICODE ? debugstr_w((LPCWSTR)name) : debugstr_a(name), id); - dictionary_insert(This->name_to_propid, name, (void *)id); - dictionary_insert(This->propid_to_name, (void *)id, name); + dictionary_insert(This->name_to_propid, name, UlongToPtr(id)); + dictionary_insert(This->propid_to_name, UlongToPtr(id), name); } return hr; } @@ -666,18 +665,16 @@ static HRESULT WINAPI IPropertyStorage_fnDeleteMultiple( { if (rgpspec[i].ulKind == PRSPEC_LPWSTR) { - PROPID propid; + void *propid; - if (dictionary_find(This->name_to_propid, - (void *)rgpspec[i].u.lpwstr, (void **)&propid)) - dictionary_remove(This->propid_to_prop, (void *)propid); + if (dictionary_find(This->name_to_propid, rgpspec[i].u.lpwstr, &propid)) + dictionary_remove(This->propid_to_prop, propid); } else { if (rgpspec[i].u.propid >= PID_FIRST_USABLE && rgpspec[i].u.propid < PID_MIN_READONLY) - dictionary_remove(This->propid_to_prop, - (void *)rgpspec[i].u.propid); + dictionary_remove(This->propid_to_prop, UlongToPtr(rgpspec[i].u.propid)); else hr = STG_E_INVALIDPARAMETER; } @@ -787,10 +784,9 @@ static HRESULT WINAPI IPropertyStorage_fnDeletePropertyNames( { LPWSTR name = NULL; - if (dictionary_find(This->propid_to_name, (void *)rgpropid[i], - (void **)&name)) + if (dictionary_find(This->propid_to_name, UlongToPtr(rgpropid[i]), (void **)&name)) { - dictionary_remove(This->propid_to_name, (void *)rgpropid[i]); + dictionary_remove(This->propid_to_name, UlongToPtr(rgpropid[i])); dictionary_remove(This->name_to_propid, name); } } @@ -955,8 +951,8 @@ static void PropertyStorage_PropNameDestroy(void *k, void *d, void *extra) static int PropertyStorage_PropCompare(const void *a, const void *b, void *extra) { - TRACE("(%d, %d)\n", (PROPID)a, (PROPID)b); - return (PROPID)a - (PROPID)b; + TRACE("(%d, %d)\n", PtrToUlong(a), PtrToUlong(b)); + return PtrToUlong(a) - PtrToUlong(b); } static void PropertyStorage_PropertyDestroy(void *k, void *d, void *extra) @@ -1513,7 +1509,7 @@ static BOOL PropertyStorage_DictionaryWriter(const void *key, assert(key); assert(closure); - StorageUtl_WriteDWord((LPBYTE)&propid, 0, (DWORD)value); + StorageUtl_WriteDWord((LPBYTE)&propid, 0, PtrToUlong(value)); c->hr = IStream_Write(This->stm, &propid, sizeof(propid), &count); if (FAILED(c->hr)) goto end; @@ -1781,7 +1777,7 @@ static BOOL PropertyStorage_PropertiesWriter(const void *key, const void *value, assert(extra); assert(closure); c->hr = PropertyStorage_WritePropertyToStream(This, c->propNum++, - (DWORD)key, value, c->sectionOffset); + PtrToUlong(key), value, c->sectionOffset); return SUCCEEDED(c->hr); } @@ -2398,7 +2394,7 @@ static HRESULT WINAPI IEnumSTATPROPSTG_fnClone( static BOOL prop_enum_stat(const void *k, const void *v, void *extra, void *arg) { enumx_impl *enumx = arg; - PROPID propid = (PROPID) k; + PROPID propid = PtrToUlong(k); const PROPVARIANT *prop = v; STATPROPSTG stat;
1
0
0
0
Alexandre Julliard : dsound: Fix an invalid pointer cast.
by Alexandre Julliard
31 Dec '09
31 Dec '09
Module: wine Branch: master Commit: 5da782ac539ff5488ea6247ea893a722b4cbafcf URL:
http://source.winehq.org/git/wine.git/?a=commit;h=5da782ac539ff5488ea6247ea…
Author: Alexandre Julliard <julliard(a)winehq.org> Date: Wed Dec 30 21:24:35 2009 +0100 dsound: Fix an invalid pointer cast. --- dlls/dsound/primary.c | 2 +- 1 files changed, 1 insertions(+), 1 deletions(-) diff --git a/dlls/dsound/primary.c b/dlls/dsound/primary.c index 30a8968..8a054f8 100644 --- a/dlls/dsound/primary.c +++ b/dlls/dsound/primary.c @@ -130,7 +130,7 @@ HRESULT DSOUND_ReopenDevice(DirectSoundDevice *device, BOOL forcewave) if (device->driver) flags |= WAVE_DIRECTSOUND; - hres = mmErr(waveOutOpen(&(device->hwo), device->drvdesc.dnDevNode, device->pwfx, (DWORD_PTR)DSOUND_callback, (DWORD)device, flags)); + hres = mmErr(waveOutOpen(&(device->hwo), device->drvdesc.dnDevNode, device->pwfx, (DWORD_PTR)DSOUND_callback, (DWORD_PTR)device, flags)); if (FAILED(hres)) { WARN("waveOutOpen failed\n"); if (device->driver)
1
0
0
0
Alexandre Julliard : msi: Fix some pointer cast warnings on 64-bit.
by Alexandre Julliard
31 Dec '09
31 Dec '09
Module: wine Branch: master Commit: dcf1a0c891233457f3e131d2d9c624bdf2b28a75 URL:
http://source.winehq.org/git/wine.git/?a=commit;h=dcf1a0c891233457f3e131d2d…
Author: Alexandre Julliard <julliard(a)winehq.org> Date: Wed Dec 30 21:24:27 2009 +0100 msi: Fix some pointer cast warnings on 64-bit. --- dlls/msi/join.c | 2 +- dlls/msi/storages.c | 4 ++-- dlls/msi/streams.c | 4 ++-- 3 files changed, 5 insertions(+), 5 deletions(-) diff --git a/dlls/msi/join.c b/dlls/msi/join.c index 134c569..a577aea 100644 --- a/dlls/msi/join.c +++ b/dlls/msi/join.c @@ -259,7 +259,7 @@ static UINT JOIN_find_matching_rows( struct tagMSIVIEW *view, UINT col, if (col == 0 || col > jv->columns) return ERROR_INVALID_PARAMETER; - for (i = (UINT)*handle; i < jv->rows; i++) + for (i = PtrToUlong(*handle); i < jv->rows; i++) { if (view->ops->fetch_int( view, i, col, &row_value ) != ERROR_SUCCESS) continue; diff --git a/dlls/msi/storages.c b/dlls/msi/storages.c index a54d46f..6a8134b 100644 --- a/dlls/msi/storages.c +++ b/dlls/msi/storages.c @@ -452,7 +452,7 @@ static UINT STORAGES_find_matching_rows(struct tagMSIVIEW *view, UINT col, UINT val, UINT *row, MSIITERHANDLE *handle) { MSISTORAGESVIEW *sv = (MSISTORAGESVIEW *)view; - UINT index = (UINT)*handle; + UINT index = PtrToUlong(*handle); TRACE("(%d, %d): %d\n", *row, col, val); @@ -470,7 +470,7 @@ static UINT STORAGES_find_matching_rows(struct tagMSIVIEW *view, UINT col, index++; } - *handle = (MSIITERHANDLE)++index; + *handle = UlongToPtr(++index); if (index >= sv->num_rows) return ERROR_NO_MORE_ITEMS; diff --git a/dlls/msi/streams.c b/dlls/msi/streams.c index 4825ae6..92de01b 100644 --- a/dlls/msi/streams.c +++ b/dlls/msi/streams.c @@ -420,7 +420,7 @@ static UINT STREAMS_find_matching_rows(struct tagMSIVIEW *view, UINT col, UINT val, UINT *row, MSIITERHANDLE *handle) { MSISTREAMSVIEW *sv = (MSISTREAMSVIEW *)view; - UINT index = (UINT)*handle; + UINT index = PtrToUlong(*handle); TRACE("(%d, %d): %d\n", *row, col, val); @@ -438,7 +438,7 @@ static UINT STREAMS_find_matching_rows(struct tagMSIVIEW *view, UINT col, index++; } - *handle = (MSIITERHANDLE)++index; + *handle = UlongToPtr(++index); if (index >= sv->num_rows) return ERROR_NO_MORE_ITEMS;
1
0
0
0
Alexandre Julliard : ntoskrnl: Duplicate the necessary part of instruction emulation to avoid importing kernel .
by Alexandre Julliard
31 Dec '09
31 Dec '09
Module: wine Branch: master Commit: b3878802695ef47cc216f4319d2a2db17d047ec4 URL:
http://source.winehq.org/git/wine.git/?a=commit;h=b3878802695ef47cc216f4319…
Author: Alexandre Julliard <julliard(a)winehq.org> Date: Wed Dec 30 20:39:47 2009 +0100 ntoskrnl: Duplicate the necessary part of instruction emulation to avoid importing kernel. --- dlls/krnl386.exe16/krnl386.exe16.spec | 3 - dlls/ntoskrnl.exe/Makefile.in | 3 +- dlls/ntoskrnl.exe/instr.c | 449 +++++++++++++++++++++++++++++++++ dlls/ntoskrnl.exe/ntoskrnl.c | 24 +-- 4 files changed, 454 insertions(+), 25 deletions(-) Diff:
http://source.winehq.org/git/wine.git/?a=commitdiff;h=b3878802695ef47cc216f…
1
0
0
0
Alexandre Julliard : libwine: Do not export any of the LDT support on non-i386 platforms.
by Alexandre Julliard
31 Dec '09
31 Dec '09
Module: wine Branch: master Commit: 442512d59f3185278fc97966813a4d23175614d4 URL:
http://source.winehq.org/git/wine.git/?a=commit;h=442512d59f3185278fc979668…
Author: Alexandre Julliard <julliard(a)winehq.org> Date: Tue Dec 29 22:18:01 2009 +0100 libwine: Do not export any of the LDT support on non-i386 platforms. --- include/wine/library.h | 21 ++++----------------- include/winnt.h | 3 --- libs/wine/ldt.c | 10 +--------- libs/wine/wine.def | 8 -------- 4 files changed, 5 insertions(+), 37 deletions(-) diff --git a/include/wine/library.h b/include/wine/library.h index 9ff1910..8eedf04 100644 --- a/include/wine/library.h +++ b/include/wine/library.h @@ -82,6 +82,8 @@ extern int wine_mmap_is_in_reserved_area( void *addr, size_t size ); extern int wine_mmap_enum_reserved_areas( int (*enum_func)(void *base, size_t size, void *arg), void *arg, int top_down ); +#ifdef __i386__ + /* LDT management */ extern void wine_ldt_init_locking( void (*lock_func)(void), void (*unlock_func)(void) ); @@ -92,15 +94,9 @@ extern void *wine_ldt_get_ptr( unsigned short sel, unsigned long offset ); extern unsigned short wine_ldt_alloc_entries( int count ); extern unsigned short wine_ldt_realloc_entries( unsigned short sel, int oldcount, int newcount ); extern void wine_ldt_free_entries( unsigned short sel, int count ); -#if defined(__i386__) && !defined(__MINGW32__) && !defined(_MSC_VER) extern unsigned short wine_ldt_alloc_fs(void); extern void wine_ldt_init_fs( unsigned short sel, const LDT_ENTRY *entry ); extern void wine_ldt_free_fs( unsigned short sel ); -#else /* __i386__ */ -static inline unsigned short wine_ldt_alloc_fs(void) { return 0x0b; /* pseudo GDT selector */ } -static inline void wine_ldt_init_fs( unsigned short sel, const LDT_ENTRY *entry ) { } -static inline void wine_ldt_free_fs( unsigned short sel ) { } -#endif /* __i386__ */ /* the local copy of the LDT */ extern struct __wine_ldt_copy @@ -123,9 +119,6 @@ static inline void wine_ldt_set_base( LDT_ENTRY *ent, const void *base ) ent->BaseLow = (WORD)(ULONG_PTR)base; ent->HighWord.Bits.BaseMid = (BYTE)((ULONG_PTR)base >> 16); ent->HighWord.Bits.BaseHi = (BYTE)((ULONG_PTR)base >> 24); -#ifdef _WIN64 - ent->BaseHigh = (ULONG_PTR)base >> 32; -#endif } static inline void wine_ldt_set_limit( LDT_ENTRY *ent, unsigned int limit ) { @@ -136,9 +129,6 @@ static inline void wine_ldt_set_limit( LDT_ENTRY *ent, unsigned int limit ) static inline void *wine_ldt_get_base( const LDT_ENTRY *ent ) { return (void *)(ent->BaseLow | -#ifdef _WIN64 - (ULONG_PTR)ent->BaseHigh << 32 | -#endif (ULONG_PTR)ent->HighWord.Bits.BaseMid << 16 | (ULONG_PTR)ent->HighWord.Bits.BaseHi << 24); } @@ -171,7 +161,6 @@ static inline int wine_ldt_is_empty( const LDT_ENTRY *ent ) /* segment register access */ -#ifdef __i386__ # ifdef __MINGW32__ # define __DEFINE_GET_SEG(seg) \ static inline unsigned short wine_get_##seg(void); \ @@ -200,10 +189,6 @@ static inline int wine_ldt_is_empty( const LDT_ENTRY *ent ) # define __DEFINE_GET_SEG(seg) extern unsigned short wine_get_##seg(void); # define __DEFINE_SET_SEG(seg) extern void wine_set_##seg(unsigned int); # endif /* __GNUC__ || _MSC_VER */ -#else /* __i386__ */ -# define __DEFINE_GET_SEG(seg) static inline unsigned short wine_get_##seg(void) { return 0; } -# define __DEFINE_SET_SEG(seg) static inline void wine_set_##seg(int val) { /* nothing */ } -#endif /* __i386__ */ __DEFINE_GET_SEG(cs) __DEFINE_GET_SEG(ds) @@ -216,6 +201,8 @@ __DEFINE_SET_SEG(gs) #undef __DEFINE_GET_SEG #undef __DEFINE_SET_SEG +#endif /* __i386__ */ + #ifdef __cplusplus } #endif diff --git a/include/winnt.h b/include/winnt.h index 28409af..d4a158e 100644 --- a/include/winnt.h +++ b/include/winnt.h @@ -866,9 +866,6 @@ typedef struct _LDT_ENTRY { unsigned BaseHi : 8; } Bits; } HighWord; -#ifdef _WIN64 /* FIXME: 64-bit code should not be using the LDT */ - DWORD BaseHigh; -#endif } LDT_ENTRY, *PLDT_ENTRY; /* x86-64 context definitions */ diff --git a/libs/wine/ldt.c b/libs/wine/ldt.c index 685ed6a..d56790f 100644 --- a/libs/wine/ldt.c +++ b/libs/wine/ldt.c @@ -33,7 +33,7 @@ #include "winbase.h" #include "wine/library.h" -#ifdef __i386__ +#if defined(__i386__) && !defined(__MINGW32__) && !defined(_MSC_VER) #ifdef __linux__ @@ -118,8 +118,6 @@ static inline int set_thread_area( struct modify_ldt_s *ptr ) #include <i386/user_ldt.h> #endif -#endif /* __i386__ */ - /* local copy of the LDT */ #ifdef __APPLE__ struct __wine_ldt_copy wine_ldt_copy = { { 0, 0, 0 } }; @@ -190,8 +188,6 @@ static int internal_set_entry( unsigned short sel, const LDT_ENTRY *entry ) if (index < LDT_FIRST_ENTRY) return 0; /* cannot modify reserved entries */ -#ifdef __i386__ - #ifdef linux { struct modify_ldt_s ldt_info; @@ -234,8 +230,6 @@ static int internal_set_entry( unsigned short sel, const LDT_ENTRY *entry ) exit(1); #endif -#endif /* __i386__ */ - if (ret >= 0) { wine_ldt_copy.base[index] = wine_ldt_get_base(entry); @@ -384,8 +378,6 @@ void wine_ldt_free_entries( unsigned short sel, int count ) } -#if defined(__i386__) && !defined(__MINGW32__) && !defined(_MSC_VER) - static int global_fs_sel = -1; /* global selector for %fs shared among all threads */ /*********************************************************************** diff --git a/libs/wine/wine.def b/libs/wine/wine.def index b94397a..ed315bd 100644 --- a/libs/wine/wine.def +++ b/libs/wine/wine.def @@ -86,14 +86,6 @@ EXPORTS wine_init wine_init_argv0_path wine_is_dbcs_leadbyte - wine_ldt_alloc_entries - wine_ldt_free_entries - wine_ldt_get_entry - wine_ldt_get_ptr - wine_ldt_init_locking - wine_ldt_is_system - wine_ldt_realloc_entries - wine_ldt_set_entry wine_pthread_get_functions wine_pthread_set_functions wine_switch_to_stack
1
0
0
0
Alexandre Julliard : ntdll: Move the LDT locking functions to the i386-specific code.
by Alexandre Julliard
31 Dec '09
31 Dec '09
Module: wine Branch: master Commit: 82f393dda185a3f3356d930d3d42855c50718710 URL:
http://source.winehq.org/git/wine.git/?a=commit;h=82f393dda185a3f3356d930d3…
Author: Alexandre Julliard <julliard(a)winehq.org> Date: Tue Dec 29 22:10:50 2009 +0100 ntdll: Move the LDT locking functions to the i386-specific code. --- dlls/ntdll/signal_i386.c | 35 +++++++++++++++++++++++++++++++++++ dlls/ntdll/thread.c | 37 ------------------------------------- 2 files changed, 35 insertions(+), 37 deletions(-) diff --git a/dlls/ntdll/signal_i386.c b/dlls/ntdll/signal_i386.c index a4bb95d..5a919b3 100644 --- a/dlls/ntdll/signal_i386.c +++ b/dlls/ntdll/signal_i386.c @@ -2004,6 +2004,40 @@ int CDECL __wine_set_signal_handler(unsigned int sig, wine_signal_handler wsh) } +/*********************************************************************** + * locking for LDT routines + */ +static RTL_CRITICAL_SECTION ldt_section; +static RTL_CRITICAL_SECTION_DEBUG critsect_debug = +{ + 0, 0, &ldt_section, + { &critsect_debug.ProcessLocksList, &critsect_debug.ProcessLocksList }, + 0, 0, { (DWORD_PTR)(__FILE__ ": ldt_section") } +}; +static RTL_CRITICAL_SECTION ldt_section = { &critsect_debug, -1, 0, 0, 0, 0 }; +static sigset_t ldt_sigset; + +static void ldt_lock(void) +{ + sigset_t sigset; + + pthread_sigmask( SIG_BLOCK, &server_block_set, &sigset ); + RtlEnterCriticalSection( &ldt_section ); + if (ldt_section.RecursionCount == 1) ldt_sigset = sigset; +} + +static void ldt_unlock(void) +{ + if (ldt_section.RecursionCount == 1) + { + sigset_t sigset = ldt_sigset; + RtlLeaveCriticalSection( &ldt_section ); + pthread_sigmask( SIG_SETMASK, &sigset, NULL ); + } + else RtlLeaveCriticalSection( &ldt_section ); +} + + /********************************************************************** * signal_alloc_thread */ @@ -2146,6 +2180,7 @@ void signal_init_process(void) if (sigaction( SIGUSR2, &sig_act, NULL ) == -1) goto error; #endif + wine_ldt_init_locking( ldt_lock, ldt_unlock ); return; error: diff --git a/dlls/ntdll/thread.c b/dlls/ntdll/thread.c index c370651..929d443 100644 --- a/dlls/ntdll/thread.c +++ b/dlls/ntdll/thread.c @@ -66,40 +66,6 @@ static RTL_BITMAP fls_bitmap; static LIST_ENTRY tls_links; static int nb_threads = 1; -static RTL_CRITICAL_SECTION ldt_section; -static RTL_CRITICAL_SECTION_DEBUG critsect_debug = -{ - 0, 0, &ldt_section, - { &critsect_debug.ProcessLocksList, &critsect_debug.ProcessLocksList }, - 0, 0, { (DWORD_PTR)(__FILE__ ": ldt_section") } -}; -static RTL_CRITICAL_SECTION ldt_section = { &critsect_debug, -1, 0, 0, 0, 0 }; -static sigset_t ldt_sigset; - -/*********************************************************************** - * locking for LDT routines - */ -static void ldt_lock(void) -{ - sigset_t sigset; - - pthread_sigmask( SIG_BLOCK, &server_block_set, &sigset ); - RtlEnterCriticalSection( &ldt_section ); - if (ldt_section.RecursionCount == 1) ldt_sigset = sigset; -} - -static void ldt_unlock(void) -{ - if (ldt_section.RecursionCount == 1) - { - sigset_t sigset = ldt_sigset; - RtlLeaveCriticalSection( &ldt_section ); - pthread_sigmask( SIG_SETMASK, &sigset, NULL ); - } - else RtlLeaveCriticalSection( &ldt_section ); -} - - /*********************************************************************** * get_unicode_string * @@ -369,9 +335,6 @@ HANDLE thread_init(void) wine_server_fd_to_handle( 2, GENERIC_WRITE|SYNCHRONIZE, OBJ_INHERIT, ¶ms.hStdError ); } - /* initialize LDT locking */ - wine_ldt_init_locking( ldt_lock, ldt_unlock ); - /* initialize time values in user_shared_data */ NtQuerySystemTime( &now ); user_shared_data->SystemTime.LowPart = now.u.LowPart;
1
0
0
0
Alexandre Julliard : winebuild: Get rid of the support for building old style 16-bit modules.
by Alexandre Julliard
31 Dec '09
31 Dec '09
Module: wine Branch: master Commit: f78890e8caf3b81c55c0b60f86c55ea138d1d631 URL:
http://source.winehq.org/git/wine.git/?a=commit;h=f78890e8caf3b81c55c0b60f8…
Author: Alexandre Julliard <julliard(a)winehq.org> Date: Tue Dec 29 21:36:43 2009 +0100 winebuild: Get rid of the support for building old style 16-bit modules. --- tools/winebuild/build.h | 1 - tools/winebuild/main.c | 7 --- tools/winebuild/spec16.c | 96 -------------------------------------- tools/winebuild/winebuild.man.in | 12 +++-- 4 files changed, 8 insertions(+), 108 deletions(-) diff --git a/tools/winebuild/build.h b/tools/winebuild/build.h index 8e21a45..06e2887 100644 --- a/tools/winebuild/build.h +++ b/tools/winebuild/build.h @@ -269,7 +269,6 @@ extern void output_res_o_file( DLLSPEC *spec ); extern void BuildRelays16(void); extern void BuildRelays32(void); -extern void BuildSpec16File( DLLSPEC *spec ); extern void BuildSpec32File( DLLSPEC *spec ); extern void add_16bit_exports( DLLSPEC *spec32, DLLSPEC *spec16 ); diff --git a/tools/winebuild/main.c b/tools/winebuild/main.c index d04d276..aa487ef 100644 --- a/tools/winebuild/main.c +++ b/tools/winebuild/main.c @@ -633,13 +633,6 @@ int main(int argc, char **argv) if (spec->subsystem != IMAGE_SUBSYSTEM_NATIVE) spec->characteristics |= IMAGE_FILE_DLL; if (!spec_file_name) fatal_error( "missing .spec file\n" ); - if (spec->type == SPEC_WIN32 && spec->main_module) /* embedded 16-bit module */ - { - spec->type = SPEC_WIN16; - load_resources( argv, spec ); - if (parse_input_file( spec )) BuildSpec16File( spec ); - break; - } /* fall through */ case MODE_EXE: load_resources( argv, spec ); diff --git a/tools/winebuild/spec16.c b/tools/winebuild/spec16.c index c06b4a1..a9e67ad 100644 --- a/tools/winebuild/spec16.c +++ b/tools/winebuild/spec16.c @@ -463,81 +463,6 @@ static int sort_func_list( ORDDEF **list, int count, /******************************************************************* - * output_init_code - * - * Output the dll initialization code. - */ -static void output_init_code( const DLLSPEC *spec ) -{ - char name[80]; - - sprintf( name, ".L__wine_spec_%s_init", make_c_identifier(spec->dll_name) ); - - output( "\n/* dll initialization code */\n\n" ); - output( "\t.text\n" ); - output( "\t.align 4\n" ); - output( "\t%s\n", func_declaration(name) ); - output( "%s:\n", name ); - output( "\tsubl $4,%%esp\n" ); - if (UsePIC) - { - output( "\tcall %s\n", asm_name("__wine_spec_get_pc_thunk_eax") ); - output( "1:\tleal .L__wine_spec_file_name-1b(%%eax),%%ecx\n" ); - output( "\tpushl %%ecx\n" ); - output( "\tleal .L__wine_spec_dos_header-1b(%%eax),%%ecx\n" ); - output( "\tpushl %%ecx\n" ); - } - else - { - output( "\tpushl $.L__wine_spec_file_name\n" ); - output( "\tpushl $.L__wine_spec_dos_header\n" ); - } - output( "\tcall %s\n", asm_name("__wine_dll_register_16") ); - output( "\taddl $12,%%esp\n" ); - output( "\tret\n" ); - output_function_size( name ); - - sprintf( name, ".L__wine_spec_%s_fini", make_c_identifier(spec->dll_name) ); - - output( "\t.align 4\n" ); - output( "\t%s\n", func_declaration(name) ); - output( "%s:\n", name ); - output( "\tsubl $8,%%esp\n" ); - if (UsePIC) - { - output( "\tcall %s\n", asm_name("__wine_spec_get_pc_thunk_eax") ); - output( "1:\tleal .L__wine_spec_dos_header-1b(%%eax),%%ecx\n" ); - output( "\tpushl %%ecx\n" ); - } - else - { - output( "\tpushl $.L__wine_spec_dos_header\n" ); - } - output( "\tcall %s\n", asm_name("__wine_dll_unregister_16") ); - output( "\taddl $12,%%esp\n" ); - output( "\tret\n" ); - output_function_size( name ); - - if (target_platform == PLATFORM_APPLE) - { - output( "\t.mod_init_func\n" ); - output( "\t.align %d\n", get_alignment(4) ); - output( "\t.long .L__wine_spec_%s_init\n", make_c_identifier(spec->dll_name) ); - output( "\t.mod_term_func\n" ); - output( "\t.align %d\n", get_alignment(4) ); - output( "\t.long .L__wine_spec_%s_fini\n", make_c_identifier(spec->dll_name) ); - } - else - { - output( "\t.section \".init\",\"ax\"\n" ); - output( "\tcall .L__wine_spec_%s_init\n", make_c_identifier(spec->dll_name) ); - output( "\t.section \".fini\",\"ax\"\n" ); - output( "\tcall .L__wine_spec_%s_fini\n", make_c_identifier(spec->dll_name) ); - } -} - - -/******************************************************************* * output_module16 * * Output code for a 16-bit module. @@ -831,27 +756,6 @@ static void output_module16( DLLSPEC *spec ) /******************************************************************* - * BuildSpec16File - * - * Build a Win16 assembly file from a spec file. - */ -void BuildSpec16File( DLLSPEC *spec ) -{ - output_standard_file_header(); - output_module16( spec ); - output_init_code( spec ); - - output( "\n\t%s\n", get_asm_string_section() ); - output( ".L__wine_spec_file_name:\n" ); - output( "\t%s \"%s\"\n", get_asm_string_keyword(), spec->file_name ); - - output_stubs( spec ); - output_get_pc_thunk(); - output_gnu_stack_note(); -} - - -/******************************************************************* * output_spec16_file * * Output the complete data for a spec 16-bit file. diff --git a/tools/winebuild/winebuild.man.in b/tools/winebuild/winebuild.man.in index e0dd72b..7ca151c 100644 --- a/tools/winebuild/winebuild.man.in +++ b/tools/winebuild/winebuild.man.in @@ -167,9 +167,9 @@ option. Generate 32-bit, respectively 64-bit code. .TP .BI \-M,\ --main-module= module -Specify that we are building a 16-bit dll, that will ultimately be -linked together with the 32-bit dll specified in \fImodule\fR. Only -meaningful in \fB--dll\fR mode. +When building a 16-bit dll, set the name of its 32-bit counterpart to +\fImodule\fR. This is used to enforce that the load order for the +16-bit dll matches that of the 32-bit one. .TP .BI \-N,\ --dll-name= dllname Set the internal name of the module. It is only used in Win16 @@ -307,7 +307,11 @@ The entry point will be imported by ordinal instead of by name. The name is still exported. .TP .BI -arch= cpu[,cpu] -The entry point is only available on the specified CPU architecture(s). +The entry point is only available on the specified CPU +architecture(s). The names \fBwin32\fR and \fBwin64\fR match all +32-bit, respectively 64-bit, CPU architectures. In 16-bit dlls, +specifying \fB-arch=win32\fR causes the entry point to be exported +from the 32-bit wrapper module. .SS "Function ordinals" Syntax: .br
1
0
0
0
Alexandre Julliard : kernel: Get rid of support for loading old style 16-bit files.
by Alexandre Julliard
31 Dec '09
31 Dec '09
Module: wine Branch: master Commit: f82ddf5e662da10e442d200f12ac7f8538c7af27 URL:
http://source.winehq.org/git/wine.git/?a=commit;h=f82ddf5e662da10e442d200f1…
Author: Alexandre Julliard <julliard(a)winehq.org> Date: Tue Dec 29 13:13:53 2009 +0100 kernel: Get rid of support for loading old style 16-bit files. --- dlls/krnl386.exe16/ne_module.c | 107 +--------------------------------------- 1 files changed, 1 insertions(+), 106 deletions(-) diff --git a/dlls/krnl386.exe16/ne_module.c b/dlls/krnl386.exe16/ne_module.c index 82e4576..08ed94c 100644 --- a/dlls/krnl386.exe16/ne_module.c +++ b/dlls/krnl386.exe16/ne_module.c @@ -67,18 +67,6 @@ struct ne_segment_table_entry_s #define hFirstModule (pThhook->hExeHead) -struct builtin_dll -{ - const IMAGE_DOS_HEADER *header; /* module headers */ - const char *file_name; /* module file name */ -}; - -/* Table of all built-in DLLs */ - -#define MAX_DLLS 50 - -static struct builtin_dll builtin_dlls[MAX_DLLS]; - static HINSTANCE16 NE_LoadModule( LPCSTR name, BOOL lib_only ); static BOOL16 NE_FreeModule( HMODULE16 hModule, BOOL call_wep ); @@ -152,79 +140,6 @@ static int NE_strncasecmp( const char *str1, const char *str2, int len ) /*********************************************************************** - * find_dll_descr - * - * Find a descriptor in the list - */ -static const IMAGE_DOS_HEADER *find_dll_descr( const char *dllname, const char **file_name ) -{ - int i; - const IMAGE_DOS_HEADER *mz_header; - const IMAGE_OS2_HEADER *ne_header; - const BYTE *name_table; - - for (i = 0; i < MAX_DLLS; i++) - { - mz_header = builtin_dlls[i].header; - if (mz_header) - { - ne_header = (const IMAGE_OS2_HEADER *)((const char *)mz_header + mz_header->e_lfanew); - name_table = (const BYTE *)ne_header + ne_header->ne_restab; - - /* check the dll file name */ - if (!NE_strcasecmp( builtin_dlls[i].file_name, dllname ) || - /* check the dll module name (without extension) */ - (!NE_strncasecmp( dllname, (const char*)name_table+1, *name_table ) && - !strcmp( dllname + *name_table, ".dll" ))) - { - *file_name = builtin_dlls[i].file_name; - return builtin_dlls[i].header; - } - } - } - return NULL; -} - - -/*********************************************************************** - * __wine_dll_register_16 (KERNEL32.@) - * - * Register a built-in DLL descriptor. - */ -void __wine_dll_register_16( const IMAGE_DOS_HEADER *header, const char *file_name ) -{ - int i; - - for (i = 0; i < MAX_DLLS; i++) - { - if (builtin_dlls[i].header) continue; - builtin_dlls[i].header = header; - builtin_dlls[i].file_name = file_name; - break; - } - assert( i < MAX_DLLS ); -} - - -/*********************************************************************** - * __wine_dll_unregister_16 (KERNEL32.@) - * - * Unregister a built-in DLL descriptor. - */ -void __wine_dll_unregister_16( const IMAGE_DOS_HEADER *header ) -{ - int i; - - for (i = 0; i < MAX_DLLS; i++) - { - if (builtin_dlls[i].header != header) continue; - builtin_dlls[i].header = NULL; - break; - } -} - - -/*********************************************************************** * NE_GetPtr */ NE_MODULE *NE_GetPtr( HMODULE16 hModule ) @@ -1050,7 +965,7 @@ static HINSTANCE16 MODULE_LoadModule16( LPCSTR libname, BOOL implicit, BOOL lib_ NE_MODULE *pModule; const IMAGE_DOS_HEADER *descr = NULL; const char *file_name = NULL; - char dllname[32], owner[20], *p; + char dllname[32], *p; const char *basename, *main_module; int owner_exists = FALSE; @@ -1103,27 +1018,7 @@ static HINSTANCE16 MODULE_LoadModule16( LPCSTR libname, BOOL implicit, BOOL lib_ } } } - *p = 0; - /* old-style 16-bit placeholders support, to be removed at some point */ - if (!mod32 && wine_dll_get_owner( dllname, owner, sizeof(owner), &owner_exists ) != -1) - { - mod32 = LoadLibraryA( owner ); - if (mod32) - { - if (!(descr = find_dll_descr( dllname, &file_name ))) - { - FreeLibrary( mod32 ); - owner_exists = 0; - } - } - else - { - /* it's probably disabled by the load order config */ - WARN( "couldn't load owner %s for 16-bit dll %s\n", owner, dllname ); - return ERROR_FILE_NOT_FOUND; - } - } /* loading the 32-bit library can have the side effect of loading the module */ /* if so, simply incr the ref count and return the module */ if (descr && (hModule = GetModuleHandle16( libname )))
1
0
0
0
Alexandre Julliard : kernel: Add an import lib for krnl386, and stop importing 16-bit functions from kernel32.
by Alexandre Julliard
31 Dec '09
31 Dec '09
Module: wine Branch: master Commit: a18bbec0f04af45514fbfed13444dca8d45991b1 URL:
http://source.winehq.org/git/wine.git/?a=commit;h=a18bbec0f04af45514fbfed13…
Author: Alexandre Julliard <julliard(a)winehq.org> Date: Mon Dec 28 23:27:48 2009 +0100 kernel: Add an import lib for krnl386, and stop importing 16-bit functions from kernel32. --- .gitignore | 1 + dlls/Makefile.in | 11 + dlls/commdlg.dll16/Makefile.in | 2 +- dlls/compobj.dll16/Makefile.in | 2 +- dlls/ddeml.dll16/Makefile.in | 2 +- dlls/gdi.exe16/Makefile.in | 2 +- dlls/kernel32/kernel32.spec | 360 ++++++++++++++------------------- dlls/krnl386.exe16/Makefile.in | 2 + dlls/krnl386.exe16/krnl386.exe16.spec | 2 +- dlls/lzexpand.dll16/Makefile.in | 2 +- dlls/mmsystem.dll16/Makefile.in | 2 +- dlls/msvideo.dll16/Makefile.in | 2 +- dlls/ntoskrnl.exe/Makefile.in | 2 +- dlls/ole2.dll16/Makefile.in | 2 +- dlls/ole2disp.dll16/Makefile.in | 2 +- dlls/olecli.dll16/Makefile.in | 2 +- dlls/setupx.dll16/Makefile.in | 2 +- dlls/shell.dll16/Makefile.in | 2 +- dlls/storage.dll16/Makefile.in | 2 +- dlls/system.drv16/Makefile.in | 2 +- dlls/toolhelp.dll16/Makefile.in | 2 +- dlls/typelib.dll16/Makefile.in | 2 +- dlls/user.exe16/Makefile.in | 2 +- dlls/ver.dll16/Makefile.in | 2 +- dlls/w32skrnl/Makefile.in | 2 +- dlls/w32sys.dll16/Makefile.in | 2 +- dlls/win32s16.dll16/Makefile.in | 2 +- dlls/winaspi.dll16/Makefile.in | 2 +- dlls/winedos/Makefile.in | 2 +- dlls/wing.dll16/Makefile.in | 2 +- dlls/winsock.dll16/Makefile.in | 2 +- dlls/wow32/Makefile.in | 2 +- programs/winevdm/Makefile.in | 2 +- programs/winhelp.exe16/Makefile.in | 2 +- programs/winoldap.mod16/Makefile.in | 2 +- 35 files changed, 202 insertions(+), 234 deletions(-) Diff:
http://source.winehq.org/git/wine.git/?a=commitdiff;h=a18bbec0f04af45514fbf…
1
0
0
0
← Newer
1
2
3
4
5
6
...
124
Older →
Jump to page:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
Results per page:
10
25
50
100
200