32 #include <sys/types.h>
33 #include <sys/socket.h>
34 #include <sys/ioctl.h>
36 #include <netinet/in.h>
37 #include <arpa/inet.h>
45 #include <sys/protosw.h>
48 #include <sys/procfs.h>
52 #include <sys/mntctl.h>
53 #include <sys/vmount.h>
56 #include <sys/vnode.h>
58 #include <as400_protos.h>
59 #include <as400_types.h>
65 char current_date_and_time[8];
104 unsigned char loca_adapter_address[12];
115 static const unsigned char e2a[256] = {
116 0, 1, 2, 3, 156, 9, 134, 127, 151, 141, 142, 11, 12, 13, 14, 15,
117 16, 17, 18, 19, 157, 133, 8, 135, 24, 25, 146, 143, 28, 29, 30, 31,
118 128, 129, 130, 131, 132, 10, 23, 27, 136, 137, 138, 139, 140, 5, 6, 7,
119 144, 145, 22, 147, 148, 149, 150, 4, 152, 153, 154, 155, 20, 21, 158, 26,
120 32, 160, 161, 162, 163, 164, 165, 166, 167, 168, 91, 46, 60, 40, 43, 33,
121 38, 169, 170, 171, 172, 173, 174, 175, 176, 177, 93, 36, 42, 41, 59, 94,
122 45, 47, 178, 179, 180, 181, 182, 183, 184, 185, 124, 44, 37, 95, 62, 63,
123 186, 187, 188, 189, 190, 191, 192, 193, 194, 96, 58, 35, 64, 39, 61, 34,
124 195, 97, 98, 99, 100, 101, 102, 103, 104, 105, 196, 197, 198, 199, 200, 201,
125 202, 106, 107, 108, 109, 110, 111, 112, 113, 114, 203, 204, 205, 206, 207, 208,
126 209, 126, 115, 116, 117, 118, 119, 120, 121, 122, 210, 211, 212, 213, 214, 215,
127 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231,
128 123, 65, 66, 67, 68, 69, 70, 71, 72, 73, 232, 233, 234, 235, 236, 237,
129 125, 74, 75, 76, 77, 78, 79, 80, 81, 82, 238, 239, 240, 241, 242, 243,
130 92, 159, 83, 84, 85, 86, 87, 88, 89, 90, 244, 245, 246, 247, 248, 249,
131 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 250, 251, 252, 253, 254, 255};
134 static const unsigned char a2e[256] = {
135 0, 1, 2, 3, 55, 45, 46, 47, 22, 5, 37, 11, 12, 13, 14, 15,
136 16, 17, 18, 19, 60, 61, 50, 38, 24, 25, 63, 39, 28, 29, 30, 31,
137 64, 79, 127, 123, 91, 108, 80, 125, 77, 93, 92, 78, 107, 96, 75, 97,
138 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 122, 94, 76, 126, 110, 111,
139 124, 193, 194, 195, 196, 197, 198, 199, 200, 201, 209, 210, 211, 212, 213, 214,
140 215, 216, 217, 226, 227, 228, 229, 230, 231, 232, 233, 74, 224, 90, 95, 109,
141 121, 129, 130, 131, 132, 133, 134, 135, 136, 137, 145, 146, 147, 148, 149, 150,
142 151, 152, 153, 162, 163, 164, 165, 166, 167, 168, 169, 192, 106, 208, 161, 7,
143 32, 33, 34, 35, 36, 21, 6, 23, 40, 41, 42, 43, 44, 9, 10, 27,
144 48, 49, 26, 51, 52, 53, 54, 8, 56, 57, 58, 59, 4, 20, 62, 225,
145 65, 66, 67, 68, 69, 70, 71, 72, 73, 81, 82, 83, 84, 85, 86, 87,
146 88, 89, 98, 99, 100, 101, 102, 103, 104, 105, 112, 113, 114, 115, 116, 117,
147 118, 119, 120, 128, 138, 139, 140, 141, 142, 143, 144, 154, 155, 156, 157, 158,
148 159, 160, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183,
149 184, 185, 186, 187, 188, 189, 190, 191, 202, 203, 204, 205, 206, 207, 218, 219,
150 220, 221, 222, 223, 234, 235, 236, 237, 238, 239, 250, 251, 252, 253, 254, 255};
164 srclen = strlen(src);
167 for (
i = 0;
i < srclen;
i++)
177 unsigned int rcvrlen =
sizeof(*rcvr);
178 unsigned char format[8], reset_status[10];
183 iconv_a2e(
"*NO", reset_status,
sizeof(reset_status));
192 void* qwcrssts_argv[6];
195 int rc = _RSLOBJ2(&qwcrssts_pointer, RSLOBJ_TS_PGM,
"QWCRSSTS",
"QSYS");
201 memset(rcvr, 0,
sizeof(*rcvr));
204 memset(&errcode, 0,
sizeof(errcode));
208 qwcrssts_argv[0] = rcvr;
209 qwcrssts_argv[1] = &rcvrlen;
210 qwcrssts_argv[2] = &
format;
211 qwcrssts_argv[3] = &reset_status;
212 qwcrssts_argv[4] = &errcode;
213 qwcrssts_argv[5] = NULL;
216 rc = _PGMCALL(&qwcrssts_pointer, qwcrssts_argv, 0);
251 avg[0] = avg[1] = avg[2] = 0;
259 double processing_unit_used_percent =
262 avg[0] = avg[1] = avg[2] = processing_unit_used_percent;
278 unsigned int numcpus,
idx = 0;
284 numcpus = sysconf(_SC_NPROCESSORS_ONLN);
291 cpu_info = *cpu_infos;
311 unsigned int rcvrlen =
sizeof(rcvr);
312 unsigned char format[8], line_name[10];
329 void* qdcrlind_argv[6];
332 int rc = _RSLOBJ2(&qdcrlind_pointer, RSLOBJ_TS_PGM,
"QDCRLIND",
"QSYS");
338 memset(&rcvr, 0,
sizeof(rcvr));
342 err.bytes_provided =
sizeof(
err);
345 qdcrlind_argv[0] = &rcvr;
346 qdcrlind_argv[1] = &rcvrlen;
347 qdcrlind_argv[2] = &
format;
348 qdcrlind_argv[3] = &line_name;
349 qdcrlind_argv[4] = &
err;
350 qdcrlind_argv[5] = NULL;
353 rc = _PGMCALL(&qdcrlind_pointer, qdcrlind_argv, 0);
362 int r = sscanf(mac_addr,
"%02x%02x%02x%02x%02x%02x",
363 &
c[0], &
c[1], &
c[2], &
c[3], &
c[4], &
c[5]);
366 (*phys_addr)[0] =
c[0];
367 (*phys_addr)[1] =
c[1];
368 (*phys_addr)[2] =
c[2];
369 (*phys_addr)[3] =
c[3];
370 (*phys_addr)[4] =
c[4];
371 (*phys_addr)[5] =
c[5];
373 memset(*phys_addr, 0,
sizeof(*phys_addr));
382 struct ifaddrs_pase *ifap = NULL, *
cur;
388 if (Qp2getifaddrs(&ifap))
394 cur->ifa_addr->sa_family == AF_INET))
397 if (!(
cur->ifa_flags & IFF_UP &&
cur->ifa_flags & IFF_RUNNING))
404 Qp2freeifaddrs(ifap);
410 if (*addresses == NULL) {
411 Qp2freeifaddrs(ifap);
414 address = *addresses;
419 cur->ifa_addr->sa_family == AF_INET))
422 if (!(
cur->ifa_flags & IFF_UP &&
cur->ifa_flags & IFF_RUNNING))
448 Qp2freeifaddrs(ifap);