-static int __init set_umid(char *name, int is_random)
+static int __init set_umid(char *name, int is_random,
+ int (*printer)(const char *fmt, ...))
- printk("Unique machine name is being truncated to %s "
- "characters\n", UMID_LEN);
+ (*printer)("Unique machine name is being truncated to %d "
+ "characters\n", UMID_LEN);
strlcpy(umid, name, sizeof(umid));
umid_is_random = is_random;
strlcpy(umid, name, sizeof(umid));
umid_is_random = is_random;
if(umid_file_name("pid", file, sizeof(file))) return 0;
fd = os_open_file(file, of_create(of_excl(of_rdwr(OPENFLAGS()))),
0644);
if(fd < 0){
if(umid_file_name("pid", file, sizeof(file))) return 0;
fd = os_open_file(file, of_create(of_excl(of_rdwr(OPENFLAGS()))),
0644);
if(fd < 0){
- printk("Open of machine pid file \"%s\" failed - "
- "errno = %d\n", file, -fd);
+ printf("Open of machine pid file \"%s\" failed - "
+ "err = %d\n", file, -fd);
- if(write(fd, pid, strlen(pid)) != strlen(pid))
- printk("Write of pid file failed - errno = %d\n", errno);
- close(fd);
+ n = os_write_file(fd, pid, strlen(pid));
+ if(n != strlen(pid))
+ printf("Write of pid file failed - err = %d\n", -n);
+ os_close_file(fd);
printk("actually_do_remove : couldn't open directory '%s', "
"errno = %d\n", dir, errno);
return(1);
printk("actually_do_remove : couldn't open directory '%s', "
"errno = %d\n", dir, errno);
return(1);
{
char file[strlen(uml_dir) + UMID_LEN + sizeof("/pid\0")];
char pid[sizeof("nnnnn\0")], *end;
{
char file[strlen(uml_dir) + UMID_LEN + sizeof("/pid\0")];
char pid[sizeof("nnnnn\0")], *end;
static int __init set_uml_dir(char *name, int *add)
{
if((strlen(name) > 0) && (name[strlen(name) - 1] != '/')){
static int __init set_uml_dir(char *name, int *add)
{
if((strlen(name) > 0) && (name[strlen(name) - 1] != '/')){
printf("make_uml_dir : malloc failed, errno = %d\n", errno);
exit(1);
}
strcpy(uml_dir, dir);
if((mkdir(uml_dir, 0777) < 0) && (errno != EEXIST)){
printf("make_uml_dir : malloc failed, errno = %d\n", errno);
exit(1);
}
strcpy(uml_dir, dir);
if((mkdir(uml_dir, 0777) < 0) && (errno != EEXIST)){
{
int fd, err;
char tmp[strlen(uml_dir) + UMID_LEN + 1];
strlcpy(tmp, uml_dir, sizeof(tmp));
{
int fd, err;
char tmp[strlen(uml_dir) + UMID_LEN + 1];
strlcpy(tmp, uml_dir, sizeof(tmp));
/* There's a nice tiny little race between this unlink and
* the mkdir below. It'd be nice if there were a mkstemp
* for directories.
*/
unlink(tmp);
/* There's a nice tiny little race between this unlink and
* the mkdir below. It'd be nice if there were a mkstemp
* for directories.
*/
unlink(tmp);
}
sprintf(tmp, "%s%s", uml_dir, umid);
}
sprintf(tmp, "%s%s", uml_dir, umid);