Mercurial > mplayer.hg
view vidix/sysdep/pci_x86.c @ 36328:9af6f39eab61
vo png: Error handling and clean up
Simplify error path; returning 1 is obfuscated and not different
from returning VO_TRUE. We do not want to fatally error out anyway,
so printing a warning should be enough and not different from the
current behaviour.
Use av_free_packet, it is the counter part for av_init_packet .
It could e.g. potentially free side data. The buffer itself
will not be freed as is intended for our custom buffer which
we will try to re-use.
author | al |
---|---|
date | Wed, 14 Aug 2013 10:21:30 +0000 |
parents | 0f1b5b68af32 |
children |
line wrap: on
line source
/* This file is based on: $XFree86: xc/programs/Xserver/hw/xfree86/etc/scanpci.c,v 3.34.2.17 1998/11/10 11:55:40 dawes Exp $ Modified for readability by Nick Kurshev */ static int pci_config_type( void ) { unsigned long tmplong1, tmplong2; unsigned char tmp1, tmp2; int retval; retval = 0; outb(PCI_MODE2_ENABLE_REG, 0x00); outb(PCI_MODE2_FORWARD_REG, 0x00); tmp1 = inb(PCI_MODE2_ENABLE_REG); tmp2 = inb(PCI_MODE2_FORWARD_REG); if ((tmp1 == 0x00) && (tmp2 == 0x00)) { retval = 2; /*printf("PCI says configuration type 2\n");*/ } else { tmplong1 = inl(PCI_MODE1_ADDRESS_REG); outl(PCI_MODE1_ADDRESS_REG, PCI_EN); tmplong2 = inl(PCI_MODE1_ADDRESS_REG); outl(PCI_MODE1_ADDRESS_REG, tmplong1); if (tmplong2 == PCI_EN) { retval = 1; /*printf("PCI says configuration type 1\n");*/ } else { /*printf("No PCI !\n");*/ disable_os_io(); /*exit(1);*/ retval = 0xFFFF; } } return retval; } static int pci_get_vendor( unsigned char bus, unsigned char dev, int func) { unsigned long config_cmd; config_cmd = PCI_EN | (bus<<16) | (dev<<11) | (func<<8); outl(PCI_MODE1_ADDRESS_REG, config_cmd); return inl(PCI_MODE1_DATA_REG); } static long pci_config_read_long( unsigned char bus, unsigned char dev, int func, unsigned cmd) { unsigned long config_cmd; config_cmd = PCI_EN | (bus<<16) | (dev<<11) | (func<<8); outl(PCI_MODE1_ADDRESS_REG, config_cmd | cmd); return inl(PCI_MODE1_DATA_REG); }