xfstests: eliminate some warnings under dmapi/src

Eliminate build warnings reported on files located under these
subdirectories:
    dmapi/src/common/cmd/
    dmapi/src/common/lib/
    dmapi/src/sample_hsm/
    dmapi/src/simple/

Signed-off-by: Alex Elder <aelder@sgi.com>
Reviewed-by: Dave Chinner <dchinner@redhat.com>
This commit is contained in:
Alex Elder
2011-03-04 19:37:56 +00:00
parent b16ef33889
commit 3d3751a7b3
11 changed files with 85 additions and 73 deletions
+14 -7
View File
@@ -73,7 +73,9 @@ main(
dm_sessid_t sid = DM_NO_SESSION; dm_sessid_t sid = DM_NO_SESSION;
char *object = NULL; char *object = NULL;
dm_off_t offset = 0; dm_off_t offset = 0;
long long lltemp;
dm_size_t length = 1; dm_size_t length = 1;
unsigned long long ulltemp;
char *bufp = NULL; char *bufp = NULL;
void *hanp; void *hanp;
size_t hlen; size_t hlen;
@@ -82,10 +84,11 @@ main(
int opt; int opt;
int i; int i;
char *storefile = NULL; char *storefile = NULL;
int storefd; int storefd = 0;
int exit_status = 0; int exit_status = 0;
if (Progname = strrchr(argv[0], '/')) { Progname = strrchr(argv[0], '/');
if (Progname) {
Progname++; Progname++;
} else { } else {
Progname = argv[0]; Progname = argv[0];
@@ -96,10 +99,12 @@ main(
while ((opt = getopt(argc, argv, "o:l:s:c:S:")) != EOF) { while ((opt = getopt(argc, argv, "o:l:s:c:S:")) != EOF) {
switch (opt) { switch (opt) {
case 'o': case 'o':
sscanf(optarg, "%lld", &offset); sscanf(optarg, "%lld", &lltemp);
offset = (dm_off_t) lltemp;
break; break;
case 'l': case 'l':
sscanf(optarg, "%llu", &length); sscanf(optarg, "%llu", &ulltemp);
length = (dm_size_t) ulltemp;
break; break;
case 's': case 's':
sid = atol(optarg); sid = atol(optarg);
@@ -141,7 +146,8 @@ main(
sufficiently big boundary. sufficiently big boundary.
*/ */
if ((bufp = memalign(4096, length)) == NULL) { if ((bufp = memalign(4096, length)) == NULL) {
fprintf(stderr, "malloc of %llu bytes failed\n", length); fprintf(stderr, "malloc of %llu bytes failed\n",
(unsigned long long) length);
exit(1); exit(1);
} }
memset(bufp, '\0', length); memset(bufp, '\0', length);
@@ -168,8 +174,9 @@ main(
fprintf(stderr, "dm_read_invis failed, %s\n", strerror(errno)); fprintf(stderr, "dm_read_invis failed, %s\n", strerror(errno));
exit_status++; exit_status++;
} else if (rc != length) { } else if (rc != length) {
fprintf(stderr, "dm_read_invis expected to read %lld bytes, actually " fprintf(stderr, "dm_read_invis expected to read %llu bytes, actually "
"read %lld\n", length, rc); "read %lld\n", (unsigned long long) length,
(long long) rc);
exit_status++; exit_status++;
} }
+2 -1
View File
@@ -86,7 +86,8 @@ main(
int opt; int opt;
int i; int i;
if (Progname = strrchr(argv[0], '/')) { Progname = strrchr(argv[0], '/');
if (Progname) {
Progname++; Progname++;
} else { } else {
Progname = argv[0]; Progname = argv[0];
+2 -1
View File
@@ -70,7 +70,8 @@ main(
int opt; int opt;
int Fflag = 0; int Fflag = 0;
if (Progname = strrchr(argv[0], '/')) { Progname = strrchr(argv[0], '/');
if (Progname) {
Progname++; Progname++;
} else { } else {
Progname = argv[0]; Progname = argv[0];
+13 -6
View File
@@ -71,7 +71,9 @@ main(
dm_sessid_t sid = DM_NO_SESSION; dm_sessid_t sid = DM_NO_SESSION;
char *object = NULL; char *object = NULL;
dm_off_t offset = 0; dm_off_t offset = 0;
long long lltemp;
dm_size_t length = 1; dm_size_t length = 1;
unsigned long long ulltemp;
u_char ch = 'X'; u_char ch = 'X';
void *bufp = NULL; void *bufp = NULL;
void *hanp; void *hanp;
@@ -83,7 +85,8 @@ main(
int storefd; int storefd;
int exit_status = 0; int exit_status = 0;
if (Progname = strrchr(argv[0], '/')) { Progname = strrchr(argv[0], '/');
if (Progname) {
Progname++; Progname++;
} else { } else {
Progname = argv[0]; Progname = argv[0];
@@ -97,10 +100,12 @@ main(
ch = *optarg; ch = *optarg;
break; break;
case 'o': case 'o':
sscanf(optarg, "%lld", &offset); sscanf(optarg, "%lld", &lltemp);
offset = (dm_off_t) offset;
break; break;
case 'l': case 'l':
sscanf(optarg, "%llu", &length); sscanf(optarg, "%llu", &ulltemp);
length = (dm_size_t) ulltemp;
break; break;
case 's': case 's':
sid = atol(optarg); sid = atol(optarg);
@@ -135,7 +140,8 @@ main(
sufficiently big boundary. sufficiently big boundary.
*/ */
if ((bufp = memalign(4096, length)) == NULL) { if ((bufp = memalign(4096, length)) == NULL) {
fprintf(stderr, "malloc of %llu bytes failed\n", length); fprintf(stderr, "malloc of %llu bytes failed\n",
(unsigned long long) length);
exit(1); exit(1);
} }
memset(bufp, ch, length); memset(bufp, ch, length);
@@ -170,8 +176,9 @@ main(
fprintf(stderr, "dm_write_invis failed, %s\n", strerror(errno)); fprintf(stderr, "dm_write_invis failed, %s\n", strerror(errno));
exit_status++; exit_status++;
} else if (rc != length) { } else if (rc != length) {
fprintf(stderr, "dm_write_invis expected to write %lld bytes, actually " fprintf(stderr, "dm_write_invis expected to write %llu bytes, "
"wrote %lld\n", length, rc); "actually wrote %lld\n",
(unsigned long long) length, (long long)rc);
exit_status++; exit_status++;
} }
dm_handle_free(hanp, hlen); dm_handle_free(hanp, hlen);
+4 -4
View File
@@ -81,8 +81,8 @@ find_test_session(
allocelem = nelem; allocelem = nelem;
sidbuf = realloc(sidbuf, nelem * sizeof(*sidbuf)); sidbuf = realloc(sidbuf, nelem * sizeof(*sidbuf));
if (sidbuf == NULL) { if (sidbuf == NULL) {
fprintf(stderr, "realloc of %d bytes failed\n", fprintf(stderr, "realloc of %lu bytes failed\n",
nelem * sizeof(*sidbuf)); (unsigned long) nelem * sizeof(*sidbuf));
exit(1); exit(1);
} }
} }
@@ -142,8 +142,8 @@ find_test_session(
allocelem = nelem; allocelem = nelem;
sidbuf = realloc(sidbuf, nelem * sizeof(*sidbuf)); sidbuf = realloc(sidbuf, nelem * sizeof(*sidbuf));
if (sidbuf == NULL) { if (sidbuf == NULL) {
fprintf(stderr, "realloc of %d bytes failed\n", fprintf(stderr, "realloc of %lu bytes failed\n",
nelem * sizeof(*sidbuf)); (unsigned long) nelem * sizeof(*sidbuf));
exit(1); exit(1);
} }
} }
+8 -8
View File
@@ -132,31 +132,31 @@ print_one_mount_event(
if (hanp1 && hlen1) { if (hanp1 && hlen1) {
hantoa(hanp1, hlen1, hans1); hantoa(hanp1, hlen1, hans1);
} else { } else {
sprintf(hans1, "<BAD HANDLE, hlen %d>", hlen1); sprintf(hans1, "<BAD HANDLE, hlen %zd>", hlen1);
} }
if (hanp2 && hlen2) { if (hanp2 && hlen2) {
hantoa(hanp2, hlen2, hans2); hantoa(hanp2, hlen2, hans2);
} else { } else {
sprintf(hans2, "<BAD HANDLE, hlen %d>", hlen2); sprintf(hans2, "<BAD HANDLE, hlen %zd>", hlen2);
} }
if (hanp3 && hlen3) { if (hanp3 && hlen3) {
hantoa(hanp3, hlen3, hans3); hantoa(hanp3, hlen3, hans3);
} else { } else {
sprintf(hans3, "<BAD HANDLE, hlen %d>", hlen3); sprintf(hans3, "<BAD HANDLE, hlen %zd>", hlen3);
} }
if (namp1 && nlen1) { if (namp1 && nlen1) {
strncpy(nams1, namp1, nlen1); strncpy(nams1, namp1, nlen1);
if (nlen1 != sizeof(nams1)) if (nlen1 != sizeof(nams1))
nams1[nlen1] = '\0'; nams1[nlen1] = '\0';
} else { } else {
sprintf(nams1, "<BAD STRING, nlen %d>", nlen1); sprintf(nams1, "<BAD STRING, nlen %zd>", nlen1);
} }
if (namp2 && nlen2) { if (namp2 && nlen2) {
strncpy(nams2, namp2, nlen2); strncpy(nams2, namp2, nlen2);
if (nlen2 != sizeof(nams2)) if (nlen2 != sizeof(nams2))
nams2[nlen2] = '\0'; nams2[nlen2] = '\0';
} else { } else {
sprintf(nams2, "<BAD STRING, nlen %d>", nlen2); sprintf(nams2, "<BAD STRING, nlen %zd>", nlen2);
} }
printf(VALS VALS VALS VALS VALS VALD, printf(VALS VALS VALS VALS VALS VALD,
@@ -183,13 +183,13 @@ print_one_data_event(
if (hanp && hlen) { if (hanp && hlen) {
hantoa(hanp, hlen, handle); hantoa(hanp, hlen, handle);
} else { } else {
sprintf(handle, "<BAD HANDLE, hlen %d>", hlen); sprintf(handle, "<BAD HANDLE, hlen %zd>", hlen);
} }
printf(VALS VALLLD VALLLD, printf(VALS VALLLD VALLLD,
"file_handle", handle, "file_handle", handle,
"offset", msg_de->de_offset, "offset", (long long) msg_de->de_offset,
"length", msg_de->de_length); "length", (long long) msg_de->de_length);
return(0); return(0);
} }
+32 -36
View File
@@ -234,12 +234,12 @@ print_handle(
char handle_str[HANDLE_STR]; char handle_str[HANDLE_STR];
if (hlen > HANDLE_LEN) { if (hlen > HANDLE_LEN) {
printf("-- invalid hlen length %d --\n", hlen); printf("-- invalid hlen length %zd --\n", hlen);
return; return;
} }
printf("print_handle: "); printf("print_handle: ");
printf("%d\t", hlen); printf("%zd\t", hlen);
hantoa(hanp, hlen, handle_str); hantoa(hanp, hlen, handle_str);
printf("%s\n ", handle_str); printf("%s\n ", handle_str);
} }
@@ -257,10 +257,10 @@ print_victim(
return; return;
} }
printf("%d\t", hlen); printf("%zd\t", hlen);
hantoa(hanp, hlen, handle_str); hantoa(hanp, hlen, handle_str);
printf("%s ", handle_str); printf("%s ", handle_str);
printf("\t%lld \n", fsize); printf("\t%lld \n", (long long) fsize);
} }
@@ -583,20 +583,17 @@ validate_state(
if (report_errors) { if (report_errors) {
fprintf(stdout, "ERROR:dmstat->dt_dev 0x%llx, " fprintf(stdout, "ERROR:dmstat->dt_dev 0x%llx, "
"statb.st_dev 0x%llx\n", "statb.st_dev 0x%llx\n",
(uint64_t)dmstat->dt_dev, (unsigned long long) dmstat->dt_dev,
(uint64_t)statb.st_dev); (unsigned long long) statb.st_dev);
} }
errors++; errors++;
} }
if (dmstat->dt_ino != statb.st_ino) { if (dmstat->dt_ino != statb.st_ino) {
if (report_errors) { if (report_errors) {
fprintf(stdout, "ERROR:dmstat->dt_ino %llx, " fprintf(stdout, "ERROR:dmstat->dt_ino %llx, "
#if defined(linux) || (defined(__sgi) && (_MIPS_SIM != _MIPS_SIM_ABI32))
"statb.st_ino %llx\n", "statb.st_ino %llx\n",
#else (unsigned long long) dmstat->dt_ino,
"statb.st_ino %x\n", (unsigned long long) statb.st_ino);
#endif
dmstat->dt_ino, statb.st_ino);
} }
errors++; errors++;
} }
@@ -620,9 +617,10 @@ validate_state(
} }
if (dmstat->dt_nlink != statb.st_nlink) { if (dmstat->dt_nlink != statb.st_nlink) {
if (report_errors) { if (report_errors) {
fprintf(stdout, "ERROR:dmstat->dt_nlink %d, " fprintf(stdout, "ERROR:dmstat->dt_nlink %u, "
"statb.st_nlink %d\n", dmstat->dt_nlink, "statb.st_nlink %u\n",
statb.st_nlink); (unsigned int) dmstat->dt_nlink,
(unsigned int) statb.st_nlink);
} }
errors++; errors++;
} }
@@ -646,20 +644,17 @@ validate_state(
if (report_errors) { if (report_errors) {
fprintf(stdout, "ERROR:dmstat->dt_rdev 0x%llx, " fprintf(stdout, "ERROR:dmstat->dt_rdev 0x%llx, "
"statb.st_rdev 0x%llx\n", "statb.st_rdev 0x%llx\n",
(uint64_t)dmstat->dt_rdev, (unsigned long long) dmstat->dt_rdev,
(uint64_t)statb.st_rdev); (unsigned long long) statb.st_rdev);
} }
errors++; errors++;
} }
if (dmstat->dt_size != statb.st_size) { if (dmstat->dt_size != statb.st_size) {
if (report_errors) { if (report_errors) {
fprintf(stdout, "ERROR:dmstat->dt_size %lld, " fprintf(stdout, "ERROR:dmstat->dt_size %lld, "
#if defined(linux) || (defined(__sgi) && (_MIPS_SIM != _MIPS_SIM_ABI32))
"statb.st_size %lld\n", "statb.st_size %lld\n",
#else (long long) dmstat->dt_size,
"statb.st_size %d\n", (long long) statb.st_size);
#endif
dmstat->dt_size, statb.st_size);
} }
errors++; errors++;
} }
@@ -706,12 +701,9 @@ validate_state(
if (dmstat->dt_blocks != statb.st_blocks) { if (dmstat->dt_blocks != statb.st_blocks) {
if (report_errors) { if (report_errors) {
fprintf(stdout, "ERROR:dmstat->dt_blocks %lld, " fprintf(stdout, "ERROR:dmstat->dt_blocks %lld, "
#if defined(linux) || (defined(__sgi) && (_MIPS_SIM != _MIPS_SIM_ABI32))
"statb.st_blocks %lld\n", "statb.st_blocks %lld\n",
#else (long long) dmstat->dt_blocks,
"statb.st_blocks %d\n", (long long) statb.st_blocks);
#endif
dmstat->dt_blocks, statb.st_blocks);
} }
errors++; errors++;
} }
@@ -896,16 +888,20 @@ print_state(
{ {
/* Print all the stat block fields. */ /* Print all the stat block fields. */
fprintf(stdout, "dt_dev 0x%llx\n", (uint64_t)dmstat->dt_dev); fprintf(stdout, "dt_dev 0x%llx\n",
fprintf(stdout, "dt_ino %llx\n", dmstat->dt_ino); (unsigned long long) dmstat->dt_dev);
fprintf(stdout, "dt_ino %llx\n",
(unsigned long long) dmstat->dt_ino);
fprintf(stdout, "dt_mode (type) %s\n", fprintf(stdout, "dt_mode (type) %s\n",
mode_to_string(dmstat->dt_mode)); mode_to_string(dmstat->dt_mode));
fprintf(stdout, "dt_mode (perm) 0%o\n", dmstat->dt_mode & S_MASK); fprintf(stdout, "dt_mode (perm) 0%o\n", dmstat->dt_mode & S_MASK);
fprintf(stdout, "dt_nlink %d\n", dmstat->dt_nlink); fprintf(stdout, "dt_nlink %d\n", dmstat->dt_nlink);
fprintf(stdout, "dt_uid %d\n", dmstat->dt_uid); fprintf(stdout, "dt_uid %d\n", dmstat->dt_uid);
fprintf(stdout, "dt_gid %d\n", dmstat->dt_gid); fprintf(stdout, "dt_gid %d\n", dmstat->dt_gid);
fprintf(stdout, "dt_rdev 0x%llx\n", (uint64_t)dmstat->dt_rdev); fprintf(stdout, "dt_rdev 0x%llx\n",
fprintf(stdout, "dt_size %lld\n", dmstat->dt_size); (unsigned long long) dmstat->dt_rdev);
fprintf(stdout, "dt_size %lld\n",
(unsigned long long) dmstat->dt_size);
fprintf(stdout, "dt_atime %s\n", fprintf(stdout, "dt_atime %s\n",
date_to_string(dmstat->dt_atime)); date_to_string(dmstat->dt_atime));
@@ -915,7 +911,7 @@ print_state(
date_to_string(dmstat->dt_ctime)); date_to_string(dmstat->dt_ctime));
fprintf(stdout, "dt_blksize %d\n", dmstat->dt_blksize); fprintf(stdout, "dt_blksize %d\n", dmstat->dt_blksize);
fprintf(stdout, "dt_blocks %lld\n", dmstat->dt_blocks); fprintf(stdout, "dt_blocks %lld\n", (long long) dmstat->dt_blocks);
#if defined(__sgi) || defined(linux) #if defined(__sgi) || defined(linux)
fprintf(stdout, "dt_xfs_igen %d\n", dmstat->dt_xfs_igen); fprintf(stdout, "dt_xfs_igen %d\n", dmstat->dt_xfs_igen);
@@ -945,22 +941,22 @@ extern void
print_line( print_line(
dm_stat_t *dmstat) dm_stat_t *dmstat)
{ {
fprintf(stdout, "0x%llx|", (uint64_t)dmstat->dt_dev); fprintf(stdout, "0x%llx|", (unsigned long long) dmstat->dt_dev);
fprintf(stdout, "%llx|", dmstat->dt_ino); fprintf(stdout, "%llx|", (unsigned long long) dmstat->dt_ino);
fprintf(stdout, "%s|", mode_to_string(dmstat->dt_mode)); fprintf(stdout, "%s|", mode_to_string(dmstat->dt_mode));
fprintf(stdout, "0%o|", dmstat->dt_mode & S_MASK); fprintf(stdout, "0%o|", dmstat->dt_mode & S_MASK);
fprintf(stdout, "%d|", dmstat->dt_nlink); fprintf(stdout, "%d|", dmstat->dt_nlink);
fprintf(stdout, "%d|", dmstat->dt_uid); fprintf(stdout, "%d|", dmstat->dt_uid);
fprintf(stdout, "%d|", dmstat->dt_gid); fprintf(stdout, "%d|", dmstat->dt_gid);
fprintf(stdout, "0x%llx|", (uint64_t)dmstat->dt_rdev); fprintf(stdout, "0x%llx|", (unsigned long long) dmstat->dt_rdev);
fprintf(stdout, "%lld|", dmstat->dt_size); fprintf(stdout, "%lld|", (long long) dmstat->dt_size);
fprintf(stdout, "%s|", date_to_string(dmstat->dt_atime)); fprintf(stdout, "%s|", date_to_string(dmstat->dt_atime));
fprintf(stdout, "%s|", date_to_string(dmstat->dt_mtime)); fprintf(stdout, "%s|", date_to_string(dmstat->dt_mtime));
fprintf(stdout, "%s|", date_to_string(dmstat->dt_ctime)); fprintf(stdout, "%s|", date_to_string(dmstat->dt_ctime));
fprintf(stdout, "%d|", dmstat->dt_blksize); fprintf(stdout, "%d|", dmstat->dt_blksize);
fprintf(stdout, "%lld|", dmstat->dt_blocks); fprintf(stdout, "%lld|", (long long) dmstat->dt_blocks);
fprintf(stdout, "%d|", dmstat->dt_xfs_igen); fprintf(stdout, "%d|", dmstat->dt_xfs_igen);
fprintf(stdout, "%s|", xflags_to_string(dmstat->dt_xfs_xflags)); fprintf(stdout, "%s|", xflags_to_string(dmstat->dt_xfs_xflags));
+3 -3
View File
@@ -78,7 +78,7 @@ verify_size(
size = strtol(str,0,0); size = strtol(str,0,0);
if (size < 0 || size >= LONG_MAX ) { if (size < 0 || size >= LONG_MAX ) {
printf("Size %lld is invalid \n", size); printf("Size %lld is invalid \n", (long long) size);
return(1); return(1);
} }
@@ -87,13 +87,13 @@ verify_size(
cp++; cp++;
if (*cp == 'k' || *cp == 'K') { if (*cp == 'k' || *cp == 'K') {
if ( size >= (u_int) MAX_K) { if ( size >= (u_int) MAX_K) {
printf("Size %lld is invalid\n", size); printf("Size %lld is invalid\n", (long long) size);
return(1); return(1);
} }
size *= 1024; size *= 1024;
} else if (*cp == 'm' || *cp == 'M') { } else if (*cp == 'm' || *cp == 'M') {
if ( size >= (u_int) MAX_M) { if ( size >= (u_int) MAX_M) {
printf("Size %lld is invalid\n", size); printf("Size %lld is invalid\n", (long long) size);
return(1); return(1);
} }
size *= (1024*1024); size *= (1024*1024);
+4 -4
View File
@@ -183,8 +183,8 @@ mr_info(
printf("\n"); printf("\n");
for (i=0; i<ret; i++) { for (i=0; i<ret; i++) {
printf("\tRegion %d:\n", i); printf("\tRegion %d:\n", i);
printf("\t\toffset %lld, ", rgn[i].rg_offset); printf("\t\toffset %lld, ", (long long) rgn[i].rg_offset);
printf("size %lld, ", rgn[i].rg_size); printf("size %llu, ", (unsigned long long) rgn[i].rg_size);
printf("flags 0x%x", rgn[i].rg_flags); printf("flags 0x%x", rgn[i].rg_flags);
printf(" ( "); printf(" ( ");
if (rgn[i].rg_flags & DM_REGION_NOEVENT) if (rgn[i].rg_flags & DM_REGION_NOEVENT)
@@ -312,8 +312,8 @@ alloc_info(
printf("(resident): "); printf("(resident): ");
if (ext[i].ex_type == DM_EXTENT_HOLE) if (ext[i].ex_type == DM_EXTENT_HOLE)
printf("(hole): "); printf("(hole): ");
printf("offset %lld, ", ext[i].ex_offset); printf("offset %lld, ", (long long) ext[i].ex_offset);
printf("len %lld\n", ext[i].ex_length); printf("len %llu\n", (unsigned long long) ext[i].ex_length);
} }
} while (more == 1); } while (more == 1);
return(0); return(0);
+2 -2
View File
@@ -51,7 +51,7 @@ main( int argc, char **argv )
buflen = atoi( optarg ); buflen = atoi( optarg );
break; break;
case 'q': case 'q':
printf("dm_eventmsg_t=%d\n", sizeof(dm_eventmsg_t) ); printf("dm_eventmsg_t=%zd\n", sizeof(dm_eventmsg_t) );
exit(0); exit(0);
case 'h': case 'h':
fprintf(stderr, "Usage: %s <-s sid> <-t token> [-l buflen]\n", argv[0]); fprintf(stderr, "Usage: %s <-s sid> <-t token> [-l buflen]\n", argv[0]);
@@ -75,6 +75,6 @@ main( int argc, char **argv )
ret = dm_find_eventmsg( sid, token, buflen, &msg, &rlen ); ret = dm_find_eventmsg( sid, token, buflen, &msg, &rlen );
printf( "ret=%d\n", ret ); printf( "ret=%d\n", ret );
printf( "rlen=%d\n", rlen ); printf( "rlen=%zd\n", rlen );
exit(0); exit(0);
} }
+1 -1
View File
@@ -67,7 +67,7 @@ main( int argc, char **argv )
ret = dm_query_session( sid, buflen, sessinfo, &rlen ); ret = dm_query_session( sid, buflen, sessinfo, &rlen );
printf( "ret=%d\n", ret ); printf( "ret=%d\n", ret );
printf( "rlen=%d\n", rlen ); printf( "rlen=%zd\n", rlen );
if( ret != -1 ) if( ret != -1 )
printf( "sessinfo=%s\n", sessinfo ); printf( "sessinfo=%s\n", sessinfo );
exit(0); exit(0);