ff4ff35918
Red Bear OS is a full fork. All sources must be available from git clone with zero network access. Removed gitignore rules that excluded fetched source trees under recipes/*/source/, local/recipes/kde/*/source/, local/recipes/qt/*/source/, and vendor source trees. Build artifacts (target/, build/, source.tar, *.o, *.so) remain excluded. 127291 files added — kernel, relibc, base, bootloader, pkgar, all KDE/Qt frameworks, mesa, wayland, DRM drivers, and every other recipe source.
80 lines
1.2 KiB
C
80 lines
1.2 KiB
C
extern void abort (void);
|
|
extern int inside_main;
|
|
typedef __SIZE_TYPE__ size_t;
|
|
|
|
#define TEST_ABORT if (inside_main) abort()
|
|
|
|
void *
|
|
my_memcpy (void *d, const void *s, size_t n)
|
|
{
|
|
char *dst = (char *) d;
|
|
const char *src = (const char *) s;
|
|
while (n--)
|
|
*dst++ = *src++;
|
|
return (char *) d;
|
|
}
|
|
|
|
void
|
|
my_bcopy (const void *s, void *d, size_t n)
|
|
{
|
|
char *dst = (char *) d;
|
|
const char *src = (const char *) s;
|
|
if (src >= dst)
|
|
while (n--)
|
|
*dst++ = *src++;
|
|
else
|
|
{
|
|
dst += n;
|
|
src += n;
|
|
while (n--)
|
|
*--dst = *--src;
|
|
}
|
|
}
|
|
|
|
void *
|
|
my_memset (void *d, int c, size_t n)
|
|
{
|
|
char *dst = (char *) d;
|
|
while (n--)
|
|
*dst++ = c;
|
|
return (char *) d;
|
|
}
|
|
|
|
void
|
|
my_bzero (void *d, size_t n)
|
|
{
|
|
char *dst = (char *) d;
|
|
while (n--)
|
|
*dst++ = '\0';
|
|
}
|
|
|
|
void *
|
|
memcpy (void *d, const void *s, size_t n)
|
|
{
|
|
void *result = my_memcpy (d, s, n);
|
|
TEST_ABORT;
|
|
return result;
|
|
}
|
|
|
|
void
|
|
bcopy (const void *s, void *d, size_t n)
|
|
{
|
|
my_bcopy (s, d, n);
|
|
TEST_ABORT;
|
|
}
|
|
|
|
void *
|
|
memset (void *d, int c, size_t n)
|
|
{
|
|
void *result = my_memset (d, c, n);
|
|
TEST_ABORT;
|
|
return result;
|
|
}
|
|
|
|
void
|
|
bzero (void *d, size_t n)
|
|
{
|
|
my_bzero (d, n);
|
|
TEST_ABORT;
|
|
}
|