c
static void ble_hs_timer_sched(int32_t ticks_from_now) {
    ble_npl_time_t abs_time;
    ble_npl_time_t now = ble_npl_time_get();

    if (ticks_from_now == BLE_HS_FOREVER) {
        return;
    }

    if (ticks_from_now > 0 && now > BLE_HS_FOREVER - ticks_from_now) {
        abs_time = BLE_HS_FOREVER;  // Saturate at maximum value
    } else if (ticks_from_now < 0 && now < BLE_HS_FOREVER - ticks_from_now) { // check for negative overflow
        abs_time = 0; // Assuming 0 is the minimum valid time. Change as needed.
    } else {
        abs_time = now + ticks_from_now;
    }

    // ...
}
