1 /*
2     OWFS -- One-Wire filesystem
3     OWHTTPD -- One-Wire Web Server
4     Written 2003 Paul H Alfille
5     email: paul.alfille@gmail.com
6     Released under the GPL
7     See the header file: ow.h for full attribution
8     1wire/iButton system from Dallas Semiconductor
9 */
10 
11 #include <config.h>
12 #include "owfs_config.h"
13 #include "ow.h"
14 
ALLtoBYTE(struct one_wire_query * owq_all)15 struct one_wire_query * ALLtoBYTE(struct one_wire_query *owq_all)
16 {
17 	struct one_wire_query * owq_byte = OWQ_create_separate( EXTENSION_BYTE, owq_all );
18 	size_t elements = PN(owq_all)->selected_filetype->ag->elements ;
19 	size_t extension ;
20 
21 	if ( owq_byte == NO_ONE_WIRE_QUERY ) {
22 		return NO_ONE_WIRE_QUERY ;
23 	}
24 
25 	for ( extension = 0 ; extension < elements ; ++extension ) {
26 		UT_setbit_U( &OWQ_U(owq_byte), extension, OWQ_array_Y(owq_all,extension) ) ;
27 	}
28 	return owq_byte ;
29 }
30 
BYTEtoALL(struct one_wire_query * owq_byte)31 struct one_wire_query * BYTEtoALL(struct one_wire_query *owq_byte)
32 {
33 	struct one_wire_query * owq_all = OWQ_create_aggregate( owq_byte );
34 	size_t elements ;
35 	size_t extension ;
36 
37 	if ( owq_all == NO_ONE_WIRE_QUERY ) {
38 		return NO_ONE_WIRE_QUERY ;
39 	}
40 
41 	elements = PN(owq_all)->selected_filetype->ag->elements ;
42 
43 	for ( extension = 0 ; extension < elements ; ++extension ) {
44 		OWQ_array_Y(owq_all,extension) = UT_getbit_U( OWQ_U(owq_byte), extension ) ;
45 	}
46 	return owq_all ;
47 }
48