Support for dvd region code (RPC).
This commit is contained in:
parent
f36a75214e
commit
9d39bbf3a8
|
@ -1,4 +1,4 @@
|
|||
/* $NetBSD: cd.c,v 1.160 2001/11/15 09:48:16 lukem Exp $ */
|
||||
/* $NetBSD: cd.c,v 1.161 2001/12/09 22:56:10 veego Exp $ */
|
||||
|
||||
/*-
|
||||
* Copyright (c) 1998, 2001 The NetBSD Foundation, Inc.
|
||||
|
@ -54,7 +54,7 @@
|
|||
*/
|
||||
|
||||
#include <sys/cdefs.h>
|
||||
__KERNEL_RCSID(0, "$NetBSD: cd.c,v 1.160 2001/11/15 09:48:16 lukem Exp $");
|
||||
__KERNEL_RCSID(0, "$NetBSD: cd.c,v 1.161 2001/12/09 22:56:10 veego Exp $");
|
||||
|
||||
#include "rnd.h"
|
||||
|
||||
|
@ -1893,6 +1893,35 @@ dvd_auth(cd, a)
|
|||
return (error);
|
||||
return (0);
|
||||
|
||||
case DVD_LU_SEND_RPC_STATE:
|
||||
cmd.opcode = GPCMD_REPORT_KEY;
|
||||
cmd.bytes[8] = 8;
|
||||
cmd.bytes[9] = 8 | (0 << 6);
|
||||
error = scsipi_command(cd->sc_periph, &cmd, 12, buf, 8,
|
||||
CDRETRIES, 30000, NULL,
|
||||
XS_CTL_DATA_IN|XS_CTL_DATA_ONSTACK);
|
||||
if (error)
|
||||
return (error);
|
||||
a->lrpcs.type = (buf[8] >> 6) & 3;
|
||||
a->lrpcs.vra = (buf[8] >> 3) & 7;
|
||||
a->lrpcs.ucca = (buf[8]) & 7;
|
||||
a->lrpcs.region_mask = buf[9];
|
||||
a->lrpcs.rpc_scheme = buf[10];
|
||||
return (0);
|
||||
|
||||
case DVD_HOST_SEND_RPC_STATE:
|
||||
cmd.opcode = GPCMD_SEND_KEY;
|
||||
cmd.bytes[8] = 8;
|
||||
cmd.bytes[9] = 6 | (0 << 6);
|
||||
buf[1] = 6;
|
||||
buf[4] = a->hrpcs.pdrc;
|
||||
error = scsipi_command(cd->sc_periph, &cmd, 12, buf, 8,
|
||||
CDRETRIES, 30000, NULL,
|
||||
XS_CTL_DATA_OUT|XS_CTL_DATA_ONSTACK);
|
||||
if (error)
|
||||
return (error);
|
||||
return (0);
|
||||
|
||||
default:
|
||||
return (ENOTTY);
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue