42,33 → 42,25 |
#include "data.h" |
|
#define min(a,b) ((a)>(b) ? (b) : (a)) |
int main(int argc, char *argv[]) |
|
int write_file(const uint8_t *data, size_t length, const char *file_name) |
{ |
int fd; |
int cnt; |
int rc; |
int nbytes; |
uint8_t *dp; |
int written; |
int fd; |
int cnt; |
|
printf("This is iramfs\n"); |
do { |
rc = mount("tmpfs", "/", "nulldev0"); |
printf("mount tmpfs on / -> %d\n", rc); |
if (rc == 0) break; |
printf("Create %s\n", file_name); |
|
usleep(1000 * 1000); |
} while (1); |
|
fd = open(file_name, O_CREAT); |
if (fd < 0) { printf("open failed\n"); return -1; } |
|
fd = open(data_filename, O_CREAT); |
if (fd < 0) { printf("open failed\n"); return 1; } |
|
printf("write %d bytes...\n", data_size); |
nbytes = data_size; dp = data; written = 0; |
printf("write %d bytes...\n", length); |
nbytes = length; dp = data; written = 0; |
while (nbytes > 0) { |
cnt = write(fd, dp, min(4096, nbytes)); |
if (cnt < 0) { printf("write failed\n"); return 1; } |
if (cnt < 0) { printf("write failed\n"); return -1; } |
dp += cnt; |
written += cnt; |
nbytes -= cnt; |
78,6 → 70,25 |
printf("\n\nwritten %d bytes\n", written); |
close(fd); |
|
return 0; |
} |
|
int main(int argc, char *argv[]) |
{ |
int rc; |
|
printf("This is iramfs\n"); |
do { |
rc = mount("tmpfs", "/", "nulldev0"); |
printf("mount tmpfs on / -> %d\n", rc); |
if (rc == 0) break; |
|
usleep(1000 * 1000); |
} while (1); |
|
if (write_file(rtld, rtld_size, rtld_filename) < 0) return 1; |
if (write_file(tetris, tetris_size, tetris_filename) < 0) return 1; |
|
printf("done\n"); |
getchar(); |
return 0; |