From owner-svn-src-head@freebsd.org Sat Jun 2 17:57:10 2018 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id CA926FDD1D3; Sat, 2 Jun 2018 17:57:10 +0000 (UTC) (envelope-from mjg@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 74B916F2F7; Sat, 2 Jun 2018 17:57:10 +0000 (UTC) (envelope-from mjg@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 55D11131B8; Sat, 2 Jun 2018 17:57:10 +0000 (UTC) (envelope-from mjg@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id w52HvA5a092859; Sat, 2 Jun 2018 17:57:10 GMT (envelope-from mjg@FreeBSD.org) Received: (from mjg@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id w52Hv9Lh092856; Sat, 2 Jun 2018 17:57:09 GMT (envelope-from mjg@FreeBSD.org) Message-Id: <201806021757.w52Hv9Lh092856@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: mjg set sender to mjg@FreeBSD.org using -f From: Mateusz Guzik Date: Sat, 2 Jun 2018 17:57:09 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r334533 - in head/sys: libkern sys X-SVN-Group: head X-SVN-Commit-Author: mjg X-SVN-Commit-Paths: in head/sys: libkern sys X-SVN-Commit-Revision: 334533 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.26 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 02 Jun 2018 17:57:11 -0000 Author: mjg Date: Sat Jun 2 17:57:09 2018 New Revision: 334533 URL: https://svnweb.freebsd.org/changeset/base/334533 Log: libkern: tidy up memset 1. Remove special-casing of 0 as it just results in an extra function call. This is clearly pessimal. 2. Drop the inline stuff. For the most part it is much better served with __builtin_memset (coming later). 3. Move the declaration to systm.h to match other funcs. Archs are encouraged to implement the variant for their own platform so that this implementation can be dropped. Modified: head/sys/libkern/memset.c head/sys/sys/libkern.h head/sys/sys/systm.h Modified: head/sys/libkern/memset.c ============================================================================== --- head/sys/libkern/memset.c Sat Jun 2 16:28:10 2018 (r334532) +++ head/sys/libkern/memset.c Sat Jun 2 17:57:09 2018 (r334533) @@ -37,10 +37,7 @@ memset(void *b, int c, size_t len) { char *bb; - if (c == 0) - (bzero)(b, len); - else - for (bb = (char *)b; len--; ) - *bb++ = c; + for (bb = (char *)b; len--; ) + *bb++ = c; return (b); } Modified: head/sys/sys/libkern.h ============================================================================== --- head/sys/sys/libkern.h Sat Jun 2 16:28:10 2018 (r334532) +++ head/sys/sys/libkern.h Sat Jun 2 17:57:09 2018 (r334533) @@ -224,23 +224,6 @@ uint32_t armv8_crc32c(uint32_t, const unsigned char *, #endif #endif - -LIBKERN_INLINE void *memset(void *, int, size_t); -#ifdef LIBKERN_BODY -LIBKERN_INLINE void * -memset(void *b, int c, size_t len) -{ - char *bb; - - if (c == 0) - bzero(b, len); - else - for (bb = (char *)b; len--; ) - *bb++ = c; - return (b); -} -#endif - static __inline char * index(const char *p, int ch) { Modified: head/sys/sys/systm.h ============================================================================== --- head/sys/sys/systm.h Sat Jun 2 16:28:10 2018 (r334532) +++ head/sys/sys/systm.h Sat Jun 2 17:57:09 2018 (r334533) @@ -274,6 +274,7 @@ void bzero(void * _Nonnull buf, size_t len); }) void explicit_bzero(void * _Nonnull, size_t); +void *memset(void * _Nonnull buf, int c, size_t len); void *memcpy(void * _Nonnull to, const void * _Nonnull from, size_t len); #define memcpy(to, from, len) __builtin_memcpy(to, from, len) void *memmove(void * _Nonnull dest, const void * _Nonnull src, size_t n);