!190 DDL 黄蓝不同步整改

Merge pull request !190 from mengyiping/OpenHarmony-5.0-Release
This commit is contained in:
openharmony_ci
2024-09-06 08:39:28 +00:00
committed by Gitee
2 changed files with 40 additions and 6 deletions
+4 -3
View File
@@ -86,9 +86,10 @@ enum rtg_sched_cmdid {
extern "C" {
int EnableRtg(bool flag);
int AddThreadToRtg(int tid, int grpId, int prioType = 0);
int AddThreadsToRtg(vector<int> tids, int grpId, int prioType = 0);
int RemoveRtgThread(int tid);
int AddThreadToRtg(int tid, int grpId, int prioType = 0, bool isBlue = false);
int AddThreadsToRtg(vector<int> tids, int grpId, int prioType = 0, bool isBlue = false);
int RemoveRtgThread(int tid, bool isBlue = false);
int RemoveRtgThreads(vector<int> tids, bool isBlue = false);
int DestroyRtgGrp(int grpId);
int SetFrameRateAndPrioType(int rtgId, int rate, int rtgType);
int BeginFrameFreq(int stateParam);
@@ -102,7 +102,7 @@ int EnableRtg(bool flag)
return 0;
};
int AddThreadToRtg(int tid, int grpId, int prioType)
int AddThreadToRtg(int tid, int grpId, int prioType, [[maybe_unused]] bool isBlue)
{
if (g_fd < 0) {
return g_fd;
@@ -116,10 +116,14 @@ int AddThreadToRtg(int tid, int grpId, int prioType)
grp_data.rtg_cmd = CMD_ADD_RTG_THREAD;
grp_data.prio_type = prioType;
ret = ioctl(g_fd, CMD_ID_SET_RTG, &grp_data);
if (ret != 0) {
RME_LOGE("add thread to rtg failed, errno = %{public}d (%{public}s), ret = %{public}d",
errno, strerror(errno), ret);
}
return ret;
}
int AddThreadsToRtg(vector<int> tids, int grpId, int prioType)
int AddThreadsToRtg(vector<int> tids, int grpId, int prioType, [[maybe_unused]] bool isBlue)
{
struct rtg_grp_data grp_data;
int ret;
@@ -148,7 +152,7 @@ int AddThreadsToRtg(vector<int> tids, int grpId, int prioType)
return ret;
};
int RemoveRtgThread(int tid)
int RemoveRtgThread(int tid, [[maybe_unused]] bool isBlue)
{
if (g_fd < 0) {
return g_fd;
@@ -168,6 +172,35 @@ int RemoveRtgThread(int tid)
return ret;
};
int RemoveRtgThreads(vector<int> tids, [[maybe_unused]] bool isBlue)
{
struct rtg_grp_data grp_data;
int ret;
if (g_fd < 0) {
return g_fd;
}
(void)memset_s(&grp_data, sizeof(struct rtg_grp_data), 0, sizeof(struct rtg_grp_data));
int num = static_cast<int>(tids.size());
if (num > MAX_TID_NUM) {
return -1;
}
grp_data.tid_num = num;
grp_data.rtg_cmd = CMD_REMOVE_RTG_THREAD;
for (int i = 0; i < num; i++) {
if (tids[i] < 0) {
return -1;
}
grp_data.tids[i] = tids[i];
}
ret = ioctl(g_fd, CMD_ID_SET_RTG, &grp_data);
if (ret < 0) {
RME_LOGE("remove grp threads failed, errno = %{public}d (%{public}s)", errno, strerror(errno));
} else {
RME_LOGI("remove grp threads success, get rtg id %{public}d.", ret);
}
return ret;
}
int DestroyRtgGrp(int grpId)
{
if (g_fd < 0) {