[ftpii] r300 committed - Merge 0.0.21 to trunk for release: svn merge -r 292:299 https://ftpii....

3 views
Skip to first unread message

ft...@googlecode.com

unread,
Feb 27, 2010, 1:33:14 AM2/27/10
to ftpii-...@googlegroups.com
Revision: 300
Author: joe.g...@psychlaw.com.au
Date: Fri Feb 26 22:31:01 2010
Log: Merge 0.0.21 to trunk for release: svn merge -r 292:299
https://ftpii.googlecode.com/svn/branches/0.0.21

http://code.google.com/p/ftpii/source/detail?r=300

Modified:
/trunk
/trunk/Makefile
/trunk/README.txt
/trunk/source/fs.c
/trunk/source/fs.h
/trunk/source/ftp.c
/trunk/source/ftpii.c

=======================================
--- /trunk/Makefile Sun Dec 20 07:24:37 2009
+++ /trunk/Makefile Fri Feb 26 22:31:01 2010
@@ -11,7 +11,7 @@
BUILD = build

CFLAGS = -g -O2 -Wall $(MACHDEP) $(INCLUDE)
-LDFLAGS = -L$(LIBOGC_LIB) -lotp -lisfs -lnandimg -lfst -lwod -liso -ldi
-lwiiuse -lbte -lfat -logc -lm -g $(MACHDEP) -Wl,-Map,$(notdir
$@).map,--section-start,.init=0x80a00000
+LDFLAGS = -L$(LIBOGC_LIB) -lntfs -lseeprom -lotp -lisfs -lnandimg -lfst
-lwod -liso -ldi -lwiiuse -lbte -lfat -logc -lm -g $(MACHDEP)
-Wl,-Map,$(notdir $@).map,--section-start,.init=0x80a00000
PRELOADER_LDFLAGS = -L$(LIBOGC_LIB) -logc -g $(MACHDEP) -Wl,-Map,$(notdir
$@).map

ifneq ($(BUILD),$(notdir $(CURDIR)))
=======================================
--- /trunk/README.txt Sun Dec 20 07:39:21 2009
+++ /trunk/README.txt Fri Feb 26 22:31:01 2010
@@ -33,6 +33,10 @@

For subversion changes since 0.0.6, see
http://code.google.com/p/ftpii/source/list

+20100227 0.0.21 Added NTFS filesystem support (libntfs). (thanks
shareese/rodries/dimok!)
+ Added SEEPROM filesystem support at /seeprom (libseeprom).
+ Fixed active-mode transfers. (thanks closms!)
+ Built with devkitPPC release 19, libogc r3938, libfat
r3938.
20091221 0.0.20 Make release ZIP structure compatible with HBC's new
wiiload.
Attempt to reinitialise network after failure.
Added OTP filesystem support at /otp (libotp).
=======================================
--- /trunk/source/fs.c Sun Dec 20 07:24:37 2009
+++ /trunk/source/fs.c Fri Feb 26 22:31:01 2010
@@ -26,7 +26,9 @@
#include <fst/fst.h>
#include <isfs/isfs.h>
#include <iso/iso.h>
+#include <malloc.h>
#include <nandimg/nandimg.h>
+#include <ntfs.h>
#include <ogc/lwp_watchdog.h>
#include <ogc/mutex.h>
#include <ogc/system.h>
@@ -34,6 +36,7 @@
#include <otp/otp.h>
#include <sdcard/gcsd.h>
#include <sdcard/wiisd_io.h>
+#include <seeprom/seeprom.h>
#include <stdio.h>
#include <string.h>
#include <sys/dir.h>
@@ -57,20 +60,22 @@
{ "Wii disc filesystem", "/fst", "fst", "fst:/", false, false, NULL },
{ "NAND images", "/nand", "nand", "nand:/", false, false, NULL },
{ "NAND filesystem", "/isfs", "isfs", "isfs:/", false, false, NULL },
- { "OTP filesystem", "/otp", "otp", "otp:/", false, false, NULL }
+ { "OTP filesystem", "/otp", "otp", "otp:/", false, false, NULL },
+ { "SEEPROM filesystem", "/seeprom", "seeprom", "seeprom:/", false,
false, NULL }
};
const u32 MAX_VIRTUAL_PARTITIONS = (sizeof(VIRTUAL_PARTITIONS) /
sizeof(VIRTUAL_PARTITION));

-VIRTUAL_PARTITION *PA_GCSDA = VIRTUAL_PARTITIONS + 0;
-VIRTUAL_PARTITION *PA_GCSDB = VIRTUAL_PARTITIONS + 1;
-VIRTUAL_PARTITION *PA_SD = VIRTUAL_PARTITIONS + 2;
-VIRTUAL_PARTITION *PA_USB = VIRTUAL_PARTITIONS + 3;
-VIRTUAL_PARTITION *PA_DVD = VIRTUAL_PARTITIONS + 4;
-VIRTUAL_PARTITION *PA_WOD = VIRTUAL_PARTITIONS + 5;
-VIRTUAL_PARTITION *PA_FST = VIRTUAL_PARTITIONS + 6;
-VIRTUAL_PARTITION *PA_NAND = VIRTUAL_PARTITIONS + 7;
-VIRTUAL_PARTITION *PA_ISFS = VIRTUAL_PARTITIONS + 8;
-VIRTUAL_PARTITION *PA_OTP = VIRTUAL_PARTITIONS + 9;
+VIRTUAL_PARTITION *PA_GCSDA = VIRTUAL_PARTITIONS + 0;
+VIRTUAL_PARTITION *PA_GCSDB = VIRTUAL_PARTITIONS + 1;
+VIRTUAL_PARTITION *PA_SD = VIRTUAL_PARTITIONS + 2;
+VIRTUAL_PARTITION *PA_USB = VIRTUAL_PARTITIONS + 3;
+VIRTUAL_PARTITION *PA_DVD = VIRTUAL_PARTITIONS + 4;
+VIRTUAL_PARTITION *PA_WOD = VIRTUAL_PARTITIONS + 5;
+VIRTUAL_PARTITION *PA_FST = VIRTUAL_PARTITIONS + 6;
+VIRTUAL_PARTITION *PA_NAND = VIRTUAL_PARTITIONS + 7;
+VIRTUAL_PARTITION *PA_ISFS = VIRTUAL_PARTITIONS + 8;
+VIRTUAL_PARTITION *PA_OTP = VIRTUAL_PARTITIONS + 9;
+VIRTUAL_PARTITION *PA_SEEPROM = VIRTUAL_PARTITIONS + 10;

static VIRTUAL_PARTITION *to_virtual_partition(const char *virtual_prefix)
{
u32 i;
@@ -120,14 +125,6 @@
}
return already_inserted != partition->inserted;
}
-
-static bool fat_initialised = false;
-
-static bool initialise_fat() {
- if (fat_initialised) return true;
- if (fatInit(CACHE_PAGES, false)) fat_initialised = true;
- return fat_initialised;
-}

typedef enum { MOUNTSTATE_START, MOUNTSTATE_SELECTDEVICE,
MOUNTSTATE_WAITFORDEVICE } mountstate_t;
static mountstate_t mountstate = MOUNTSTATE_START;
@@ -154,11 +151,16 @@
} else if (is_fat(partition)) {
bool retry_gecko = true;
gecko_retry:
- if (partition->disc->shutdown() & partition->disc->startup()) {
- if (!fat_initialised) {
- if (initialise_fat()) success = mounted(partition);
- } else if (fatMount(partition->mount_point, partition->disc,
0, CACHE_PAGES, CACHE_SECTORS_PER_PAGE)) {
+ if ((partition == PA_USB || partition->disc->shutdown()) &
partition->disc->startup()) {
+ if (fatMount(partition->mount_point, partition->disc, 0,
CACHE_PAGES, CACHE_SECTORS_PER_PAGE)) {
success = true;
+ } else {
+ sec_t *partitions = NULL;
+ int partition_count = ntfsFindPartitions(partition->disc,
&partitions);
+ if (partition_count > 0 &&
ntfsMount(partition->mount_point, partition->disc, partitions[0],
CACHE_PAGES, CACHE_SECTORS_PER_PAGE, NTFS_SU)) {
+ success = true;
+ }
+ if (partitions) free(partitions);
}
} else if (is_gecko(partition) && retry_gecko) {
retry_gecko = false;
@@ -171,6 +173,8 @@
success = ISFS_Mount();
} else if (partition == PA_OTP) {
success = OTP_Mount();
+ } else if (partition == PA_SEEPROM) {
+ success = SEEPROM_Mount();
}
printf(success ? "succeeded.\n" : "failed.\n");
if (success && is_gecko(partition)) partition->geckofail = false;
@@ -194,6 +198,7 @@
if (!dvd_mountWait() && !dvd_last_access()) dvd_stop();
} else if (is_fat(partition)) {
fatUnmount(partition->prefix);
+ ntfsUnmount(partition->mount_point, false);
success = true;
} else if (partition == PA_NAND) {
success = NANDIMG_Unmount();
@@ -201,6 +206,8 @@
success = ISFS_Unmount();
} else if (partition == PA_OTP) {
success = OTP_Unmount();
+ } else if (partition == PA_SEEPROM) {
+ success = SEEPROM_Unmount();
}
printf(success ? "succeeded.\n" : "failed.\n");

@@ -299,9 +306,9 @@
void initialise_fs() {
NANDIMG_Mount();
OTP_Mount();
+ SEEPROM_Mount();
ISFS_SU();
if (ISFS_Initialize() == IPC_OK) ISFS_Mount();
- initialise_fat();
}

/*
=======================================
--- /trunk/source/fs.h Sun Dec 20 07:24:37 2009
+++ /trunk/source/fs.h Fri Feb 26 22:31:01 2010
@@ -36,7 +36,7 @@
const DISC_INTERFACE *disc;
} VIRTUAL_PARTITION;

-VIRTUAL_PARTITION VIRTUAL_PARTITIONS[10];
+VIRTUAL_PARTITION VIRTUAL_PARTITIONS[11];
const u32 MAX_VIRTUAL_PARTITIONS;
VIRTUAL_PARTITION *PA_GCSDA;
VIRTUAL_PARTITION *PA_GCSDB;
@@ -48,6 +48,7 @@
VIRTUAL_PARTITION *PA_NAND;
VIRTUAL_PARTITION *PA_ISFS;
VIRTUAL_PARTITION *PA_OTP;
+VIRTUAL_PARTITION *PA_SEEPROM;

void initialise_fs();

=======================================
--- /trunk/source/ftp.c Sun Dec 20 07:24:37 2009
+++ /trunk/source/ftp.c Fri Feb 26 22:31:01 2010
@@ -766,7 +766,7 @@
}
} else {
if ((result = net_connect(client->data_socket, (struct
sockaddr *)&client->address, sizeof(client->address))) < 0) {
- if (result == -EINPROGRESS) result = -EAGAIN;
+ if (result == -EINPROGRESS || result == -EALREADY) result
= -EAGAIN;
if (result != -EAGAIN && result != -EISCONN)
printf("Unable to connect to client: [%i] %s\n", -result,
strerror(-result));
}
if (result >= 0 || result == -EISCONN) {
=======================================
--- /trunk/source/ftpii.c Sun Dec 20 07:24:37 2009
+++ /trunk/source/ftpii.c Fri Feb 26 22:31:01 2010
@@ -59,6 +59,7 @@
}

static void initialise_ftpii() {
+ initialise_video();
DI_Init();
initialise_video();
PAD_Init();

Reply all
Reply to author
Forward
0 new messages