|
|
1.1 ! root 1: /* ! 2: * Copyright (C) 2006 Michael Brown <[email protected]>. ! 3: * ! 4: * This program is free software; you can redistribute it and/or ! 5: * modify it under the terms of the GNU General Public License as ! 6: * published by the Free Software Foundation; either version 2 of the ! 7: * License, or any later version. ! 8: * ! 9: * This program is distributed in the hope that it will be useful, but ! 10: * WITHOUT ANY WARRANTY; without even the implied warranty of ! 11: * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ! 12: * General Public License for more details. ! 13: * ! 14: * You should have received a copy of the GNU General Public License ! 15: * along with this program; if not, write to the Free Software ! 16: * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. ! 17: */ ! 18: ! 19: FILE_LICENCE ( GPL2_OR_LATER ); ! 20: ! 21: #include <ipxe/bitbash.h> ! 22: ! 23: /** @file ! 24: * ! 25: * Bit-bashing interfaces ! 26: * ! 27: */ ! 28: ! 29: /** ! 30: * Set/clear output bit ! 31: * ! 32: * @v basher Bit-bashing interface ! 33: * @v bit_id Bit number ! 34: * @v data Value to write ! 35: * ! 36: * If @c data is 0, a logic 0 will be written. If @c data is ! 37: * non-zero, a logic 1 will be written. ! 38: */ ! 39: void write_bit ( struct bit_basher *basher, unsigned int bit_id, ! 40: unsigned long data ) { ! 41: basher->op->write ( basher, bit_id, ( data ? -1UL : 0 ) ); ! 42: } ! 43: ! 44: /** ! 45: * Read input bit ! 46: * ! 47: * @v basher Bit-bashing interface ! 48: * @v bit_id Bit number ! 49: * @ret data Value read ! 50: * ! 51: * @c data will always be either 0 or -1UL. The idea is that the ! 52: * caller can simply binary-AND the returned value with whatever mask ! 53: * it needs to apply. ! 54: */ ! 55: int read_bit ( struct bit_basher *basher, unsigned int bit_id ) { ! 56: return ( basher->op->read ( basher, bit_id ) ? -1UL : 0 ); ! 57: }
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.