diff options
author | Nikos Mavrogiannopoulos <nmav@gnutls.org> | 2010-09-06 17:18:08 +0200 |
---|---|---|
committer | Nikos Mavrogiannopoulos <nmav@gnutls.org> | 2010-09-06 17:18:41 +0200 |
commit | 943f9ab50c110133a5cd1118b5b19cb09301168f (patch) | |
tree | 1cef7570d78539ad84de9ce81debb4dc12188df5 /examples/shm/shm.c | |
parent | df05d27b761295820f3b13ec31c67c0ab0198bfc (diff) | |
download | cryptodev-linux-943f9ab50c110133a5cd1118b5b19cb09301168f.tar.gz cryptodev-linux-943f9ab50c110133a5cd1118b5b19cb09301168f.tar.xz cryptodev-linux-943f9ab50c110133a5cd1118b5b19cb09301168f.zip |
run scripts/Lindent.
Diffstat (limited to 'examples/shm/shm.c')
-rw-r--r-- | examples/shm/shm.c | 114 |
1 files changed, 58 insertions, 56 deletions
diff --git a/examples/shm/shm.c b/examples/shm/shm.c index 2469115..fd2c2ce 100644 --- a/examples/shm/shm.c +++ b/examples/shm/shm.c @@ -12,7 +12,7 @@ sem_t *enc_sem, *get_sem; #define SHM_SIZE 64*1024 -void child(pid_t parent, void* mem) +void child(pid_t parent, void *mem) { char key[16]; char iv[16]; @@ -24,9 +24,9 @@ void child(pid_t parent, void* mem) memset(iv, 0x3, sizeof(iv)); sem_wait(enc_sem); - - crypto_aes_expand_key(&ctx, (void*)key, sizeof(key)); - + + crypto_aes_expand_key(&ctx, (void *)key, sizeof(key)); + memcpy(&mem_size, mem, sizeof(mem_size)); crypto_cbc_encrypt(&ctx, mem, mem_size, mem, iv); @@ -39,47 +39,48 @@ static int must_finish = 0; static void alarm_handler(int signo) { - must_finish = 1; + must_finish = 1; } static double udifftimeval(struct timeval start, struct timeval end) { - return (double)(end.tv_usec - start.tv_usec) + - (double)(end.tv_sec - start.tv_sec) * 1000 * 1000; + return (double)(end.tv_usec - start.tv_usec) + + (double)(end.tv_sec - start.tv_sec) * 1000 * 1000; } -static void value2human(double bytes, double time, double* data, double* speed,char* metric) +static void value2human(double bytes, double time, double *data, double *speed, + char *metric) { - if (bytes > 1000 && bytes < 1000*1000) { - *data = ((double)bytes)/1000; - *speed = *data/time; - strcpy(metric, "Kb"); - return; - } else if (bytes >= 1000*1000 && bytes < 1000*1000*1000) { - *data = ((double)bytes)/(1000*1000); - *speed = *data/time; - strcpy(metric, "Mb"); - return; - } else if (bytes >= 1000*1000*1000) { - *data = ((double)bytes)/(1000*1000*1000); - *speed = *data/time; - strcpy(metric, "Gb"); - return; - } else { - *data = (double)bytes; - *speed = *data/time; - strcpy(metric, "bytes"); - return; - } + if (bytes > 1000 && bytes < 1000 * 1000) { + *data = ((double)bytes) / 1000; + *speed = *data / time; + strcpy(metric, "Kb"); + return; + } else if (bytes >= 1000 * 1000 && bytes < 1000 * 1000 * 1000) { + *data = ((double)bytes) / (1000 * 1000); + *speed = *data / time; + strcpy(metric, "Mb"); + return; + } else if (bytes >= 1000 * 1000 * 1000) { + *data = ((double)bytes) / (1000 * 1000 * 1000); + *speed = *data / time; + strcpy(metric, "Gb"); + return; + } else { + *data = (double)bytes; + *speed = *data / time; + strcpy(metric, "bytes"); + return; + } } -void parent(pid_t child, void* mem) +void parent(pid_t child, void *mem) { -struct timeval start, end; -uint32_t chunksize; -double total = 0; -double secs, ddata, dspeed; -char metric[16]; + struct timeval start, end; + uint32_t chunksize; + double total = 0; + double secs, ddata, dspeed; + char metric[16]; signal(SIGALRM, alarm_handler); @@ -90,27 +91,27 @@ char metric[16]; printf("\tEncrypting in chunks of %d bytes: ", chunksize); fflush(stdout); - + total = 0; must_finish = 0; alarm(5); gettimeofday(&start, NULL); - + do { memcpy(mem, &chunksize, sizeof(chunksize)); sem_post(enc_sem); sem_wait(get_sem); - total+=chunksize; - } while(must_finish == 0); - + total += chunksize; + } while (must_finish == 0); + gettimeofday(&end, NULL); - - secs = udifftimeval(start, end)/ 1000000.0; + + secs = udifftimeval(start, end) / 1000000.0; value2human(total, secs, &ddata, &dspeed, metric); - printf ("done. %.2f %s in %.2f secs: ", ddata, metric, secs); - printf ("%.2f %s/sec\n", dspeed, metric); + printf("done. %.2f %s in %.2f secs: ", ddata, metric, secs); + printf("%.2f %s/sec\n", dspeed, metric); } } @@ -120,36 +121,37 @@ int main() int shmid, shmid2; char c, *shm, *s, *semmem; pid_t pid; - + signal(SIGUSR1, SIG_IGN); signal(SIGUSR2, SIG_IGN); - + if ((shmid = shmget(IPC_PRIVATE, SHM_SIZE, IPC_CREAT | 0660)) < 0) { perror("shmget fail"); return 1; } - if ((shm = (char *) shmat(shmid, 0, 0)) == (char *) -1) { + if ((shm = (char *)shmat(shmid, 0, 0)) == (char *)-1) { perror("shmat : parent"); return 2; } - if ((shmid2 = shmget(IPC_PRIVATE, 2*sizeof(sem_t), IPC_CREAT | 0660)) < 0) { + if ((shmid2 = + shmget(IPC_PRIVATE, 2 * sizeof(sem_t), IPC_CREAT | 0660)) < 0) { perror("shmget fail"); return 1; } - if ((semmem = (char *) shmat(shmid2, 0, 0)) == (char *) -1) { + if ((semmem = (char *)shmat(shmid2, 0, 0)) == (char *)-1) { perror("shmat : parent"); return 2; } - - enc_sem = (void*)semmem; - get_sem = (void*)semmem + sizeof(sem_t); - + + enc_sem = (void *)semmem; + get_sem = (void *)semmem + sizeof(sem_t); + sem_init(enc_sem, 1, 0); sem_init(get_sem, 1, 0); - + printf("Addresses in parent\n"); printf("shared mem: %p\n", shm); @@ -158,7 +160,7 @@ int main() *s++ = c; *s = '\0'; // terminate the sequence - switch (pid=fork()) { + switch (pid = fork()) { case -1: perror("fork"); return 3; @@ -167,7 +169,7 @@ int main() kill(pid, SIGTERM); wait(0); // let the child finish shmdt(shm); - shmctl(shmid, IPC_RMID, (struct shmid_ds *) 0); + shmctl(shmid, IPC_RMID, (struct shmid_ds *)0); break; case 0: child(getppid(), shm); |