summaryrefslogtreecommitdiffstats
path: root/generic/tclInt.decls
diff options
context:
space:
mode:
authorjan.nijtmans <nijtmans@users.sourceforge.net>2012-03-25 21:42:51 (GMT)
committerjan.nijtmans <nijtmans@users.sourceforge.net>2012-03-25 21:42:51 (GMT)
commit46a9d4495a0c97352ffe46535f31617afe2e6f65 (patch)
treeae11295348d39be9cdbaade45be3babfbe49db7c /generic/tclInt.decls
parent8a53f7ba996a8144e2beacd6fb3765c5a21f2d8b (diff)
parent2361a87fc4e600622f0aee538f97b49a0c1e4cf8 (diff)
downloadtcl-46a9d4495a0c97352ffe46535f31617afe2e6f65.zip
tcl-46a9d4495a0c97352ffe46535f31617afe2e6f65.tar.gz
tcl-46a9d4495a0c97352ffe46535f31617afe2e6f65.tar.bz2
[Bug 3508771] load tclreg.dll in cygwin tclsh
Implement TclWinConvertError, TclWinConvertWSAError, and various more win32-specific internal functions for Cygwin, so win32 extensions using those can be loaded in the cygwin version of tclsh.
Diffstat (limited to 'generic/tclInt.decls')
-rw-r--r--generic/tclInt.decls180
1 files changed, 162 insertions, 18 deletions
diff --git a/generic/tclInt.decls b/generic/tclInt.decls
index a476ee8..b0bc73e 100644
--- a/generic/tclInt.decls
+++ b/generic/tclInt.decls
@@ -1012,6 +1012,117 @@ declare 250 {
interface tclIntPlat
+########################
+# Mac specific internals
+
+declare 0 mac {
+ VOID *TclpSysAlloc(long size, int isBin)
+}
+declare 1 mac {
+ void TclpSysFree(VOID *ptr)
+}
+declare 2 mac {
+ VOID *TclpSysRealloc(VOID *cp, unsigned int size)
+}
+declare 3 mac {
+ void TclpExit(int status)
+}
+
+# Prototypes for functions found in the tclMacUtil.c compatability library.
+
+declare 4 mac {
+ int FSpGetDefaultDir(FSSpecPtr theSpec)
+}
+declare 5 mac {
+ int FSpSetDefaultDir(FSSpecPtr theSpec)
+}
+declare 6 mac {
+ OSErr FSpFindFolder(short vRefNum, OSType folderType,
+ Boolean createFolder, FSSpec *spec)
+}
+declare 7 mac {
+ void GetGlobalMouseTcl(Point *mouse)
+}
+
+# The following routines are utility functions in Tcl. They are exported
+# here because they are needed in Tk. They are not officially supported,
+# however. The first set are from the MoreFiles package.
+
+declare 8 mac {
+ pascal OSErr FSpGetDirectoryIDTcl(CONST FSSpec *spec, long *theDirID,
+ Boolean *isDirectory)
+}
+declare 9 mac {
+ pascal short FSpOpenResFileCompatTcl(CONST FSSpec *spec,
+ SignedByte permission)
+}
+declare 10 mac {
+ pascal void FSpCreateResFileCompatTcl(CONST FSSpec *spec, OSType creator,
+ OSType fileType, ScriptCode scriptTag)
+}
+
+# Like the MoreFiles routines these fix problems in the standard
+# Mac calls. These routines are from tclMacUtils.h.
+
+declare 11 mac {
+ int FSpLocationFromPath(int length, CONST char *path, FSSpecPtr theSpec)
+}
+declare 12 mac {
+ OSErr FSpPathFromLocation(FSSpecPtr theSpec, int *length,
+ Handle *fullPath)
+}
+
+# Prototypes of Mac only internal functions.
+
+declare 13 mac {
+ void TclMacExitHandler(void)
+}
+declare 14 mac {
+ void TclMacInitExitToShell(int usePatch)
+}
+declare 15 mac {
+ OSErr TclMacInstallExitToShellPatch(ExitToShellProcPtr newProc)
+}
+declare 16 mac {
+ int TclMacOSErrorToPosixError(int error)
+}
+declare 17 mac {
+ void TclMacRemoveTimer(VOID *timerToken)
+}
+declare 18 mac {
+ VOID *TclMacStartTimer(long ms)
+}
+declare 19 mac {
+ int TclMacTimerExpired(VOID *timerToken)
+}
+declare 20 mac {
+ int TclMacRegisterResourceFork(short fileRef, Tcl_Obj *tokenPtr,
+ int insert)
+}
+declare 21 mac {
+ short TclMacUnRegisterResourceFork(char *tokenPtr, Tcl_Obj *resultPtr)
+}
+declare 22 mac {
+ int TclMacCreateEnv(void)
+}
+declare 23 mac {
+ FILE *TclMacFOpenHack(CONST char *path, CONST char *mode)
+}
+# Replaced in 8.1 by TclpReadLink:
+# declare 24 mac {
+# int TclMacReadlink(char *path, char *buf, int size)
+# }
+declare 24 mac {
+ char *TclpGetTZName(int isdst)
+}
+declare 25 mac {
+ int TclMacChmod(CONST char *path, int mode)
+}
+# version of FSpLocationFromPath that doesn't resolve the last path component
+declare 26 mac {
+ int FSpLLocationFromPath(int length, CONST char *path, FSSpecPtr theSpec)
+}
+
################################
# Windows specific functions
@@ -1134,11 +1245,13 @@ declare 29 win {
# Pipe channel functions
+# On non-cygwin, this is actually a reference to TclGetAndDetachPids
declare 0 unix {
- void TclGetAndDetachPids(Tcl_Interp *interp, Tcl_Channel chan)
+ void TclWinConvertError(unsigned int errCode)
}
+# On non-cygwin, this is actually a reference to TclpCloseFile
declare 1 unix {
- int TclpCloseFile(TclFile file)
+ void TclWinConvertWSAError(unsigned int errCode)
}
declare 2 unix {
Tcl_Channel TclpCreateCommandChannel(TclFile readFile,
@@ -1147,20 +1260,23 @@ declare 2 unix {
declare 3 unix {
int TclpCreatePipe(TclFile *readPipe, TclFile *writePipe)
}
+# On non-cygwin, this is actually a reference to TclpCreateProcess
declare 4 unix {
- int TclpCreateProcess(Tcl_Interp *interp, int argc, const char **argv,
- TclFile inputFile, TclFile outputFile, TclFile errorFile,
- Tcl_Pid *pidPtr)
+ int TclWinGetTclInstance(void)
}
# Signature changed in 8.1:
# declare 5 unix {
# TclFile TclpCreateTempFile(char *contents, Tcl_DString *namePtr)
# }
+
+# On non-cygwin, this is actually a reference to TclpMakeFile
declare 6 unix {
- TclFile TclpMakeFile(Tcl_Channel channel, int direction)
+ unsigned short TclWinNToHS(unsigned short ns)
}
+# On non-cygwin, this is actually a reference to TclpOpenFile
declare 7 unix {
- TclFile TclpOpenFile(const char *fname, int mode)
+ int TclWinSetSockOpt(int s, int level, int optname,
+ const char *optval, int optlen)
}
declare 8 unix {
int TclUnixWaitForFile(int fd, int mask, int timeout)
@@ -1180,9 +1296,11 @@ declare 10 unix {
}
# Slots 11 and 12 are forwarders for functions that were promoted to
# Stubs
+# On cygwin, this is actually a reference to TclGetAndDetachPids
declare 11 unix {
struct tm *TclpLocaltime_unix(const time_t *clock)
}
+# On cygwin, this is actually a reference to TclpCloseFile
declare 12 unix {
struct tm *TclpGmtime_unix(const time_t *clock)
}
@@ -1197,17 +1315,11 @@ declare 14 unix {
const Tcl_StatBuf *statBufPtr, int dontCopyAtts)
}
-declare 22 unix {
- TclFile TclpCreateTempFile(const char *contents)
-}
-declare 29 unix {
- int TclWinCPUID(unsigned int index, unsigned int *regs)
-}
-
################################
# Mac OS X specific functions
-declare 15 macosx {
+#On cygwin, TclpCreateProcess is here
+declare 15 {unix macosx} {
int TclMacOSXGetFileAttribute(Tcl_Interp *interp, int objIndex,
Tcl_Obj *fileName, Tcl_Obj **attributePtrPtr)
}
@@ -1219,13 +1331,45 @@ declare 17 macosx {
int TclMacOSXCopyFileAttributes(const char *src, const char *dst,
const Tcl_StatBuf *statBufPtr)
}
-declare 18 macosx {
+#On cygwin, TclpMakeFile is here
+declare 18 {unix macosx} {
int TclMacOSXMatchType(Tcl_Interp *interp, const char *pathName,
const char *fileName, Tcl_StatBuf *statBufPtr,
Tcl_GlobTypeData *types)
}
-declare 19 macosx {
- void TclMacOSXNotifierAddRunLoopMode(const void *runLoopMode)
+#On cygwin, TclpOpenFile is here
+declare 19 {unix macosx} {
+ void TclMacOSXNotifierAddRunLoopMode(const void *runLoopMode)
+}
+declare 20 unix {
+ void TclWinAddProcess(void *hProcess, unsigned long id)
+}
+declare 22 unix {
+ TclFile TclpCreateTempFile(const char *contents)
+}
+declare 23 unix {
+ char *TclpGetTZName(int isdst)
+}
+declare 24 unix {
+ char *TclWinNoBackslash(char *path)
+}
+declare 26 unix {
+ void TclWinSetInterfaces(int wide)
+}
+declare 27 unix {
+ void TclWinFlushDirtyChannels(void)
+}
+declare 28 unix {
+ void TclWinResetInterfaces(void)
+}
+declare 29 unix {
+ int TclWinCPUID(unsigned int index, unsigned int *regs)
+}
+declare 30 unix {
+ void TclGetAndDetachPids(Tcl_Interp *interp, Tcl_Channel chan)
+}
+declare 31 unix {
+ int TclpCloseFile(TclFile file)
}