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

📄 test-sdlacb.c

📁 No7信令,我需要交换类似的代码, 请店长审核,谢谢了,急着交换,谢谢
💻 C
📖 第 1 页 / 共 2 页
字号:
        printf("Putmsg succeeded!\n");    do_lmi_get_msg(fd);}void detach_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);}void enable_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);}void disable_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);}int sdl_open(void) {    int fd;    printf("\nAttempting to open ss7-sdl-acb0\n");    if ( (fd = open("/dev/ss7-sdl-acb0",O_NONBLOCK|O_RDWR)) < 0 ) {        printf("error = %d\n", errno);        perror("test");        exit(2);    } else        printf("Open succeeded!\n");    return(fd);}void sdl_close(int fd) {    int ret;    printf("\nAttempting to close ss7-sdl-acb0\n");    if ( (ret = close(fd)) < 0 ) {        printf("error = %d\n", errno);        perror("test");        exit(2);    } else        printf("Close succeeded!\n");}void sdl_write(int fd) {    const char buf[] = "Hello World!";    int i;    int ret;    for ( i=0; i<10; i++ ) {        printf("\nAttempting write\n");        ret = write(fd, buf, 13);        if ( ret < 0 ) {            printf("error = %d\n", errno);            perror("test");            exit(2);        } else            printf("Write succeeded, wrote %d bytes!\n", ret);    }}void sdl_daedt_start(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->daedt_start_req);    ctrl.buf    = cbuf;    p->sdl_primitive = SDL_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);}void sdl_daedr_start(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->daedr_start_req);    ctrl.buf    = cbuf;    p->sdl_primitive = SDL_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);}void sdl_read(int fd) {    char 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;            }            printf("error = %d\n", errno);            perror("test");            break;        } else            printf("Read succeeded, read %d bytes!\n", ret);        if ( ret > 0 ) {            int i;            char *c = (char *)buf;            printf("Message[%d]: ", ret);            for ( i=0; i<ret; i++, c++ )                printf("%c", *c);            printf("\n");        }    }}int sdl_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("sdl_ioctl");        exit(2);    }    return ctl.ic_len;}void do_ioctls(int fd) {    unsigned char buf[256];    sdl_config_t *c = (sdl_config_t *)buf;    sdl_statem_t *s = (sdl_statem_t *)buf;    printf("\nAttempting ioctls\n");    sdl_ioctl(fd, SDL_IOCGCONFIG, buf, sizeof(sdl_config_t));    printf("Config:\n");    printf("  N = %lu\n", c->N);    printf("  m = %lu\n", c->m);    sdl_ioctl(fd, SDL_IOCGSTATEM, buf, sizeof(sdl_statem_t));    printf("State:\n");    printf("  daedt_state = %lu\n", s->daedt_state);    printf("  daedr_state = %lu\n", s->daedr_state);    printf("  octet_counting_mode = %lu\n", s->octet_counting_mode);    printf("Setting interface mode...\n");    *((unsigned long *)buf) = DEV_MODE_TEST;    sdl_ioctl(fd,DEV_IOCSIFMODE, buf, sizeof(unsigned long));    printf("Setting interface clock...\n");    *((unsigned long *)buf) = DEV_CLOCK_INT;    sdl_ioctl(fd,DEV_IOCSIFCLOCK, buf, sizeof(unsigned long));    printf("Iface:\n");    sdl_ioctl(fd, DEV_IOCGIFFLAGS, buf, sizeof(unsigned long));    printf("  ifflags = %lu\n", *((unsigned long *)buf));    sdl_ioctl(fd, DEV_IOCGIFTYPE, buf, sizeof(unsigned long));    printf("  iftype = %lu\n", *((unsigned long *)buf));    sdl_ioctl(fd, DEV_IOCGGRPTYPE, buf, sizeof(unsigned long));    printf("  ifgtype = %lu\n", *((unsigned long *)buf));    sdl_ioctl(fd, DEV_IOCGIFMODE, buf, sizeof(unsigned long));    printf("  ifmode = %lu\n", *((unsigned long *)buf));    sdl_ioctl(fd, DEV_IOCGIFRATE, buf, sizeof(unsigned long));    printf("  ifrate = %lu\n", *((unsigned long *)buf));    sdl_ioctl(fd, DEV_IOCGIFCLOCK, buf, sizeof(unsigned long));    printf("  ifclock = %lu\n", *((unsigned long *)buf));    sdl_ioctl(fd, DEV_IOCGIFCODING, buf, sizeof(unsigned long));    printf("  ifcoding = %lu\n", *((unsigned long *)buf));    sdl_ioctl(fd, DEV_IOCGIFLEADS, buf, sizeof(unsigned long));    printf("  ifleads = %lu\n", *((unsigned long *)buf));}int main () {    int fd1;    printf("Simple test program for ss7-sdl-acb driver.\n");    fd1 = sdl_open();    ioctl(fd1, I_SRDOPT, RMSGD);    info_req(fd1);    attach_req(fd1);    do_ioctls(fd1);    enable_req(fd1);    sdl_daedt_start(fd1);    sdl_daedr_start(fd1);#if 0    sdl_write(fd1);    sdl_read(fd1);#endif    disable_req(fd1);    detach_req(fd1);    sdl_close(fd1);    printf("Done.\n");    return(0);}

⌨️ 快捷键说明

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