|
|
1.1 root 1: /*
2: * Copyright (c) 1999 Apple Computer, Inc. All rights reserved.
3: *
4: * @APPLE_LICENSE_HEADER_START@
5: *
6: * "Portions Copyright (c) 1999 Apple Computer, Inc. All Rights
7: * Reserved. This file contains Original Code and/or Modifications of
8: * Original Code as defined in and that are subject to the Apple Public
9: * Source License Version 1.0 (the 'License'). You may not use this file
10: * except in compliance with the License. Please obtain a copy of the
11: * License at http://www.apple.com/publicsource and read it before using
12: * this file.
13: *
14: * The Original Code and all software distributed under the License are
15: * distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
16: * EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
17: * INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
18: * FITNESS FOR A PARTICULAR PURPOSE OR NON-INFRINGEMENT. Please see the
19: * License for the specific language governing rights and limitations
20: * under the License."
21: *
22: * @APPLE_LICENSE_HEADER_END@
23: */
24: /* Required for compatiblity with 1.0 to turn off .const and .cstring */
25: #if !defined(__DYNAMIC__)
26: #pragma CC_NO_MACH_TEXT_SECTIONS
27: #endif
28:
29: #ifdef SHLIB
30: #import "shlib.h"
31: #endif SHLIB
32:
33: #import "hashtable.h"
34: #import "maptable.h"
35:
36: /*
37: * Global const data would go here and would look like:
38: * const int foo = 1;
39: */
40: /*
41: * hashtable globals
42: */
43:
44: extern unsigned hashPtrStructKey (const void *info, const void *data);
45: extern int isEqualPtrStructKey (const void *info, const void *data1, const void *data2);
46: extern unsigned hashStrStructKey (const void *info, const void *data);
47: extern int isEqualStrStructKey (const void *info, const void *data1, const void *data2);
48:
49: const NXHashTablePrototype NXPtrPrototype = {
50: NXPtrHash, NXPtrIsEqual, NXNoEffectFree, 0
51: };
52: const NXHashTablePrototype NXStrPrototype = {
53: NXStrHash, NXStrIsEqual, NXNoEffectFree, 0
54: };
55:
56:
57: const NXHashTablePrototype NXPtrStructKeyPrototype = {
58: hashPtrStructKey, isEqualPtrStructKey, NXReallyFree, 0
59: };
60:
61: const NXHashTablePrototype NXStrStructKeyPrototype = {
62: hashStrStructKey, isEqualStrStructKey, NXReallyFree, 0
63: };
64:
65: extern unsigned _mapPtrHash(NXMapTable *table, const void *key);
66: extern unsigned _mapStrHash(NXMapTable *table, const void *key);
67: extern unsigned _mapObjectHash(NXMapTable *table, const void *key);
68: extern int _mapPtrIsEqual(NXMapTable *table, const void *key1, const void *key2);
69: extern int _mapStrIsEqual(NXMapTable *table, const void *key1, const void *key2);
70: extern int _mapObjectIsEqual(NXMapTable *table, const void *key1, const void *key2);
71: extern void _mapNoFree(NXMapTable *table, void *key, void *value);
72: extern void _mapObjectFree(NXMapTable *table, void *key, void *value);
73:
74: const NXMapTablePrototype NXPtrValueMapPrototype = {
75: _mapPtrHash, _mapPtrIsEqual, _mapNoFree, 0
76: };
77:
78: const NXMapTablePrototype NXStrValueMapPrototype = {
79: _mapStrHash, _mapStrIsEqual, _mapNoFree, 0
80: };
81:
82: const NXMapTablePrototype NXObjectMapPrototype = {
83: _mapObjectHash, _mapObjectIsEqual, _mapObjectFree, 0
84: };
85:
86: #ifdef SHLIB
87: static const char _objc_global_text_pad[144] = {0};
88:
89: /*
90: * Declarations of static (literal) const data.
91: */
92: static const char _objc_literal_text_pad[256] = {0};
93:
94: #endif
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.