40 lines
		
	
	
		
			862 B
		
	
	
	
		
			C
		
	
	
	
	
	
		
		
			
		
	
	
			40 lines
		
	
	
		
			862 B
		
	
	
	
		
			C
		
	
	
	
	
	
| 
								 | 
							
								#include "time32.h"
							 | 
						||
| 
								 | 
							
								#include <string.h>
							 | 
						||
| 
								 | 
							
								#include <stddef.h>
							 | 
						||
| 
								 | 
							
								#include <sys/resource.h>
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								struct compat_rusage {
							 | 
						||
| 
								 | 
							
									struct timeval32 ru_utime;
							 | 
						||
| 
								 | 
							
									struct timeval32 ru_stime;
							 | 
						||
| 
								 | 
							
									long	ru_maxrss;
							 | 
						||
| 
								 | 
							
									long	ru_ixrss;
							 | 
						||
| 
								 | 
							
									long	ru_idrss;
							 | 
						||
| 
								 | 
							
									long	ru_isrss;
							 | 
						||
| 
								 | 
							
									long	ru_minflt;
							 | 
						||
| 
								 | 
							
									long	ru_majflt;
							 | 
						||
| 
								 | 
							
									long	ru_nswap;
							 | 
						||
| 
								 | 
							
									long	ru_inblock;
							 | 
						||
| 
								 | 
							
									long	ru_oublock;
							 | 
						||
| 
								 | 
							
									long	ru_msgsnd;
							 | 
						||
| 
								 | 
							
									long	ru_msgrcv;
							 | 
						||
| 
								 | 
							
									long	ru_nsignals;
							 | 
						||
| 
								 | 
							
									long	ru_nvcsw;
							 | 
						||
| 
								 | 
							
									long	ru_nivcsw;
							 | 
						||
| 
								 | 
							
								};
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								int __getrusage_time32(int who, struct compat_rusage *usage)
							 | 
						||
| 
								 | 
							
								{
							 | 
						||
| 
								 | 
							
									struct rusage ru;
							 | 
						||
| 
								 | 
							
									int r = getrusage(who, &ru);
							 | 
						||
| 
								 | 
							
									if (!r) {
							 | 
						||
| 
								 | 
							
										usage->ru_utime.tv_sec = ru.ru_utime.tv_sec;
							 | 
						||
| 
								 | 
							
										usage->ru_utime.tv_usec = ru.ru_utime.tv_usec;
							 | 
						||
| 
								 | 
							
										usage->ru_stime.tv_sec = ru.ru_stime.tv_sec;
							 | 
						||
| 
								 | 
							
										usage->ru_stime.tv_usec = ru.ru_stime.tv_usec;
							 | 
						||
| 
								 | 
							
										memcpy(&usage->ru_maxrss, &ru.ru_maxrss,
							 | 
						||
| 
								 | 
							
											sizeof(struct compat_rusage) -
							 | 
						||
| 
								 | 
							
											offsetof(struct compat_rusage, ru_maxrss));
							 | 
						||
| 
								 | 
							
									}
							 | 
						||
| 
								 | 
							
									return r;
							 | 
						||
| 
								 | 
							
								}
							 |