123456789101112131415161718192021222324252627282930313233343536373839404142434445464748 |
-
- #ifdef RAW_IMAGE
- static unsigned long raw_load_addr;
-
- int mach_boot(register unsigned long entry_point)
- {
- void (*fnc)(void) = (void *) entry_point;
-
-
- (*fnc)();
-
- return 0;
- }
-
- static sector_t raw_download(unsigned char *data, unsigned int len, int eof)
- {
- memcpy(phys_to_virt(raw_load_addr), data, len);
- raw_load_addr += len;
- if (!eof)
- return 0;
-
- done(1);
- printf("Starting program.\n");
- mach_boot(RAWADDR);
- printf("Bootsector returned?");
- longjmp(restart_etherboot, -2);
- return 1;
- }
-
- static os_download_t raw_probe(unsigned char *data __unused, unsigned int len __unused)
- {
- printf("(RAW");
-
- printf(")... \n");
-
-
- raw_load_addr = RAWADDR;
- printf("Writing image to 0x%x\n", raw_load_addr);
- return raw_download;
- }
-
- #endif
|