mirror of
https://github.com/ipxe/ipxe
synced 2026-02-04 06:59:59 +03:00
The Realtek driver and its dependencies are cleanly structured, easy to review, directly maintained, and very well tested. Review these files and mark them as permitted for UEFI Secure Boot. Signed-off-by: Michael Brown <mcb30@ipxe.org>
64 lines
1.9 KiB
C
64 lines
1.9 KiB
C
/*
|
|
* Copyright (C) 2006 Michael Brown <mbrown@fensystems.co.uk>.
|
|
*
|
|
* This program is free software; you can redistribute it and/or
|
|
* modify it under the terms of the GNU General Public License as
|
|
* published by the Free Software Foundation; either version 2 of the
|
|
* License, or any later version.
|
|
*
|
|
* This program is distributed in the hope that it will be useful, but
|
|
* WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
|
* General Public License for more details.
|
|
*
|
|
* You should have received a copy of the GNU General Public License
|
|
* along with this program; if not, write to the Free Software
|
|
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
|
|
* 02110-1301, USA.
|
|
*
|
|
* You can also choose to distribute this program under the terms of
|
|
* the Unmodified Binary Distribution Licence (as given in the file
|
|
* COPYING.UBDL), provided that you have satisfied its requirements.
|
|
*/
|
|
|
|
FILE_LICENCE ( GPL2_OR_LATER_OR_UBDL );
|
|
FILE_SECBOOT ( PERMITTED );
|
|
|
|
#include <ipxe/bitbash.h>
|
|
|
|
/** @file
|
|
*
|
|
* Bit-bashing interfaces
|
|
*
|
|
*/
|
|
|
|
/**
|
|
* Set/clear output bit
|
|
*
|
|
* @v basher Bit-bashing interface
|
|
* @v bit_id Bit number
|
|
* @v data Value to write
|
|
*
|
|
* If @c data is 0, a logic 0 will be written. If @c data is
|
|
* non-zero, a logic 1 will be written.
|
|
*/
|
|
void write_bit ( struct bit_basher *basher, unsigned int bit_id,
|
|
unsigned long data ) {
|
|
basher->op->write ( basher, bit_id, ( data ? -1UL : 0 ) );
|
|
}
|
|
|
|
/**
|
|
* Read input bit
|
|
*
|
|
* @v basher Bit-bashing interface
|
|
* @v bit_id Bit number
|
|
* @ret data Value read
|
|
*
|
|
* @c data will always be either 0 or -1UL. The idea is that the
|
|
* caller can simply binary-AND the returned value with whatever mask
|
|
* it needs to apply.
|
|
*/
|
|
int read_bit ( struct bit_basher *basher, unsigned int bit_id ) {
|
|
return ( basher->op->read ( basher, bit_id ) ? -1UL : 0 );
|
|
}
|