Lines Matching refs:uevent

104 STATIC void HandleUevent(const struct Uevent *uevent)  in HandleUevent()  argument
106 …if (uevent->action == ACTION_ADD || uevent->action == ACTION_CHANGE || uevent->action == ACTION_ON… in HandleUevent()
107 ChangeSysAttributePermissions(uevent->syspath); in HandleUevent()
110 SUBSYSTEMTYPE type = GetSubsystemType(uevent->subsystem); in HandleUevent()
113 HandleBlockDeviceEvent(uevent); in HandleUevent()
116 HandleFimwareDeviceEvent(uevent); in HandleUevent()
119 HandleOtherDeviceEvent(uevent); in HandleUevent()
143 static void HandleRequiredDynamicDeviceNodes(const struct Uevent *uevent) in HandleRequiredDynamicDeviceNodes() argument
148 if (uevent->deviceName == NULL || uevent->major < 0 || uevent->minor < 0) { in HandleRequiredDynamicDeviceNodes()
153 if (strcmp(uevent->deviceName, DYNAMIC_DEVICES[idx].dev + DEV_NODE_PATH_PREFIX_LEN) != 0) { in HandleRequiredDynamicDeviceNodes()
158 if (strcmp(uevent->deviceName, "mapper/control") == 0) { in HandleRequiredDynamicDeviceNodes()
159 HandleOtherDeviceEvent(uevent); in HandleRequiredDynamicDeviceNodes()
166 makedev((unsigned int)uevent->major, (unsigned int)uevent->minor)) != 0) { in HandleRequiredDynamicDeviceNodes()
175 static void HandleRequiredBlockDeviceNodes(const struct Uevent *uevent, char **devices, int num) in HandleRequiredBlockDeviceNodes() argument
178 if (uevent->partitionName == NULL) { in HandleRequiredBlockDeviceNodes()
179 if (strstr(devices[i], uevent->deviceName) != NULL) { in HandleRequiredBlockDeviceNodes()
180 …LOGI("%s match with required partition %s success, now handle it", devices[i], uevent->deviceName); in HandleRequiredBlockDeviceNodes()
181 HandleBlockDeviceEvent(uevent); in HandleRequiredBlockDeviceNodes()
184 } else if (strstr(devices[i], uevent->partitionName) != NULL || in HandleRequiredBlockDeviceNodes()
185 strstr(uevent->partitionName, "vendor") != NULL || in HandleRequiredBlockDeviceNodes()
186 strstr(uevent->partitionName, "system") != NULL || in HandleRequiredBlockDeviceNodes()
187 strstr(uevent->partitionName, "chipset") != NULL || in HandleRequiredBlockDeviceNodes()
188 strstr(uevent->partitionName, "boot") != NULL || in HandleRequiredBlockDeviceNodes()
189 strstr(uevent->partitionName, "ramdisk") != NULL || in HandleRequiredBlockDeviceNodes()
190 strstr(uevent->partitionName, "rvt") != NULL || in HandleRequiredBlockDeviceNodes()
191 strstr(uevent->partitionName, "dtbo") != NULL) { in HandleRequiredBlockDeviceNodes()
192 INIT_LOGI("Handle required partitionName %s", uevent->partitionName); in HandleRequiredBlockDeviceNodes()
193 HandleBlockDeviceEvent(uevent); in HandleRequiredBlockDeviceNodes()
197 INIT_LOGW("Not found device for partitionName %s ", uevent->partitionName); in HandleRequiredBlockDeviceNodes()
200 static void HandleUeventRequired(const struct Uevent *uevent, char **devices, int num) in HandleUeventRequired() argument
203 if (uevent->action == ACTION_ADD) { in HandleUeventRequired()
204 ChangeSysAttributePermissions(uevent->syspath); in HandleUeventRequired()
206 SUBSYSTEMTYPE type = GetSubsystemType(uevent->subsystem); in HandleUeventRequired()
208 HandleRequiredBlockDeviceNodes(uevent, devices, num); in HandleUeventRequired()
210 HandleRequiredDynamicDeviceNodes(uevent); in HandleUeventRequired()
216 static void AddUevent(struct Uevent *uevent, const char *event, size_t len) in AddUevent() argument
219 uevent->syspath = event + strlen("DEVPATH="); in AddUevent()
221 uevent->subsystem = event + strlen("SUBSYSTEM="); in AddUevent()
223 uevent->action = GetUeventAction(event + strlen("ACTION=")); in AddUevent()
225 uevent->deviceName = event + strlen("DEVNAME="); in AddUevent()
227 uevent->partitionName = event + strlen("PARTNAME="); in AddUevent()
229 uevent->partitionNum = StringToInt(event + strlen("PARTN="), -1); in AddUevent()
231 uevent->major = StringToInt(event + strlen("MAJOR="), -1); in AddUevent()
233 uevent->minor = StringToInt(event + strlen("MINOR="), -1); in AddUevent()
235 uevent->ug.uid = (uid_t)StringToInt(event + strlen("DEVUID="), 0); in AddUevent()
237 uevent->ug.gid = (gid_t)StringToInt(event + strlen("DEVGID="), 0); in AddUevent()
239 uevent->firmware = event + strlen("FIRMWARE="); in AddUevent()
241 uevent->busNum = StringToInt(event + strlen("BUSNUM="), -1); in AddUevent()
243 uevent->devNum = StringToInt(event + strlen("DEVNUM="), -1); in AddUevent()
255 uevent->subsystem, in AddUevent()
256 uevent->partitionName, uevent->partitionNum, in AddUevent()
257 uevent->action, in AddUevent()
258 uevent->syspath, in AddUevent()
259 uevent->deviceName, in AddUevent()
260 uevent->major, uevent->minor, in AddUevent()
261 uevent->ug.uid, uevent->ug.gid); in AddUevent()
264 void ParseUeventMessage(const char *buffer, ssize_t length, struct Uevent *uevent) in ParseUeventMessage() argument
266 if (buffer == NULL || uevent == NULL || length == 0) { in ParseUeventMessage()
272 uevent->partitionName = NULL; in ParseUeventMessage()
273 uevent->partitionNum = -1; in ParseUeventMessage()
274 uevent->major = -1; in ParseUeventMessage()
275 uevent->minor = -1; in ParseUeventMessage()
276 uevent->busNum = -1; in ParseUeventMessage()
277 uevent->devNum = -1; in ParseUeventMessage()
285 AddUevent(uevent, event, len); in ParseUeventMessage()
295 struct Uevent uevent = {}; in ProcessUevent() local
297 ParseUeventMessage(ueventBuffer, n, &uevent); in ProcessUevent()
298 if (uevent.syspath == NULL) { in ProcessUevent()
303 HandleUeventRequired(&uevent, devices, num); in ProcessUevent()
305 HandleUevent(&uevent); in ProcessUevent()