Update of /cvsroot/blob/blob/utils/mkparamblock
In directory usw-pr-cvs1:/tmp/cvs-serv17775/utils/mkparamblock
Modified Files:
sample.config mkparamblock.c
Log Message:
added hwaddr to mkparamblock
Index: sample.config
===================================================================
RCS file: /cvsroot/blob/blob/utils/mkparamblock/sample.config,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -d -r1.1 -r1.2
--- sample.config 2001/08/31 06:21:30 1.1
+++ sample.config 2002/01/21 20:15:54 1.2
@@ -4,4 +4,5 @@
bootdelay 1 # default is 10
cmdline console=ttySA0,9600 console=tty1 root=/dev/mtdblock2 init=/linuxrc
baud 9600, 115k2 # these are the defaults
+hwaddr eth0 00:11:22:33:44:55
Index: mkparamblock.c
===================================================================
RCS file: /cvsroot/blob/blob/utils/mkparamblock/mkparamblock.c,v
retrieving revision 1.10
retrieving revision 1.11
diff -u -d -r1.10 -r1.11
--- mkparamblock.c 2002/01/21 19:45:16 1.10
+++ mkparamblock.c 2002/01/21 20:15:54 1.11
@@ -64,7 +64,24 @@
return -1;
}
+int read_mac(char *token, char *mac)
+{
+ int i;
+ unsigned long retval;
+ char *endptr;
+ for (i = 0; i < 6; i++) {
+ retval = strtoul(token, &endptr, 16);
+ if (endptr == token) break;
+ if (retval < 0 || retval > 0xFF) break;
+ mac[i] = retval;
+ if (*endptr != ':' && i < 5) break;
+ token = endptr + 1;
+ }
+ if (i != 6) return -1;
+ return 0;
+}
+
int tack_ramdisk(char *line, FILE *fp)
{
struct ptag tag;
@@ -136,6 +153,25 @@
return 0;
}
+int tack_hwaddr(char *line, FILE *fp)
+{
+ char *token;
+ struct ptag tag;
+ tag.hdr.ptag = PTAG_HWADDR;
+ tag.hdr.size = ptag_size(ptag_hwaddr);
+ tag.hdr.conf = 0;
+
+ token = strtok(line, "\t\n ");
+ if (!token) return -1;
+ strncpy(tag.u.hwaddr.name, token, 10);
+ tag.u.hwaddr.name[9] = '\0';
+ token = strtok(NULL, "\t\n ");
+ if (!token) return -1;
+ if (read_mac(token, tag.u.hwaddr.hwaddr) < 0) return -1;
+
+ fwrite(&tag, ptag_size(ptag_hwaddr), 4, fp);
+ return 0;
+}
void tack_core(FILE *fp)
{
@@ -149,7 +185,6 @@
fwrite(&tag, ptag_size(ptag_core), 4, fp);
}
-
void tack_none(FILE *fp)
{
struct ptag tag;
@@ -167,6 +202,7 @@
{"bootdelay", tack_bootdelay},
{"cmdline", tack_cmdline},
{"baud", tack_baud},
+ {"hwaddr", tack_hwaddr},
};
|