Lines Matching refs:links
198 // No matter what result the symbol links returns,
247 static int BuildDeviceSymbolLinks(char **links, int linkNum, const char *parent,
251 links[num] = calloc(DEVICE_FILE_SIZE, sizeof(char));
252 if (links[num] == NULL) {
260 if (snprintf_s(links[num], DEVICE_FILE_SIZE, DEVICE_FILE_SIZE - 1,
266 links[num] = calloc(DEVICE_FILE_SIZE, sizeof(char));
267 if (links[num] == NULL) {
271 if (snprintf_s(links[num], DEVICE_FILE_SIZE, DEVICE_FILE_SIZE - 1,
279 if (snprintf_s(links[num], DEVICE_FILE_SIZE, DEVICE_FILE_SIZE - 1,
288 static void FreeSymbolLinks(char **links, int length)
290 if (links != NULL) {
291 for (int i = 0; i < length && links[i] != NULL; i++) {
292 free(links[i]);
293 links[i] = NULL;
295 free(links);
296 links = NULL;
303 INIT_LOGW("Invalid arguments, Skip to get device symbol links.");
312 // check subsystem file under directory, see if it links to bus/platform.
319 char **links = calloc(BLOCKDEVICE_LINKS, sizeof(char *));
321 if (links == NULL) {
322 INIT_LOGE("Failed to allocate memory for links, err = %d", errno);
332 FreeSymbolLinks(links, BLOCKDEVICE_LINKS);
344 INIT_WARNING_CHECK(linkNum < BLOCKDEVICE_LINKS - 1, links[linkNum] = NULL;
345 return links, "Too many links, ignore");
346 linkNum = BuildDeviceSymbolLinks(links, linkNum, parent, uevent->partitionName, uevent->deviceName);
354 links[linkNum] = NULL;
355 return links;
364 // Consider to create symbol links for them.