From 71308351a8acdf0c6a1fd45eb8427888f994eaae Mon Sep 17 00:00:00 2001 From: David Schleef Date: Thu, 29 Apr 2004 02:52:21 +0000 Subject: [PATCH] win32/: Original commit message from CVS: Several new files from Steve Lhomme's MSVC patch (bug #141317): * win32/GStreamer.vcproj: * win32/Makefile: * win32/config.h: * win32/dirent.c: (_topendir), (_treaddir), (_tclosedir), (_trewinddir), (_ttelldir), (_tseekdir): * win32/dirent.h: * win32/gst-inspect.vcproj: * win32/gst-launch.vcproj: * win32/gst-register.vcproj: * win32/gstbytestream.vcproj: * win32/gstelements.vcproj: * win32/gstoptimalscheduler.vcproj: * win32/gstspider.vcproj: * win32/gtchar.h: * win32/mman.c: (mmap), (mprotect), (msync), (munmap): * win32/mman.h: * win32/mman.inl: * win32/msvc71.sln: --- ChangeLog | 22 +++ win32/GStreamer.vcproj | 395 ++++++++++++++++++++++++++++++++++++++ win32/Makefile | 60 ++++++ win32/config.h | 199 ++++++++++++++++++++ win32/dirent.c | 292 ++++++++++++++++++++++++++++ win32/dirent.h | 147 +++++++++++++++ win32/gst-inspect.vcproj | 144 ++++++++++++++ win32/gst-launch.vcproj | 144 ++++++++++++++ win32/gst-register.vcproj | 144 ++++++++++++++ win32/gstbytestream.vcproj | 151 +++++++++++++++ win32/gstelements.vcproj | 244 ++++++++++++++++++++++++ win32/gstoptimalscheduler.vcproj | 148 +++++++++++++++ win32/gstspider.vcproj | 163 ++++++++++++++++ win32/gtchar.h | 397 +++++++++++++++++++++++++++++++++++++++ win32/mman.c | 87 +++++++++ win32/mman.h | 61 ++++++ win32/mman.inl | 129 +++++++++++++ win32/msvc71.sln | 139 ++++++++++++++ win32/vs7/GStreamer.vcproj | 395 ++++++++++++++++++++++++++++++++++++++ win32/vs7/Makefile | 60 ++++++ win32/vs7/gst-inspect.vcproj | 144 ++++++++++++++ win32/vs7/gst-launch.vcproj | 144 ++++++++++++++ win32/vs7/gst-register.vcproj | 144 ++++++++++++++ win32/vs7/gstelements.vcproj | 244 ++++++++++++++++++++++++ win32/vs7/mman.c | 87 +++++++++ win32/vs7/mman.h | 61 ++++++ win32/vs7/mman.inl | 129 +++++++++++++ win32/vs7/msvc71.sln | 139 ++++++++++++++ 28 files changed, 4613 insertions(+) create mode 100644 win32/GStreamer.vcproj create mode 100644 win32/Makefile create mode 100644 win32/config.h create mode 100644 win32/dirent.c create mode 100644 win32/dirent.h create mode 100644 win32/gst-inspect.vcproj create mode 100644 win32/gst-launch.vcproj create mode 100644 win32/gst-register.vcproj create mode 100644 win32/gstbytestream.vcproj create mode 100644 win32/gstelements.vcproj create mode 100644 win32/gstoptimalscheduler.vcproj create mode 100644 win32/gstspider.vcproj create mode 100644 win32/gtchar.h create mode 100644 win32/mman.c create mode 100644 win32/mman.h create mode 100644 win32/mman.inl create mode 100644 win32/msvc71.sln create mode 100644 win32/vs7/GStreamer.vcproj create mode 100644 win32/vs7/Makefile create mode 100644 win32/vs7/gst-inspect.vcproj create mode 100644 win32/vs7/gst-launch.vcproj create mode 100644 win32/vs7/gst-register.vcproj create mode 100644 win32/vs7/gstelements.vcproj create mode 100644 win32/vs7/mman.c create mode 100644 win32/vs7/mman.h create mode 100644 win32/vs7/mman.inl create mode 100644 win32/vs7/msvc71.sln diff --git a/ChangeLog b/ChangeLog index 764b321..4483522 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,25 @@ +2004-04-28 David Schleef + + Several new files from Steve Lhomme's MSVC patch (bug #141317): + * win32/GStreamer.vcproj: + * win32/Makefile: + * win32/config.h: + * win32/dirent.c: (_topendir), (_treaddir), (_tclosedir), + (_trewinddir), (_ttelldir), (_tseekdir): + * win32/dirent.h: + * win32/gst-inspect.vcproj: + * win32/gst-launch.vcproj: + * win32/gst-register.vcproj: + * win32/gstbytestream.vcproj: + * win32/gstelements.vcproj: + * win32/gstoptimalscheduler.vcproj: + * win32/gstspider.vcproj: + * win32/gtchar.h: + * win32/mman.c: (mmap), (mprotect), (msync), (munmap): + * win32/mman.h: + * win32/mman.inl: + * win32/msvc71.sln: + 2004-04-29 Benjamin Otte * gst/gst.c: (init_post): diff --git a/win32/GStreamer.vcproj b/win32/GStreamer.vcproj new file mode 100644 index 0000000..e511316 --- /dev/null +++ b/win32/GStreamer.vcproj @@ -0,0 +1,395 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/win32/Makefile b/win32/Makefile new file mode 100644 index 0000000..fb94a42 --- /dev/null +++ b/win32/Makefile @@ -0,0 +1,60 @@ +# Project: libgstreamer +# Makefile to use with GNU Make +# +# Uses the Free Visual C++ 2003 compiler from Microsoft +# http://msdn.microsoft.com/visualc/vctoolkit2003/ + +# Compile with debug information? IMPOSSIBLE with the free version of the compiler +#DEBUG = yes + + +# +# Don't change anything below this line. +# +CXX = cl /Tp +CC = cl /Tc +SRC = dirent.c ../gst/parse/grammar.tab.c ../gst/gst.c ../gst/gstatomic.c ../gst/gstbin.c ../gst/gstbuffer.c ..\gst\gstcaps.c ..\gst\gstclock.c ..\gst\gstcpu.c ..\gst\gstdata.c ..\gst\gstelement.c ..\gst\gstelementfactory.c ..\gst\gstenumtypes.c ..\gst\gsterror.c ..\gst\gstevent.c ..\gst\gstfilter.c ..\gst\gstformat.c ..\gst\gstindex.c ..\gst\gstinfo.c ..\gst\gstmarshal.c ..\gst\gstmemchunk.c ..\gst\gstobject.c ..\gst\gstpad.c ..\gst\gstparse.c ..\gst\gstpipeline.c ..\gst\gstplugin.c ..\gst\gstpluginfeature.c ..\gst\gstprobe.c ..\gst\gstquery.c ..\gst\gstqueue.c ..\gst\gstregistry.c ..\gst\gstregistrypool.c ..\gst\gstscheduler.c ..\gst\gststructure.c ..\gst\gstsystemclock.c ..\gst\gsttag.c ..\gst\gstthread.c ..\gst\gsttrace.c ..\gst\gsttypefind.c ..\gst\gsturi.c ..\gst\gsturitype.c ..\gst\gstutils.c ..\gst\gstvalue.c ..\gst\gstxml.c ..\gst\registries\gstxmlregistry.c ..\gst\parse\lex._gst_parse_yy.c +OBJ = $(patsubst %.c,%.obj,$(SRC)) +INCS = /I. /I.. /I../libs /I../../popt/include /I../../glib/gmodule /I../../libiconv/include /I../../libxml2/include/libxml2 /I../../glib /I../../glib/glib /I../../glib/build/win32 +LDFLAGS = /NOLOGO /DLL /MAP:gstreamer.map /LIBPATH:../../glib/win32 /LIBPATH:../../popt/lib /LIBPATH:../../libxml2/lib +OPTMIZ = /G6 /O2 /Oi /Wp64 /GL +CXXFLAGS = $(INCS) /DWIN32 /D_WINDOWS /D_USRDLL /DHAVE_CONFIG_H /DGSTREAMER_EXPORTS /nologo + + +ifeq (yes,$(DEBUG)) +CXXFLAGS += /Zi /DDEBUG /D_DEBUG /MTd /RTC1 +LDFLAGS += /DEBUG +else +CXXFLAGS += /MT /DGST_DISABLE_GST_DEBUG +LDFLAGS += /OPT:REF +endif + +LIBS = libgstreamer.dll + +.PHONY: all all-before all-after clean clean-custom + +%.obj : %.cpp + $(CXX) $< /c $(CXXFLAGS) /Fo$@ + +%.obj : %.c + $(CC) $< /c $(CXXFLAGS) /Fo$@ + +all: lib + +lib: $(LIBS) + +clean: + $(RM) $(OBJ) libgstreamer.lib libgstreamer.dll + +libgstreamer.dll: $(OBJ) $(SRC) + link $(LDFLAGS) /OUT:$@ $(OBJ) libglib-2.0.lib libgobject-2.0.lib libgthread-2.0.lib libgmodule-2.0.lib libxml2.lib libpopt.lib wsock32.lib + +depend: + $(CXX) $(CXXFLAGS) -MM $(SRC) > .depend + +# +# include dependency files if they exist +# +ifneq ($(wildcard .depend),) +include .depend +endif diff --git a/win32/config.h b/win32/config.h new file mode 100644 index 0000000..babb95a --- /dev/null +++ b/win32/config.h @@ -0,0 +1,199 @@ +/* config.h.in. Generated from configure.ac by autoheader. */ + +/* always defined to indicate that i18n is enabled */ +#undef ENABLE_NLS + +/* gettext package name */ +#undef GETTEXT_PACKAGE + +/* Location of registry */ +#define GST_CACHE_DIR "" + +/* macro to use to show function name */ +/*#undef GST_FUNCTION*/ + +/* Default errorlevel to use */ +#undef GST_LEVEL_DEFAULT + +/* GStreamer license */ +#define GST_LICENSE "LGPL" + +/* Define the location where the catalogs will be installed */ +#undef GST_LOCALEDIR + +/* package origin */ +#define GST_ORIGIN "http://gstreamer.net" + +/* package name in plugins */ +#define GST_PACKAGE "GStreamer" + +/* Define the version */ +#define GST_VERSION "0.8.1" + +/* Define the release version */ +#define GST_VERSION_RELEASE "20040129_103536" + +/* Define if atomic.h header file is available */ +#undef HAVE_ATOMIC_H + +/* Define to 1 if you have the `bind_textdomain_codeset' function. */ +#undef HAVE_BIND_TEXTDOMAIN_CODESET + +/* Define if the target CPU is an Alpha */ +#undef HAVE_CPU_ALPHA + +/* Define if the target CPU is an ARM */ +#undef HAVE_CPU_ARM + +/* Define if the target CPU is a HPPA */ +#undef HAVE_CPU_HPPA + +/* Define if the target CPU is an x86 */ +#undef HAVE_CPU_I386 + +/* Define if the target CPU is a IA64 */ +#undef HAVE_CPU_IA64 + +/* Define if the target CPU is a M68K */ +#undef HAVE_CPU_M68K + +/* Define if the target CPU is a MIPS */ +#undef HAVE_CPU_MIPS + +/* Define if the target CPU is a PowerPC */ +#undef HAVE_CPU_PPC + +/* Define if the target CPU is a S390 */ +#undef HAVE_CPU_S390 + +/* Define if the target CPU is a SPARC */ +#undef HAVE_CPU_SPARC + +/* Define if the target CPU is a x86_64 */ +#undef HAVE_CPU_X86_64 + +/* Define to 1 if you have the `dcgettext' function. */ +#undef HAVE_DCGETTEXT + +/* Defined if we have dladdr () */ +#undef HAVE_DLADDR + +/* Define to 1 if you have the header file. */ +#undef HAVE_DLFCN_H + +/* defined if the compiler implements __func__ */ +#undef HAVE_FUNC + +/* defined if the compiler implements __FUNCTION__ */ +//#undef HAVE_FUNCTION + +/* Define if the GNU gettext() function is already present or preinstalled. */ +#undef HAVE_GETTEXT + +/* Define to 1 if you have the header file. */ +#undef HAVE_INTTYPES_H + +/* Define if your file defines LC_MESSAGES. */ +#undef HAVE_LC_MESSAGES + +/* Define if libmmx is available */ +#undef HAVE_LIBMMX + +/* Define if libxml2 is available */ +//#undef HAVE_LIBXML2 +#define HAVE_LIBXML2 + +/* Define to 1 if you have the header file. */ +#undef HAVE_LOCALE_H + +/* defined if we have makecontext () */ +#undef HAVE_MAKECONTEXT + +/* Define to 1 if you have the header file. */ +#undef HAVE_MEMORY_H + +/* Defined if we have posix_memalign () */ +#undef HAVE_POSIX_MEMALIGN + +/* defined if the compiler implements __PRETTY_FUNCTION__ */ +#undef HAVE_PRETTY_FUNCTION + +/* Defined if libpthread has pthread_attr_setstack () */ +#undef HAVE_PTHREAD_ATTR_SETSTACK + +/* Define if RDTSC is available */ +#undef HAVE_RDTSC + +/* Defined if we have sigaction () */ +#undef HAVE_SIGACTION + +/* Define to 1 if you have the header file. */ +#undef HAVE_STDINT_H + +/* Define to 1 if you have the header file. */ +#undef HAVE_STDLIB_H + +/* Define to 1 if you have the header file. */ +#undef HAVE_STRINGS_H + +/* Define to 1 if you have the header file. */ +#undef HAVE_STRING_H + +/* Define to 1 if you have the header file. */ +#undef HAVE_SYS_STAT_H + +/* Define to 1 if you have the header file. */ +#undef HAVE_SYS_TYPES_H + +/* defined if we have ucontext.h */ +#undef HAVE_UCONTEXT_H + +/* Define to 1 if you have the header file. */ +#undef HAVE_UNISTD_H + +/* Name of package */ +#undef PACKAGE + +/* Define to the address where bug reports for this package should be sent. */ +#undef PACKAGE_BUGREPORT + +/* Define to the full name of this package. */ +#undef PACKAGE_NAME + +/* Define to the full name and version of this package. */ +#undef PACKAGE_STRING + +/* Define to the one symbol short name of this package. */ +#undef PACKAGE_TARNAME + +/* Define to the version of this package. */ +#undef PACKAGE_VERSION + +/* Define the uninstalled plugin directory */ +#undef PLUGINS_BUILDDIR + +/* Define the plugin directory */ +#define PLUGINS_DIR "." + +/* Define if plugins should be loaded from the build tree - only developers + should use this */ +#undef PLUGINS_USE_BUILDDIR + +/* Define to 1 if you have the ANSI C header files. */ +#undef STDC_HEADERS + +/* Define if we should use i586 optimized stack functions */ +#undef USE_FAST_STACK_TRASH + +/* Define if we should poison deallocated memory */ +#undef USE_POISONING + +/* Version number of package */ +#define VERSION "0.8.1.0" + +/* Define to 1 if your processor stores words with the most significant byte + first (like Motorola and SPARC, unlike Intel and VAX). */ +#define WORDS_BIGENDIAN 0 + +#define GST_MAJORMINOR "GST_VERSION_MAJOR.GST_VERSION_MINOR" + diff --git a/win32/dirent.c b/win32/dirent.c new file mode 100644 index 0000000..74409f6 --- /dev/null +++ b/win32/dirent.c @@ -0,0 +1,292 @@ +/* + * dirent.c + * + * Derived from DIRLIB.C by Matt J. Weinstein + * This note appears in the DIRLIB.H + * DIRLIB.H by M. J. Weinstein Released to public domain 1-Jan-89 + * + * Updated by Jeremy Bettis + * Significantly revised and rewinddir, seekdir and telldir added by Colin + * Peters + * + * $Revision$ + * $Author$ + * $Date$ + * + */ + +#include +#include +#include +#include +#include +#include +#include +#define SUFFIX _T("*") +#define SLASH _T("\\") + +#include + +#define WIN32_LEAN_AND_MEAN +#include /* for GetFileAttributes */ + +/* + * opendir + * + * Returns a pointer to a DIR structure appropriately filled in to begin + * searching a directory. + */ +_TDIR * +_topendir (const _TCHAR * szPath) +{ + _TDIR *nd; + unsigned int rc; + _TCHAR szFullPath[MAX_PATH]; + + errno = 0; + + if (!szPath) { + errno = EFAULT; + return (_TDIR *) 0; + } + + if (szPath[0] == _T ('\0')) { + errno = ENOTDIR; + return (_TDIR *) 0; + } + + /* Attempt to determine if the given path really is a directory. */ + rc = GetFileAttributes (szPath); + if (rc == (unsigned int) -1) { + /* call GetLastError for more error info */ + errno = ENOENT; + return (_TDIR *) 0; + } + if (!(rc & FILE_ATTRIBUTE_DIRECTORY)) { + /* Error, entry exists but not a directory. */ + errno = ENOTDIR; + return (_TDIR *) 0; + } + + /* Make an absolute pathname. */ + _tfullpath (szFullPath, szPath, MAX_PATH); + + /* Allocate enough space to store DIR structure and the complete + * directory path given. */ + nd = (_TDIR *) malloc (sizeof (_TDIR) + (_tcslen (szFullPath) + + _tcslen (SLASH) + _tcslen (SUFFIX) + 1) * sizeof (_TCHAR)); + + if (!nd) { + /* Error, out of memory. */ + errno = ENOMEM; + return (_TDIR *) 0; + } + + /* Create the search expression. */ + _tcscpy (nd->dd_name, szFullPath); + + /* Add on a slash if the path does not end with one. */ + if (nd->dd_name[0] != _T ('\0') && + nd->dd_name[_tcslen (nd->dd_name) - 1] != _T ('/') && + nd->dd_name[_tcslen (nd->dd_name) - 1] != _T ('\\')) { + _tcscat (nd->dd_name, SLASH); + } + + /* Add on the search pattern */ + _tcscat (nd->dd_name, SUFFIX); + + /* Initialize handle to -1 so that a premature closedir doesn't try + * to call _findclose on it. */ + nd->dd_handle = -1; + + /* Initialize the status. */ + nd->dd_stat = 0; + + /* Initialize the dirent structure. ino and reclen are invalid under + * Win32, and name simply points at the appropriate part of the + * findfirst_t structure. */ + nd->dd_dir.d_ino = 0; + nd->dd_dir.d_reclen = 0; + nd->dd_dir.d_namlen = 0; + // Added by jcsston 02/04/2004, memset was writing to a bad pointer + nd->dd_dir.d_name = malloc (FILENAME_MAX); + // End add + memset (nd->dd_dir.d_name, 0, FILENAME_MAX); + + return nd; +} + + +/* + * readdir + * + * Return a pointer to a dirent structure filled with the information on the + * next entry in the directory. + */ +struct _tdirent * +_treaddir (_TDIR * dirp) +{ + errno = 0; + + /* Check for valid DIR struct. */ + if (!dirp) { + errno = EFAULT; + return (struct _tdirent *) 0; + } + + if (dirp->dd_stat < 0) { + /* We have already returned all files in the directory + * (or the structure has an invalid dd_stat). */ + return (struct _tdirent *) 0; + } else if (dirp->dd_stat == 0) { + /* We haven't started the search yet. */ + /* Start the search */ + dirp->dd_handle = _tfindfirst (dirp->dd_name, &(dirp->dd_dta)); + + if (dirp->dd_handle == -1) { + /* Whoops! Seems there are no files in that + * directory. */ + dirp->dd_stat = -1; + } else { + dirp->dd_stat = 1; + } + } else { + /* Get the next search entry. */ + if (_tfindnext (dirp->dd_handle, &(dirp->dd_dta))) { + /* We are off the end or otherwise error. + _findnext sets errno to ENOENT if no more file + Undo this. */ + DWORD winerr = GetLastError (); + + if (winerr == ERROR_NO_MORE_FILES) + errno = 0; + _findclose (dirp->dd_handle); + dirp->dd_handle = -1; + dirp->dd_stat = -1; + } else { + /* Update the status to indicate the correct + * number. */ + dirp->dd_stat++; + } + } + + if (dirp->dd_stat > 0) { + /* Successfully got an entry. Everything about the file is + * already appropriately filled in except the length of the + * file name. */ + dirp->dd_dir.d_namlen = _tcslen (dirp->dd_dta.name); + _tcscpy (dirp->dd_dir.d_name, dirp->dd_dta.name); + return &dirp->dd_dir; + } + + return (struct _tdirent *) 0; +} + + +/* + * closedir + * + * Frees up resources allocated by opendir. + */ +int +_tclosedir (_TDIR * dirp) +{ + int rc; + + errno = 0; + rc = 0; + + if (!dirp) { + errno = EFAULT; + return -1; + } + + if (dirp->dd_handle != -1) { + rc = _findclose (dirp->dd_handle); + } + + /* Delete the dir structure. */ + free (dirp); + + return rc; +} + +/* + * rewinddir + * + * Return to the beginning of the directory "stream". We simply call findclose + * and then reset things like an opendir. + */ +void +_trewinddir (_TDIR * dirp) +{ + errno = 0; + + if (!dirp) { + errno = EFAULT; + return; + } + + if (dirp->dd_handle != -1) { + _findclose (dirp->dd_handle); + } + + dirp->dd_handle = -1; + dirp->dd_stat = 0; +} + +/* + * telldir + * + * Returns the "position" in the "directory stream" which can be used with + * seekdir to go back to an old entry. We simply return the value in stat. + */ +long +_ttelldir (_TDIR * dirp) +{ + errno = 0; + + if (!dirp) { + errno = EFAULT; + return -1; + } + return dirp->dd_stat; +} + +/* + * seekdir + * + * Seek to an entry previously returned by telldir. We rewind the directory + * and call readdir repeatedly until either dd_stat is the position number + * or -1 (off the end). This is not perfect, in that the directory may + * have changed while we weren't looking. But that is probably the case with + * any such system. + */ +void +_tseekdir (_TDIR * dirp, long lPos) +{ + errno = 0; + + if (!dirp) { + errno = EFAULT; + return; + } + + if (lPos < -1) { + /* Seeking to an invalid position. */ + errno = EINVAL; + return; + } else if (lPos == -1) { + /* Seek past end. */ + if (dirp->dd_handle != -1) { + _findclose (dirp->dd_handle); + } + dirp->dd_handle = -1; + dirp->dd_stat = -1; + } else { + /* Rewind and read forward to the appropriate index. */ + _trewinddir (dirp); + + while ((dirp->dd_stat < lPos) && _treaddir (dirp)); + } +} diff --git a/win32/dirent.h b/win32/dirent.h new file mode 100644 index 0000000..59b4241 --- /dev/null +++ b/win32/dirent.h @@ -0,0 +1,147 @@ +/* + * DIRENT.H (formerly DIRLIB.H) + * + * by M. J. Weinstein Released to public domain 1-Jan-89 + * + * Because I have heard that this feature (opendir, readdir, closedir) + * it so useful for programmers coming from UNIX or attempting to port + * UNIX code, and because it is reasonably light weight, I have included + * it in the Mingw32 package. I have also added an implementation of + * rewinddir, seekdir and telldir. + * - Colin Peters + * + * This code is distributed in the hope that is will be useful but + * WITHOUT ANY WARRANTY. ALL WARRANTIES, EXPRESS OR IMPLIED ARE HEREBY + * DISCLAIMED. This includeds but is not limited to warranties of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. + * + * $Revision$ + * $Author$ + * $Date$ + * + */ + +#ifndef __STRICT_ANSI__ + +#ifndef _DIRENT_H_ +#define _DIRENT_H_ + +/* All the headers include this file. */ +/*#include <_mingw.h>*/ + +#include + +#ifndef RC_INVOKED + +#ifdef __cplusplus +extern "C" { +#endif + +struct dirent +{ + long d_ino; /* Always zero. */ + unsigned short d_reclen; /* Always zero. */ + unsigned short d_namlen; /* Length of name in d_name. */ + char* d_name; /* File name. */ + /* NOTE: The name in the dirent structure points to the name in the + * finddata_t structure in the DIR. */ +}; + +/* + * This is an internal data structure. Good programmers will not use it + * except as an argument to one of the functions below. + * dd_stat field is now int (was short in older versions). + */ +typedef struct +{ + /* disk transfer area for this dir */ + struct _finddata_t dd_dta; + + /* dirent struct to return from dir (NOTE: this makes this thread + * safe as long as only one thread uses a particular DIR struct at + * a time) */ + struct dirent dd_dir; + + /* _findnext handle */ + long dd_handle; + + /* + * Status of search: + * 0 = not started yet (next entry to read is first entry) + * -1 = off the end + * positive = 0 based index of next entry + */ + int dd_stat; + + /* given path for dir with search pattern (struct is extended) */ + char dd_name[1]; +} DIR; + +DIR* opendir (const char*); +struct dirent* readdir (DIR*); +int closedir (DIR*); +void rewinddir (DIR*); +long telldir (DIR*); +void seekdir (DIR*, long); + + +/* wide char versions */ + +struct _wdirent +{ + long d_ino; /* Always zero. */ + unsigned short d_reclen; /* Always zero. */ + unsigned short d_namlen; /* Length of name in d_name. */ + wchar_t* d_name; /* File name. */ + /* NOTE: The name in the dirent structure points to the name in the * wfinddata_t structure in the _WDIR. */ +}; + +/* + * This is an internal data structure. Good programmers will not use it + * except as an argument to one of the functions below. + */ +typedef struct +{ + /* disk transfer area for this dir */ + struct _wfinddata_t dd_dta; + + /* dirent struct to return from dir (NOTE: this makes this thread + * safe as long as only one thread uses a particular DIR struct at + * a time) */ + struct _wdirent dd_dir; + + /* _findnext handle */ + long dd_handle; + + /* + * Status of search: + * 0 = not started yet (next entry to read is first entry) + * -1 = off the end + * positive = 0 based index of next entry + */ + int dd_stat; + + /* given path for dir with search pattern (struct is extended) */ + wchar_t dd_name[1]; +} _WDIR; + + + +_WDIR* _wopendir (const wchar_t*); +struct _wdirent* _wreaddir (_WDIR*); +int _wclosedir (_WDIR*); +void _wrewinddir (_WDIR*); +long _wtelldir (_WDIR*); +void _wseekdir (_WDIR*, long); + + +#ifdef __cplusplus +} +#endif + +#endif /* Not RC_INVOKED */ + +#endif /* Not _DIRENT_H_ */ + +#endif /* Not __STRICT_ANSI__ */ + diff --git a/win32/gst-inspect.vcproj b/win32/gst-inspect.vcproj new file mode 100644 index 0000000..a67e47c --- /dev/null +++ b/win32/gst-inspect.vcproj @@ -0,0 +1,144 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/win32/gst-launch.vcproj b/win32/gst-launch.vcproj new file mode 100644 index 0000000..632b987 --- /dev/null +++ b/win32/gst-launch.vcproj @@ -0,0 +1,144 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/win32/gst-register.vcproj b/win32/gst-register.vcproj new file mode 100644 index 0000000..49b104a --- /dev/null +++ b/win32/gst-register.vcproj @@ -0,0 +1,144 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/win32/gstbytestream.vcproj b/win32/gstbytestream.vcproj new file mode 100644 index 0000000..b9c2b5b --- /dev/null +++ b/win32/gstbytestream.vcproj @@ -0,0 +1,151 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/win32/gstelements.vcproj b/win32/gstelements.vcproj new file mode 100644 index 0000000..6460d15 --- /dev/null +++ b/win32/gstelements.vcproj @@ -0,0 +1,244 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/win32/gstoptimalscheduler.vcproj b/win32/gstoptimalscheduler.vcproj new file mode 100644 index 0000000..2b10a12 --- /dev/null +++ b/win32/gstoptimalscheduler.vcproj @@ -0,0 +1,148 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/win32/gstspider.vcproj b/win32/gstspider.vcproj new file mode 100644 index 0000000..650357b --- /dev/null +++ b/win32/gstspider.vcproj @@ -0,0 +1,163 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/win32/gtchar.h b/win32/gtchar.h new file mode 100644 index 0000000..2e3a989 --- /dev/null +++ b/win32/gtchar.h @@ -0,0 +1,397 @@ +/* + * tchar.h + * + * Unicode mapping layer for the standard C library. By including this + * file and using the 't' names for string functions + * (eg. _tprintf) you can make code which can be easily adapted to both + * Unicode and non-unicode environments. In a unicode enabled compile define + * _UNICODE before including tchar.h, otherwise the standard non-unicode + * library functions will be used. + * + * Note that you still need to include string.h or stdlib.h etc. to define + * the appropriate functions. Also note that there are several defines + * included for non-ANSI functions which are commonly available (but using + * the convention of prepending an underscore to non-ANSI library function + * names). + * + * This file is part of the Mingw32 package. + * + * Contributors: + * Created by Colin Peters + * + * THIS SOFTWARE IS NOT COPYRIGHTED + * + * This source code is offered for use in the public domain. You may + * use, modify or distribute it freely. + * + * This code is distributed in the hope that it will be useful but + * WITHOUT ANY WARRANTY. ALL WARRANTIES, EXPRESS OR IMPLIED ARE HEREBY + * DISCLAIMED. This includes but is not limited to warranties of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. + * + * $Revision$ + * $Author$ + * $Date$ + * + */ + +#ifndef _TCHAR_H_ +#define _TCHAR_H_ + +/* All the headers include this file. */ +/*#include <_mingw.h>*/ + +/* + * NOTE: This tests _UNICODE, which is different from the UNICODE define + * used to differentiate Win32 API calls. + */ +#ifdef _UNICODE + + +/* + * Use TCHAR instead of char or wchar_t. It will be appropriately translated + * if _UNICODE is correctly defined (or not). + */ +#ifndef _TCHAR_DEFINED +#ifndef RC_INVOKED +typedef wchar_t TCHAR; +typedef wchar_t _TCHAR; +#endif /* Not RC_INVOKED */ +#define _TCHAR_DEFINED +#endif + + +/* + * __TEXT is a private macro whose specific use is to force the expansion of a + * macro passed as an argument to the macros _T or _TEXT. DO NOT use this + * macro within your programs. It's name and function could change without + * notice. + */ +#define __TEXT(q) L##q + +/* for porting from other Windows compilers */ +#if 0 // no wide startup module +#define _tmain wmain +#define _tWinMain wWinMain +#define _tenviron _wenviron +#define __targv __wargv +#endif + +/* + * Unicode functions + */ +#define _tprintf wprintf +#define _ftprintf fwprintf +#define _stprintf swprintf +#define _sntprintf _snwprintf +#define _vtprintf vwprintf +#define _vftprintf vfwprintf +#define _vstprintf vswprintf +#define _vsntprintf _vsnwprintf +#define _tscanf wscanf +#define _ftscanf fwscanf +#define _stscanf swscanf +#define _fgettc fgetwc +#define _fgettchar _fgetwchar +#define _fgetts fgetws +#define _fputtc fputwc +#define _fputtchar _fputwchar +#define _fputts fputws +#define _gettc getwc +#define _getts _getws +#define _puttc putwc +#define _putts _putws +#define _ungettc ungetwc +#define _tcstod wcstod +#define _tcstol wcstol +#define _tcstoul wcstoul +#define _itot _itow +#define _ltot _ltow +#define _ultot _ultow +#define _ttoi _wtoi +#define _ttol _wtol +#define _tcscat wcscat +#define _tcschr wcschr +#define _tcscmp wcscmp +#define _tcscpy wcscpy +#define _tcscspn wcscspn +#define _tcslen wcslen +#define _tcsncat wcsncat +#define _tcsncmp wcsncmp +#define _tcsncpy wcsncpy +#define _tcspbrk wcspbrk +#define _tcsrchr wcsrchr +#define _tcsspn wcsspn +#define _tcsstr wcsstr +#define _tcstok wcstok +#define _tcsdup _wcsdup +#define _tcsicmp _wcsicmp +#define _tcsnicmp _wcsnicmp +#define _tcsnset _wcsnset +#define _tcsrev _wcsrev +#define _tcsset _wcsset +#define _tcslwr _wcslwr +#define _tcsupr _wcsupr +#define _tcsxfrm wcsxfrm +#define _tcscoll wcscoll +#define _tcsicoll _wcsicoll +#define _istalpha iswalpha +#define _istupper iswupper +#define _istlower iswlower +#define _istdigit iswdigit +#define _istxdigit iswxdigit +#define _istspace iswspace +#define _istpunct iswpunct +#define _istalnum iswalnum +#define _istprint iswprint +#define _istgraph iswgraph +#define _istcntrl iswcntrl +#define _istascii iswascii +#define _totupper towupper +#define _totlower towlower +#define _tcsftime wcsftime +/* Macro functions */ +#define _tcsdec _wcsdec +#define _tcsinc _wcsinc +#define _tcsnbcnt _wcsncnt +#define _tcsnccnt _wcsncnt +#define _tcsnextc _wcsnextc +#define _tcsninc _wcsninc +#define _tcsspnp _wcsspnp +#define _wcsdec(_wcs1, _wcs2) ((_wcs1)>=(_wcs2) ? NULL : (_wcs2)-1) +#define _wcsinc(_wcs) ((_wcs)+1) +#define _wcsnextc(_wcs) ((unsigned int) *(_wcs)) +#define _wcsninc(_wcs, _inc) (((_wcs)+(_inc))) +#define _wcsncnt(_wcs, _cnt) ((wcslen(_wcs)>_cnt) ? _count : wcslen(_wcs)) +#define _wcsspnp(_wcs1, _wcs2) ((*((_wcs1)+wcsspn(_wcs1,_wcs2))) ? ((_wcs1)+wcsspn(_wcs1,_wcs2)) : NULL) + +#if 1 /* defined __MSVCRT__ */ +/* + * These wide functions not in crtdll.dll. + * Define macros anyway so that _wfoo rather than _tfoo is undefined + */ +#define _ttoi64 _wtoi64 +#define _i64tot _i64tow +#define _ui64tot _ui64tow +#define _tasctime _wasctime +#define _tctime _wctime +#define _tstrdate _wstrdate +#define _tstrtime _wstrtime +#define _tutime _wutime +#define _tcsnccoll _wcsncoll +#define _tcsncoll _wcsncoll +#define _tcsncicoll _wcsnicoll +#define _tcsnicoll _wcsnicoll +#define _taccess _waccess +#define _tchmod _wchmod +#define _tcreat _wcreat +#define _tfindfirst _wfindfirst +#define _tfindnext _wfindnext +#define _tfdopen _wfdopen +#define _tfopen _wfopen +#define _tgetenv _wgetenv +#define _tputenv _wputenv +#define _tsearchenv _wsearchenv +#define _tmakepath _wmakepath +#define _tsplitpath _wsplitpath +#define _tfullpath _wfullpath +#define _tmktemp _wmktemp +#define _topen _wopen +#define _tremove _wremove +#define _trename _wrename +#define _tsopen _wsopen +#define _tsetlocale _wsetlocale +#define _tunlink _wunlink +#define _tfinddata_t _wfinddata_t +#define _tfindfirsti64 _wfindfirsti64 +#define _tfindnexti64 _wfindnexti64 +#define _tfinddatai64_t _wfinddatai64_t +#endif /* __MSVCRT__ */ + +/* dirent structures and functions */ +#define _tdirent _wdirent +#define _TDIR _WDIR +#define _topendir _wopendir +#define _tclosedir _wclosedir +#define _treaddir _wreaddir +#define _trewinddir _wrewinddir +#define _ttelldir _wtelldir +#define _tseekdir _wseekdir +#else /* Not _UNICODE */ + +/* + * TCHAR, the type you should use instead of char. + */ +#ifndef _TCHAR_DEFINED +#ifndef RC_INVOKED +typedef char TCHAR; +typedef char _TCHAR; +#endif +#define _TCHAR_DEFINED +#endif + +/* + * __TEXT is a private macro whose specific use is to force the expansion of a + * macro passed as an argument to the macros _T or _TEXT. DO NOT use this + * macro within your programs. It's name and function could change without + * notice. + */ +#define __TEXT(q) q + +/* for porting from other Windows compilers */ +#define _tmain main +#define _tWinMain WinMain +#define _tenviron _environ +#define __targv __argv + +/* + * Non-unicode (standard) functions + */ + +#define _tprintf printf +#define _ftprintf fprintf +#define _stprintf sprintf +#define _sntprintf _snprintf +#define _vtprintf vprintf +#define _vftprintf vfprintf +#define _vstprintf vsprintf +#define _vsntprintf _vsnprintf +#define _tscanf scanf +#define _ftscanf fscanf +#define _stscanf sscanf +#define _fgettc fgetc +#define _fgettchar _fgetchar +#define _fgetts fgets +#define _fputtc fputc +#define _fputtchar _fputchar +#define _fputts fputs +#define _tfdopen _fdopen +#define _tfopen fopen +#define _tgetenv getenv +#define _tputenv _putenv +#define _tsearchenv _searchenv +#define _tmakepath _makepath +#define _tsplitpath _splitpath +#define _tfullpath _fullpath +#define _gettc getc +#define _getts gets +#define _puttc putc +#define _putts puts +#define _ungettc ungetc +#define _tcstod strtod +#define _tcstol strtol +#define _tcstoul strtoul +#define _itot _itoa +#define _ltot _ltoa +#define _ultot _ultoa +#define _ttoi atoi +#define _ttol atol +#define _tcscat strcat +#define _tcschr strchr +#define _tcscmp strcmp +#define _tcscpy strcpy +#define _tcscspn strcspn +#define _tcslen strlen +#define _tcsncat strncat +#define _tcsncmp strncmp +#define _tcsncpy strncpy +#define _tcspbrk strpbrk +#define _tcsrchr strrchr +#define _tcsspn strspn +#define _tcsstr strstr +#define _tcstok strtok +#define _tcsdup _strdup +#define _tcsicmp _stricmp +#define _tcsnicmp _strnicmp +#define _tcsnset _strnset +#define _tcsrev _strrev +#define _tcsset _strset +#define _tcslwr _strlwr +#define _tcsupr _strupr +#define _tcsxfrm strxfrm +#define _tcscoll strcoll +#define _tcsicoll _stricoll +#define _istalpha isalpha +#define _istupper isupper +#define _istlower islower +#define _istdigit isdigit +#define _istxdigit isxdigit +#define _istspace isspace +#define _istpunct ispunct +#define _istalnum isalnum +#define _istprint isprint +#define _istgraph isgraph +#define _istcntrl iscntrl +#define _istascii isascii +#define _totupper toupper +#define _totlower tolower +#define _tasctime asctime +#define _tctime ctime +#define _tstrdate _strdate +#define _tstrtime _strtime +#define _tutime _utime +#define _tcsftime strftime +/* Macro functions */ +#define _tcsdec _strdec +#define _tcsinc _strinc +#define _tcsnbcnt _strncnt +#define _tcsnccnt _strncnt +#define _tcsnextc _strnextc +#define _tcsninc _strninc +#define _tcsspnp _strspnp +#define _strdec(_str1, _str2) ((_str1)>=(_str2) ? NULL : (_str2)-1) +#define _strinc(_str) ((_str)+1) +#define _strnextc(_str) ((unsigned int) *(_str)) +#define _strninc(_str, _inc) (((_str)+(_inc))) +#define _strncnt(_str, _cnt) ((strlen(_str)>_cnt) ? _count : strlen(_str)) +#define _strspnp(_str1, _str2) ((*((_str1)+strspn(_str1,_str2))) ? ((_str1)+strspn(_str1,_str2)) : NULL) + +#define _tchmod _chmod +#define _tcreat _creat +#define _tfindfirst _findfirst +#define _tfindnext _findnext +#define _tmktemp _mktemp +#define _topen _open +#define _taccess _access +#define _tremove remove +#define _trename rename +#define _tsopen _sopen +#define _tsetlocale setlocale +#define _tunlink _unlink +#define _tfinddata_t _finddata_t + +#if 1 /* defined __MSVCRT__ */ +/* Not in crtdll.dll. Define macros anyway? */ +#define _ttoi64 _atoi64 +#define _i64tot _i64toa +#define _ui64tot _ui64toa +#define _tcsnccoll _strncoll +#define _tcsncoll _strncoll +#define _tcsncicoll _strnicoll +#define _tcsnicoll _strnicoll +#define _tfindfirsti64 _findfirsti64 +#define _tfindnexti64 _findnexti64 +#define _tfinddatai64_t _finddatai64_t +#endif /* __MSVCRT__ */ + +/* dirent structures and functions */ +#define _tdirent dirent +#define _TDIR DIR +#define _topendir opendir +#define _tclosedir closedir +#define _treaddir readdir +#define _trewinddir rewinddir +#define _ttelldir telldir +#define _tseekdir seekdir + +#endif /* Not _UNICODE */ + +/* + * UNICODE a constant string when _UNICODE is defined else returns the string + * unmodified. Also defined in w32api/winnt.h. + */ +#define _TEXT(x) __TEXT(x) +#define _T(x) __TEXT(x) + +#endif /* Not _TCHAR_H_ */ + diff --git a/win32/mman.c b/win32/mman.c new file mode 100644 index 0000000..7c6fcc2 --- /dev/null +++ b/win32/mman.c @@ -0,0 +1,87 @@ +/* $Id$ + + * ============================================================================= + * + * = LIBRARY + * pace + * + * = FILENAME + * pace/win32/mman.c + * + * = AUTHOR + * Luther Baker + * + * ============================================================================= */ + +#include "mman.h" + +void * +mmap (void *addr, size_t len, int prot, int flags, HANDLE fildes, long off) +{ + void *addr_mapping = 0; + int nt_flags = 0; + HANDLE file_mapping = INVALID_HANDLE_VALUE; + + if (flags | MAP_PRIVATE) { + prot = PAGE_WRITECOPY; + nt_flags = FILE_MAP_COPY; + } else if (flags | MAP_SHARED) { + if (prot | PAGE_READONLY) + nt_flags = FILE_MAP_READ; + if (prot | PAGE_READWRITE) + nt_flags = FILE_MAP_WRITE; + } + + file_mapping = CreateFileMapping (fildes, 0, prot, 0, 0, 0); + if (file_mapping == 0) + return MAP_FAILED; + +# if defined (PACE_OS_EXTRA_MMAP_FLAGS) + nt_flags |= PACE_OS_EXTRA_MMAP_FLAGS; +# endif /* PACE_OS_EXTRA_MMAP_FLAGS */ + + //ACE_UNUSED_ARG (addr); /* WinCE does not allow specifying .*/ + addr_mapping = MapViewOfFile (file_mapping, nt_flags, 0, off, len); + + /* Only close this down if we used the temporary. */ + if (file_mapping == INVALID_HANDLE_VALUE) + CloseHandle (file_mapping); + + if (addr_mapping == 0) + return MAP_FAILED; + + else if ((flags | MAP_FIXED) + && addr_mapping != addr) { + errno = 22; + return MAP_FAILED; + } else + return addr_mapping; +} + +int +mprotect (void *addr, size_t len, int prot) +{ + DWORD dummy; /* Sigh! */ + + return VirtualProtect (addr, len, prot, &dummy) ? 0 : -1; +} + + +int +msync (void *addr, size_t len, int flags) +{ + //PACE_UNUSED_ARG (flags); + if (!FlushViewOfFile (addr, len)) + return -1; + return 0; +} + +int +munmap (void *addr, size_t len) +{ + //PACE_UNUSED_ARG (len); + if (!UnmapViewOfFile (addr)) + return -1; + return 0; + +} diff --git a/win32/mman.h b/win32/mman.h new file mode 100644 index 0000000..bb2bbfe --- /dev/null +++ b/win32/mman.h @@ -0,0 +1,61 @@ +/* $Id$ + + * ============================================================================ + * + * = LIBRARY + * pace + * + * = FILENAME + * pace/win32/mman.h + * + * = AUTHOR + * Luther Baker + * + * ============================================================================ */ + +#ifndef PACE_SYS_MMAN_H_WIN32 +#define PACE_SYS_MMAN_H_WIN32 + +#include +#include + +#if defined (PACE_HAS_CPLUSPLUS) +extern "C" { +#endif /* PACE_HAS_CPLUSPLUS */ + +# define MAP_PRIVATE 1 +# define MAP_SHARED 2 +# define MAP_FIXED 4 +# if !defined (MAP_FAILED) +# undef MAP_FAILED +# define MAP_FAILED ((void *) -1) +# endif + + +# define PROT_READ PAGE_READONLY +# define PROT_WRITE PAGE_WRITEONLY + +# define PACE_MAP_FAILED MAP_FAILED +# define PACE_MAP_FIXED MAP_FIXED +# define PACE_MAP_PRIVATE MAP_PRIVATE +# define PACE_MAP_SHARED MAP_SHARED +# define PACE_MCL_CURRENT MCL_CURRENT +# define PACE_MS_ASYNC MS_ASYNC +# define PACE_MS_INVALIDATE +# define PACE_MS_SYNC MS_SYNC +# define PACE_PROT_EXEC PROT_EXEC +# define PACE_PROT_NONE PROT_NONE +# define PACE_PROT_READ PROT_READ +# define PACE_PROT_WRITE PROT_WRITE + + void * mmap (void * addr, size_t len, int prot, int flags, + HANDLE fildes, long off); + int mprotect (void * addr, size_t len, int prot); + int msync (void * addr, size_t len, int flags); + int munmap (void * addr, size_t len); + +#if defined (PACE_HAS_CPLUSPLUS) +} +#endif /* PACE_HAS_CPLUSPLUS */ + +#endif /* PACE_SYS_MMAN_H */ diff --git a/win32/mman.inl b/win32/mman.inl new file mode 100644 index 0000000..c324089 --- /dev/null +++ b/win32/mman.inl @@ -0,0 +1,129 @@ +/* $Id$ -*- C -*- + + * ============================================================================= + * + * = LIBRARY + * pace + * + * = FILENAME + * pace/win32/mman.inl + * + * = AUTHOR + * Luther Baker + * + * ============================================================================= */ + +#include + +#if (PACE_HAS_POSIX_NONUOF_FUNCS) +PACE_INLINE +int +pace_mlock (const void * addr, pace_size_t len) +{ + PACE_UNUSED_ARG (addr); + PACE_UNUSED_ARG (len); + PACE_ERRNO_NO_SUPPORT_RETURN (-1); +} +#endif /* PACE_HAS_POSIX_NONUOF_FUNCS */ + +#if (PACE_HAS_POSIX_NONUOF_FUNCS) +PACE_INLINE +int +pace_mlockall (int flags) +{ + PACE_UNUSED_ARG (flags); + PACE_ERRNO_NO_SUPPORT_RETURN (-1); +} +#endif /* PACE_HAS_POSIX_NONUOF_FUNCS */ + +#if (PACE_HAS_POSIX_NONUOF_FUNCS) +PACE_INLINE +void * +pace_mmap (void * addr, + size_t len, + int prot, + int flags, + PACE_HANDLE fildes, + pace_off_t off) +{ + return mmap (addr, len, prot, flags, fildes, off); +} +#endif /* PACE_HAS_POSIX_NONUOF_FUNCS */ + +#if (PACE_HAS_POSIX_NONUOF_FUNCS) +PACE_INLINE +int +pace_munlock (const void * addr, size_t len) +{ + PACE_UNUSED_ARG (addr); + PACE_UNUSED_ARG (len); + PACE_ERRNO_NO_SUPPORT_RETURN (-1); +} +#endif /* PACE_HAS_POSIX_NONUOF_FUNCS */ + +#if (PACE_HAS_POSIX_NONUOF_FUNCS) +PACE_INLINE +int +pace_mprotect (void * addr, size_t len, int prot) +{ + return mprotect (addr, len, prot); +} +#endif /* PACE_HAS_POSIX_NONUOF_FUNCS */ + +#if (PACE_HAS_POSIX_NONUOF_FUNCS) +PACE_INLINE +int +pace_msync (void * addr, + size_t len, + int flags) +{ + return msync (addr, len, flags); +} +#endif /* PACE_HAS_POSIX_NONUOF_FUNCS */ + +#if (PACE_HAS_POSIX_NONUOF_FUNCS) +PACE_INLINE +int +pace_munlockall () +{ + PACE_ERRNO_NO_SUPPORT_RETURN (-1); +} +#endif /* PACE_HAS_POSIX_NONUOF_FUNCS */ + +#if (PACE_HAS_POSIX_NONUOF_FUNCS) +PACE_INLINE +int +pace_munmap (void * addr, size_t len) +{ + return munmap (addr, len); +} +#endif /* PACE_HAS_POSIX_NONUOF_FUNCS */ + +#if (PACE_HAS_POSIX_NONUOF_FUNCS) +PACE_INLINE +PACE_HANDLE +pace_shm_open (const char * name, int oflag, pace_mode_t mode) +{ + /* Would be similar to ACE_OS::open + which (currently uses threads and Object Manager). + */ + PACE_HANDLE retval = PACE_INVALID_HANDLE; + PACE_UNUSED_ARG (name); + PACE_UNUSED_ARG (oflag); + PACE_UNUSED_ARG (mode); + PACE_ERRNO_NO_SUPPORT_RETURN (retval); +} +#endif /* PACE_HAS_POSIX_NONUOF_FUNCS */ + +#if (PACE_HAS_POSIX_NONUOF_FUNCS) +PACE_INLINE +int +pace_shm_unlink (const char * name) +{ +#if defined (__BORLANDC__) + return unlink (name); +#else /* __BORLANDC__ */ + return _unlink (name); +#endif /* __BORLANDC__ */ +} +#endif /* PACE_HAS_POSIX_NONUOF_FUNCS */ diff --git a/win32/msvc71.sln b/win32/msvc71.sln new file mode 100644 index 0000000..906b306 --- /dev/null +++ b/win32/msvc71.sln @@ -0,0 +1,139 @@ +Microsoft Visual Studio Solution File, Format Version 8.00 +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "GStreamer", "GStreamer.vcproj", "{FC47A187-6B10-4B19-93B5-ED7BCC75D466}" + ProjectSection(ProjectDependencies) = postProject + {54A61913-7439-41EF-BB66-45401FFBB9F7} = {54A61913-7439-41EF-BB66-45401FFBB9F7} + {54A61913-7439-41EF-BB66-45401FFBB9F7} = {54A61913-7439-41EF-BB66-45401FFBB9F7} + {54A61913-7439-41EF-BB66-45401FFBB9F7} = {54A61913-7439-41EF-BB66-45401FFBB9F7} + {54A61913-7439-41EF-BB66-45401FFBB9F7} = {54A61913-7439-41EF-BB66-45401FFBB9F7} + {54A61913-7439-41EF-BB66-45401FFBB9F7} = {54A61913-7439-41EF-BB66-45401FFBB9F7} + {54A61913-7439-41EF-BB66-45401FFBB9F7} = {54A61913-7439-41EF-BB66-45401FFBB9F7} + EndProjectSection +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "GLib", "..\..\glib\win32\GLib-msvc71.vcproj", "{54A61913-7439-41EF-BB66-45401FFBB9F7}" + ProjectSection(ProjectDependencies) = postProject + EndProjectSection +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "GObject", "..\..\glib\win32\GObject-msvc71.vcproj", "{54A61913-7439-41EF-BB66-45401FFBB9F7}" + ProjectSection(ProjectDependencies) = postProject + {54A61913-7439-41EF-BB66-45401FFBB9F7} = {54A61913-7439-41EF-BB66-45401FFBB9F7} + {54A61913-7439-41EF-BB66-45401FFBB9F7} = {54A61913-7439-41EF-BB66-45401FFBB9F7} + EndProjectSection +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "GModule", "..\..\glib\win32\GModule-msvc71.vcproj", "{54A61913-7439-41EF-BB66-45401FFBB9F7}" + ProjectSection(ProjectDependencies) = postProject + {54A61913-7439-41EF-BB66-45401FFBB9F7} = {54A61913-7439-41EF-BB66-45401FFBB9F7} + EndProjectSection +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "GThread", "..\..\glib\win32\GThread-msvc71.vcproj", "{54A61913-7439-41EF-BB66-45401FFBB9F7}" + ProjectSection(ProjectDependencies) = postProject + EndProjectSection +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "gst-launch", "gst-launch.vcproj", "{0CCB8AFC-97D8-4251-9B9D-08E7DC41BB7E}" + ProjectSection(ProjectDependencies) = postProject + {54A61913-7439-41EF-BB66-45401FFBB9F7} = {54A61913-7439-41EF-BB66-45401FFBB9F7} + {54A61913-7439-41EF-BB66-45401FFBB9F7} = {54A61913-7439-41EF-BB66-45401FFBB9F7} + {FC47A187-6B10-4B19-93B5-ED7BCC75D466} = {FC47A187-6B10-4B19-93B5-ED7BCC75D466} + EndProjectSection +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "gst-register", "gst-register.vcproj", "{0CCB8AFC-97D8-4251-9B9D-08E7DC41BB7E}" + ProjectSection(ProjectDependencies) = postProject + {54A61913-7439-41EF-BB66-45401FFBB9F7} = {54A61913-7439-41EF-BB66-45401FFBB9F7} + {FC47A187-6B10-4B19-93B5-ED7BCC75D466} = {FC47A187-6B10-4B19-93B5-ED7BCC75D466} + EndProjectSection +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "gst-inspect", "gst-inspect.vcproj", "{0CCB8AFC-97D8-4251-9B9D-08E7DC41BB7E}" + ProjectSection(ProjectDependencies) = postProject + {54A61913-7439-41EF-BB66-45401FFBB9F7} = {54A61913-7439-41EF-BB66-45401FFBB9F7} + {FC47A187-6B10-4B19-93B5-ED7BCC75D466} = {FC47A187-6B10-4B19-93B5-ED7BCC75D466} + EndProjectSection +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "gstelements", "gstelements.vcproj", "{0CCB8AFC-97D8-4251-9B9D-08E7DC41BB7E}" + ProjectSection(ProjectDependencies) = postProject + {54A61913-7439-41EF-BB66-45401FFBB9F7} = {54A61913-7439-41EF-BB66-45401FFBB9F7} + {FC47A187-6B10-4B19-93B5-ED7BCC75D466} = {FC47A187-6B10-4B19-93B5-ED7BCC75D466} + EndProjectSection +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "gstoptimalscheduler", "gstoptimalscheduler.vcproj", "{0CCB8AFC-97D8-4251-9B9D-08E7DC41BB7E}" + ProjectSection(ProjectDependencies) = postProject + {FC47A187-6B10-4B19-93B5-ED7BCC75D466} = {FC47A187-6B10-4B19-93B5-ED7BCC75D466} + EndProjectSection +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "gstspider", "gstspider.vcproj", "{0CCB8AFC-97D8-4251-9B9D-08E7DC41BB7E}" + ProjectSection(ProjectDependencies) = postProject + {FC47A187-6B10-4B19-93B5-ED7BCC75D466} = {FC47A187-6B10-4B19-93B5-ED7BCC75D466} + EndProjectSection +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "gstbytestream", "gstbytestream.vcproj", "{0CCB8AFC-97D8-4251-9B9D-08E7DC41BB7E}" + ProjectSection(ProjectDependencies) = postProject + {FC47A187-6B10-4B19-93B5-ED7BCC75D466} = {FC47A187-6B10-4B19-93B5-ED7BCC75D466} + EndProjectSection +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "glib-marshal", "..\..\glib\win32\glib-marshal-msvc71.vcproj", "{D009C213-89B9-4FFD-9C02-690E99996A28}" + ProjectSection(ProjectDependencies) = postProject + {54A61913-7439-41EF-BB66-45401FFBB9F7} = {54A61913-7439-41EF-BB66-45401FFBB9F7} + EndProjectSection +EndProject +Global + GlobalSection(SolutionConfiguration) = preSolution + Debug = Debug + Release = Release + EndGlobalSection + GlobalSection(ProjectConfiguration) = postSolution + {FC47A187-6B10-4B19-93B5-ED7BCC75D466}.Debug.ActiveCfg = Debug|Win32 + {FC47A187-6B10-4B19-93B5-ED7BCC75D466}.Debug.Build.0 = Debug|Win32 + {FC47A187-6B10-4B19-93B5-ED7BCC75D466}.Release.ActiveCfg = Release|Win32 + {FC47A187-6B10-4B19-93B5-ED7BCC75D466}.Release.Build.0 = Release|Win32 + {54A61913-7439-41EF-BB66-45401FFBB9F7}.Debug.ActiveCfg = Debug|Win32 + {54A61913-7439-41EF-BB66-45401FFBB9F7}.Debug.Build.0 = Debug|Win32 + {54A61913-7439-41EF-BB66-45401FFBB9F7}.Release.ActiveCfg = Release|Win32 + {54A61913-7439-41EF-BB66-45401FFBB9F7}.Release.Build.0 = Release|Win32 + {54A61913-7439-41EF-BB66-45401FFBB9F7}.Debug.ActiveCfg = Debug|Win32 + {54A61913-7439-41EF-BB66-45401FFBB9F7}.Debug.Build.0 = Debug|Win32 + {54A61913-7439-41EF-BB66-45401FFBB9F7}.Release.ActiveCfg = Release|Win32 + {54A61913-7439-41EF-BB66-45401FFBB9F7}.Release.Build.0 = Release|Win32 + {54A61913-7439-41EF-BB66-45401FFBB9F7}.Debug.ActiveCfg = Debug|Win32 + {54A61913-7439-41EF-BB66-45401FFBB9F7}.Debug.Build.0 = Debug|Win32 + {54A61913-7439-41EF-BB66-45401FFBB9F7}.Release.ActiveCfg = Release|Win32 + {54A61913-7439-41EF-BB66-45401FFBB9F7}.Release.Build.0 = Release|Win32 + {54A61913-7439-41EF-BB66-45401FFBB9F7}.Debug.ActiveCfg = Debug|Win32 + {54A61913-7439-41EF-BB66-45401FFBB9F7}.Debug.Build.0 = Debug|Win32 + {54A61913-7439-41EF-BB66-45401FFBB9F7}.Release.ActiveCfg = Release|Win32 + {54A61913-7439-41EF-BB66-45401FFBB9F7}.Release.Build.0 = Release|Win32 + {0CCB8AFC-97D8-4251-9B9D-08E7DC41BB7E}.Debug.ActiveCfg = Debug|Win32 + {0CCB8AFC-97D8-4251-9B9D-08E7DC41BB7E}.Debug.Build.0 = Debug|Win32 + {0CCB8AFC-97D8-4251-9B9D-08E7DC41BB7E}.Release.ActiveCfg = Release|Win32 + {0CCB8AFC-97D8-4251-9B9D-08E7DC41BB7E}.Release.Build.0 = Release|Win32 + {0CCB8AFC-97D8-4251-9B9D-08E7DC41BB7E}.Debug.ActiveCfg = Debug|Win32 + {0CCB8AFC-97D8-4251-9B9D-08E7DC41BB7E}.Debug.Build.0 = Debug|Win32 + {0CCB8AFC-97D8-4251-9B9D-08E7DC41BB7E}.Release.ActiveCfg = Release|Win32 + {0CCB8AFC-97D8-4251-9B9D-08E7DC41BB7E}.Release.Build.0 = Release|Win32 + {0CCB8AFC-97D8-4251-9B9D-08E7DC41BB7E}.Debug.ActiveCfg = Debug|Win32 + {0CCB8AFC-97D8-4251-9B9D-08E7DC41BB7E}.Debug.Build.0 = Debug|Win32 + {0CCB8AFC-97D8-4251-9B9D-08E7DC41BB7E}.Release.ActiveCfg = Release|Win32 + {0CCB8AFC-97D8-4251-9B9D-08E7DC41BB7E}.Release.Build.0 = Release|Win32 + {0CCB8AFC-97D8-4251-9B9D-08E7DC41BB7E}.Debug.ActiveCfg = Debug|Win32 + {0CCB8AFC-97D8-4251-9B9D-08E7DC41BB7E}.Debug.Build.0 = Debug|Win32 + {0CCB8AFC-97D8-4251-9B9D-08E7DC41BB7E}.Release.ActiveCfg = Release|Win32 + {0CCB8AFC-97D8-4251-9B9D-08E7DC41BB7E}.Release.Build.0 = Release|Win32 + {0CCB8AFC-97D8-4251-9B9D-08E7DC41BB7E}.Debug.ActiveCfg = Debug|Win32 + {0CCB8AFC-97D8-4251-9B9D-08E7DC41BB7E}.Debug.Build.0 = Debug|Win32 + {0CCB8AFC-97D8-4251-9B9D-08E7DC41BB7E}.Release.ActiveCfg = Release|Win32 + {0CCB8AFC-97D8-4251-9B9D-08E7DC41BB7E}.Release.Build.0 = Release|Win32 + {0CCB8AFC-97D8-4251-9B9D-08E7DC41BB7E}.Debug.ActiveCfg = Debug|Win32 + {0CCB8AFC-97D8-4251-9B9D-08E7DC41BB7E}.Debug.Build.0 = Debug|Win32 + {0CCB8AFC-97D8-4251-9B9D-08E7DC41BB7E}.Release.ActiveCfg = Release|Win32 + {0CCB8AFC-97D8-4251-9B9D-08E7DC41BB7E}.Release.Build.0 = Release|Win32 + {0CCB8AFC-97D8-4251-9B9D-08E7DC41BB7E}.Debug.ActiveCfg = Debug|Win32 + {0CCB8AFC-97D8-4251-9B9D-08E7DC41BB7E}.Debug.Build.0 = Debug|Win32 + {0CCB8AFC-97D8-4251-9B9D-08E7DC41BB7E}.Release.ActiveCfg = Release|Win32 + {0CCB8AFC-97D8-4251-9B9D-08E7DC41BB7E}.Release.Build.0 = Release|Win32 + {D009C213-89B9-4FFD-9C02-690E99996A28}.Debug.ActiveCfg = Debug|Win32 + {D009C213-89B9-4FFD-9C02-690E99996A28}.Debug.Build.0 = Debug|Win32 + {D009C213-89B9-4FFD-9C02-690E99996A28}.Release.ActiveCfg = Release|Win32 + {D009C213-89B9-4FFD-9C02-690E99996A28}.Release.Build.0 = Release|Win32 + EndGlobalSection + GlobalSection(ExtensibilityGlobals) = postSolution + EndGlobalSection + GlobalSection(ExtensibilityAddIns) = postSolution + EndGlobalSection +EndGlobal diff --git a/win32/vs7/GStreamer.vcproj b/win32/vs7/GStreamer.vcproj new file mode 100644 index 0000000..e511316 --- /dev/null +++ b/win32/vs7/GStreamer.vcproj @@ -0,0 +1,395 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/win32/vs7/Makefile b/win32/vs7/Makefile new file mode 100644 index 0000000..fb94a42 --- /dev/null +++ b/win32/vs7/Makefile @@ -0,0 +1,60 @@ +# Project: libgstreamer +# Makefile to use with GNU Make +# +# Uses the Free Visual C++ 2003 compiler from Microsoft +# http://msdn.microsoft.com/visualc/vctoolkit2003/ + +# Compile with debug information? IMPOSSIBLE with the free version of the compiler +#DEBUG = yes + + +# +# Don't change anything below this line. +# +CXX = cl /Tp +CC = cl /Tc +SRC = dirent.c ../gst/parse/grammar.tab.c ../gst/gst.c ../gst/gstatomic.c ../gst/gstbin.c ../gst/gstbuffer.c ..\gst\gstcaps.c ..\gst\gstclock.c ..\gst\gstcpu.c ..\gst\gstdata.c ..\gst\gstelement.c ..\gst\gstelementfactory.c ..\gst\gstenumtypes.c ..\gst\gsterror.c ..\gst\gstevent.c ..\gst\gstfilter.c ..\gst\gstformat.c ..\gst\gstindex.c ..\gst\gstinfo.c ..\gst\gstmarshal.c ..\gst\gstmemchunk.c ..\gst\gstobject.c ..\gst\gstpad.c ..\gst\gstparse.c ..\gst\gstpipeline.c ..\gst\gstplugin.c ..\gst\gstpluginfeature.c ..\gst\gstprobe.c ..\gst\gstquery.c ..\gst\gstqueue.c ..\gst\gstregistry.c ..\gst\gstregistrypool.c ..\gst\gstscheduler.c ..\gst\gststructure.c ..\gst\gstsystemclock.c ..\gst\gsttag.c ..\gst\gstthread.c ..\gst\gsttrace.c ..\gst\gsttypefind.c ..\gst\gsturi.c ..\gst\gsturitype.c ..\gst\gstutils.c ..\gst\gstvalue.c ..\gst\gstxml.c ..\gst\registries\gstxmlregistry.c ..\gst\parse\lex._gst_parse_yy.c +OBJ = $(patsubst %.c,%.obj,$(SRC)) +INCS = /I. /I.. /I../libs /I../../popt/include /I../../glib/gmodule /I../../libiconv/include /I../../libxml2/include/libxml2 /I../../glib /I../../glib/glib /I../../glib/build/win32 +LDFLAGS = /NOLOGO /DLL /MAP:gstreamer.map /LIBPATH:../../glib/win32 /LIBPATH:../../popt/lib /LIBPATH:../../libxml2/lib +OPTMIZ = /G6 /O2 /Oi /Wp64 /GL +CXXFLAGS = $(INCS) /DWIN32 /D_WINDOWS /D_USRDLL /DHAVE_CONFIG_H /DGSTREAMER_EXPORTS /nologo + + +ifeq (yes,$(DEBUG)) +CXXFLAGS += /Zi /DDEBUG /D_DEBUG /MTd /RTC1 +LDFLAGS += /DEBUG +else +CXXFLAGS += /MT /DGST_DISABLE_GST_DEBUG +LDFLAGS += /OPT:REF +endif + +LIBS = libgstreamer.dll + +.PHONY: all all-before all-after clean clean-custom + +%.obj : %.cpp + $(CXX) $< /c $(CXXFLAGS) /Fo$@ + +%.obj : %.c + $(CC) $< /c $(CXXFLAGS) /Fo$@ + +all: lib + +lib: $(LIBS) + +clean: + $(RM) $(OBJ) libgstreamer.lib libgstreamer.dll + +libgstreamer.dll: $(OBJ) $(SRC) + link $(LDFLAGS) /OUT:$@ $(OBJ) libglib-2.0.lib libgobject-2.0.lib libgthread-2.0.lib libgmodule-2.0.lib libxml2.lib libpopt.lib wsock32.lib + +depend: + $(CXX) $(CXXFLAGS) -MM $(SRC) > .depend + +# +# include dependency files if they exist +# +ifneq ($(wildcard .depend),) +include .depend +endif diff --git a/win32/vs7/gst-inspect.vcproj b/win32/vs7/gst-inspect.vcproj new file mode 100644 index 0000000..a67e47c --- /dev/null +++ b/win32/vs7/gst-inspect.vcproj @@ -0,0 +1,144 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/win32/vs7/gst-launch.vcproj b/win32/vs7/gst-launch.vcproj new file mode 100644 index 0000000..632b987 --- /dev/null +++ b/win32/vs7/gst-launch.vcproj @@ -0,0 +1,144 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/win32/vs7/gst-register.vcproj b/win32/vs7/gst-register.vcproj new file mode 100644 index 0000000..49b104a --- /dev/null +++ b/win32/vs7/gst-register.vcproj @@ -0,0 +1,144 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/win32/vs7/gstelements.vcproj b/win32/vs7/gstelements.vcproj new file mode 100644 index 0000000..6460d15 --- /dev/null +++ b/win32/vs7/gstelements.vcproj @@ -0,0 +1,244 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/win32/vs7/mman.c b/win32/vs7/mman.c new file mode 100644 index 0000000..7c6fcc2 --- /dev/null +++ b/win32/vs7/mman.c @@ -0,0 +1,87 @@ +/* $Id$ + + * ============================================================================= + * + * = LIBRARY + * pace + * + * = FILENAME + * pace/win32/mman.c + * + * = AUTHOR + * Luther Baker + * + * ============================================================================= */ + +#include "mman.h" + +void * +mmap (void *addr, size_t len, int prot, int flags, HANDLE fildes, long off) +{ + void *addr_mapping = 0; + int nt_flags = 0; + HANDLE file_mapping = INVALID_HANDLE_VALUE; + + if (flags | MAP_PRIVATE) { + prot = PAGE_WRITECOPY; + nt_flags = FILE_MAP_COPY; + } else if (flags | MAP_SHARED) { + if (prot | PAGE_READONLY) + nt_flags = FILE_MAP_READ; + if (prot | PAGE_READWRITE) + nt_flags = FILE_MAP_WRITE; + } + + file_mapping = CreateFileMapping (fildes, 0, prot, 0, 0, 0); + if (file_mapping == 0) + return MAP_FAILED; + +# if defined (PACE_OS_EXTRA_MMAP_FLAGS) + nt_flags |= PACE_OS_EXTRA_MMAP_FLAGS; +# endif /* PACE_OS_EXTRA_MMAP_FLAGS */ + + //ACE_UNUSED_ARG (addr); /* WinCE does not allow specifying .*/ + addr_mapping = MapViewOfFile (file_mapping, nt_flags, 0, off, len); + + /* Only close this down if we used the temporary. */ + if (file_mapping == INVALID_HANDLE_VALUE) + CloseHandle (file_mapping); + + if (addr_mapping == 0) + return MAP_FAILED; + + else if ((flags | MAP_FIXED) + && addr_mapping != addr) { + errno = 22; + return MAP_FAILED; + } else + return addr_mapping; +} + +int +mprotect (void *addr, size_t len, int prot) +{ + DWORD dummy; /* Sigh! */ + + return VirtualProtect (addr, len, prot, &dummy) ? 0 : -1; +} + + +int +msync (void *addr, size_t len, int flags) +{ + //PACE_UNUSED_ARG (flags); + if (!FlushViewOfFile (addr, len)) + return -1; + return 0; +} + +int +munmap (void *addr, size_t len) +{ + //PACE_UNUSED_ARG (len); + if (!UnmapViewOfFile (addr)) + return -1; + return 0; + +} diff --git a/win32/vs7/mman.h b/win32/vs7/mman.h new file mode 100644 index 0000000..bb2bbfe --- /dev/null +++ b/win32/vs7/mman.h @@ -0,0 +1,61 @@ +/* $Id$ + + * ============================================================================ + * + * = LIBRARY + * pace + * + * = FILENAME + * pace/win32/mman.h + * + * = AUTHOR + * Luther Baker + * + * ============================================================================ */ + +#ifndef PACE_SYS_MMAN_H_WIN32 +#define PACE_SYS_MMAN_H_WIN32 + +#include +#include + +#if defined (PACE_HAS_CPLUSPLUS) +extern "C" { +#endif /* PACE_HAS_CPLUSPLUS */ + +# define MAP_PRIVATE 1 +# define MAP_SHARED 2 +# define MAP_FIXED 4 +# if !defined (MAP_FAILED) +# undef MAP_FAILED +# define MAP_FAILED ((void *) -1) +# endif + + +# define PROT_READ PAGE_READONLY +# define PROT_WRITE PAGE_WRITEONLY + +# define PACE_MAP_FAILED MAP_FAILED +# define PACE_MAP_FIXED MAP_FIXED +# define PACE_MAP_PRIVATE MAP_PRIVATE +# define PACE_MAP_SHARED MAP_SHARED +# define PACE_MCL_CURRENT MCL_CURRENT +# define PACE_MS_ASYNC MS_ASYNC +# define PACE_MS_INVALIDATE +# define PACE_MS_SYNC MS_SYNC +# define PACE_PROT_EXEC PROT_EXEC +# define PACE_PROT_NONE PROT_NONE +# define PACE_PROT_READ PROT_READ +# define PACE_PROT_WRITE PROT_WRITE + + void * mmap (void * addr, size_t len, int prot, int flags, + HANDLE fildes, long off); + int mprotect (void * addr, size_t len, int prot); + int msync (void * addr, size_t len, int flags); + int munmap (void * addr, size_t len); + +#if defined (PACE_HAS_CPLUSPLUS) +} +#endif /* PACE_HAS_CPLUSPLUS */ + +#endif /* PACE_SYS_MMAN_H */ diff --git a/win32/vs7/mman.inl b/win32/vs7/mman.inl new file mode 100644 index 0000000..c324089 --- /dev/null +++ b/win32/vs7/mman.inl @@ -0,0 +1,129 @@ +/* $Id$ -*- C -*- + + * ============================================================================= + * + * = LIBRARY + * pace + * + * = FILENAME + * pace/win32/mman.inl + * + * = AUTHOR + * Luther Baker + * + * ============================================================================= */ + +#include + +#if (PACE_HAS_POSIX_NONUOF_FUNCS) +PACE_INLINE +int +pace_mlock (const void * addr, pace_size_t len) +{ + PACE_UNUSED_ARG (addr); + PACE_UNUSED_ARG (len); + PACE_ERRNO_NO_SUPPORT_RETURN (-1); +} +#endif /* PACE_HAS_POSIX_NONUOF_FUNCS */ + +#if (PACE_HAS_POSIX_NONUOF_FUNCS) +PACE_INLINE +int +pace_mlockall (int flags) +{ + PACE_UNUSED_ARG (flags); + PACE_ERRNO_NO_SUPPORT_RETURN (-1); +} +#endif /* PACE_HAS_POSIX_NONUOF_FUNCS */ + +#if (PACE_HAS_POSIX_NONUOF_FUNCS) +PACE_INLINE +void * +pace_mmap (void * addr, + size_t len, + int prot, + int flags, + PACE_HANDLE fildes, + pace_off_t off) +{ + return mmap (addr, len, prot, flags, fildes, off); +} +#endif /* PACE_HAS_POSIX_NONUOF_FUNCS */ + +#if (PACE_HAS_POSIX_NONUOF_FUNCS) +PACE_INLINE +int +pace_munlock (const void * addr, size_t len) +{ + PACE_UNUSED_ARG (addr); + PACE_UNUSED_ARG (len); + PACE_ERRNO_NO_SUPPORT_RETURN (-1); +} +#endif /* PACE_HAS_POSIX_NONUOF_FUNCS */ + +#if (PACE_HAS_POSIX_NONUOF_FUNCS) +PACE_INLINE +int +pace_mprotect (void * addr, size_t len, int prot) +{ + return mprotect (addr, len, prot); +} +#endif /* PACE_HAS_POSIX_NONUOF_FUNCS */ + +#if (PACE_HAS_POSIX_NONUOF_FUNCS) +PACE_INLINE +int +pace_msync (void * addr, + size_t len, + int flags) +{ + return msync (addr, len, flags); +} +#endif /* PACE_HAS_POSIX_NONUOF_FUNCS */ + +#if (PACE_HAS_POSIX_NONUOF_FUNCS) +PACE_INLINE +int +pace_munlockall () +{ + PACE_ERRNO_NO_SUPPORT_RETURN (-1); +} +#endif /* PACE_HAS_POSIX_NONUOF_FUNCS */ + +#if (PACE_HAS_POSIX_NONUOF_FUNCS) +PACE_INLINE +int +pace_munmap (void * addr, size_t len) +{ + return munmap (addr, len); +} +#endif /* PACE_HAS_POSIX_NONUOF_FUNCS */ + +#if (PACE_HAS_POSIX_NONUOF_FUNCS) +PACE_INLINE +PACE_HANDLE +pace_shm_open (const char * name, int oflag, pace_mode_t mode) +{ + /* Would be similar to ACE_OS::open + which (currently uses threads and Object Manager). + */ + PACE_HANDLE retval = PACE_INVALID_HANDLE; + PACE_UNUSED_ARG (name); + PACE_UNUSED_ARG (oflag); + PACE_UNUSED_ARG (mode); + PACE_ERRNO_NO_SUPPORT_RETURN (retval); +} +#endif /* PACE_HAS_POSIX_NONUOF_FUNCS */ + +#if (PACE_HAS_POSIX_NONUOF_FUNCS) +PACE_INLINE +int +pace_shm_unlink (const char * name) +{ +#if defined (__BORLANDC__) + return unlink (name); +#else /* __BORLANDC__ */ + return _unlink (name); +#endif /* __BORLANDC__ */ +} +#endif /* PACE_HAS_POSIX_NONUOF_FUNCS */ diff --git a/win32/vs7/msvc71.sln b/win32/vs7/msvc71.sln new file mode 100644 index 0000000..906b306 --- /dev/null +++ b/win32/vs7/msvc71.sln @@ -0,0 +1,139 @@ +Microsoft Visual Studio Solution File, Format Version 8.00 +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "GStreamer", "GStreamer.vcproj", "{FC47A187-6B10-4B19-93B5-ED7BCC75D466}" + ProjectSection(ProjectDependencies) = postProject + {54A61913-7439-41EF-BB66-45401FFBB9F7} = {54A61913-7439-41EF-BB66-45401FFBB9F7} + {54A61913-7439-41EF-BB66-45401FFBB9F7} = {54A61913-7439-41EF-BB66-45401FFBB9F7} + {54A61913-7439-41EF-BB66-45401FFBB9F7} = {54A61913-7439-41EF-BB66-45401FFBB9F7} + {54A61913-7439-41EF-BB66-45401FFBB9F7} = {54A61913-7439-41EF-BB66-45401FFBB9F7} + {54A61913-7439-41EF-BB66-45401FFBB9F7} = {54A61913-7439-41EF-BB66-45401FFBB9F7} + {54A61913-7439-41EF-BB66-45401FFBB9F7} = {54A61913-7439-41EF-BB66-45401FFBB9F7} + EndProjectSection +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "GLib", "..\..\glib\win32\GLib-msvc71.vcproj", "{54A61913-7439-41EF-BB66-45401FFBB9F7}" + ProjectSection(ProjectDependencies) = postProject + EndProjectSection +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "GObject", "..\..\glib\win32\GObject-msvc71.vcproj", "{54A61913-7439-41EF-BB66-45401FFBB9F7}" + ProjectSection(ProjectDependencies) = postProject + {54A61913-7439-41EF-BB66-45401FFBB9F7} = {54A61913-7439-41EF-BB66-45401FFBB9F7} + {54A61913-7439-41EF-BB66-45401FFBB9F7} = {54A61913-7439-41EF-BB66-45401FFBB9F7} + EndProjectSection +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "GModule", "..\..\glib\win32\GModule-msvc71.vcproj", "{54A61913-7439-41EF-BB66-45401FFBB9F7}" + ProjectSection(ProjectDependencies) = postProject + {54A61913-7439-41EF-BB66-45401FFBB9F7} = {54A61913-7439-41EF-BB66-45401FFBB9F7} + EndProjectSection +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "GThread", "..\..\glib\win32\GThread-msvc71.vcproj", "{54A61913-7439-41EF-BB66-45401FFBB9F7}" + ProjectSection(ProjectDependencies) = postProject + EndProjectSection +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "gst-launch", "gst-launch.vcproj", "{0CCB8AFC-97D8-4251-9B9D-08E7DC41BB7E}" + ProjectSection(ProjectDependencies) = postProject + {54A61913-7439-41EF-BB66-45401FFBB9F7} = {54A61913-7439-41EF-BB66-45401FFBB9F7} + {54A61913-7439-41EF-BB66-45401FFBB9F7} = {54A61913-7439-41EF-BB66-45401FFBB9F7} + {FC47A187-6B10-4B19-93B5-ED7BCC75D466} = {FC47A187-6B10-4B19-93B5-ED7BCC75D466} + EndProjectSection +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "gst-register", "gst-register.vcproj", "{0CCB8AFC-97D8-4251-9B9D-08E7DC41BB7E}" + ProjectSection(ProjectDependencies) = postProject + {54A61913-7439-41EF-BB66-45401FFBB9F7} = {54A61913-7439-41EF-BB66-45401FFBB9F7} + {FC47A187-6B10-4B19-93B5-ED7BCC75D466} = {FC47A187-6B10-4B19-93B5-ED7BCC75D466} + EndProjectSection +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "gst-inspect", "gst-inspect.vcproj", "{0CCB8AFC-97D8-4251-9B9D-08E7DC41BB7E}" + ProjectSection(ProjectDependencies) = postProject + {54A61913-7439-41EF-BB66-45401FFBB9F7} = {54A61913-7439-41EF-BB66-45401FFBB9F7} + {FC47A187-6B10-4B19-93B5-ED7BCC75D466} = {FC47A187-6B10-4B19-93B5-ED7BCC75D466} + EndProjectSection +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "gstelements", "gstelements.vcproj", "{0CCB8AFC-97D8-4251-9B9D-08E7DC41BB7E}" + ProjectSection(ProjectDependencies) = postProject + {54A61913-7439-41EF-BB66-45401FFBB9F7} = {54A61913-7439-41EF-BB66-45401FFBB9F7} + {FC47A187-6B10-4B19-93B5-ED7BCC75D466} = {FC47A187-6B10-4B19-93B5-ED7BCC75D466} + EndProjectSection +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "gstoptimalscheduler", "gstoptimalscheduler.vcproj", "{0CCB8AFC-97D8-4251-9B9D-08E7DC41BB7E}" + ProjectSection(ProjectDependencies) = postProject + {FC47A187-6B10-4B19-93B5-ED7BCC75D466} = {FC47A187-6B10-4B19-93B5-ED7BCC75D466} + EndProjectSection +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "gstspider", "gstspider.vcproj", "{0CCB8AFC-97D8-4251-9B9D-08E7DC41BB7E}" + ProjectSection(ProjectDependencies) = postProject + {FC47A187-6B10-4B19-93B5-ED7BCC75D466} = {FC47A187-6B10-4B19-93B5-ED7BCC75D466} + EndProjectSection +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "gstbytestream", "gstbytestream.vcproj", "{0CCB8AFC-97D8-4251-9B9D-08E7DC41BB7E}" + ProjectSection(ProjectDependencies) = postProject + {FC47A187-6B10-4B19-93B5-ED7BCC75D466} = {FC47A187-6B10-4B19-93B5-ED7BCC75D466} + EndProjectSection +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "glib-marshal", "..\..\glib\win32\glib-marshal-msvc71.vcproj", "{D009C213-89B9-4FFD-9C02-690E99996A28}" + ProjectSection(ProjectDependencies) = postProject + {54A61913-7439-41EF-BB66-45401FFBB9F7} = {54A61913-7439-41EF-BB66-45401FFBB9F7} + EndProjectSection +EndProject +Global + GlobalSection(SolutionConfiguration) = preSolution + Debug = Debug + Release = Release + EndGlobalSection + GlobalSection(ProjectConfiguration) = postSolution + {FC47A187-6B10-4B19-93B5-ED7BCC75D466}.Debug.ActiveCfg = Debug|Win32 + {FC47A187-6B10-4B19-93B5-ED7BCC75D466}.Debug.Build.0 = Debug|Win32 + {FC47A187-6B10-4B19-93B5-ED7BCC75D466}.Release.ActiveCfg = Release|Win32 + {FC47A187-6B10-4B19-93B5-ED7BCC75D466}.Release.Build.0 = Release|Win32 + {54A61913-7439-41EF-BB66-45401FFBB9F7}.Debug.ActiveCfg = Debug|Win32 + {54A61913-7439-41EF-BB66-45401FFBB9F7}.Debug.Build.0 = Debug|Win32 + {54A61913-7439-41EF-BB66-45401FFBB9F7}.Release.ActiveCfg = Release|Win32 + {54A61913-7439-41EF-BB66-45401FFBB9F7}.Release.Build.0 = Release|Win32 + {54A61913-7439-41EF-BB66-45401FFBB9F7}.Debug.ActiveCfg = Debug|Win32 + {54A61913-7439-41EF-BB66-45401FFBB9F7}.Debug.Build.0 = Debug|Win32 + {54A61913-7439-41EF-BB66-45401FFBB9F7}.Release.ActiveCfg = Release|Win32 + {54A61913-7439-41EF-BB66-45401FFBB9F7}.Release.Build.0 = Release|Win32 + {54A61913-7439-41EF-BB66-45401FFBB9F7}.Debug.ActiveCfg = Debug|Win32 + {54A61913-7439-41EF-BB66-45401FFBB9F7}.Debug.Build.0 = Debug|Win32 + {54A61913-7439-41EF-BB66-45401FFBB9F7}.Release.ActiveCfg = Release|Win32 + {54A61913-7439-41EF-BB66-45401FFBB9F7}.Release.Build.0 = Release|Win32 + {54A61913-7439-41EF-BB66-45401FFBB9F7}.Debug.ActiveCfg = Debug|Win32 + {54A61913-7439-41EF-BB66-45401FFBB9F7}.Debug.Build.0 = Debug|Win32 + {54A61913-7439-41EF-BB66-45401FFBB9F7}.Release.ActiveCfg = Release|Win32 + {54A61913-7439-41EF-BB66-45401FFBB9F7}.Release.Build.0 = Release|Win32 + {0CCB8AFC-97D8-4251-9B9D-08E7DC41BB7E}.Debug.ActiveCfg = Debug|Win32 + {0CCB8AFC-97D8-4251-9B9D-08E7DC41BB7E}.Debug.Build.0 = Debug|Win32 + {0CCB8AFC-97D8-4251-9B9D-08E7DC41BB7E}.Release.ActiveCfg = Release|Win32 + {0CCB8AFC-97D8-4251-9B9D-08E7DC41BB7E}.Release.Build.0 = Release|Win32 + {0CCB8AFC-97D8-4251-9B9D-08E7DC41BB7E}.Debug.ActiveCfg = Debug|Win32 + {0CCB8AFC-97D8-4251-9B9D-08E7DC41BB7E}.Debug.Build.0 = Debug|Win32 + {0CCB8AFC-97D8-4251-9B9D-08E7DC41BB7E}.Release.ActiveCfg = Release|Win32 + {0CCB8AFC-97D8-4251-9B9D-08E7DC41BB7E}.Release.Build.0 = Release|Win32 + {0CCB8AFC-97D8-4251-9B9D-08E7DC41BB7E}.Debug.ActiveCfg = Debug|Win32 + {0CCB8AFC-97D8-4251-9B9D-08E7DC41BB7E}.Debug.Build.0 = Debug|Win32 + {0CCB8AFC-97D8-4251-9B9D-08E7DC41BB7E}.Release.ActiveCfg = Release|Win32 + {0CCB8AFC-97D8-4251-9B9D-08E7DC41BB7E}.Release.Build.0 = Release|Win32 + {0CCB8AFC-97D8-4251-9B9D-08E7DC41BB7E}.Debug.ActiveCfg = Debug|Win32 + {0CCB8AFC-97D8-4251-9B9D-08E7DC41BB7E}.Debug.Build.0 = Debug|Win32 + {0CCB8AFC-97D8-4251-9B9D-08E7DC41BB7E}.Release.ActiveCfg = Release|Win32 + {0CCB8AFC-97D8-4251-9B9D-08E7DC41BB7E}.Release.Build.0 = Release|Win32 + {0CCB8AFC-97D8-4251-9B9D-08E7DC41BB7E}.Debug.ActiveCfg = Debug|Win32 + {0CCB8AFC-97D8-4251-9B9D-08E7DC41BB7E}.Debug.Build.0 = Debug|Win32 + {0CCB8AFC-97D8-4251-9B9D-08E7DC41BB7E}.Release.ActiveCfg = Release|Win32 + {0CCB8AFC-97D8-4251-9B9D-08E7DC41BB7E}.Release.Build.0 = Release|Win32 + {0CCB8AFC-97D8-4251-9B9D-08E7DC41BB7E}.Debug.ActiveCfg = Debug|Win32 + {0CCB8AFC-97D8-4251-9B9D-08E7DC41BB7E}.Debug.Build.0 = Debug|Win32 + {0CCB8AFC-97D8-4251-9B9D-08E7DC41BB7E}.Release.ActiveCfg = Release|Win32 + {0CCB8AFC-97D8-4251-9B9D-08E7DC41BB7E}.Release.Build.0 = Release|Win32 + {0CCB8AFC-97D8-4251-9B9D-08E7DC41BB7E}.Debug.ActiveCfg = Debug|Win32 + {0CCB8AFC-97D8-4251-9B9D-08E7DC41BB7E}.Debug.Build.0 = Debug|Win32 + {0CCB8AFC-97D8-4251-9B9D-08E7DC41BB7E}.Release.ActiveCfg = Release|Win32 + {0CCB8AFC-97D8-4251-9B9D-08E7DC41BB7E}.Release.Build.0 = Release|Win32 + {D009C213-89B9-4FFD-9C02-690E99996A28}.Debug.ActiveCfg = Debug|Win32 + {D009C213-89B9-4FFD-9C02-690E99996A28}.Debug.Build.0 = Debug|Win32 + {D009C213-89B9-4FFD-9C02-690E99996A28}.Release.ActiveCfg = Release|Win32 + {D009C213-89B9-4FFD-9C02-690E99996A28}.Release.Build.0 = Release|Win32 + EndGlobalSection + GlobalSection(ExtensibilityGlobals) = postSolution + EndGlobalSection + GlobalSection(ExtensibilityAddIns) = postSolution + EndGlobalSection +EndGlobal -- 2.7.4