| | 1383 | | enc_xdr_long(mp, vp, cnt, std, siz) |
| | 1384 | | struct pmsg *mp; |
| | 1385 | | void *vp; |
| | 1386 | | int cnt, std, siz; |
| | 1387 | | { |
| | 1388 | | register long *np; |
| | 1389 | | int cc = 0; |
| | 1390 | | |
| | 1391 | | for (np = (long*)vp; cnt-- > 0; np += std) |
| | 1392 | | #ifdef USE_XDR_LONGLONG |
| | 1393 | | if (!xdr_longlong_t(&mp->m_xdr, np)) |
| | 1394 | | #else |
| | 1395 | | if (!xdr_long(&mp->m_xdr, np)) |
| | 1396 | | #endif |
| | 1397 | | { |
| | 1398 | | #ifdef USE_XDR_LONGLONG |
| | 1399 | | if ((*np & ~(long)0x7fffffffffffffff) |
| | 1400 | | && (*np & ~(long)0x7fffffffffffffff) |
| | 1401 | | != ~(long)0x7fffffffffffffff) |
| | 1402 | | #else |
| | 1403 | | if ((*np & ~(long)0x7fffffff) |
| | 1404 | | && (*np & ~(long)0x7fffffff) != ~(long)0x7fffffff) |
| | 1405 | | #endif |
| | 1406 | | { |
| | 1407 | | cc = PvmOverflow;
|
| | 1408 | | break; |
| | 1409 | | } |
| | 1410 | | mp->m_frag->fr_rlink->fr_len = xdr_getpos(&mp->m_xdr);
|
| Never True: cc != 0 | 1411 | | if (cc = enc_xdr_step(mp)) |
| | 1412 | | break; |
| | 1413 | | else |
| | 1414 | | #ifdef USE_XDR_LONGLONG |
| | 1415 | | if (!xdr_longlong_t(&mp->m_xdr, np)) |
| | 1416 | | #else |
| | 1417 | | if (!xdr_long(&mp->m_xdr, np)) |
| | 1418 | | #endif |
| | 1419 | | { |
| | 1420 | | cc = PvmNoMem;
|
| | 1421 | | break; |
| | 1422 | | } |
| | 1423 | | } |
| | 1424 | | mp->m_frag->fr_rlink->fr_len = xdr_getpos(&mp->m_xdr);
|
| | 1425 | | return cc; |
| | 1426 | | } |