Lines Matching defs:subInfo

45 static void HandleRecvMessage(SubInitInfo *subInfo, char *buffer, uint32_t size);
79 SubInitInfo *subInfo = &g_subInitInfo[type];
80 if (subInfo->state != SUB_INIT_STATE_IDLE) {
88 subInfo->state = SUB_INIT_STATE_STARTING;
93 subInfo->state = SUB_INIT_STATE_IDLE;
99 subInfo->sendFd = arg.socket[0];
100 subInfo->recvFd = arg.socket[0];
101 subInfo->state = SUB_INIT_STATE_RUNNING;
102 subInfo->subPid = pid;
122 SubInitInfo *subInfo = &g_subInitInfo[type];
123 PLUGIN_CHECK(subInfo->state == SUB_INIT_STATE_RUNNING, return -1, "Sub init %d is not running ", type);
134 int ret = send(subInfo->sendFd, buffer, len, 0);
136 PLUGIN_LOGI("Failed to send cmd %s to %d, need fork new chip init process", name, subInfo->type);
137 SubInitStop(subInfo->subPid);
139 ret = send(subInfo->sendFd, buffer, len, 0);
141 PLUGIN_CHECK(ret > 0, return errno, "Failed to send cmd %s to %d errno %d", name, subInfo->type, errno);
144 ssize_t rLen = TEMP_FAILURE_RETRY(read(subInfo->recvFd, buffer, sizeof(buffer)));
146 rLen = TEMP_FAILURE_RETRY(read(subInfo->recvFd, buffer, sizeof(buffer)));
149 "Failed to read result from %d for cmd %s errno %d", subInfo->type, name, errno);
178 static int CheckSocketPermission(const SubInitInfo *subInfo)
183 if (getsockopt(subInfo->recvFd, SOL_SOCKET, SO_PEERCRED, &uc, &len) < 0 || uc.uid != 0) {
191 static int HandleRecvMessage_(SubInitInfo *subInfo, char *buffer, uint32_t size)
193 if (CheckSocketPermission(subInfo) != 0) {
196 ssize_t rLen = TEMP_FAILURE_RETRY(read(subInfo->recvFd, buffer, size));
198 rLen = TEMP_FAILURE_RETRY(read(subInfo->recvFd, buffer, size));
201 "Read message for %d fail errno %d rLen %d", subInfo->type, errno, rLen);
203 PLUGIN_LOGI("Exec cmd '%s' in sub init %s", buffer, g_subContext[subInfo->type]);
211 static void HandleRecvMessage(SubInitInfo *subInfo, char *buffer, uint32_t size)
213 int ret = HandleRecvMessage_(subInfo, buffer, size);
217 ret = send(subInfo->sendFd, buffer, len, 0);
218 PLUGIN_CHECK(ret > 0, return, "Failed to send result to %d errno %d", subInfo->type, errno);
234 SubInitInfo subInfo = {};
235 subInfo.type = type;
236 subInfo.recvFd = readFd;
237 subInfo.sendFd = writeFd;
249 HandleRecvMessage(&subInfo, buffer, sizeof(buffer));