/* SPDX-License-Identifier: GPL-2.0-only */

#ifndef __TIMESTAMP_H__
#define __TIMESTAMP_H__

#include <commonlib/timestamp_serialized.h> /* IWYU pragma: export */
#include <stdint.h>

#if CONFIG(COLLECT_TIMESTAMPS)
/*
 * timestamp_init() needs to be called once in *one* of the ENV_ROMSTAGE_OR_BEFORE
 * stages (bootblock, romstage, verstage, etc). It's up to the chipset/arch
 * to make the call in the earliest stage, otherwise some timestamps will be lost.
 * For x86 ENV_BOOTBLOCK / ENV_SEPARATE_ROMSTAGE call must be made before CAR is torn down.
 */
void timestamp_init(uint64_t base);
/*
 * Add a new timestamp. For ENV_ROMSTAGE_OR_BEFORE, this timestamp will be stored
 * inside REGION(timestamp) before cbmem comes online. For later stages, timestamps
 * added before cbmem_[recovery|initialize] calls will be lost.
 */
void timestamp_add(enum timestamp_id id, int64_t ts_time);
/* Calls timestamp_add with current timestamp. */
void timestamp_add_now(enum timestamp_id id);

/* Apply a factor of N/M to all timestamps recorded so far. */
void timestamp_rescale_table(uint16_t N, uint16_t M);

/*
 * Get the time since boot scaled in microseconds. Therefore use the base time
 * of the timestamps to get the initial value which is subtracted from
 * current timestamp at call time. This will provide a more reliable value even
 * if the TSC is not reset on soft reset or warm start.
 */
uint32_t get_us_since_boot(void);

#else
#define timestamp_init(base)
#define timestamp_add(id, time)
#define timestamp_add_now(id)
#define timestamp_rescale_table(N, M)
#define get_us_since_boot() 0
#endif

/**
 * Workaround for guard combination above.
 */
#if CONFIG(COLLECT_TIMESTAMPS)
/* Implemented by the architecture code */
uint64_t timestamp_get(void);
#else
#define timestamp_get() 0
#endif

uint64_t get_initial_timestamp(void);
/* Returns timestamp tick frequency in MHz. */
int timestamp_tick_freq_mhz(void);

#endif
