* Copyright (c) 2021 Huawei Device Co., Ltd.
*
* HDF is dual licensed: you can use it either under the terms of
* the GPL, or the BSD license, at your option.
* See the LICENSE file in the root of this repository for complete details.
*/
#ifndef SOFTBUS_MODULE_MANAGER_H
#define SOFTBUS_MODULE_MANAGER_H
#include "hdf_base.h"
#include "hdf_device_desc.h"
#include "hdf_sbuf.h"
#ifdef __cplusplus
extern "C" {
#endif
typedef enum {
SOFTBUS_MODULE_WLAN_PARAM_MONITOR = 0,
SOFTBUS_MODULE_LWIP_MONITOR,
SOFTBUS_MODULE_MAX_INDEX,
} SoftbusDriverModuleId;
typedef int32_t (*SoftbusDriverModuleInit)(struct HdfDeviceObject *device);
typedef void (*SoftbusDriverModuleDeinit)(void);
typedef void (*SoftbusDriverModuleProcess)(const struct HdfSBuf *reqData, struct HdfSBuf *rspData);
typedef struct {
int32_t moduleId;
SoftbusDriverModuleInit init;
SoftbusDriverModuleDeinit deinit;
SoftbusDriverModuleProcess process;
} SoftbusDriverModule;
int32_t SoftbusModuleManagerInit(struct HdfDeviceObject *device);
void SoftbusModuleManagerDeinit(void);
void SoftbusDispatchModuleCommand(int32_t moduleId, const struct HdfSBuf *reqData, struct HdfSBuf *rspData);
#ifdef __cplusplus
}
#endif
#endif