view libmpdemux/pnm.h @ 8575:1d15ca298dda

Fix DVD authentication on Solaris 9. Solaris 9 does not allow USCSICMD ioctls for non-root users on vold devices any more; they are failing with an EPERM "permission denied" error. Now, only root is allowed to run USCSICMD ioctls on vold devices. Fortunatelly there's a new subroutine exported from libsmedia.so (smedia_uscsi_cmd) which allows non-root users to perform user mode SCSI commands on a vold device. (This works with a help of a daemon running as user root, /usr/lib/smedia/rpc.smserverd) This change detects the presence of function "smedia_uscsi_cmd" in library libsmedia.so at runtime, and uses this function if it's found (i.e. on solaris 9 smedia_uscsi_cmd() is used to execture user mode scsi commands). On solaris 8 or older, "smedia_uscsi_cmd" is not available and the code falls back to the old ioctl(.. USCSICMD ..) method.
author jkeil
date Fri, 27 Dec 2002 16:29:11 +0000
parents 16af93c01dbf
children 281d155fb37f
line wrap: on
line source

/*
 * Copyright (C) 2002 the xine project
 *
 * This file is part of xine, a free video player.
 *
 * xine is free software; you can redistribute it and/or modify
 * it under the terms of the GNU General Public License as published by
 * the Free Software Foundation; either version 2 of the License, or
 * (at your option) any later version.
 *
 * xine is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU General Public License for more details.
 *
 * You should have received a copy of the GNU General Public License
 * along with this program; if not, write to the Free Software
 * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA
 *
 * $Id$
 *
 * pnm util functions header by joschka
 */
 
#ifndef HAVE_PNM_H
#define HAVE_PNM_H

#ifndef __CYGWIN__
#include <inttypes.h>
#endif
/*#include "xine_internal.h" */

typedef struct pnm_s pnm_t;

pnm_t*   pnm_connect (int fd,char *url);

int      pnm_read (pnm_t *this, char *data, int len);
void     pnm_close (pnm_t *this);

int      pnm_peek_header (pnm_t *this, char *data);

#endif