def _fabric_enable_disable(self, target_val):
        """

        :param target_val:
        """
        if self.memmap_compliant:
            word_bytes = list(
                struct.unpack('>4B', self.parent.read(self.name, 4, OFFSET_FLAGS)))
            if word_bytes[0] == target_val:
                return
            word_bytes[0] = target_val
            word_packed = struct.pack('>4B', *word_bytes)
            self.parent.write(self.name, word_packed, OFFSET_FLAGS)
        else:
            # 0x20 or (0x20 / 4)? What was the /4 for?
            word_bytes = list(
                struct.unpack('>4B', self.parent.read(self.name, 4, 0x20)))
            if word_bytes[1] == target_val:
                return
            word_bytes[1] = target_val
            word_packed = struct.pack('>4B', *word_bytes)
            self.parent.write(self.name, word_packed, 0x20)