Sparse fixes: NULL use, header order, ANSI prototypes, static
Fix Sparse warnings: * use NULL instead of plain 0 * rearrange header include order to avoid redefining types accidentally * ANSIfy SLIRP * avoid "restrict" keyword * add static git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@6736 c046a42c-6fe2-441c-8c8c-71466251a162
This commit is contained in:
parent
c276471991
commit
511d2b140f
@ -85,7 +85,7 @@ static int dmg_open(BlockDriverState *bs, const char *filename, int flags)
|
||||
return -errno;
|
||||
bs->read_only = 1;
|
||||
s->n_chunks = 0;
|
||||
s->offsets = s->lengths = s->sectors = s->sectorcounts = 0;
|
||||
s->offsets = s->lengths = s->sectors = s->sectorcounts = NULL;
|
||||
|
||||
/* read offset of info blocks */
|
||||
if(lseek(s->fd,-0x1d8,SEEK_END)<0) {
|
||||
|
10
block-vmdk.c
10
block-vmdk.c
@ -134,7 +134,7 @@ static uint32_t vmdk_read_cid(BlockDriverState *bs, int parent)
|
||||
cid_str_size = sizeof("CID");
|
||||
}
|
||||
|
||||
if ((p_name = strstr(desc,cid_str)) != 0) {
|
||||
if ((p_name = strstr(desc,cid_str)) != NULL) {
|
||||
p_name += cid_str_size;
|
||||
sscanf(p_name,"%x",&cid);
|
||||
}
|
||||
@ -154,7 +154,7 @@ static int vmdk_write_cid(BlockDriverState *bs, uint32_t cid)
|
||||
|
||||
tmp_str = strstr(desc,"parentCID");
|
||||
pstrcpy(tmp_desc, sizeof(tmp_desc), tmp_str);
|
||||
if ((p_name = strstr(desc,"CID")) != 0) {
|
||||
if ((p_name = strstr(desc,"CID")) != NULL) {
|
||||
p_name += sizeof("CID");
|
||||
snprintf(p_name, sizeof(desc) - (p_name - desc), "%x\n", cid);
|
||||
pstrcat(desc, sizeof(desc), tmp_desc);
|
||||
@ -239,7 +239,7 @@ static int vmdk_snapshot_create(const char *filename, const char *backing_file)
|
||||
if (read(p_fd, p_desc, DESC_SIZE) != DESC_SIZE)
|
||||
goto fail;
|
||||
|
||||
if ((p_name = strstr(p_desc,"CID")) != 0) {
|
||||
if ((p_name = strstr(p_desc,"CID")) != NULL) {
|
||||
p_name += sizeof("CID");
|
||||
sscanf(p_name,"%x",&p_cid);
|
||||
}
|
||||
@ -330,12 +330,12 @@ static int vmdk_parent_open(BlockDriverState *bs, const char * filename)
|
||||
if (bdrv_pread(s->hd, 0x200, desc, DESC_SIZE) != DESC_SIZE)
|
||||
return -1;
|
||||
|
||||
if ((p_name = strstr(desc,"parentFileNameHint")) != 0) {
|
||||
if ((p_name = strstr(desc,"parentFileNameHint")) != NULL) {
|
||||
char *end_name;
|
||||
struct stat file_buf;
|
||||
|
||||
p_name += sizeof("parentFileNameHint") + 1;
|
||||
if ((end_name = strchr(p_name,'\"')) == 0)
|
||||
if ((end_name = strchr(p_name,'\"')) == NULL)
|
||||
return -1;
|
||||
if ((end_name - p_name) > sizeof (s->hd->backing_file) - 1)
|
||||
return -1;
|
||||
|
@ -78,7 +78,7 @@ typedef struct array_t {
|
||||
|
||||
static inline void array_init(array_t* array,unsigned int item_size)
|
||||
{
|
||||
array->pointer=0;
|
||||
array->pointer = NULL;
|
||||
array->size=0;
|
||||
array->next=0;
|
||||
array->item_size=item_size;
|
||||
@ -129,7 +129,7 @@ static inline void* array_insert(array_t* array,unsigned int index,unsigned int
|
||||
int increment=count*array->item_size;
|
||||
array->pointer=qemu_realloc(array->pointer,array->size+increment);
|
||||
if(!array->pointer)
|
||||
return 0;
|
||||
return NULL;
|
||||
array->size+=increment;
|
||||
}
|
||||
memmove(array->pointer+(index+count)*array->item_size,
|
||||
@ -604,8 +604,8 @@ static inline direntry_t* create_short_and_long_name(BDRVVVFATState* s,
|
||||
unsigned int directory_start, const char* filename, int is_dot)
|
||||
{
|
||||
int i,j,long_index=s->directory.next;
|
||||
direntry_t* entry=0;
|
||||
direntry_t* entry_long=0;
|
||||
direntry_t* entry = NULL;
|
||||
direntry_t* entry_long = NULL;
|
||||
|
||||
if(is_dot) {
|
||||
entry=array_get_next(&(s->directory));
|
||||
@ -696,7 +696,7 @@ static int read_directory(BDRVVVFATState* s, int mapping_index)
|
||||
int first_cluster = mapping->begin;
|
||||
int parent_index = mapping->info.dir.parent_mapping_index;
|
||||
mapping_t* parent_mapping = (mapping_t*)
|
||||
(parent_index >= 0 ? array_get(&(s->mapping), parent_index) : 0);
|
||||
(parent_index >= 0 ? array_get(&(s->mapping), parent_index) : NULL);
|
||||
int first_cluster_of_parent = parent_mapping ? parent_mapping->begin : -1;
|
||||
|
||||
DIR* dir=opendir(dirname);
|
||||
@ -1125,10 +1125,10 @@ static inline mapping_t* find_mapping_for_cluster(BDRVVVFATState* s,int cluster_
|
||||
int index=find_mapping_for_cluster_aux(s,cluster_num,0,s->mapping.next);
|
||||
mapping_t* mapping;
|
||||
if(index>=s->mapping.next)
|
||||
return 0;
|
||||
return NULL;
|
||||
mapping=array_get(&(s->mapping),index);
|
||||
if(mapping->begin>cluster_num)
|
||||
return 0;
|
||||
return NULL;
|
||||
assert(mapping->begin<=cluster_num && mapping->end>cluster_num);
|
||||
return mapping;
|
||||
}
|
||||
|
@ -171,7 +171,7 @@ struct HCIInfo *bt_host_hci(const char *id)
|
||||
if (fd < 0) {
|
||||
fprintf(stderr, "qemu: Can't open `%s': %s (%i)\n",
|
||||
id, strerror(errno), errno);
|
||||
return 0;
|
||||
return NULL;
|
||||
}
|
||||
|
||||
# ifdef CONFIG_BLUEZ
|
||||
@ -192,7 +192,7 @@ struct HCIInfo *bt_host_hci(const char *id)
|
||||
s->hci.acl_send = bt_host_acl;
|
||||
s->hci.bdaddr_set = bt_host_bdaddr_set;
|
||||
|
||||
qemu_set_fd_handler2(s->fd, bt_host_read_poll, bt_host_read, 0, s);
|
||||
qemu_set_fd_handler2(s->fd, bt_host_read_poll, bt_host_read, NULL, s);
|
||||
|
||||
return &s->hci;
|
||||
}
|
||||
|
@ -165,5 +165,5 @@ void bt_vhci_init(struct HCIInfo *info)
|
||||
s->info->evt_recv = vhci_out_hci_packet_event;
|
||||
s->info->acl_recv = vhci_out_hci_packet_acl;
|
||||
|
||||
qemu_set_fd_handler(s->fd, vhci_read, 0, s);
|
||||
qemu_set_fd_handler(s->fd, vhci_read, NULL, s);
|
||||
}
|
||||
|
@ -1327,7 +1327,7 @@ static void text_console_do_init(CharDriverState *chr, DisplayState *ds, const c
|
||||
unsigned height;
|
||||
static int color_inited;
|
||||
|
||||
s = new_console(ds, (p == 0) ? TEXT_CONSOLE : TEXT_CONSOLE_FIXED_SIZE);
|
||||
s = new_console(ds, (p == NULL) ? TEXT_CONSOLE : TEXT_CONSOLE_FIXED_SIZE);
|
||||
if (!s) {
|
||||
free(chr);
|
||||
return;
|
||||
@ -1353,7 +1353,7 @@ static void text_console_do_init(CharDriverState *chr, DisplayState *ds, const c
|
||||
s->y = 0;
|
||||
width = ds_get_width(s->ds);
|
||||
height = ds_get_height(s->ds);
|
||||
if (p != 0) {
|
||||
if (p != NULL) {
|
||||
width = strtoul(p, (char **)&p, 10);
|
||||
if (*p == 'C') {
|
||||
p++;
|
||||
|
9
curses.c
9
curses.c
@ -21,11 +21,6 @@
|
||||
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
||||
* THE SOFTWARE.
|
||||
*/
|
||||
|
||||
#include "qemu-common.h"
|
||||
#include "console.h"
|
||||
#include "sysemu.h"
|
||||
|
||||
#include <curses.h>
|
||||
|
||||
#ifndef _WIN32
|
||||
@ -38,6 +33,10 @@
|
||||
#define resize_term resizeterm
|
||||
#endif
|
||||
|
||||
#include "qemu-common.h"
|
||||
#include "console.h"
|
||||
#include "sysemu.h"
|
||||
|
||||
#define FONT_HEIGHT 16
|
||||
#define FONT_WIDTH 8
|
||||
|
||||
|
2
exec.c
2
exec.c
@ -179,7 +179,7 @@ static void io_mem_init(void);
|
||||
CPUWriteMemoryFunc *io_mem_write[IO_MEM_NB_ENTRIES][4];
|
||||
CPUReadMemoryFunc *io_mem_read[IO_MEM_NB_ENTRIES][4];
|
||||
void *io_mem_opaque[IO_MEM_NB_ENTRIES];
|
||||
char io_mem_used[IO_MEM_NB_ENTRIES];
|
||||
static char io_mem_used[IO_MEM_NB_ENTRIES];
|
||||
static int io_mem_watch;
|
||||
#endif
|
||||
|
||||
|
10
hw/bt-hci.c
10
hw/bt-hci.c
@ -446,7 +446,7 @@ static inline uint8_t *bt_hci_event_start(struct bt_hci_s *hci,
|
||||
mask_byte = (evt - 1) >> 3;
|
||||
mask = 1 << ((evt - 1) & 3);
|
||||
if (mask & bt_event_reserved_mask[mask_byte] & ~hci->event_mask[mask_byte])
|
||||
return 0;
|
||||
return NULL;
|
||||
|
||||
packet = hci->evt_packet(hci->opaque);
|
||||
packet[0] = evt;
|
||||
@ -664,7 +664,7 @@ static void bt_hci_lmp_link_establish(struct bt_hci_s *hci,
|
||||
static void bt_hci_lmp_link_teardown(struct bt_hci_s *hci, uint16_t handle)
|
||||
{
|
||||
handle &= ~HCI_HANDLE_OFFSET;
|
||||
hci->lm.handle[handle].link = 0;
|
||||
hci->lm.handle[handle].link = NULL;
|
||||
|
||||
if (bt_hci_role_master(hci, handle)) {
|
||||
qemu_del_timer(hci->lm.handle[handle].acl_mode_timer);
|
||||
@ -1138,7 +1138,7 @@ static void bt_hci_reset(struct bt_hci_s *hci)
|
||||
hci->device.page_scan = 0;
|
||||
if (hci->device.lmp_name)
|
||||
qemu_free((void *) hci->device.lmp_name);
|
||||
hci->device.lmp_name = 0;
|
||||
hci->device.lmp_name = NULL;
|
||||
hci->device.class[0] = 0x00;
|
||||
hci->device.class[1] = 0x00;
|
||||
hci->device.class[2] = 0x00;
|
||||
@ -1617,7 +1617,7 @@ static void bt_submit_hci(struct HCIInfo *info,
|
||||
|
||||
bt_hci_event_status(hci, HCI_SUCCESS);
|
||||
bt_hci_connection_accept(hci, hci->conn_req_host);
|
||||
hci->conn_req_host = 0;
|
||||
hci->conn_req_host = NULL;
|
||||
break;
|
||||
|
||||
case cmd_opcode_pack(OGF_LINK_CTL, OCF_REJECT_CONN_REQ):
|
||||
@ -1634,7 +1634,7 @@ static void bt_submit_hci(struct HCIInfo *info,
|
||||
bt_hci_connection_reject(hci, hci->conn_req_host,
|
||||
PARAM(reject_conn_req, reason));
|
||||
bt_hci_connection_reject_event(hci, &hci->conn_req_host->bd_addr);
|
||||
hci->conn_req_host = 0;
|
||||
hci->conn_req_host = NULL;
|
||||
break;
|
||||
|
||||
case cmd_opcode_pack(OGF_LINK_CTL, OCF_AUTH_REQUESTED):
|
||||
|
@ -324,7 +324,8 @@ static void bt_hid_control_transaction(struct bt_hid_device_s *s,
|
||||
break;
|
||||
}
|
||||
s->proto = parameter;
|
||||
s->usbdev->handle_control(s->usbdev, SET_PROTOCOL, s->proto, 0, 0, 0);
|
||||
s->usbdev->handle_control(s->usbdev, SET_PROTOCOL, s->proto, 0, 0,
|
||||
NULL);
|
||||
ret = BT_HS_SUCCESSFUL;
|
||||
break;
|
||||
|
||||
@ -347,7 +348,7 @@ static void bt_hid_control_transaction(struct bt_hid_device_s *s,
|
||||
/* We don't need to know about the Idle Rate here really,
|
||||
* so just pass it on to the device. */
|
||||
ret = s->usbdev->handle_control(s->usbdev,
|
||||
SET_IDLE, data[1], 0, 0, 0) ?
|
||||
SET_IDLE, data[1], 0, 0, NULL) ?
|
||||
BT_HS_SUCCESSFUL : BT_HS_ERR_INVALID_PARAMETER;
|
||||
/* XXX: Does this generate a handshake? */
|
||||
break;
|
||||
@ -462,7 +463,7 @@ static void bt_hid_close_control(void *opaque)
|
||||
{
|
||||
struct bt_hid_device_s *hid = opaque;
|
||||
|
||||
hid->control = 0;
|
||||
hid->control = NULL;
|
||||
bt_hid_connected_update(hid);
|
||||
}
|
||||
|
||||
@ -470,7 +471,7 @@ static void bt_hid_close_interrupt(void *opaque)
|
||||
{
|
||||
struct bt_hid_device_s *hid = opaque;
|
||||
|
||||
hid->interrupt = 0;
|
||||
hid->interrupt = NULL;
|
||||
bt_hid_connected_update(hid);
|
||||
}
|
||||
|
||||
|
@ -401,7 +401,7 @@ static inline struct bt_l2cap_psm_s *l2cap_psm(
|
||||
static struct l2cap_chan_s *l2cap_channel_open(struct l2cap_instance_s *l2cap,
|
||||
int psm, int source_cid)
|
||||
{
|
||||
struct l2cap_chan_s *ch = 0;
|
||||
struct l2cap_chan_s *ch = NULL;
|
||||
struct bt_l2cap_psm_s *psm_info;
|
||||
int result, status;
|
||||
int cid = l2cap_cid_new(l2cap);
|
||||
@ -452,7 +452,7 @@ static struct l2cap_chan_s *l2cap_channel_open(struct l2cap_instance_s *l2cap,
|
||||
static void l2cap_channel_close(struct l2cap_instance_s *l2cap,
|
||||
int cid, int source_cid)
|
||||
{
|
||||
struct l2cap_chan_s *ch = 0;
|
||||
struct l2cap_chan_s *ch = NULL;
|
||||
|
||||
/* According to Volume 3, section 6.1.1, pg 1048 of BT Core V2.0, a
|
||||
* connection in CLOSED state still responds with a L2CAP_DisconnectRsp
|
||||
@ -472,7 +472,7 @@ static void l2cap_channel_close(struct l2cap_instance_s *l2cap,
|
||||
return;
|
||||
}
|
||||
|
||||
l2cap->cid[cid] = 0;
|
||||
l2cap->cid[cid] = NULL;
|
||||
|
||||
ch->params.close(ch->params.opaque);
|
||||
qemu_free(ch);
|
||||
@ -484,7 +484,7 @@ static void l2cap_channel_close(struct l2cap_instance_s *l2cap,
|
||||
static void l2cap_channel_config_null(struct l2cap_instance_s *l2cap,
|
||||
struct l2cap_chan_s *ch)
|
||||
{
|
||||
l2cap_configuration_request(l2cap, ch->remote_cid, 0, 0, 0);
|
||||
l2cap_configuration_request(l2cap, ch->remote_cid, 0, NULL, 0);
|
||||
ch->config_req_id = l2cap->last_id;
|
||||
ch->config &= ~L2CAP_CFG_INIT;
|
||||
}
|
||||
|
@ -948,7 +948,7 @@ static int bt_l2cap_sdp_new_ch(struct bt_l2cap_device_s *dev,
|
||||
&sdp_service_sdp_s,
|
||||
&sdp_service_hid_s,
|
||||
&sdp_service_pnp_s,
|
||||
0,
|
||||
NULL,
|
||||
};
|
||||
|
||||
sdp->channel = params;
|
||||
|
@ -47,6 +47,7 @@
|
||||
#define MPC8544_PCI_IO 0xE1000000
|
||||
#define MPC8544_PCI_IOLEN 0x10000
|
||||
|
||||
#ifdef HAVE_FDT
|
||||
static int mpc8544_copy_soc_cell(void *fdt, const char *node, const char *prop)
|
||||
{
|
||||
uint32_t cell;
|
||||
@ -68,6 +69,7 @@ static int mpc8544_copy_soc_cell(void *fdt, const char *node, const char *prop)
|
||||
out:
|
||||
return ret;
|
||||
}
|
||||
#endif
|
||||
|
||||
static void *mpc8544_load_device_tree(void *addr,
|
||||
uint32_t ramsize,
|
||||
|
@ -612,9 +612,9 @@ static void usb_bt_handle_destroy(USBDevice *dev)
|
||||
{
|
||||
struct USBBtState *s = (struct USBBtState *) dev->opaque;
|
||||
|
||||
s->hci->opaque = 0;
|
||||
s->hci->evt_recv = 0;
|
||||
s->hci->acl_recv = 0;
|
||||
s->hci->opaque = NULL;
|
||||
s->hci->evt_recv = NULL;
|
||||
s->hci->acl_recv = NULL;
|
||||
qemu_free(s);
|
||||
}
|
||||
|
||||
|
@ -230,7 +230,6 @@ enum {
|
||||
#ifdef VERBOSE
|
||||
# define GUEST_OS_BASE 0x5001
|
||||
static const char *vmsvga_guest_id[] = {
|
||||
[0x00 ... 0x15] = "an unknown OS",
|
||||
[0x00] = "Dos",
|
||||
[0x01] = "Windows 3.1",
|
||||
[0x02] = "Windows 95",
|
||||
@ -240,8 +239,18 @@ static const char *vmsvga_guest_id[] = {
|
||||
[0x06] = "Windows 2000",
|
||||
[0x07] = "Linux",
|
||||
[0x08] = "OS/2",
|
||||
[0x09] = "an unknown OS",
|
||||
[0x0a] = "BSD",
|
||||
[0x0b] = "Whistler",
|
||||
[0x0c] = "an unknown OS",
|
||||
[0x0d] = "an unknown OS",
|
||||
[0x0e] = "an unknown OS",
|
||||
[0x0f] = "an unknown OS",
|
||||
[0x10] = "an unknown OS",
|
||||
[0x11] = "an unknown OS",
|
||||
[0x12] = "an unknown OS",
|
||||
[0x13] = "an unknown OS",
|
||||
[0x14] = "an unknown OS",
|
||||
[0x15] = "Windows 2003",
|
||||
};
|
||||
#endif
|
||||
|
@ -184,12 +184,12 @@ static void wm8750_set_format(struct wm8750_s *s)
|
||||
for (i = 0; i < IN_PORT_N; i ++)
|
||||
if (s->adc_voice[i]) {
|
||||
AUD_close_in(&s->card, s->adc_voice[i]);
|
||||
s->adc_voice[i] = 0;
|
||||
s->adc_voice[i] = NULL;
|
||||
}
|
||||
for (i = 0; i < OUT_PORT_N; i ++)
|
||||
if (s->dac_voice[i]) {
|
||||
AUD_close_out(&s->card, s->dac_voice[i]);
|
||||
s->dac_voice[i] = 0;
|
||||
s->dac_voice[i] = NULL;
|
||||
}
|
||||
|
||||
if (!s->enable)
|
||||
|
@ -21,6 +21,7 @@
|
||||
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
||||
* THE SOFTWARE.
|
||||
*/
|
||||
#include <dirent.h>
|
||||
#include "hw/hw.h"
|
||||
#include "hw/usb.h"
|
||||
#include "hw/pcmcia.h"
|
||||
@ -37,7 +38,6 @@
|
||||
#include "audio/audio.h"
|
||||
#include "disas.h"
|
||||
#include "balloon.h"
|
||||
#include <dirent.h>
|
||||
#include "qemu-timer.h"
|
||||
#include "migration.h"
|
||||
#include "kvm.h"
|
||||
|
32
net.c
32
net.c
@ -21,14 +21,6 @@
|
||||
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
||||
* THE SOFTWARE.
|
||||
*/
|
||||
#include "qemu-common.h"
|
||||
#include "net.h"
|
||||
#include "monitor.h"
|
||||
#include "sysemu.h"
|
||||
#include "qemu-timer.h"
|
||||
#include "qemu-char.h"
|
||||
#include "audio/audio.h"
|
||||
|
||||
#include <unistd.h>
|
||||
#include <fcntl.h>
|
||||
#include <signal.h>
|
||||
@ -98,12 +90,6 @@
|
||||
#endif
|
||||
#endif
|
||||
|
||||
#include "qemu_socket.h"
|
||||
|
||||
#if defined(CONFIG_SLIRP)
|
||||
#include "libslirp.h"
|
||||
#endif
|
||||
|
||||
#if defined(__OpenBSD__)
|
||||
#include <util.h>
|
||||
#endif
|
||||
@ -120,6 +106,20 @@
|
||||
#define memalign(align, size) malloc(size)
|
||||
#endif
|
||||
|
||||
#include "qemu-common.h"
|
||||
#include "net.h"
|
||||
#include "monitor.h"
|
||||
#include "sysemu.h"
|
||||
#include "qemu-timer.h"
|
||||
#include "qemu-char.h"
|
||||
#include "audio/audio.h"
|
||||
#include "qemu_socket.h"
|
||||
|
||||
#if defined(CONFIG_SLIRP)
|
||||
#include "libslirp.h"
|
||||
#endif
|
||||
|
||||
|
||||
static VLANState *first_vlan;
|
||||
|
||||
/***********************************************************/
|
||||
@ -585,7 +585,7 @@ static void erase_dir(char *dir_name)
|
||||
char filename[1024];
|
||||
|
||||
/* erase all the files in the directory */
|
||||
if ((d = opendir(dir_name)) != 0) {
|
||||
if ((d = opendir(dir_name)) != NULL) {
|
||||
for(;;) {
|
||||
de = readdir(d);
|
||||
if (!de)
|
||||
@ -673,7 +673,7 @@ void do_info_slirp(Monitor *mon)
|
||||
struct VMChannel {
|
||||
CharDriverState *hd;
|
||||
int port;
|
||||
} *vmchannels;
|
||||
};
|
||||
|
||||
static int vmchannel_can_read(void *opaque)
|
||||
{
|
||||
|
5
osdep.c
5
osdep.c
@ -33,9 +33,6 @@
|
||||
#include <sys/statvfs.h>
|
||||
#endif
|
||||
|
||||
#include "qemu-common.h"
|
||||
#include "sysemu.h"
|
||||
|
||||
#ifdef _WIN32
|
||||
#define WIN32_LEAN_AND_MEAN
|
||||
#include <windows.h>
|
||||
@ -45,6 +42,8 @@
|
||||
#include <malloc.h>
|
||||
#endif
|
||||
|
||||
#include "qemu-common.h"
|
||||
#include "sysemu.h"
|
||||
#include "qemu_socket.h"
|
||||
|
||||
#if defined(_WIN32)
|
||||
|
24
savevm.c
24
savevm.c
@ -21,18 +21,6 @@
|
||||
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
||||
* THE SOFTWARE.
|
||||
*/
|
||||
#include "qemu-common.h"
|
||||
#include "hw/hw.h"
|
||||
#include "net.h"
|
||||
#include "monitor.h"
|
||||
#include "sysemu.h"
|
||||
#include "qemu-timer.h"
|
||||
#include "qemu-char.h"
|
||||
#include "block.h"
|
||||
#include "audio/audio.h"
|
||||
#include "migration.h"
|
||||
#include "qemu_socket.h"
|
||||
|
||||
#include <unistd.h>
|
||||
#include <fcntl.h>
|
||||
#include <signal.h>
|
||||
@ -87,6 +75,18 @@
|
||||
#define memalign(align, size) malloc(size)
|
||||
#endif
|
||||
|
||||
#include "qemu-common.h"
|
||||
#include "hw/hw.h"
|
||||
#include "net.h"
|
||||
#include "monitor.h"
|
||||
#include "sysemu.h"
|
||||
#include "qemu-timer.h"
|
||||
#include "qemu-char.h"
|
||||
#include "block.h"
|
||||
#include "audio/audio.h"
|
||||
#include "migration.h"
|
||||
#include "qemu_socket.h"
|
||||
|
||||
/* point to the block driver where the snapshots are managed */
|
||||
static BlockDriverState *bs_snapshots;
|
||||
|
||||
|
10
sdl.c
10
sdl.c
@ -21,11 +21,6 @@
|
||||
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
||||
* THE SOFTWARE.
|
||||
*/
|
||||
#include "qemu-common.h"
|
||||
#include "console.h"
|
||||
#include "sysemu.h"
|
||||
#include "x_keymap.h"
|
||||
|
||||
#include <SDL.h>
|
||||
#include <SDL/SDL_syswm.h>
|
||||
|
||||
@ -33,6 +28,11 @@
|
||||
#include <signal.h>
|
||||
#endif
|
||||
|
||||
#include "qemu-common.h"
|
||||
#include "console.h"
|
||||
#include "sysemu.h"
|
||||
#include "x_keymap.h"
|
||||
|
||||
static DisplayChangeListener *dcl;
|
||||
static SDL_Surface *real_screen;
|
||||
static SDL_Surface *guest_screen = NULL;
|
||||
|
@ -32,7 +32,7 @@ ifs_remque(struct mbuf *ifm)
|
||||
}
|
||||
|
||||
void
|
||||
if_init()
|
||||
if_init(void)
|
||||
{
|
||||
if_fastq.ifq_next = if_fastq.ifq_prev = &if_fastq;
|
||||
if_batchq.ifq_next = if_batchq.ifq_prev = &if_batchq;
|
||||
@ -133,9 +133,7 @@ if_input(ttyp)
|
||||
* it'll temporarily get downgraded to the batchq)
|
||||
*/
|
||||
void
|
||||
if_output(so, ifm)
|
||||
struct socket *so;
|
||||
struct mbuf *ifm;
|
||||
if_output(struct socket *so, struct mbuf *ifm)
|
||||
{
|
||||
struct mbuf *ifq;
|
||||
int on_fastq = 1;
|
||||
|
@ -68,9 +68,7 @@ static const int icmp_flush[19] = {
|
||||
* Process a received ICMP message.
|
||||
*/
|
||||
void
|
||||
icmp_input(m, hlen)
|
||||
struct mbuf *m;
|
||||
int hlen;
|
||||
icmp_input(struct mbuf *m, int hlen)
|
||||
{
|
||||
register struct icmp *icp;
|
||||
register struct ip *ip=mtod(m, struct ip *);
|
||||
@ -319,8 +317,7 @@ end_error:
|
||||
* Reflect the ip packet back to the source
|
||||
*/
|
||||
void
|
||||
icmp_reflect(m)
|
||||
struct mbuf *m;
|
||||
icmp_reflect(struct mbuf *m)
|
||||
{
|
||||
register struct ip *ip = mtod(m, struct ip *);
|
||||
int hlen = ip->ip_hl << 2;
|
||||
|
@ -60,7 +60,7 @@ static void ip_deq(register struct ipasfrag *p);
|
||||
* All protocols not implemented in kernel go to raw IP protocol handler.
|
||||
*/
|
||||
void
|
||||
ip_init()
|
||||
ip_init(void)
|
||||
{
|
||||
ipq.ip_link.next = ipq.ip_link.prev = &ipq.ip_link;
|
||||
ip_id = tt.tv_sec & 0xffff;
|
||||
@ -73,8 +73,7 @@ ip_init()
|
||||
* try to reassemble. Process options. Pass to next level.
|
||||
*/
|
||||
void
|
||||
ip_input(m)
|
||||
struct mbuf *m;
|
||||
ip_input(struct mbuf *m)
|
||||
{
|
||||
register struct ip *ip;
|
||||
int hlen;
|
||||
@ -222,7 +221,7 @@ ip_input(m)
|
||||
if (ip->ip_tos & 1 || ip->ip_off) {
|
||||
STAT(ipstat.ips_fragments++);
|
||||
ip = ip_reass(ip, fp);
|
||||
if (ip == 0)
|
||||
if (ip == NULL)
|
||||
return;
|
||||
STAT(ipstat.ips_reassembled++);
|
||||
m = dtom(ip);
|
||||
@ -289,7 +288,7 @@ ip_reass(register struct ip *ip, register struct ipq *fp)
|
||||
/*
|
||||
* If first fragment to arrive, create a reassembly queue.
|
||||
*/
|
||||
if (fp == 0) {
|
||||
if (fp == NULL) {
|
||||
struct mbuf *t;
|
||||
if ((t = m_get()) == NULL) goto dropfrag;
|
||||
fp = mtod(t, struct ipq *);
|
||||
@ -357,11 +356,11 @@ insert:
|
||||
for (q = fp->frag_link.next; q != (struct ipasfrag*)&fp->frag_link;
|
||||
q = q->ipf_next) {
|
||||
if (q->ipf_off != next)
|
||||
return (0);
|
||||
return NULL;
|
||||
next += q->ipf_len;
|
||||
}
|
||||
if (((struct ipasfrag *)(q->ipf_prev))->ipf_tos & 1)
|
||||
return (0);
|
||||
return NULL;
|
||||
|
||||
/*
|
||||
* Reassembly is complete; concatenate fragments.
|
||||
@ -414,7 +413,7 @@ insert:
|
||||
dropfrag:
|
||||
STAT(ipstat.ips_fragdropped++);
|
||||
m_freem(m);
|
||||
return (0);
|
||||
return NULL;
|
||||
}
|
||||
|
||||
/*
|
||||
@ -466,7 +465,7 @@ ip_deq(register struct ipasfrag *p)
|
||||
* queue, discard it.
|
||||
*/
|
||||
void
|
||||
ip_slowtimo()
|
||||
ip_slowtimo(void)
|
||||
{
|
||||
struct qlink *l;
|
||||
|
||||
@ -474,7 +473,7 @@ ip_slowtimo()
|
||||
|
||||
l = ipq.ip_link.next;
|
||||
|
||||
if (l == 0)
|
||||
if (l == NULL)
|
||||
return;
|
||||
|
||||
while (l != &ipq.ip_link) {
|
||||
@ -702,9 +701,7 @@ bad:
|
||||
* (XXX) should be deleted; last arg currently ignored.
|
||||
*/
|
||||
void
|
||||
ip_stripoptions(m, mopt)
|
||||
register struct mbuf *m;
|
||||
struct mbuf *mopt;
|
||||
ip_stripoptions(register struct mbuf *m, struct mbuf *mopt)
|
||||
{
|
||||
register int i;
|
||||
struct ip *ip = mtod(m, struct ip *);
|
||||
|
@ -53,9 +53,7 @@ u_int16_t ip_id;
|
||||
* The mbuf opt, if present, will not be freed.
|
||||
*/
|
||||
int
|
||||
ip_output(so, m0)
|
||||
struct socket *so;
|
||||
struct mbuf *m0;
|
||||
ip_output(struct socket *so, struct mbuf *m0)
|
||||
{
|
||||
register struct ip *ip;
|
||||
register struct mbuf *m = m0;
|
||||
@ -135,7 +133,7 @@ ip_output(so, m0)
|
||||
for (off = hlen + len; off < (u_int16_t)ip->ip_len; off += len) {
|
||||
register struct ip *mhip;
|
||||
m = m_get();
|
||||
if (m == 0) {
|
||||
if (m == NULL) {
|
||||
error = -1;
|
||||
STAT(ipstat.ips_odropped++);
|
||||
goto sendorfree;
|
||||
@ -185,7 +183,7 @@ ip_output(so, m0)
|
||||
sendorfree:
|
||||
for (m = m0; m; m = m0) {
|
||||
m0 = m->m_nextpkt;
|
||||
m->m_nextpkt = 0;
|
||||
m->m_nextpkt = NULL;
|
||||
if (error == 0)
|
||||
if_output(so, m);
|
||||
else
|
||||
|
@ -5,7 +5,7 @@
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
void slirp_init(int restrict, char *special_ip);
|
||||
void slirp_init(int restricted, char *special_ip);
|
||||
|
||||
void slirp_select_fill(int *pnfds,
|
||||
fd_set *readfds, fd_set *writefds, fd_set *xfds);
|
||||
|
29
slirp/mbuf.c
29
slirp/mbuf.c
@ -29,7 +29,7 @@ int mbuf_max = 0;
|
||||
#define SLIRP_MSIZE (IF_MTU + IF_MAXLINKHDR + sizeof(struct m_hdr ) + 6)
|
||||
|
||||
void
|
||||
m_init()
|
||||
m_init(void)
|
||||
{
|
||||
m_freelist.m_next = m_freelist.m_prev = &m_freelist;
|
||||
m_usedlist.m_next = m_usedlist.m_prev = &m_usedlist;
|
||||
@ -44,7 +44,7 @@ m_init()
|
||||
* which tells m_free to actually free() it
|
||||
*/
|
||||
struct mbuf *
|
||||
m_get()
|
||||
m_get(void)
|
||||
{
|
||||
register struct mbuf *m;
|
||||
int flags = 0;
|
||||
@ -72,16 +72,15 @@ m_get()
|
||||
m->m_size = SLIRP_MSIZE - sizeof(struct m_hdr);
|
||||
m->m_data = m->m_dat;
|
||||
m->m_len = 0;
|
||||
m->m_nextpkt = 0;
|
||||
m->m_prevpkt = 0;
|
||||
m->m_nextpkt = NULL;
|
||||
m->m_prevpkt = NULL;
|
||||
end_error:
|
||||
DEBUG_ARG("m = %lx", (long )m);
|
||||
return m;
|
||||
}
|
||||
|
||||
void
|
||||
m_free(m)
|
||||
struct mbuf *m;
|
||||
m_free(struct mbuf *m)
|
||||
{
|
||||
|
||||
DEBUG_CALL("m_free");
|
||||
@ -115,8 +114,7 @@ m_free(m)
|
||||
* an M_EXT data segment
|
||||
*/
|
||||
void
|
||||
m_cat(m, n)
|
||||
register struct mbuf *m, *n;
|
||||
m_cat(struct mbuf *m, struct mbuf *n)
|
||||
{
|
||||
/*
|
||||
* If there's no room, realloc
|
||||
@ -133,9 +131,7 @@ m_cat(m, n)
|
||||
|
||||
/* make m size bytes large */
|
||||
void
|
||||
m_inc(m, size)
|
||||
struct mbuf *m;
|
||||
int size;
|
||||
m_inc(struct mbuf *m, int size)
|
||||
{
|
||||
int datasize;
|
||||
|
||||
@ -170,9 +166,7 @@ m_inc(m, size)
|
||||
|
||||
|
||||
void
|
||||
m_adj(m, len)
|
||||
struct mbuf *m;
|
||||
int len;
|
||||
m_adj(struct mbuf *m, int len)
|
||||
{
|
||||
if (m == NULL)
|
||||
return;
|
||||
@ -192,9 +186,7 @@ m_adj(m, len)
|
||||
* Copy len bytes from m, starting off bytes into n
|
||||
*/
|
||||
int
|
||||
m_copy(n, m, off, len)
|
||||
struct mbuf *n, *m;
|
||||
int off, len;
|
||||
m_copy(struct mbuf *n, struct mbuf *m, int off, int len)
|
||||
{
|
||||
if (len > M_FREEROOM(n))
|
||||
return -1;
|
||||
@ -211,8 +203,7 @@ m_copy(n, m, off, len)
|
||||
* Fortunately, it's not used often
|
||||
*/
|
||||
struct mbuf *
|
||||
dtom(dat)
|
||||
void *dat;
|
||||
dtom(void *dat)
|
||||
{
|
||||
struct mbuf *m;
|
||||
|
||||
|
30
slirp/misc.c
30
slirp/misc.c
@ -70,7 +70,7 @@ redir_x(inaddr, start_port, display, screen)
|
||||
* Get our IP address and put it in our_addr
|
||||
*/
|
||||
void
|
||||
getouraddr()
|
||||
getouraddr(void)
|
||||
{
|
||||
char buff[256];
|
||||
struct hostent *he = NULL;
|
||||
@ -89,8 +89,7 @@ struct quehead {
|
||||
};
|
||||
|
||||
inline void
|
||||
insque(a, b)
|
||||
void *a, *b;
|
||||
insque(void *a, void *b)
|
||||
{
|
||||
register struct quehead *element = (struct quehead *) a;
|
||||
register struct quehead *head = (struct quehead *) b;
|
||||
@ -102,8 +101,7 @@ insque(a, b)
|
||||
}
|
||||
|
||||
inline void
|
||||
remque(a)
|
||||
void *a;
|
||||
remque(void *a)
|
||||
{
|
||||
register struct quehead *element = (struct quehead *) a;
|
||||
((struct quehead *)(element->qh_link))->qh_rlink = element->qh_rlink;
|
||||
@ -116,12 +114,7 @@ remque(a)
|
||||
|
||||
|
||||
int
|
||||
add_exec(ex_ptr, do_pty, exec, addr, port)
|
||||
struct ex_list **ex_ptr;
|
||||
int do_pty;
|
||||
char *exec;
|
||||
int addr;
|
||||
int port;
|
||||
add_exec(struct ex_list **ex_ptr, int do_pty, char *exec, int addr, int port)
|
||||
{
|
||||
struct ex_list *tmp_ptr;
|
||||
|
||||
@ -363,7 +356,7 @@ fork_exec(struct socket *so, const char *ex, int do_pty)
|
||||
argv[i++] = strdup(curarg);
|
||||
} while (c);
|
||||
|
||||
argv[i] = 0;
|
||||
argv[i] = NULL;
|
||||
execvp(argv[0], (char **)argv);
|
||||
|
||||
/* Ooops, failed, let's tell the user why */
|
||||
@ -402,9 +395,9 @@ fork_exec(struct socket *so, const char *ex, int do_pty)
|
||||
fd_nonblock(so->s);
|
||||
|
||||
/* Append the telnet options now */
|
||||
if (so->so_m != 0 && do_pty == 1) {
|
||||
if (so->so_m != NULL && do_pty == 1) {
|
||||
sbappend(so, so->so_m);
|
||||
so->so_m = 0;
|
||||
so->so_m = NULL;
|
||||
}
|
||||
|
||||
return 1;
|
||||
@ -764,8 +757,7 @@ sprintf_len(va_alist) va_dcl
|
||||
#endif
|
||||
|
||||
void
|
||||
u_sleep(usec)
|
||||
int usec;
|
||||
u_sleep(int usec)
|
||||
{
|
||||
struct timeval t;
|
||||
fd_set fdset;
|
||||
@ -783,8 +775,7 @@ u_sleep(usec)
|
||||
*/
|
||||
|
||||
void
|
||||
fd_nonblock(fd)
|
||||
int fd;
|
||||
fd_nonblock(int fd)
|
||||
{
|
||||
#ifdef FIONBIO
|
||||
int opt = 1;
|
||||
@ -800,8 +791,7 @@ fd_nonblock(fd)
|
||||
}
|
||||
|
||||
void
|
||||
fd_block(fd)
|
||||
int fd;
|
||||
fd_block(int fd)
|
||||
{
|
||||
#ifdef FIONBIO
|
||||
int opt = 0;
|
||||
|
21
slirp/sbuf.c
21
slirp/sbuf.c
@ -18,16 +18,13 @@ static void sbappendsb(struct sbuf *sb, struct mbuf *m);
|
||||
*/
|
||||
|
||||
void
|
||||
sbfree(sb)
|
||||
struct sbuf *sb;
|
||||
sbfree(struct sbuf *sb)
|
||||
{
|
||||
free(sb->sb_data);
|
||||
}
|
||||
|
||||
void
|
||||
sbdrop(sb, num)
|
||||
struct sbuf *sb;
|
||||
int num;
|
||||
sbdrop(struct sbuf *sb, int num)
|
||||
{
|
||||
/*
|
||||
* We can only drop how much we have
|
||||
@ -43,9 +40,7 @@ sbdrop(sb, num)
|
||||
}
|
||||
|
||||
void
|
||||
sbreserve(sb, size)
|
||||
struct sbuf *sb;
|
||||
int size;
|
||||
sbreserve(struct sbuf *sb, int size)
|
||||
{
|
||||
if (sb->sb_data) {
|
||||
/* Already alloced, realloc if necessary */
|
||||
@ -74,9 +69,7 @@ sbreserve(sb, size)
|
||||
* (the socket is non-blocking, so we won't hang)
|
||||
*/
|
||||
void
|
||||
sbappend(so, m)
|
||||
struct socket *so;
|
||||
struct mbuf *m;
|
||||
sbappend(struct socket *so, struct mbuf *m)
|
||||
{
|
||||
int ret = 0;
|
||||
|
||||
@ -173,11 +166,7 @@ sbappendsb(struct sbuf *sb, struct mbuf *m)
|
||||
* done in sbdrop when the data is acked
|
||||
*/
|
||||
void
|
||||
sbcopy(sb, off, len, to)
|
||||
struct sbuf *sb;
|
||||
int off;
|
||||
int len;
|
||||
char *to;
|
||||
sbcopy(struct sbuf *sb, int off, int len, char *to)
|
||||
{
|
||||
char *from;
|
||||
|
||||
|
@ -50,7 +50,7 @@ static const uint8_t zero_ethaddr[6] = { 0, 0, 0, 0, 0, 0 };
|
||||
|
||||
const char *slirp_special_ip = CTL_SPECIAL;
|
||||
int slirp_restrict;
|
||||
int do_slowtimo;
|
||||
static int do_slowtimo;
|
||||
int link_up;
|
||||
struct timeval tt;
|
||||
FILE *lfd;
|
||||
@ -171,7 +171,7 @@ static void slirp_cleanup(void)
|
||||
static void slirp_state_save(QEMUFile *f, void *opaque);
|
||||
static int slirp_state_load(QEMUFile *f, void *opaque, int version_id);
|
||||
|
||||
void slirp_init(int restrict, char *special_ip)
|
||||
void slirp_init(int restricted, char *special_ip)
|
||||
{
|
||||
// debug_init("/tmp/slirp.log", DEBUG_DEFAULT);
|
||||
|
||||
@ -184,7 +184,7 @@ void slirp_init(int restrict, char *special_ip)
|
||||
#endif
|
||||
|
||||
link_up = 1;
|
||||
slirp_restrict = restrict;
|
||||
slirp_restrict = restricted;
|
||||
|
||||
if_init();
|
||||
ip_init();
|
||||
@ -228,7 +228,7 @@ static void updtime(void)
|
||||
#else
|
||||
static void updtime(void)
|
||||
{
|
||||
gettimeofday(&tt, 0);
|
||||
gettimeofday(&tt, NULL);
|
||||
|
||||
curtime = (u_int)tt.tv_sec * (u_int)1000;
|
||||
curtime += (u_int)tt.tv_usec / (u_int)1000;
|
||||
|
@ -25,12 +25,8 @@ so_init()
|
||||
#endif
|
||||
|
||||
struct socket *
|
||||
solookup(head, laddr, lport, faddr, fport)
|
||||
struct socket *head;
|
||||
struct in_addr laddr;
|
||||
u_int lport;
|
||||
struct in_addr faddr;
|
||||
u_int fport;
|
||||
solookup(struct socket *head, struct in_addr laddr, u_int lport,
|
||||
struct in_addr faddr, u_int fport)
|
||||
{
|
||||
struct socket *so;
|
||||
|
||||
@ -54,7 +50,7 @@ solookup(head, laddr, lport, faddr, fport)
|
||||
* insque() it into the correct linked-list
|
||||
*/
|
||||
struct socket *
|
||||
socreate()
|
||||
socreate(void)
|
||||
{
|
||||
struct socket *so;
|
||||
|
||||
@ -71,8 +67,7 @@ socreate()
|
||||
* remque and free a socket, clobber cache
|
||||
*/
|
||||
void
|
||||
sofree(so)
|
||||
struct socket *so;
|
||||
sofree(struct socket *so)
|
||||
{
|
||||
if (so->so_emu==EMU_RSH && so->extra) {
|
||||
sofree(so->extra);
|
||||
@ -158,8 +153,7 @@ size_t sopreprbuf(struct socket *so, struct iovec *iov, int *np)
|
||||
* a read() of 0 (or less) means it's disconnected
|
||||
*/
|
||||
int
|
||||
soread(so)
|
||||
struct socket *so;
|
||||
soread(struct socket *so)
|
||||
{
|
||||
int n, nn;
|
||||
struct sbuf *sb = &so->so_snd;
|
||||
@ -269,8 +263,7 @@ err:
|
||||
* in the send buffer is sent as urgent data
|
||||
*/
|
||||
void
|
||||
sorecvoob(so)
|
||||
struct socket *so;
|
||||
sorecvoob(struct socket *so)
|
||||
{
|
||||
struct tcpcb *tp = sototcpcb(so);
|
||||
|
||||
@ -297,8 +290,7 @@ sorecvoob(so)
|
||||
* There's a lot duplicated code here, but...
|
||||
*/
|
||||
int
|
||||
sosendoob(so)
|
||||
struct socket *so;
|
||||
sosendoob(struct socket *so)
|
||||
{
|
||||
struct sbuf *sb = &so->so_rcv;
|
||||
char buff[2048]; /* XXX Shouldn't be sending more oob data than this */
|
||||
@ -356,8 +348,7 @@ sosendoob(so)
|
||||
* updating all sbuf field as necessary
|
||||
*/
|
||||
int
|
||||
sowrite(so)
|
||||
struct socket *so;
|
||||
sowrite(struct socket *so)
|
||||
{
|
||||
int n,nn;
|
||||
struct sbuf *sb = &so->so_rcv;
|
||||
@ -451,8 +442,7 @@ sowrite(so)
|
||||
* recvfrom() a UDP socket
|
||||
*/
|
||||
void
|
||||
sorecvfrom(so)
|
||||
struct socket *so;
|
||||
sorecvfrom(struct socket *so)
|
||||
{
|
||||
struct sockaddr_in addr;
|
||||
socklen_t addrlen = sizeof(struct sockaddr_in);
|
||||
@ -479,7 +469,7 @@ sorecvfrom(so)
|
||||
icmp_error(so->so_m, ICMP_UNREACH,code, 0,strerror(errno));
|
||||
} else {
|
||||
icmp_reflect(so->so_m);
|
||||
so->so_m = 0; /* Don't m_free() it again! */
|
||||
so->so_m = NULL; /* Don't m_free() it again! */
|
||||
}
|
||||
/* No need for this socket anymore, udp_detach it */
|
||||
udp_detach(so);
|
||||
@ -551,9 +541,7 @@ sorecvfrom(so)
|
||||
* sendto() a socket
|
||||
*/
|
||||
int
|
||||
sosendto(so, m)
|
||||
struct socket *so;
|
||||
struct mbuf *m;
|
||||
sosendto(struct socket *so, struct mbuf *m)
|
||||
{
|
||||
int ret;
|
||||
struct sockaddr_in addr;
|
||||
@ -600,11 +588,7 @@ sosendto(so, m)
|
||||
* XXX This should really be tcp_listen
|
||||
*/
|
||||
struct socket *
|
||||
solisten(port, laddr, lport, flags)
|
||||
u_int port;
|
||||
u_int32_t laddr;
|
||||
u_int lport;
|
||||
int flags;
|
||||
solisten(u_int port, u_int32_t laddr, u_int lport, int flags)
|
||||
{
|
||||
struct sockaddr_in addr;
|
||||
struct socket *so;
|
||||
@ -706,8 +690,7 @@ sowwakeup(so)
|
||||
* times each when only 1 was needed
|
||||
*/
|
||||
void
|
||||
soisfconnecting(so)
|
||||
register struct socket *so;
|
||||
soisfconnecting(struct socket *so)
|
||||
{
|
||||
so->so_state &= ~(SS_NOFDREF|SS_ISFCONNECTED|SS_FCANTRCVMORE|
|
||||
SS_FCANTSENDMORE|SS_FWDRAIN);
|
||||
@ -715,8 +698,7 @@ soisfconnecting(so)
|
||||
}
|
||||
|
||||
void
|
||||
soisfconnected(so)
|
||||
register struct socket *so;
|
||||
soisfconnected(struct socket *so)
|
||||
{
|
||||
so->so_state &= ~(SS_ISFCONNECTING|SS_FWDRAIN|SS_NOFDREF);
|
||||
so->so_state |= SS_ISFCONNECTED; /* Clobber other states */
|
||||
@ -758,8 +740,7 @@ sofcantsendmore(struct socket *so)
|
||||
}
|
||||
|
||||
void
|
||||
soisfdisconnected(so)
|
||||
struct socket *so;
|
||||
soisfdisconnected(struct socket *so)
|
||||
{
|
||||
/* so->so_state &= ~(SS_ISFCONNECTING|SS_ISFCONNECTED); */
|
||||
/* close(so->s); */
|
||||
@ -774,8 +755,7 @@ soisfdisconnected(so)
|
||||
* Set CANTSENDMORE once all data has been write()n
|
||||
*/
|
||||
void
|
||||
sofwdrain(so)
|
||||
struct socket *so;
|
||||
sofwdrain(struct socket *so)
|
||||
{
|
||||
if (so->so_rcv.sb_cc)
|
||||
so->so_state |= SS_FWDRAIN;
|
||||
|
@ -121,10 +121,10 @@ tcp_reass(register struct tcpcb *tp, register struct tcpiphdr *ti,
|
||||
int flags;
|
||||
|
||||
/*
|
||||
* Call with ti==0 after become established to
|
||||
* Call with ti==NULL after become established to
|
||||
* force pre-ESTABLISHED data up to user socket.
|
||||
*/
|
||||
if (ti == 0)
|
||||
if (ti == NULL)
|
||||
goto present;
|
||||
|
||||
/*
|
||||
@ -230,19 +230,16 @@ present:
|
||||
* protocol specification dated September, 1981 very closely.
|
||||
*/
|
||||
void
|
||||
tcp_input(m, iphlen, inso)
|
||||
register struct mbuf *m;
|
||||
int iphlen;
|
||||
struct socket *inso;
|
||||
tcp_input(struct mbuf *m, int iphlen, struct socket *inso)
|
||||
{
|
||||
struct ip save_ip, *ip;
|
||||
register struct tcpiphdr *ti;
|
||||
caddr_t optp = NULL;
|
||||
int optlen = 0;
|
||||
int len, tlen, off;
|
||||
register struct tcpcb *tp = 0;
|
||||
register struct tcpcb *tp = NULL;
|
||||
register int tiflags;
|
||||
struct socket *so = 0;
|
||||
struct socket *so = NULL;
|
||||
int todrop, acked, ourfinisacked, needoutput = 0;
|
||||
/* int dropsocket = 0; */
|
||||
int iss = 0;
|
||||
@ -264,7 +261,7 @@ tcp_input(m, iphlen, inso)
|
||||
/* Re-set a few variables */
|
||||
tp = sototcpcb(so);
|
||||
m = so->so_m;
|
||||
so->so_m = 0;
|
||||
so->so_m = NULL;
|
||||
ti = so->so_ti;
|
||||
tiwin = ti->ti_win;
|
||||
tiflags = ti->ti_flags;
|
||||
@ -298,8 +295,8 @@ tcp_input(m, iphlen, inso)
|
||||
* Checksum extended TCP header and data.
|
||||
*/
|
||||
tlen = ((struct ip *)ti)->ip_len;
|
||||
tcpiphdr2qlink(ti)->next = tcpiphdr2qlink(ti)->prev = 0;
|
||||
memset(&ti->ti_i.ih_mbuf, 0 , sizeof(struct mbuf_ptr));
|
||||
tcpiphdr2qlink(ti)->next = tcpiphdr2qlink(ti)->prev = NULL;
|
||||
memset(&ti->ti_i.ih_mbuf, 0 , sizeof(struct mbuf_ptr));
|
||||
ti->ti_x1 = 0;
|
||||
ti->ti_len = htons((u_int16_t)tlen);
|
||||
len = sizeof(struct ip ) + tlen;
|
||||
@ -399,7 +396,7 @@ findso:
|
||||
* the only flag set, then create a session, mark it
|
||||
* as if it was LISTENING, and continue...
|
||||
*/
|
||||
if (so == 0) {
|
||||
if (so == NULL) {
|
||||
if ((tiflags & (TH_SYN|TH_FIN|TH_RST|TH_URG|TH_ACK)) != TH_SYN)
|
||||
goto dropwithreset;
|
||||
|
||||
@ -439,7 +436,7 @@ findso:
|
||||
tp = sototcpcb(so);
|
||||
|
||||
/* XXX Should never fail */
|
||||
if (tp == 0)
|
||||
if (tp == NULL)
|
||||
goto dropwithreset;
|
||||
if (tp->t_state == TCPS_CLOSED)
|
||||
goto drop;
|
||||
@ -1697,9 +1694,7 @@ tcp_xmit_timer(register struct tcpcb *tp, int rtt)
|
||||
*/
|
||||
|
||||
int
|
||||
tcp_mss(tp, offer)
|
||||
register struct tcpcb *tp;
|
||||
u_int offer;
|
||||
tcp_mss(struct tcpcb *tp, u_int offer)
|
||||
{
|
||||
struct socket *so = tp->t_socket;
|
||||
int mss;
|
||||
|
@ -64,8 +64,7 @@ static const u_char tcp_outflags[TCP_NSTATES] = {
|
||||
* Tcp output routine: figure out what should be sent and send it.
|
||||
*/
|
||||
int
|
||||
tcp_output(tp)
|
||||
register struct tcpcb *tp;
|
||||
tcp_output(struct tcpcb *tp)
|
||||
{
|
||||
register struct socket *so = tp->t_socket;
|
||||
register long len, win;
|
||||
@ -582,8 +581,7 @@ out:
|
||||
}
|
||||
|
||||
void
|
||||
tcp_setpersist(tp)
|
||||
register struct tcpcb *tp;
|
||||
tcp_setpersist(struct tcpcb *tp)
|
||||
{
|
||||
int t = ((tp->t_srtt >> 2) + tp->t_rttvar) >> 1;
|
||||
|
||||
|
@ -49,7 +49,7 @@
|
||||
* Tcp initialization
|
||||
*/
|
||||
void
|
||||
tcp_init()
|
||||
tcp_init(void)
|
||||
{
|
||||
tcp_iss = 1; /* wrong */
|
||||
tcb.so_next = tcb.so_prev = &tcb;
|
||||
@ -63,8 +63,7 @@ tcp_init()
|
||||
*/
|
||||
/* struct tcpiphdr * */
|
||||
void
|
||||
tcp_template(tp)
|
||||
struct tcpcb *tp;
|
||||
tcp_template(struct tcpcb *tp)
|
||||
{
|
||||
struct socket *so = tp->t_socket;
|
||||
register struct tcpiphdr *n = &tp->t_template;
|
||||
@ -102,12 +101,8 @@ tcp_template(tp)
|
||||
* segment are as specified by the parameters.
|
||||
*/
|
||||
void
|
||||
tcp_respond(tp, ti, m, ack, seq, flags)
|
||||
struct tcpcb *tp;
|
||||
register struct tcpiphdr *ti;
|
||||
register struct mbuf *m;
|
||||
tcp_seq ack, seq;
|
||||
int flags;
|
||||
tcp_respond(struct tcpcb *tp, struct tcpiphdr *ti, struct mbuf *m,
|
||||
tcp_seq ack, tcp_seq seq, int flags)
|
||||
{
|
||||
register int tlen;
|
||||
int win = 0;
|
||||
@ -122,7 +117,7 @@ tcp_respond(tp, ti, m, ack, seq, flags)
|
||||
|
||||
if (tp)
|
||||
win = sbspace(&tp->t_socket->so_rcv);
|
||||
if (m == 0) {
|
||||
if (m == NULL) {
|
||||
if ((m = m_get()) == NULL)
|
||||
return;
|
||||
#ifdef TCP_COMPAT_42
|
||||
@ -152,7 +147,7 @@ tcp_respond(tp, ti, m, ack, seq, flags)
|
||||
tlen += sizeof (struct tcpiphdr);
|
||||
m->m_len = tlen;
|
||||
|
||||
ti->ti_mbuf = 0;
|
||||
ti->ti_mbuf = NULL;
|
||||
ti->ti_x1 = 0;
|
||||
ti->ti_seq = htonl(seq);
|
||||
ti->ti_ack = htonl(ack);
|
||||
@ -182,8 +177,7 @@ tcp_respond(tp, ti, m, ack, seq, flags)
|
||||
* protocol control block.
|
||||
*/
|
||||
struct tcpcb *
|
||||
tcp_newtcpcb(so)
|
||||
struct socket *so;
|
||||
tcp_newtcpcb(struct socket *so)
|
||||
{
|
||||
register struct tcpcb *tp;
|
||||
|
||||
@ -257,8 +251,7 @@ struct tcpcb *tcp_drop(struct tcpcb *tp, int err)
|
||||
* wake up any sleepers
|
||||
*/
|
||||
struct tcpcb *
|
||||
tcp_close(tp)
|
||||
register struct tcpcb *tp;
|
||||
tcp_close(struct tcpcb *tp)
|
||||
{
|
||||
register struct tcpiphdr *t;
|
||||
struct socket *so = tp->t_socket;
|
||||
@ -281,7 +274,7 @@ tcp_close(tp)
|
||||
*/
|
||||
/* free(tp, M_PCB); */
|
||||
free(tp);
|
||||
so->so_tcpcb = 0;
|
||||
so->so_tcpcb = NULL;
|
||||
soisfdisconnected(so);
|
||||
/* clobber input socket cache if we're closing the cached connection */
|
||||
if (so == tcp_last_so)
|
||||
@ -333,8 +326,7 @@ tcp_quench(i, errno)
|
||||
* We can let the user exit from the close as soon as the FIN is acked.
|
||||
*/
|
||||
void
|
||||
tcp_sockclosed(tp)
|
||||
struct tcpcb *tp;
|
||||
tcp_sockclosed(struct tcpcb *tp)
|
||||
{
|
||||
|
||||
DEBUG_CALL("tcp_sockclosed");
|
||||
@ -375,8 +367,7 @@ tcp_sockclosed(tp)
|
||||
* nonblocking. Connect returns after the SYN is sent, and does
|
||||
* not wait for ACK+SYN.
|
||||
*/
|
||||
int tcp_fconnect(so)
|
||||
struct socket *so;
|
||||
int tcp_fconnect(struct socket *so)
|
||||
{
|
||||
int ret=0;
|
||||
|
||||
@ -438,8 +429,7 @@ int tcp_fconnect(so)
|
||||
* here and SYN the local-host.
|
||||
*/
|
||||
void
|
||||
tcp_connect(inso)
|
||||
struct socket *inso;
|
||||
tcp_connect(struct socket *inso)
|
||||
{
|
||||
struct socket *so;
|
||||
struct sockaddr_in addr;
|
||||
@ -525,8 +515,7 @@ tcp_connect(inso)
|
||||
* Attach a TCPCB to a socket.
|
||||
*/
|
||||
int
|
||||
tcp_attach(so)
|
||||
struct socket *so;
|
||||
tcp_attach(struct socket *so)
|
||||
{
|
||||
if ((so->so_tcpcb = tcp_newtcpcb(so)) == NULL)
|
||||
return -1;
|
||||
@ -558,14 +547,13 @@ static const struct tos_t tcptos[] = {
|
||||
#ifdef CONFIG_QEMU
|
||||
static
|
||||
#endif
|
||||
struct emu_t *tcpemu = 0;
|
||||
struct emu_t *tcpemu = NULL;
|
||||
|
||||
/*
|
||||
* Return TOS according to the above table
|
||||
*/
|
||||
u_int8_t
|
||||
tcp_tos(so)
|
||||
struct socket *so;
|
||||
tcp_tos(struct socket *so)
|
||||
{
|
||||
int i = 0;
|
||||
struct emu_t *emup;
|
||||
@ -620,9 +608,7 @@ int do_echo = -1;
|
||||
* NOTE: if you return 0 you MUST m_free() the mbuf!
|
||||
*/
|
||||
int
|
||||
tcp_emu(so, m)
|
||||
struct socket *so;
|
||||
struct mbuf *m;
|
||||
tcp_emu(struct socket *so, struct mbuf *m)
|
||||
{
|
||||
u_int n1, n2, n3, n4, n5, n6;
|
||||
char buff[257];
|
||||
@ -976,7 +962,7 @@ do_prompt:
|
||||
}
|
||||
#endif
|
||||
case EMU_FTP: /* ftp */
|
||||
*(m->m_data+m->m_len) = 0; /* NULL terminate for strstr */
|
||||
*(m->m_data+m->m_len) = 0; /* NUL terminate for strstr */
|
||||
if ((bptr = (char *)strstr(m->m_data, "ORT")) != NULL) {
|
||||
/*
|
||||
* Need to emulate the PORT command
|
||||
@ -1244,8 +1230,7 @@ do_prompt:
|
||||
* return 2 if this is a command-line connection
|
||||
*/
|
||||
int
|
||||
tcp_ctl(so)
|
||||
struct socket *so;
|
||||
tcp_ctl(struct socket *so)
|
||||
{
|
||||
struct sbuf *sb = &so->so_snd;
|
||||
int command;
|
||||
|
58
vl.c
58
vl.c
@ -21,29 +21,6 @@
|
||||
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
||||
* THE SOFTWARE.
|
||||
*/
|
||||
#include "hw/hw.h"
|
||||
#include "hw/boards.h"
|
||||
#include "hw/usb.h"
|
||||
#include "hw/pcmcia.h"
|
||||
#include "hw/pc.h"
|
||||
#include "hw/audiodev.h"
|
||||
#include "hw/isa.h"
|
||||
#include "hw/baum.h"
|
||||
#include "hw/bt.h"
|
||||
#include "net.h"
|
||||
#include "monitor.h"
|
||||
#include "console.h"
|
||||
#include "sysemu.h"
|
||||
#include "gdbstub.h"
|
||||
#include "qemu-timer.h"
|
||||
#include "qemu-char.h"
|
||||
#include "cache-utils.h"
|
||||
#include "block.h"
|
||||
#include "audio/audio.h"
|
||||
#include "migration.h"
|
||||
#include "kvm.h"
|
||||
#include "balloon.h"
|
||||
|
||||
#include <unistd.h>
|
||||
#include <fcntl.h>
|
||||
#include <signal.h>
|
||||
@ -114,12 +91,6 @@
|
||||
#endif
|
||||
#endif
|
||||
|
||||
#include "qemu_socket.h"
|
||||
|
||||
#if defined(CONFIG_SLIRP)
|
||||
#include "libslirp.h"
|
||||
#endif
|
||||
|
||||
#if defined(__OpenBSD__)
|
||||
#include <util.h>
|
||||
#endif
|
||||
@ -154,10 +125,39 @@ int main(int argc, char **argv)
|
||||
#define main qemu_main
|
||||
#endif /* CONFIG_COCOA */
|
||||
|
||||
#include "hw/hw.h"
|
||||
#include "hw/boards.h"
|
||||
#include "hw/usb.h"
|
||||
#include "hw/pcmcia.h"
|
||||
#include "hw/pc.h"
|
||||
#include "hw/audiodev.h"
|
||||
#include "hw/isa.h"
|
||||
#include "hw/baum.h"
|
||||
#include "hw/bt.h"
|
||||
#include "net.h"
|
||||
#include "monitor.h"
|
||||
#include "console.h"
|
||||
#include "sysemu.h"
|
||||
#include "gdbstub.h"
|
||||
#include "qemu-timer.h"
|
||||
#include "qemu-char.h"
|
||||
#include "cache-utils.h"
|
||||
#include "block.h"
|
||||
#include "audio/audio.h"
|
||||
#include "migration.h"
|
||||
#include "kvm.h"
|
||||
#include "balloon.h"
|
||||
|
||||
#include "disas.h"
|
||||
|
||||
#include "exec-all.h"
|
||||
|
||||
#include "qemu_socket.h"
|
||||
|
||||
#if defined(CONFIG_SLIRP)
|
||||
#include "libslirp.h"
|
||||
#endif
|
||||
|
||||
//#define DEBUG_UNUSED_IOPORT
|
||||
//#define DEBUG_IOPORT
|
||||
//#define DEBUG_NET
|
||||
|
Loading…
Reference in New Issue
Block a user