Subversion Repositories HelenOS

Compare Revisions

Ignore whitespace Rev 2958 → Rev 2959

/branches/dynload/uspace/app/iramfs/data.h
37,10 → 37,14
 
#include <sys/types.h>
 
extern const uint8_t data[];
extern const size_t data_size;
extern const char data_filename[];
extern const uint8_t rtld[];
extern const size_t rtld_size;
extern const char rtld_filename[];
 
extern const uint8_t tetris[];
extern const size_t tetris_size;
extern const char tetris_filename[];
 
#endif
 
/** @}
/branches/dynload/uspace/app/iramfs/main.c
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;
/branches/dynload/uspace/app/iramfs/Makefile
87,5 → 87,6
%.o: %.c
$(CC) $(DEFS) $(CFLAGS) -c $< -o $@
 
data.c: ../../lib/rtld/rtld.so
../../../tools/bin2c.py $< >$@
data.c: ../../lib/rtld/rtld.so ../tetris/tetris
../../../tools/bin2c.py ../../lib/rtld/rtld.so rtld.so rtld >$@
../../../tools/bin2c.py ../tetris/tetris tetris tetris >>$@