/* * Copyright (c) 1999 Apple Computer, Inc. All rights reserved. * * @APPLE_LICENSE_HEADER_START@ * * Portions Copyright (c) 1999 Apple Computer, Inc. All Rights * Reserved. This file contains Original Code and/or Modifications of * Original Code as defined in and that are subject to the Apple Public * Source License Version 1.1 (the "License"). You may not use this file * except in compliance with the License. Please obtain a copy of the * License at http://www.apple.com/publicsource and read it before using * this file. * * The Original Code and all software distributed under the License are * distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY KIND, EITHER * EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES, * INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY, * FITNESS FOR A PARTICULAR PURPOSE OR NON- INFRINGEMENT. Please see the * License for the specific language governing rights and limitations * under the License. * * @APPLE_LICENSE_HEADER_END@ */ #if defined(__MWERKS__) && !defined(__private_extern__) #define __private_extern__ __declspec(private_extern) #endif #ifdef RLD /* * The set structure that holds the information for a set of dynamicly loaded * object files. */ struct set { char *output_addr; /* the output memory for this set */ unsigned long output_size; /* the size of the output memory for this set */ struct object_file /* the structures for the common symbols of */ *link_edit_common_object;/* this set that are allocated by rld() */ struct section_map *link_edit_section_maps; struct section *link_edit_common_section; unsigned long narchives; /* the number of archives loaded in this set */ struct archive *archives; /* addresses and sizes of where they are */ }; struct archive { char *file_name; /* name of the archive that is mapped */ char *file_addr; /* address the archive is mapped at */ unsigned long file_size; /* size that is mapped */ }; /* * Pointer to the array of set structures. */ __private_extern__ struct set *sets; /* * Index into the array of set structures for the current set. */ __private_extern__ long cur_set; __private_extern__ void new_set( void); __private_extern__ void new_archive_or_fat( char *file_name, char *file_addr, unsigned long file_size); __private_extern__ void remove_set( void); __private_extern__ void free_sets( void); __private_extern__ void clean_archives_and_fats( void); #endif RLD