Asterisk - The Open Source Telephony Project  GIT-master-1f78ee9
Functions | Variables
time.h File Reference

Time-related functions and macros. More...

#include "asterisk/autoconfig.h"
#include <sys/time.h>
#include <unistd.h>
#include "asterisk/inline_api.h"

Go to the source code of this file.

Functions

void ast_format_duration_hh_mm_ss (int duration, char *buf, size_t length)
 Formats a duration into HH:MM:SS. More...
 
int ast_remaining_ms (struct timeval start, int max_ms)
 Calculate remaining milliseconds given a starting timestamp and upper bound. More...
 
struct timeval ast_samp2tv (unsigned int _nsamp, unsigned int _rate)
 Returns a timeval corresponding to the duration of n samples at rate r. Useful to convert samples to timevals, or even milliseconds to timevals in the form ast_samp2tv(milliseconds, 1000) More...
 
struct timespec ast_tsnow (void)
 Returns current timespec. Meant to avoid calling ast_tvnow() just to create a timespec from the timeval it returns. More...
 
struct timeval ast_tv (ast_time_t sec, ast_suseconds_t usec)
 Returns a timeval from sec, usec. More...
 
struct timeval ast_tvadd (struct timeval a, struct timeval b)
 Returns the sum of two timevals a + b. More...
 
int ast_tvcmp (struct timeval _a, struct timeval _b)
 Compres two struct timeval instances returning -1, 0, 1 if the first arg is smaller, equal or greater to the second. More...
 
int64_t ast_tvdiff_ms (struct timeval end, struct timeval start)
 Computes the difference (in milliseconds) between two struct timeval instances. More...
 
int64_t ast_tvdiff_sec (struct timeval end, struct timeval start)
 Computes the difference (in seconds) between two struct timeval instances. More...
 
int64_t ast_tvdiff_us (struct timeval end, struct timeval start)
 Computes the difference (in microseconds) between two struct timeval instances. More...
 
int ast_tveq (struct timeval _a, struct timeval _b)
 Returns true if the two struct timeval arguments are equal. More...
 
struct timeval ast_tvnow (void)
 Returns current timeval. Meant to replace calls to gettimeofday(). More...
 
struct timeval ast_tvsub (struct timeval a, struct timeval b)
 Returns the difference of two timevals a - b. More...
 
int ast_tvzero (const struct timeval t)
 Returns true if the argument is 0,0. More...
 
typedef typeof (dummy_tv_var_for_types.tv_sec) ast_time_t
 

Variables

struct timeval dummy_tv_var_for_types
 

Detailed Description

Time-related functions and macros.

Definition in file time.h.

Function Documentation

◆ ast_format_duration_hh_mm_ss()

void ast_format_duration_hh_mm_ss ( int  duration,
char *  buf,
size_t  length 
)

Formats a duration into HH:MM:SS.

Since
12
Parameters
durationThe time (in seconds) to format
bufA buffer to hold the formatted string'
lengthThe size of the buffer

Definition at line 1919 of file main/utils.c.

Referenced by cli_channel_print_body(), cli_channelstats_print_body(), handle_bridge_show_all(), handle_bridge_show_specific(), show_chanstats_cb(), and stasis_show_topic().

1920 {
1921  int durh, durm, durs;
1922  durh = duration / 3600;
1923  durm = (duration % 3600) / 60;
1924  durs = duration % 60;
1925  snprintf(buf, length, "%02d:%02d:%02d", durh, durm, durs);
1926 }
char buf[BUFSIZE]
Definition: eagi_proxy.c:66

◆ ast_remaining_ms()

int ast_remaining_ms ( struct timeval  start,
int  max_ms 
)

Calculate remaining milliseconds given a starting timestamp and upper bound.

If the upper bound is negative then this indicates that there is no upper bound on the amount of time to wait. This will result in a negative return.

Parameters
startWhen timing started being calculated
max_msThe maximum number of milliseconds to wait from start. May be negative.
Returns
The number of milliseconds left to wait for. May be negative.

Definition at line 1903 of file main/utils.c.

References ast_tvdiff_ms(), and ast_tvnow().

Referenced by __analog_ss_thread(), __ast_answer(), __ast_request_and_dial(), analog_ss_thread(), ast_iostream_write(), ast_recvtext(), ast_safe_sleep_conditional(), ast_stun_request(), ast_waitfordigit_full(), disable_t38(), find_cache(), generic_fax_exec(), iostream_read(), parking_set_duration(), receivefax_t38_init(), record_exec(), sendfax_t38_init(), sorcery_memory_cache_ami_populate(), wait_for_answer(), and waitforring_exec().

1904 {
1905  int ms;
1906 
1907  if (max_ms < 0) {
1908  ms = max_ms;
1909  } else {
1910  ms = max_ms - ast_tvdiff_ms(ast_tvnow(), start);
1911  if (ms < 0) {
1912  ms = 0;
1913  }
1914  }
1915 
1916  return ms;
1917 }
struct timeval ast_tvnow(void)
Returns current timeval. Meant to replace calls to gettimeofday().
Definition: time.h:150
int64_t ast_tvdiff_ms(struct timeval end, struct timeval start)
Computes the difference (in milliseconds) between two struct timeval instances.
Definition: time.h:98

◆ ast_samp2tv()

struct timeval ast_samp2tv ( unsigned int  _nsamp,
unsigned int  _rate 
)

◆ ast_tsnow()

struct timespec ast_tsnow ( void  )

Returns current timespec. Meant to avoid calling ast_tvnow() just to create a timespec from the timeval it returns.

Definition at line 177 of file time.h.

Referenced by AST_TEST_DEFINE(), ast_tvnow(), query_set_test(), resolution_thread(), and wait_for_resolution().

220 {

◆ ast_tv()

struct timeval ast_tv ( ast_time_t  sec,
ast_suseconds_t  usec 
)

◆ ast_tvadd()

struct timeval ast_tvadd ( struct timeval  a,
struct timeval  b 
)

Returns the sum of two timevals a + b.

Definition at line 2283 of file extconf.c.

References a, b, ONE_MILLION, and tvfix().

Referenced by __get_from_jb(), acf_jabberreceive_read(), ast_audiohook_trigger_wait(), ast_bridge_channel_feature_digit(), ast_bridge_interval_hook(), ast_channel_cmpwhentohangup_tv(), ast_channel_setwhentohangup_tv(), ast_poll2(), ast_rtp_dtmf_begin(), ast_rtp_dtmf_end_with_duration(), ast_rtp_sendcng(), ast_sched_runq(), ast_sip_schedule_task(), ast_smoother_read(), AST_TEST_DEFINE(), ast_translate(), bridge_builtin_set_limits(), bridge_channel_handle_interval(), bridge_sync_wait(), calc_rxstamp(), calc_timestamp(), cli_show_tasks(), cli_tps_ping(), conf_run(), consumer_should_stay(), dial_exec_full(), do_cdr(), do_timing(), expire_objects_from_cache(), handle_keepalive_message(), handler_wait_for_message(), hook_event_cb(), iax2_process_thread(), jb_get_and_deliver(), jitterbuffer_frame_get_ntp_timestamp(), make_deadline(), mb_poll_thread(), monmp3thread(), mp3_exec(), mwi_monitor_handler(), NBScat_exec(), register_aor_core(), rtp_deallocate_transport(), run_task(), sched_run(), sched_settime(), schedule_cache_expiration(), schedule_delivery(), set_timeout(), sla_process_timers(), smdi_message_wait(), sorcery_memory_cache_print_object(), subscription_persistence_update(), timeout_write(), user_event_wait_for_events(), and wait_for_stimulus().

2284 {
2285  /* consistency checks to guarantee usec in 0..999999 */
2286  a = tvfix(a);
2287  b = tvfix(b);
2288  a.tv_sec += b.tv_sec;
2289  a.tv_usec += b.tv_usec;
2290  if (a.tv_usec >= ONE_MILLION) {
2291  a.tv_sec++;
2292  a.tv_usec -= ONE_MILLION;
2293  }
2294  return a;
2295 }
static struct timeval tvfix(struct timeval a)
Definition: extconf.c:2267
static struct test_val b
#define ONE_MILLION
Definition: extconf.c:2262
static struct test_val a

◆ ast_tvcmp()

int ast_tvcmp ( struct timeval  _a,
struct timeval  _b 
)
inline

◆ ast_tvdiff_ms()

int64_t ast_tvdiff_ms ( struct timeval  end,
struct timeval  start 
)
inline

Computes the difference (in milliseconds) between two struct timeval instances.

Parameters
endend of the time period
startbeginning of the time period
Returns
the difference in milliseconds

Definition at line 98 of file time.h.

Referenced by __analog_handle_event(), __ast_read(), __get_from_jb(), acf_jabberreceive_read(), action_coreshowchannels(), ast_audiohook_write_frame(), ast_carefulwrite(), ast_cdr_format_var(), ast_channel_cmpwhentohangup_tv(), ast_channel_end_dtmf(), ast_channel_get_duration_ms(), ast_channel_get_up_time_ms(), ast_check_hangup(), ast_get_enum(), ast_odbc_direct_execute(), ast_odbc_prepare_and_execute(), ast_poll2(), ast_remaining_ms(), ast_rtp_interpret(), ast_rtp_read(), ast_sched_wait(), ast_sip_sched_task_get_next_run(), AST_TEST_DEFINE(), ast_waitfor_nandfds(), audiohook_read_frame_both(), background_detect_exec(), bridge_agent_hold_heartbeat(), bridge_channel_feature_timeout(), bridge_channel_handle_feature_timeout(), bridge_channel_handle_interval(), bridge_channel_next_interval(), bridge_channel_settle_owed_events(), calc_rxstamp(), calc_timestamp(), calc_txpeerstamp(), calc_txstamp(), cdr_object_finalize(), cdr_object_get_billsec(), cdr_object_get_duration(), check_endpoint(), check_timer(), cli_show_channel(), cli_show_channels(), cli_subscription_expiry(), cli_unid_print_body(), conf_run(), contact_expire(), dahdi_handle_event(), dahdi_read(), destroy_trans(), disa_exec(), dundi_do_lookup(), dundi_do_precache(), dundi_lookup_internal(), dundi_precache_internal(), dundi_query_eid_internal(), expire_contact(), expire_objects_from_cache(), expire_requests(), fax_detect_framehook(), fax_gateway_framehook(), fix_peerts(), get_now(), handle_chanlist(), handle_cli_file_convert(), handle_cli_performance_test(), handle_cli_queue_test(), handle_keepalive_message(), handle_recordfile(), handle_response_peerpoke(), handle_timeout_trip(), hook_callback(), hook_event_cb(), http_callback(), isAnsweringMachine(), keypad_cfg_read(), limits_interval_playback(), measurenoise(), misdn_overlap_dial_task(), misdn_read(), monmp3thread(), mp3_exec(), NBScat_exec(), process_dtmf_rfc2833(), publish_msg(), purge_old_fn(), purge_old_messages(), receive_ademco_event(), receive_dtmf_digits(), registrar_add_contact(), retrans_pkt(), rtp_codecs_find_non_primary_dynamic_rx(), rtp_learning_rtp_seq_update(), run_task(), schedule_cache_expiration(), scheduler(), set_interval_hook(), setformat(), should_skip_dtmf(), should_trigger_dtmf_emulating(), sla_calc_station_timeouts(), sla_calc_trunk_timeouts(), sla_check_failed_station(), sla_check_station_delay(), smdi_message_wait(), softmix_bridge_write_control(), softmix_mixing_loop(), sorcery_memory_cache_print_object(), sorcery_memory_cache_thrash_retrieve(), sorcery_memory_cache_thrash_update(), speech_background(), sub_persistence_recreate(), subscription_invoke(), subscription_persistence_recreate(), talk_detect_audiohook_cb(), testloop(), timeout_read(), timing_test(), update_jbsched(), updates(), wait_for_answer(), wait_for_output(), and waituntil_exec().

105 {

◆ ast_tvdiff_sec()

int64_t ast_tvdiff_sec ( struct timeval  end,
struct timeval  start 
)
inline

Computes the difference (in seconds) between two struct timeval instances.

Parameters
endthe end of the time period
startthe beginning of the time period
Returns
the difference in seconds

Definition at line 64 of file time.h.

Referenced by acf_jabberreceive_read(), delete_old_messages(), generate_status(), get_channel_duration(), get_core_uptime_cb(), get_last_reload_cb(), purge_events(), transmit_audio(), transmit_t38(), and unload_module().

74 {

◆ ast_tvdiff_us()

int64_t ast_tvdiff_us ( struct timeval  end,
struct timeval  start 
)
inline

Computes the difference (in microseconds) between two struct timeval instances.

Parameters
endthe end of the time period
startthe beginning of the time period
Returns
the difference in microseconds

Definition at line 78 of file time.h.

Referenced by ast_media_index_update_for_file(), ast_merge_contexts_and_delete(), cdr_read_callback(), execute_cb(), handle_cli_sched_bench(), is_timed_out(), kqueue_timer_fd(), mysql_log(), odbc_log(), pgsql_log(), rtp_transport_wide_cc_feedback_produce(), sip_options_contact_status_notify_task(), tds_log(), and transmit_t38().

88 {

◆ ast_tveq()

int ast_tveq ( struct timeval  _a,
struct timeval  _b 
)
inline

Returns true if the two struct timeval arguments are equal.

Definition at line 138 of file time.h.

References NULL.

Referenced by ast_translate().

145 {

◆ ast_tvnow()

struct timeval ast_tvnow ( void  )

Returns current timeval. Meant to replace calls to gettimeofday().

Definition at line 150 of file time.h.

References AST_INLINE_API, and ast_tsnow().

Referenced by __analog_handle_event(), __analog_ss_thread(), __ast_answer(), __ast_channel_alloc_ap(), __ast_read(), __ast_request_and_dial(), __ast_rwlock_timedrdlock(), __ast_rwlock_timedwrlock(), __dahdi_exception(), __get_from_jb(), __manager_event_sessions_va(), __sip_reliable_xmit(), _sip_tcp_helper_thread(), acf_jabberreceive_read(), acf_strftime(), action_coreshowchannels(), action_login(), action_ping(), agent_alert(), agent_login_exec(), agent_run(), alarmreceiver_exec(), alloc_security_event_json_object(), analog_call(), analog_ss_thread(), app_send_end_msg(), app_update(), append_event(), ast_ari_asterisk_ping(), ast_audiohook_trigger_wait(), ast_audiohook_write_frame(), ast_bridge_channel_feature_digit(), ast_bridge_interval_hook(), ast_carefulwrite(), ast_cdr_fork(), ast_cdr_format_var(), ast_cdr_reset(), ast_cel_create_event(), ast_channel_cmpwhentohangup_tv(), ast_channel_end_dtmf(), ast_channel_get_duration_ms(), ast_channel_get_up_time_ms(), ast_channel_setwhentohangup_tv(), ast_check_hangup(), ast_check_timing(), ast_get_enum(), ast_http_send(), ast_iostream_write(), ast_localtime_wakeup_monitor(), ast_merge_contexts_and_delete(), ast_module_reload(), ast_odbc_direct_execute(), ast_odbc_prepare_and_execute(), ast_poll2(), ast_queue_log(), ast_recvtext(), ast_remaining_ms(), ast_rtp_dtmf_begin(), ast_rtp_dtmf_end_with_duration(), ast_rtp_read(), ast_rtp_rtcp_handle_nack(), ast_rtp_sendcng(), ast_safe_sleep_conditional(), ast_say_date_with_format_da(), ast_say_date_with_format_de(), ast_say_date_with_format_en(), ast_say_date_with_format_es(), ast_say_date_with_format_fr(), ast_say_date_with_format_gr(), ast_say_date_with_format_he(), ast_say_date_with_format_is(), ast_say_date_with_format_it(), ast_say_date_with_format_nl(), ast_say_date_with_format_pl(), ast_say_date_with_format_pt(), ast_say_date_with_format_th(), ast_say_date_with_format_vi(), ast_say_date_with_format_zh(), ast_say_datetime_from_now_en(), ast_say_datetime_from_now_fr(), ast_say_datetime_from_now_he(), ast_say_datetime_from_now_ka(), ast_say_datetime_from_now_pt(), ast_sched_dump(), ast_sched_runq(), ast_sched_wait(), ast_sched_when(), ast_senddigit_begin(), ast_serializer_shutdown_group_join(), ast_sip_sched_task_get_next_run(), ast_sip_schedule_task(), ast_sorcery_alloc(), ast_stun_request(), AST_TEST_DEFINE(), ast_translate(), ast_waitfor_nandfds(), ast_waitfordigit_full(), ast_websocket_write(), asterisk_daemon(), audiohook_read_frame_both(), authenticate(), background_detect_exec(), bridge_agent_hold_heartbeat(), bridge_base_init(), bridge_builtin_set_limits(), bridge_channel_feature_timeout(), bridge_channel_handle_feature_timeout(), bridge_channel_handle_interval(), bridge_channel_next_interval(), bridge_channel_settle_owed_events(), bridge_channel_write_frame(), bridge_sync_wait(), bucket_file_expired(), bucket_file_set_expiration(), build_device(), calc_rxstamp(), calc_timestamp(), calc_txstamp(), caldav_load_calendar(), calendar_busy_callback(), calendar_devstate_change(), calendar_write_exec(), callerid_genmsg(), canary_thread(), cb_events(), cdr_object_get_billsec(), cdr_object_get_duration(), cdr_read_callback(), check_endpoint(), check_expiration_thread(), check_timer(), cleanup(), cli_channel_print_body(), cli_channelstats_print_body(), cli_prompt(), cli_show_channel(), cli_show_channels(), cli_show_tasks(), cli_subscription_expiry(), cli_tps_ping(), cli_unid_print_body(), compare_timestamp(), conf_run(), consumer_should_stay(), consumer_wait_for(), consumer_wait_for_completion(), contact_expire(), create_dtmf_frame(), create_transaction(), dahdi_handle_event(), dahdi_read(), debug_check_frame_for_silence(), delete_old_messages(), destroy_trans(), dial_exec_full(), disa_exec(), disable_t38(), do_cdr(), do_refresh(), do_timing(), dundi_do_lookup(), dundi_do_precache(), dundi_lookup_internal(), dundi_precache_internal(), dundi_query_eid_internal(), endpoint_lookup(), evt_gen_auth_method_not_allowed(), evt_gen_chal_resp_failed(), evt_gen_chal_sent(), evt_gen_failed_acl(), evt_gen_inval_acct_id(), evt_gen_inval_password(), evt_gen_inval_transport(), evt_gen_load_avg(), evt_gen_mem_limit(), evt_gen_req_bad_format(), evt_gen_req_no_support(), evt_gen_req_not_allowed(), evt_gen_session_limit(), evt_gen_successful_auth(), evt_gen_unexpected_addr(), ewscal_load_calendar(), exchangecal_load_calendar(), expire_contact(), expire_objects_from_cache(), expire_requests(), fax_detect_framehook(), fax_detect_new(), fax_gateway_detect_t38(), fax_gateway_framehook(), fax_gateway_request_t38(), find_cache(), find_conf_realtime(), find_tpeer(), fix_peerts(), format_log_message_ap(), generate_parked_user(), generate_status(), generic_fax_exec(), get_channel_duration(), get_core_uptime_cb(), get_date(), get_ewscal_ids_for(), get_last_reload_cb(), get_lock(), get_tick_count(), handle_bridge_show_all(), handle_bridge_show_specific(), handle_chanlist(), handle_cli_file_convert(), handle_cli_iax2_show_cache(), handle_cli_performance_test(), handle_cli_queue_test(), handle_cli_sched_bench(), handle_cli_test_locales(), handle_keepalive_message(), handle_recordfile(), handle_response_peerpoke(), handle_response_register(), handle_showcalls(), handle_showchan(), handle_showuptime(), handle_timeout_trip(), handler_wait_for_message(), has_complex_started(), hook_callback(), hook_event_cb(), http_callback(), iax2_datetime(), iax2_key_rotate(), iax2_process_thread(), iax2_trunk_queue(), ical_load_calendar(), iostream_read(), is_timed_out(), isAnsweringMachine(), jb_framedata_init(), keypad_cfg_read(), kqueue_timer_fd(), leave_voicemail(), limits_interval_playback(), link_topic_proxy(), load_config(), logging_on_tx_msg(), make_deadline(), make_logchannel(), mb_poll_thread(), measurenoise(), meetme_stasis_generate_msg(), memory_cache_stale_check_object(), message_received_handler(), mgcp_postrequest(), mid_test_sync(), misdn_overlap_dial_task(), misdn_read(), monitor_dial(), monmp3thread(), mp3_exec(), mwi_monitor_handler(), mysql_log(), NBScat_exec(), odbc_obj_connect(), parked_call_payload_from_parked_user(), payload_mapping_rx_clear_primary(), pbx_builtin_gotoiftime(), phone_call(), pjsip_history_entry_alloc(), pjsip_logger_write_to_pcap(), play_message_datetime(), process_text_line(), pthread_timer_set_rate(), public_key_is_expired(), publish_fully_booted(), publish_msg(), purge_events(), purge_old_messages(), qualify_peer(), queue_ringing_trunk(), realtime_common(), receive_ademco_event(), receive_dtmf_digits(), receivefax_t38_init(), record_exec(), register_aor_core(), registrar_add_contact(), retrans_pkt(), rt_extend_conf(), rtcp_message_handler(), rtp_deallocate_transport(), rtp_instance_parse_transport_wide_cc(), rtp_learning_rtp_seq_update(), rtp_learning_start(), rtp_raw_write(), run_task(), sched_run(), sched_settime(), schedule_cache_expiration(), schedule_calendar_event(), scheduler(), send_date_time(), send_date_time2(), send_date_time3(), send_device_state(), send_start_msg_snapshots(), sendfax_t38_init(), sendmail(), session_do(), set_channel_answer_time(), set_header(), set_interval_hook(), set_public_key_expiration(), set_timeout(), setformat(), should_skip_dtmf(), should_trigger_dtmf_emulating(), shutdown_waitfor_completion(), shutdown_waitfor_start(), sip_options_contact_callback_data_alloc(), sip_options_contact_status_notify_task(), sip_poke_peer(), skinny_session(), sla_calc_station_timeouts(), sla_calc_trunk_timeouts(), sla_check_failed_station(), sla_check_station_delay(), sla_create_failed_station(), sla_create_ringing_station(), sla_process_timers(), smdi_message_wait(), smdi_read(), sms_exec(), sms_handleincoming(), sms_handleincoming_proto2(), sms_readfile(), sms_writefile(), socket_process_meta(), softmix_bridge_write_control(), softmix_mixing_loop(), sorcery_memory_cache_ami_populate(), sorcery_memory_cache_print_object(), sorcery_memory_cache_thrash_retrieve(), sorcery_memory_cache_thrash_update(), sorcery_memory_cached_object_alloc(), speech_background(), stasis_app_exec(), stasis_message_create_full(), stasis_show_topic(), stir_shaken_add_iat(), store_config(), sub_persistence_recreate(), subscription_invoke(), subscription_persistence_recreate(), subscription_persistence_update(), talk_detect_audiohook_cb(), task_1(), task_wait(), testloop(), timeout_read(), timeout_write(), timing_read(), timing_test(), transmit_audio(), transmit_definetimedate(), transmit_notify_request_with_callerid(), transmit_t38(), unload_module(), update_caldav(), update_exchangecal(), update_jbsched(), user_event_wait_for_events(), verify_mock_cdr_record(), vmu_tm(), wait_for_answer(), wait_for_channel_callback(), wait_for_completion(), wait_for_complex_completion(), wait_for_complex_start(), wait_for_device_state_updates(), wait_for_empty_notice(), wait_for_hook(), wait_for_output(), wait_for_stimulus(), wait_for_task_pushed(), wait_until_thread_state(), wait_until_thread_state_task_pushed(), waitforring_exec(), waituntil_exec(), worker_idle(), write_history(), write_metadata(), and xmpp_pak_message().

159 {

◆ ast_tvsub()

struct timeval ast_tvsub ( struct timeval  a,
struct timeval  b 
)

Returns the difference of two timevals a - b.

Definition at line 2298 of file extconf.c.

References a, ast_mark_lock_failed(), b, ONE_MILLION, and tvfix().

Referenced by action_login(), ast_poll2(), ast_sched_dump(), AST_TEST_DEFINE(), ast_translate(), ast_waitfor_nandfds(), calc_rxstamp(), calc_timestamp(), cli_tps_ping(), conf_run(), debug_check_frame_for_silence(), handle_showcalls(), handle_showuptime(), jitterbuffer_frame_get_ntp_timestamp(), memory_cache_stale_check_object(), object_stale_callback(), and publish_fully_booted().

2299 {
2300  /* consistency checks to guarantee usec in 0..999999 */
2301  a = tvfix(a);
2302  b = tvfix(b);
2303  a.tv_sec -= b.tv_sec;
2304  a.tv_usec -= b.tv_usec;
2305  if (a.tv_usec < 0) {
2306  a.tv_sec-- ;
2307  a.tv_usec += ONE_MILLION;
2308  }
2309  return a;
2310 }
static struct timeval tvfix(struct timeval a)
Definition: extconf.c:2267
static struct test_val b
#define ONE_MILLION
Definition: extconf.c:2262
static struct test_val a

◆ ast_tvzero()

int ast_tvzero ( const struct timeval  t)
inline

◆ typeof()

typedef typeof ( dummy_tv_var_for_types.  tv_sec)

Variable Documentation

◆ dummy_tv_var_for_types

struct timeval dummy_tv_var_for_types