static int do_bus_bank_option (skyeye_option_t * this_option, int num_params, const char *params[]) { #if 0 int ret; ret = skyeye_config.arch->parse_mem (num_params, params); if (ret < 0) { SKYEYE_ERR ("Error: Unkonw mem bank name \"%s\"\n", params[0]); } return ret; #endif return parse_mem(num_params, params); }
void assemble_op(enum Op op) { int op1 = ((int)op) >> 16; switch (formats[op1]) { case Bra: parse_bra(op); break; case Mem: parse_mem(op); break; case Mfc: parse_mfc(op); break; case Mbr: parse_mbr(op); break; case Opr: parse_opr(op); break; case F_P: parse_fp (op); break; default: { uint64_t num; if (parse_value(&num)) assemble_pcd(op1, (int)num); break; } } }
int main(int argc, char **argv){ GtkWidget *win; t_tweet *info; t_tweet *refreshed; t_setting sets; char *get; char *mem; char *host; char count; int sockfd; int rv; pid_t pid; setbuf(stdout, NULL); setbuf(stderr, NULL); memset(sets.set_from_rc, 0, 3); sets.irc = sets.gtk_on = 0; sets.mp3player = sets.path_to_jingle = sets.browser = get = (char *)DBPTR; if(argc == 1){ /* Read from rc file */ bat_sig_rc(&sets); } else { /* Parse arguments */ rv = parse_cmdline_opts(argc, argv, &sets); if(rv < 0) { return 0; } else if(rv > 0) { /* technically else not needed */ return 10; /* bad args */ } } if(sets.path_to_jingle == (char*)DBPTR) sets.path_to_jingle = "jingles/douchebag.mp3"; if(sets.browser == (char*)DBPTR) sets.browser = "/usr/bin/firefox"; if(sets.mp3player == (char*)DBPTR) sets.mp3player = "/usr/bin/mpg123"; host = "Host: search.twitter.com\n\n"; mem = (char *)xmalloc(MAX_SIZE * sizeof(char)); sockfd = sockets_connect(); if(sockfd < 0){ printf("Cannot establish connection.\n"); return 1; } else { #ifndef SIGMANATEST get = "GET /search.json?q=@pocketnoagenda&from=adamcurry&rpp=1 HTTP/1.1\n"; #else get = "GET /search.json?q=@pocketnoagenda&from=sigmanatest&rpp=1 HTTP/1.1\n"; #endif sockets_request(sockfd, get, host, &mem, MAX_SIZE); get = (char *)xmalloc(MAX_SIZE * sizeof(char)); /* Twitter sends the Connection: close header so by RFC2616 we must close our * connection and then reconnect later. */ } info = parse_mem(mem); if(info){ /* Now to grab the "refresh_url" string from the data and attach it to * a new URL buffer and have it watch that. * For testing, I'm using the one as of Tue Nov 9 */ make_get(get, info->refresh); for(count = 0; count < MAX_ITER; count++){ sockfd = sockets_connect(); if(sockfd > 0){ memset(mem, '\0', MAX_SIZE); /* Clear out the memory so we do not get false information */ sockets_request(sockfd, get, host, &mem, MAX_SIZE); /* Returns "{\"results\":[]" if there is nothing. * Can run a while loop until this does not match. */ refreshed = parse_mem(mem); if(refreshed) break; (void)sleep(SLEEP_SECONDS); } else { printf("Cannot reestablish connection.\n"); return 1; } } if(!refreshed) printf("No bat signal was sent.\n"); else{ if(sets.irc) notice(refreshed); /* fork() and exec Jingle */ if(0 > (pid = fork())){ fprintf(stderr, "Error forking.\n"); return 1; } if(pid == 0){ char *args[] = {sets.mp3player, sets.path_to_jingle, NULL}; close(STDOUT_FILENO); close(STDERR_FILENO); execvp(*args, args); exit(EXIT_FAILURE); } else { if(!sets.gtk_on) printf("Time: %s\nTweetURL: %s\nTweet: %s\n", refreshed->date, refreshed->tweet_url, refreshed->text); else { rv = 0; gtk_init(&rv, NULL); win = make_window(refreshed, sets.browser); gtk_widget_show(win); gtk_main(); } } free_t_tweet(refreshed); } free_t_tweet(info); } if(get != (char *)DBPTR) free(get); free(mem); if(sets.set_from_rc[0]) free(sets.path_to_jingle); if(sets.set_from_rc[1]) free(sets.browser); if(sets.set_from_rc[2]) free(sets.mp3player); return 0; }
int parse_top(char *cd, node_t *node, int nn, int pid) { char *c, *d; int ret; ret = 0; c = cd; DPRINTF("enter pzarse_top for %d %s\n", nn, node->name); DPRINTF("LINE %s\n", cd); while (c != NULL) { if (strstr(c, "load average:") != NULL) { topmode = TOP_PROCPS; d = strstr(c, "load average:"); nodedata[nn].node = node; sscanf(d, "load average: %f, %f, %f", &nodedata[nn].load1, &nodedata[nn].load5, &nodedata[nn].load15); DPRINTF("parse_top: Xfloats %f %f %f\n",nodedata[nn].load1,nodedata[nn].load5,nodedata[nn].load15 ); } else if (strstr(c, "load averages") != NULL) { nodedata[nn].node = node; sscanf(c, "load averages: %f, %f, %f", &nodedata[nn].load1, &nodedata[nn].load5, &nodedata[nn].load15); DPRINTF("parse_top: floats %f %f %f\n",nodedata[nn].load1,nodedata[nn].load5,nodedata[nn].load15 ); } else if (strstr(c, "processes:") != NULL) { sscanf(c, "%d processes:", &nodedata[nn].procs); DPRINTF("parse_top: procs %d\n", nodedata[nn].procs); if (nodedata[nn].procs > 0) { if (procdata[nn] != NULL) free(procdata[nn]); procdata[nn] = calloc(nodedata[nn].procs, sizeof(procdata_t)); DPRINTF("parse_top: allocated prodata array for %s\n", node->name); } } else if (strstr(c, "Memory:") != NULL) { parse_mem(c, &nodedata[nn], 0); } else if (strstr(c, "inactive") != NULL) { c[0] = ':'; parse_mem(c, &nodedata[nn], 0); } else if (strstr(c, "Mem:") != NULL) { parse_mem(c, &nodedata[nn], 0); } else if (strstr(c, "Swap:") != NULL) { parse_mem(c, &nodedata[nn], 1); } else if (strstr(c, " PID") != NULL) { if (strstr(c, " THR ") != NULL) topmode = TOP_NORMAL_THR; /* ignore this line */ } else if (c[0] == '\n') { ; /* ignore this line */ } else if (isdigit(c[4])) { parse_pid(c, node, nn, pid); DPRINTF("PIDLINE\n"); ret = 1; } DPRINTF("data = %s\n", c); c = strchr(c, '\n'); c++; c = strstr(c, "\n"); } return ret; }