Beispiel #1
0
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);
}
Beispiel #2
0
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;
        }
    }
}
Beispiel #3
0
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;
}
Beispiel #4
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;
}