You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
136 lines
4.0 KiB
136 lines
4.0 KiB
/**
|
|
* Copyright 2020-2020 Huawei Technologies Co., Ltd
|
|
*
|
|
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
* you may not use this file except in compliance with the License.
|
|
* You may obtain a copy of the License at
|
|
*
|
|
* http://www.apache.org/licenses/LICENSE-2.0
|
|
*
|
|
* Unless required by applicable law or agreed to in writing, software
|
|
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
* See the License for the specific language governing permissions and
|
|
* limitations under the License.
|
|
*
|
|
* @file prof_callback.h
|
|
* @brief declaraion of profiling callbacks
|
|
*/
|
|
|
|
#ifndef MSPROFILER_PROF_CALLBACK_H_
|
|
#define MSPROFILER_PROF_CALLBACK_H_
|
|
|
|
#ifdef __cplusplus
|
|
extern "C" {
|
|
#endif // __cplusplus
|
|
|
|
|
|
#include "stddef.h"
|
|
#include "stdint.h"
|
|
|
|
/**
|
|
* @name MsprofErrorCode
|
|
* @brief error code
|
|
*/
|
|
enum MsprofErrorCode {
|
|
MSPROF_ERROR_NONE = 0,
|
|
MSPROF_ERROR_MEM_NOT_ENOUGH,
|
|
MSPROF_ERROR_GET_ENV,
|
|
MSPROF_ERROR_CONFIG_INVALID,
|
|
MSPROF_ERROR_ACL_JSON_OFF,
|
|
MSPROF_ERROR,
|
|
};
|
|
|
|
#define MSPROF_ENGINE_MAX_TAG_LEN (31)
|
|
|
|
/**
|
|
* @name ReporterData
|
|
* @brief struct of data to report
|
|
*/
|
|
struct ReporterData {
|
|
char tag[MSPROF_ENGINE_MAX_TAG_LEN + 1]; // the sub-type of the module, data with different tag will be writen
|
|
int deviceId; // the index of device
|
|
size_t dataLen; // the length of send data
|
|
unsigned char *data; // the data content
|
|
};
|
|
|
|
/**
|
|
* @name MsprofReporterModuleId
|
|
* @brief module id of data to report
|
|
*/
|
|
enum MsprofReporterModuleId {
|
|
MSPROF_MODULE_DATA_PREPROCESS = 0, // DATA_PREPROCESS
|
|
MSPROF_MODULE_HCCL, // HCCL
|
|
MSPROF_MODULE_ACL, // AclModule
|
|
MSPROF_MODULE_FRAMEWORK, // Framework
|
|
MSPROF_MODULE_RUNTIME // runtime
|
|
};
|
|
|
|
/**
|
|
* @name MsprofReporterCallbackType
|
|
* @brief reporter callback request type
|
|
*/
|
|
enum MsprofReporterCallbackType {
|
|
MSPROF_REPORTER_REPORT = 0, // report data
|
|
MSPROF_REPORTER_INIT, // init reporter
|
|
MSPROF_REPORTER_UNINIT, // uninit reporter
|
|
};
|
|
|
|
/**
|
|
* @name MsprofReporterCallback
|
|
* @brief callback to start reporter/stop reporter/report date
|
|
* @param moduleId [IN] enum MsprofReporterModuleId
|
|
* @param type [IN] enum MsprofReporterCallbackType
|
|
* @param data [IN] callback data (nullptr on INTI/UNINIT)
|
|
* @param len [IN] callback data size (0 on INIT/UNINIT)
|
|
* @return enum MsprofErrorCode
|
|
*/
|
|
typedef int32_t (*MsprofReporterCallback)(uint32_t moduleId, uint32_t type, void *data, uint32_t len);
|
|
|
|
|
|
#define MSPROF_OPTIONS_DEF_LEN_MAX (2048)
|
|
|
|
/**
|
|
* @name MsprofGeOptions
|
|
* @brief struct of MSPROF_CTRL_INIT_GE_OPTIONS
|
|
*/
|
|
struct MsprofGeOptions {
|
|
char jobId[MSPROF_OPTIONS_DEF_LEN_MAX];
|
|
char options[MSPROF_OPTIONS_DEF_LEN_MAX];
|
|
};
|
|
|
|
/**
|
|
* @name MsprofCtrlCallbackType
|
|
* @brief ctrl callback request type
|
|
*/
|
|
enum MsprofCtrlCallbackType {
|
|
MSPROF_CTRL_INIT_ACL_ENV = 0, // start profiling with acl env
|
|
MSPROF_CTRL_INIT_ACL_JSON, // start profiling with acl.json
|
|
MSPROF_CTRL_INIT_GE_OPTIONS, // start profiling with ge env and options
|
|
MSPROF_CTRL_FINALIZE // stop profiling
|
|
};
|
|
|
|
/**
|
|
* @name MsprofCtrlCallback
|
|
* @brief callback to start/stop profiling
|
|
* @param type [IN] enum MsprofCtrlCallbackType
|
|
* @param data [IN] callback data
|
|
* @param len [IN] callback data size
|
|
* @return enum MsprofErrorCode
|
|
*/
|
|
typedef int32_t (*MsprofCtrlCallback)(uint32_t type, void *data, uint32_t len);
|
|
|
|
/**
|
|
* @name MsprofSetDeviceCallback
|
|
* @brief callback to notify set/reset device
|
|
* @param devId [IN] device id
|
|
* @param isOpenDevice [IN] true: set device, false: reset device
|
|
*/
|
|
typedef void (*MsprofSetDeviceCallback)(uint32_t devId, bool isOpenDevice);
|
|
|
|
#ifdef __cplusplus
|
|
}
|
|
#endif
|
|
|
|
#endif // MSPROFILER_PROF_CALLBACK_H_
|