aboutsummaryrefslogtreecommitdiff
path: root/sys/amd64
diff options
context:
space:
mode:
authorConrad Meyer <cem@FreeBSD.org>2020-05-11 22:57:21 +0000
committerConrad Meyer <cem@FreeBSD.org>2020-05-11 22:57:21 +0000
commit580744621f33383027108364dcadad718df46ffe (patch)
tree187024ccf9e3ec44b623ce2db3f6e2aac3f0887f /sys/amd64
parent294b75a880e20b6c9c198533bd421650e55fb651 (diff)
downloadsrc-580744621f33383027108364dcadad718df46ffe.tar.gz
src-580744621f33383027108364dcadad718df46ffe.zip
copystr(9): Move to deprecate [2/2]
Unlike the other copy*() functions, it does not serve to copy from one address space to another or protect against potential faults. It's just an older incarnation of the now-more-common strlcpy(). Add a coccinelle script to tools/ which can be used to mechanically convert existing instances where replacement with strlcpy is trivial. In the two cases which matched, fuse_vfsops.c and union_vfsops.c, the code was further refactored manually to simplify. Replace the declaration of copystr() in systm.h with a small macro wrapper around strlcpy. Remove N redundant MI implementations of copystr. For MIPS, this entailed inlining the assembler copystr into the only consumer, copyinstr, and making the latter a leaf function. Reviewed by: jhb Differential Revision: https://reviews.freebsd.org/D24672
Notes
Notes: svn path=/head/; revision=360944
Diffstat (limited to 'sys/amd64')
-rw-r--r--sys/amd64/amd64/support.S37
1 files changed, 0 insertions, 37 deletions
diff --git a/sys/amd64/amd64/support.S b/sys/amd64/amd64/support.S
index fdf7f771bd0d..b753dcd2a50a 100644
--- a/sys/amd64/amd64/support.S
+++ b/sys/amd64/amd64/support.S
@@ -1417,43 +1417,6 @@ copyinstr_toolong:
jmp cpystrflt_x
/*
- * copystr(from, to, maxlen, int *lencopied)
- * %rdi, %rsi, %rdx, %rcx
- */
-ENTRY(copystr)
- PUSH_FRAME_POINTER
- movq %rdx,%r8 /* %r8 = maxlen */
-
- incq %rdx
-1:
- decq %rdx
- jz 4f
- movb (%rdi),%al
- movb %al,(%rsi)
- incq %rsi
- incq %rdi
- testb %al,%al
- jnz 1b
-
- /* Success -- 0 byte reached */
- decq %rdx
- xorl %eax,%eax
-2:
- testq %rcx,%rcx
- jz 3f
- /* set *lencopied and return %rax */
- subq %rdx,%r8
- movq %r8,(%rcx)
-3:
- POP_FRAME_POINTER
- ret
-4:
- /* rdx is zero -- return ENAMETOOLONG */
- movl $ENAMETOOLONG,%eax
- jmp 2b
-END(copystr)
-
-/*
* Handling of special amd64 registers and descriptor tables etc
*/
/* void lgdt(struct region_descriptor *rdp); */