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) {
        // Handle overflow appropriately (e.g., set to maximum, return an error)
        abs_time = BLE_HS_FOREVER; 
    } else {
        abs_time = now + ticks_from_now;
    }
    // ... rest of the function
}

