CS318 - Pintos
Pintos source browser for JHU CS318 course
page-shuffle.c
Go to the documentation of this file.
1 /** Shuffles a 128 kB data buffer 10 times, printing the checksum
2  after each time. */
3 
4 #include <stdbool.h>
5 #include "tests/arc4.h"
6 #include "tests/cksum.h"
7 #include "tests/lib.h"
8 #include "tests/main.h"
9 
10 #define SIZE (128 * 1024)
11 
12 static char buf[SIZE];
13 
14 void
15 test_main (void)
16 {
17  size_t i;
18 
19  /* Initialize. */
20  for (i = 0; i < sizeof buf; i++)
21  buf[i] = i * 257;
22  msg ("init: cksum=%lu", cksum (buf, sizeof buf));
23 
24  /* Shuffle repeatedly. */
25  for (i = 0; i < 10; i++)
26  {
27  shuffle (buf, sizeof buf, 1);
28  msg ("shuffle %zu: cksum=%lu", i, cksum (buf, sizeof buf));
29  }
30 }
lib.h
SIZE
#define SIZE
Shuffles a 128 kB data buffer 10 times, printing the checksum after each time.
Definition: page-shuffle.c:10
test_main
void test_main(void)
tests/main.h
Definition: page-shuffle.c:15
stdbool.h
shuffle
static void shuffle(struct value[], size_t)
arc4.h
arc4::i
uint8_t i
Definition: arc4.h:11
cksum.h
cksum
unsigned long cksum(const void *b_, size_t n)
This is the algorithm used by the Posix ‘cksum’ utility.
Definition: cksum.c:63
main.h
msg
void msg(const char *format,...)
Definition: lib.c:28
buf
static char buf[SIZE]
Definition: page-shuffle.c:12