 a7f290dad3
			
		
	
	
	a7f290dad3
	
	
	
		
			
			This patch moves the vdso's to arch/powerpc, adds support for the 32 bits vdso to the 32 bits kernel, rename systemcfg (finally !), and adds some new (still untested) routines to both vdso's: clock_gettime() with support for CLOCK_REALTIME and CLOCK_MONOTONIC, clock_getres() (same clocks) and get_tbfreq() for glibc to retreive the timebase frequency. Tom,Steve: The implementation of get_tbfreq() I've done for 32 bits returns a long long (r3, r4) not a long. This is such that if we ever add support for >4Ghz timebases on ppc32, the userland interface won't have to change. I have tested gettimeofday() using some glibc patches in both ppc32 and ppc64 kernels using 32 bits userland (I haven't had a chance to test a 64 bits userland yet, but the implementation didn't change and was tested earlier). I haven't tested yet the new functions. Signed-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org> Signed-off-by: Paul Mackerras <paulus@samba.org>
		
			
				
	
	
		
			25 lines
		
	
	
	
		
			739 B
			
		
	
	
	
		
			ArmAsm
		
	
	
	
	
	
			
		
		
	
	
			25 lines
		
	
	
	
		
			739 B
			
		
	
	
	
		
			ArmAsm
		
	
	
	
	
	
| /*
 | |
|  * This supplies .note.* sections to go into the PT_NOTE inside the vDSO text.
 | |
|  * Here we can supply some information useful to userland.
 | |
|  */
 | |
| 
 | |
| #include <linux/uts.h>
 | |
| #include <linux/version.h>
 | |
| 
 | |
| #define ASM_ELF_NOTE_BEGIN(name, flags, vendor, type)			      \
 | |
| 	.section name, flags;						      \
 | |
| 	.balign 4;							      \
 | |
| 	.long 1f - 0f;		/* name length */			      \
 | |
| 	.long 3f - 2f;		/* data length */			      \
 | |
| 	.long type;		/* note type */				      \
 | |
| 0:	.asciz vendor;		/* vendor name */			      \
 | |
| 1:	.balign 4;							      \
 | |
| 2:
 | |
| 
 | |
| #define ASM_ELF_NOTE_END						      \
 | |
| 3:	.balign 4;		/* pad out section */			      \
 | |
| 	.previous
 | |
| 
 | |
| 	ASM_ELF_NOTE_BEGIN(".note.kernel-version", "a", UTS_SYSNAME, 0)
 | |
| 	.long LINUX_VERSION_CODE
 | |
| 	ASM_ELF_NOTE_END
 |