1818
1919OSDefineMetaClassAndStructors (PRODUCT_NAME, IOService)
2020
21- bool PRODUCT_NAME::init(OSDictionary *dict) {
22- if (!IOService::init (dict)) {
23- SYSLOG (" init" , " failed to initalise the parent" );
24- return false ;
25- }
26-
27- return config.getBootArguments ();
21+ IOService *PRODUCT_NAME::probe(IOService *provider, SInt32 *score) {
22+ auto service = IOService::probe (provider, score);
23+ return config.startSuccess ? service : nullptr ;
2824}
2925
3026bool PRODUCT_NAME::start (IOService *provider) {
@@ -33,7 +29,7 @@ bool PRODUCT_NAME::start(IOService *provider) {
3329 return false ;
3430 }
3531
36- return true ;
32+ return config. startSuccess ;
3733}
3834
3935void PRODUCT_NAME::stop (IOService *provider) {
@@ -170,16 +166,15 @@ extern "C" kern_return_t kern_start(kmod_info_t * ki, void *d) {
170166
171167 lilu.init ();
172168
173- if (config.policy .registerPolicy ()) {
174- return KERN_SUCCESS;
175- }
176-
177- SYSLOG (" init" , " failed to register the policy" );
169+ if (config.policy .registerPolicy ())
170+ config.startSuccess = true ;
171+ else
172+ SYSLOG (" init" , " failed to register the policy" );
178173 }
179174
180- return KERN_FAILURE ;
175+ return KERN_SUCCESS ;
181176}
182177
183178extern " C" kern_return_t kern_stop (kmod_info_t *ki, void *d) {
184- return KERN_FAILURE;
179+ return config. startSuccess ? KERN_FAILURE : KERN_SUCCESS ;
185180}
0 commit comments