      self.cmdline = cmdline
      self.enabled = enabled
      self.onroad = onroad
      self.offroad = offroad
      self.driverview = driverview
      self.notcar = notcar
      self.unkillable = unkillable
      self.sigkill = sigkill
      self.watchdog_max_dt = watchdog_max_dt
  
    def prepare(self) -> None:
 
</s> remove     self.driverview = driverview
    self.notcar = notcar
 </s> add     self.callback = callback </s> remove   driverview = False
  notcar = False
 </s> add   callback: Optional[Callable[[bool, Params, car.CarParams], bool]] = None </s> remove   def __init__(self, name, cwd, cmdline, enabled=True, onroad=True, offroad=False, driverview=False, notcar=False, unkillable=False, sigkill=False, watchdog_max_dt=None):
 </s> add   def __init__(self, name, cwd, cmdline, enabled=True, onroad=True, offroad=False, callback=None, unkillable=False, sigkill=False, watchdog_max_dt=None): </s> remove   def __init__(self, name, module, enabled=True, onroad=True, offroad=False, driverview=False, notcar=False, unkillable=False, sigkill=False, watchdog_max_dt=None):
 </s> add   def __init__(self, name, module, enabled=True, onroad=True, offroad=False, callback=None, unkillable=False, sigkill=False, watchdog_max_dt=None): </s> remove     driverview = params.get_bool("IsDriverViewEnabled")
    ensure_running(managed_processes.values(), started=started, driverview=driverview, notcar=sm['carParams'].notCar, not_run=ignore)
 </s> add     ensure_running(managed_processes.values(), started, params=params, CP=sm['carParams'], not_run=ignore)
    self.callback = callback
      self.cmdline = cmdline
      self.enabled = enabled
      self.onroad = onroad
      self.offroad = offroad
    self.callback = callback
    self.callback = callback
      self.unkillable = unkillable
      self.sigkill = sigkill
      self.watchdog_max_dt = watchdog_max_dt
  
    def prepare(self) -> None:
keep keep keep keep replace replace keep keep keep keep keep
 manager: start process by callback (#24417) 
selfdrive/manager/process.py