|
|
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.