VirtualBox

Changeset 3149 in vbox for trunk/src/libs


Ignore:
Timestamp:
Jun 18, 2007 10:24:11 PM (18 years ago)
Author:
vboxsync
Message:

XPCOM: Ported necessary bits of IPC/DConnect tp OS/2.

Location:
trunk/src/libs/xpcom18a4
Files:
3 added
12 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/libs/xpcom18a4/Makefile.kmk

    r2981 r3149  
    3535                                     $(VBOX_GCC_Wno-invalid-offsetof) -Wno-sign-compare -Wno-unused -Wno-ctor-dtor-privacy \
    3636                                     $(VBOX_GCC_fvisibility-inlines-hidden) $(VBOX_GCC_fvisibility-hidden)
    37 
    3837TEMPLATE_XPCOM_CXXFLAGS.debug      = -fno-inline
    3938TEMPLATE_XPCOM_CXXFLAGS.release    = -O
     
    5453TEMPLATE_XPCOM_DEFS.linux          = OSTYPE=\"Linux2.6\"    OSARCH=\"Linux\"  MOZ_DLL_SUFFIX=\".so\"    XP_UNIX=1 _GNU_SOURCE HAVE_VISIBILITY_ATTRIBUTE=1
    5554TEMPLATE_XPCOM_DEFS.l4             = OSTYPE=\"L4ENV\"       OSARCH=\"L4\"     MOZ_DLL_SUFFIX=\".s.so\"  XP_UNIX=1 L4ENV HAVE_VISIBILITY_ATTRIBUTE=1
    56 TEMPLATE_XPCOM_DEFS.os2            = OSTYPE=\"OS/2 4.5\"    OSARCH=\"OS/2\"   MOZ_DLL_SUFFIX=\".dll\"   XP_UNIX=1
     55TEMPLATE_XPCOM_DEFS.os2            = OSTYPE=\"OS/2\ 4.5\"   OSARCH=\"OS/2\"   MOZ_DLL_SUFFIX=\".dll\"   XP_OS2 XP_PC BSD_SELECT TCPV40HDRS
    5756TEMPLATE_XPCOM_LDFLAGS.darwin      = $(VBOXR3NP_LDFLAGS.darwin) \
    5857                                     -fshort-wchar -fno-rtti -fno-exceptions -fpascal-strings \
     
    9493TEMPLATE_XPCOM_ORDERDEPS           = $(foreach hdrinst, $(filter %-HEADERS, $(INSTALLS)), $(TARGET_$(hdrinst))) \
    9594                                     $(PATH_VBox-xpcom-string)/idl_ts
     95ifeq ($(BUILD_TARGET),os2)
     96 ifndef USE_OS2_TOOLKIT_HEADERS
     97  TEMPLATE_XPCOM_DEFS.os2         += OS2EMX_PLAIN_CHAR
     98 endif
     99 TEMPLATE_XPCOM_DEFS.os2          += XP_OS2_EMX OS2
     100 # this is at least for strnicmp()
     101 TEMPLATE_XPCOM_DEFS.os2          += _EMX_SOURCE
     102 # @@todo shouldn't this be somehow default for ASTOOL?
     103 TEMPLATE_XPCOM_ASFLAGS.os2       += -Zomf
     104endif
    96105
    97106
     
    123132    # -Wl,--whole-archive,--no-allow-shlib-undefined
    124133
     134
    125135#
    126136# Template for building XPCOM executables for running at build time.
     
    149159                                          $(VBOX_PATH_SDK)/include/xpcom/xpcom \
    150160                                          $(VBOX_PATH_SDK)/include/xpcom/ipcd
     161TEMPLATE_XPCOMBLDPROG_INCS.$(BUILD_TARGET)         = $(TEMPLATE_XPCOMEXE_INCS.$(BUILD_TARGET))
     162TEMPLATE_XPCOMBLDPROG_INCS.$(BUILD_TARGET_ARCH)    = $(TEMPLATE_XPCOMEXE_INCS.$(BUILD_TARGET_ARCH))
     163TEMPLATE_XPCOMBLDPROG_LIBPATH.$(BUILD_TARGET)      = $(TEMPLATE_XPCOMEXE_LIBPATH.$(BUILD_TARGET))
     164TEMPLATE_XPCOMBLDPROG_LIBPATH.$(BUILD_TARGET_ARCH) = $(TEMPLATE_XPCOMEXE_LIBPATH.$(BUILD_TARGET_ARCH))
     165TEMPLATE_XPCOMBLDPROG_LDFLAGS.$(BUILD_TARGET)      = $(TEMPLATE_XPCOMEXE_LDFLAGS.$(BUILD_TARGET))
     166TEMPLATE_XPCOMBLDPROG_LDFLAGS.$(BUILD_TARGET_ARCH) = $(TEMPLATE_XPCOMEXE_LDFLAGS.$(BUILD_TARGET_ARCH))
    151167TEMPLATE_XPCOMBLDPROG_ORDERDEPS         = $(foreach hdrinst, $(filter %-HEADERS, $(INSTALLS)), $(TARGET_$(hdrinst)))
    152168
     
    313329        nsprpub/pr/include/md/_netbsd.h \
    314330        nsprpub/pr/include/md/_openbsd.h \
     331        nsprpub/pr/include/md/_os2_errors.h \
    315332        nsprpub/pr/include/md/_os2.h \
     333        nsprpub/pr/include/md/_pcos.h \
    316334        nsprpub/pr/include/md/_solaris.h \
    317335        nsprpub/pr/include/md/_unix_errors.h \
     
    528546        xpcom/typelib/xpt/src/xpt_xdr.c
    529547
    530 # We do these ONCE.
    531 libIDL_config_cflags := $(shell $(VBOX_LIBIDL_CONFIG) --cflags)
    532 libIDL_config_libs   := $(shell $(VBOX_LIBIDL_CONFIG) --libs)
    533 xpidl_CFLAGS = \
     548ifeq ($(filter-out os2,$(BUILD_TARGET)),)
     549 xpidl_INCS = $(VBOX_PATH_LIBIDL)/include $(VBOX_PATH_GLIB)/include
     550 xpidl_LIBS = $(VBOX_PATH_LIBIDL)/lib/libidl.lib $(VBOX_PATH_LIBIDL)/lib/glib.lib
     551else
     552 # We do these ONCE.
     553 libIDL_config_cflags := $(shell $(VBOX_LIBIDL_CONFIG) --cflags)
     554 libIDL_config_libs   := $(shell $(VBOX_LIBIDL_CONFIG) --libs)
     555 xpidl_CFLAGS = \
    534556        $(libIDL_config_cflags)
    535 xpidl_LDFLAGS = \
     557 xpidl_LDFLAGS = \
    536558        $(libIDL_config_libs)
     559endif
    537560
    538561#
     
    710733VBox-xpcom-nspr_SOURCES.linux.amd64 = nsprpub/pr/src/md/unix/os_Linux_x86_64.s
    711734
     735VBox-xpcom-nspr_SOURCES.os2  = \
     736        nsprpub/pr/src/io/prdir.c \
     737        nsprpub/pr/src/io/prfile.c \
     738        nsprpub/pr/src/io/prio.c \
     739        nsprpub/pr/src/io/prsocket.c \
     740        nsprpub/pr/src/md/os2/os2misc.c \
     741        nsprpub/pr/src/md/os2/os2sem.c \
     742        nsprpub/pr/src/md/os2/os2inrval.c \
     743        nsprpub/pr/src/md/os2/os2gc.c \
     744        nsprpub/pr/src/md/os2/os2thred.c \
     745        nsprpub/pr/src/md/os2/os2io.c \
     746        nsprpub/pr/src/md/os2/os2cv.c \
     747        nsprpub/pr/src/md/os2/os2sock.c \
     748        nsprpub/pr/src/md/os2/os2_errors.c \
     749        nsprpub/pr/src/md/os2/os2poll.c \
     750        nsprpub/pr/src/md/os2/os2rng.c \
     751        nsprpub/pr/src/threads/prdump.c \
     752        nsprpub/pr/src/threads/prmon.c \
     753        nsprpub/pr/src/threads/prsem.c \
     754        nsprpub/pr/src/threads/prcthr.c \
     755        nsprpub/pr/src/threads/combined/prucpu.c \
     756        nsprpub/pr/src/threads/combined/prucv.c \
     757        nsprpub/pr/src/threads/combined/prulock.c \
     758        nsprpub/pr/src/threads/combined/prustack.c \
     759        nsprpub/pr/src/threads/combined/pruthr.c
     760# gcc/emx sources
     761VBox-xpcom-nspr_SOURCES.os2  += \
     762        nsprpub/pr/src/md/os2/os2emx.s \
     763        nsprpub/pr/src/md/os2/os2vaclegacy.s
     764# IBM VAC sources (not used)
     765#VBox-xpcom-nspr_SOURCES.os2  += \
     766#       nsprpub/pr/src/md/os2/os2vacpp.asm
     767
    712768
    713769nsprpub/pr/src/prvrsion.c_DEPS = $(PATH_VBox-xpcom-nspr)/_pr_bld.h
     
    739795VBox-xpcom-base_TEMPLATE = XPCOM
    740796VBox-xpcom-base_NOINST = 1
     797VBox-xpcom-base_DEFS = _IMPL_NS_COM
    741798VBox-xpcom-base_SOURCES = \
    742799        xpcom/base/nsAllocator.cpp \
     
    753810VBox-xpcom-ds_TEMPLATE = XPCOM
    754811VBox-xpcom-ds_NOINST = 1
     812VBox-xpcom-ds_DEFS = _IMPL_NS_COM
    755813VBox-xpcom-ds_SOURCES = \
    756814        xpcom/ds/pldhash.c \
     
    792850VBox-xpcom-io_TEMPLATE = XPCOM
    793851VBox-xpcom-io_NOINST = 1
    794 VBox-xpcom-io_DEFS = MOZ_USER_DIR=\".mozilla\"
     852VBox-xpcom-io_DEFS = _IMPL_NS_COM MOZ_USER_DIR=\".mozilla\"
    795853VBox-xpcom-io_INCS.darwin = \
    796854        xpcom/MoreFiles
     
    831889VBox-xpcom-components_TEMPLATE = XPCOM
    832890VBox-xpcom-components_NOINST = 1
    833 VBox-xpcom-components_DEFS = EXPORT_XPTI_API
     891VBox-xpcom-components_DEFS = _IMPL_NS_COM EXPORT_XPTI_API
    834892VBox-xpcom-components_SOURCES = \
    835893        xpcom/components/nsCategoryManager.cpp \
     
    843901VBox-xpcom-threads_TEMPLATE = XPCOM
    844902VBox-xpcom-threads_NOINST = 1
     903VBox-xpcom-threads_DEFS = _IMPL_NS_COM
    845904VBox-xpcom-threads_SOURCES = \
    846905        xpcom/threads/plevent.c \
     
    856915VBox-xpcom-xptinfo_TEMPLATE = XPCOM
    857916VBox-xpcom-xptinfo_NOINST = 1
    858 VBox-xpcom-xptinfo_DEFS = EXPORT_XPTI_API
     917VBox-xpcom-xptinfo_DEFS = _IMPL_NS_COM _IMPL_NS_BASE EXPORT_XPTI_API EXPORT_XPT_API
    859918VBox-xpcom-xptinfo_SOURCES = \
    860919        xpcom/reflect/xptinfo/src/xptiFile.cpp \
     
    871930VBox-xpcom-xptcall_TEMPLATE = XPCOM
    872931VBox-xpcom-xptcall_NOINST = 1
    873 VBox-xpcom-xptcall_DEFS                = EXPORT_XPTC_API
     932VBox-xpcom-xptcall_DEFS                = _IMPL_NS_COM _IMPL_NS_BASE EXPORT_XPTC_API
    874933VBox-xpcom-xptcall_DEFS.darwin         = KEEP_STACK_16_BYTE_ALIGNED
    875934VBox-xpcom-xptcall_DEFS.l4             = L4
     
    881940VBox-xpcom-xptcall_SOURCES.linux.amd64 = xpcom/reflect/xptcall/src/md/unix/xptcinvoke_x86_64_linux.cpp \
    882941                                         xpcom/reflect/xptcall/src/md/unix/xptcstubs_x86_64_linux.cpp
     942# gcc/emx sources
     943VBox-xpcom-xptcall_SOURCES.os2         = xpcom/reflect/xptcall/src/md/os2/xptcinvoke_gcc_x86_os2.cpp \
     944                                         xpcom/reflect/xptcall/src/md/os2/xptcstubs_gcc_x86_os2.cpp
     945VBox-xpcom-xptcall_INCS.os2            = xpcom/reflect/xptcall/src/md/unix
     946VBox-xpcom-xptcall_DEFS.os2            = MOZ_NEED_LEADING_UNDERSCORE
     947# IBM/VAC sources (not used)
     948#VBox-xpcom-xptcall_SOURCES.os2         = xpcom/reflect/xptcall/src/md/unix/xptcstubs_os2.cpp \
     949#                                         xpcom/reflect/xptcall/src/md/unix/xptcinvoke_vacpp.asm \
     950#                                         xpcom/reflect/xptcall/src/md/unix/xptcstubs_vacpp.asm
    883951
    884952VBox-xpcom-proxy_TEMPLATE = XPCOM
    885953VBox-xpcom-proxy_NOINST   = 1
     954VBox-xpcom-proxy_DEFS     = _IMPL_NS_COM EXPORT_XPTC_API EXPORT_XPTI_API
    886955VBox-xpcom-proxy_SOURCES  = xpcom/proxy/src/nsProxyEvent.cpp \
    887956                            xpcom/proxy/src/nsProxyEventClass.cpp \
     
    892961# glue library which all client apps will link with
    893962VBoxXPCOMGlue_TEMPLATE = XPCOM
    894 VBoxXPCOMGlue_DEFS     = XPCOM_GLUE
     963VBoxXPCOMGlue_DEFS     = _IMPL_NS_COM XPCOM_GLUE
    895964VBoxXPCOMGlue_SOURCES  = xpcom/glue/nsCOMPtr.cpp \
    896965                         xpcom/glue/nsComponentManagerUtils.cpp \
     
    910979#
    911980VBoxXPCOM_TEMPLATE = XPCOM
     981VBoxXPCOM_NAME = $(basename $(notdir $(LIB_XPCOM)))
    912982VBoxXPCOM_DEFS = BUILD_DCONNECT="1" _IMPL_NS_COM
    913983VBoxXPCOM_SOURCES = \
     
    924994VBoxXPCOM_SOURCES.darwin = \
    925995        darwindeps.cpp
     996VBoxXPCOM_SOURCES.os2 = \
     997        os2deps.cpp
    926998VBoxXPCOM_LIBS = \
    927999        $(TARGET_VBox-xpcom-typelib) \
     
    9711043endif
    9721044TEMPLATE_XPCOMIPC_LIBS.darwin      = $(TARGET_VBoxXPCOM)
     1045TEMPLATE_XPCOMIPC_LIBS.os2         = $(TARGET_VBoxXPCOM)
    9731046
    9741047TEMPLATE_XPCOMIPCEXE               = XPCOM IPC executables
     
    10171090# DCONNECT client shared object
    10181091VBoxXPCOMIPCC_TEMPLATE = XPCOMIPC
     1092VBoxXPCOMIPCC_NAME.os2 = VBoxIPCC
    10191093ifneq ($(BUILD_TARGET),linux)
    10201094VBoxXPCOMIPCC_INST = $(INST_BIN)components/
  • trunk/src/libs/xpcom18a4/ipc/ipcd/shared/src/ipcLog.cpp

    r1854 r3149  
    4949
    5050#ifdef VBOX
     51#if defined(__OS2__) && defined(PAGE_SIZE)
     52#undef PAGE_SIZE
     53#endif
    5154#include <iprt/runtime.h> // for RTR3Init
    52 #else
     55#else // VBOX
    5356PRBool ipcLogEnabled = PR_FALSE;
    5457#endif // VBOX
  • trunk/src/libs/xpcom18a4/nsprpub/pr/include/md/_os2.h

    r1 r3149  
    370370#define _PR_LOCK                      _MD_LOCK
    371371#define _PR_UNLOCK                                        _MD_UNLOCK
    372 
     372extern void
     373md_UnlockAndPostNotifies(struct _MDLock *lock, PRThread *waitThred, struct _MDCVar *waitCV);
    373374#ifdef USE_RAMSEM
    374375#define _MD_NEW_LOCK                  (_PR_MD_NEW_LOCK)
  • trunk/src/libs/xpcom18a4/nsprpub/pr/include/md/_vbox.cfg

    r2988 r3149  
    5454#elif defined(__SOLARIS__)
    5555# include <md/_solaris.cfg>
     56#elif defined(__OS2__)
     57# include <md/_os2.cfg>
    5658#else
    5759# error "Define the correct platform identifier / Port me."
  • trunk/src/libs/xpcom18a4/nsprpub/pr/include/obsolete/protypes.h

    r1 r3149  
    9797
    9898#if !defined(XP_BEOS) && !defined(VMS) \
     99    && !defined(XP_OS2_EMX) \
    99100    && !defined(XP_UNIX) || defined(NTO)
    100101typedef PRUintn uint;
  • trunk/src/libs/xpcom18a4/nsprpub/pr/include/prtypes.h

    r2443 r3149  
    157157#define PR_EXTERN_DATA(__type) extern __declspec(export) __type
    158158#define PR_IMPLEMENT_DATA(__type) __declspec(export) __type
     159
     160#define PR_CALLBACK
     161#define PR_CALLBACK_DECL
     162#define PR_STATIC_CALLBACK(__x) static __x
     163
     164#elif defined(XP_OS2) && defined(__declspec)
     165
     166#define PR_EXPORT(__type) extern __declspec(dllexport) __type
     167#define PR_EXPORT_DATA(__type) extern __declspec(dllexport) __type
     168#define PR_IMPORT(__type) __declspec(dllimport) __type
     169#define PR_IMPORT_DATA(__type) __declspec(dllimport) __type
     170
     171#define PR_EXTERN(__type) extern __declspec(dllexport) __type
     172#define PR_IMPLEMENT(__type) __declspec(dllexport) __type
     173#define PR_EXTERN_DATA(__type) extern __declspec(dllexport) __type
     174#define PR_IMPLEMENT_DATA(__type) __declspec(dllexport) __type
    159175
    160176#define PR_CALLBACK
  • trunk/src/libs/xpcom18a4/nsprpub/pr/src/md/os2/os2sock.c

    r1 r3149  
    6060#define _OS2_WRITEV writev
    6161#define _OS2_IOCTL ioctl
     62#define _OS2_const const
    6263#else
    6364#define _OS2_WRITEV so_writev
    6465#define _OS2_IOCTL so_ioctl
     66#define _OS2_const
    6567#endif
    6668
     
    551553    }
    552554
    553     while ((rv = _OS2_WRITEV(osfd, (const struct iovec*)iov, iov_size)) == -1) {
     555    while ((rv = _OS2_WRITEV(osfd, (_OS2_const struct iovec*)iov, iov_size)) == -1) {
    554556        err = sock_errno();
    555557        if ((err == EWOULDBLOCK))    {
  • trunk/src/libs/xpcom18a4/xpcom/base/nscore.h

    r2443 r3149  
    176176#define NS_EXPORT_(type) __declspec(export) type
    177177#define NS_IMETHOD_(type) virtual type
     178#define NS_IMETHODIMP_(type) type
     179#define NS_METHOD_(type) type
     180#define NS_CALLBACK_(_type, _name) _type (* _name)
     181#define NS_STDCALL
     182
     183#elif defined(XP_OS2) && defined(__declspec)
     184
     185#define NS_IMPORT __declspec(dllimport)
     186#define NS_IMPORT_(type) type __declspec(dllimport) __stdcall
     187#define NS_EXPORT __declspec(dllexport)
     188#define NS_EXPORT_(type) type __declspec(dllexport) __stdcall
     189#define NS_IMETHOD_(type) virtual IMETHOD_VISIBILITY type NS_DEFCALL
    178190#define NS_IMETHODIMP_(type) type
    179191#define NS_METHOD_(type) type
  • trunk/src/libs/xpcom18a4/xpcom/reflect/xptcall/public/xptcall.h

    r2443 r3149  
    5858#define XPTC_PUBLIC_API(t)    PR_IMPLEMENT(t)
    5959#define XPTC_PUBLIC_DATA(t)   PR_IMPLEMENT_DATA(t)
    60 #ifdef _WIN32
     60#if defined(_WIN32)
    6161#    define XPTC_EXPORT           __declspec(dllexport)
     62#elif defined(XP_OS2) && defined(__declspec)
     63#    define XPTC_EXPORT           __declspec(dllexport)
     64#elif defined(XP_OS2_VACPP)
     65#    define XPTC_EXPORT           extern
    6266#else
    6367#  ifdef VBOX_HAVE_VISIBILITY_HIDDEN
     
    6872#endif
    6973#else
    70 #ifdef _WIN32
     74#if defined(_WIN32)
    7175#    define XPTC_PUBLIC_API(t)    __declspec(dllimport) t
    7276#    define XPTC_PUBLIC_DATA(t)   __declspec(dllimport) t
    7377#    define XPTC_EXPORT           __declspec(dllimport)
     78#elif defined(XP_OS2) && defined(__declspec)
     79#    define XPTC_PUBLIC_API(t)    __declspec(dllimport) t
     80#    define XPTC_PUBLIC_DATA(t)   __declspec(dllimport) t
     81#    define XPTC_EXPORT           __declspec(dllimport)
     82#elif defined(XP_OS2_VACPP)
     83#    define XPTC_PUBLIC_API(t)    extern t
     84#    define XPTC_PUBLIC_DATA(t)   extern t
     85#    define XPTC_EXPORT           extern
    7486#else
    7587#    define XPTC_PUBLIC_API(t)    PR_IMPLEMENT(t)
  • trunk/src/libs/xpcom18a4/xpcom/reflect/xptinfo/public/xptinfo.h

    r1 r3149  
    5353#define XPTI_PUBLIC_API(t)    PR_IMPLEMENT(t)
    5454#define XPTI_PUBLIC_DATA(t)   PR_IMPLEMENT_DATA(t)
    55 #ifdef _WIN32
     55#if defined(_WIN32)
    5656#    define XPTI_EXPORT           __declspec(dllexport)
     57#elif defined(XP_OS2) && defined(__declspec)
     58#    define XPTI_EXPORT           __declspec(dllexport)
     59#elif defined(XP_OS2_VACPP)
     60#    define XPTI_EXPORT           extern
    5761#else
    5862#    define XPTI_EXPORT
    5963#endif
    6064#else
    61 #ifdef _WIN32
     65#if defined(_WIN32)
    6266#    define XPTI_PUBLIC_API(t)    __declspec(dllimport) t
    6367#    define XPTI_PUBLIC_DATA(t)   __declspec(dllimport) t
    6468#    define XPTI_EXPORT           __declspec(dllimport)
     69#elif defined(XP_OS2) && defined(__declspec)
     70#    define XPTI_PUBLIC_API(t)    __declspec(dllimport) t
     71#    define XPTI_PUBLIC_DATA(t)   __declspec(dllimport) t
     72#    define XPTI_EXPORT           __declspec(dllimport)
     73#elif defined(XP_OS2_VACPP)
     74#    define XPTI_PUBLIC_API(t)    extern t
     75#    define XPTI_PUBLIC_DATA(t)   extern t
     76#    define XPTI_EXPORT           extern
    6577#else
    6678#    define XPTI_PUBLIC_API(t)    PR_IMPLEMENT(t)
  • trunk/src/libs/xpcom18a4/xpcom/typelib/xpt/tests/PrimitiveTest.c

    r1 r3149  
    6262
    6363struct TestData {
    64     uint32      bit32;
    65     uint16      bit16;
    66     uint8       bit8[2];
     64    PRUint32    bit32;
     65    PRUint16    bit16;
     66    PRUint8     bit8[2];
    6767    char        *cstr;
    6868    XPTString   *str;
     
    9797    XPTCursor curs, *cursor = &curs;
    9898    char *header, *data, *whole;
    99     uint32 hlen, dlen, i;
     99    PRUint32 hlen, dlen, i;
    100100
    101101    TRY("XPT_NewArena", (arena = XPT_NewArena(1024, sizeof(double), "main")));
  • trunk/src/libs/xpcom18a4/xpcom/typelib/xpt/tests/SimpleTypeLib.c

    r1 r3149  
    8181    char *data, *head;
    8282    FILE *out;
    83     uint32 len, header_sz;
     83    PRUint32 len, header_sz;
    8484
    8585    PRBool ok;
Note: See TracChangeset for help on using the changeset viewer.

© 2024 Oracle Support Privacy / Do Not Sell My Info Terms of Use Trademark Policy Automated Access Etiquette