2 * QEMU rocker switch emulation - switch worlds
4 * Copyright (c) 2014 Scott Feldman <sfeldma@gmail.com>
6 * This program is free software; you can redistribute it and/or modify
7 * it under the terms of the GNU General Public License as published by
8 * the Free Software Foundation; either version 2 of the License, or
9 * (at your option) any later version.
11 * This program is distributed in the hope that it will be useful,
12 * but WITHOUT ANY WARRANTY; without even the implied warranty of
13 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14 * GNU General Public License for more details.
20 #include "rocker_world.h"
24 enum rocker_world_type type
;
28 ssize_t
world_ingress(World
*world
, uint32_t pport
,
29 const struct iovec
*iov
, int iovcnt
)
32 return world
->ops
->ig(world
, pport
, iov
, iovcnt
);
38 int world_do_cmd(World
*world
, DescInfo
*info
,
39 char *buf
, uint16_t cmd
, RockerTlv
*cmd_info_tlv
)
41 if (world
->ops
->cmd
) {
42 return world
->ops
->cmd(world
, info
, buf
, cmd
, cmd_info_tlv
);
45 return -ROCKER_ENOTSUP
;
48 World
*world_alloc(Rocker
*r
, size_t sizeof_private
,
49 enum rocker_world_type type
, WorldOps
*ops
)
51 World
*w
= g_malloc0(sizeof(World
) + sizeof_private
);
65 void world_free(World
*world
)
67 if (world
->ops
->uninit
) {
68 world
->ops
->uninit(world
);
73 void world_reset(World
*world
)
75 if (world
->ops
->uninit
) {
76 world
->ops
->uninit(world
);
78 if (world
->ops
->init
) {
79 world
->ops
->init(world
);
83 void *world_private(World
*world
)
88 Rocker
*world_rocker(World
*world
)
93 enum rocker_world_type
world_type(World
*world
)
98 const char *world_name(World
*world
)
100 switch (world
->type
) {
101 case ROCKER_WORLD_TYPE_OF_DPA
: