Should this be `extern "C" fn`?