这篇教程C++ sys_inb函数代码示例写得很实用,希望能帮到您。
本文整理汇总了C++中sys_inb函数的典型用法代码示例。如果您正苦于以下问题:C++ sys_inb函数的具体用法?C++ sys_inb怎么用?C++ sys_inb使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。 在下文中一共展示了sys_inb函数的30个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的C++代码示例。 示例1: kbd_command_ledsvoid kbd_command_leds(short leds){ unsigned long cenas; unsigned passou1 =0,passou2 = 0; while(!passou1){ send_kbd(0xED); receive_kbd(); sys_inb(IN_BUF,&cenas); if(cenas == RESEND) continue; else if(cenas == ERROR) kbd_command_leds(leds); else passou1 =1; } while(!passou2){ send_kbd(leds); receive_kbd(); sys_inb(IN_BUF,&cenas); if(cenas == RESEND) continue; else if(cenas == ERROR) kbd_command_leds(leds); else passou2 =1; }}
开发者ID:F0lha,项目名称:LCOM-MINEHUNTER,代码行数:29,
示例2: initialize_fifosint initialize_fifos(void){ receive_fifo = new_char_queue_t(receive_fifo); transmit_fifo = new_char_queue_t(transmit_fifo); unsigned long fcr = 0; if(sys_inb(COM1+FIFO_CTRL_REG, &fcr) != OK) { printf("Error reading FIFO_CTRL_REG/n"); return 1; } fcr |= FIFO_INIT; if(sys_outb(COM1+FIFO_CTRL_REG, fcr) != OK) { printf("Error writing to FIFO_CTRL_REG/n"); return 1; } if(sys_inb(COM2+FIFO_CTRL_REG, &fcr) != OK) { printf("Error reading FIFO_CTRL_REG/n"); return 1; } fcr |= FIFO_INIT; if(sys_outb(COM2+FIFO_CTRL_REG, fcr) != OK) { printf("Error writing to FIFO_CTRL_REG/n"); return 1; } return 0;}
开发者ID:ricardocerq,项目名称:FEUP-LCOM,代码行数:29,
示例3: readKBCStateint readKBCState() { unsigned long stat, data, counter = 0; while (counter < 3) { if (sys_inb(STAT_REG, &stat) != OK) return -1; if ((stat & (OBF | AUX)) != OK) { if (sys_inb(DATA_REG, &data) != OK) return -1; if ((stat & (PAR_ERR | TO_ERR)) == 0) return data; else if (data == 0xFC) return data; else if (data == 0xFE) return data; else return -1; break; } tickdelay(micros_to_ticks(DELAY_US)); counter++; } return data;}
开发者ID:kissthink,项目名称:os,代码行数:29,
示例4: get_divisor_latchint get_divisor_latch(unsigned long com_address,unsigned long* dl){ unsigned long lsb = 0; unsigned long msb = 0; unsigned long lcr = 0; if(sys_inb(com_address + LINE_CTRL_REG, &lcr) != OK) { printf("Error reading LINE_CTRL_REG/n"); return 1; } unsigned long newlcr = lcr | DLAB; if(sys_outb(com_address + LINE_CTRL_REG, newlcr) != OK) { printf("Error writing LINE_CTRL_REG/n"); return 1; } if(sys_inb(com_address + DIVISOR_LATCH_LSB, &lsb) != OK) { printf("Error reading DIVISOR_LATCH_LSB/n"); return 1; } if(sys_inb(com_address + DIVISOR_LATCH_MSB, &msb) != OK) { printf("Error reading DIVISOR_LATCH_MSB/n"); return 1; } if(sys_outb(com_address + LINE_CTRL_REG, lcr) != OK) { printf("Error writing LINE_CTRL_REG/n"); return 1; } *dl = (msb << 8) + lsb; return 0;}
开发者ID:ricardocerq,项目名称:FEUP-LCOM,代码行数:34,
示例5: read_kbcint read_kbc(void) { LOG unsigned long stat, data, counter = 0; while (counter < TIMEOUT_COUNTER) { if (sys_inb(STAT_REG, &stat) != 0) { printf("read_kbc: sys_inb (1) failed./n"); return -1; } if ((stat & (OBF | AUX)) != 0) { if (sys_inb(DATA_REG, &data) != 0) { printf("read_kbc: sys_inb (2) failed./n"); return -1; } if ((stat & (PAR_ERR | TO_ERR)) == 0) return data; else if (data == ERROR) return data; else if (data == REPEAT) return data; else return -1; } if (tickdelay(micros_to_ticks(DELAY_US)) != 0) { printf("read_kbc: tickdelay failed./n"); return -1; } counter++; } return -1;}
开发者ID:DDuarte,项目名称:cnix,代码行数:34,
示例6: test_configint test_config(void) { unsigned long status; mouse_subscribe_int(); while (mouse_send_command(MOUSE_STATUS) != 0) { }; if (sys_inb(OUT_BUF, &status) == OK) { if (status & BIT(3) & BIT(0)) { printf("1:1 - Linear mode/n"); } else { printf("2:1 - Acceleration mode/n"); } if (status & BIT(5)) { printf("Info Report: ON/n "); } else { printf("Info Report: OFF/n "); } if (status & BIT(6)) { printf("remote: ON/n"); } else { printf("remote: OFF/n"); } sys_inb(OUT_BUF, &status); printf("X Delta: 0x%x/n", status); if (sys_inb(OUT_BUF, &status) == OK) { printf("Y Delta: 0x%x/n", status); } } mouse_unsubscribe_int(); return 0;}
开发者ID:jpamorim,项目名称:feup-lcom,代码行数:35,
示例7: clean_OBFvoid clean_OBF(){ unsigned long stat; do {sys_inb(STAT_REG, &stat); if(stat & OBF) //if OBF has something sys_inb(OUT_BUF,&BUFFER_CLEAN_BYTE); } while(stat & OBF); //while OBF is full}
开发者ID:pedro93,项目名称:LCOM,代码行数:11,
示例8: cleanBufferint cleanBuffer(){ unsigned long stat, data; sys_inb(STAT_REG, &stat); while (stat & OBF) { sys_inb(OUT_BUF, &data); sys_inb(STAT_REG, &stat); } return 0;}
开发者ID:mgpsp,项目名称:LCOM-FEUP,代码行数:13,
示例9: mouse_readint mouse_read(unsigned long* val) { unsigned long read = 0; int i = 0; for (i = 0; i < KBC_IO_MAX_TRIES; i++) { sys_inb(STAT_REG, &read); if ((read & OBF) && (read & AUX)) { if (sys_inb(OUT_BUF, val) != 0) { return -1; } return 0; } tickdelay(micros_to_ticks(DELAY_US)); } return -1;}
开发者ID:joaofidalgo23,项目名称:LCOM,代码行数:15,
示例10: kbc_readint kbc_read(unsigned char *data) { unsigned char status = 0; int i; for (i = 0; i < 16; i++) { sys_inb(STAT_REG, (unsigned long *) &status); if ((status & OBF) != 0) { if (sys_inb(OUT_BUF, (unsigned long *) data) != OK) { return ERROR; } return OK; } tickdelay(micros_to_ticks(DELAY)); } return ERROR;}
开发者ID:joaofidalgo23,项目名称:feup-lcom,代码行数:15,
示例11: ms_readint ms_read() { unsigned long stat, key; int i = 0; while (i < 10) { if (sys_inb(STAT_REG, &stat) != OK) return -1; if (stat & OBF) { sys_inb(OUT_BUF, &key); return key; } tickdelay(micros_to_ticks(DELAY_US)); i++; }}
开发者ID:oindividuo,项目名称:LCOM1,代码行数:15,
示例12: receive_kbdint receive_kbd(){ unsigned long stat; while( 1 ) { sys_inb(STAT_REG, &stat); /* assuming it returns OK */ /* loop while 8042 output buffer is empty*/ if( stat & OBF ) { sys_inb(OUT_BUF, &data); /* assuming it returns OK*/ if ( (stat &(PAR_ERR | TO_ERR)) == 0 ) return data; else return -1; } tickdelay(micros_to_ticks(DELAY_US)); }}
开发者ID:F0lha,项目名称:LCOM-MINEHUNTER,代码行数:15,
示例13: write_to_kbc_no_resend//write a value to kbc without resendingint write_to_kbc_no_resend(port_t port,unsigned long value, unsigned char read_response){ int attempts = 0; unsigned long stat; unsigned long response=0; while(1) { if(attempts >= MAX_ATTEMPTS){ printf("write_to_kbc_no_resend() failed, max attempts reached: %d/n", attempts); return -1; } if(sys_inb(STAT_REG, &stat)!= OK){ printf("write_to_kbc_no_resend() failed, failure reading status/n"); return -1; } if( (stat & IN_BUF_STATUS) == 0 ) { if(sys_outb(port, value) != OK){ printf("write_to_kbc_no_resend() failed, failure writing value 0x%x, at port 0x%x/n", value, port); return -1; } if(read_response) read_kbd_value(&response); break; } attempts++; WAIT_MS(WAIT_TIME); } return response;}
开发者ID:ricardocerq,项目名称:FEUP-LCOM,代码行数:30,
示例14: mouse_readint mouse_read(unsigned num_tries, unsigned char* output){ size_t i, j; unsigned long status; for (i = 0; i < num_tries; ++i) { for (j = 0; j < num_tries; ++j) { int result = kbc_wait_for_out_buf(num_tries); if (result == -1) { return 1; } else if (result == 0) { break; } } if (kbc_read_status(&status)) { return 1; } if (sys_inb(I8042_OUT_BUF, (unsigned long *)output) != OK) { return 1; } if (status & BIT(I8042_STATUS_AUX_BIT)) { break; } // Discard byte } return 0;}
开发者ID:gtugablue,项目名称:LCOM-Racinix,代码行数:34,
示例15: get_kbd_statusint get_kbd_status(){ unsigned long status; sys_inb(BUF_STAT, &status); return status;}
开发者ID:joaoacsoares,项目名称:LCOM,代码行数:7,
示例16: write_kbcint write_kbc(unsigned long port, unsigned char byte) { LOG unsigned long stat, counter = 0; while (counter < TIMEOUT_COUNTER) { if (sys_inb(STAT_REG, &stat) != 0) { printf("write_kbc: sys_inb failed./n"); return -1; } if(!(stat & IBF)) { if (sys_outb(port, byte) != 0) { printf("write_kbc: sys_outb failed./n"); return -1; } return 0; } if (tickdelay(micros_to_ticks(DELAY_US)) != 0) { printf("write_kbc: tickdelay failed./n"); return -1; } counter++; } printf("write_kbc: time out./n"); return -1;}
开发者ID:DDuarte,项目名称:cnix,代码行数:28,
示例17: pci_inb/*===========================================================================* * helper functions for I/O * *===========================================================================*/PUBLIC unsigned pci_inb(U16_t port) { u32_t value; int s; if ((s=sys_inb(port, &value)) !=OK) printf("%s: warning, sys_inb failed: %d/n", DRIVER_NAME, s); return value;}
开发者ID:QiuLihua83,项目名称:minix2009,代码行数:10,
示例18: pci_inbstatic u32_t pci_inb(u16_t port) { u32_t value; int s; if ((s=sys_inb(port, &value)) !=OK) printf("ACPI: warning, sys_inb failed: %d/n", s); return value;}
开发者ID:Stichting-MINIX-Research-Foundation,项目名称:minix,代码行数:7,
示例19: writeToKBCint writeToKBC(unsigned long reg, unsigned long cmd){ unsigned long stat, r, data, i = 0; while(i < 3) // retry 3 times on time-out { r = sys_inb(STAT_REG, &stat); if (r != OK) { printf("sys_inb failed with: %d", r); return -1; } if ((stat & IBF) == 0) { r = sys_outb(reg, cmd); if (r != OK) { printf("sys_inb failed with: %d", r); return -1; } else return 0; } // gives the KBC or the keyboard enough-time to respond tickdelay(micros_to_ticks(DELAY_US)); i++; } printf("writeToKBC failed: unable to write data/n"); return -1;}
开发者ID:mgpsp,项目名称:LCOM-FEUP,代码行数:33,
示例20: kbd_read_statusint kbd_read_status(){ unsigned long stat; sys_inb(STAT_BUF, &stat); return stat;}
开发者ID:jpamorim,项目名称:feup-lcom,代码行数:7,
示例21: set_divisor_latchint set_divisor_latch(unsigned long com_address,unsigned long dl){ unsigned long lsb = dl & 0xFF; unsigned long msb = dl >> 8; unsigned long lcr = 0; if(sys_inb(com_address + LINE_CTRL_REG, &lcr) != OK) { printf("Error reading LINE_CTRL_REG/n"); return 1; } unsigned long newlcr = lcr | DLAB; if(sys_outb(com_address + LINE_CTRL_REG, newlcr) != OK) { printf("Error writing LINE_CTRL_REG/n"); return 1; } if(sys_outb(com_address + DIVISOR_LATCH_LSB, lsb) != OK) { printf("Error writing DIVISOR_LATCH_LSB/n"); return 1; } if(sys_outb(com_address + DIVISOR_LATCH_MSB, msb) != OK) { printf("Error writing DIVISOR_LATCH_MSB/n"); return 1; } if(sys_outb(com_address + LINE_CTRL_REG, lcr) != OK) { printf("Error writing LINE_CTRL_REG/n"); return 1; } return 0;}
开发者ID:ricardocerq,项目名称:FEUP-LCOM,代码行数:33,
示例22: timer_get_confint timer_get_conf(unsigned long timer, unsigned long *st) { if (sys_outb(TIMER_CTRL, TIMER_RB_SEL(timer) | TIMER_RB_CMD | TIMER_RB_COUNT_)) { return 1; } switch(timer) { case 0: return sys_inb(TIMER_0, st); case 1: return sys_inb(TIMER_1, st); case 2: return sys_inb(TIMER_2, st); default: return 1; }}
开发者ID:gtugablue,项目名称:LCOM-Racinix,代码行数:17,
示例23: load_configvoid load_config(unsigned long registers[]){ disable(); sys_outb(RTC_ADDR_REG, 10); sys_inb(RTC_DATA_REG,®isters[0]); sys_outb(RTC_ADDR_REG, 11); sys_inb(RTC_DATA_REG,®isters[1]); sys_outb(RTC_ADDR_REG, 12); sys_inb(RTC_DATA_REG,®isters[2]); sys_outb(RTC_ADDR_REG, 13); sys_inb(RTC_DATA_REG,®isters[3]); enable();}
开发者ID:joaotrindade,项目名称:LCOM,代码行数:17,
示例24: my_inbstatic unsigned my_inb(u16_t port){ u32_t value; int s; if ((s = sys_inb(port, &value)) != OK) printf("RTL8169: warning, sys_inb failed: %d/n", s); return value;}
开发者ID:Ga-vin,项目名称:MINIX3,代码行数:8,
示例25: rec_cmdint rec_cmd(){ unsigned long stat = 0; unsigned long OBF = 0x0001; unsigned long data = 0; while( 1 ) { sys_inb(STAT_REG, &stat); if( stat & OBF ) { sys_inb(OUT_BUF, &data); if ( (stat &(PAR_ERR | TO_ERR)) == 0 ) return data; else return -1; } tickdelay(micros_to_ticks(DELAY_US)); }}
开发者ID:Pigmoth69,项目名称:LCOM-DODGEM,代码行数:17,
示例26: inb/*** Name: unsigned int inb(unsigned short int port);** Function: Reads a byte from specified i/o port.*/PUBLIC unsigned int inb(unsigned short port){ unsigned int value; int rc; if ((rc = sys_inb(port, &value)) != OK) warning("inb", rc); return value;}
开发者ID:Johnwei386,项目名称:Minix3,代码行数:12,
示例27: kbd_interrupt_handler_readint kbd_interrupt_handler_read(){ // reads the bytes from the KBC’s OUT_BUF unsigned long stat, key; while( 1 ) { if(sys_inb(STAT_REG, &stat) != OK) return -1; if( stat & OBF ) { sys_inb(OUT_BUF, &key); // assuming it returns OK if ( (stat &(PAR_ERR | TO_ERR)) == 0 ) return key; else return -1; } tickdelay(micros_to_ticks(DELAY_US)); }}
开发者ID:oindividuo,项目名称:LCOM1,代码行数:17,
示例28: kbd_int_handlerint kbd_int_handler() { unsigned long stat = 0; sys_inb(OUT_BUFF, &stat); if ((stat & BREAKCODE) != BREAKCODE) { return stat; }}
开发者ID:BSantos22,项目名称:lcom,代码行数:9,
示例29: read_keyboardint read_keyboard(){while(1){ sys_inb(STAT_REG,&stat); //assuming it returns OK if(stat & OBF) { sys_inb(OUT_BUF,&data); //assuming it returns OK if((stat&(PAR_ERR|TO_ERR))==0) return data; else return -1; } tickdelay(micros_to_ticks(DELAY_US)); }}
开发者ID:pedro93,项目名称:LCOM,代码行数:18,
示例30: ser_setint ser_set(unsigned short base_addr, unsigned long bits, unsigned long stop, long parity, unsigned long rate){ if(base_addr != 1 && base_addr != 2) { printf("Incorrect com: d%/n", base_addr); return 1; } if(bits < 5 || bits > 8) { printf("Incorrect number of bits: %d/n", bits); return 1; } if(rate != STD_RATE_VALUE_1 && rate != STD_RATE_VALUE_2 && rate != STD_RATE_VALUE_3 && rate !=STD_RATE_VALUE_4 && rate !=STD_RATE_VALUE_5 && rate != STD_RATE_VALUE_6 && rate != STD_RATE_VALUE_7 && rate!= STD_RATE_VALUE_8 ) { printf("Incorrect rate: %d/n", rate); return 1; } if(stop != 1 && stop != 2) { printf("Incorrect number of stop bits: %d/n", parity); return 1; } if(parity < 0 || parity > 7) { printf ("Incorrect parity/n"); return 1; } unsigned long com_address; if(base_addr == 1) com_address = COM1; else com_address = COM2; unsigned long writable_word_length = bits - 5; unsigned long writable_stop_bits = ((stop-1) << 2); unsigned long writable_parity = (parity << 3); unsigned long out = writable_parity|writable_stop_bits|writable_word_length; unsigned long lcr = 0; if(sys_inb(com_address + LINE_CTRL_REG, &lcr) != OK) { printf("Error reading LINE_CTRL_REG/n"); return 1; } out |= (lcr & (DLAB|SET_BREAK_ENABLE)); if(sys_outb(com_address + LINE_CTRL_REG, out) != OK) { printf("Error writing LINE_CTRL_REG/n"); return 1; } unsigned long divisor = UART_FREQ / rate; if(set_divisor_latch(com_address, divisor)) { printf("Error setting divisor_latch/n"); return 1; } return 0;}
开发者ID:ricardocerq,项目名称:FEUP-LCOM,代码行数:57,
注:本文中的sys_inb函数示例整理自Github/MSDocs等源码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。 C++ sys_init函数代码示例 C++ sys_getpid函数代码示例 |