Alexandre Julliard : libwine: Don' t export the selector functions for the Windows build.

Alexandre Julliard julliard at winehq.org
Fri Dec 5 07:43:01 CST 2008


Module: wine
Branch: master
Commit: 44162aa21a5c00d9efe603bffdd2cb1f86ed2b13
URL:    http://source.winehq.org/git/wine.git/?a=commit;h=44162aa21a5c00d9efe603bffdd2cb1f86ed2b13

Author: Alexandre Julliard <julliard at winehq.org>
Date:   Fri Dec  5 13:25:23 2008 +0100

libwine: Don't export the selector functions for the Windows build.

---

 include/wine/library.h |   12 ++++++++++--
 libs/wine/ldt.c        |    5 +----
 libs/wine/wine.def     |   11 -----------
 3 files changed, 11 insertions(+), 17 deletions(-)

diff --git a/include/wine/library.h b/include/wine/library.h
index 2411ae1..84d0a60 100644
--- a/include/wine/library.h
+++ b/include/wine/library.h
@@ -93,7 +93,7 @@ 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 );
-#ifdef __i386__
+#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 );
@@ -178,7 +178,15 @@ static inline int wine_ldt_is_empty( const LDT_ENTRY *ent )
 /* segment register access */
 
 #ifdef __i386__
-# ifdef __GNUC__
+# ifdef __MINGW32__
+#  define __DEFINE_GET_SEG(seg) \
+    static inline unsigned short wine_get_##seg(void); \
+    static inline unsigned short wine_get_##seg(void) \
+    { unsigned short res; __asm__ __volatile__("movw %%" #seg ",%w0" : "=r"(res)); return res; }
+#  define __DEFINE_SET_SEG(seg) \
+    static inline void wine_set_##seg(int val); \
+    static inline void wine_set_##seg(int val) { __asm__("movw %w0,%%" #seg : : "r" (val)); }
+# elif defined(__GNUC__)
 #  define __DEFINE_GET_SEG(seg) \
     extern inline unsigned short wine_get_##seg(void); \
     extern inline unsigned short wine_get_##seg(void) \
diff --git a/libs/wine/ldt.c b/libs/wine/ldt.c
index c46ff6f..80ceba8 100644
--- a/libs/wine/ldt.c
+++ b/libs/wine/ldt.c
@@ -385,7 +385,7 @@ void wine_ldt_free_entries( unsigned short sel, int count )
 }
 
 
-#ifdef __i386__
+#if defined(__i386__) && !defined(__MINGW32__) && !defined(_MSC_VER)
 
 static int global_fs_sel = -1;  /* global selector for %fs shared among all threads */
 
@@ -477,8 +477,6 @@ void wine_ldt_free_fs( unsigned short sel )
 /***********************************************************************
  *           selector access functions
  */
-# ifndef _MSC_VER
-/* Nothing needs to be done for MS C, it will do with inline versions from the winnt.h */
 __ASM_GLOBAL_FUNC( wine_get_cs, "movw %cs,%ax\n\tret" )
 __ASM_GLOBAL_FUNC( wine_get_ds, "movw %ds,%ax\n\tret" )
 __ASM_GLOBAL_FUNC( wine_get_es, "movw %es,%ax\n\tret" )
@@ -487,6 +485,5 @@ __ASM_GLOBAL_FUNC( wine_get_gs, "movw %gs,%ax\n\tret" )
 __ASM_GLOBAL_FUNC( wine_get_ss, "movw %ss,%ax\n\tret" )
 __ASM_GLOBAL_FUNC( wine_set_fs, "movl 4(%esp),%eax\n\tmovw %ax,%fs\n\tret" )
 __ASM_GLOBAL_FUNC( wine_set_gs, "movl 4(%esp),%eax\n\tmovw %ax,%gs\n\tret" )
-# endif /* defined(_MSC_VER) */
 
 #endif /* __i386__ */
diff --git a/libs/wine/wine.def b/libs/wine/wine.def
index dc5f853..318db78 100644
--- a/libs/wine/wine.def
+++ b/libs/wine/wine.def
@@ -79,28 +79,19 @@ EXPORTS
     wine_get_build_dir
     wine_get_build_id
     wine_get_config_dir
-    wine_get_cs
     wine_get_data_dir
-    wine_get_ds
-    wine_get_es
-    wine_get_fs
-    wine_get_gs
     wine_get_server_dir
     wine_get_sortkey
-    wine_get_ss
     wine_get_user_name
     wine_get_version
     wine_init
     wine_init_argv0_path
     wine_is_dbcs_leadbyte
     wine_ldt_alloc_entries
-    wine_ldt_alloc_fs
     wine_ldt_copy
     wine_ldt_free_entries
-    wine_ldt_free_fs
     wine_ldt_get_entry
     wine_ldt_get_ptr
-    wine_ldt_init_fs
     wine_ldt_init_locking
     wine_ldt_is_system
     wine_ldt_realloc_entries
@@ -111,8 +102,6 @@ EXPORTS
     wine_mmap_remove_reserved_area
     wine_pthread_get_functions
     wine_pthread_set_functions
-    wine_set_fs
-    wine_set_gs
     wine_switch_to_stack
     wine_utf8_mbstowcs
     wine_utf8_wcstombs




More information about the wine-cvs mailing list