#ifndef SILO_H #define SILO_H #include #include #define CMD_LENG 512 struct aout_hdr { int magic; int ltext; int ldata; int lbss; int lsym; int lentry; int x1; int x2; }; typedef struct { unsigned char info[128]; /* Informative text string */ unsigned char spare0[14]; struct sun_info { unsigned char spare1; unsigned char id; unsigned char spare2; unsigned char flags; } infos[8]; unsigned char spare1[246]; /* Boot information etc. */ unsigned short rspeed; /* Disk rotational speed */ unsigned short pcylcount; /* Physical cylinder count */ unsigned short sparecyl; /* extra sects per cylinder */ unsigned char spare2[4]; /* More magic... */ unsigned short ilfact; /* Interleave factor */ unsigned short ncyl; /* Data cylinder count */ unsigned short nacyl; /* Alt. cylinder count */ unsigned short ntrks; /* Tracks per cylinder */ unsigned short nsect; /* Sectors per track */ unsigned char spare3[4]; /* Even more magic... */ struct sun_partition { unsigned int start_cylinder; unsigned int num_sectors; } partitions[8]; unsigned short magic; /* Magic number */ unsigned short csum; /* Label xor'd checksum */ } sun_partition; #define SUN_LABEL_MAGIC 0xDABE enum arch { sun4, sun4c, sun4m, sun4d, sun4e, sun4u, sununknown }; /* console.c */ void dpset (const struct linux_romvec *); void dpout (const char *, int); char dpin (); int nbgetchar (struct linux_romvec *); /* cmdline.c */ void cmdinit (); void cmdedit (void (*)(void),int); extern char cbuff[]; extern char passwdbuff[]; /* disk.c */ extern char bootdevice[]; int diskinit (const struct linux_romvec *); int read (char *, int, int); int xmit (char *, int); int open (char *); int setdisk (char *); void close (void); /* printf.c */ void printf (char *,...); void vprintf (char *, va_list); void putchar (char); /* malloc.c */ void *malloc (int); void free (void *); void mark (void **); void release (void *); /* file.c */ int load_file (char *, int, char *, char *, char *, int *, int, void (*)(int, char **, char **)); /* misc.c */ void fatal (const char *); char *get_bootargs (struct linux_romvec *, int); void show_bootargs (struct linux_romvec *); void set_bootargs (struct linux_romvec *, char *, char *); char *v0_device (char *); enum arch get_architecture(struct linux_romvec *); unsigned char *find_linux_HdrS (int); void print_message(char *); void get_idprom(void); char *get_syspackage(void); char *seed_part_into_device (char *device, int part); /* cfg.c */ int cfg_parse (char *, char *, int); char *cfg_get_strg (char *, char *); int cfg_get_flag (char *, char *); void cfg_print_images (void); char *cfg_get_default (void); /* strtol.c */ int strtol (const char *, char **, int); #define atoi(a) strtol(a,0,10) /* decompress.c */ int decompress (char *, char *, unsigned char (*)(void), void (*)(void)); /* main.c */ extern struct linux_nodeops *prom_nodeops; extern int prom_root_node; extern enum arch architecture; extern struct linux_romvec *romvec; /* tree.c */ int prom_getchild (int); int prom_getsibling (int); int prom_getproplen (int, char *); int prom_getproperty (int, char *, char *, int); int prom_getint (int, char *); int prom_getintdefault (int, char *, int); int prom_getbool (int, char *); void prom_getstring (int, char *, char *, int); int prom_nodematch (int, char *); int prom_searchsiblings (int, char *); char *prom_firstprop (int); char *prom_nextprop (int, char *); int prom_node_has_property (int, char *); int prom_setprop (int, char *, char *, int); /* ranges.c */ void prom_adjust_regs (struct linux_prom_registers *, int, struct linux_prom_ranges *, int); void prom_adjust_ranges (struct linux_prom_ranges *, int, struct linux_prom_ranges *, int); void prom_apply_obio_ranges (struct linux_prom_registers *, int); /* timer.c */ int init_timer (struct linux_romvec *); void close_timer (struct linux_romvec *); int get_ticks (void); void reset_ticks (void); /* memory.c */ char *memory_find (int); struct linux_mlist_v0 *prom_meminit (void); int sun4c_mapio (unsigned long, unsigned long, int); void sun4c_unmapio (unsigned long); /* libc */ char *strdup (const char *); char *strchr (const char *, char); char *strrchr (const char *, char); char *strstr (const char *, const char *); #endif