亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? bsp.c

?? 量子編程源代碼 量子編程源代碼
?? C
字號:
/****************************************************************************** Product: QDPP example, 80x86, Win32, Visual C++ 6.0* Last Updated for Version: 3.4.00* Date of the Last Update:  Sep 03, 2007**                    Q u a n t u m     L e a P s*                    ---------------------------*                    innovating embedded systems** Copyright (C) 2002-2007 Quantum Leaps, LLC. All rights reserved.** This software may be distributed and modified under the terms of the GNU* General Public License version 2 (GPL) as published by the Free Software* Foundation and appearing in the file GPL.TXT included in the packaging of* this file. Please note that GPL Section 2[b] requires that all works based* on this software must also be made publicly available under the terms of* the GPL ("Copyleft").** Alternatively, this software may be distributed and modified under the* terms of Quantum Leaps commercial licenses, which expressly supersede* the GPL and are specifically designed for licensees interested in* retaining the proprietary status of their code.** Contact information:* Quantum Leaps Web site:  http://www.quantum-leaps.com* e-mail:                  info@quantum-leaps.com*****************************************************************************/#include "qf_port.h"#include "qs_port.h"#include "qassert.h"#include "qdpp.h"#include <stdlib.h>#include <stdio.h>#include <string.h>#include <sys/select.h>#include <sys/types.h>#include <sys/socket.h>#include <netinet/in.h>#include <netdb.h>#include <errno.h>#include <time.h>#include <termios.h>#include <unistd.h>Q_DEFINE_THIS_FILE/*--------------------------------------------------------------------------*/#ifdef Q_SPYenum QSQHsmTstRecords {    QS_QDPP_DISPLAY = QS_USER};int l_sock = -1;/*..........................................................................*/uint8_t QS_init(void const *arg) {    static uint8_t qsBuf[1024];                /* 1K buffer for Quantum Spy */    char host[64];    char const *src;    char *dst;    uint16_t port = 6601;                                   /* default port */    struct sockaddr_in servAddr;    struct hostent *server;    QS_initBuf(qsBuf, sizeof(qsBuf));    src = (char const *)arg;    dst = host;    while ((*src != '\0') && (*src != ':') && (dst < &host[sizeof(host)])) {        *dst++ = *src++;    }    *dst = '\0';    if (*src == ':') {        port = (uint16_t)strtoul(src + 1, NULL, 10);    }    l_sock = socket(AF_INET, SOCK_STREAM, IPPROTO_TCP);       /* TCP socket */    if (l_sock == -1){        printf("Socket cannot be created.\n"               "socket error 0x%08X.",               errno);        return (uint8_t)0;    }    server = gethostbyname(host);    if (server == NULL) {        printf("QSpy host name cannot be resolved.\n"               "socket error 0x%08X.",               errno);        return (uint8_t)0;    }    memset(&servAddr, 0, sizeof(servAddr));    servAddr.sin_family = AF_INET;    memcpy(&servAddr.sin_addr, server->h_addr, server->h_length);    servAddr.sin_port = htons(port);    if (connect(l_sock, (struct sockaddr *)&servAddr, sizeof(servAddr)) == -1)    {        printf("Socket cannot be connected to the QSpy server.\n"               "socket error 0x%08X.",               errno);        QS_exit();        return (uint8_t)0;    }    return (uint8_t)1;                                           /* success */}/*..........................................................................*/void QS_exit(void) {    if (l_sock != -1) {        close(l_sock);    }}#define QS_DUMP() do { \    uint16_t nBytes = 1000; \    uint8_t const *block; \    QF_INT_LOCK(ignore); \    block = QS_getBlock(&nBytes); \    QF_INT_UNLOCK(ignore); \    if (block != (uint8_t *)0) { \        send(l_sock, (char const *)block, nBytes, 0); \    } \} while (0)/*..........................................................................*/void QS_flush(void) {    uint16_t nBytes = 1000;    uint8_t const *block;    while ((block = QS_getBlock(&nBytes)) != (uint8_t *)0) {        send(l_sock, (char const *)block, nBytes, 0);        nBytes = 1000;    }}/*..........................................................................*/QSTimeCtr QS_getTime(void) {    return (QSTimeCtr)clock();}#endif                                                             /* Q_SPY *//*--------------------------------------------------------------------------*/static void *idleThread(void *me) {      /* the expected P-Thread signature */    struct timeval timeout = { 0 };                 /* timeout for select() */    struct termios tio;                     /* modified terminal attributes */    tcgetattr(0, &tio);           /* obtain the current terminal attributes */    tio.c_lflag &= ~(ICANON | ECHO);   /* disable the canonical mode & echo */    tcsetattr(0, TCSANOW, &tio);                  /* set the new attributes */    while (QF_running_) {        fd_set con;                      /* FD set representing the console */        FD_ZERO(&con);        FD_SET(0, &con);        timeout.tv_usec = 8000;        /* sleep for the full tick or until a console input arrives, NOTE01 */        if (0 != select(1, &con, 0, 0, &timeout)) {  /* any descriptor set? */            char ch;            read(0, &ch, 1);            if (ch == '\33') {                              /* ESC pressed? */                QF_publish(Q_NEW(QEvent, TERMINATE_SIG));            }        }        QS_DUMP();                         /* dump a chunk of QS trace data */    }    return (void *)0;                                     /* return success */}/*..........................................................................*/void BSP_init(int argc, char *argv[]) {    pthread_attr_t attr;    struct sched_param param;    pthread_t idle;    char const *hostAndPort = "localhost:6601";    if (argc > 1) {                                      /* port specified? */        hostAndPort = argv[1];    }    if (!QS_INIT(hostAndPort)) {        printf("\nUnable to open QSpy socket\n");        exit(-1);    }    pthread_attr_init(&attr);    /* SCHED_FIFO corresponds to real-time preemptive priority-based scheduler    * NOTE: This scheduling policy requires the superuser priviledges    */    pthread_attr_setschedpolicy(&attr, SCHED_FIFO);    param.sched_priority = sched_get_priority_min(SCHED_FIFO);    pthread_attr_setschedparam(&attr, &param);    pthread_attr_setdetachstate(&attr, PTHREAD_CREATE_DETACHED);    if (pthread_create(&idle, &attr, &idleThread, 0) != 0) {               /* Creating the p-thread with the SCHED_FIFO policy failed.               * Most probably this application has no superuser privileges,               * so we just fall back to the default SCHED_OTHER policy               * and priority 0.               */        pthread_attr_setschedpolicy(&attr, SCHED_OTHER);        param.sched_priority = 0;        pthread_attr_setschedparam(&attr, &param);        Q_ALLEGE(pthread_create(&idle, &attr, &idleThread, 0) == 0);    }    pthread_attr_destroy(&attr);}/*..........................................................................*/void displyPhilStat(uint8_t n, char const *stat) {    printf("Philosopher %2d is %s\n", (int)n, stat);    QS_BEGIN(QS_QDPP_DISPLAY, QS_apObj_);        QS_U8(1, n);        QS_STR(stat);    QS_END();}/*..........................................................................*/void Q_assert_handler(char const Q_ROM * const Q_ROM_VAR file, int line) {    fprintf(stderr, "Assertion failed in %s, line %d", file, line);    QF_exit();}/******************************************************************************* NOTE01:* The select() system call seems to deliver the finest time granularity of* 1 clock tick. The timeout value passed to select() is rounded up to the* nearest tick (10 ms on desktop Linux). The timeout cannot be too short,* because the system might choose to busy-wait for very short timeouts.* An alternative, POSIX nanosleep() system call seems to deliver only 20ms* granularity.** Here the select() call is used not just as a fairly portable way to sleep* with subsecond precision. The select() call is also used to detect any* characters typed on the console.** Also according to man pages, on Linux, the function select() modifies* timeout to reflect the amount of time not slept; most other implementations* do not do this. This causes problems both when Linux code which reads* timeout is ported to other operating systems, and when code is ported to* Linux that reuses a struct timeval for multiple selects in a loop without* reinitializing it. Here the microsecond part of the structure is re-* initialized before each select() call.*/

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
99精品在线免费| 丁香婷婷深情五月亚洲| 欧美日韩三级视频| 亚洲国产你懂的| 91精品欧美一区二区三区综合在| 香蕉成人伊视频在线观看| 日韩一级完整毛片| 国产成人在线免费观看| 国产精品久久久久久亚洲伦| 色偷偷88欧美精品久久久 | 日韩欧美国产1| 美女网站视频久久| 久久久国产午夜精品| 成人动漫一区二区在线| 亚洲福中文字幕伊人影院| 51精品视频一区二区三区| 激情文学综合丁香| 综合色中文字幕| 欧美大尺度电影在线| 国产一区二区三区综合| 中文字幕一区在线| 欧美高清视频在线高清观看mv色露露十八| 日韩成人伦理电影在线观看| 久久久久综合网| 色久综合一二码| 久久成人免费网| 亚洲欧洲www| 日韩一区二区高清| 99re亚洲国产精品| 免费在线欧美视频| 亚洲欧洲精品一区二区精品久久久| 欧美视频三区在线播放| 国产真实乱偷精品视频免| 国产精品国产三级国产普通话蜜臀| 欧美群妇大交群中文字幕| 国产精品资源在线观看| 亚洲国产一区在线观看| 久久蜜桃av一区二区天堂| 色8久久人人97超碰香蕉987| 狠狠色丁香久久婷婷综| 亚洲一区二区三区视频在线| 久久久久久综合| 欧美日韩国产综合视频在线观看| 成人性生交大合| 青娱乐精品视频在线| 亚洲日本一区二区| 欧美精品一区二区在线播放| 在线观看av不卡| 国产福利不卡视频| 美女被吸乳得到大胸91| 亚洲尤物在线视频观看| 国产精品夫妻自拍| 久久久久久久久免费| 51精品秘密在线观看| 在线观看av一区二区| 波多野结衣视频一区| 激情久久久久久久久久久久久久久久| 一区二区视频免费在线观看| 国产女人水真多18毛片18精品视频| 欧美一区二区三区视频| 欧美日韩一级片网站| 色婷婷激情综合| 91亚洲精品久久久蜜桃| 国产69精品久久久久毛片| 韩国欧美一区二区| 美女脱光内衣内裤视频久久网站 | 亚洲精品一区二区在线观看| 欧美日韩情趣电影| 在线视频国内自拍亚洲视频| 成人高清视频免费观看| 91丝袜美腿高跟国产极品老师 | 亚洲一区免费观看| 亚洲素人一区二区| 亚洲人一二三区| 亚洲人成网站色在线观看| 国产精品久久三| 国产欧美视频在线观看| 国产亚洲欧洲一区高清在线观看| 精品欧美久久久| 欧美哺乳videos| 欧美www视频| 精品国产电影一区二区| 2欧美一区二区三区在线观看视频| 4438成人网| 日韩久久久精品| 精品国产污网站| 久久久不卡网国产精品一区| 亚洲精品一区二区三区在线观看| 精品国产123| 久久久精品2019中文字幕之3| 久久久久久久久久久久久女国产乱 | 成人小视频免费观看| av影院午夜一区| 91麻豆福利精品推荐| 在线亚洲欧美专区二区| 欧美日韩1234| 欧美精品一区二区在线观看| 国产午夜久久久久| 国产精品嫩草影院av蜜臀| 国产精品高潮久久久久无| 亚洲人成精品久久久久| 亚洲国产cao| 裸体健美xxxx欧美裸体表演| 国产精品亚洲第一区在线暖暖韩国| 成年人午夜久久久| 欧美视频三区在线播放| 欧美mv日韩mv亚洲| 国产欧美日韩不卡免费| 樱花影视一区二区| 日本亚洲最大的色成网站www| 国产一区二区精品久久99| 成人免费电影视频| 欧美日韩国产精选| 久久久久久久久免费| 亚洲成人午夜电影| 国产精品综合久久| 欧美婷婷六月丁香综合色| 欧美成人精品福利| 亚洲免费观看视频| 久久99精品久久久久久| 91在线丨porny丨国产| 欧美一区二区视频在线观看2022 | 成人激情免费视频| 91精品国产综合久久久久久漫画 | 亚洲女爱视频在线| 日韩精品一级中文字幕精品视频免费观看 | 欧美午夜理伦三级在线观看| 日韩一级二级三级| 亚洲人成网站在线| 韩国理伦片一区二区三区在线播放 | 久久色在线观看| 亚洲国产日韩一区二区| 国产91丝袜在线观看| 欧美日韩电影一区| 中文字幕乱码亚洲精品一区| 日本中文字幕一区| av一区二区三区在线| 26uuu国产在线精品一区二区| 亚洲成人一区在线| 波多野洁衣一区| 久久久综合视频| 日韩黄色小视频| 一本大道久久a久久综合婷婷| 国产网红主播福利一区二区| 日本中文字幕不卡| 在线观看三级视频欧美| 中国av一区二区三区| 九色综合狠狠综合久久| 欧美精品日韩一区| 亚洲国产日日夜夜| 91免费看`日韩一区二区| 国产三级欧美三级日产三级99 | 亚洲乱码中文字幕综合| 国产成人福利片| 欧美激情在线免费观看| 国产伦理精品不卡| 欧美一区二区三区啪啪| 偷窥少妇高潮呻吟av久久免费| 91网上在线视频| 综合电影一区二区三区| 波多野结衣亚洲一区| 国产精品久久毛片av大全日韩| 国产精品亚洲成人| 久久久国产午夜精品| 国产美女娇喘av呻吟久久| 日韩欧美一级片| 美腿丝袜亚洲色图| 91精品国产色综合久久| 青娱乐精品视频在线| 欧美一区二区在线不卡| 蜜臀av性久久久久av蜜臀妖精| 91精品国产欧美一区二区成人| 亚洲国产wwwccc36天堂| 欧美日韩一区中文字幕| 天堂成人国产精品一区| 91精品国产综合久久久久久| 蜜臀av一级做a爰片久久| 精品日韩av一区二区| 国产精一品亚洲二区在线视频| 国产午夜亚洲精品羞羞网站| 福利视频网站一区二区三区| 欧美激情一区二区三区四区| 成人精品国产一区二区4080| 亚洲免费在线观看视频| 欧美三级一区二区| 青青草精品视频| 久久这里只有精品首页| 国产69精品一区二区亚洲孕妇 | 欧美私模裸体表演在线观看| 午夜一区二区三区视频| 欧美一区二区三区在| 韩国毛片一区二区三区| 日本一区二区三区久久久久久久久不| 丁香网亚洲国际| 一区二区三区产品免费精品久久75| 欧美手机在线视频| 久久99蜜桃精品| 国产精品久久久久久久蜜臀| 日本二三区不卡| 免费欧美高清视频|