Update of /cvsroot/libsysio/libsysio/drivers/native
In directory sc8-pr-cvs1:/tmp/cvs-serv9143/drivers/native
Added Files:
Tag: RedStorm_merge
mountFiles.c start_sysio.c
Log Message:
Merging redstorm changes
--- NEW FILE ---
#ident "$Id: mountFiles.c,v 1.1.2.1 2003/10/09 15:12:08 sonjat Exp $"
#include <errno.h>
#include <sys/stat.h>
#include <sys/types.h>
#include <sys/param.h>
#include <sys/mount.h>
#include <catamount/lprintf.h>
#include "fs_native.h"
void mountFiles(void)
{
if ((mkdir("/home", 0777)) != 0 && errno != EEXIST) {
lprintf("mountFiles() mkdir failed\n");
while(1);
}
if ((mkdir("/tmp", 0777)) != 0 && errno != EEXIST) {
lprintf("mountFiles() mkdir failed\n");
while(1);
}
if ((mkdir("/etc", 0777)) != 0 && errno != EEXIST) {
lprintf("mountFiles() mkdir failed\n");
while(1);
}
if ((mount("native", "/home", 0, "/home")) != 0) {
lprintf("mountFiles() mount failed\n");
while(1);
}
if ((mount("native", "/tmp", 0, "/tmp")) != 0) {
lprintf("mountFiles() mount failed\n");
while(1);
}
if ((mount("native", "/etc", 0, "/etc" )) != 0) {
lprintf("mountFiles() mount failed\n");
while(1);
}
}
--- NEW FILE ---
#ident "$Id: start_sysio.c,v 1.1.2.1 2003/10/09 15:12:08 sonjat Exp $"
#include <stdio.h>
#include <sys/types.h>
#include <sys/stat.h>
#include <fcntl.h>
#include <unistd.h>
#include <dev.h>
#include <stdfd.h>
#include <sysio.h>
//#include <mount.h>
#include <errno.h>
#include <catamount/lprintf.h>
#include "fs_native.h"
void start_sysio(void)
{
static int sysio_init_done = 0;
int i, fd[3];
struct stdio {
char *path;
mode_t mode;
int flags;
int dev;
} std[3] = {
{ "/dev/stdin", (S_IFCHR | 0444), O_RDONLY,
SYSIO_MKDEV(SYSIO_C_STDFD_MAJOR, 0) },
{ "/dev/stdout", (S_IFCHR | 0222), O_WRONLY,
SYSIO_MKDEV(SYSIO_C_STDFD_MAJOR, 1) },
{ "/dev/stderr", (S_IFCHR | 0222), O_WRONLY,
SYSIO_MKDEV(SYSIO_C_STDFD_MAJOR, 2) }
};
if (sysio_init_done) return;
sysio_init_done = 1;
if (_sysio_init() != 0) {
lprintf("_sysio_init failed\n");
return;
}
if (_sysio_incore_init() != 0) {
lprintf("_sysio_incore_init() failed\n");
return;
}
if ((_sysio_mount_root("0777+0+0", "incore", 0, NULL)) != 0) {
lprintf("_sysio_mount_root() failed\n");
return;
}
if ((mkdir("/dev", 0777)) != 0 && errno != EEXIST) {
lprintf("mkdir(\"/dev\") failed\n");
return;
}
for (i = 0; i < 3; i++) {
if (mknod(std[i].path, std[i].mode, std[i].dev) == 0) {
if ( ( fd[i] = open(std[i].path, std[i].flags )) < 0 ) {
lprintf("start_sysio() open failed errno %i \n",errno);
return;
}
} else {
lprintf("start_sysio() mknod failed errno %i %s\n",errno,
std[i].path );
}
}
}
|