|
|
1.1.1.2 ! root 1: /* $Id: disk.c,v 1.2 2004/01/09 03:25:05 fredette Exp $ */ 1.1 root 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> 1.1.1.2 ! root 37: _TME_RCSID("$Id: disk.c,v 1.2 2004/01/09 03:25:05 fredette Exp $"); 1.1 root 38: 39: /* includes: */ 40: #include <tme/generic/disk.h> 1.1.1.2 ! root 41: #include <tme/misc.h> 1.1 root 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 1.1.1.2 ! root 70: tme_disk_dimension_parse(const char *dimension_string) 1.1 root 71: { 1.1.1.2 ! root 72: return (tme_misc_unumber_parse(dimension_string, 0)); 1.1 root 73: }
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.