Mercurial > emacs
comparison src/process.c @ 97405:58e6e58841ce
(procfs_system_process_attributes): Use EMACS_INTs to silence gcc
"limited range of data type" warnings in some make_fixnum_or_float calls.
author | Glenn Morris <rgm@gnu.org> |
---|---|
date | Sun, 10 Aug 2008 22:44:25 +0000 |
parents | 115891550745 |
children | e4a1b306a650 |
comparison
equal
deleted
inserted
replaced
97404:4b2fa911beae | 97405:58e6e58841ce |
---|---|
7258 EMACS_TIME tnow, tstart, tboot, telapsed,ttotal; | 7258 EMACS_TIME tnow, tstart, tboot, telapsed,ttotal; |
7259 double pcpu, pmem; | 7259 double pcpu, pmem; |
7260 Lisp_Object attrs = Qnil; | 7260 Lisp_Object attrs = Qnil; |
7261 Lisp_Object cmd_str, decoded_cmd, tem; | 7261 Lisp_Object cmd_str, decoded_cmd, tem; |
7262 struct gcpro gcpro1, gcpro2; | 7262 struct gcpro gcpro1, gcpro2; |
7263 EMACS_INT uid_eint, gid_eint; | |
7263 | 7264 |
7264 CHECK_NUMBER_OR_FLOAT (pid); | 7265 CHECK_NUMBER_OR_FLOAT (pid); |
7265 proc_id = FLOATP (pid) ? XFLOAT_DATA (pid) : XINT (pid); | 7266 proc_id = FLOATP (pid) ? XFLOAT_DATA (pid) : XINT (pid); |
7266 sprintf (procfn, "/proc/%lu", proc_id); | 7267 sprintf (procfn, "/proc/%lu", proc_id); |
7267 if (stat (procfn, &st) < 0) | 7268 if (stat (procfn, &st) < 0) |
7269 | 7270 |
7270 GCPRO2 (attrs, decoded_cmd); | 7271 GCPRO2 (attrs, decoded_cmd); |
7271 | 7272 |
7272 /* euid egid */ | 7273 /* euid egid */ |
7273 uid = st.st_uid; | 7274 uid = st.st_uid; |
7274 attrs = Fcons (Fcons (Qeuid, make_fixnum_or_float (uid)), attrs); | 7275 /* Use of EMACS_INT stops GCC whining about limited range of data type. */ |
7276 uid_eint = uid; | |
7277 attrs = Fcons (Fcons (Qeuid, make_fixnum_or_float (uid_eint)), attrs); | |
7275 BLOCK_INPUT; | 7278 BLOCK_INPUT; |
7276 pw = (struct passwd *) getpwuid (uid); | 7279 pw = (struct passwd *) getpwuid (uid); |
7277 UNBLOCK_INPUT; | 7280 UNBLOCK_INPUT; |
7278 if (pw) | 7281 if (pw) |
7279 attrs = Fcons (Fcons (Quser, build_string (pw->pw_name)), attrs); | 7282 attrs = Fcons (Fcons (Quser, build_string (pw->pw_name)), attrs); |
7280 | 7283 |
7281 gid = st.st_gid; | 7284 gid = st.st_gid; |
7282 attrs = Fcons (Fcons (Qegid, make_fixnum_or_float (gid)), attrs); | 7285 gid_eint = gid; |
7286 attrs = Fcons (Fcons (Qegid, make_fixnum_or_float (gid_eint)), attrs); | |
7283 BLOCK_INPUT; | 7287 BLOCK_INPUT; |
7284 gr = (struct group *) getgrgid (gid); | 7288 gr = (struct group *) getgrgid (gid); |
7285 UNBLOCK_INPUT; | 7289 UNBLOCK_INPUT; |
7286 if (gr) | 7290 if (gr) |
7287 attrs = Fcons (Fcons (Qgroup, build_string (gr->gr_name)), attrs); | 7291 attrs = Fcons (Fcons (Qgroup, build_string (gr->gr_name)), attrs); |
7311 Vlocale_coding_system, 0); | 7315 Vlocale_coding_system, 0); |
7312 attrs = Fcons (Fcons (Qcomm, decoded_cmd), attrs); | 7316 attrs = Fcons (Fcons (Qcomm, decoded_cmd), attrs); |
7313 | 7317 |
7314 if (q) | 7318 if (q) |
7315 { | 7319 { |
7320 EMACS_INT ppid_eint, pgrp_eint, sess_eint, tpgid_eint, thcount_eint; | |
7316 p = q + 2; | 7321 p = q + 2; |
7317 /* state ppid pgrp sess tty tpgid . minflt cminflt majflt cmajflt utime stime cutime cstime priority nice thcount . start vsize rss */ | 7322 /* state ppid pgrp sess tty tpgid . minflt cminflt majflt cmajflt utime stime cutime cstime priority nice thcount . start vsize rss */ |
7318 sscanf (p, "%c %d %d %d %d %d %*u %lu %lu %lu %lu %Lu %Lu %Lu %Lu %ld %ld %d %*d %Lu %lu %ld", | 7323 sscanf (p, "%c %d %d %d %d %d %*u %lu %lu %lu %lu %Lu %Lu %Lu %Lu %ld %ld %d %*d %Lu %lu %ld", |
7319 &c, &ppid, &pgrp, &sess, &tty, &tpgid, | 7324 &c, &ppid, &pgrp, &sess, &tty, &tpgid, |
7320 &minflt, &cminflt, &majflt, &cmajflt, | 7325 &minflt, &cminflt, &majflt, &cmajflt, |
7326 state_str[0] = c; | 7331 state_str[0] = c; |
7327 state_str[1] = '\0'; | 7332 state_str[1] = '\0'; |
7328 tem = build_string (state_str); | 7333 tem = build_string (state_str); |
7329 attrs = Fcons (Fcons (Qstate, tem), attrs); | 7334 attrs = Fcons (Fcons (Qstate, tem), attrs); |
7330 } | 7335 } |
7331 attrs = Fcons (Fcons (Qppid, make_fixnum_or_float (ppid)), attrs); | 7336 /* Stops GCC whining about limited range of data type. */ |
7332 attrs = Fcons (Fcons (Qpgrp, make_fixnum_or_float (pgrp)), attrs); | 7337 ppid_eint = ppid; |
7333 attrs = Fcons (Fcons (Qsess, make_fixnum_or_float (sess)), attrs); | 7338 pgrp_eint = pgrp; |
7339 sess_eint = sess; | |
7340 tpgid_eint = tpgid; | |
7341 thcount_eint = thcount; | |
7342 attrs = Fcons (Fcons (Qppid, make_fixnum_or_float (ppid_eint)), attrs); | |
7343 attrs = Fcons (Fcons (Qpgrp, make_fixnum_or_float (pgrp_eint)), attrs); | |
7344 attrs = Fcons (Fcons (Qsess, make_fixnum_or_float (sess_eint)), attrs); | |
7334 attrs = Fcons (Fcons (Qttname, procfs_ttyname (tty)), attrs); | 7345 attrs = Fcons (Fcons (Qttname, procfs_ttyname (tty)), attrs); |
7335 attrs = Fcons (Fcons (Qtpgid, make_fixnum_or_float (tpgid)), attrs); | 7346 attrs = Fcons (Fcons (Qtpgid, make_fixnum_or_float (tpgid_eint)), attrs); |
7336 attrs = Fcons (Fcons (Qminflt, make_fixnum_or_float (minflt)), attrs); | 7347 attrs = Fcons (Fcons (Qminflt, make_fixnum_or_float (minflt)), attrs); |
7337 attrs = Fcons (Fcons (Qmajflt, make_fixnum_or_float (majflt)), attrs); | 7348 attrs = Fcons (Fcons (Qmajflt, make_fixnum_or_float (majflt)), attrs); |
7338 attrs = Fcons (Fcons (Qcminflt, make_fixnum_or_float (cminflt)), attrs); | 7349 attrs = Fcons (Fcons (Qcminflt, make_fixnum_or_float (cminflt)), attrs); |
7339 attrs = Fcons (Fcons (Qcmajflt, make_fixnum_or_float (cmajflt)), attrs); | 7350 attrs = Fcons (Fcons (Qcmajflt, make_fixnum_or_float (cmajflt)), attrs); |
7340 clocks_per_sec = sysconf (_SC_CLK_TCK); | 7351 clocks_per_sec = sysconf (_SC_CLK_TCK); |
7352 attrs = Fcons (Fcons (Qcstime, | 7363 attrs = Fcons (Fcons (Qcstime, |
7353 ltime_from_jiffies (cstime, clocks_per_sec)), | 7364 ltime_from_jiffies (cstime, clocks_per_sec)), |
7354 attrs); | 7365 attrs); |
7355 attrs = Fcons (Fcons (Qpri, make_number (priority)), attrs); | 7366 attrs = Fcons (Fcons (Qpri, make_number (priority)), attrs); |
7356 attrs = Fcons (Fcons (Qnice, make_number (nice)), attrs); | 7367 attrs = Fcons (Fcons (Qnice, make_number (nice)), attrs); |
7357 attrs = Fcons (Fcons (Qthcount, make_fixnum_or_float (thcount)), attrs); | 7368 attrs = Fcons (Fcons (Qthcount, make_fixnum_or_float (thcount_eint)), attrs); |
7358 EMACS_GET_TIME (tnow); | 7369 EMACS_GET_TIME (tnow); |
7359 get_up_time (&sec, &usec); | 7370 get_up_time (&sec, &usec); |
7360 EMACS_SET_SECS (telapsed, sec); | 7371 EMACS_SET_SECS (telapsed, sec); |
7361 EMACS_SET_USECS (telapsed, usec); | 7372 EMACS_SET_USECS (telapsed, usec); |
7362 EMACS_SUB_TIME (tboot, tnow, telapsed); | 7373 EMACS_SUB_TIME (tboot, tnow, telapsed); |