kernel_samsung_a34x-permissive/drivers/misc/mediatek/mddp/include/mddp_usage.h
2024-04-28 15:51:13 +02:00

66 lines
2.2 KiB
C

/* SPDX-License-Identifier: GPL-2.0 */
/*
* Copyright (c) 2020 MediaTek Inc.
*/
#ifndef __MDDP_USAGE_H
#define __MDDP_USAGE_H
#include "mddp_export.h"
//------------------------------------------------------------------------------
// Struct definition.
// -----------------------------------------------------------------------------
enum mddp_data_usage_cmd_e {
MSG_ID_DPFM_SET_GLOBAL_ALERT_REQ,
MSG_ID_DPFM_ALERT_GLOBAL_ALERT_IND,
MSG_ID_DPFM_SET_IQUOTA_REQ,
MSG_ID_DPFM_ALERT_IQUOTA_IND,
MSG_ID_DPFM_DEL_IQUOTA_REQ,
MSG_ID_DPFM_SET_IQUOTA_V2_REQ,
MSG_ID_DPFM_ALERT_IQUOTA_WARNING_IND,
};
struct mddp_u_data_limit_t {
uint32_t cmd;
uint32_t trans_id;
uint32_t status; /*unused */
uint64_t limit_buffer_size;
int8_t id;
uint8_t rsv[3];
} __packed;
struct mddp_u_warning_and_data_limit_t {
uint32_t cmd;
uint32_t trans_id;
uint32_t status; /*unused */
uint64_t limit_buffer_size;
uint64_t warning_buffer_size;
int8_t id;
uint8_t rsv[3];
} __packed;
struct mddp_u_iq_entry_t {
uint32_t trans_id;
uint32_t status; /*unused */
uint64_t limit_buffer_size;
uint8_t dpfm_id;
uint8_t rsv[3];
} __packed;
struct mddp_u_iquota_ind_t {
uint32_t cmd;
struct mddp_u_iq_entry_t iq;
} __packed;
//------------------------------------------------------------------------------
// Public functions.
// -----------------------------------------------------------------------------
void mddp_u_set_wan_iface(uint8_t *devname);
void mddp_u_get_data_stats(void *buf, uint32_t *buf_len);
int32_t mddp_u_set_data_limit(uint8_t *buf, uint32_t buf_len);
int32_t mddp_u_set_warning_and_data_limit(uint8_t *buf, uint32_t buf_len);
int32_t mddp_u_msg_hdlr(uint32_t msg_id, void *buf, uint32_t buf_len);
#endif /* __MDDP_USAGE_H */