int YARPNativeEndpointManager::CreateOutputEndpoint(YARPUniqueNameID& name)
{
#ifndef __QNX6__
	ACE_UNUSED_ARG(name);
	return YARP_FAIL;
#else
	YARPUniqueNameQnx& nameq = (YARPUniqueNameQnx&)name;

	int coid = ConnectAttach( 
						netmgr_strtond (nameq.getNode().c_str(),NULL),
						nameq.getPid(),
						nameq.getChannelID(),
						0,
						0);

	ACE_DEBUG ((LM_DEBUG, "ConnectAttach: %s(%d), %d %d, returned %d\n",
		nameq.getNode().c_str(),
		netmgr_strtond (nameq.getNode().c_str(), NULL),
		nameq.getPid(), nameq.getChannelID(),
		coid));

	if (coid != -1)
	{
		nameq.setRawIdentifier(coid);
		return YARP_OK; ///name.getNameID();
	}

	/// failed.
	///return YARPNameID();
	return YARP_OK;
#endif
}
Пример #2
0
int
RTCFUNC(init,net)(struct chip_loc *chip, char *argv[]) {
	char buf[512], buf2[512];

	if(argv[0] == NULL)
		nd = ND_LOCAL_NODE;
	else
		nd = netmgr_strtond(argv[0],NULL);

	if(nd == -1)
		return -1;

	if(netmgr_ndtostr(ND2S_DIR_SHOW,nd,buf2,sizeof(buf2)) == -1){
		perror("netmgr_ndtostr:");
		return -1;
	}
	sprintf(buf, "%sproc/1/as", buf2);
	fd = open(buf, O_RDONLY);
	if(fd == -1)
		return -1;
	return 0;
}
Пример #3
0
int main(int argc, char *argv[])
{
	int opt, nd = ND_LOCAL_NODE;
	char *node_name = NULL;
	int shutdown_type = SHUTDOWN_REBOOT;

	tcgetattr(1, &termattr);

	while((opt = getopt(argc, argv, "bDfn:qS:v")) != -1)
		switch(opt)
		{
			case 'b':
				shutdown_type = SHUTDOWN_SYSTEM;
				break;

			case 'S':
				switch(tolower(*optarg))
				{
					case 'r':
						shutdown_type = SHUTDOWN_REBOOT;
						break;
					case 's':
						shutdown_type = SHUTDOWN_SYSTEM;
						break;
					default:
						fprintf(stderr,"Invalid shutdown type (%s).\n",optarg);
						exit(EXIT_FAILURE);
				}

				break;

			case 'D':
				flags |= FLAG_DEBUG;
				break;

			case 'f':
				flags |= FLAG_FAST;
				break;

			case 'n':
				node_name = optarg;
				nd = netmgr_strtond(optarg, NULL);
				if(nd == -1){
					perror("No such node");
					exit(EXIT_FAILURE);
				}
				break;

			case 'q':
				flags &= ~(FLAG_VERBOSE | FLAG_VERY_VERBOSE);
				break;

			case 'v':
				flags |= FLAG_VERBOSE | FLAG_VERY_VERBOSE;
				break;

			default:
				fprintf(stderr,"Invalid option (%c).\n",opt);
				exit(EXIT_FAILURE);
		}

	if(node_name && nd != ND_LOCAL_NODE){
		if(spawn_remote_shutdown(node_name, argv) == -1){
			perror("unable to spawn on remote node");
			exit(EXIT_FAILURE);
		}
	}
	else {
		shutdown_system(shutdown_type,flags);
	}
	exit(EXIT_SUCCESS);
}