static int ethUpdateGameList(void) { if (gNetworkStartup != 0) return 0; sbReadList(ðGames, ethPrefix, ðULSizePrev, ðGameCount); return ethGameCount; }
static int ethUpdateGameList(void) { int result; if (gNetworkStartup != 0) return 0; if (gPCShareName[0]) { if((result = sbReadList(ðGames, ethPrefix, ðULSizePrev, ðGameCount)) < 0){ gNetworkStartup = ERROR_ETH_SMB_LISTGAMES; ethDisplayErrorStatus(); } } else { int i, count; ShareEntry_t sharelist[128]; smbGetShareList_in_t getsharelist; getsharelist.EE_addr = (void *)&sharelist[0]; getsharelist.maxent = 128; count = fileXioDevctl(ethBase, SMB_DEVCTL_GETSHARELIST, (void *)&getsharelist, sizeof(getsharelist), NULL, 0); if (count > 0) { free(ethGames); ethGames = (base_game_info_t*)malloc(sizeof(base_game_info_t) * count); for (i = 0; i < count; i++) { LOG("ETHSUPPORT Share found: %s\n", sharelist[i].ShareName); base_game_info_t *g = ðGames[i]; memcpy(g->name, sharelist[i].ShareName, 32); g->name[31] = '\0'; sprintf(g->startup, "SHARE"); g->extension[0] = '\0'; g->parts = 0x00; g->media = 0x00; g->format = GAME_FORMAT_USBLD; g->sizeMB = 0; } ethGameCount = count; }else if(count < 0){ gNetworkStartup = ERROR_ETH_SMB_LISTSHARES; ethDisplayErrorStatus(); } } return ethGameCount; }