1*4f1223e8SApple OSS Distributions #include <libkern/libkern.h> 2*4f1223e8SApple OSS Distributions #include <libkern/section_keywords.h> 3*4f1223e8SApple OSS Distributions #include <libkern/image4/dlxk.h> 4*4f1223e8SApple OSS Distributions 5*4f1223e8SApple OSS Distributions #pragma mark Module Globals 6*4f1223e8SApple OSS Distributions SECURITY_READ_ONLY_LATE(const image4_dlxk_interface_t *) _dlxk = NULL; 7*4f1223e8SApple OSS Distributions 8*4f1223e8SApple OSS Distributions #pragma mark KPI 9*4f1223e8SApple OSS Distributions void image4_dlxk_link(const image4_dlxk_interface_t * dlxk)10*4f1223e8SApple OSS Distributionsimage4_dlxk_link(const image4_dlxk_interface_t *dlxk) 11*4f1223e8SApple OSS Distributions { 12*4f1223e8SApple OSS Distributions if (_dlxk) { 13*4f1223e8SApple OSS Distributions panic("image4 dlxk interface already set"); 14*4f1223e8SApple OSS Distributions } 15*4f1223e8SApple OSS Distributions _dlxk = dlxk; 16*4f1223e8SApple OSS Distributions } 17*4f1223e8SApple OSS Distributions 18*4f1223e8SApple OSS Distributions const image4_dlxk_interface_t * image4_dlxk_get(image4_struct_version_t v)19*4f1223e8SApple OSS Distributionsimage4_dlxk_get(image4_struct_version_t v) 20*4f1223e8SApple OSS Distributions { 21*4f1223e8SApple OSS Distributions if (v > _dlxk->dlxk_version) { 22*4f1223e8SApple OSS Distributions return NULL; 23*4f1223e8SApple OSS Distributions } 24*4f1223e8SApple OSS Distributions return _dlxk; 25*4f1223e8SApple OSS Distributions } 26