95 |
if (ioctl(rfd, BLKGETSIZE64, &ramdisk_size)) |
if (ioctl(rfd, BLKGETSIZE64, &ramdisk_size)) |
96 |
ramdisk_size = ~0ULL; |
ramdisk_size = ~0ULL; |
97 |
ramdisk_start = 0; |
ramdisk_start = 0; |
98 |
DEBUG(("New size = %llu\n", ramdisk_size)); |
dprintf("New size = %llu\n", ramdisk_size); |
99 |
} |
} |
100 |
do { |
do { |
101 |
ramdisk_left = ramdisk_size - ramdisk_start; |
ramdisk_left = ramdisk_size - ramdisk_start; |
117 |
rv = inflate(&zs, Z_SYNC_FLUSH); |
rv = inflate(&zs, Z_SYNC_FLUSH); |
118 |
} while (rv == Z_OK || rv == Z_BUF_ERROR); |
} while (rv == Z_OK || rv == Z_BUF_ERROR); |
119 |
|
|
120 |
DEBUG(("kinit: inflate returned %d\n", rv)); |
dprintf("kinit: inflate returned %d\n", rv); |
121 |
|
|
122 |
if (rv != Z_STREAM_END) |
if (rv != Z_STREAM_END) |
123 |
goto err2; |
goto err2; |
124 |
|
|
125 |
/* Write the last */ |
/* Write the last */ |
126 |
_fwrite(out_buf, BUF_SZ - zs.avail_out, wfd); |
_fwrite(out_buf, BUF_SZ - zs.avail_out, wfd); |
127 |
DEBUG(("kinit: writing %d bytes\n", BUF_SZ - zs.avail_out)); |
dprintf("kinit: writing %d bytes\n", BUF_SZ - zs.avail_out); |
128 |
|
|
129 |
inflateEnd(&zs); |
inflateEnd(&zs); |
130 |
return 0; |
return 0; |
153 |
if (ioctl(rfd, BLKGETSIZE64, &ramdisk_size)) |
if (ioctl(rfd, BLKGETSIZE64, &ramdisk_size)) |
154 |
ramdisk_size = ~0ULL; |
ramdisk_size = ~0ULL; |
155 |
|
|
156 |
DEBUG(("start: %llu size: %llu fssize: %llu\n", |
dprintf("start: %llu size: %llu fssize: %llu\n", |
157 |
ramdisk_start, ramdisk_size, fssize)); |
ramdisk_start, ramdisk_size, fssize); |
158 |
|
|
159 |
while (fssize) { |
while (fssize) { |
160 |
|
|
189 |
return !!fssize; |
return !!fssize; |
190 |
} |
} |
191 |
|
|
192 |
int ramdisk_load(int argc, char *argv[], dev_t root_dev) |
int ramdisk_load(int argc, char *argv[]) |
193 |
{ |
{ |
194 |
const char *arg_prompt_ramdisk = get_arg(argc, argv, "prompt_ramdisk="); |
const char *arg_prompt_ramdisk = get_arg(argc, argv, "prompt_ramdisk="); |
195 |
const char *arg_ramdisk_blocksize = |
const char *arg_ramdisk_blocksize = |
246 |
return 0; |
return 0; |
247 |
} |
} |
248 |
|
|
249 |
DEBUG(("kinit: ramdisk is %s, size %llu\n", fstype, fssize)); |
dprintf("kinit: ramdisk is %s, size %llu\n", fstype, fssize); |
250 |
|
|
251 |
fprintf(stderr, "Loading ramdisk (%s) ...", is_gzip ? "gzip" : "raw"); |
fprintf(stderr, "Loading ramdisk (%s) ...", is_gzip ? "gzip" : "raw"); |
252 |
|
|