[BACK]Return to netctrl.c CVS log [TXT][DIR] Up to [local] / sys / arch / mvmeppc / stand / libbug

Annotation of sys/arch/mvmeppc/stand/libbug/netctrl.c, Revision 1.1.1.1

1.1       nbrk        1: /*     $OpenBSD: netctrl.c,v 1.3 2004/01/24 21:12:38 miod Exp $        */
                      2:
                      3: /*
                      4:  * bug routines -- assumes that the necessary sections of memory
                      5:  * are preserved.
                      6:  */
                      7: #include <sys/types.h>
                      8:
                      9: #include "libbug.h"
                     10:
                     11: /* returns 0: success, nonzero: error */
                     12: int
                     13: mvmeprom_netctrl(arg)
                     14:        struct mvmeprom_netctrl *arg;
                     15: {
                     16:        asm volatile ("mr 3, %0":: "r" (arg));
                     17:        MVMEPROM_CALL(MVMEPROM_NETCTRL);
                     18:        return (arg->status);
                     19: }
                     20:
                     21: int
                     22: mvmeprom_netctrl_init(clun, dlun)
                     23: u_char clun;
                     24: u_char dlun;
                     25: {
                     26:        struct mvmeprom_netctrl niocall;
                     27:        niocall.clun = clun;
                     28:        niocall.dlun = dlun;
                     29:        niocall.status = 0;
                     30:        niocall.cmd = 0; /* init */
                     31:        niocall.addr = 0;
                     32:        niocall.len = 0;
                     33:        niocall.flags = 0;
                     34:        mvmeprom_netctrl(&niocall);
                     35:        return(niocall.status);
                     36: }
                     37:
                     38: int
                     39: mvmeprom_netctrl_hwa(clun, dlun, addr, len)
                     40: u_char clun;
                     41: u_char dlun;
                     42: void   *addr;
                     43: u_long  *len;
                     44: {
                     45:        struct mvmeprom_netctrl niocall;
                     46:        niocall.clun = clun;
                     47:        niocall.dlun = dlun;
                     48:        niocall.status = 0;
                     49:        niocall.cmd = 1; /* get hw address */
                     50:        niocall.addr = addr;
                     51:        niocall.len = *len;
                     52:        niocall.flags = 0;
                     53:        mvmeprom_netctrl(&niocall);
                     54:        *len = niocall.len;
                     55:        return(niocall.status);
                     56: }
                     57:
                     58: int
                     59: mvmeprom_netctrl_tx(clun, dlun, addr, len)
                     60: u_char clun;
                     61: u_char dlun;
                     62: void   *addr;
                     63: u_long  *len;
                     64: {
                     65:        struct mvmeprom_netctrl niocall;
                     66:        niocall.clun = clun;
                     67:        niocall.dlun = dlun;
                     68:        niocall.status = 0;
                     69:        niocall.cmd = 2; /* transmit */
                     70:        niocall.addr = addr;
                     71:        niocall.len = *len;
                     72:        niocall.flags = 0;
                     73:        mvmeprom_netctrl(&niocall);
                     74:        *len = niocall.len;
                     75:        return(niocall.status);
                     76: }
                     77:
                     78: int
                     79: mvmeprom_netctrl_rx(clun, dlun, addr, len)
                     80: u_char clun;
                     81: u_char dlun;
                     82: void   *addr;
                     83: u_long  *len;
                     84: {
                     85:        struct mvmeprom_netctrl niocall;
                     86:        niocall.clun = clun;
                     87:        niocall.dlun = dlun;
                     88:        niocall.status = 0;
                     89:        niocall.cmd = 3; /* receive */
                     90:        niocall.addr = addr;
                     91:        niocall.len = *len;
                     92:        niocall.flags = 0;
                     93:        mvmeprom_netctrl(&niocall);
                     94:        *len = niocall.len;
                     95:        return(niocall.status);
                     96: }
                     97:
                     98: int
                     99: mvmeprom_netctrl_flush_rx(clun, dlun)
                    100: u_char clun;
                    101: u_char dlun;
                    102: {
                    103:        struct mvmeprom_netctrl niocall;
                    104:        niocall.clun = clun;
                    105:        niocall.dlun = dlun;
                    106:        niocall.status = 0;
                    107:        niocall.cmd = 4; /* reset */
                    108:        niocall.addr = 0;
                    109:        niocall.len = 0;
                    110:        niocall.flags = 0;
                    111:        mvmeprom_netctrl(&niocall);
                    112:        return(niocall.status);
                    113: }
                    114:
                    115: int
                    116: mvmeprom_netctrl_reset(clun, dlun)
                    117: u_char clun;
                    118: u_char dlun;
                    119: {
                    120:        struct mvmeprom_netctrl niocall;
                    121:        niocall.clun = clun;
                    122:        niocall.dlun = dlun;
                    123:        niocall.status = 0;
                    124:        niocall.cmd = 5; /* reset */
                    125:        niocall.addr = 0;
                    126:        niocall.len = 0;
                    127:        niocall.flags = 0;
                    128:        mvmeprom_netctrl(&niocall);
                    129:        return(niocall.status);
                    130: }
                    131:
                    132:

CVSweb