Update of /cvsroot/linux-vax/kernel-2.4/arch/vax/boot/tools
In directory usw-pr-cvs1:/tmp/cvs-serv1072/tools
Added Files:
setcmdline.c
Log Message:
Put the kernel command line in first part of head.S
Add a small tool called from makefile to set the command line
--- NEW FILE ---
/* write a command line into a header block */
/* atp Sept 2001 */
#include <sys/types.h>
#include <sys/stat.h>
#include <fcntl.h>
#include <string.h>
#include <stdio.h>
#define COMMAND_LINE_SIZE 256
#define COMMAND_LINE_OFFSET 0x204
int main (int argc, char *argv[])
{
int kern_fd;
char buffer[COMMAND_LINE_SIZE];
if (called_as(argv[0],"showcmdline")) {
if (argc < 2) {
printf ("usage: showcmdline kernel_image\n");
exit(1);
}
}else {
if (argc < 3) {
printf ("usage: setcmdline kernel_image \"command line\"\n");
exit(1);
}
}
if ((kern_fd=open(argv[1], O_RDWR))<0) {
perror(argv[1]);
exit(1);
}
memset(buffer,0,COMMAND_LINE_SIZE);
if (called_as(argv[0],"setcmdline")) {
if (strlen(argv[2])>=COMMAND_LINE_SIZE) {
printf("Warning: Command Line truncated to %d bytes!\n",COMMAND_LINE_SIZE-1);
}
strncpy(buffer,argv[2],(COMMAND_LINE_SIZE-1));
lseek(kern_fd,COMMAND_LINE_OFFSET,SEEK_SET);
printf("\n\nSetting kernel command line to:\n\t%s\n\n",buffer);
write(kern_fd,buffer,strlen(buffer));
} else {
lseek(kern_fd,COMMAND_LINE_OFFSET,SEEK_SET);
read(kern_fd,buffer,(COMMAND_LINE_SIZE-1));
printf("\nKernel command line is:\n\t%s\n",buffer);
}
close(kern_fd);
}
int called_as(char *str1, char *str2)
{
char *tmp;
tmp = strrchr(str1,'/');
if (tmp==NULL) tmp=str1; else tmp++;
// printf("%s %s, %s\n",str1,str2,tmp);
return (!strncmp(tmp,str2,strlen(str2)));
}
|