sselect.inc 761 B

12345678910111213141516171819202122232425262728293031323334353637383940414243444546
  1. Function __FDELT(d: longint): Integer;
  2. begin
  3. Result:=d div __NFDBITS;
  4. end;
  5. Function __FDMASK(d: longint): __fd_mask;
  6. begin
  7. Result:=1 shl (d mod __NFDBITS);
  8. end;
  9. Function FD_ISSET(fd: longint; const fdset: _fd_set): Boolean;
  10. begin
  11. Result:=(fdset.fds_bits[__FDELT(fd)] and __FDMASK(fd))<>0;
  12. end;
  13. Procedure FD_SET(fd: longint; var fdset: _fd_set);
  14. begin
  15. fdset.fds_bits[__FDELT(fd)]:=fdset.fds_bits[__FDELT(fd)] or __FDMASK(fd);
  16. end;
  17. Procedure FD_CLR(fd: longint; var fdset: _fd_set);
  18. begin
  19. fdset.fds_bits[__FDELT(fd)]:=fdset.fds_bits[__FDELT(fd)] and (not __FDMASK(fd));
  20. end;
  21. Procedure FD_ZERO(var fdset: _fd_set);
  22. var
  23. I: Integer;
  24. begin
  25. with fdset do
  26. for I:=Low(fds_bits) to High(fds_bits) do
  27. fds_bits[I]:=0;
  28. end;