⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 test-x400p-sdt2.c

📁 OpenSS7 This the fourth public release of the OpenSS7 Master Package. See README in the release for
💻 C
📖 第 1 页 / 共 3 页
字号:
{	int ret;	struct strbuf ctrl;	char cbuf[BUFSIZE];	union LMI_primitives *p = (union LMI_primitives *) cbuf;	ctrl.maxlen = BUFSIZE;	ctrl.len = sizeof(p->info_req);	ctrl.buf = cbuf;	p->lmi_primitive = LMI_INFO_REQ;	printf("\nAttempting info request\n");	if ((ret = putmsg(fd, &ctrl, NULL, RS_HIPRI)) < 0) {		printf("error = %d\n", errno);		perror("test");		exit(2);	} else		printf("Putmsg succeeded!\n");	do_lmi_get_msg(fd);}voidattach_req(int fd, uint16_t ppa){	int ret;	struct strbuf ctrl;	char cbuf[BUFSIZE];	union LMI_primitives *p = (union LMI_primitives *) cbuf;	ctrl.maxlen = BUFSIZE;	ctrl.len = sizeof(p->attach_req) + sizeof(ppa);	ctrl.buf = cbuf;	p->attach_req.lmi_primitive = LMI_ATTACH_REQ;	bcopy(&ppa, p->attach_req.lmi_ppa, sizeof(ppa));	printf("\nAttempting attach request\n");	if ((ret = putmsg(fd, &ctrl, NULL, RS_HIPRI)) < 0) {		printf("error = %d\n", errno);		perror("test");		exit(2);	} else		printf("Putmsg succeeded!\n");	do_lmi_get_msg(fd);}voiddetach_req(int fd){	int ret;	struct strbuf ctrl;	char cbuf[BUFSIZE];	union LMI_primitives *p = (union LMI_primitives *) cbuf;	ctrl.maxlen = BUFSIZE;	ctrl.len = sizeof(p->detach_req);	ctrl.buf = cbuf;	p->lmi_primitive = LMI_DETACH_REQ;	printf("\nAttempting detach request\n");	if ((ret = putmsg(fd, &ctrl, NULL, RS_HIPRI)) < 0) {		printf("error = %d\n", errno);		perror("test");		exit(2);	} else		printf("Putmsg succeeded!\n");	do_lmi_get_msg(fd);}voidenable_req(int fd){	int ret;	struct strbuf ctrl;	char cbuf[BUFSIZE];	union LMI_primitives *p = (union LMI_primitives *) cbuf;	ctrl.maxlen = BUFSIZE;	ctrl.len = sizeof(p->enable_req);	ctrl.buf = cbuf;	p->lmi_primitive = LMI_ENABLE_REQ;	printf("\nAttempting enable request\n");	if ((ret = putmsg(fd, &ctrl, NULL, RS_HIPRI)) < 0) {		printf("error = %d\n", errno);		perror("test");		exit(2);	} else		printf("Putmsg succeeded!\n");	do_lmi_get_msg(fd);}voiddisable_req(int fd){	int ret;	struct strbuf ctrl;	char cbuf[BUFSIZE];	union LMI_primitives *p = (union LMI_primitives *) cbuf;	ctrl.maxlen = BUFSIZE;	ctrl.len = sizeof(p->disable_req);	ctrl.buf = cbuf;	p->lmi_primitive = LMI_DISABLE_REQ;	printf("\nAttempting disable request\n");	if ((ret = putmsg(fd, &ctrl, NULL, RS_HIPRI)) < 0) {		printf("error = %d\n", errno);		perror("test");		exit(2);	} else		printf("Putmsg succeeded!\n");	do_lmi_get_msg(fd);}voidsdl_connect(int fd, ulong flag){	int ret;	struct strbuf ctrl;	char cbuf[BUFSIZE];	union SDL_primitives *p = (union SDL_primitives *) cbuf;	ctrl.maxlen = BUFSIZE;	ctrl.len = sizeof(p->connect_req);	ctrl.buf = cbuf;	p->sdl_primitive = SDL_CONNECT_REQ;	p->connect_req.sdl_flags = flag;	printf("\nAttempting CONNECT request\n");	if ((ret = putmsg(fd, &ctrl, NULL, RS_HIPRI)) < 0) {		printf("error = %d\n", errno);		perror("test");		exit(2);	} else		printf("Putmsg succeeded!\n");	// do_lmi_get_msg(fd);}voidsdl_disconnect(int fd){	int ret;	struct strbuf ctrl;	char cbuf[BUFSIZE];	union SDL_primitives *p = (union SDL_primitives *) cbuf;	ctrl.maxlen = BUFSIZE;	ctrl.len = sizeof(p->disconnect_req);	ctrl.buf = cbuf;	p->sdl_primitive = SDL_DISCONNECT_REQ;	p->disconnect_req.sdl_flags = SDL_RX_DIRECTION | SDL_TX_DIRECTION;	printf("\nAttempting DISCONNECT request\n");	if ((ret = putmsg(fd, &ctrl, NULL, RS_HIPRI)) < 0) {		printf("error = %d\n", errno);		perror("test");		exit(2);	} else		printf("Putmsg succeeded!\n");	// do_lmi_get_msg(fd);}voidsdl_write(int fd){	const size_t len = 64;	const uint8_t buf[] = {		0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08,		0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08,		0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08,		0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08,		0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08,		0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08,		0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08,		0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08	};	int i, ret;	i = 0;	printf("\nAttempting write\n");	for (;;) {		ret = write(fd, buf, len);		if (ret < 0) {			if (errno == EINTR || errno == ERESTART) {				if (i++ < 100)					continue;			}			if (errno == EAGAIN) {				return;			}			printf("error = %d\n", errno);			perror("test");			exit(2);		} else {			int i;			printf("Write succeeded, wrote %d bytes!\n", ret);			printf("Message[%ld]: ", (long) len);			for (i = 0; i < len; i++) {				printf("%02X ", buf[i]);			}			printf("\n");		}	}}voidsdl_read(int fd){	uint8_t buf[4096];	int i, ret;	i = 0;	// printf("\nAttempting read\n");	for (;;) {		ret = read(fd, buf, 4096);		if (ret < 0) {			if (errno == EINTR || errno == ERESTART) {				if (i++ < 100)					continue;			}			if (errno == EAGAIN) {				return;			}			if (errno == EBADMSG) {				do_lmi_get_msg(fd);				continue;			}			printf("error = %d\n", errno);			perror("test");			exit(2);		}		// else printf("Read succeeded, read %d bytes!\n", ret);		if (ret == 0)			return;		if (ret > 0) {			int i;			uint8_t *c = buf;			printf("Message[%d]: ", ret);			for (i = 0; i < ret; i++, c++) {				printf("%02X ", *c);			}			printf("\n");		}	}}voidsdt_daedt_start(int fd){	int ret;	struct strbuf ctrl;	char cbuf[BUFSIZE];	union SDT_primitives *p = (union SDT_primitives *) cbuf;	ctrl.maxlen = BUFSIZE;	ctrl.len = sizeof(p->daedt_start_req);	ctrl.buf = cbuf;	p->sdt_primitive = SDT_DAEDT_START_REQ;	printf("\nAttempting DAEDT start request\n");	if ((ret = putmsg(fd, &ctrl, NULL, RS_HIPRI)) < 0) {		printf("error = %d\n", errno);		perror("test");		exit(2);	} else		printf("Putmsg succeeded!\n");	// do_lmi_get_msg(fd);}voidsdt_daedr_start(int fd){	int ret;	struct strbuf ctrl;	char cbuf[BUFSIZE];	union SDT_primitives *p = (union SDT_primitives *) cbuf;	ctrl.maxlen = BUFSIZE;	ctrl.len = sizeof(p->daedr_start_req);	ctrl.buf = cbuf;	p->sdt_primitive = SDT_DAEDR_START_REQ;	printf("\nAttempting DAEDR start request\n");	if ((ret = putmsg(fd, &ctrl, NULL, RS_HIPRI)) < 0) {		printf("error = %d\n", errno);		perror("test");		exit(2);	} else		printf("Putmsg succeeded!\n");	// do_lmi_get_msg(fd);}voidsdt_write(int fd){#if 0	const size_t len = 13;	const char buf[] = "Hello World!";#else#if 0	const size_t len = 46;	const char buf[] = "THE QUICK BROWN FOX JUMPED OVER THE LAZY DOGS";#else#if 0	const size_t len = 46;	const uint8_t buf[] = {		0x00, 0x01, 0x03, 0x07, 0x0f, 0x1f, 0x3f, 0x7f,		0xff, 0xff, 0xfe, 0xfc, 0xfa, 0xf8, 0xf0, 0xe0,		0xc0, 0xa0, 0x80, 0x00, 0x01, 0x03, 0x07, 0x0f,		0x1f, 0x3f, 0x7f, 0xff, 0xff, 0xfe, 0xfc, 0xfa,		0xf8, 0xf0, 0xe0, 0xc0, 0xa0, 0x80, 0x00, 0x01,		0x03, 0x07, 0x0f, 0x1f, 0x3f, 0x7f	};#else#if 0	const size_t len = 80;	const uint8_t buf[] = {		0x7f, 0x7f, 0x3f, 0x01, 0x02, 0x03, 0x04, 0x05,		0x06, 0x07, 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d,		0x0e, 0x0f, 0x10, 0x11, 0x12, 0x13, 0x14, 0x15,		0x16, 0x17, 0x18, 0x19, 0x1a, 0x1b, 0x1c, 0x1d,		0x1e, 0x1f, 0x20, 0x21, 0x22, 0x23, 0x24, 0x25,		0x26, 0x27, 0x28, 0x29, 0x2a, 0x2b, 0x2c, 0x2d,		0x2e, 0x2f, 0x30, 0x31, 0x32, 0x33, 0x34, 0x35,		0x36, 0x37, 0x38, 0x39, 0x3a, 0x3b, 0x3c, 0x3d,		0x3e, 0x3f, 0x40, 0x41, 0x42, 0x43, 0x44, 0x45,		0x46, 0x47, 0x48, 0x49, 0x4a, 0x4b, 0x4c, 0x4d	};#else	uint len = 4;	unsigned char buf[] = {		0xff, 0xff, 0x85, 0x00	};#endif#endif#endif#endif	int i, ret;	i = 0;	for (;;) {		// printf("\nAttempting write\n");		ret = write(fd, buf, len);		if (ret < 0) {			if (errno == EINTR || errno == ERESTART) {				if (++i < 100)					continue;			}			if (errno == EAGAIN) {				return;			}			printf("error = %d\n", errno);			perror("test");			exit(2);		}#if 0		else			printf("Write succeeded, wrote %d bytes!\n", ret);		if (ret > 0) {			int j;			printf("Message[%d]: ", len);			for (j = 0; j < len; j++) {				printf("%02x ", buf[j]);			}			printf("\n");		}#endif	}}voidsdt_read(int fd){	uint8_t buf[256];	int i, ret;	i = 0;	printf("\nAttempting read\n");	for (;;) {		ret = read(fd, buf, 256);		if (ret < 0) {			if (errno == EAGAIN) {				if (i++ < 100)					continue;			}			if (errno == EBADMSG) {				do_lmi_get_msg(fd);				continue;			}			printf("error = %d\n", errno);			perror("test");			break;		} else			printf("Read succeeded, read %d bytes!\n", ret);		if (ret > 0) {			int i;			uint8_t *c = buf;			printf("Message[%d]: ", ret);			for (i = 0; i < ret; i++, c++) {				printf("%02X ", *c);			}			printf("\n");		}	}}intsdt_ioctl(int fd, int cmd, void *arg, int len){	struct strioctl ctl = { cmd, 0, len, arg };	int ret;	ret = ioctl(fd, I_STR, &ctl);	if (ret < 0) {		printf("return = %d\n", ret);		printf("error = %d\n", errno);		perror("sdt_ioctl");		exit(2);	}	return ctl.ic_len;}voiddo_ioctl(int fd, int cmd, int arg){	int ret;	ret = ioctl(fd, cmd, arg);	if (ret < 0) {

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -