⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 config.c

📁 Linux内核源代码 为压缩文件 是<<Linux内核>>一书中的源代码
💻 C
📖 第 1 页 / 共 2 页
字号:
/* *  linux/arch/m68k/mac/config.c * * This file is subject to the terms and conditions of the GNU General Public * License.  See the file COPYING in the main directory of this archive * for more details. *//* * Miscellaneous linux stuff */#include <linux/config.h>#include <linux/types.h>#include <linux/mm.h>#include <linux/kd.h>#include <linux/tty.h>#include <linux/console.h>#include <linux/interrupt.h>/* keyb */#include <linux/random.h>#include <linux/delay.h>/* keyb */#include <linux/init.h>#define BOOTINFO_COMPAT_1_0#include <asm/setup.h>#include <asm/bootinfo.h>#include <asm/system.h>#include <asm/io.h>#include <asm/irq.h>#include <asm/pgtable.h>#include <asm/machdep.h>#include <asm/macintosh.h>#include <asm/macints.h>#include <asm/machw.h>#include <asm/mac_iop.h>#include <asm/mac_via.h>#include <asm/mac_oss.h>#include <asm/mac_psc.h>/* Mac bootinfo struct */struct mac_booter_data mac_bi_data = {0,};int mac_bisize = sizeof mac_bi_data;/* New m68k bootinfo stuff and videobase */extern int m68k_num_memory;extern struct mem_info m68k_memory[NUM_MEMINFO];extern struct mem_info m68k_ramdisk;extern char m68k_command_line[CL_SIZE];void *mac_env;		/* Loaded by the boot asm *//* The phys. video addr. - might be bogus on some machines */unsigned long mac_orig_videoaddr;/* Mac specific timer functions */extern void mac_gettod (int *, int *, int *, int *, int *, int *);extern unsigned long mac_gettimeoffset (void);extern int mac_hwclk (int, struct hwclk_time *);extern int mac_set_clock_mmss (unsigned long);extern int mac_get_irq_list(char *);extern void iop_preinit(void);extern void iop_init(void);extern void via_init(void);extern void via_init_clock(void (*func)(int, void *, struct pt_regs *));extern void via_flush_cache(void);extern void oss_init(void);extern void psc_init(void);extern void baboon_init(void);extern void (*kd_mksound)(unsigned int, unsigned int);extern void mac_mksound(unsigned int, unsigned int);extern int mac_floppy_init(void);extern void mac_floppy_setup(char *,int *);extern void nubus_sweep_video(void);/* Mac specific debug functions (in debug.c) */extern void mac_debug_init(void);extern void mac_debugging_long(int, long);extern void (*kd_mksound)(unsigned int, unsigned int);extern int mackbd_init_hw(void);extern void mackbd_leds(unsigned int leds);extern int mackbd_translate(unsigned char keycode, unsigned char *keycodep, char raw_mode);extern void mac_hid_init_hw(void);extern int mac_hid_kbd_translate(unsigned char scancode, unsigned char *keycode, char raw_mode);#ifdef CONFIG_MAGIC_SYSRQextern unsigned char mac_hid_kbd_sysrq_xlate[128];extern unsigned char pckbd_sysrq_xlate[128];extern unsigned char mackbd_sysrq_xlate[128];#endif /* CONFIG_MAGIC_SYSRQ */static void mac_get_model(char *str);void mac_bang(int irq, void *vector, struct pt_regs *p){	printk("Resetting ...\n");	mac_reset();}static void mac_sched_init(void (*vector)(int, void *, struct pt_regs *)){	via_init_clock(vector);}#if 0void mac_waitbut (void){	;}#endifextern struct fb_info *mac_fb_init(long *);extern void mac_default_handler(int, void *, struct pt_regs *);void (*mac_handlers[8])(int, void *, struct pt_regs *)={	mac_default_handler,	mac_default_handler,	mac_default_handler,	mac_default_handler,	mac_default_handler,	mac_default_handler,	mac_default_handler,	mac_default_handler};/* * Parse a Macintosh-specific record in the bootinfo */int __init mac_parse_bootinfo(const struct bi_record *record){    int unknown = 0;    const u_long *data = record->data;    switch (record->tag) {	case BI_MAC_MODEL:	    mac_bi_data.id = *data;	    break;	case BI_MAC_VADDR:	    mac_bi_data.videoaddr = *data;	    break;	case BI_MAC_VDEPTH:	    mac_bi_data.videodepth = *data;	    break;	case BI_MAC_VROW:	    mac_bi_data.videorow = *data;	    break;	case BI_MAC_VDIM:	    mac_bi_data.dimensions = *data;	    break;	case BI_MAC_VLOGICAL:	    mac_bi_data.videological = VIDEOMEMBASE + (*data & ~VIDEOMEMMASK);	    mac_orig_videoaddr = *data;	    break;	case BI_MAC_SCCBASE:	    mac_bi_data.sccbase = *data;	    break;	case BI_MAC_BTIME:	    mac_bi_data.boottime = *data;	    break;	case BI_MAC_GMTBIAS:	    mac_bi_data.gmtbias = *data;	    break;	case BI_MAC_MEMSIZE:	    mac_bi_data.memsize = *data;	    break;	case BI_MAC_CPUID:	    mac_bi_data.cpuid = *data;	    break;        case BI_MAC_ROMBASE:	    mac_bi_data.rombase = *data;	    break;	default:	    unknown = 1;    }    return(unknown);}/* * Flip into 24bit mode for an instant - flushes the L2 cache card. We * have to disable interrupts for this. Our IRQ handlers will crap  * themselves if they take an IRQ in 24bit mode! */static void mac_cache_card_flush(int writeback){	unsigned long cpu_flags;	save_flags(cpu_flags);	cli();	via_flush_cache();	restore_flags(cpu_flags);}void __init config_mac(void){	if (!MACH_IS_MAC) {	  printk("ERROR: no Mac, but config_mac() called!! \n");	}	#ifdef CONFIG_VT#ifdef CONFIG_INPUT_ADBHID	mach_keyb_init       = mac_hid_init_hw;	mach_kbd_translate   = mac_hid_kbd_translate;#ifdef CONFIG_MAGIC_SYSRQ#ifdef CONFIG_MAC_ADBKEYCODES	if (!keyboard_sends_linux_keycodes) {		mach_sysrq_xlate = mac_hid_kbd_sysrq_xlate;		SYSRQ_KEY = 0x69;	} else#endif /* CONFIG_MAC_ADBKEYCODES */	{		mach_sysrq_xlate = pckbd_sysrq_xlate;		SYSRQ_KEY = 0x54;	}#endif /* CONFIG_MAGIC_SYSRQ */#elif defined(CONFIG_ADB_KEYBOARD)	mach_keyb_init       = mackbd_init_hw;	mach_kbd_leds        = mackbd_leds;	mach_kbd_translate   = mackbd_translate;	mach_sysrq_xlate     = mackbd_sysrq_xlate;	SYSRQ_KEY = 0x69;#endif /* CONFIG_INPUT_ADBHID */#endif /* CONFIG_VT */	mach_sched_init      = mac_sched_init;	mach_init_IRQ        = mac_init_IRQ;	mach_request_irq     = mac_request_irq;	mach_free_irq        = mac_free_irq;	enable_irq           = mac_enable_irq;	disable_irq          = mac_disable_irq;	mach_get_model	 = mac_get_model;	mach_default_handler = &mac_handlers;	mach_get_irq_list    = mac_get_irq_list;	mach_gettimeoffset   = mac_gettimeoffset;	mach_gettod          = mac_gettod;	mach_hwclk           = mac_hwclk;	mach_set_clock_mmss	 = mac_set_clock_mmss;#if 0	mach_mksound         = mac_mksound;#endif	mach_reset           = mac_reset;	mach_halt            = mac_poweroff;	mach_power_off       = mac_poweroff;	conswitchp	         = &dummy_con;	mach_max_dma_address = 0xffffffff;#if 0	mach_debug_init	 = mac_debug_init;#endif	kd_mksound		 = mac_mksound;#ifdef CONFIG_HEARTBEAT#if 0	mach_heartbeat = mac_heartbeat;	mach_heartbeat_irq = IRQ_MAC_TIMER;#endif

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -