annotate src/DLD-FUNCTIONS/getrusage.cc @ 10840:89f4d7e294cc

Grammarcheck .cc files
author Rik <octave@nomad.inbox5.com>
date Sat, 31 Jul 2010 11:18:11 -0700
parents fa7b5751730c
children e9966851619b
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
2928
295f037b4b3e [project @ 1997-05-05 05:32:33 by jwe]
jwe
parents:
diff changeset
1 /*
295f037b4b3e [project @ 1997-05-05 05:32:33 by jwe]
jwe
parents:
diff changeset
2
8920
eb63fbe60fab update copyright notices
John W. Eaton <jwe@octave.org>
parents: 8319
diff changeset
3 Copyright (C) 1996, 1997, 1998, 1999, 2002, 2003, 2005, 2006, 2007, 2008
7017
a1dbe9d80eee [project @ 2007-10-12 21:27:11 by jwe]
jwe
parents: 7016
diff changeset
4 John W. Eaton
2928
295f037b4b3e [project @ 1997-05-05 05:32:33 by jwe]
jwe
parents:
diff changeset
5
295f037b4b3e [project @ 1997-05-05 05:32:33 by jwe]
jwe
parents:
diff changeset
6 This file is part of Octave.
295f037b4b3e [project @ 1997-05-05 05:32:33 by jwe]
jwe
parents:
diff changeset
7
295f037b4b3e [project @ 1997-05-05 05:32:33 by jwe]
jwe
parents:
diff changeset
8 Octave is free software; you can redistribute it and/or modify it
295f037b4b3e [project @ 1997-05-05 05:32:33 by jwe]
jwe
parents:
diff changeset
9 under the terms of the GNU General Public License as published by the
7016
93c65f2a5668 [project @ 2007-10-12 06:40:56 by jwe]
jwe
parents: 6360
diff changeset
10 Free Software Foundation; either version 3 of the License, or (at your
93c65f2a5668 [project @ 2007-10-12 06:40:56 by jwe]
jwe
parents: 6360
diff changeset
11 option) any later version.
2928
295f037b4b3e [project @ 1997-05-05 05:32:33 by jwe]
jwe
parents:
diff changeset
12
295f037b4b3e [project @ 1997-05-05 05:32:33 by jwe]
jwe
parents:
diff changeset
13 Octave is distributed in the hope that it will be useful, but WITHOUT
295f037b4b3e [project @ 1997-05-05 05:32:33 by jwe]
jwe
parents:
diff changeset
14 ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
295f037b4b3e [project @ 1997-05-05 05:32:33 by jwe]
jwe
parents:
diff changeset
15 FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
295f037b4b3e [project @ 1997-05-05 05:32:33 by jwe]
jwe
parents:
diff changeset
16 for more details.
295f037b4b3e [project @ 1997-05-05 05:32:33 by jwe]
jwe
parents:
diff changeset
17
295f037b4b3e [project @ 1997-05-05 05:32:33 by jwe]
jwe
parents:
diff changeset
18 You should have received a copy of the GNU General Public License
7016
93c65f2a5668 [project @ 2007-10-12 06:40:56 by jwe]
jwe
parents: 6360
diff changeset
19 along with Octave; see the file COPYING. If not, see
93c65f2a5668 [project @ 2007-10-12 06:40:56 by jwe]
jwe
parents: 6360
diff changeset
20 <http://www.gnu.org/licenses/>.
2928
295f037b4b3e [project @ 1997-05-05 05:32:33 by jwe]
jwe
parents:
diff changeset
21
295f037b4b3e [project @ 1997-05-05 05:32:33 by jwe]
jwe
parents:
diff changeset
22 */
295f037b4b3e [project @ 1997-05-05 05:32:33 by jwe]
jwe
parents:
diff changeset
23
295f037b4b3e [project @ 1997-05-05 05:32:33 by jwe]
jwe
parents:
diff changeset
24 #ifdef HAVE_CONFIG_H
295f037b4b3e [project @ 1997-05-05 05:32:33 by jwe]
jwe
parents:
diff changeset
25 #include <config.h>
295f037b4b3e [project @ 1997-05-05 05:32:33 by jwe]
jwe
parents:
diff changeset
26 #endif
295f037b4b3e [project @ 1997-05-05 05:32:33 by jwe]
jwe
parents:
diff changeset
27
10240
fa7b5751730c use gnulib time, sys_time, and sys_times modules
John W. Eaton <jwe@octave.org>
parents: 10182
diff changeset
28 #include <sys/time.h>
fa7b5751730c use gnulib time, sys_time, and sys_times modules
John W. Eaton <jwe@octave.org>
parents: 10182
diff changeset
29 #include <sys/times.h>
3176
fccab8e7d35f [project @ 1998-05-18 20:33:31 by jwe]
jwe
parents: 3014
diff changeset
30 #include <sys/types.h>
fccab8e7d35f [project @ 1998-05-18 20:33:31 by jwe]
jwe
parents: 3014
diff changeset
31
2928
295f037b4b3e [project @ 1997-05-05 05:32:33 by jwe]
jwe
parents:
diff changeset
32 #ifdef HAVE_SYS_RESOURCE_H
295f037b4b3e [project @ 1997-05-05 05:32:33 by jwe]
jwe
parents:
diff changeset
33 #include <sys/resource.h>
295f037b4b3e [project @ 1997-05-05 05:32:33 by jwe]
jwe
parents:
diff changeset
34 #endif
295f037b4b3e [project @ 1997-05-05 05:32:33 by jwe]
jwe
parents:
diff changeset
35
295f037b4b3e [project @ 1997-05-05 05:32:33 by jwe]
jwe
parents:
diff changeset
36 #if defined (HAVE_SYS_PARAM_H)
295f037b4b3e [project @ 1997-05-05 05:32:33 by jwe]
jwe
parents:
diff changeset
37 #include <sys/param.h>
295f037b4b3e [project @ 1997-05-05 05:32:33 by jwe]
jwe
parents:
diff changeset
38 #endif
10240
fa7b5751730c use gnulib time, sys_time, and sys_times modules
John W. Eaton <jwe@octave.org>
parents: 10182
diff changeset
39
fa7b5751730c use gnulib time, sys_time, and sys_times modules
John W. Eaton <jwe@octave.org>
parents: 10182
diff changeset
40 #include "defun-dld.h"
fa7b5751730c use gnulib time, sys_time, and sys_times modules
John W. Eaton <jwe@octave.org>
parents: 10182
diff changeset
41 #include "oct-map.h"
fa7b5751730c use gnulib time, sys_time, and sys_times modules
John W. Eaton <jwe@octave.org>
parents: 10182
diff changeset
42 #include "sysdep.h"
fa7b5751730c use gnulib time, sys_time, and sys_times modules
John W. Eaton <jwe@octave.org>
parents: 10182
diff changeset
43 #include "ov.h"
fa7b5751730c use gnulib time, sys_time, and sys_times modules
John W. Eaton <jwe@octave.org>
parents: 10182
diff changeset
44 #include "oct-obj.h"
fa7b5751730c use gnulib time, sys_time, and sys_times modules
John W. Eaton <jwe@octave.org>
parents: 10182
diff changeset
45 #include "utils.h"
2928
295f037b4b3e [project @ 1997-05-05 05:32:33 by jwe]
jwe
parents:
diff changeset
46
295f037b4b3e [project @ 1997-05-05 05:32:33 by jwe]
jwe
parents:
diff changeset
47 #if !defined (HZ)
295f037b4b3e [project @ 1997-05-05 05:32:33 by jwe]
jwe
parents:
diff changeset
48 #if defined (CLK_TCK)
295f037b4b3e [project @ 1997-05-05 05:32:33 by jwe]
jwe
parents:
diff changeset
49 #define HZ CLK_TCK
295f037b4b3e [project @ 1997-05-05 05:32:33 by jwe]
jwe
parents:
diff changeset
50 #elif defined (USG)
295f037b4b3e [project @ 1997-05-05 05:32:33 by jwe]
jwe
parents:
diff changeset
51 #define HZ 100
295f037b4b3e [project @ 1997-05-05 05:32:33 by jwe]
jwe
parents:
diff changeset
52 #else
295f037b4b3e [project @ 1997-05-05 05:32:33 by jwe]
jwe
parents:
diff changeset
53 #define HZ 60
295f037b4b3e [project @ 1997-05-05 05:32:33 by jwe]
jwe
parents:
diff changeset
54 #endif
295f037b4b3e [project @ 1997-05-05 05:32:33 by jwe]
jwe
parents:
diff changeset
55 #endif
295f037b4b3e [project @ 1997-05-05 05:32:33 by jwe]
jwe
parents:
diff changeset
56
295f037b4b3e [project @ 1997-05-05 05:32:33 by jwe]
jwe
parents:
diff changeset
57 #ifndef RUSAGE_SELF
295f037b4b3e [project @ 1997-05-05 05:32:33 by jwe]
jwe
parents:
diff changeset
58 #define RUSAGE_SELF 0
295f037b4b3e [project @ 1997-05-05 05:32:33 by jwe]
jwe
parents:
diff changeset
59 #endif
295f037b4b3e [project @ 1997-05-05 05:32:33 by jwe]
jwe
parents:
diff changeset
60
295f037b4b3e [project @ 1997-05-05 05:32:33 by jwe]
jwe
parents:
diff changeset
61 // System resource functions.
295f037b4b3e [project @ 1997-05-05 05:32:33 by jwe]
jwe
parents:
diff changeset
62
295f037b4b3e [project @ 1997-05-05 05:32:33 by jwe]
jwe
parents:
diff changeset
63 DEFUN_DLD (getrusage, , ,
3301
02866242d3ae [project @ 1999-10-20 04:10:46 by jwe]
jwe
parents: 3176
diff changeset
64 "-*- texinfo -*-\n\
02866242d3ae [project @ 1999-10-20 04:10:46 by jwe]
jwe
parents: 3176
diff changeset
65 @deftypefn {Loadable Function} {} getrusage ()\n\
02866242d3ae [project @ 1999-10-20 04:10:46 by jwe]
jwe
parents: 3176
diff changeset
66 Return a structure containing a number of statistics about the current\n\
02866242d3ae [project @ 1999-10-20 04:10:46 by jwe]
jwe
parents: 3176
diff changeset
67 Octave process. Not all fields are available on all systems. If it is\n\
02866242d3ae [project @ 1999-10-20 04:10:46 by jwe]
jwe
parents: 3176
diff changeset
68 not possible to get CPU time statistics, the CPU time slots are set to\n\
10840
89f4d7e294cc Grammarcheck .cc files
Rik <octave@nomad.inbox5.com>
parents: 10240
diff changeset
69 zero. Other missing data are replaced by NaN@. Here is a list of all\n\
3301
02866242d3ae [project @ 1999-10-20 04:10:46 by jwe]
jwe
parents: 3176
diff changeset
70 the possible fields that can be present in the structure returned by\n\
02866242d3ae [project @ 1999-10-20 04:10:46 by jwe]
jwe
parents: 3176
diff changeset
71 @code{getrusage}:\n\
02866242d3ae [project @ 1999-10-20 04:10:46 by jwe]
jwe
parents: 3176
diff changeset
72 \n\
02866242d3ae [project @ 1999-10-20 04:10:46 by jwe]
jwe
parents: 3176
diff changeset
73 @table @code\n\
02866242d3ae [project @ 1999-10-20 04:10:46 by jwe]
jwe
parents: 3176
diff changeset
74 @item idrss\n\
02866242d3ae [project @ 1999-10-20 04:10:46 by jwe]
jwe
parents: 3176
diff changeset
75 Unshared data size.\n\
02866242d3ae [project @ 1999-10-20 04:10:46 by jwe]
jwe
parents: 3176
diff changeset
76 \n\
02866242d3ae [project @ 1999-10-20 04:10:46 by jwe]
jwe
parents: 3176
diff changeset
77 @item inblock\n\
02866242d3ae [project @ 1999-10-20 04:10:46 by jwe]
jwe
parents: 3176
diff changeset
78 Number of block input operations.\n\
02866242d3ae [project @ 1999-10-20 04:10:46 by jwe]
jwe
parents: 3176
diff changeset
79 \n\
02866242d3ae [project @ 1999-10-20 04:10:46 by jwe]
jwe
parents: 3176
diff changeset
80 @item isrss\n\
02866242d3ae [project @ 1999-10-20 04:10:46 by jwe]
jwe
parents: 3176
diff changeset
81 Unshared stack size.\n\
02866242d3ae [project @ 1999-10-20 04:10:46 by jwe]
jwe
parents: 3176
diff changeset
82 \n\
02866242d3ae [project @ 1999-10-20 04:10:46 by jwe]
jwe
parents: 3176
diff changeset
83 @item ixrss\n\
02866242d3ae [project @ 1999-10-20 04:10:46 by jwe]
jwe
parents: 3176
diff changeset
84 Shared memory size.\n\
02866242d3ae [project @ 1999-10-20 04:10:46 by jwe]
jwe
parents: 3176
diff changeset
85 \n\
02866242d3ae [project @ 1999-10-20 04:10:46 by jwe]
jwe
parents: 3176
diff changeset
86 @item majflt\n\
02866242d3ae [project @ 1999-10-20 04:10:46 by jwe]
jwe
parents: 3176
diff changeset
87 Number of major page faults.\n\
02866242d3ae [project @ 1999-10-20 04:10:46 by jwe]
jwe
parents: 3176
diff changeset
88 \n\
02866242d3ae [project @ 1999-10-20 04:10:46 by jwe]
jwe
parents: 3176
diff changeset
89 @item maxrss\n\
02866242d3ae [project @ 1999-10-20 04:10:46 by jwe]
jwe
parents: 3176
diff changeset
90 Maximum data size.\n\
02866242d3ae [project @ 1999-10-20 04:10:46 by jwe]
jwe
parents: 3176
diff changeset
91 \n\
02866242d3ae [project @ 1999-10-20 04:10:46 by jwe]
jwe
parents: 3176
diff changeset
92 @item minflt\n\
02866242d3ae [project @ 1999-10-20 04:10:46 by jwe]
jwe
parents: 3176
diff changeset
93 Number of minor page faults.\n\
2928
295f037b4b3e [project @ 1997-05-05 05:32:33 by jwe]
jwe
parents:
diff changeset
94 \n\
3301
02866242d3ae [project @ 1999-10-20 04:10:46 by jwe]
jwe
parents: 3176
diff changeset
95 @item msgrcv\n\
02866242d3ae [project @ 1999-10-20 04:10:46 by jwe]
jwe
parents: 3176
diff changeset
96 Number of messages received.\n\
02866242d3ae [project @ 1999-10-20 04:10:46 by jwe]
jwe
parents: 3176
diff changeset
97 \n\
02866242d3ae [project @ 1999-10-20 04:10:46 by jwe]
jwe
parents: 3176
diff changeset
98 @item msgsnd\n\
02866242d3ae [project @ 1999-10-20 04:10:46 by jwe]
jwe
parents: 3176
diff changeset
99 Number of messages sent.\n\
02866242d3ae [project @ 1999-10-20 04:10:46 by jwe]
jwe
parents: 3176
diff changeset
100 \n\
02866242d3ae [project @ 1999-10-20 04:10:46 by jwe]
jwe
parents: 3176
diff changeset
101 @item nivcsw\n\
02866242d3ae [project @ 1999-10-20 04:10:46 by jwe]
jwe
parents: 3176
diff changeset
102 Number of involuntary context switches.\n\
02866242d3ae [project @ 1999-10-20 04:10:46 by jwe]
jwe
parents: 3176
diff changeset
103 \n\
02866242d3ae [project @ 1999-10-20 04:10:46 by jwe]
jwe
parents: 3176
diff changeset
104 @item nsignals\n\
02866242d3ae [project @ 1999-10-20 04:10:46 by jwe]
jwe
parents: 3176
diff changeset
105 Number of signals received.\n\
02866242d3ae [project @ 1999-10-20 04:10:46 by jwe]
jwe
parents: 3176
diff changeset
106 \n\
02866242d3ae [project @ 1999-10-20 04:10:46 by jwe]
jwe
parents: 3176
diff changeset
107 @item nswap\n\
02866242d3ae [project @ 1999-10-20 04:10:46 by jwe]
jwe
parents: 3176
diff changeset
108 Number of swaps.\n\
02866242d3ae [project @ 1999-10-20 04:10:46 by jwe]
jwe
parents: 3176
diff changeset
109 \n\
02866242d3ae [project @ 1999-10-20 04:10:46 by jwe]
jwe
parents: 3176
diff changeset
110 @item nvcsw\n\
02866242d3ae [project @ 1999-10-20 04:10:46 by jwe]
jwe
parents: 3176
diff changeset
111 Number of voluntary context switches.\n\
02866242d3ae [project @ 1999-10-20 04:10:46 by jwe]
jwe
parents: 3176
diff changeset
112 \n\
02866242d3ae [project @ 1999-10-20 04:10:46 by jwe]
jwe
parents: 3176
diff changeset
113 @item oublock\n\
02866242d3ae [project @ 1999-10-20 04:10:46 by jwe]
jwe
parents: 3176
diff changeset
114 Number of block output operations.\n\
02866242d3ae [project @ 1999-10-20 04:10:46 by jwe]
jwe
parents: 3176
diff changeset
115 \n\
02866242d3ae [project @ 1999-10-20 04:10:46 by jwe]
jwe
parents: 3176
diff changeset
116 @item stime\n\
02866242d3ae [project @ 1999-10-20 04:10:46 by jwe]
jwe
parents: 3176
diff changeset
117 A structure containing the system CPU time used. The structure has the\n\
02866242d3ae [project @ 1999-10-20 04:10:46 by jwe]
jwe
parents: 3176
diff changeset
118 elements @code{sec} (seconds) @code{usec} (microseconds).\n\
02866242d3ae [project @ 1999-10-20 04:10:46 by jwe]
jwe
parents: 3176
diff changeset
119 \n\
02866242d3ae [project @ 1999-10-20 04:10:46 by jwe]
jwe
parents: 3176
diff changeset
120 @item utime\n\
02866242d3ae [project @ 1999-10-20 04:10:46 by jwe]
jwe
parents: 3176
diff changeset
121 A structure containing the user CPU time used. The structure has the\n\
02866242d3ae [project @ 1999-10-20 04:10:46 by jwe]
jwe
parents: 3176
diff changeset
122 elements @code{sec} (seconds) @code{usec} (microseconds).\n\
02866242d3ae [project @ 1999-10-20 04:10:46 by jwe]
jwe
parents: 3176
diff changeset
123 @end table\n\
02866242d3ae [project @ 1999-10-20 04:10:46 by jwe]
jwe
parents: 3176
diff changeset
124 @end deftypefn")
2928
295f037b4b3e [project @ 1997-05-05 05:32:33 by jwe]
jwe
parents:
diff changeset
125 {
295f037b4b3e [project @ 1997-05-05 05:32:33 by jwe]
jwe
parents:
diff changeset
126 Octave_map m;
295f037b4b3e [project @ 1997-05-05 05:32:33 by jwe]
jwe
parents:
diff changeset
127 Octave_map tv_tmp;
295f037b4b3e [project @ 1997-05-05 05:32:33 by jwe]
jwe
parents:
diff changeset
128
5775
ace8d8d26933 [project @ 2006-04-24 19:13:06 by jwe]
jwe
parents: 5698
diff changeset
129 // FIXME -- maybe encapsulate all of this in a liboctave class
2928
295f037b4b3e [project @ 1997-05-05 05:32:33 by jwe]
jwe
parents:
diff changeset
130 #if defined (HAVE_GETRUSAGE)
295f037b4b3e [project @ 1997-05-05 05:32:33 by jwe]
jwe
parents:
diff changeset
131
295f037b4b3e [project @ 1997-05-05 05:32:33 by jwe]
jwe
parents:
diff changeset
132 struct rusage ru;
295f037b4b3e [project @ 1997-05-05 05:32:33 by jwe]
jwe
parents:
diff changeset
133
295f037b4b3e [project @ 1997-05-05 05:32:33 by jwe]
jwe
parents:
diff changeset
134 getrusage (RUSAGE_SELF, &ru);
295f037b4b3e [project @ 1997-05-05 05:32:33 by jwe]
jwe
parents:
diff changeset
135
4675
f6d6335c08f6 [project @ 2003-12-16 05:11:26 by jwe]
jwe
parents: 4233
diff changeset
136 tv_tmp.assign ("sec", static_cast<double> (ru.ru_utime.tv_sec));
f6d6335c08f6 [project @ 2003-12-16 05:11:26 by jwe]
jwe
parents: 4233
diff changeset
137 tv_tmp.assign ("usec", static_cast<double> (ru.ru_utime.tv_usec));
f6d6335c08f6 [project @ 2003-12-16 05:11:26 by jwe]
jwe
parents: 4233
diff changeset
138 m.assign ("utime", octave_value (tv_tmp));
2928
295f037b4b3e [project @ 1997-05-05 05:32:33 by jwe]
jwe
parents:
diff changeset
139
4675
f6d6335c08f6 [project @ 2003-12-16 05:11:26 by jwe]
jwe
parents: 4233
diff changeset
140 tv_tmp.assign ("sec", static_cast<double> (ru.ru_stime.tv_sec));
f6d6335c08f6 [project @ 2003-12-16 05:11:26 by jwe]
jwe
parents: 4233
diff changeset
141 tv_tmp.assign ("usec", static_cast<double> (ru.ru_stime.tv_usec));
f6d6335c08f6 [project @ 2003-12-16 05:11:26 by jwe]
jwe
parents: 4233
diff changeset
142 m.assign ("stime", octave_value (tv_tmp));
2928
295f037b4b3e [project @ 1997-05-05 05:32:33 by jwe]
jwe
parents:
diff changeset
143
295f037b4b3e [project @ 1997-05-05 05:32:33 by jwe]
jwe
parents:
diff changeset
144 #if ! defined (RUSAGE_TIMES_ONLY)
4675
f6d6335c08f6 [project @ 2003-12-16 05:11:26 by jwe]
jwe
parents: 4233
diff changeset
145 m.assign ("maxrss", static_cast<double> (ru.ru_maxrss));
f6d6335c08f6 [project @ 2003-12-16 05:11:26 by jwe]
jwe
parents: 4233
diff changeset
146 m.assign ("ixrss", static_cast<double> (ru.ru_ixrss));
f6d6335c08f6 [project @ 2003-12-16 05:11:26 by jwe]
jwe
parents: 4233
diff changeset
147 m.assign ("idrss", static_cast<double> (ru.ru_idrss));
f6d6335c08f6 [project @ 2003-12-16 05:11:26 by jwe]
jwe
parents: 4233
diff changeset
148 m.assign ("isrss", static_cast<double> (ru.ru_isrss));
f6d6335c08f6 [project @ 2003-12-16 05:11:26 by jwe]
jwe
parents: 4233
diff changeset
149 m.assign ("minflt", static_cast<double> (ru.ru_minflt));
f6d6335c08f6 [project @ 2003-12-16 05:11:26 by jwe]
jwe
parents: 4233
diff changeset
150 m.assign ("majflt", static_cast<double> (ru.ru_majflt));
f6d6335c08f6 [project @ 2003-12-16 05:11:26 by jwe]
jwe
parents: 4233
diff changeset
151 m.assign ("nswap", static_cast<double> (ru.ru_nswap));
f6d6335c08f6 [project @ 2003-12-16 05:11:26 by jwe]
jwe
parents: 4233
diff changeset
152 m.assign ("inblock", static_cast<double> (ru.ru_inblock));
f6d6335c08f6 [project @ 2003-12-16 05:11:26 by jwe]
jwe
parents: 4233
diff changeset
153 m.assign ("oublock", static_cast<double> (ru.ru_oublock));
f6d6335c08f6 [project @ 2003-12-16 05:11:26 by jwe]
jwe
parents: 4233
diff changeset
154 m.assign ("msgsnd", static_cast<double> (ru.ru_msgsnd));
f6d6335c08f6 [project @ 2003-12-16 05:11:26 by jwe]
jwe
parents: 4233
diff changeset
155 m.assign ("msgrcv", static_cast<double> (ru.ru_msgrcv));
f6d6335c08f6 [project @ 2003-12-16 05:11:26 by jwe]
jwe
parents: 4233
diff changeset
156 m.assign ("nsignals", static_cast<double> (ru.ru_nsignals));
f6d6335c08f6 [project @ 2003-12-16 05:11:26 by jwe]
jwe
parents: 4233
diff changeset
157 m.assign ("nvcsw", static_cast<double> (ru.ru_nvcsw));
f6d6335c08f6 [project @ 2003-12-16 05:11:26 by jwe]
jwe
parents: 4233
diff changeset
158 m.assign ("nivcsw", static_cast<double> (ru.ru_nivcsw));
2928
295f037b4b3e [project @ 1997-05-05 05:32:33 by jwe]
jwe
parents:
diff changeset
159 #endif
295f037b4b3e [project @ 1997-05-05 05:32:33 by jwe]
jwe
parents:
diff changeset
160
295f037b4b3e [project @ 1997-05-05 05:32:33 by jwe]
jwe
parents:
diff changeset
161 #else
295f037b4b3e [project @ 1997-05-05 05:32:33 by jwe]
jwe
parents:
diff changeset
162
295f037b4b3e [project @ 1997-05-05 05:32:33 by jwe]
jwe
parents:
diff changeset
163 struct tms t;
295f037b4b3e [project @ 1997-05-05 05:32:33 by jwe]
jwe
parents:
diff changeset
164
295f037b4b3e [project @ 1997-05-05 05:32:33 by jwe]
jwe
parents:
diff changeset
165 times (&t);
295f037b4b3e [project @ 1997-05-05 05:32:33 by jwe]
jwe
parents:
diff changeset
166
295f037b4b3e [project @ 1997-05-05 05:32:33 by jwe]
jwe
parents:
diff changeset
167 unsigned long ticks;
295f037b4b3e [project @ 1997-05-05 05:32:33 by jwe]
jwe
parents:
diff changeset
168 unsigned long seconds;
295f037b4b3e [project @ 1997-05-05 05:32:33 by jwe]
jwe
parents:
diff changeset
169 unsigned long fraction;
295f037b4b3e [project @ 1997-05-05 05:32:33 by jwe]
jwe
parents:
diff changeset
170
295f037b4b3e [project @ 1997-05-05 05:32:33 by jwe]
jwe
parents:
diff changeset
171 ticks = t.tms_utime + t.tms_cutime;
295f037b4b3e [project @ 1997-05-05 05:32:33 by jwe]
jwe
parents:
diff changeset
172 fraction = ticks % HZ;
295f037b4b3e [project @ 1997-05-05 05:32:33 by jwe]
jwe
parents:
diff changeset
173 seconds = ticks / HZ;
295f037b4b3e [project @ 1997-05-05 05:32:33 by jwe]
jwe
parents:
diff changeset
174
4675
f6d6335c08f6 [project @ 2003-12-16 05:11:26 by jwe]
jwe
parents: 4233
diff changeset
175 tv_tmp.assign ("sec", static_cast<double> (seconds));
f6d6335c08f6 [project @ 2003-12-16 05:11:26 by jwe]
jwe
parents: 4233
diff changeset
176 tv_tmp.assign ("usec", static_cast<double> (fraction * 1e6 / HZ));
f6d6335c08f6 [project @ 2003-12-16 05:11:26 by jwe]
jwe
parents: 4233
diff changeset
177 m.assign ("utime", octave_value (tv_tmp));
2928
295f037b4b3e [project @ 1997-05-05 05:32:33 by jwe]
jwe
parents:
diff changeset
178
295f037b4b3e [project @ 1997-05-05 05:32:33 by jwe]
jwe
parents:
diff changeset
179 ticks = t.tms_stime + t.tms_cstime;
295f037b4b3e [project @ 1997-05-05 05:32:33 by jwe]
jwe
parents:
diff changeset
180 fraction = ticks % HZ;
295f037b4b3e [project @ 1997-05-05 05:32:33 by jwe]
jwe
parents:
diff changeset
181 seconds = ticks / HZ;
295f037b4b3e [project @ 1997-05-05 05:32:33 by jwe]
jwe
parents:
diff changeset
182
4675
f6d6335c08f6 [project @ 2003-12-16 05:11:26 by jwe]
jwe
parents: 4233
diff changeset
183 tv_tmp.assign ("sec", static_cast<double> (seconds));
f6d6335c08f6 [project @ 2003-12-16 05:11:26 by jwe]
jwe
parents: 4233
diff changeset
184 tv_tmp.assign ("usec", static_cast<double> (fraction * 1e6 / HZ));
f6d6335c08f6 [project @ 2003-12-16 05:11:26 by jwe]
jwe
parents: 4233
diff changeset
185 m.assign ("stime", octave_value (tv_tmp));
2928
295f037b4b3e [project @ 1997-05-05 05:32:33 by jwe]
jwe
parents:
diff changeset
186
4102
cbac6756967e [project @ 2002-10-14 20:16:44 by jwe]
jwe
parents: 3301
diff changeset
187 double tmp = lo_ieee_nan_value ();
cbac6756967e [project @ 2002-10-14 20:16:44 by jwe]
jwe
parents: 3301
diff changeset
188
4675
f6d6335c08f6 [project @ 2003-12-16 05:11:26 by jwe]
jwe
parents: 4233
diff changeset
189 m.assign ("maxrss", tmp);
f6d6335c08f6 [project @ 2003-12-16 05:11:26 by jwe]
jwe
parents: 4233
diff changeset
190 m.assign ("ixrss", tmp);
f6d6335c08f6 [project @ 2003-12-16 05:11:26 by jwe]
jwe
parents: 4233
diff changeset
191 m.assign ("idrss", tmp);
f6d6335c08f6 [project @ 2003-12-16 05:11:26 by jwe]
jwe
parents: 4233
diff changeset
192 m.assign ("isrss", tmp);
f6d6335c08f6 [project @ 2003-12-16 05:11:26 by jwe]
jwe
parents: 4233
diff changeset
193 m.assign ("minflt", tmp);
f6d6335c08f6 [project @ 2003-12-16 05:11:26 by jwe]
jwe
parents: 4233
diff changeset
194 m.assign ("majflt", tmp);
f6d6335c08f6 [project @ 2003-12-16 05:11:26 by jwe]
jwe
parents: 4233
diff changeset
195 m.assign ("nswap", tmp);
f6d6335c08f6 [project @ 2003-12-16 05:11:26 by jwe]
jwe
parents: 4233
diff changeset
196 m.assign ("inblock", tmp);
f6d6335c08f6 [project @ 2003-12-16 05:11:26 by jwe]
jwe
parents: 4233
diff changeset
197 m.assign ("oublock", tmp);
f6d6335c08f6 [project @ 2003-12-16 05:11:26 by jwe]
jwe
parents: 4233
diff changeset
198 m.assign ("msgsnd", tmp);
f6d6335c08f6 [project @ 2003-12-16 05:11:26 by jwe]
jwe
parents: 4233
diff changeset
199 m.assign ("msgrcv", tmp);
f6d6335c08f6 [project @ 2003-12-16 05:11:26 by jwe]
jwe
parents: 4233
diff changeset
200 m.assign ("nsignals", tmp);
f6d6335c08f6 [project @ 2003-12-16 05:11:26 by jwe]
jwe
parents: 4233
diff changeset
201 m.assign ("nvcsw", tmp);
f6d6335c08f6 [project @ 2003-12-16 05:11:26 by jwe]
jwe
parents: 4233
diff changeset
202 m.assign ("nivcsw", tmp);
2928
295f037b4b3e [project @ 1997-05-05 05:32:33 by jwe]
jwe
parents:
diff changeset
203
295f037b4b3e [project @ 1997-05-05 05:32:33 by jwe]
jwe
parents:
diff changeset
204 #endif
295f037b4b3e [project @ 1997-05-05 05:32:33 by jwe]
jwe
parents:
diff changeset
205
295f037b4b3e [project @ 1997-05-05 05:32:33 by jwe]
jwe
parents:
diff changeset
206 return octave_value (m);
295f037b4b3e [project @ 1997-05-05 05:32:33 by jwe]
jwe
parents:
diff changeset
207 }