/* @(#)scsilog.h 1.5 06/09/13 Copyright 1998-2004 J. Schilling */ /* * Definitions for SCSI log structures * * Copyright (c) 1998-2004 J. Schilling */ /* * The contents of this file are subject to the terms of the * Common Development and Distribution License, Version 1.0 only * (the "License"). You may not use this file except in compliance * with the License. * * See the file CDDL.Schily.txt in this distribution for details. * * When distributing Covered Code, include this CDDL HEADER in each * file and include the License file CDDL.Schily.txt from this distribution. */ #ifndef _SCSILOG_H #define _SCSILOG_H #include #include /* * Definitions for the Page Control field */ #define LOG_TRESH 0 /* (Current) Treshold values */ #define LOG_CUMUL 1 /* (Current) Cumulative values */ #define LOG_DFL_TRESH 2 /* Default Treshold values */ #define LOG_DFL_CUMUL 3 /* Default Cumulatice values */ #if defined(_BIT_FIELDS_LTOH) /* Intel bitorder */ typedef struct scsi_log_header { /* Log Page header */ Ucbit p_code :6; /* Page code */ Ucbit res :2; /* Reserved */ Uchar res1; /* Reserved */ Uchar p_len[2]; /* Page len (n-3) */ } scsi_log_hdr; #else /* Motorola bitorder */ typedef struct scsi_log_header { /* Log Page header */ Ucbit res :2; /* Reserved */ Ucbit p_code :6; /* Page code */ Uchar res1; /* Reserved */ Uchar p_len[2]; /* Page len (n-3) */ } scsi_log_hdr; #endif #if defined(_BIT_FIELDS_LTOH) /* Intel bitorder */ typedef struct scsi_logp_header { /* Log Parameter header */ Uchar p_code[2]; /* Parameter code */ Ucbit lp :1; /* List Parameter */ Ucbit res2_1 :1; /* Reserved */ Ucbit tmc :2; /* Treshold met Criteria */ Ucbit etc :1; /* Enable Treshold Comarison */ Ucbit tds :1; /* Target Save Disable */ Ucbit ds :1; /* Disble Save */ Ucbit du :1; /* Disable Update */ Uchar p_len; /* Parameter len (n-3) */ } scsi_logp_hdr; #else /* Motorola bitorder */ typedef struct scsi_logp_header { /* Log Parameter header */ Uchar p_code[2]; /* Parameter code */ Ucbit du :1; /* Disable Update */ Ucbit ds :1; /* Disble Save */ Ucbit tds :1; /* Target Save Disable */ Ucbit etc :1; /* Enable Treshold Comarison */ Ucbit tmc :2; /* Treshold met Criteria */ Ucbit res2_1 :1; /* Reserved */ Ucbit lp :1; /* List Parameter */ Uchar p_len; /* Parameter len (n-3) */ } scsi_logp_hdr; #endif struct scsi_logpage_0 { scsi_log_hdr hdr; /* Log Page header */ Uchar p_code[1]; /* List of supported log pages */ }; /* * Log Pages of the Pioneer DVD-R S101 */ struct pioneer_logpage_30_0 { scsi_logp_hdr hdr; /* Log Page header */ Uchar total_poh[4]; /* Total time powered on (hours)*/ }; struct pioneer_logpage_30_1 { scsi_logp_hdr hdr; /* Log Page header */ Uchar laser_poh[4]; /* Total time of laser turned on*/ }; struct pioneer_logpage_30_2 { scsi_logp_hdr hdr; /* Log Page header */ Uchar record_poh[4]; /* Total time of recording */ }; extern int log_sense __PR((SCSI *scgp, caddr_t bp, int cnt, int page, int pc, int pp)); extern BOOL has_log_page __PR((SCSI *scgp, int page, int pc)); extern int get_log __PR((SCSI *scgp, caddr_t bp, int *lenp, int page, int pc, int pp)); extern void print_logpages __PR((SCSI *scgp)); #endif /* _SCSILOG_H */