|
|
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.