您当前的位置:首页 > IT编程 > C++
| C语言 | Java | VB | VC | python | Android | TensorFlow | C++ | oracle | 学术与代码 | cnn卷积神经网络 | gnn | 图像修复 | Keras | 数据集 | Neo4j | 自然语言处理 | 深度学习 | 医学CAD | 医学影像 | 超参数 | pointnet | pytorch | 异常检测 | Transformers | 情感分类 | 知识图谱 |

自学教程:C++ sys_inb函数代码示例

51自学网 2021-06-03 08:37:09
  C++
这篇教程C++ sys_inb函数代码示例写得很实用,希望能帮到您。

本文整理汇总了C++中sys_inb函数的典型用法代码示例。如果您正苦于以下问题:C++ sys_inb函数的具体用法?C++ sys_inb怎么用?C++ sys_inb使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。

在下文中一共展示了sys_inb函数的30个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的C++代码示例。

示例1: kbd_command_leds

void 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_fifos

int 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: readKBCState

int 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_latch

int 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_kbc

int 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_config

int 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_OBF

void 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: cleanBuffer

int 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_read

int 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_read

int 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_read

int 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_kbd

int 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_read

int 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_status

int get_kbd_status(){	unsigned long status;	sys_inb(BUF_STAT, &status);	return status;}
开发者ID:joaoacsoares,项目名称:LCOM,代码行数:7,


示例16: write_kbc

int 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_inb

static 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: writeToKBC

int 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_status

int kbd_read_status(){	unsigned long stat;	sys_inb(STAT_BUF, &stat);	return stat;}
开发者ID:jpamorim,项目名称:feup-lcom,代码行数:7,


示例21: set_divisor_latch

int 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_conf

int 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_config

void load_config(unsigned long registers[]){	disable();		sys_outb(RTC_ADDR_REG, 10);	sys_inb(RTC_DATA_REG,&registers[0]);		sys_outb(RTC_ADDR_REG, 11);	sys_inb(RTC_DATA_REG,&registers[1]);		sys_outb(RTC_ADDR_REG, 12);	sys_inb(RTC_DATA_REG,&registers[2]);		sys_outb(RTC_ADDR_REG, 13);	sys_inb(RTC_DATA_REG,&registers[3]);		enable();}
开发者ID:joaotrindade,项目名称:LCOM,代码行数:17,


示例24: my_inb

static 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_cmd

int 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_read

int 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_handler

int kbd_int_handler() {	unsigned long stat = 0;	sys_inb(OUT_BUFF, &stat);	if ((stat & BREAKCODE) != BREAKCODE) {		return stat;	}}
开发者ID:BSantos22,项目名称:lcom,代码行数:9,


示例29: read_keyboard

int 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_set

int 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函数代码示例
万事OK自学网:51自学网_软件自学网_CAD自学网自学excel、自学PS、自学CAD、自学C语言、自学css3实例,是一个通过网络自主学习工作技能的自学平台,网友喜欢的软件自学网站。