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);