URL
https://opencores.org/ocsvn/openrisc_2011-10-31/openrisc_2011-10-31/trunk
Only display areas with differences |
Details |
Blame |
View Log
Rev 24 |
Rev 33 |
/*
|
/*
|
#notarget: cris*-*-elf
|
#notarget: cris*-*-elf
|
*/
|
*/
|
|
|
#define _GNU_SOURCE
|
#define _GNU_SOURCE
|
#include <string.h>
|
#include <string.h>
|
#include <stdlib.h>
|
#include <stdlib.h>
|
#include <stdio.h>
|
#include <stdio.h>
|
#include <sys/types.h>
|
#include <sys/types.h>
|
#include <sys/stat.h>
|
#include <sys/stat.h>
|
#include <fcntl.h>
|
#include <fcntl.h>
|
#include <unistd.h>
|
#include <unistd.h>
|
#include <sys/mman.h>
|
#include <sys/mman.h>
|
|
|
int main (int argc, char *argv[])
|
int main (int argc, char *argv[])
|
{
|
{
|
int fd = open (argv[0], O_RDONLY);
|
int fd = open (argv[0], O_RDONLY);
|
struct stat sb;
|
struct stat sb;
|
int size;
|
int size;
|
void *a;
|
void *a;
|
const char *str = "a string you'll only find in the program";
|
const char *str = "a string you'll only find in the program";
|
|
|
if (fd == -1)
|
if (fd == -1)
|
{
|
{
|
perror ("open");
|
perror ("open");
|
abort ();
|
abort ();
|
}
|
}
|
|
|
if (fstat (fd, &sb) < 0)
|
if (fstat (fd, &sb) < 0)
|
{
|
{
|
perror ("fstat");
|
perror ("fstat");
|
abort ();
|
abort ();
|
}
|
}
|
|
|
size = sb.st_size;
|
size = sb.st_size;
|
|
|
/* We want to test mmapping a size that isn't exactly a page. */
|
/* We want to test mmapping a size that isn't exactly a page. */
|
if ((size & 8191) == 0)
|
if ((size & 8191) == 0)
|
size--;
|
size--;
|
|
|
a = mmap (NULL, size, PROT_READ, MAP_PRIVATE, fd, 0);
|
a = mmap (NULL, size, PROT_READ, MAP_PRIVATE, fd, 0);
|
|
|
if (memmem (a, size, str, strlen (str) + 1) == NULL)
|
if (memmem (a, size, str, strlen (str) + 1) == NULL)
|
abort ();
|
abort ();
|
|
|
printf ("pass\n");
|
printf ("pass\n");
|
exit (0);
|
exit (0);
|
}
|
}
|
|
|
© copyright 1999-2024
OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.