Update copyright dates
[xfstests-dev.git] / dmapi / src / suite2 / src / mm_fill.c
1 /*
2  * Copyright (c) 2000-2001 Silicon Graphics, Inc.  All Rights Reserved.
3  * 
4  * This program is free software; you can redistribute it and/or modify it
5  * under the terms of version 2 of the GNU General Public License as
6  * published by the Free Software Foundation.
7  * 
8  * This program is distributed in the hope that it would be useful, but
9  * WITHOUT ANY WARRANTY; without even the implied warranty of
10  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
11  * 
12  * Further, this software is distributed without any warranty that it is
13  * free of the rightful claim of any third person regarding infringement
14  * or the like.  Any license provided herein, whether implied or
15  * otherwise, applies only to this software file.  Patent licenses, if
16  * any, provided herein do not apply to combinations of this program with
17  * other software, or any other product whatsoever.
18  * 
19  * You should have received a copy of the GNU General Public License along
20  * with this program; if not, write the Free Software Foundation, Inc., 59
21  * Temple Place - Suite 330, Boston MA 02111-1307, USA.
22  * 
23  * Contact information: Silicon Graphics, Inc., 1600 Amphitheatre Pkwy,
24  * Mountain View, CA  94043, or:
25  * 
26  * http://www.sgi.com 
27  * 
28  * For further information regarding this notice, see: 
29  * 
30  * http://oss.sgi.com/projects/GenInfo/SGIGPLNoticeExplan/
31  */
32 /*
33  *      mmap_fill
34  * 
35  *      use memory mapping to fill a filesystem! :)
36  */
37 #include <stdio.h>
38 #include <sys/types.h>
39 #include <sys/mman.h>
40 #include <sys/fcntl.h>
41 #include <sys/stat.h>
42 #include <strings.h>
43 #include <errno.h>
44
45
46 char * progname;
47 int     fd;                     /* file descriptor */
48 addr_t  ptr;                    /* mapped pointers */
49 off_t   off;
50 long long  junk[512] = { -1 };
51 long long counter;
52
53 main(int argc, char * argv[])
54
55   int i;
56   for (i=0; i<512; i++) junk[i]=-1;
57   
58
59   if ((progname = strrchr(argv[0], '/')) == NULL)
60     progname = argv[0];
61   else
62     progname++;
63   
64   if (argc < 2) {
65     fprintf(stderr,"Usage: %s filename\n", progname);
66     exit(1);
67   }
68   
69   fd = open(argv[1], O_RDWR|O_CREAT, 0644);
70   if (fd < 0) {
71     fprintf(stderr,"%s: cannot open %s\n", progname, argv[1]);
72     perror(argv[1]);
73     exit(3);
74   }
75
76   ptr = mmap64(NULL, (size_t)(0x10000000), PROT_WRITE, MAP_SHARED|MAP_AUTOGROW, fd, 0);
77   if (ptr == MAP_FAILED) {
78     fprintf(stderr,"%s: cannot mmap64 %s\n", progname, argv[1]);
79     perror(argv[1]);
80     exit(3);
81   }
82   
83   for(counter=0; ; counter++) {
84     junk[0] = counter;
85     bcopy(junk, ptr, sizeof(junk));
86     ptr+=sizeof(junk);
87   }
88   printf("%s complete.\n", progname);
89   return 0;
90 }