To run all available tests its enough to call $ phpunit from the root workspace directory; the default phpunit configuration resides in phpunit.xml. A bootstrap script sets some default paths and can be extended later on with other useful stuff. Each test class' path should mimic the name and path of the source class, only that the test class gets an additional "Test" appended so PHPUnit can find it automatically. The data directory can be used in a flat manner; for tests that need test data a separate directory containing these files should be added, and the directory should be named after the test class itself. The first test which uses the new infrastructure is a test for the rewritten diff parser (closes issue 627).
		
			
				
	
	
		
			1 line
		
	
	
		
			21 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
			
		
		
	
	
			1 line
		
	
	
		
			21 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
a:5:{s:43:"LinuxBIOSv1/src/include/cpu/i786/cpufixup.h";a:2:{s:6:"chunks";a:1:{i:0;a:12:{i:0;a:3:{i:0;s:0:"";i:1;s:1:"1";i:2;s:27:"#ifndef CPU_I786_CPUFIXUP_H";}i:1;a:3:{i:0;s:0:"";i:1;i:2;i:2;s:27:"#define CPU_I786_CPUFIXUP_H";}i:2;a:3:{i:0;s:0:"";i:1;i:3;i:2;b:0;}i:3;a:3:{i:0;s:0:"";i:1;i:4;i:2;b:0;}i:4;a:3:{i:0;s:0:"";i:1;i:5;i:2;s:42:"void i786_cpufixup(struct mem_range *mem);";}i:5;a:3:{i:0;s:0:"";i:1;i:6;i:2;b:0;}i:6;a:3:{i:0;s:0:"";i:1;i:7;i:2;s:29:"#define L3_CACHE_DISABLE 0x40";}i:7;a:3:{i:0;s:0:"";i:1;i:8;i:2;b:0;}i:8;a:3:{i:0;s:0:"";i:1;i:9;i:2;s:32:"#endif /* CPU_I786_CPUFIXUP_H */";}i:9;a:3:{i:0;s:0:"";i:1;i:10;i:2;b:0;}i:10;a:3:{i:0;s:0:"";i:1;i:11;i:2;b:0;}i:11;a:3:{i:0;s:1:"0";i:1;i:12;i:2;b:0;}}}s:10:"chunks_def";a:1:{i:0;a:2:{i:0;a:2:{i:0;s:1:"0";i:1;s:1:"0";}i:1;a:2:{i:0;s:1:"1";i:1;s:2:"11";}}}}s:50:"LinuxBIOSv1/src/mainboard/tyan/guiness/cmos.layout";a:2:{s:6:"chunks";a:1:{i:0;a:64:{i:0;a:3:{i:0;s:0:"";i:1;s:1:"1";i:2;s:7:"entries";}i:1;a:3:{i:0;s:0:"";i:1;i:2;i:2;b:0;}i:2;a:3:{i:0;s:0:"";i:1;i:3;i:2;s:43:"#start-bit length  config config-ID    name";}i:3;a:3:{i:0;s:0:"";i:1;i:4;i:2;s:46:"#0            8       r       0        seconds";}i:4;a:3:{i:0;s:0:"";i:1;i:5;i:2;s:52:"#8            8       r       0        alarm_seconds";}i:5;a:3:{i:0;s:0:"";i:1;i:6;i:2;s:46:"#16           8       r       0        minutes";}i:6;a:3:{i:0;s:0:"";i:1;i:7;i:2;s:52:"#24           8       r       0        alarm_minutes";}i:7;a:3:{i:0;s:0:"";i:1;i:8;i:2;s:44:"#32           8       r       0        hours";}i:8;a:3:{i:0;s:0:"";i:1;i:9;i:2;s:50:"#40           8       r       0        alarm_hours";}i:9;a:3:{i:0;s:0:"";i:1;i:10;i:2;s:50:"#48           8       r       0        day_of_week";}i:10;a:3:{i:0;s:0:"";i:1;i:11;i:2;s:51:"#56           8       r       0        day_of_month";}i:11;a:3:{i:0;s:0:"";i:1;i:12;i:2;s:44:"#64           8       r       0        month";}i:12;a:3:{i:0;s:0:"";i:1;i:13;i:2;s:43:"#72           8       r       0        year";}i:13;a:3:{i:0;s:0:"";i:1;i:14;i:2;s:50:"#80           4       r       0        rate_select";}i:14;a:3:{i:0;s:0:"";i:1;i:15;i:2;s:48:"#84           3       r       0        REF_Clock";}i:15;a:3:{i:0;s:0:"";i:1;i:16;i:2;s:42:"#87           1       r       0        UIP";}i:16;a:3:{i:0;s:0:"";i:1;i:17;i:2;s:54:"#88           1       r       0        auto_switch_DST";}i:17;a:3:{i:0;s:0:"";i:1;i:18;i:2;s:51:"#89           1       r       0        24_hour_mode";}i:18;a:3:{i:0;s:0:"";i:1;i:19;i:2;s:59:"#90           1       r       0        binary_values_enable";}i:19;a:3:{i:0;s:0:"";i:1;i:20;i:2;s:61:"#91           1       r       0        square-wave_out_enable";}i:20;a:3:{i:0;s:0:"";i:1;i:21;i:2;s:61:"#92           1       r       0        update_finished_enable";}i:21;a:3:{i:0;s:0:"";i:1;i:22;i:2;s:61:"#93           1       r       0        alarm_interrupt_enable";}i:22;a:3:{i:0;s:0:"";i:1;i:23;i:2;s:64:"#94           1       r       0        periodic_interrupt_enable";}i:23;a:3:{i:0;s:0:"";i:1;i:24;i:2;s:60:"#95           1       r       0        disable_clock_updates";}i:24;a:3:{i:0;s:0:"";i:1;i:25;i:2;s:55:"#96         288       r       0        temporary_filler";}i:25;a:3:{i:0;s:0:"";i:1;i:26;i:2;s:53:"0          384       r       0        reserved_memory";}i:26;a:3:{i:0;s:0:"";i:1;i:27;i:2;s:49:"384          1       e       4        boot_option";}i:27;a:3:{i:0;s:0:"";i:1;i:28;i:2;s:47:"385          1       e       4        last_boot";}i:28;a:3:{i:0;s:0:"";i:1;i:29;i:2;s:47:"386          3       e       5        baud_rate";}i:29;a:3:{i:0;s:0:"";i:1;i:30;i:2;s:49:"392          4       e       6        debug_level";}i:30;a:3:{i:0;s:0:"";i:1;i:31;i:2;s:57:"396          1       e       1        power_on_after_fail";}i:31;a:3:{i:0;s:0:"";i:1;i:32;i:2;s:49:"#401          1       e       1        ECC_memory";}i:32;a:3:{i:0;s:0:"";i:1;i:33;i:2;s:47:"#402          1       e       2        hda_disk";}i:33;a:3:{i:0;s:0:"";i:1;i:34;i:2;s:47:"#403          1       e       2        hdb_disk";}i:34;a:3:{i:0;s:0:"";i:1;i:35;i:2;s:47:"#404          1       e       2        hdc_disk";}i:35;a:3:{i:0;s:0:"";i:1;i:36;i:2;s:47:"#405          1       e       2        hdd_disk";}i:36;a:3:{i:0;s:0:"";i:1;i:37;i:2;s:50:"#406          2       e       7        boot_device";}i:37;a:3:{i:0;s:0:"";i:1;i:38;i:2;b:0;}i:38;a:3:{i:0;s:0:"";i:1;i:39;i:2;s:12:"enumerations";}i:39;a:3:{i:0;s:0:"";i:1;i:40;i:2;b:0;}i:40;a:3:{i:0;s:0:"";i:1;i:41;i:2;s:16:"#ID value   text";}i:41;a:3:{i:0;s:0:"";i:1;i:42;i:2;s:19:"1     0     Disable";}i:42;a:3:{i:0;s:0:"";i:1;i:43;i:2;s:18:"1     1     Enable";}i:43;a:3:{i:0;s:0:"";i:1;i:44;i:2;s:15:"#2     0     No";}i:44;a:3:{i:0;s:0:"";i:1;i:45;i:2;s:16:"#2     1     Yes";}i:45;a:3:{i:0;s:0:"";i:1;i:46;i:2;s:20:"4     0     Fallback";}i:46;a:3:{i:0;s:0:"";i:1;i:47;i:2;s:18:"4     1     Normal";}i:47;a:3:{i:0;s:0:"";i:1;i:48;i:2;s:18:"5     0     115200";}i:48;a:3:{i:0;s:0:"";i:1;i:49;i:2;s:17:"5     1     57600";}i:49;a:3:{i:0;s:0:"";i:1;i:50;i:2;s:17:"5     2     38400";}i:50;a:3:{i:0;s:0:"";i:1;i:51;i:2;s:17:"5     3     19200";}i:51;a:3:{i:0;s:0:"";i:1;i:52;i:2;s:16:"5     4     9600";}i:52;a:3:{i:0;s:0:"";i:1;i:53;i:2;s:16:"5     5     4800";}i:53;a:3:{i:0;s:0:"";i:1;i:54;i:2;s:16:"5     6     2400";}i:54;a:3:{i:0;s:0:"";i:1;i:55;i:2;s:16:"5     7     1200";}i:55;a:3:{i:0;s:0:"";i:1;i:56;i:2;s:18:"6     6     Notice";}i:56;a:3:{i:0;s:0:"";i:1;i:57;i:2;s:16:"6     7     Info";}i:57;a:3:{i:0;s:0:"";i:1;i:58;i:2;s:17:"6     8     Debug";}i:58;a:3:{i:0;s:0:"";i:1;i:59;i:2;s:16:"6     9     Spew";}i:59;a:3:{i:0;s:0:"";i:1;i:60;i:2;s:20:"#7     0     Network";}i:60;a:3:{i:0;s:0:"";i:1;i:61;i:2;s:16:"#7     1     HDD";}i:61;a:3:{i:0;s:0:"";i:1;i:62;i:2;s:19:"#7     2     Floppy";}i:62;a:3:{i:0;s:0:"";i:1;i:63;i:2;s:16:"#7     3     ROM";}i:63;a:3:{i:0;s:1:"0";i:1;i:64;i:2;b:0;}}}s:10:"chunks_def";a:1:{i:0;a:2:{i:0;a:2:{i:0;s:1:"0";i:1;s:1:"0";}i:1;a:2:{i:0;s:1:"1";i:1;s:2:"63";}}}}s:37:"LinuxBIOSv1/src/config/linuxbios_c.ld";a:2:{s:6:"chunks";a:1:{i:0;a:106:{i:0;a:3:{i:0;s:0:"";i:1;s:1:"1";i:2;s:2:"/*";}i:1;a:3:{i:0;s:0:"";i:1;i:2;i:2;s:14:" *	Memory map:";}i:2;a:3:{i:0;s:0:"";i:1;i:3;i:2;s:2:" *";}i:3;a:3:{i:0;s:0:"";i:1;i:4;i:2;s:13:" *	_RAMBASE		";}i:4;a:3:{i:0;s:0:"";i:1;i:5;i:2;s:20:" *				: data segment";}i:5;a:3:{i:0;s:0:"";i:1;i:6;i:2;s:19:" *				: bss segment";}i:6;a:3:{i:0;s:0:"";i:1;i:7;i:2;s:12:" *				: heap";}i:7;a:3:{i:0;s:0:"";i:1;i:8;i:2;s:13:" *				: stack";}i:8;a:3:{i:0;s:0:"";i:1;i:9;i:2;s:3:" */";}i:9;a:3:{i:0;s:0:"";i:1;i:10;i:2;s:2:"/*";}i:10;a:3:{i:0;s:0:"";i:1;i:11;i:2;s:39:" * Bootstrap code for the STPC Consumer";}i:11;a:3:{i:0;s:0:"";i:1;i:12;i:2;s:61:" * Copyright (c) 1999 by Net Insight AB. All Rights Reserved.";}i:12;a:3:{i:0;s:0:"";i:1;i:13;i:2;s:2:" *";}i:13;a:3:{i:0;s:0:"";i:1;i:14;i:2;s:7:" * $Id$";}i:14;a:3:{i:0;s:0:"";i:1;i:15;i:2;s:2:" *";}i:15;a:3:{i:0;s:0:"";i:1;i:16;i:2;s:3:" */";}i:16;a:3:{i:0;s:0:"";i:1;i:17;i:2;b:0;}i:17;a:3:{i:0;s:0:"";i:1;i:18;i:2;s:2:"/*";}i:18;a:3:{i:0;s:0:"";i:1;i:19;i:2;s:60:" *	Written by Johan Rydberg, based on work by Daniel Kahlin.";}i:19;a:3:{i:0;s:0:"";i:1;i:20;i:2;s:35:" *      Rewritten by Eric Biederman";}i:20;a:3:{i:0;s:0:"";i:1;i:21;i:2;s:3:" */";}i:21;a:3:{i:0;s:0:"";i:1;i:22;i:2;s:2:"/*";}i:22;a:3:{i:0;s:0:"";i:1;i:23;i:2;s:46:" *	We use ELF as output format. So that we can";}i:23;a:3:{i:0;s:0:"";i:1;i:24;i:2;s:32:" *	debug the code in some form. ";}i:24;a:3:{i:0;s:0:"";i:1;i:25;i:2;s:3:" */";}i:25;a:3:{i:0;s:0:"";i:1;i:26;i:2;s:17:"INCLUDE ldoptions";}i:26;a:3:{i:0;s:0:"";i:1;i:27;i:2;b:0;}i:27;a:3:{i:0;s:0:"";i:1;i:28;i:2;s:13:"ENTRY(_start)";}i:28;a:3:{i:0;s:0:"";i:1;i:29;i:2;b:0;}i:29;a:3:{i:0;s:0:"";i:1;i:30;i:2;s:8:"SECTIONS";}i:30;a:3:{i:0;s:0:"";i:1;i:31;i:2;s:1:"{";}i:31;a:3:{i:0;s:0:"";i:1;i:32;i:2;s:14:"	. = _RAMBASE;";}i:32;a:3:{i:0;s:0:"";i:1;i:33;i:2;s:3:"	/*";}i:33;a:3:{i:0;s:0:"";i:1;i:34;i:2;s:74:"	 * First we place the code and read only data (typically const declared).";}i:34;a:3:{i:0;s:0:"";i:1;i:35;i:2;s:27:"	 * This get placed in rom.";}i:35;a:3:{i:0;s:0:"";i:1;i:36;i:2;s:4:"	 */";}i:36;a:3:{i:0;s:0:"";i:1;i:37;i:2;s:10:"	.text : {";}i:37;a:3:{i:0;s:0:"";i:1;i:38;i:2;s:12:"		_text = .;";}i:38;a:3:{i:0;s:0:"";i:1;i:39;i:2;s:11:"		*(.text);";}i:39;a:3:{i:0;s:0:"";i:1;i:40;i:2;s:13:"		*(.text.*);";}i:40;a:3:{i:0;s:0:"";i:1;i:41;i:2;s:16:"		. = ALIGN(16);";}i:41;a:3:{i:0;s:0:"";i:1;i:42;i:2;s:13:"		_etext = .;";}i:42;a:3:{i:0;s:0:"";i:1;i:43;i:2;s:2:"	}";}i:43;a:3:{i:0;s:0:"";i:1;i:44;i:2;s:12:"	.rodata : {";}i:44;a:3:{i:0;s:0:"";i:1;i:45;i:2;s:14:"		_rodata = .;";}i:45;a:3:{i:0;s:0:"";i:1;i:46;i:2;s:15:"		. = ALIGN(4);";}i:46;a:3:{i:0;s:0:"";i:1;i:47;i:2;s:15:"		streams = . ;";}i:47;a:3:{i:0;s:0:"";i:1;i:48;i:2;s:20:"		*(.rodata.streams)";}i:48;a:3:{i:0;s:0:"";i:1;i:49;i:2;s:15:"		estreams = .;";}i:49;a:3:{i:0;s:0:"";i:1;i:50;i:2;s:15:"		. = ALIGN(4);";}i:50;a:3:{i:0;s:0:"";i:1;i:51;i:2;s:19:"		pci_drivers = . ;";}i:51;a:3:{i:0;s:0:"";i:1;i:52;i:2;s:24:"		*(.rodata.pci_drivers)";}i:52;a:3:{i:0;s:0:"";i:1;i:53;i:2;s:20:"		epci_drivers = . ;";}i:53;a:3:{i:0;s:0:"";i:1;i:54;i:2;s:12:"		*(.rodata)";}i:54;a:3:{i:0;s:0:"";i:1;i:55;i:2;s:14:"		*(.rodata.*)";}i:55;a:3:{i:0;s:0:"";i:1;i:56;i:2;s:15:"		_erodata = .;";}i:56;a:3:{i:0;s:0:"";i:1;i:57;i:2;s:3:"	}	";}i:57;a:3:{i:0;s:0:"";i:1;i:58;i:2;s:3:"	/*";}i:58;a:3:{i:0;s:0:"";i:1;i:59;i:2;s:67:"	 * After the code we place initialized data (typically initialized";}i:59;a:3:{i:0;s:0:"";i:1;i:60;i:2;s:65:"	 * global variables). This gets copied into ram by startup code.";}i:60;a:3:{i:0;s:0:"";i:1;i:61;i:2;s:73:"	 * __data_start and __data_end shows where in ram this should be placed,";}i:61;a:3:{i:0;s:0:"";i:1;i:62;i:2;s:69:"	 * whereas __data_loadstart and __data_loadend shows where in rom to";}i:62;a:3:{i:0;s:0:"";i:1;i:63;i:2;s:14:"	 * copy from.";}i:63;a:3:{i:0;s:0:"";i:1;i:64;i:2;s:4:"	 */";}i:64;a:3:{i:0;s:0:"";i:1;i:65;i:2;s:10:"	.data : {";}i:65;a:3:{i:0;s:0:"";i:1;i:66;i:2;s:12:"		_data = .;";}i:66;a:3:{i:0;s:0:"";i:1;i:67;i:2;s:10:"		*(.data)";}i:67;a:3:{i:0;s:0:"";i:1;i:68;i:2;s:13:"		_edata = .;";}i:68;a:3:{i:0;s:0:"";i:1;i:69;i:2;s:2:"	}";}i:69;a:3:{i:0;s:0:"";i:1;i:70;i:2;s:3:"	/*";}i:70;a:3:{i:0;s:0:"";i:1;i:71;i:2;s:69:"	 * bss does not contain data, it is just a space that should be zero";}i:71;a:3:{i:0;s:0:"";i:1;i:72;i:2;s:70:"	 * initialized on startup. (typically uninitialized global variables)";}i:72;a:3:{i:0;s:0:"";i:1;i:73;i:2;s:52:"	 * crt0.S fills between _bss and _ebss with zeroes.";}i:73;a:3:{i:0;s:0:"";i:1;i:74;i:2;s:4:"	 */";}i:74;a:3:{i:0;s:0:"";i:1;i:75;i:2;s:10:"	_bss = .;";}i:75;a:3:{i:0;s:0:"";i:1;i:76;i:2;s:11:"	.bss . : {";}i:76;a:3:{i:0;s:0:"";i:1;i:77;i:2;s:9:"		*(.bss)";}i:77;a:3:{i:0;s:0:"";i:1;i:78;i:2;s:10:"		*(.sbss)";}i:78;a:3:{i:0;s:0:"";i:1;i:79;i:2;s:11:"		*(COMMON)";}i:79;a:3:{i:0;s:0:"";i:1;i:80;i:2;s:2:"	}";}i:80;a:3:{i:0;s:0:"";i:1;i:81;i:2;s:11:"	_ebss = .;";}i:81;a:3:{i:0;s:0:"";i:1;i:82;i:2;s:10:"	_end = .;";}i:82;a:3:{i:0;s:0:"";i:1;i:83;i:2;s:12:"	_stack = .;";}i:83;a:3:{i:0;s:0:"";i:1;i:84;i:2;s:13:"	.stack . : {";}i:84;a:3:{i:0;s:0:"";i:1;i:85;i:2;s:55:"		/* Reserve a stack for each possible cpu, +1 extra */";}i:85;a:3:{i:0;s:0:"";i:1;i:86;i:2;s:47:"		. = ((MAX_CPUS * STACK_SIZE) + STACK_SIZE) ; ";}i:86;a:3:{i:0;s:0:"";i:1;i:87;i:2;s:2:"	}";}i:87;a:3:{i:0;s:0:"";i:1;i:88;i:2;s:13:"	_estack = .;";}i:88;a:3:{i:0;s:0:"";i:1;i:89;i:2;s:11:"	_heap = .;";}i:89;a:3:{i:0;s:0:"";i:1;i:90;i:2;s:12:"	.heap . : {";}i:90;a:3:{i:0;s:0:"";i:1;i:91;i:2;s:33:"		/* Reserve 256K for the heap */";}i:91;a:3:{i:0;s:0:"";i:1;i:92;i:2;s:17:"		. = HEAP_SIZE ;";}i:92;a:3:{i:0;s:0:"";i:1;i:93;i:2;s:15:"		. = ALIGN(4);";}i:93;a:3:{i:0;s:0:"";i:1;i:94;i:2;s:2:"	}";}i:94;a:3:{i:0;s:0:"";i:1;i:95;i:2;s:12:"	_eheap = .;";}i:95;a:3:{i:0;s:0:"";i:1;i:96;i:2;s:19:"	/* The ram segment";}i:96;a:3:{i:0;s:0:"";i:1;i:97;i:2;s:66:" 	 * This is all address of the memory resident copy of linuxBIOS.";}i:97;a:3:{i:0;s:0:"";i:1;i:98;i:2;s:4:"	 */";}i:98;a:3:{i:0;s:0:"";i:1;i:99;i:2;s:18:"	_ram_seg = _text;";}i:99;a:3:{i:0;s:0:"";i:1;i:100;i:2;s:20:"	_eram_seg = _eheap;";}i:100;a:3:{i:0;s:0:"";i:1;i:101;i:2;s:14:"	/DISCARD/ : {";}i:101;a:3:{i:0;s:0:"";i:1;i:102;i:2;s:13:"		*(.comment)";}i:102;a:3:{i:0;s:0:"";i:1;i:103;i:2;s:10:"		*(.note)";}i:103;a:3:{i:0;s:0:"";i:1;i:104;i:2;s:2:"	}";}i:104;a:3:{i:0;s:0:"";i:1;i:105;i:2;s:1:"}";}i:105;a:3:{i:0;s:1:"0";i:1;i:106;i:2;b:0;}}}s:10:"chunks_def";a:1:{i:0;a:2:{i:0;a:2:{i:0;s:1:"0";i:1;s:1:"0";}i:1;a:2:{i:0;s:1:"1";i:1;s:3:"105";}}}}s:49:"LinuxBIOSv1/src/arch/i386/include/arch/rom_segs.h";a:2:{s:6:"chunks";a:1:{i:0;a:11:{i:0;a:3:{i:0;s:0:"";i:1;s:1:"1";i:2;s:18:"#ifndef ROM_SEGS_H";}i:1;a:3:{i:0;s:0:"";i:1;i:2;i:2;s:18:"#define ROM_SEGS_H";}i:2;a:3:{i:0;s:0:"";i:1;i:3;i:2;b:0;}i:3;a:3:{i:0;s:0:"";i:1;i:4;i:2;s:25:"#define ROM_CODE_SEG 0x08";}i:4;a:3:{i:0;s:0:"";i:1;i:5;i:2;s:25:"#define ROM_DATA_SEG 0x10";}i:5;a:3:{i:0;s:0:"";i:1;i:6;i:2;b:0;}i:6;a:3:{i:0;s:0:"";i:1;i:7;i:2;s:31:"#define CACHE_RAM_CODE_SEG 0x18";}i:7;a:3:{i:0;s:0:"";i:1;i:8;i:2;s:31:"#define CACHE_RAM_DATA_SEG 0x20";}i:8;a:3:{i:0;s:0:"";i:1;i:9;i:2;b:0;}i:9;a:3:{i:0;s:0:"";i:1;i:10;i:2;s:23:"#endif /* ROM_SEGS_H */";}i:10;a:3:{i:0;s:1:"0";i:1;i:11;i:2;b:0;}}}s:10:"chunks_def";a:1:{i:0;a:2:{i:0;a:2:{i:0;s:1:"0";i:1;s:1:"0";}i:1;a:2:{i:0;s:1:"1";i:1;s:2:"10";}}}}s:39:"LinuxBIOSv1/src/arch/i386/lib/c_start.S";a:2:{s:6:"chunks";a:1:{i:0;a:136:{i:0;a:3:{i:0;s:0:"";i:1;s:1:"1";i:2;s:21:"#include <arch/asm.h>";}i:1;a:3:{i:0;s:0:"";i:1;i:2;i:2;s:23:"#include <arch/intel.h>";}i:2;a:3:{i:0;s:0:"";i:1;i:3;i:2;s:10:"#ifdef SMP";}i:3;a:3:{i:0;s:0:"";i:1;i:4;i:2;s:24:"#include <cpu/p6/apic.h>";}i:4;a:3:{i:0;s:0:"";i:1;i:5;i:2;s:6:"#endif";}i:5;a:3:{i:0;s:0:"";i:1;i:6;i:2;s:17:"	.section ".text"";}i:6;a:3:{i:0;s:0:"";i:1;i:7;i:2;s:8:"	.code32";}i:7;a:3:{i:0;s:0:"";i:1;i:8;i:2;s:14:"	.globl _start";}i:8;a:3:{i:0;s:0:"";i:1;i:9;i:2;s:7:"_start:";}i:9;a:3:{i:0;s:0:"";i:1;i:10;i:2;s:4:"	cli";}i:10;a:3:{i:0;s:0:"";i:1;i:11;i:2;s:17:"	lgdt	%cs:gdtaddr";}i:11;a:3:{i:0;s:0:"";i:1;i:12;i:2;s:16:"	ljmp	$0x10, $1f";}i:12;a:3:{i:0;s:0:"";i:1;i:13;i:2;s:18:"1:	movl	$0x18, %ax";}i:13;a:3:{i:0;s:0:"";i:1;i:14;i:2;s:15:"	movl	%eax, %ds";}i:14;a:3:{i:0;s:0:"";i:1;i:15;i:2;s:15:"	movl	%eax, %es";}i:15;a:3:{i:0;s:0:"";i:1;i:16;i:2;s:15:"	movl	%eax, %ss";}i:16;a:3:{i:0;s:0:"";i:1;i:17;i:2;s:15:"	movl	%eax, %fs";}i:17;a:3:{i:0;s:0:"";i:1;i:18;i:2;s:15:"	movl	%eax, %gs";}i:18;a:3:{i:0;s:0:"";i:1;i:19;i:2;b:0;}i:19;a:3:{i:0;s:0:"";i:1;i:20;i:2;s:43:"	intel_chip_post_macro(0x13)		/* post 12 */";}i:20;a:3:{i:0;s:0:"";i:1;i:21;i:2;b:0;}i:21;a:3:{i:0;s:0:"";i:1;i:22;i:2;s:19:"	/** clear stack */";}i:22;a:3:{i:0;s:0:"";i:1;i:23;i:2;s:23:"	leal	EXT(_stack), %edi";}i:23;a:3:{i:0;s:0:"";i:1;i:24;i:2;s:25:"	movl	$EXT(_estack), %ecx";}i:24;a:3:{i:0;s:0:"";i:1;i:25;i:2;s:16:"	subl	%edi, %ecx";}i:25;a:3:{i:0;s:0:"";i:1;i:26;i:2;s:16:"	xorl	%eax, %eax";}i:26;a:3:{i:0;s:0:"";i:1;i:27;i:2;s:4:"	rep";}i:27;a:3:{i:0;s:0:"";i:1;i:28;i:2;s:6:"	stosb";}i:28;a:3:{i:0;s:0:"";i:1;i:29;i:2;b:0;}i:29;a:3:{i:0;s:0:"";i:1;i:30;i:2;s:17:"	/** clear bss */";}i:30;a:3:{i:0;s:0:"";i:1;i:31;i:2;s:21:"	leal	EXT(_bss), %edi";}i:31;a:3:{i:0;s:0:"";i:1;i:32;i:2;s:23:"	movl	$EXT(_ebss), %ecx";}i:32;a:3:{i:0;s:0:"";i:1;i:33;i:2;s:16:"	subl	%edi, %ecx";}i:33;a:3:{i:0;s:0:"";i:1;i:34;i:2;s:11:"	jz	.Lnobss";}i:34;a:3:{i:0;s:0:"";i:1;i:35;i:2;s:16:"	xorl	%eax, %eax";}i:35;a:3:{i:0;s:0:"";i:1;i:36;i:2;s:4:"	rep";}i:36;a:3:{i:0;s:0:"";i:1;i:37;i:2;s:6:"	stosb";}i:37;a:3:{i:0;s:0:"";i:1;i:38;i:2;s:8:".Lnobss:";}i:38;a:3:{i:0;s:0:"";i:1;i:39;i:2;b:0;}i:39;a:3:{i:0;s:0:"";i:1;i:40;i:2;s:20:"	/* set new stack */";}i:40;a:3:{i:0;s:0:"";i:1;i:41;i:2;s:20:"	movl	$_estack, %esp";}i:41;a:3:{i:0;s:0:"";i:1;i:42;i:2;s:10:"#ifdef SMP";}i:42;a:3:{i:0;s:0:"";i:1;i:43;i:2;s:21:"	/* Get the cpu id */";}i:43;a:3:{i:0;s:0:"";i:1;i:44;i:2;s:30:"	movl	$APIC_DEFAULT_BASE, %edi";}i:44;a:3:{i:0;s:0:"";i:1;i:45;i:2;s:25:"	movl	APIC_ID(%edi), %eax";}i:45;a:3:{i:0;s:0:"";i:1;i:46;i:2;s:15:"	shrl	$24, %eax";}i:46;a:3:{i:0;s:0:"";i:1;i:47;i:2;b:0;}i:47;a:3:{i:0;s:0:"";i:1;i:48;i:2;s:44:"	/* Get the cpu index (MAX_CPUS on error) */";}i:48;a:3:{i:0;s:0:"";i:1;i:49;i:2;s:15:"	movl	$-4, %ebx";}i:49;a:3:{i:0;s:0:"";i:1;i:50;i:2;s:16:"1:	addl	$4, %ebx";}i:50;a:3:{i:0;s:0:"";i:1;i:51;i:2;s:28:"	cmpl	$(MAX_CPUS << 2), %ebx";}i:51;a:3:{i:0;s:0:"";i:1;i:52;i:2;s:5:"	je	2";}i:52;a:3:{i:0;s:0:"";i:1;i:53;i:2;s:37:"	cmpl	%eax, EXT(initial_apicid)(%ebx)";}i:53;a:3:{i:0;s:0:"";i:1;i:54;i:2;s:7:"	jne	1b";}i:54;a:3:{i:0;s:0:"";i:1;i:55;i:2;s:16:"2:	shrl	$2, %ebx";}i:55;a:3:{i:0;s:0:"";i:1;i:56;i:2;b:0;}i:56;a:3:{i:0;s:0:"";i:1;i:57;i:2;s:40:"	/* Now compute the appropriate stack */";}i:57;a:3:{i:0;s:0:"";i:1;i:58;i:2;s:16:"	movl	%ebx, %eax";}i:58;a:3:{i:0;s:0:"";i:1;i:59;i:2;s:23:"	movl	$STACK_SIZE, %ebx";}i:59;a:3:{i:0;s:0:"";i:1;i:60;i:2;s:10:"	mull	%ebx";}i:60;a:3:{i:0;s:0:"";i:1;i:61;i:2;s:16:"	subl	%eax, %esp";}i:61;a:3:{i:0;s:0:"";i:1;i:62;i:2;b:0;}i:62;a:3:{i:0;s:0:"";i:1;i:63;i:2;s:34:"	/* push the boot_complete flag */";}i:63;a:3:{i:0;s:0:"";i:1;i:64;i:2;s:11:"	pushl	%ebp";}i:64;a:3:{i:0;s:0:"";i:1;i:65;i:2;b:0;}i:65;a:3:{i:0;s:0:"";i:1;i:66;i:2;s:30:"	/* Save the stack location */";}i:66;a:3:{i:0;s:0:"";i:1;i:67;i:2;s:16:"	movl	%esp, %ebp";}i:67;a:3:{i:0;s:0:"";i:1;i:68;i:2;b:0;}i:68;a:3:{i:0;s:0:"";i:1;i:69;i:2;s:3:"	/*";}i:69;a:3:{i:0;s:0:"";i:1;i:70;i:2;s:57:"	 *	Now we are finished. Memory is up, data is copied and";}i:70;a:3:{i:0;s:0:"";i:1;i:71;i:2;s:54:"	 *	bss is cleared.   Now we call the main routine and";}i:71;a:3:{i:0;s:0:"";i:1;i:72;i:2;s:23:"	 *	let it do the rest.";}i:72;a:3:{i:0;s:0:"";i:1;i:73;i:2;s:5:"	 */ ";}i:73;a:3:{i:0;s:0:"";i:1;i:74;i:2;s:42:"	intel_chip_post_macro(0xfe)	/* post fe */";}i:74;a:3:{i:0;s:0:"";i:1;i:75;i:2;b:0;}i:75;a:3:{i:0;s:0:"";i:1;i:76;i:2;s:32:"	/* Resort the stack location */";}i:76;a:3:{i:0;s:0:"";i:1;i:77;i:2;s:16:"	movl	%ebp, %esp";}i:77;a:3:{i:0;s:0:"";i:1;i:78;i:2;s:1:"	";}i:78;a:3:{i:0;s:0:"";i:1;i:79;i:2;s:53:"	/* The boot_complete flag has already been pushed */";}i:79;a:3:{i:0;s:0:"";i:1;i:80;i:2;s:23:"	call	EXT(hardwaremain)";}i:80;a:3:{i:0;s:0:"";i:1;i:81;i:2;s:15:"	/*NOTREACHED*/";}i:81;a:3:{i:0;s:0:"";i:1;i:82;i:2;s:6:".Lhlt:";}i:82;a:3:{i:0;s:0:"";i:1;i:83;i:2;s:42:"	intel_chip_post_macro(0xee)	/* post fe */";}i:83;a:3:{i:0;s:0:"";i:1;i:84;i:2;s:4:"	hlt";}i:84;a:3:{i:0;s:0:"";i:1;i:85;i:2;s:10:"	jmp	.Lhlt";}i:85;a:3:{i:0;s:0:"";i:1;i:86;i:2;s:6:"#endif";}i:86;a:3:{i:0;s:0:"";i:1;i:87;i:2;b:0;}i:87;a:3:{i:0;s:0:"";i:1;i:88;i:2;b:0;}i:88;a:3:{i:0;s:0:"";i:1;i:89;i:2;s:31:"	.globl gdt, gdt_end, gdt_limit";}i:89;a:3:{i:0;s:0:"";i:1;i:90;i:2;b:0;}i:90;a:3:{i:0;s:0:"";i:1;i:91;i:2;s:59:"gdt_limit = gdt_end - gdt - 1 /* compute the table limit */";}i:91;a:3:{i:0;s:0:"";i:1;i:92;i:2;s:8:"gdtaddr:";}i:92;a:3:{i:0;s:0:"";i:1;i:93;i:2;s:16:"	.word	gdt_limit";}i:93;a:3:{i:0;s:0:"";i:1;i:94;i:2;s:50:"	.long	gdt                /* we know the offset */";}i:94;a:3:{i:0;s:0:"";i:1;i:95;i:2;b:0;}i:95;a:3:{i:0;s:0:"";i:1;i:96;i:2;s:4:"gdt:";}i:96;a:3:{i:0;s:0:"";i:1;i:97;i:2;s:11:"// selgdt 0";}i:97;a:3:{i:0;s:0:"";i:1;i:98;i:2;s:34:"	.word	0x0000, 0x0000		/* dummy */";}i:98;a:3:{i:0;s:0:"";i:1;i:99;i:2;s:29:"	.byte	0x00, 0x00, 0x00, 0x00";}i:99;a:3:{i:0;s:0:"";i:1;i:100;i:2;b:0;}i:100;a:3:{i:0;s:0:"";i:1;i:101;i:2;s:11:"// selgdt 8";}i:101;a:3:{i:0;s:0:"";i:1;i:102;i:2;s:34:"	.word	0x0000, 0x0000		/* dummy */";}i:102;a:3:{i:0;s:0:"";i:1;i:103;i:2;s:29:"	.byte	0x00, 0x00, 0x00, 0x00";}i:103;a:3:{i:0;s:0:"";i:1;i:104;i:2;b:0;}i:104;a:3:{i:0;s:0:"";i:1;i:105;i:2;s:15:"// selgdt 0x10 ";}i:105;a:3:{i:0;s:0:"";i:1;i:106;i:2;s:23:"/* flat code segment */";}i:106;a:3:{i:0;s:0:"";i:1;i:107;i:2;s:23:"	.word	0xffff, 0x0000		";}i:107;a:3:{i:0;s:0:"";i:1;i:108;i:2;s:30:"	.byte	0x00, 0x9b, 0xcf, 0x00	";}i:108;a:3:{i:0;s:0:"";i:1;i:109;i:2;s:1:"	";}i:109;a:3:{i:0;s:0:"";i:1;i:110;i:2;s:13:"//selgdt 0x18";}i:110;a:3:{i:0;s:0:"";i:1;i:111;i:2;s:23:"/* flat data segment */";}i:111;a:3:{i:0;s:0:"";i:1;i:112;i:2;s:23:"	.word	0xffff, 0x0000		";}i:112;a:3:{i:0;s:0:"";i:1;i:113;i:2;s:30:"	.byte	0x00, 0x93, 0xcf, 0x00	";}i:113;a:3:{i:0;s:0:"";i:1;i:114;i:2;b:0;}i:114;a:3:{i:0;s:0:"";i:1;i:115;i:2;s:13:"//selgdt 0x20";}i:115;a:3:{i:0;s:0:"";i:1;i:116;i:2;s:34:"	.word	0x0000, 0x0000		/* dummy */";}i:116;a:3:{i:0;s:0:"";i:1;i:117;i:2;s:29:"	.byte	0x00, 0x00, 0x00, 0x00";}i:117;a:3:{i:0;s:0:"";i:1;i:118;i:2;b:0;}i:118;a:3:{i:0;s:0:"";i:1;i:119;i:2;s:52:"#if defined(CONFIG_VGABIOS) && (CONFIG_VGABIOS == 1)";}i:119;a:3:{i:0;s:0:"";i:1;i:120;i:2;s:15:"	// from monty:";}i:120;a:3:{i:0;s:0:"";i:1;i:121;i:2;s:67:"	/* 0x00009a00,0000ffffULL,   20h: 16-bit 64k code at 0x00000000 */";}i:121;a:3:{i:0;s:0:"";i:1;i:122;i:2;s:74:"        /* 0x00009200,0000ffffULL    28h: 16-bit 64k data at 0x00000000 */";}i:122;a:3:{i:0;s:0:"";i:1;i:123;i:2;s:14:"// selgdt 0x28";}i:123;a:3:{i:0;s:0:"";i:1;i:124;i:2;s:34:"/*16-bit 64k code at 0x00000000 */";}i:124;a:3:{i:0;s:0:"";i:1;i:125;i:2;s:21:"	.word 0xffff, 0x0000";}i:125;a:3:{i:0;s:0:"";i:1;i:126;i:2;s:20:"	.byte 0, 0x9a, 0, 0";}i:126;a:3:{i:0;s:0:"";i:1;i:127;i:2;b:0;}i:127;a:3:{i:0;s:0:"";i:1;i:128;i:2;s:14:"// selgdt 0x30";}i:128;a:3:{i:0;s:0:"";i:1;i:129;i:2;s:34:"/*16-bit 64k data at 0x00000000 */";}i:129;a:3:{i:0;s:0:"";i:1;i:130;i:2;s:21:"	.word 0xffff, 0x0000";}i:130;a:3:{i:0;s:0:"";i:1;i:131;i:2;s:20:"	.byte 0, 0x92, 0, 0";}i:131;a:3:{i:0;s:0:"";i:1;i:132;i:2;s:58:"#endif // defined(CONFIG_VGABIOS) && (CONFIG_VGABIOS == 1)";}i:132;a:3:{i:0;s:0:"";i:1;i:133;i:2;s:8:"gdt_end:";}i:133;a:3:{i:0;s:0:"";i:1;i:134;i:2;b:0;}i:134;a:3:{i:0;s:0:"";i:1;i:135;i:2;s:7:".code32";}i:135;a:3:{i:0;s:1:"0";i:1;i:136;i:2;b:0;}}}s:10:"chunks_def";a:1:{i:0;a:2:{i:0;a:2:{i:0;s:1:"0";i:1;s:1:"0";}i:1;a:2:{i:0;s:1:"1";i:1;s:3:"135";}}}}} |