home *** CD-ROM | disk | FTP | other *** search
/ Serving the Web / ServingTheWeb1995.disc1of1.iso / linux / slacksrce / d / libc / libc-4.6 / libc-4 / libc-linux / string / memfill.c < prev    next >
Encoding:
C/C++ Source or Header  |  1993-05-18  |  1.3 KB  |  41 lines

  1. /* memfill -- fill a block of memory with n bytes.
  2.    For Intel 80x86, x>=3.
  3.    Copyright (C) 1993 Free Software Foundation, Inc.
  4.    Contributed by H.J. Lu (hlu@eecs.wsu.edu)
  5.  
  6. The GNU C Library is free software; you can redistribute it and/or
  7. modify it under the terms of the GNU Library General Public License as
  8. published by the Free Software Foundation; either version 2 of the
  9. License, or (at your option) any later version.
  10.  
  11. The GNU C Library is distributed in the hope that it will be useful,
  12. but WITHOUT ANY WARRANTY; without even the implied warranty of
  13. MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
  14. Library General Public License for more details.
  15.  
  16. You should have received a copy of the GNU Library General Public
  17. License along with the GNU C Library; see the file COPYING.LIB.  If
  18. not, write to the Free Software Foundation, Inc., 675 Mass Ave,
  19. Cambridge, MA 02139, USA.  */
  20.  
  21. #include <ansidecl.h>
  22. #include <string.h>
  23.  
  24. PTR
  25. DEFUN(memfill, (dstpp, dstlen, srcpp, srclen),
  26.       PTR dstpp AND size_t dstlen AND PTR srcpp AND size_t srclen)
  27. {
  28.   unsigned long int dstp = (unsigned long int) dstpp;
  29.  
  30.   if (!dstlen || !srclen) return dstpp;
  31.  
  32.   for (;dstlen >= srclen; dstlen -= srclen, dstp += srclen) {
  33.     memcpy ((PTR) dstp, srcpp, srclen);
  34.   }
  35.  
  36.   if (dstlen)
  37.     memcpy ((PTR) dstp, srcpp, dstlen);
  38.  
  39.   return (dstpp);
  40. }
  41.