51
51
* @value Value used to init bitmap.
52
* @nr Size of the bitmap in bytes.
52
* @sz Size of the bitmap in bytes.
55
55
* @bitmap Bitmap initialized.
56
56
***************************************************************************
58
void set_bitmap(unsigned char bitmap[], unsigned char value, unsigned int nr)
58
void set_bitmap(unsigned char bitmap[], unsigned char value, unsigned int sz)
62
for (i = 0; i < nr; i++) {
62
for (i = 0; i < sz; i++) {
79
79
for (i = 0; i < NR_ACT; i++) {
81
for (j = 0; j < 3; j++) {
82
SREALLOC(act[i]->buf[j], void, act[i]->msize * act[i]->nr);
80
if (*act[i]->nr > 0) {
81
for (j = 0; j < 3; j++) {
82
SREALLOC(act[i]->buf[j], void, act[i]->msize * *act[i]->nr);
89
***************************************************************************
93
* @act Array of activities.
94
***************************************************************************
96
void free_structures(struct activity *act[])
100
for (i = 0; i < NR_ACT; i++) {
101
if (*act[i]->nr > 0) {
102
for (j = 0; j < 3; j++) {
103
if (act[i]->buf[j]) {
104
free(act[i]->buf[j]);
201
224
int decode_timestamp(char timestamp[], struct tstamp *tse)
203
226
timestamp[2] = timestamp[5] = '\0';
204
tse->tm_sec = atoi(&(timestamp[6]));
205
tse->tm_min = atoi(&(timestamp[3]));
227
tse->tm_sec = atoi(×tamp[6]);
228
tse->tm_min = atoi(×tamp[3]);
206
229
tse->tm_hour = atoi(timestamp);
208
231
if ((tse->tm_sec < 0) || (tse->tm_sec > 59) ||
668
691
***************************************************************************
692
* Free bitmaps for activities that have one.
695
* @act Array of activities.
696
***************************************************************************
698
void free_bitmaps(struct activity *act[])
702
for (i = 0; i < NR_ACT; i++) {
703
if (act[i]->bitmap_size) {
704
free(act[i]->bitmap);
710
***************************************************************************
669
711
* Look for activity in array.
944
else if ((act[p]->nr > 1) && (act[p]->msize > act[p]->fsize)) {
945
for (j = 0; j < act[p]->nr; j++) {
986
else if ((*act[p]->nr > 1) && (act[p]->msize > act[p]->fsize)) {
987
for (j = 0; j < *act[p]->nr; j++) {
946
988
sa_fread(ifd, (char *) act[p]->buf[curr] + j * act[p]->msize,
947
989
act[p]->fsize, HARD_SIZE);
950
else if (act[p]->nr > 0) {
951
sa_fread(ifd, act[p]->buf[curr], act[p]->fsize * act[p]->nr, HARD_SIZE);
992
else if (*act[p]->nr > 0) {
993
sa_fread(ifd, act[p]->buf[curr], act[p]->fsize * *act[p]->nr, HARD_SIZE);
1228
1270
int parse_sar_n_opt(char *argv[], int *opt, struct activity *act[])
1230
1272
if (!strcmp(argv[*opt], K_DEV)) {
1231
act[get_activity_position(act, A_NET_DEV)]->options |= AO_SELECTED;
1273
SELECT_ACTIVITY(A_NET_DEV);
1233
1275
else if (!strcmp(argv[*opt], K_EDEV)) {
1234
act[get_activity_position(act, A_NET_EDEV)]->options |= AO_SELECTED;
1276
SELECT_ACTIVITY(A_NET_EDEV);
1236
1278
else if (!strcmp(argv[*opt], K_SOCK)) {
1237
act[get_activity_position(act, A_NET_SOCK)]->options |= AO_SELECTED;
1279
SELECT_ACTIVITY(A_NET_SOCK);
1239
1281
else if (!strcmp(argv[*opt], K_NFS)) {
1240
act[get_activity_position(act, A_NET_NFS)]->options |= AO_SELECTED;
1282
SELECT_ACTIVITY(A_NET_NFS);
1242
1284
else if (!strcmp(argv[*opt], K_NFSD)) {
1243
act[get_activity_position(act, A_NET_NFSD)]->options |= AO_SELECTED;
1285
SELECT_ACTIVITY(A_NET_NFSD);
1287
else if (!strcmp(argv[*opt], K_IP)) {
1288
SELECT_ACTIVITY(A_NET_IP);
1290
else if (!strcmp(argv[*opt], K_EIP)) {
1291
SELECT_ACTIVITY(A_NET_EIP);
1293
else if (!strcmp(argv[*opt], K_ICMP)) {
1294
SELECT_ACTIVITY(A_NET_ICMP);
1296
else if (!strcmp(argv[*opt], K_EICMP)) {
1297
SELECT_ACTIVITY(A_NET_EICMP);
1299
else if (!strcmp(argv[*opt], K_TCP)) {
1300
SELECT_ACTIVITY(A_NET_TCP);
1302
else if (!strcmp(argv[*opt], K_ETCP)) {
1303
SELECT_ACTIVITY(A_NET_ETCP);
1305
else if (!strcmp(argv[*opt], K_UDP)) {
1306
SELECT_ACTIVITY(A_NET_UDP);
1245
1308
else if (!strcmp(argv[*opt], K_ALL)) {
1246
act[get_activity_position(act, A_NET_DEV)]->options |= AO_SELECTED;
1247
act[get_activity_position(act, A_NET_EDEV)]->options |= AO_SELECTED;
1248
act[get_activity_position(act, A_NET_SOCK)]->options |= AO_SELECTED;
1249
act[get_activity_position(act, A_NET_NFS)]->options |= AO_SELECTED;
1250
act[get_activity_position(act, A_NET_NFSD)]->options |= AO_SELECTED;
1309
SELECT_ACTIVITY(A_NET_DEV);
1310
SELECT_ACTIVITY(A_NET_EDEV);
1311
SELECT_ACTIVITY(A_NET_SOCK);
1312
SELECT_ACTIVITY(A_NET_NFS);
1313
SELECT_ACTIVITY(A_NET_NFSD);
1314
SELECT_ACTIVITY(A_NET_IP);
1315
SELECT_ACTIVITY(A_NET_EIP);
1316
SELECT_ACTIVITY(A_NET_ICMP);
1317
SELECT_ACTIVITY(A_NET_EICMP);
1318
SELECT_ACTIVITY(A_NET_TCP);
1319
SELECT_ACTIVITY(A_NET_ETCP);
1320
SELECT_ACTIVITY(A_NET_UDP);