Netware patches from Ananth Kesari.
[p5sagit/p5-mst-13.2.git] / NetWare / nwtinfo.h
CommitLineData
2986a63f 1
2/*
3 * Copyright © 2001 Novell, Inc. All Rights Reserved.
4 *
5 * You may distribute under the terms of either the GNU General Public
6 * License or the Artistic License, as specified in the README file.
7 *
8 */
9
10/*
11 * FILENAME : NWTInfo.h
12 * DESCRIPTION : Thread-local storage for Perl.
13 * Author : SGP, HYAK
14 * Date : January 2001.
15 *
16 */
17
18
19
20#ifndef __NWTInfo_H__
21#define __NWTInfo_H__
22
23
24#include "win32ish.h" // For "BOOL", "TRUE" and "FALSE"
25
26typedef struct tagThreadInfo
27{
28 int tid;
29 struct tagThreadInfo *next;
30 BOOL m_dontTouchHashLists;
31 void* m_allocList;
32}ThreadInfo;
33
2986a63f 34void fnInitializeThreadInfo(void);
35BOOL fnTerminateThreadInfo(void);
36BOOL fnRegisterWithThreadTable(void);
37BOOL fnUnregisterWithThreadTable(void);
38
39ThreadInfo* fnAddThreadInfo(int tid);
40BOOL fnRemoveThreadInfo(int tid);
41ThreadInfo* fnGetThreadInfo(int tid);
42
43//For storing and retrieving Watcom Hash list address
8dbfbba0 44#ifdef __cplusplus
45 extern "C" BOOL fnInsertHashListAddrs(void *addrs, BOOL dontTouchHashList);
46#else
47 BOOL fnInsertHashListAddrs(void *addrs, BOOL dontTouchHashList);
48#endif
2986a63f 49BOOL fnGetHashListAddrs(void **addrs, BOOL *dontTouchHashList);
50
51//New TLS to set and get the thread contex - may be redundant,
52//or see if the above portion can be removed once this works properly
53typedef struct tagThreadCtx
54{
55 long tid;
56 void *tInfo;
57 struct tagThreadCtx *next;
58}ThreadContext;
59
60
61long fnInitializeThreadCtx(void);
62ThreadContext* fnAddThreadCtx(long lTLSIndex, void *t);
63BOOL fnRemoveThreadCtx(long lTLSIndex);
64void* fnGetThreadCtx(long lTLSIndex);
65
66#endif // __NWTInfo_H__
67