Annotation of sys/dev/onewire/onewirevar.h, Revision 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