Annotation of sys/dev/onewire/onewirevar.h, Revision 1.1.1.1
1.1 nbrk 1: /* $OpenBSD: onewirevar.h,v 1.4 2006/10/08 21:12:51 grange Exp $ */
2:
3: /*
4: * Copyright (c) 2006 Alexander Yurchenko <grange@openbsd.org>
5: *
6: * Permission to use, copy, modify, and distribute this software for any
7: * purpose with or without fee is hereby granted, provided that the above
8: * copyright notice and this permission notice appear in all copies.
9: *
10: * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
11: * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
12: * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
13: * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
14: * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
15: * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
16: * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
17: */
18:
19: #ifndef _DEV_ONEWIRE_ONEWIREVAR_H_
20: #define _DEV_ONEWIRE_ONEWIREVAR_H_
21:
22: /*
23: * 1-Wire bus interface.
24: */
25:
26: /* Bus master interface */
27: struct onewire_bus {
28: void * bus_cookie;
29:
30: int (*bus_reset)(void *);
31: int (*bus_bit)(void *, int);
32: int (*bus_read_byte)(void *);
33: void (*bus_write_byte)(void *, int);
34: void (*bus_read_block)(void *, void *, int);
35: void (*bus_write_block)(void *, const void *, int);
36: int (*bus_triplet)(void *, int);
37: void (*bus_matchrom)(void *, u_int64_t);
38: int (*bus_search)(void *, u_int64_t *, int, u_int64_t);
39: };
40:
41: /* Bus methods */
42: int onewire_lock(void *, int);
43: void onewire_unlock(void *);
44:
45: int onewire_reset(void *);
46: int onewire_bit(void *, int);
47: int onewire_read_byte(void *);
48: void onewire_write_byte(void *, int);
49: void onewire_read_block(void *, void *, int);
50: void onewire_write_block(void *, const void *, int);
51: int onewire_triplet(void *, int);
52: void onewire_matchrom(void *, u_int64_t);
53: int onewire_search(void *, u_int64_t *, int, u_int64_t);
54:
55: #define ONEWIRE_NOWAIT 0x0001
56:
57: /* Bus attachment */
58: struct onewirebus_attach_args {
59: struct onewire_bus * oba_bus;
60: };
61:
62: int onewirebus_print(void *, const char *);
63:
64: /* Device attachment */
65: struct onewire_attach_args {
66: void * oa_onewire;
67: u_int64_t oa_rom;
68: };
69:
70: /* Family matching */
71: struct onewire_matchfam {
72: int om_type;
73: };
74:
75: /* Miscellaneous routines */
76: int onewire_crc(const void *, int);
77: const char * onewire_famname(int);
78: int onewire_matchbyfam(struct onewire_attach_args *,
79: const struct onewire_matchfam *, int);
80:
81: /* Bus bit-banging */
82: struct onewire_bbops {
83: void (*bb_rx)(void *);
84: void (*bb_tx)(void *);
85: int (*bb_get)(void *);
86: void (*bb_set)(void *, int);
87: };
88:
89: int onewire_bb_reset(const struct onewire_bbops *, void *);
90: int onewire_bb_bit(const struct onewire_bbops *, void *, int);
91:
92: #endif /* !_DEV_ONEWIRE_ONEWIREVAR_H_ */
CVSweb