mkfs.jffs2.c rework
Kenneth Johansson
kenneth.johansson at etx.ericsson.se
Mon Nov 25 07:39:15 EST 2002
On Mon, 2002-11-25 at 13:21, Erik Andersen wrote:
> I've got these changes done. Shall I check it in? Adding
> support for cleanmarkers can be done soon (after I get a chance
Here is a patch I did for eraseall to add cleanmarker. Big endian system
only.
--
Kenneth Johansson
Ericsson AB Tel: +46 8 404 71 83
Borgafjordsgatan 9 Fax: +46 8 404 72 72
164 80 Stockholm kenneth.johansson at etx.ericsson.se
-------------- next part --------------
--- /home/innkeon/src/mtd/mtd/util/eraseall.c Wed Apr 25 09:11:19 2001
+++ eraseall.c Mon Oct 14 14:50:43 2002
@@ -16,7 +16,7 @@
along with this program; if not, write to the Free Software
Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA
- $Id: eraseall.c,v 1.7 2001/04/25 07:11:19 ollie Exp $
+ $Id: eraseall.c,v 1.1 2002/10/14 12:50:43 innkeon Exp $
*/
#include <unistd.h>
#include <stdlib.h>
@@ -32,8 +32,10 @@
#include <linux/mtd/mtd.h>
#define PROGRAM "eraseall"
-#define VERSION "0.1.0"
+#define VERSION "0.2.0"
+static char cleanmarker[]={0x19,0x85,0x20,0x03,0x00,0x00,0x00,0x0c,0xf0,0x60,0xdc,0x98};
+static int jffs2_format;
static const char *exe_name;
static const char *mtd_device;
static int quiet; /* true -- don't output progress */
@@ -68,7 +70,7 @@
erase.start += meminfo.erasesize) {
if( !quiet ) {
- printf( "\rErasing %ld Kibyte @ %lx -- %2ld %% complete.",
+ printf( "\rErasing %d Kibyte @ %x -- %2d %% complete.",
meminfo.erasesize/1024, erase.start,
erase.start*100/meminfo.size );
}
@@ -80,9 +82,15 @@
mtd_device, strerror( errno) );
//exit( 1 );
}
+ if(jffs2_format){
+ if(erase.start != lseek(fd,erase.start,SEEK_SET))
+ fprintf( stderr, "Could not seek to pos %x on %s",erase.start,mtd_device);
+ write(fd,cleanmarker,sizeof(cleanmarker));
+ }
+
}
if( !quiet ) {
- printf( "\rErased %ld Kibyte @ %lx -- 100%% complete. \n",
+ printf( "\rErased %d Kibyte @ %lx -- 100%% complete. \n",
meminfo.size/1024, 0L );
}
@@ -98,10 +106,11 @@
for(;;) {
int option_index = 0;
- static const char* short_options="q";
+ static const char* short_options="qf";
static const struct option long_options[] = {
{"help", no_argument, 0, 0},
{"version", no_argument, 0, 0},
+ {"format", no_argument, 0, 'f'},
{"quiet", no_argument, 0, 'q'},
{"silent", no_argument, 0, 'q'},
@@ -126,8 +135,11 @@
}
break;
case 'q' :
- quiet=1;
+ quiet=1;
break;
+ case 'f' :
+ jffs2_format=1;
+ break;
case '?' :
error=1;
break;
@@ -151,6 +163,7 @@
printf( "Usage: %s [OPTION] MTD_DEVICE\n"
"Erases all of the specified MTD device.\n"
"\n"
+ " -f, --format write cleanmarker for jffs2\n"
" -q, --quiet don't display progress messages\n"
" --silent same as --quiet\n"
" --help display this help and exit\n"
More information about the linux-mtd
mailing list