]> git.saurik.com Git - apple/xnu.git/blobdiff - libkern/kxld/kxld_seg.h
xnu-2050.7.9.tar.gz
[apple/xnu.git] / libkern / kxld / kxld_seg.h
index e6484bf1ae45e5af80515d828a9501125bb5bad3..1d863bf02b7df8b8358ad78f0f7b1ced66c176d4 100644 (file)
@@ -39,6 +39,7 @@
 #include "kxld_array.h"
 
 struct kxld_sect;
+struct kxld_symtab;
 struct segment_command;
 struct segment_command_64;
 typedef struct kxld_seg KXLDSeg;
@@ -77,6 +78,9 @@ kern_return_t kxld_seg_create_seg_from_sections(KXLDArray *segarray,
 kern_return_t kxld_seg_finalize_object_segment(KXLDArray *segarray,
     KXLDArray *section_order, u_long hdrsize)
     __attribute__((nonnull, visibility("hidden")));
+
+kern_return_t kxld_seg_init_linkedit(KXLDArray *segs)
+    __attribute__((nonnull, visibility("hidden")));
 #endif /* KXLD_USER_OR_OBJECT */
 
 void kxld_seg_clear(KXLDSeg *seg)
@@ -96,8 +100,11 @@ kxld_size_t kxld_seg_get_vmsize(const KXLDSeg *seg)
 u_long kxld_seg_get_macho_header_size(const KXLDSeg *seg, boolean_t is_32_bit)
     __attribute__((pure, nonnull, visibility("hidden")));
 
+#if 0
+/* This is no longer used, but may be useful some day... */
 u_long kxld_seg_get_macho_data_size(const KXLDSeg *seg)
     __attribute__((pure, nonnull, visibility("hidden")));
+#endif
 
 kern_return_t
 kxld_seg_export_macho_to_file_buffer(const KXLDSeg *seg, u_char *buf,
@@ -127,7 +134,17 @@ kern_return_t kxld_seg_finish_init(KXLDSeg *seg)
 void kxld_seg_set_vm_protections(KXLDSeg *seg, boolean_t strict_protections)
     __attribute__((nonnull, visibility("hidden")));
 
-void kxld_seg_relocate(KXLDSeg *Seg, kxld_addr_t link_addr)
+void kxld_seg_relocate(KXLDSeg *seg, kxld_addr_t link_addr)
+    __attribute__((nonnull, visibility("hidden")));
+
+void kxld_seg_populate_linkedit(KXLDSeg *seg, const struct kxld_symtab *symtab,
+    boolean_t is_32_bit
+#if KXLD_PIC_KEXTS
+    , const struct kxld_array *locrelocs
+    , const struct kxld_array *extrelocs
+    , boolean_t target_supports_slideable_kexts
+#endif  /* KXLD_PIC_KEXTS */
+       )
     __attribute__((nonnull, visibility("hidden")));
 
 #endif /* _KXLD_SEG_H_ */