|
|
1.1 ! root 1: /* $Id: disk.c,v 1.1 2003/07/29 18:18:35 fredette Exp $ */ ! 2: ! 3: /* generic/disk.c - generic disk implementation support: */ ! 4: ! 5: /* ! 6: * Copyright (c) 2003 Matt Fredette ! 7: * All rights reserved. ! 8: * ! 9: * Redistribution and use in source and binary forms, with or without ! 10: * modification, are permitted provided that the following conditions ! 11: * are met: ! 12: * 1. Redistributions of source code must retain the above copyright ! 13: * notice, this list of conditions and the following disclaimer. ! 14: * 2. Redistributions in binary form must reproduce the above copyright ! 15: * notice, this list of conditions and the following disclaimer in the ! 16: * documentation and/or other materials provided with the distribution. ! 17: * 3. All advertising materials mentioning features or use of this software ! 18: * must display the following acknowledgement: ! 19: * This product includes software developed by Matt Fredette. ! 20: * 4. The name of the author may not be used to endorse or promote products ! 21: * derived from this software without specific prior written permission. ! 22: * ! 23: * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR ! 24: * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED ! 25: * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE ! 26: * DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, ! 27: * INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES ! 28: * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR ! 29: * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) ! 30: * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, ! 31: * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ! 32: * ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE ! 33: * POSSIBILITY OF SUCH DAMAGE. ! 34: */ ! 35: ! 36: #include <tme/common.h> ! 37: _TME_RCSID("$Id: disk.c,v 1.1 2003/07/29 18:18:35 fredette Exp $"); ! 38: ! 39: /* includes: */ ! 40: #include <tme/generic/disk.h> ! 41: #include <tme/generic/bus.h> ! 42: #include <stdlib.h> ! 43: ! 44: /* this scores a disk connection: */ ! 45: int ! 46: tme_disk_connection_score(struct tme_connection *conn, ! 47: unsigned int *_score) ! 48: { ! 49: struct tme_disk_connection *conn_disk; ! 50: struct tme_disk_connection *conn_disk_other; ! 51: ! 52: /* both sides must be disk connections: */ ! 53: assert(conn->tme_connection_type == TME_CONNECTION_DISK); ! 54: assert(conn->tme_connection_other->tme_connection_type == TME_CONNECTION_DISK); ! 55: ! 56: /* you cannot connect a disk to a disk, or a disk frontend to a disk ! 57: frontend: */ ! 58: conn_disk = (struct tme_disk_connection *) conn; ! 59: conn_disk_other = (struct tme_disk_connection *) conn->tme_connection_other; ! 60: *_score ! 61: = ((conn_disk->tme_disk_connection_read != NULL ! 62: || conn_disk->tme_disk_connection_write != NULL) ! 63: != (conn_disk_other->tme_disk_connection_read != NULL ! 64: || conn_disk_other->tme_disk_connection_write != NULL)); ! 65: return (TME_OK); ! 66: } ! 67: ! 68: /* this parses a disk dimension: */ ! 69: tme_uint32_t ! 70: tme_disk_dimension_parse(_tme_const char *dimension_string) ! 71: { ! 72: return (tme_bus_addr_parse(dimension_string, 0)); ! 73: }
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.