| /* |
| * Copyright (c) 2017 Intel Corporation. |
| * |
| * SPDX-License-Identifier: Apache-2.0 |
| */ |
| |
| /** |
| * @file |
| * @brief GPTP Media Independent interface |
| * |
| * This is not to be included by the application. |
| */ |
| |
| #ifndef __GPTP_MI_H |
| #define __GPTP_MI_H |
| |
| #include "gptp_md.h" |
| |
| #ifdef __cplusplus |
| extern "C" { |
| #endif |
| |
| /** |
| * @brief Media Independent Sync Information. |
| * |
| * This structure applies for MDSyncReceive as well as MDSyncSend. |
| */ |
| struct gptp_mi_port_sync_sync { |
| /** Time at which the sync receipt timeout occurs. */ |
| uint64_t sync_receipt_timeout_time; |
| |
| /** Copy of the gptp_md_sync_info to be transmitted. */ |
| struct gptp_md_sync_info sync_info; |
| |
| /** Port to which the Sync Information belongs to. */ |
| uint16_t local_port_number; |
| }; |
| |
| /** |
| * @brief Initialize all Media Independent State Machines. |
| */ |
| void gptp_mi_init_state_machine(void); |
| |
| /** |
| * @brief Run all Media Independent Port Sync State Machines. |
| * |
| * @param port Number of the port the State Machines needs to be run on. |
| */ |
| void gptp_mi_port_sync_state_machines(int port); |
| |
| /** |
| * @brief Run all Media Independent Port BMCA State Machines. |
| * |
| * @param port Number of the port the State Machines needs to be run on. |
| */ |
| void gptp_mi_port_bmca_state_machines(int port); |
| |
| /** |
| * @brief Run all Media Independent State Machines. |
| */ |
| void gptp_mi_state_machines(void); |
| |
| /** |
| * @brief Return current time in nanoseconds. |
| * |
| * @param port Port number of the clock to use. |
| * |
| * @return Current time in nanoseconds. |
| */ |
| uint64_t gptp_get_current_time_nanosecond(int port); |
| |
| #ifdef __cplusplus |
| } |
| #endif |
| |
| #endif /* __GPTP_MI_H */ |