t2ex/t2ex_source/driver/tef_em1d/netdrv/src/io.c | bare source | permlink (0.01 seconds) |
1: /* 2: *---------------------------------------------------------------------- 3: * T2EX Software Package 4: * 5: * Copyright 2012 by Ken Sakamura. 6: * This software is distributed under the latest version of T-License 2.x. 7: *---------------------------------------------------------------------- 8: * 9: * Released by T-Engine Forum(http://www.t-engine.org/) at 2012/12/12. 10: * Modified by TRON Forum(http://www.tron.org/) at 2015/06/04. 11: * 12: *---------------------------------------------------------------------- 13: */ 14: /* 15: * This software package is available for use, modification, 16: * and redistribution in accordance with the terms of the attached 17: * T-License 2.x. 18: * If you want to redistribute the source code, you need to attach 19: * the T-License 2.x document. 20: * There's no obligation to publish the content, and no obligation 21: * to disclose it to the TRON Forum if you have modified the 22: * software package. 23: * You can also distribute the modified source code. In this case, 24: * please register the modification to T-Kernel traceability service. 25: * People can know the history of modifications by the service, 26: * and can be sure that the version you have inherited some 27: * modification of a particular version or not. 28: * 29: * http://trace.tron.org/tk/?lang=en 30: * http://trace.tron.org/tk/?lang=ja 31: * 32: * As per the provisions of the T-License 2.x, TRON Forum ensures that 33: * the portion of the software that is copyrighted by Ken Sakamura or 34: * the TRON Forum does not infringe the copyrights of a third party. 35: * However, it does not make any warranty other than this. 36: * DISCLAIMER: TRON Forum and Ken Sakamura shall not be held 37: * responsible for any consequences or damages caused directly or 38: * indirectly by the use of this software package. 39: * 40: * The source codes in bsd_source.tar.gz in this software package are 41: * derived from NetBSD or OpenBSD and not covered under T-License 2.x. 42: * They need to be changed or redistributed according to the 43: * representation of each source header. 44: */ 45: 46: /* 47: * @(#)io.c 48: * 49: */ 50: 51: #include "netdrv.h" 52: 53: /* 54: * Memory block outputs (8 bit) cnt : number of bytes 55: */ 56: EXPORT void OutMemB(UW iob, W ix, UB *buf, W cnt) 57: { 58: UW port = iob + (ix * IOSTEP); 59: 60: while (--cnt >= 0) { 61: out_b(port, *buf++); 62: } 63: } 64: 65: /* 66: * Memory block inputs (8 bit) cnt : number of bytes 67: */ 68: EXPORT void InMemB(UW iob, W ix, UB *buf, W cnt) 69: { 70: UW port = iob + (ix * IOSTEP); 71: 72: while (--cnt >= 0) { 73: *buf++ = in_b(port); 74: } 75: } 76: 77: /* 78: * Memory block outputs (16 bit) cnt : number of half words 79: */ 80: EXPORT void OutMemH(UW iob, W ix, UH *buf, W cnt) 81: { 82: UW port = iob + (ix * IOSTEP); 83: 84: while (--cnt >= 0) { 85: out_h(port, *buf++); 86: } 87: } 88: 89: /* 90: * Memory block inputs (16 bit) cnt : number of half words 91: */ 92: EXPORT void InMemH(UW iob, W ix, UH *buf, W cnt) 93: { 94: UW port = iob + (ix * IOSTEP); 95: 96: while (--cnt >= 0) { 97: *buf++ = in_h(port); 98: } 99: } 100: 101: /* 102: * Memory block outputs (32 bit) cnt : number of words 103: */ 104: EXPORT void OutMemW(UW iob, W ix, UW *buf, W cnt) 105: { 106: UW port = iob + (ix * IOSTEP); 107: 108: while (--cnt >= 0) { 109: out_w(port, *buf++); 110: } 111: } 112: 113: /* 114: * Memory block inputs (32 bit) cnt : number of words 115: */ 116: EXPORT void InMemW(UW iob, W ix, UW *buf, W cnt) 117: { 118: UW port = iob + (ix * IOSTEP); 119: 120: while (--cnt >= 0) { 121: *buf++ = in_w(port); 122: } 123: } 124: