1 /******************************************************************************
2 * Copyright (c) 2013 IBM Corporation
4 * This program and the accompanying materials
5 * are made available under the terms of the BSD License
6 * which accompanies this distribution, and is available at
7 * http://www.opensource.org/licenses/bsd-license.php
10 * IBM Corporation - initial implementation
11 *****************************************************************************/
14 * libe1k Forth wrapper
19 // : e1k-open ( baseaddr -- false | [ driver true ] )
22 uint64_t baseaddr = TOS.u; POP;
23 net_driver_t *net_driver = e1k_open(baseaddr);
26 TOS.u = (unsigned long)net_driver; PUSH;
35 // : e1k-close ( driver -- )
38 net_driver_t *driver = TOS.a; POP;
44 // : e1k-read ( addr len -- actual )
48 TOS.n = e1k_read(TOS.a, len);
52 // : e1k-write ( addr len -- actual )
56 TOS.n = e1k_write(TOS.a, len);
60 // : e1k-mac-setup ( vendor-id device-id baseaddr addr -- false | [ mac-addr len true ] )
61 PRIM(E1K_X2d_MAC_X2d_SETUP)
63 char *mac_addr = TOS.a; POP;
64 uint64_t baseaddr = TOS.u; POP;
65 unsigned int device_id = TOS.u; POP;
67 int ret = e1k_mac_setup(TOS.u, device_id, baseaddr, mac_addr);
69 TOS.a = mac_addr; PUSH;