diff options
| author | Paul Eggert | 2012-04-21 18:27:10 -0700 |
|---|---|---|
| committer | Paul Eggert | 2012-04-21 18:27:10 -0700 |
| commit | 5790543d1fa79f5302c2415fd0d3294796008eda (patch) | |
| tree | 1fddb40f8f2a805231339e7683971fd1932cd665 /src | |
| parent | 9ee7d8b93cb143b473e6dffb708e777bc6fe5bd0 (diff) | |
| download | emacs-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/ChangeLog | 7 | ||||
| -rw-r--r-- | src/sysdep.c | 95 |
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 @@ | |||
| 1 | 2012-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 | |||
| 1 | 2012-04-21 Eduard Wiebe <usenet@pusto.de> | 8 | 2012-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 | ||
| 2541 | Lisp_Object | 2541 | Lisp_Object |
| 2542 | list_system_processes () | 2542 | list_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 | ||
| 3125 | Lisp_Object | 3125 | Lisp_Object |
| 3126 | system_process_attributes (Lisp_Object pid) | 3126 | system_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 | } |