| | 1936 | | pvm_addhosts(names, count, svp) |
| | 1937 | | char **names; |
| | 1938 | | int count; |
| | 1939 | | int *svp; |
| | 1940 | | { |
| | 1941 | | int sbf, rbf; |
| | 1942 | | int cc; |
| | 1943 | | int i; |
| | 1944 | | int *sv; |
| | 1945 | | char *buf; |
| | 1946 | | int tmp; |
| | 1947 | | TEV_DECLS
|
| | 1948 | | |
| | 1949 | | if (TEV_EXCLUSIVE) {
|
| | 1950 | | if (TEV_DO_TRACE(TEV_ADDHOSTS,TEV_EVENT_ENTRY)) {
|
| | 1951 | | TEV_PACK_STRING( TEV_DID_HNL, TEV_DATA_ARRAY,
|
| | 1952 | | names, count, 1 ); |
| | 1953 | | TEV_FIN;
|
| | 1954 | | } |
| | 1955 | | } |
| | 1956 | | |
| | 1957 | | if (count < 1 || count > (TIDHOST >> (ffs(TIDHOST) - 1))) {
|
| | 1958 | | cc = PvmBadParam;
|
| | 1959 | | |
| | 1960 | | } else { |
| | 1961 | | if (!(cc = BEATASK)) {
|
| | 1962 | | sbf = pvm_setsbuf(pvm_mkbuf(PvmDataFoo));
|
| | 1963 | | rbf = pvm_setrbuf(0); |
| | 1964 | | pvm_pkint(&count, 1, 1); |
| | 1965 | | for (i = 0; i < count; i++) |
| | 1966 | | pvm_pkstr(names[i]); |
| | 1967 | | |
| | 1968 | | if (pvmschedtid) |
| | 1969 | | cc = msendrecv(pvmschedtid, SM_ADDHOST, PvmBaseContext);
|
| | 1970 | | else |
| | 1971 | | cc = msendrecv(TIDPVMD, TM_ADDHOST, SYSCTX_TM);
|
| | 1972 | | if (cc > 0) { |
| | 1973 | | pvm_upkint(&cc, 1, 1); |
| | 1974 | | if (cc >= 0) { |
| | 1975 | | if (cc == count) { |
| | 1976 | | pvm_upkint(&cc, 1, 1); |
| true | 1977 | | sv = TALLOC(count, int, "sv1");
|
| | 1978 | | cc = 0; |
| | 1979 | | for (i = 0; i < count; i++) { |
| | 1980 | | pvm_upkint(&sv[i], 1, 1); |
| | 1981 | | |
| | 1982 | | pvmupkstralloc(&buf); PVM_FREE(buf);
|
| | 1983 | | pvmupkstralloc(&buf); PVM_FREE(buf);
|
| | 1984 | | pvm_upkint(&tmp, 1, 1); |
| | 1985 | | pvm_upkint(&tmp, 1, 1); |
| sv <= 4095 | 1986 | | if (sv[i] >= 0) |