diff options
Diffstat (limited to 'debian/grub-extras/disabled/gpxe/src/include/gpxe/bitbash.h')
-rw-r--r-- | debian/grub-extras/disabled/gpxe/src/include/gpxe/bitbash.h | 52 |
1 files changed, 52 insertions, 0 deletions
diff --git a/debian/grub-extras/disabled/gpxe/src/include/gpxe/bitbash.h b/debian/grub-extras/disabled/gpxe/src/include/gpxe/bitbash.h new file mode 100644 index 0000000..f2ba9f7 --- /dev/null +++ b/debian/grub-extras/disabled/gpxe/src/include/gpxe/bitbash.h @@ -0,0 +1,52 @@ +#ifndef _GPXE_BITBASH_H +#define _GPXE_BITBASH_H + +/** @file + * + * Bit-bashing interfaces + * + */ + +FILE_LICENCE ( GPL2_OR_LATER ); + +struct bit_basher; + +/** Bit-bashing operations */ +struct bit_basher_operations { + /** + * Set/clear output bit + * + * @v basher Bit-bashing interface + * @v bit_id Bit number + * @v data Value to write + * + * @c data will be 0 if a logic 0 should be written (i.e. the + * bit should be cleared), or -1UL if a logic 1 should be + * written (i.e. the bit should be set). This is done so that + * the method may simply binary-AND @c data with the + * appropriate bit mask. + */ + void ( * write ) ( struct bit_basher *basher, unsigned int bit_id, + unsigned long data ); + /** + * Read input bit + * + * @v basher Bit-bashing interface + * @v bit_id Bit number + * @ret zero Input is a logic 0 + * @ret non-zero Input is a logic 1 + */ + int ( * read ) ( struct bit_basher *basher, unsigned int bit_id ); +}; + +/** A bit-bashing interface */ +struct bit_basher { + /** Bit-bashing operations */ + struct bit_basher_operations *op; +}; + +extern void write_bit ( struct bit_basher *basher, unsigned int bit_id, + unsigned long data ); +extern int read_bit ( struct bit_basher *basher, unsigned int bit_id ); + +#endif /* _GPXE_BITBASH_H */ |