--- Gnu-Mach/linux/dev/init/main.c 2020/09/02 04:41:39 1.1 +++ Gnu-Mach/linux/dev/init/main.c 2020/09/02 04:45:53 1.1.1.2 @@ -39,6 +39,7 @@ #include #include #include +#include #define MACH_INCLUDE #include @@ -47,17 +48,21 @@ #include #include #include +#include +#include #include #include -#include - /* * Timing loop count. */ unsigned long loops_per_sec = 1; +#if defined(__SMP__) && defined(__i386__) +unsigned long smp_loops_per_tick = 1000000; +#endif + /* * End of physical memory. */ @@ -81,30 +86,6 @@ struct drive_info_struct */ static void calibrate_delay (void); -extern int hz; -extern vm_offset_t phys_last_addr; - -extern void *alloc_contig_mem (unsigned, unsigned, unsigned, vm_page_t *); -extern void free_contig_mem (vm_page_t); -extern void init_IRQ (void); -extern void restore_IRQ (void); -extern void startrtclock (void); -extern void linux_version_init (void); -extern void linux_kmem_init (void); -extern unsigned long pci_init (unsigned long, unsigned long); -extern void linux_net_emulation_init (void); -extern void device_setup (void); -extern void linux_printk (char *,...); -extern int linux_timer_intr (void); -extern spl_t spl0 (void); -extern spl_t splhigh (void); -extern void form_pic_mask (void); -extern int linux_bad_intr (int); -extern int prtnull (); -extern int intnull (); -extern void linux_sched_init (void); - - /* * Amount of contiguous memory to allocate for initialization. */ @@ -168,7 +149,7 @@ linux_init (void) /* * Free unused memory. */ - while (pages && pages->phys_addr < round_page (memory_start)) + while (pages && phystokv(pages->phys_addr) < round_page (memory_start)) pages = (vm_page_t) pages->pageq.next; if (pages) free_contig_mem (pages); @@ -179,10 +160,19 @@ linux_init (void) #ifdef CONFIG_INET linux_net_emulation_init (); #endif + cli (); device_setup (); +#ifdef CONFIG_PCMCIA + /* + * Initialize pcmcia. + */ + pcmcia_init (); +#endif + restore_IRQ (); + linux_auto_config = 0; } @@ -306,7 +296,7 @@ alloc_contig_mem (unsigned size, unsigne kfree ((vm_offset_t) bits, bits_len); if (pages) *pages = page_list; - return (m); + return phystokv(m); } /*