| /* Copyright (c) 2014 Google Inc., All Rights Reserved. | 
 |  * Kevin Klues <klueska@google.com> | 
 |  * See LICENSE for details. */ | 
 |  | 
 | #include <parlib/serialize.h> | 
 | #include <stdint.h> | 
 | #include <stdio.h> | 
 |  | 
 | int main(int argc, char **argv, char **envp) | 
 | { | 
 | 	struct serialized_data *sd = serialize_argv_envp(argv, envp); | 
 | 	size_t *kargc = (size_t*)sd->buf; | 
 | 	size_t *kenvc = (size_t*)(sd->buf + sizeof(size_t)); | 
 | 	char **kargv = (char**)(sd->buf + 2*sizeof(size_t)); | 
 | 	char **kenvp = (char**)(kargv + *kargc); | 
 | 	uintptr_t bufbase = (uintptr_t)(kenvp + *kenvc); | 
 |  | 
 | 	printf("argc: %lu\n", *kargc); | 
 | 	printf("envc: %lu\n", *kenvc); | 
 | 	for (int i = 0; i < *kargc; i++) | 
 | 		printf("argv[%d]: %s\n", i, kargv[i] + bufbase); | 
 | 	for (int i = 0; i < *kenvc; i++) | 
 | 		printf("envp[%d]: %s\n", i, kenvp[i] + bufbase); | 
 | 	free_serialized_data(sd); | 
 | 	return 0; | 
 | } |