summaryrefslogtreecommitdiff
path: root/mcon/U/d_bcopy.U
blob: 9e91dd78a21bcd25cce95920c15870e2696e2f11 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
?RCS: $Id$
?RCS:
?RCS: Copyright (c) 1991-1997, 2004-2006, Raphael Manfredi
?RCS:
?RCS: You may redistribute only under the terms of the Artistic License,
?RCS: as specified in the README file that comes with the distribution.
?RCS: You may reuse parts of this distribution only within the terms of
?RCS: that same Artistic License; a copy of which may be found at the root
?RCS: of the source tree for dist 4.0.
?RCS:
?RCS: $Log: d_bcopy.U,v $
?RCS: Revision 3.0.1.2  1993/10/16  13:48:04  ram
?RCS: patch12: added magic support for bcopy()
?RCS:
?RCS: Revision 3.0.1.1  1993/09/13  16:01:11  ram
?RCS: patch10: now only defines HAS_BCOPY, no macro remap on memcpy (WAD)
?RCS:
?RCS: Revision 3.0  1993/08/18  12:05:44  ram
?RCS: Baseline for dist 3.0 netwide release.
?RCS:
?MAKE:d_bcopy: Trylink cat
?MAKE:	-pick add $@ %<
?S:d_bcopy:
?S:	This variable conditionally defines the HAS_BCOPY symbol if
?S:	the bcopy() routine is available to copy strings.
?S:.
?C:HAS_BCOPY:
?C:	This symbol is defined if the bcopy() routine is available to
?C:	copy blocks of memory.
?C:.
?H:#$d_bcopy HAS_BCOPY	/**/
?H:.
?M:bcopy: HAS_BCOPY
?M:#ifndef HAS_BCOPY
?M:#ifndef bcopy
?M:#define bcopy(s,d,l) memcpy((d),(s),(l))
?M:#endif
?M:#endif
?M:.
?LINT:set d_bcopy
: see if bcopy exists
?X: Test is over-complex to avoid gcc optimizing bcopy() away.
$cat >try.c <<EOC
#include <strings.h>
static void
init_data(char *a, unsigned len)
{
	unsigned i;
	for (i = 0; i < len; i++)
		a[i] = i * 2 + 1;
}
static void
recopy_data(char *src, char *dst, unsigned len)
{
	bcopy(&src[3], &dst[0], len - 3);
}
int main(void)
{
	static char src[20], dst[20];
	init_data(src, sizeof src);
	recopy_data(src, dst, sizeof src);
	return dst[0] + dst[1];
}
EOC
cyn=bcopy
set d_bcopy
eval $trylink