mirror of
				https://git.proxmox.com/git/grub2
				synced 2025-10-31 13:55:51 +00:00 
			
		
		
		
	Add clock
This commit is contained in:
		
							parent
							
								
									52d67f54e0
								
							
						
					
					
						commit
						d114e89ca8
					
				| @ -62,8 +62,6 @@ grub_uint64_t grub_mmap_get_upper (void); | ||||
| 
 | ||||
| extern grub_uint32_t EXPORT_VAR (grub_arch_memsize); | ||||
| extern grub_uint32_t EXPORT_VAR (grub_arch_highmemsize); | ||||
| extern grub_uint32_t EXPORT_VAR (grub_arch_busclock); | ||||
| extern grub_uint32_t EXPORT_VAR (grub_arch_cpuclock); | ||||
| 
 | ||||
| #endif | ||||
| 
 | ||||
|  | ||||
| @ -21,10 +21,13 @@ | ||||
| 
 | ||||
| #include <grub/symbol.h> | ||||
| 
 | ||||
| #define GRUB_TICKS_PER_SECOND	1000 | ||||
| #define GRUB_TICKS_PER_SECOND	(grub_arch_cpuclock / 2) | ||||
| 
 | ||||
| /* Return the real time in ticks.  */ | ||||
| grub_uint32_t EXPORT_FUNC (grub_get_rtc) (void); | ||||
| grub_uint64_t EXPORT_FUNC (grub_get_rtc) (void); | ||||
| 
 | ||||
| extern grub_uint32_t EXPORT_VAR (grub_arch_busclock); | ||||
| extern grub_uint32_t EXPORT_VAR (grub_arch_cpuclock); | ||||
| 
 | ||||
| static inline void | ||||
| grub_cpu_idle(void) | ||||
|  | ||||
| @ -23,7 +23,7 @@ | ||||
| #include <grub/symbol.h> | ||||
| #include <grub/cpu/time.h> | ||||
| 
 | ||||
| #ifdef GRUB_MACHINE_EMU | ||||
| #if defined (GRUB_MACHINE_EMU) || defined (GRUB_UTIL) | ||||
| #define GRUB_TICKS_PER_SECOND 100000 | ||||
| #else | ||||
| #include <grub/machine/time.h> | ||||
|  | ||||
| @ -28,12 +28,20 @@ | ||||
| #include <grub/machine/memory.h> | ||||
| #include <grub/cpu/kernel.h> | ||||
| 
 | ||||
| grub_uint32_t | ||||
| /* FIXME: use interrupt to count high.  */ | ||||
| grub_uint64_t | ||||
| grub_get_rtc (void) | ||||
| { | ||||
|   static grub_uint64_t calln = 0; | ||||
|   static grub_uint32_t high = 0; | ||||
|   static grub_uint32_t last = 0; | ||||
|   grub_uint32_t low; | ||||
| 
 | ||||
|   return (calln++) >> 8; | ||||
|   asm volatile ("mfc0 %0, $9": "=r" (low)); | ||||
|   if (low < last) | ||||
|     high++; | ||||
|   last = low; | ||||
| 
 | ||||
|   return (((grub_uint64_t) high) << 32) | low; | ||||
| } | ||||
| 
 | ||||
| grub_err_t | ||||
|  | ||||
| @ -30,6 +30,7 @@ | ||||
| 
 | ||||
| /* For frequencies.  */ | ||||
| #include <grub/pci.h> | ||||
| #include <grub/machine/time.h> | ||||
| 
 | ||||
| #define ELF32_LOADMASK (0x00000000UL) | ||||
| #define ELF64_LOADMASK (0x0000000000000000ULL) | ||||
|  | ||||
		Loading…
	
		Reference in New Issue
	
	Block a user
	 Vladimir 'phcoder' Serbinenko
						Vladimir 'phcoder' Serbinenko