Linux-2.6.12-rc2
Initial git repository build. I'm not bothering with the full history, even though we have it. We can create a separate "historical" git archive of that later if we want to, and in the meantime it's about 3.2GB when imported into git - space that would just make the early git days unnecessarily complicated, when we don't have a lot of good infrastructure for it. Let it rip!
This commit is contained in:
82
arch/um/kernel/tempfile.c
Normal file
82
arch/um/kernel/tempfile.c
Normal file
@@ -0,0 +1,82 @@
|
||||
/*
|
||||
* Copyright (C) 2002 Jeff Dike (jdike@karaya.com)
|
||||
* Licensed under the GPL
|
||||
*/
|
||||
|
||||
#include <stdio.h>
|
||||
#include <stdlib.h>
|
||||
#include <unistd.h>
|
||||
#include <string.h>
|
||||
#include <errno.h>
|
||||
#include <sys/param.h>
|
||||
#include "init.h"
|
||||
|
||||
/* Modified from create_mem_file and start_debugger */
|
||||
static char *tempdir = NULL;
|
||||
|
||||
static void __init find_tempdir(void)
|
||||
{
|
||||
char *dirs[] = { "TMP", "TEMP", "TMPDIR", NULL };
|
||||
int i;
|
||||
char *dir = NULL;
|
||||
|
||||
if(tempdir != NULL) return; /* We've already been called */
|
||||
for(i = 0; dirs[i]; i++){
|
||||
dir = getenv(dirs[i]);
|
||||
if((dir != NULL) && (*dir != '\0'))
|
||||
break;
|
||||
}
|
||||
if((dir == NULL) || (*dir == '\0'))
|
||||
dir = "/tmp";
|
||||
|
||||
tempdir = malloc(strlen(dir) + 2);
|
||||
if(tempdir == NULL){
|
||||
fprintf(stderr, "Failed to malloc tempdir, "
|
||||
"errno = %d\n", errno);
|
||||
return;
|
||||
}
|
||||
strcpy(tempdir, dir);
|
||||
strcat(tempdir, "/");
|
||||
}
|
||||
|
||||
int make_tempfile(const char *template, char **out_tempname, int do_unlink)
|
||||
{
|
||||
char tempname[MAXPATHLEN];
|
||||
int fd;
|
||||
|
||||
find_tempdir();
|
||||
if (*template != '/')
|
||||
strcpy(tempname, tempdir);
|
||||
else
|
||||
*tempname = 0;
|
||||
strcat(tempname, template);
|
||||
fd = mkstemp(tempname);
|
||||
if(fd < 0){
|
||||
fprintf(stderr, "open - cannot create %s: %s\n", tempname,
|
||||
strerror(errno));
|
||||
return -1;
|
||||
}
|
||||
if(do_unlink && (unlink(tempname) < 0)){
|
||||
perror("unlink");
|
||||
return -1;
|
||||
}
|
||||
if(out_tempname){
|
||||
*out_tempname = strdup(tempname);
|
||||
if(*out_tempname == NULL){
|
||||
perror("strdup");
|
||||
return -1;
|
||||
}
|
||||
}
|
||||
return(fd);
|
||||
}
|
||||
|
||||
/*
|
||||
* Overrides for Emacs so that we follow Linus's tabbing style.
|
||||
* Emacs will notice this stuff at the end of the file and automatically
|
||||
* adjust the settings for this buffer only. This must remain at the end
|
||||
* of the file.
|
||||
* ---------------------------------------------------------------------------
|
||||
* Local variables:
|
||||
* c-file-style: "linux"
|
||||
* End:
|
||||
*/
|
Reference in New Issue
Block a user