2017-07-27 16:44:22 +08:00
|
|
|
/* Copyright (c) 2017 SiFive Inc. All rights reserved.
|
|
|
|
|
|
|
|
This copyrighted material is made available to anyone wishing to use,
|
|
|
|
modify, copy, or redistribute it subject to the terms and conditions
|
2017-08-21 10:30:30 +08:00
|
|
|
of the FreeBSD License. This program is distributed in the hope that
|
2017-07-27 16:44:22 +08:00
|
|
|
it will be useful, but WITHOUT ANY WARRANTY expressed or implied,
|
|
|
|
including the implied warranties of MERCHANTABILITY or FITNESS FOR
|
|
|
|
A PARTICULAR PURPOSE. A copy of this license is available at
|
|
|
|
http://www.opensource.org/licenses.
|
|
|
|
*/
|
|
|
|
|
|
|
|
#ifndef _SYS_STRING_H
|
|
|
|
#define _SYS_STRING_H
|
|
|
|
|
|
|
|
static __inline unsigned long __libc_detect_null(unsigned long w)
|
|
|
|
{
|
|
|
|
unsigned long mask = 0x7f7f7f7f;
|
|
|
|
if (sizeof (long) == 8)
|
|
|
|
mask = ((mask << 16) << 16) | mask;
|
|
|
|
return ~(((w & mask) + mask) | w | mask);
|
|
|
|
}
|
|
|
|
|
|
|
|
#endif
|