1d18957dbSPavel Pisa /* 2d18957dbSPavel Pisa * CAN common CAN bus emulation support 3d18957dbSPavel Pisa * 4d18957dbSPavel Pisa * Copyright (c) 2013-2014 Jin Yang 5d18957dbSPavel Pisa * Copyright (c) 2014-2018 Pavel Pisa 6d18957dbSPavel Pisa * 7d18957dbSPavel Pisa * Initial development supported by Google GSoC 2013 from RTEMS project slot 8d18957dbSPavel Pisa * 9d18957dbSPavel Pisa * Permission is hereby granted, free of charge, to any person obtaining a copy 10d18957dbSPavel Pisa * of this software and associated documentation files (the "Software"), to deal 11d18957dbSPavel Pisa * in the Software without restriction, including without limitation the rights 12d18957dbSPavel Pisa * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 13d18957dbSPavel Pisa * copies of the Software, and to permit persons to whom the Software is 14d18957dbSPavel Pisa * furnished to do so, subject to the following conditions: 15d18957dbSPavel Pisa * 16d18957dbSPavel Pisa * The above copyright notice and this permission notice shall be included in 17d18957dbSPavel Pisa * all copies or substantial portions of the Software. 18d18957dbSPavel Pisa * 19d18957dbSPavel Pisa * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 20d18957dbSPavel Pisa * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 21d18957dbSPavel Pisa * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL 22d18957dbSPavel Pisa * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 23d18957dbSPavel Pisa * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 24d18957dbSPavel Pisa * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 25d18957dbSPavel Pisa * THE SOFTWARE. 26d18957dbSPavel Pisa */ 27d18957dbSPavel Pisa 28d18957dbSPavel Pisa #ifndef NET_CAN_HOST_H 29d18957dbSPavel Pisa #define NET_CAN_HOST_H 30d18957dbSPavel Pisa 31d18957dbSPavel Pisa #include "net/can_emu.h" 32db1015e9SEduardo Habkost #include "qom/object.h" 33d18957dbSPavel Pisa 34d18957dbSPavel Pisa #define TYPE_CAN_HOST "can-host" 35a489d195SEduardo Habkost OBJECT_DECLARE_TYPE(CanHostState, CanHostClass, CAN_HOST) 36d18957dbSPavel Pisa 37db1015e9SEduardo Habkost struct CanHostState { 38*22fb6eb5SPaolo Bonzini Object oc; 39d18957dbSPavel Pisa 40d18957dbSPavel Pisa CanBusState *bus; 41d18957dbSPavel Pisa CanBusClientState bus_client; 42db1015e9SEduardo Habkost }; 43d18957dbSPavel Pisa 44db1015e9SEduardo Habkost struct CanHostClass { 45d18957dbSPavel Pisa ObjectClass oc; 46d18957dbSPavel Pisa 47d18957dbSPavel Pisa void (*connect)(CanHostState *ch, Error **errp); 48d18957dbSPavel Pisa void (*disconnect)(CanHostState *ch); 49db1015e9SEduardo Habkost }; 50d18957dbSPavel Pisa 51d18957dbSPavel Pisa #endif 52