LKML Archive mirror
 help / color / mirror / Atom feed
* [PATCH] next-20100611 /usr
@ 2010-06-12 22:42 UndiFineD
  0 siblings, 0 replies; only message in thread
From: UndiFineD @ 2010-06-12 22:42 UTC (permalink / raw
  To: k.dejong, linux-kernel

[-- Attachment #1: Type: Text/Plain, Size: 83 bytes --]

next-20100611 /usr
janitor patch

signed-off-by: UndiFineD <k.dejong@undifined.nl>

[-- Attachment #2: 0002-NEXT-20100611-usr.patch --]
[-- Type: text/x-patch, Size: 18087 bytes --]

From f0a14c155de5cf345c799dcb5abbe539c3bd4bfb Mon Sep 17 00:00:00 2001
Message-Id: <f0a14c155de5cf345c799dcb5abbe539c3bd4bfb.1276382091.git.k.dejong@undifined.nl>
From: UndiFineD <k.dejong@undifined.nl>
Date: Sun, 13 Jun 2010 00:30:58 +0200
Subject: [PATCH] NEXT-20100611 /usr
 janitor patch

Signed-off-by: UndiFineD <k.dejong@undifined.nl>
---
 usr/gen_init_cpio.c |  368 ++++++++++++++++++++++++++-------------------------
 1 files changed, 186 insertions(+), 182 deletions(-)

diff --git a/usr/gen_init_cpio.c b/usr/gen_init_cpio.c
index b2b3c2d..b0e45d7 100644
--- a/usr/gen_init_cpio.c
+++ b/usr/gen_init_cpio.c
@@ -37,7 +37,7 @@ static void push_string(const char *name)
 	offset += name_len;
 }
 
-static void push_pad (void)
+static void push_pad(void)
 {
 	while (offset & 3) {
 		putchar(0);
@@ -74,21 +74,21 @@ static void cpio_trailer(void)
 	const char name[] = "TRAILER!!!";
 
 	sprintf(s, "%s%08X%08X%08lX%08lX%08X%08lX"
-	       "%08X%08X%08X%08X%08X%08X%08X",
-		"070701",		/* magic */
-		0,			/* ino */
-		0,			/* mode */
-		(long) 0,		/* uid */
-		(long) 0,		/* gid */
-		1,			/* nlink */
-		(long) 0,		/* mtime */
-		0,			/* filesize */
-		0,			/* major */
-		0,			/* minor */
-		0,			/* rmajor */
-		0,			/* rminor */
-		(unsigned)strlen(name)+1, /* namesize */
-		0);			/* chksum */
+	    "%08X%08X%08X%08X%08X%08X%08X",
+	    "070701",		/* magic */
+	    0,			/* ino */
+	    0,			/* mode */
+	    (long) 0,		/* uid */
+	    (long) 0,		/* gid */
+	    1,			/* nlink */
+	    (long) 0,		/* mtime */
+	    0,			/* filesize */
+	    0,			/* major */
+	    0,			/* minor */
+	    0,			/* rmajor */
+	    0,			/* rminor */
+	    (unsigned)strlen(name)+1, /* namesize */
+	    0);			/* chksum */
 	push_hdr(s);
 	push_rest(name);
 
@@ -98,28 +98,28 @@ static void cpio_trailer(void)
 	}
 }
 
-static int cpio_mkslink(const char *name, const char *target,
-			 unsigned int mode, uid_t uid, gid_t gid)
+static int cpio_mkslink(const char *name, const char *target, unsigned int mode,
+    uid_t uid, gid_t gid)
 {
 	char s[256];
 	time_t mtime = time(NULL);
 
-	sprintf(s,"%s%08X%08X%08lX%08lX%08X%08lX"
-	       "%08X%08X%08X%08X%08X%08X%08X",
-		"070701",		/* magic */
-		ino++,			/* ino */
-		S_IFLNK | mode,		/* mode */
-		(long) uid,		/* uid */
-		(long) gid,		/* gid */
-		1,			/* nlink */
-		(long) mtime,		/* mtime */
-		(unsigned)strlen(target)+1, /* filesize */
-		3,			/* major */
-		1,			/* minor */
-		0,			/* rmajor */
-		0,			/* rminor */
-		(unsigned)strlen(name) + 1,/* namesize */
-		0);			/* chksum */
+	sprintf(s, "%s%08X%08X%08lX%08lX%08X%08lX"
+	    "%08X%08X%08X%08X%08X%08X%08X",
+	    "070701",		/* magic */
+	    ino++,		/* ino */
+	    S_IFLNK | mode,	/* mode */
+	    (long) uid,		/* uid */
+	    (long) gid,		/* gid */
+	    1,			/* nlink */
+	    (long) mtime,	/* mtime */
+	    (unsigned)strlen(target)+1, /* filesize */
+	    3,			/* major */
+	    1,			/* minor */
+	    0,			/* rmajor */
+	    0,			/* rminor */
+	    (unsigned)strlen(name) + 1, /* namesize */
+	    0);			/* chksum */
 	push_hdr(s);
 	push_string(name);
 	push_pad();
@@ -137,37 +137,38 @@ static int cpio_mkslink_line(const char *line)
 	int gid;
 	int rc = -1;
 
-	if (5 != sscanf(line, "%" str(PATH_MAX) "s %" str(PATH_MAX) "s %o %d %d", name, target, &mode, &uid, &gid)) {
+	if (5 != sscanf(line, "%" str(PATH_MAX) "s %" str(PATH_MAX)
+	    "s %o %d %d", name, target, &mode, &uid, &gid)) {
 		fprintf(stderr, "Unrecognized dir format '%s'", line);
 		goto fail;
 	}
 	rc = cpio_mkslink(name, target, mode, uid, gid);
- fail:
+fail:
 	return rc;
 }
 
-static int cpio_mkgeneric(const char *name, unsigned int mode,
-		       uid_t uid, gid_t gid)
+static int cpio_mkgeneric(const char *name, unsigned int mode, uid_t uid,
+    gid_t gid)
 {
 	char s[256];
 	time_t mtime = time(NULL);
 
-	sprintf(s,"%s%08X%08X%08lX%08lX%08X%08lX"
-	       "%08X%08X%08X%08X%08X%08X%08X",
-		"070701",		/* magic */
-		ino++,			/* ino */
-		mode,			/* mode */
-		(long) uid,		/* uid */
-		(long) gid,		/* gid */
-		2,			/* nlink */
-		(long) mtime,		/* mtime */
-		0,			/* filesize */
-		3,			/* major */
-		1,			/* minor */
-		0,			/* rmajor */
-		0,			/* rminor */
-		(unsigned)strlen(name) + 1,/* namesize */
-		0);			/* chksum */
+	sprintf(s, "%s%08X%08X%08lX%08lX%08X%08lX"
+	    "%08X%08X%08X%08X%08X%08X%08X",
+	    "070701",		/* magic */
+	    ino++,		/* ino */
+	    mode,		/* mode */
+	    (long) uid,		/* uid */
+	    (long) gid,		/* gid */
+	    2,			/* nlink */
+	    (long) mtime,	/* mtime */
+	    0,			/* filesize */
+	    3,			/* major */
+	    1,			/* minor */
+	    0,			/* rmajor */
+	    0,			/* rminor */
+	    (unsigned)strlen(name) + 1,/* namesize */
+	    0);			/* chksum */
 	push_hdr(s);
 	push_rest(name);
 	return 0;
@@ -207,14 +208,15 @@ static int cpio_mkgeneric_line(const char *line, enum generic_types gt)
 	int gid;
 	int rc = -1;
 
-	if (4 != sscanf(line, "%" str(PATH_MAX) "s %o %d %d", name, &mode, &uid, &gid)) {
-		fprintf(stderr, "Unrecognized %s format '%s'",
-			line, generic_type_table[gt].type);
+	if (4 != sscanf(line, "%" str(PATH_MAX) "s %o %d %d", name, &mode, &uid,
+	    &gid)) {
+		fprintf(stderr, "Unrecognized %s format '%s'", line,
+		    generic_type_table[gt].type);
 		goto fail;
 	}
 	mode |= generic_type_table[gt].mode;
 	rc = cpio_mkgeneric(name, mode, uid, gid);
- fail:
+fail:
 	return rc;
 }
 
@@ -233,9 +235,8 @@ static int cpio_mksock_line(const char *line)
 	return cpio_mkgeneric_line(line, GT_SOCK);
 }
 
-static int cpio_mknod(const char *name, unsigned int mode,
-		       uid_t uid, gid_t gid, char dev_type,
-		       unsigned int maj, unsigned int min)
+static int cpio_mknod(const char *name, unsigned int mode, uid_t uid, gid_t gid,
+    char dev_type, unsigned int maj, unsigned int min)
 {
 	char s[256];
 	time_t mtime = time(NULL);
@@ -245,22 +246,22 @@ static int cpio_mknod(const char *name, unsigned int mode,
 	else
 		mode |= S_IFCHR;
 
-	sprintf(s,"%s%08X%08X%08lX%08lX%08X%08lX"
-	       "%08X%08X%08X%08X%08X%08X%08X",
-		"070701",		/* magic */
-		ino++,			/* ino */
-		mode,			/* mode */
-		(long) uid,		/* uid */
-		(long) gid,		/* gid */
-		1,			/* nlink */
-		(long) mtime,		/* mtime */
-		0,			/* filesize */
-		3,			/* major */
-		1,			/* minor */
-		maj,			/* rmajor */
-		min,			/* rminor */
-		(unsigned)strlen(name) + 1,/* namesize */
-		0);			/* chksum */
+	sprintf(s, "%s%08X%08X%08lX%08lX%08X%08lX"
+	    "%08X%08X%08X%08X%08X%08X%08X",
+	    "070701",		/* magic */
+	    ino++,		/* ino */
+	    mode,		/* mode */
+	    (long) uid,		/* uid */
+	    (long) gid,		/* gid */
+	    1,			/* nlink */
+	    (long) mtime,	/* mtime */
+	    0,			/* filesize */
+	    3,			/* major */
+	    1,			/* minor */
+	    maj,		/* rmajor */
+	    min,		/* rminor */
+	    (unsigned)strlen(name) + 1,/* namesize */
+	    0);			/* chksum */
 	push_hdr(s);
 	push_rest(name);
 	return 0;
@@ -277,19 +278,18 @@ static int cpio_mknod_line(const char *line)
 	unsigned int min;
 	int rc = -1;
 
-	if (7 != sscanf(line, "%" str(PATH_MAX) "s %o %d %d %c %u %u",
-			 name, &mode, &uid, &gid, &dev_type, &maj, &min)) {
+	if (7 != sscanf(line, "%" str(PATH_MAX) "s %o %d %d %c %u %u", name,
+	    &mode, &uid, &gid, &dev_type, &maj, &min)) {
 		fprintf(stderr, "Unrecognized nod format '%s'", line);
 		goto fail;
 	}
 	rc = cpio_mknod(name, mode, uid, gid, dev_type, maj, min);
- fail:
+fail:
 	return rc;
 }
 
 static int cpio_mkfile(const char *name, const char *location,
-			unsigned int mode, uid_t uid, gid_t gid,
-			unsigned int nlinks)
+    unsigned int mode, uid_t uid, gid_t gid, unsigned int nlinks)
 {
 	char s[256];
 	char *filebuf = NULL;
@@ -303,52 +303,54 @@ static int cpio_mkfile(const char *name, const char *location,
 
 	mode |= S_IFREG;
 
-	retval = stat (location, &buf);
+	retval = stat(location, &buf);
 	if (retval) {
-		fprintf (stderr, "File %s could not be located\n", location);
+		fprintf(stderr, "File %s could not be located\n", location);
 		goto error;
 	}
 
-	file = open (location, O_RDONLY);
+	file = open(location, O_RDONLY);
 	if (file < 0) {
-		fprintf (stderr, "File %s could not be opened for reading\n", location);
+		fprintf(stderr, "File %s could not be opened for reading\n",
+		    location);
 		goto error;
 	}
 
 	filebuf = malloc(buf.st_size);
 	if (!filebuf) {
-		fprintf (stderr, "out of memory\n");
+		fprintf(stderr, "out of memory\n");
 		goto error;
 	}
 
-	retval = read (file, filebuf, buf.st_size);
+	retval = read(file, filebuf, buf.st_size);
 	if (retval < 0) {
-		fprintf (stderr, "Can not read %s file\n", location);
+		fprintf(stderr, "Can not read %s file\n", location);
 		goto error;
 	}
 
 	size = 0;
 	for (i = 1; i <= nlinks; i++) {
 		/* data goes on last link */
-		if (i == nlinks) size = buf.st_size;
+		if (i == nlinks)
+			size = buf.st_size;
 
 		namesize = strlen(name) + 1;
-		sprintf(s,"%s%08X%08X%08lX%08lX%08X%08lX"
-		       "%08lX%08X%08X%08X%08X%08X%08X",
-			"070701",		/* magic */
-			ino,			/* ino */
-			mode,			/* mode */
-			(long) uid,		/* uid */
-			(long) gid,		/* gid */
-			nlinks,			/* nlink */
-			(long) buf.st_mtime,	/* mtime */
-			size,			/* filesize */
-			3,			/* major */
-			1,			/* minor */
-			0,			/* rmajor */
-			0,			/* rminor */
-			namesize,		/* namesize */
-			0);			/* chksum */
+		sprintf(s, "%s%08X%08X%08lX%08lX%08X%08lX"
+		    "%08lX%08X%08X%08X%08X%08X%08X",
+		    "070701",		/* magic */
+		    ino,		/* ino */
+		    mode,		/* mode */
+		    (long) uid,		/* uid */
+		    (long) gid,		/* gid */
+		    nlinks,		/* nlink */
+		    (long) buf.st_mtime,/* mtime */
+		    size,		/* filesize */
+		    3,			/* major */
+		    1,			/* minor */
+		    0,			/* rmajor */
+		    0,			/* rminor */
+		    namesize,		/* namesize */
+		    0);			/* chksum */
 		push_hdr(s);
 		push_string(name);
 		push_pad();
@@ -361,42 +363,40 @@ static int cpio_mkfile(const char *name, const char *location,
 			offset += size;
 			push_pad();
 		}
-
 		name += namesize;
 	}
 	ino++;
 	rc = 0;
-	
 error:
-	if (filebuf) free(filebuf);
-	if (file >= 0) close(file);
+	if (filebuf)
+		free(filebuf);
+	if (file >= 0)
+		close(file);
 	return rc;
 }
 
 static char *cpio_replace_env(char *new_location)
 {
-       char expanded[PATH_MAX + 1];
-       char env_var[PATH_MAX + 1];
-       char *start;
-       char *end;
-
-       for (start = NULL; (start = strstr(new_location, "${")); ) {
-               end = strchr(start, '}');
-               if (start < end) {
-                       *env_var = *expanded = '\0';
-                       strncat(env_var, start + 2, end - start - 2);
-                       strncat(expanded, new_location, start - new_location);
-                       strncat(expanded, getenv(env_var), PATH_MAX);
-                       strncat(expanded, end + 1, PATH_MAX);
-                       strncpy(new_location, expanded, PATH_MAX);
-               } else
-                       break;
-       }
-
-       return new_location;
+	char expanded[PATH_MAX + 1];
+	char env_var[PATH_MAX + 1];
+	char *start;
+	char *end;
+
+	for (start = NULL; (start = strstr(new_location, "${")); ) {
+		end = strchr(start, '}');
+		if (start < end) {
+			*env_var = *expanded = '\0';
+			strncat(env_var, start + 2, end - start - 2);
+			strncat(expanded, new_location, start - new_location);
+			strncat(expanded, getenv(env_var), PATH_MAX);
+			strncat(expanded, end + 1, PATH_MAX);
+			strncpy(new_location, expanded, PATH_MAX);
+		} else
+			break;
+	}
+	return new_location;
 }
 
-
 static int cpio_mkfile_line(const char *line)
 {
 	char name[PATH_MAX + 1];
@@ -410,8 +410,7 @@ static int cpio_mkfile_line(const char *line)
 	int rc = -1;
 
 	if (5 > sscanf(line, "%" str(PATH_MAX) "s %" str(PATH_MAX)
-				"s %o %d %d %n",
-				name, location, &mode, &uid, &gid, &end)) {
+	    "s %o %d %d %n", name, location, &mode, &uid, &gid, &end)) {
 		fprintf(stderr, "Unrecognized file format '%s'", line);
 		goto fail;
 	}
@@ -421,7 +420,7 @@ static int cpio_mkfile_line(const char *line)
 
 		dname = malloc(strlen(line));
 		if (!dname) {
-			fprintf (stderr, "out of memory (%d)\n", dname_len);
+			fprintf(stderr, "out of memory (%d)\n", dname_len);
 			goto fail;
 		}
 
@@ -431,7 +430,7 @@ static int cpio_mkfile_line(const char *line)
 		do {
 			nend = 0;
 			if (sscanf(line + end, "%" str(PATH_MAX) "s %n",
-					name, &nend) < 1)
+			    name, &nend) < 1)
 				break;
 			len = strlen(name) + 1;
 			memcpy(dname + dname_len, name, len);
@@ -442,49 +441,50 @@ static int cpio_mkfile_line(const char *line)
 	} else {
 		dname = name;
 	}
-	rc = cpio_mkfile(dname, cpio_replace_env(location),
-	                 mode, uid, gid, nlinks);
- fail:
-	if (dname_len) free(dname);
+	rc = cpio_mkfile(dname, cpio_replace_env(location), mode, uid, gid,
+	     nlinks);
+fail:
+	if (dname_len)
+		free(dname);
 	return rc;
 }
 
 static void usage(const char *prog)
 {
 	fprintf(stderr, "Usage:\n"
-		"\t%s <cpio_list>\n"
-		"\n"
-		"<cpio_list> is a file containing newline separated entries that\n"
-		"describe the files to be included in the initramfs archive:\n"
-		"\n"
-		"# a comment\n"
-		"file <name> <location> <mode> <uid> <gid> [<hard links>]\n"
-		"dir <name> <mode> <uid> <gid>\n"
-		"nod <name> <mode> <uid> <gid> <dev_type> <maj> <min>\n"
-		"slink <name> <target> <mode> <uid> <gid>\n"
-		"pipe <name> <mode> <uid> <gid>\n"
-		"sock <name> <mode> <uid> <gid>\n"
-		"\n"
-		"<name>       name of the file/dir/nod/etc in the archive\n"
-		"<location>   location of the file in the current filesystem\n"
-		"             expands shell variables quoted with ${}\n"
-		"<target>     link target\n"
-		"<mode>       mode/permissions of the file\n"
-		"<uid>        user id (0=root)\n"
-		"<gid>        group id (0=root)\n"
-		"<dev_type>   device type (b=block, c=character)\n"
-		"<maj>        major number of nod\n"
-		"<min>        minor number of nod\n"
-		"<hard links> space separated list of other links to file\n"
-		"\n"
-		"example:\n"
-		"# A simple initramfs\n"
-		"dir /dev 0755 0 0\n"
-		"nod /dev/console 0600 0 0 c 5 1\n"
-		"dir /root 0700 0 0\n"
-		"dir /sbin 0755 0 0\n"
-		"file /sbin/kinit /usr/src/klibc/kinit/kinit 0755 0 0\n",
-		prog);
+	    "\t%s <cpio_list>\n"
+	    "\n"
+	    "<cpio_list> is a file containing newline separated entries that\n"
+	    "describe the files to be included in the initramfs archive:\n"
+	    "\n"
+	    "# a comment\n"
+	    "file <name> <location> <mode> <uid> <gid> [<hard links>]\n"
+	    "dir <name> <mode> <uid> <gid>\n"
+	    "nod <name> <mode> <uid> <gid> <dev_type> <maj> <min>\n"
+	    "slink <name> <target> <mode> <uid> <gid>\n"
+	    "pipe <name> <mode> <uid> <gid>\n"
+	    "sock <name> <mode> <uid> <gid>\n"
+	    "\n"
+	    "<name>       name of the file/dir/nod/etc in the archive\n"
+	    "<location>   location of the file in the current filesystem\n"
+	    "             expands shell variables quoted with ${}\n"
+	    "<target>     link target\n"
+	    "<mode>       mode/permissions of the file\n"
+	    "<uid>        user id (0=root)\n"
+	    "<gid>        group id (0=root)\n"
+	    "<dev_type>   device type (b=block, c=character)\n"
+	    "<maj>        major number of nod\n"
+	    "<min>        minor number of nod\n"
+	    "<hard links> space separated list of other links to file\n"
+	    "\n"
+	    "example:\n"
+	    "# A simple initramfs\n"
+	    "dir /dev 0755 0 0\n"
+	    "nod /dev/console 0600 0 0 c 5 1\n"
+	    "dir /root 0700 0 0\n"
+	    "dir /sbin 0755 0 0\n"
+	    "file /sbin/kinit /usr/src/klibc/kinit/kinit 0755 0 0\n",
+	    prog);
 }
 
 struct file_handler file_handler_table[] = {
@@ -514,7 +514,7 @@ struct file_handler file_handler_table[] = {
 
 #define LINE_SIZE (2 * PATH_MAX + 50)
 
-int main (int argc, char *argv[])
+int main(int argc, char *argv[])
 {
 	FILE *cpio_list;
 	char line[LINE_SIZE];
@@ -529,9 +529,10 @@ int main (int argc, char *argv[])
 
 	if (!strcmp(argv[1], "-"))
 		cpio_list = stdin;
-	else if (! (cpio_list = fopen(argv[1], "r"))) {
+	else if (!(fopen(argv[1], "r"))) {
+		cpio_list = fopen(argv[1], "r");
 		fprintf(stderr, "ERROR: unable to open '%s': %s\n\n",
-			argv[1], strerror(errno));
+		    argv[1], strerror(errno));
 		usage(argv[0]);
 		exit(1);
 	}
@@ -547,10 +548,11 @@ int main (int argc, char *argv[])
 			continue;
 		}
 
-		if (! (type = strtok(line, " \t"))) {
+		if (!(strtok(line, " \t"))) {
+			type = strtok(line, " \t");
 			fprintf(stderr,
-				"ERROR: incorrect format, could not locate file type line %d: '%s'\n",
-				line_nr, line);
+			    "ERROR: incorrect format, could not locate file type line %d: '%s'\n",
+			    line_nr, line);
 			ec = -1;
 			break;
 		}
@@ -565,17 +567,19 @@ int main (int argc, char *argv[])
 			continue;
 		}
 
-		if (! (args = strtok(NULL, "\n"))) {
+		if (!(strtok(NULL, "\n"))) {
+			args = strtok(NULL, "\n");
 			fprintf(stderr,
-				"ERROR: incorrect format, newline required line %d: '%s'\n",
-				line_nr, line);
+			    "ERROR: incorrect format, newline required line %d: '%s'\n",
+			    line_nr, line);
 			ec = -1;
 		}
 
 		for (type_idx = 0; file_handler_table[type_idx].type; type_idx++) {
 			int rc;
-			if (! strcmp(line, file_handler_table[type_idx].type)) {
-				if ((rc = file_handler_table[type_idx].handler(args))) {
+			if (!strcmp(line, file_handler_table[type_idx].type)) {
+				if (file_handler_table[type_idx].handler(args)) {
+					rc = file_handler_table[type_idx].handler(args);
 					ec = rc;
 					fprintf(stderr, " line %d\n", line_nr);
 				}
-- 
1.7.0.4


^ permalink raw reply related	[flat|nested] only message in thread

only message in thread, other threads:[~2010-06-12 23:10 UTC | newest]

Thread overview: (only message) (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2010-06-12 22:42 [PATCH] next-20100611 /usr UndiFineD

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).