blob: ddeb57e65fde9e0d8078f3b84d0d74d10cb29b1e [file] [log] [blame]
/*
* Copyright (c) 2020, The Linux Foundation. All rights reserved.
*
* Permission to use, copy, modify, and/or distribute this software for any
* purpose with or without fee is hereby granted, provided that the above
* copyright notice and this permission notice appear in all copies.
*
* THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
* WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
* MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
* ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
* WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
* ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
* OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
*/
/**
* DOC: Declare private API which shall be used internally only
* in ftm_timesync component. This file shall include prototypes of
* ftm_timesync parsing and send logic.
*
* Note: This API should be never accessed out of ftm_timesync component.
*/
#ifndef _FTM_TIME_SYNC_PRIV_STRUCT_H_
#define _FTM_TIME_SYNC_PRIV_STRUCT_H_
#include <qdf_list.h>
#include <qdf_types.h>
#include "ftm_time_sync_objmgr.h"
#define WLAN_FTM_TIME_SYNC_PAIR_MAX 32
/**
* struct wlan_time_sync_pair - wlan time sync pair
* @qtime_master: master qtime
* @qtime_slave: slave qtime
*/
struct wlan_time_sync_pair {
uint64_t qtime_master;
uint64_t qtime_slave;
};
/**
* struct ftm_timesync_vdev_priv - Private object to be stored in vdev
* @qtime_ref: qtime ref
* @mac_ref: mac time ref
* @time_pair: array of master/slave qtime pair
*/
struct ftm_timesync_priv {
uint64_t qtime_ref;
uint64_t mac_ref;
struct wlan_time_sync_pair time_pair[WLAN_FTM_TIME_SYNC_PAIR_MAX];
};
/**
* struct ftm_timesync_vdev_priv - Private object to be stored in vdev
* @vdev: pointer to vdev object
* @ftm_ts_priv: time sync private struct
*/
struct ftm_timesync_vdev_priv {
struct wlan_objmgr_vdev *vdev;
struct ftm_timesync_priv ftm_ts_priv;
};
#endif /* End of _FTM_TIME_SYNC_PRIV_STRUCT_H_ */