mc146818a_ioreg.c
来自「RTEMS (Real-Time Executive for Multiproc」· C语言 代码 · 共 53 行
C
53 行
/* * This file contains a typical set of register access routines which may be * used with the MC146818A chip if accesses to the chip are as follows: * * + registers are in I/O space * + registers are accessed as bytes * + registers are only byte-aligned (no address gaps) * * COPYRIGHT (c) 1989-1997. * On-Line Applications Research Corporation (OAR). * * The license and distribution terms for this file may be * found in the file LICENSE in this distribution or at * http://www.rtems.com/license/LICENSE. * * $Id: mc146818a_ioreg.c,v 1.1.2.2 2004/11/22 22:25:05 jennifer Exp $ */#include <rtems.h>#include <bsp.h>/* * At this point, not all CPUs or BSPs have defined in/out port routines. */#if defined(__i386__) || defined(__PPC__)#if defined(inport_byte)unsigned32 mc146818a_get_register( unsigned32 ulCtrlPort, unsigned8 ucRegNum){ unsigned8 val; unsigned8 tmp; outport_byte( ulCtrlPort, ucRegNum ); inport_byte( 0x84, tmp ); /* Hack a delay to give chip time to settle */ inport_byte( ulCtrlPort+1, val ); inport_byte( 0x84, tmp ); /* Hack a delay to give chip time to settle */ return val;}void mc146818a_set_register( unsigned32 ulCtrlPort, unsigned8 ucRegNum, unsigned32 ucData){ outport_byte( ulCtrlPort, ucRegNum ); outport_byte( ulCtrlPort+1, (unsigned8)ucData );}#endif#endif
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?