I get the following output:
cdrom.c: In function ‘CDROM_SetTray’:
cdrom.c:807:52: error: ‘CDROMEJECT’ undeclared (first use in this function)
return CDROM_GetStatusCode(ioctl(fd, doEject ? CDROMEJECT : CDROMCLOSETRAY));
^
cdrom.c:807:65: error: ‘CDROMCLOSETRAY’ undeclared (first use in this function)
return CDROM_GetStatusCode(ioctl(fd, doEject ? CDROMEJECT : CDROMCLOSETRAY));
^
cdrom.c: In function ‘CDROM_ControlEjection’:
cdrom.c:829:42: error: ‘CDROM_LOCKDOOR’ undeclared (first use in this function)
return CDROM_GetStatusCode(ioctl(fd, CDROM_LOCKDOOR, rmv->PreventMediaRemoval));
^
cdrom.c: In function ‘CDROM_ReadQChannel’:
cdrom.c:894:26: error: storage size of ‘sc’ isn’t known
struct cdrom_subchnl sc;
^
cdrom.c:895:22: error: ‘CDROM_MSF’ undeclared (first use in this function)
sc.cdsc_format = CDROM_MSF;
^
cdrom.c:897:20: error: ‘CDROMSUBCHNL’ undeclared (first use in this function)
io = ioctl(fd, CDROMSUBCHNL, &sc);
^
cdrom.c:909:10: error: ‘CDROM_AUDIO_INVALID’ undeclared (first use in this function)
case CDROM_AUDIO_INVALID:
^
cdrom.c:913:10: error: ‘CDROM_AUDIO_NO_STATUS’ undeclared (first use in this function)
case CDROM_AUDIO_NO_STATUS:
^
cdrom.c:917:10: error: ‘CDROM_AUDIO_PLAY’ undeclared (first use in this function)
case CDROM_AUDIO_PLAY:
^
cdrom.c:920:10: error: ‘CDROM_AUDIO_PAUSED’ undeclared (first use in this function)
case CDROM_AUDIO_PAUSED:
^
cdrom.c:923:10: error: ‘CDROM_AUDIO_COMPLETED’ undeclared (first use in this function)
case CDROM_AUDIO_COMPLETED:
^
cdrom.c:926:10: error: ‘CDROM_AUDIO_ERROR’ undeclared (first use in this function)
case CDROM_AUDIO_ERROR:
^
cdrom.c:966:30: error: storage size of ‘mcn’ isn’t known
struct cdrom_mcn mcn;
^
cdrom.c:967:33: error: ‘CDROM_GET_MCN’ undeclared (first use in this function)
if ((io = ioctl(fd, CDROM_GET_MCN, &mcn)) == -1) goto end;
^
cdrom.c:966:30: warning: unused variable ‘mcn’ [-Wunused-variable]
struct cdrom_mcn mcn;
^
cdrom.c:894:26: warning: unused variable ‘sc’ [-Wunused-variable]
struct cdrom_subchnl sc;
^
cdrom.c: In function ‘CDROM_Verify’:
cdrom.c
ret = ioctl(fd, CDROM_DRIVE_STATUS, NULL);
^
cdrom.c
if(ret == CDS_DISC_OK)
^
cdrom.c: In function ‘CDROM_PlayAudioMSF’:
cdrom.c
struct cdrom_msf msf;
^
cdrom.c
io = ioctl(fd, CDROMSTART);
^
cdrom.c
io = ioctl(fd, CDROMPLAYMSF, &msf);
^
cdrom.c
struct cdrom_msf msf;
^
cdrom.c: In function ‘CDROM_SeekAudioMSF’:
cdrom.c
struct cdrom_msf0 msf;
^
cdrom.c
struct cdrom_subchnl sc;
^
cdrom.c
sc.cdsc_format = CDROM_MSF;
^
cdrom.c
io = ioctl(fd, CDROMSUBCHNL, &sc);
^
cdrom.c
if (sc.cdsc_audiostatus==CDROM_AUDIO_PLAY)
^
cdrom.c
return CDROM_GetStatusCode(ioctl(fd, CDROMSEEK, &msf));
^
cdrom.c
struct cdrom_subchnl sc;
^
cdrom.c
struct cdrom_msf0 msf;
^
cdrom.c: In function ‘CDROM_PauseAudio’:
cdrom.c
return CDROM_GetStatusCode(ioctl(fd, CDROMPAUSE));
^
cdrom.c: In function ‘CDROM_ResumeAudio’:
cdrom.c
return CDROM_GetStatusCode(ioctl(fd, CDROMRESUME));
^
cdrom.c: In function ‘CDROM_StopAudio’:
cdrom.c
return CDROM_GetStatusCode(ioctl(fd, CDROMSTOP));
^
cdrom.c: In function ‘CDROM_GetVolume’:
cdrom.c
struct cdrom_volctrl volc;
^
cdrom.c
io = ioctl(fd, CDROMVOLREAD, &volc);
^
cdrom.c
struct cdrom_volctrl volc;
^
cdrom.c: In function ‘CDROM_SetVolume’:
cdrom.c
struct cdrom_volctrl volc;
^
cdrom.c
return CDROM_GetStatusCode(ioctl(fd, CDROMVOLCTRL, &volc));
^
cdrom.c
struct cdrom_volctrl volc;
^
cdrom.c: In function ‘CDROM_RawRead’:
cdrom.c
((1 << 8*sizeof(msf->cdmsf_min0)) * CD_SECS * CD_FRAMES
^
cdrom.c
- CD_MSF_OFFSET)) {
^
cdrom.c
msf->cdmsf_min0 = lba / CD_FRAMES / CD_SECS;
^
cdrom.c
msf->cdmsf_sec0 = lba / CD_FRAMES % CD_SECS;
^
cdrom.c
msf->cdmsf_frame0 = lba % CD_FRAMES;
^
cdrom.c
io = ioctl(fd, CDROMREADRAW, msf);
^
cdrom.c
struct cdrom_read_audio cdra;
^
cdrom.c
cdra.addr_format = CDROM_LBA;
^
cdrom.c
io = ioctl(fd, CDROMREADAUDIO, &cdra);
^
cdrom.c
struct cdrom_read_audio cdra;
^
cdrom.c: In function ‘DVD_StartSession’:
cdrom.c
dvd_authinfo auth_info;
^
cdrom.c
auth_info.type = DVD_LU_SEND_AGID;
^
cdrom.c
auth_info.type = DVD_LU_SEND_AGID;
^
cdrom.c
if (sid_in) auth_info.lsa.agid = *(const int*)sid_in; /* ?*/
^
cdrom.c
ret =CDROM_GetStatusCode(ioctl(fd, DVD_AUTH, &auth_info));
^
cdrom.c
*sid_out = auth_info.lsa.agid;
^
cdrom.c: In function ‘DVD_EndSession’:
cdrom.c
dvd_authinfo auth_info;
^
cdrom.c
auth_info.type = DVD_INVALIDATE_AGID;
^
cdrom.c
auth_info.type = DVD_INVALIDATE_AGID;
^
cdrom.c
auth_info.lsa.agid = *(const int*)sid;
^
cdrom.c
return CDROM_GetStatusCode(ioctl(fd, DVD_AUTH, &auth_info));
^
cdrom.c: In function ‘DVD_SendKey’:
cdrom.c
dvd_authinfo auth_info;
^
cdrom.c
auth_info.type = DVD_HOST_SEND_CHALLENGE;
^
cdrom.c
auth_info.type = DVD_HOST_SEND_CHALLENGE;
^
cdrom.c
auth_info.hsc.agid = (int)key->SessionId;
^
In file included from cdrom.c:137:0:
cdrom.c
TRACE("DvdChallengeKey ioc 0x%x\n", DVD_AUTH );
^
../../include/wine/debug.h:91:49: note: in definition of macro ‘__WINE_DBG_LOG’
wine_dbg_log( __dbcl, __dbch, __FUNCTION__, args); } } while(0)
^
../../include/wine/debug.h:337:36: note: in expansion of macro ‘__WINE_DPRINTF’
#define WINE_TRACE __WINE_DPRINTF(_TRACE,__wine_dbch___default)
^
../../include/wine/debug.h:381:36: note: in expansion of macro ‘WINE_TRACE’
#define TRACE WINE_TRACE
^
cdrom.c
TRACE("DvdChallengeKey ioc 0x%x\n", DVD_AUTH );
^
cdrom.c
memcpy( auth_info.hsc.chal, key->KeyData, DVD_CHALLENGE_SIZE );
^
cdrom.c
auth_info.type = DVD_HOST_SEND_KEY2;
^
cdrom.c
auth_info.type = DVD_HOST_SEND_KEY2;
^
cdrom.c
auth_info.hsk.agid = (int)key->SessionId;
^
cdrom.c
memcpy( auth_info.hsk.key, key->KeyData, DVD_KEY_SIZE );
^
cdrom.c: In function ‘DVD_ReadKey’:
cdrom.c
dvd_struct dvd;
^
cdrom.c
dvd_authinfo auth_info;
^
cdrom.c
memset( &dvd, 0, sizeof( dvd_struct ) );
^
cdrom.c
dvd.type = DVD_STRUCT_DISCKEY;
^
cdrom.c
dvd.type = DVD_STRUCT_DISCKEY;
^
cdrom.c
dvd.disckey.agid = (int)key->SessionId;
^
cdrom.c
memset( dvd.disckey.value, 0, DVD_DISCKEY_SIZE );
^
cdrom.c
ret = CDROM_GetStatusCode(ioctl( fd, DVD_READ_STRUCT, &dvd ));
^
cdrom.c
memcpy(key->KeyData,dvd.disckey.value,DVD_DISCKEY_SIZE);
^
cdrom.c
auth_info.type = DVD_LU_SEND_TITLE_KEY;
^
cdrom.c
auth_info.type = DVD_LU_SEND_TITLE_KEY;
^
cdrom.c
auth_info.lstk.agid = (int)key->SessionId;
^
cdrom.c
auth_info.lstk.lba = (int)(key->Parameters.TitleOffset.QuadPart>>11);
^
In file included from cdrom.c:137:0:
cdrom.c
auth_info.lstk.lba);
^
../../include/wine/debug.h:91:49: note: in definition of macro ‘__WINE_DBG_LOG’
wine_dbg_log( __dbcl, __dbch, __FUNCTION__, args); } } while(0)
^
../../include/wine/debug.h:337:36: note: in expansion of macro ‘__WINE_DPRINTF’
#define WINE_TRACE __WINE_DPRINTF(_TRACE,__wine_dbch___default)
^
../../include/wine/debug.h:381:36: note: in expansion of macro ‘WINE_TRACE’
#define TRACE WINE_TRACE
^
cdrom.c
TRACE("DvdTitleKey session %d Quadpart 0x%08lx offset 0x%08x\n",
^
cdrom.c
ret = CDROM_GetStatusCode(ioctl( fd, DVD_AUTH, &auth_info ));
^
cdrom.c
memcpy(key->KeyData, auth_info.lstk.title_key, DVD_KEY_SIZE );
^
cdrom.c
auth_info.type = DVD_LU_SEND_CHALLENGE;
^
cdrom.c
auth_info.type = DVD_LU_SEND_CHALLENGE;
^
cdrom.c
auth_info.lsc.agid = (int)key->SessionId;
^
cdrom.c
memcpy( key->KeyData, auth_info.lsc.chal, DVD_CHALLENGE_SIZE );
^
cdrom.c
auth_info.type = DVD_LU_SEND_ASF;
^
cdrom.c
auth_info.type = DVD_LU_SEND_ASF;
^
cdrom.c
auth_info.lsasf.asf=((PDVD_ASF)key->KeyData)->SuccessFlag;
^
cdrom.c
((PDVD_ASF)key->KeyData)->SuccessFlag = auth_info.lsasf.asf;
^
cdrom.c
auth_info.type = DVD_LU_SEND_KEY1;
^
cdrom.c
auth_info.type = DVD_LU_SEND_KEY1;
^
cdrom.c
auth_info.lsk.agid = (int)key->SessionId;
^
cdrom.c
memcpy( key->KeyData, auth_info.lsk.key, DVD_KEY_SIZE );
^
cdrom.c
auth_info.type = DVD_LU_SEND_RPC_STATE;
^
cdrom.c
auth_info.type = DVD_LU_SEND_RPC_STATE;
^
cdrom.c
((PDVD_RPC_KEY)key->KeyData)->TypeCode = auth_info.lrpcs.type;
^
cdrom.c
((PDVD_RPC_KEY)key->KeyData)->RegionMask = auth_info.lrpcs.region_mask;
^
cdrom.c
((PDVD_RPC_KEY)key->KeyData)->RpcScheme = auth_info.lrpcs.rpc_scheme;
^
cdrom.c
((PDVD_RPC_KEY)key->KeyData)->UserResetsAvailable = auth_info.lrpcs.ucca;
^
cdrom.c
((PDVD_RPC_KEY)key->KeyData)->ManufacturerResetsAvailable = auth_info.lrpcs.vra;
^
cdrom.c: In function ‘DVD_GetRegion’:
cdrom.c
dvd_struct dvd;
^
cdrom.c
dvd_authinfo auth_info;
^
cdrom.c
dvd.type = DVD_STRUCT_COPYRIGHT;
^
cdrom.c
dvd.type = DVD_STRUCT_COPYRIGHT;
^
cdrom.c
dvd.copyright.layer_num = 0;
^
cdrom.c
auth_info.type = DVD_LU_SEND_RPC_STATE;
^
cdrom.c
auth_info.type = DVD_LU_SEND_RPC_STATE;
^
cdrom.c
ret = CDROM_GetStatusCode(ioctl( fd, DVD_AUTH, &auth_info ));
^
cdrom.c
ret = CDROM_GetStatusCode(ioctl( fd, DVD_READ_STRUCT, &dvd ));
^
cdrom.c
region->CopySystem = dvd.copyright.cpst;
^
cdrom.c
region->RegionData = dvd.copyright.rmi;
^
cdrom.c
region->SystemRegion = auth_info.lrpcs.region_mask;
^
cdrom.c
region->ResetCount = auth_info.lrpcs.ucca;
^
cdrom.c: In function ‘CDROM_Verify’:
cdrom.c
}
^
cdrom.c: In function ‘CDROM_SetTray’:
cdrom.c:819:1: warning: control reaches end of non-void function [-Wreturn-type]
}
^
cdrom.c: In function ‘CDROM_ControlEjection’:
cdrom.c:836:1: warning: control reaches end of non-void function [-Wreturn-type]
}
^
cdrom.c: In function ‘CDROM_ResetAudio’:
cdrom.c:797:1: warning: control reaches end of non-void function [-Wreturn-type]
}
^
cdrom.c: In function ‘CDROM_PauseAudio’:
cdrom.c
}
^
cdrom.c: In function ‘CDROM_ResumeAudio’:
cdrom.c
}
^
cdrom.c: In function ‘CDROM_StopAudio’:
cdrom.c
}
^
cdrom.c: In function ‘CDROM_SetVolume’:
cdrom.c
}
^
cdrom.c: In function ‘DVD_EndSession’:
cdrom.c
}
^
I am wondering how I might fix this. Is it a problem with the code in the latest version, or is there some package that must be installed that I do not have right now?