Exemple #1
0
int test_two()
{
	int retvalue;
	mode = 0;
	count = 0;
	if ((retvalue = init_memshare(NULL, 0, 0)) != 2) {
		printf("Test 2,0 failed return value %d\n", retvalue);
		return 1;
	}
	if ((retvalue = init_memshare("memshare", SHMEMSIEZ, QUEUESIZE)) != 0) {
		printf("Test 2,1 failed return value %d\n", retvalue);
		return 1;
	}
	if ((retvalue = init_memshare("memshare", SHMEMSIEZ, QUEUESIZE)) != 1) {
		printf("Test 2,3 failed return value %d\n", retvalue);
		return 1;
	}
	printf("Test 2 OK\n");
	return 0;
}
Exemple #2
0
int main(int argc, char *argv[])
{
	procname = malloc(256);
	strncpy(procname, argv[1], 256);

	set_print_level(0);
	printf("%s started\n", procname);

	if (init_memshare(procname,SHMEMSIZE , QUEUESIZE)) {
		printf("Failed to init memshare\n");
		exit(1);
	}
	data_register(data_callback);
	signal1_register(signal1_callback);
	signal2_register(signal2_callback);
	signal3_register(signal3_callback);

	while (1)
		sleep(3);
}
Exemple #3
0
int tsyslog_init(char *name)
{
	int oldvalue = 0;
	int retvalue = 0;
	if (t_init) {
		syslog(LOG_INFO,
		       "tsyslog_init: Already registered in this process (%d) as %s. You wanted %s.",
		       getpid(), tproc, name);
		return 3;
	}
	if (name == NULL)
		return 1;
	strncpy(tproc, name, (PROC_NAME_SIZE - 1));

	/* let memshare use tsyslog as well */
	logfunction_register(_tsyslog);

	openlog(tproc, LOG_NDELAY | LOG_CONS, LOG_LOCAL0);

	pthread_mutex_lock(&mask_mutex);
	oldvalue = tlog_mask;	/* Store old value, whatever it is */
	tlog_mask = 64;		/* Setting bit 6, LOG_INFO to allow info printout */
	tsyslog(LOG_INFO, "Initializing tsyslog\n");
	tlog_mask = oldvalue;	/* Set back old value */
	pthread_mutex_unlock(&mask_mutex);

	/* we don't need much space */
	if ((retvalue = init_memshare(tproc, SHMEMSIZE, 512)) != 0) {
		syslog(LOG_ERR, "tsyslog_init: init_memshare returned %d",
		       retvalue);
		return 2;
	}

	/* register the callback */
	signal2_register(signal2_callback);

	t_init = 1;
	return 0;
}
Exemple #4
0
int main(int argc, char *argv[])
{
	procname = malloc(256);
	strncpy(procname, argv[1], 256);

	printf("%s started\n", procname);
	if (init_memshare(procname, SHMEMSIZE, QUEUESIZE)) {
		printf("Failed to init memshare\n");
		if (strncmp(procname, "number_8", PROC_NAME_SIZE) == 0) {
			if (system("./memsend -s1 memshare 7") == -1)
				printf("system cmd failed\n");
		}
		exit(1);
	}
	data_register(data_callback);
	signal1_register(signal1_callback);
	signal2_register(signal2_callback);
	signal3_register(signal3_callback);

	while (1)
		sleep(3);
}
Exemple #5
0
int main(int argc, char *argv[])
{
	int value1, value2, value3, mode = 0, retvalue, data_size;
	char dest_proc[PROC_NAME_SIZE], *datastr;

	memset(dest_proc, '\0', PROC_NAME_SIZE);
	/* Parse the parameters */
	if (argc < 4) {
		print_usage();
		exit(2);
	}
	if (!strcmp(argv[1], "-s1")) {
		if (argc != 4) {
			print_usage();
			exit(2);
		}
		mode = 1;
		value1 = atoi(argv[3]);
		strncpy(dest_proc, argv[2], (PROC_NAME_SIZE - 1));
	} else if (!strcmp(argv[1], "-s2")) {
		if (argc != 5) {
			print_usage();
			exit(2);
		}
		mode = 2;
		value1 = atoi(argv[3]);
		value2 = atoi(argv[4]);
		strncpy(dest_proc, argv[2], (PROC_NAME_SIZE - 1));
	} else if (!strcmp(argv[1], "-s3")) {
		if (argc != 6) {
			print_usage();
			exit(2);
		}
		mode = 3;
		value1 = atoi(argv[3]);
		value2 = atoi(argv[4]);
		value3 = atoi(argv[5]);
		strncpy(dest_proc, argv[2], (PROC_NAME_SIZE - 1));
	} else if (!strcmp(argv[1], "-d")) {
		if (argc != 4) {
			print_usage();
			exit(2);
		}
		mode = 4;
		data_size = strlen(argv[3]);
		strncpy(dest_proc, argv[2], (PROC_NAME_SIZE - 1));
		datastr = malloc(data_size);
		strncpy(datastr, argv[3], data_size);
	}
	if (mode == 0) {
		print_usage();
		exit(3);
	}

	/*set_print_level(CH_DEBUG); */
	init_memshare("memsend", 0, 0);

	switch (mode) {
	case 1:
		retvalue = signal1(dest_proc, value1);
		break;

	case 2:
		retvalue = signal2(dest_proc, value1, value2);
		break;

	case 3:
		retvalue = signal3(dest_proc, value1, value2, value3);
		break;

	case 4:
		retvalue = data(dest_proc, datastr, data_size);
		free(datastr);
		break;

	default:
		/* No place to be */
		break;
	}

	if (retvalue == 0)
		exit(0);

	if (retvalue == 1) {
		printf("The destination process %s is not present!\n",
		       dest_proc);
		exit(1);
	}

	/* No place to be */
	exit(2);
}