aboutsummaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorPaul Eggert2012-04-21 18:27:10 -0700
committerPaul Eggert2012-04-21 18:27:10 -0700
commit5790543d1fa79f5302c2415fd0d3294796008eda (patch)
tree1fddb40f8f2a805231339e7683971fd1932cd665 /src
parent9ee7d8b93cb143b473e6dffb708e777bc6fe5bd0 (diff)
downloademacs-5790543d1fa79f5302c2415fd0d3294796008eda.tar.gz
emacs-5790543d1fa79f5302c2415fd0d3294796008eda.zip
* sysdep.c [__FreeBSD__]: Minor cleanups.
(list_system_processes, system_process_attributes) [__FreeBSD__]: Use Emacs indenting style more consistently. Avoid some casts. Use 'double' consistently rather than mixing 'float' and 'double'.
Diffstat (limited to 'src')
-rw-r--r--src/ChangeLog7
-rw-r--r--src/sysdep.c95
2 files changed, 56 insertions, 46 deletions
diff --git a/src/ChangeLog b/src/ChangeLog
index a2c68317434..549a5787a52 100644
--- a/src/ChangeLog
+++ b/src/ChangeLog
@@ -1,3 +1,10 @@
12012-04-22 Paul Eggert <eggert@cs.ucla.edu>
2
3 * sysdep.c [__FreeBSD__]: Minor cleanups.
4 (list_system_processes, system_process_attributes) [__FreeBSD__]:
5 Use Emacs indenting style more consistently. Avoid some casts.
6 Use 'double' consistently rather than mixing 'float' and 'double'.
7
12012-04-21 Eduard Wiebe <usenet@pusto.de> 82012-04-21 Eduard Wiebe <usenet@pusto.de>
2 9
3 * sysdep.c (list_system_processes, system_process_attributes): Add 10 * sysdep.c (list_system_processes, system_process_attributes): Add
diff --git a/src/sysdep.c b/src/sysdep.c
index fdc04f6655d..d33e7a21acc 100644
--- a/src/sysdep.c
+++ b/src/sysdep.c
@@ -2536,10 +2536,10 @@ list_system_processes (void)
2536 return proclist; 2536 return proclist;
2537} 2537}
2538 2538
2539#elif defined (__FreeBSD__) 2539#elif defined __FreeBSD__
2540 2540
2541Lisp_Object 2541Lisp_Object
2542list_system_processes () 2542list_system_processes (void)
2543{ 2543{
2544 int mib[] = {CTL_KERN, KERN_PROC, KERN_PROC_PROC}; 2544 int mib[] = {CTL_KERN, KERN_PROC, KERN_PROC_PROC};
2545 size_t len; 2545 size_t len;
@@ -2551,20 +2551,20 @@ list_system_processes ()
2551 2551
2552 if (sysctl (mib, 3, NULL, &len, NULL, 0) != 0) 2552 if (sysctl (mib, 3, NULL, &len, NULL, 0) != 0)
2553 return proclist; 2553 return proclist;
2554 2554
2555 procs = xmalloc (len); 2555 procs = xmalloc (len);
2556 if (sysctl (mib, 3, procs, &len, NULL, 0) != 0) 2556 if (sysctl (mib, 3, procs, &len, NULL, 0) != 0)
2557 { 2557 {
2558 xfree (procs); 2558 xfree (procs);
2559 return proclist; 2559 return proclist;
2560 } 2560 }
2561 2561
2562 GCPRO1 (proclist); 2562 GCPRO1 (proclist);
2563 len /= sizeof (struct kinfo_proc); 2563 len /= sizeof (struct kinfo_proc);
2564 for (i = 0; i < len; i++) 2564 for (i = 0; i < len; i++)
2565 proclist = Fcons (make_fixnum_or_float (procs[i].ki_pid), proclist); 2565 proclist = Fcons (make_fixnum_or_float (procs[i].ki_pid), proclist);
2566 UNGCPRO; 2566 UNGCPRO;
2567 2567
2568 xfree (procs); 2568 xfree (procs);
2569 2569
2570 return proclist; 2570 return proclist;
@@ -3120,13 +3120,13 @@ system_process_attributes (Lisp_Object pid)
3120 return attrs; 3120 return attrs;
3121} 3121}
3122 3122
3123#elif defined(__FreeBSD__) 3123#elif defined __FreeBSD__
3124 3124
3125Lisp_Object 3125Lisp_Object
3126system_process_attributes (Lisp_Object pid) 3126system_process_attributes (Lisp_Object pid)
3127{ 3127{
3128 int proc_id; 3128 int proc_id;
3129 int pagesize = getpagesize(); 3129 int pagesize = getpagesize ();
3130 int npages; 3130 int npages;
3131 int fscale; 3131 int fscale;
3132 struct passwd *pw; 3132 struct passwd *pw;
@@ -3135,33 +3135,33 @@ system_process_attributes (Lisp_Object pid)
3135 size_t len; 3135 size_t len;
3136 char args[MAXPATHLEN]; 3136 char args[MAXPATHLEN];
3137 EMACS_TIME t, now; 3137 EMACS_TIME t, now;
3138 3138
3139 int mib[4] = {CTL_KERN, KERN_PROC, KERN_PROC_PID}; 3139 int mib[4] = {CTL_KERN, KERN_PROC, KERN_PROC_PID};
3140 struct kinfo_proc proc; 3140 struct kinfo_proc proc;
3141 size_t proclen = sizeof(proc); 3141 size_t proclen = sizeof proc;
3142 3142
3143 struct gcpro gcpro1, gcpro2; 3143 struct gcpro gcpro1, gcpro2;
3144 Lisp_Object attrs = Qnil; 3144 Lisp_Object attrs = Qnil;
3145 Lisp_Object decoded_comm; 3145 Lisp_Object decoded_comm;
3146 3146
3147 CHECK_NUMBER_OR_FLOAT (pid); 3147 CHECK_NUMBER_OR_FLOAT (pid);
3148 proc_id = FLOATP (pid) ? XFLOAT_DATA (pid) : XINT (pid); 3148 proc_id = FLOATP (pid) ? XFLOAT_DATA (pid) : XINT (pid);
3149 mib[3] = proc_id; 3149 mib[3] = proc_id;
3150 3150
3151 if (sysctl (mib, 4, &proc, &proclen, NULL, 0) != 0) 3151 if (sysctl (mib, 4, &proc, &proclen, NULL, 0) != 0)
3152 return attrs; 3152 return attrs;
3153 3153
3154 GCPRO2 (attrs, decoded_comm); 3154 GCPRO2 (attrs, decoded_comm);
3155 3155
3156 attrs = Fcons (Fcons (Qeuid, make_fixnum_or_float(proc.ki_uid)), attrs); 3156 attrs = Fcons (Fcons (Qeuid, make_fixnum_or_float (proc.ki_uid)), attrs);
3157 3157
3158 BLOCK_INPUT; 3158 BLOCK_INPUT;
3159 pw = getpwuid (proc.ki_uid); 3159 pw = getpwuid (proc.ki_uid);
3160 UNBLOCK_INPUT; 3160 UNBLOCK_INPUT;
3161 if (pw) 3161 if (pw)
3162 attrs = Fcons (Fcons (Quser, build_string (pw->pw_name)), attrs); 3162 attrs = Fcons (Fcons (Quser, build_string (pw->pw_name)), attrs);
3163 3163
3164 attrs = Fcons (Fcons (Qegid, make_fixnum_or_float(proc.ki_svgid)), attrs); 3164 attrs = Fcons (Fcons (Qegid, make_fixnum_or_float (proc.ki_svgid)), attrs);
3165 3165
3166 BLOCK_INPUT; 3166 BLOCK_INPUT;
3167 gr = getgrgid (proc.ki_svgid); 3167 gr = getgrgid (proc.ki_svgid);
@@ -3172,7 +3172,7 @@ system_process_attributes (Lisp_Object pid)
3172 decoded_comm = code_convert_string_norecord 3172 decoded_comm = code_convert_string_norecord
3173 (make_unibyte_string (proc.ki_comm, strlen (proc.ki_comm)), 3173 (make_unibyte_string (proc.ki_comm, strlen (proc.ki_comm)),
3174 Vlocale_coding_system, 0); 3174 Vlocale_coding_system, 0);
3175 3175
3176 attrs = Fcons (Fcons (Qcomm, decoded_comm), attrs); 3176 attrs = Fcons (Fcons (Qcomm, decoded_comm), attrs);
3177 { 3177 {
3178 char state[2] = {'\0', '\0'}; 3178 char state[2] = {'\0', '\0'};
@@ -3185,7 +3185,7 @@ system_process_attributes (Lisp_Object pid)
3185 case SSLEEP: 3185 case SSLEEP:
3186 state[0] = 'S'; 3186 state[0] = 'S';
3187 break; 3187 break;
3188 3188
3189 case SLOCK: 3189 case SLOCK:
3190 state[0] = 'D'; 3190 state[0] = 'D';
3191 break; 3191 break;
@@ -3193,14 +3193,14 @@ system_process_attributes (Lisp_Object pid)
3193 case SZOMB: 3193 case SZOMB:
3194 state[0] = 'Z'; 3194 state[0] = 'Z';
3195 break; 3195 break;
3196 3196
3197 case SSTOP: 3197 case SSTOP:
3198 state[0] = 'T'; 3198 state[0] = 'T';
3199 break; 3199 break;
3200 } 3200 }
3201 attrs = Fcons (Fcons (Qstate, build_string (state)), attrs); 3201 attrs = Fcons (Fcons (Qstate, build_string (state)), attrs);
3202 } 3202 }
3203 3203
3204 attrs = Fcons (Fcons (Qppid, make_fixnum_or_float (proc.ki_ppid)), attrs); 3204 attrs = Fcons (Fcons (Qppid, make_fixnum_or_float (proc.ki_ppid)), attrs);
3205 attrs = Fcons (Fcons (Qpgrp, make_fixnum_or_float (proc.ki_pgid)), attrs); 3205 attrs = Fcons (Fcons (Qpgrp, make_fixnum_or_float (proc.ki_pgid)), attrs);
3206 attrs = Fcons (Fcons (Qsess, make_fixnum_or_float (proc.ki_sid)), attrs); 3206 attrs = Fcons (Fcons (Qsess, make_fixnum_or_float (proc.ki_sid)), attrs);
@@ -3210,7 +3210,7 @@ system_process_attributes (Lisp_Object pid)
3210 UNBLOCK_INPUT; 3210 UNBLOCK_INPUT;
3211 if (ttyname) 3211 if (ttyname)
3212 attrs = Fcons (Fcons (Qtty, build_string (ttyname)), attrs); 3212 attrs = Fcons (Fcons (Qtty, build_string (ttyname)), attrs);
3213 3213
3214 attrs = Fcons (Fcons (Qtpgid, make_fixnum_or_float (proc.ki_tpgid)), attrs); 3214 attrs = Fcons (Fcons (Qtpgid, make_fixnum_or_float (proc.ki_tpgid)), attrs);
3215 attrs = Fcons (Fcons (Qminflt, make_fixnum_or_float (proc.ki_rusage.ru_minflt)), attrs); 3215 attrs = Fcons (Fcons (Qminflt, make_fixnum_or_float (proc.ki_rusage.ru_minflt)), attrs);
3216 attrs = Fcons (Fcons (Qmajflt, make_fixnum_or_float (proc.ki_rusage.ru_majflt)), attrs); 3216 attrs = Fcons (Fcons (Qmajflt, make_fixnum_or_float (proc.ki_rusage.ru_majflt)), attrs);
@@ -3222,50 +3222,52 @@ system_process_attributes (Lisp_Object pid)
3222 make_number (EMACS_SECS (ts) & 0xffff), \ 3222 make_number (EMACS_SECS (ts) & 0xffff), \
3223 make_number (EMACS_USECS (ts))) 3223 make_number (EMACS_USECS (ts)))
3224 3224
3225 attrs = Fcons (Fcons (Qutime, TIMELIST(proc.ki_rusage.ru_utime)), attrs); 3225 attrs = Fcons (Fcons (Qutime, TIMELIST (proc.ki_rusage.ru_utime)), attrs);
3226 attrs = Fcons (Fcons (Qstime, TIMELIST(proc.ki_rusage.ru_stime)), attrs); 3226 attrs = Fcons (Fcons (Qstime, TIMELIST (proc.ki_rusage.ru_stime)), attrs);
3227 EMACS_ADD_TIME (t, proc.ki_rusage.ru_utime, proc.ki_rusage.ru_stime); 3227 EMACS_ADD_TIME (t, proc.ki_rusage.ru_utime, proc.ki_rusage.ru_stime);
3228 attrs = Fcons (Fcons (Qtime, TIMELIST(t)), attrs); 3228 attrs = Fcons (Fcons (Qtime, TIMELIST (t)), attrs);
3229 3229
3230 attrs = Fcons (Fcons (Qcutime, TIMELIST(proc.ki_rusage_ch.ru_utime)), attrs); 3230 attrs = Fcons (Fcons (Qcutime, TIMELIST (proc.ki_rusage_ch.ru_utime)), attrs);
3231 attrs = Fcons (Fcons (Qcstime, TIMELIST(proc.ki_rusage_ch.ru_utime)), attrs); 3231 attrs = Fcons (Fcons (Qcstime, TIMELIST (proc.ki_rusage_ch.ru_utime)), attrs);
3232 EMACS_ADD_TIME (t, proc.ki_rusage_ch.ru_utime, proc.ki_rusage_ch.ru_stime); 3232 EMACS_ADD_TIME (t, proc.ki_rusage_ch.ru_utime, proc.ki_rusage_ch.ru_stime);
3233 attrs = Fcons (Fcons (Qctime, TIMELIST(t)), attrs); 3233 attrs = Fcons (Fcons (Qctime, TIMELIST (t)), attrs);
3234 3234
3235 attrs = Fcons (Fcons (Qthcount, make_fixnum_or_float (proc.ki_numthreads)), attrs); 3235 attrs = Fcons (Fcons (Qthcount, make_fixnum_or_float (proc.ki_numthreads)),
3236 attrs);
3236 attrs = Fcons (Fcons (Qpri, make_number (proc.ki_pri.pri_native)), attrs); 3237 attrs = Fcons (Fcons (Qpri, make_number (proc.ki_pri.pri_native)), attrs);
3237 attrs = Fcons (Fcons (Qnice, make_number (proc.ki_nice)), attrs); 3238 attrs = Fcons (Fcons (Qnice, make_number (proc.ki_nice)), attrs);
3238 attrs = Fcons (Fcons (Qstart, TIMELIST(proc.ki_start)), attrs); 3239 attrs = Fcons (Fcons (Qstart, TIMELIST (proc.ki_start)), attrs);
3239 attrs = Fcons (Fcons (Qvsize, make_number (proc.ki_size >> 10)), attrs); 3240 attrs = Fcons (Fcons (Qvsize, make_number (proc.ki_size >> 10)), attrs);
3240 attrs = Fcons (Fcons (Qrss, make_number (proc.ki_rssize * pagesize >> 10)), attrs); 3241 attrs = Fcons (Fcons (Qrss, make_number (proc.ki_rssize * pagesize >> 10)),
3242 attrs);
3241 3243
3242 EMACS_GET_TIME (now); 3244 EMACS_GET_TIME (now);
3243 EMACS_SUB_TIME (t, now, proc.ki_start); 3245 EMACS_SUB_TIME (t, now, proc.ki_start);
3244 attrs = Fcons (Fcons (Qetime, TIMELIST(t)), attrs); 3246 attrs = Fcons (Fcons (Qetime, TIMELIST (t)), attrs);
3245 3247
3246#undef TIMELIST 3248#undef TIMELIST
3247 3249
3248 len = sizeof(fscale); 3250 len = sizeof fscale;
3249 if (sysctlbyname ("kern.fscale", &fscale, &len, NULL, 0) == 0) 3251 if (sysctlbyname ("kern.fscale", &fscale, &len, NULL, 0) == 0)
3250 { 3252 {
3251 float pcpu; 3253 double pcpu;
3252 fixpt_t ccpu; 3254 fixpt_t ccpu;
3253 len = sizeof (ccpu); 3255 len = sizeof ccpu;
3254 if (sysctlbyname ("kern.ccpu", &ccpu, &len, NULL, 0) == 0) 3256 if (sysctlbyname ("kern.ccpu", &ccpu, &len, NULL, 0) == 0)
3255 { 3257 {
3256 pcpu = 100.0 * ((double) proc.ki_pctcpu / fscale) 3258 pcpu = (100.0 * proc.ki_pctcpu / fscale
3257 / (1.0 - exp(proc.ki_swtime * log((double) ccpu / fscale))); 3259 / (1 - exp (proc.ki_swtime * log ((double) ccpu / fscale))));
3258 attrs = Fcons (Fcons (Qpcpu, make_fixnum_or_float(pcpu)), attrs); 3260 attrs = Fcons (Fcons (Qpcpu, make_fixnum_or_float (pcpu)), attrs);
3259 } 3261 }
3260 } 3262 }
3261 3263
3262 len = sizeof(npages); 3264 len = sizeof npages;
3263 if (sysctlbyname ("hw.availpages", &npages, &len, NULL, 0) == 0) 3265 if (sysctlbyname ("hw.availpages", &npages, &len, NULL, 0) == 0)
3264 { 3266 {
3265 float pmem = proc.ki_flag & P_INMEM 3267 double pmem = (proc.ki_flag & P_INMEM
3266 ? 100.0 * ((float) proc.ki_rssize / npages) 3268 ? 100.0 * proc.ki_rssize / npages
3267 : 0.0; 3269 : 0);
3268 attrs = Fcons (Fcons (Qpmem, make_fixnum_or_float(pmem)), attrs); 3270 attrs = Fcons (Fcons (Qpmem, make_fixnum_or_float (pmem)), attrs);
3269 } 3271 }
3270 3272
3271 mib[2] = KERN_PROC_ARGS; 3273 mib[2] = KERN_PROC_ARGS;
@@ -3279,13 +3281,14 @@ system_process_attributes (Lisp_Object pid)
3279 args[i] = ' '; 3281 args[i] = ' ';
3280 } 3282 }
3281 3283
3282 decoded_comm = code_convert_string_norecord 3284 decoded_comm =
3283 (make_unibyte_string (args, strlen (args)), 3285 (code_convert_string_norecord
3284 Vlocale_coding_system, 0); 3286 (make_unibyte_string (args, strlen (args)),
3287 Vlocale_coding_system, 0));
3285 3288
3286 attrs = Fcons (Fcons (Qargs, decoded_comm), attrs); 3289 attrs = Fcons (Fcons (Qargs, decoded_comm), attrs);
3287 } 3290 }
3288 3291
3289 UNGCPRO; 3292 UNGCPRO;
3290 return attrs; 3293 return attrs;
3291} 3294}