1/* 2 * Copyright (c) 1999 Apple Computer, Inc. All rights reserved. 3 * 4 * @APPLE_LICENSE_HEADER_START@ 5 * 6 * This file contains Original Code and/or Modifications of Original Code 7 * as defined in and that are subject to the Apple Public Source License 8 * Version 2.0 (the 'License'). You may not use this file except in 9 * compliance with the License. Please obtain a copy of the License at 10 * http://www.opensource.apple.com/apsl/ and read it before using this 11 * file. 12 * 13 * The Original Code and all software distributed under the License are 14 * distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER 15 * EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES, 16 * INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY, 17 * FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT. 18 * Please see the License for the specific language governing rights and 19 * limitations under the License. 20 * 21 * @APPLE_LICENSE_HEADER_END@ 22 */ 23#if defined(__MWERKS__) && !defined(__private_extern__) 24#define __private_extern__ __declspec(private_extern) 25#endif 26 27#ifdef RLD 28/* 29 * The set structure that holds the information for a set of dynamicly loaded 30 * object files. 31 */ 32struct set { 33 char *output_addr; /* the output memory for this set */ 34 unsigned long output_size; /* the size of the output memory for this set */ 35 struct object_file /* the structures for the common symbols of */ 36 *link_edit_common_object;/* this set that are allocated by rld() */ 37 struct section_map 38 *link_edit_section_maps; 39 struct section 40 *link_edit_common_section; 41 unsigned long narchives; /* the number of archives loaded in this set */ 42 struct archive *archives; /* addresses and sizes of where they are */ 43}; 44struct archive { 45 char *file_name; /* name of the archive that is mapped */ 46 char *file_addr; /* address the archive is mapped at */ 47 unsigned long file_size; /* size that is mapped */ 48}; 49/* 50 * Pointer to the array of set structures. 51 */ 52__private_extern__ struct set *sets; 53/* 54 * Index into the array of set structures for the current set. 55 */ 56__private_extern__ long cur_set; 57 58__private_extern__ void new_set( 59 void); 60__private_extern__ void new_archive_or_fat( 61 char *file_name, 62 char *file_addr, 63 unsigned long file_size); 64__private_extern__ void remove_set( 65 void); 66__private_extern__ void free_sets( 67 void); 68__private_extern__ void clean_archives_and_fats( 69 void); 70 71#endif /* RLD */ 72