You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

50 lines
1.4 KiB

26 years ago
26 years ago
  1. /* Copyright (C) 2000 MySQL AB
  2. This program is free software; you can redistribute it and/or modify
  3. it under the terms of the GNU General Public License as published by
  4. the Free Software Foundation; version 2 of the License.
  5. This program is distributed in the hope that it will be useful,
  6. but WITHOUT ANY WARRANTY; without even the implied warranty of
  7. MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
  8. GNU General Public License for more details.
  9. You should have received a copy of the GNU General Public License
  10. along with this program; if not, write to the Free Software
  11. Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */
  12. /* File : memset.c
  13. Author : Richard A. O'Keefe.
  14. Updated: 25 May 1984
  15. Defines: memset()
  16. memset(dst, chr, len)
  17. fills the memory area dst[0..len-1] with len bytes all equal to chr.
  18. The result is dst. See also bfill(), which has no return value and
  19. puts the last two arguments the other way around.
  20. Note: the VAX assembly code version can only handle 0 <= len < 2^16.
  21. It is presented for your interest and amusement.
  22. */
  23. #include "strings.h"
  24. #if VaxAsm
  25. char *memset(char *dst,int chr, int len)
  26. {
  27. asm("movc5 $0,*4(ap),8(ap),12(ap),*4(ap)");
  28. return dst;
  29. }
  30. #else ~VaxAsm
  31. char *memset(char *dst, register pchar chr, register int len)
  32. {
  33. register char *d;
  34. for (d = dst; --len >= 0; *d++ = chr) ;
  35. return dst;
  36. }
  37. #endif VaxAsm