c
int ble_hs_timer_sched(int32_t ticks_from_now) { // Change return type
    // ...

    if (ticks_from_now > 0 && now > BLE_HS_FOREVER - ticks_from_now) {
        return -1; // Indicate overflow error
    } else if (ticks_from_now < 0 && now < BLE_HS_FOREVER - ticks_from_now) { // check for negative overflow
        return -1; // Or a specific error code for negative overflow
    } else {
        abs_time = now + ticks_from_now;
    }

    // ...
    return 0;  // Success
}
