20#define MODNAME "DVRAV"
23#define DPRINTF(x...) printf(MODNAME ": " x)
28extern int module_start(
int argc,
char *argv[],
void *startaddr,
ModuleInfo_t *mi);
29extern int module_stop(
int argc,
char *argv[],
void *startaddr,
ModuleInfo_t *mi);
33extern int dvrav_df_devctl(
iomanX_iop_file_t *a1,
const char *name,
int cmd,
void *arg,
unsigned int arglen,
void *buf,
unsigned int buflen);
34extern int dvrav_df_ioctl2(
iomanX_iop_file_t *f,
int cmd,
void *arg,
unsigned int arglen,
void *buf,
unsigned int buflen);
35extern int avioctl2_select_position(
iomanX_iop_file_t *a1,
int cmd,
void *arg,
unsigned int arglen,
void *buf,
unsigned int buflen);
36extern int avioctl2_get_position(
iomanX_iop_file_t *a1,
int cmd,
void *arg,
unsigned int arglen,
void *buf,
unsigned int buflen);
37extern int avioctl2_position_up(
iomanX_iop_file_t *a1,
int cmd,
void *arg,
unsigned int arglen,
void *buf,
unsigned int buflen);
38extern int avioctl2_position_down(
iomanX_iop_file_t *a1,
int cmd,
void *arg,
unsigned int arglen,
void *buf,
unsigned int buflen);
39extern int avioctl2_set_d_audio_sel(
iomanX_iop_file_t *a1,
int cmd,
void *arg,
unsigned int arglen,
void *buf,
unsigned int buflen);
40extern int avioctl2_get_tun_offset(
iomanX_iop_file_t *a1,
int cmd,
void *arg,
unsigned int arglen,
void *buf,
unsigned int buflen);
41extern int avioctl2_tun_offset_up(
iomanX_iop_file_t *a1,
int cmd,
void *arg,
unsigned int arglen,
void *buf,
unsigned int buflen);
42extern int avioctl2_tun_offset_down(
iomanX_iop_file_t *a1,
int cmd,
void *arg,
unsigned int arglen,
void *buf,
unsigned int buflen);
43extern int avioctl2_tun_scan_ch(
iomanX_iop_file_t *a1,
int cmd,
void *arg,
unsigned int arglen,
void *buf,
unsigned int buflen);
44extern int avioctl2_get_bs_gain(
iomanX_iop_file_t *a1,
int cmd,
void *arg,
unsigned int arglen,
void *buf,
unsigned int buflen);
45extern int avioctl2_set_preset_info(
iomanX_iop_file_t *a1,
int cmd,
void *arg,
unsigned int arglen,
void *buf,
unsigned int buflen);
46extern int avioctl2_change_sound(
iomanX_iop_file_t *a1,
int cmd,
void *arg,
unsigned int arglen,
void *buf,
unsigned int buflen);
47extern int avioctl2_set_d_video_sel(
iomanX_iop_file_t *a1,
int cmd,
void *arg,
unsigned int arglen,
void *buf,
unsigned int buflen);
48extern int avioctl2_get_av_src(
iomanX_iop_file_t *a1,
int cmd,
void *arg,
unsigned int arglen,
void *buf,
unsigned int buflen);
49extern int avioctl2_get_preset_info(
iomanX_iop_file_t *a1,
int cmd,
void *arg,
unsigned int arglen,
void *buf,
unsigned int buflen);
50extern int avioctl2_set_position_info(
iomanX_iop_file_t *a1,
int cmd,
void *arg,
unsigned int arglen,
void *buf,
unsigned int buflen);
51extern int avioctl2_get_position_info(
iomanX_iop_file_t *a1,
int cmd,
void *arg,
unsigned int arglen,
void *buf,
unsigned int buflen);
52extern int avioctl2_tun_scan_mode(
iomanX_iop_file_t *a1,
int cmd,
void *arg,
unsigned int arglen,
void *buf,
unsigned int buflen);
53extern int avioctl2_f_select_position(
iomanX_iop_file_t *a1,
int cmd,
void *arg,
unsigned int arglen,
void *buf,
unsigned int buflen);
54extern int avioctl2_select_rec_src(
iomanX_iop_file_t *a1,
int cmd,
void *arg,
unsigned int arglen,
void *buf,
unsigned int buflen);
55extern int avioctl2_get_rec_src(
iomanX_iop_file_t *a1,
int cmd,
void *arg,
unsigned int arglen,
void *buf,
unsigned int buflen);
56extern int avioctl2_tun_scan_mode_euro(
iomanX_iop_file_t *a1,
int cmd,
void *arg,
unsigned int arglen,
void *buf,
unsigned int buflen);
57extern int avioctl2_tun_scan_ch_euro(
iomanX_iop_file_t *a1,
int cmd,
void *arg,
unsigned int arglen,
void *buf,
unsigned int buflen);
58extern int avioctl2_get_curfreq_info(
iomanX_iop_file_t *a1,
int cmd,
void *arg,
unsigned int arglen,
void *buf,
unsigned int buflen);
59extern int avioctl2_get_teletext_ver_no(
iomanX_iop_file_t *a1,
int cmd,
void *arg,
unsigned int arglen,
void *buf,
unsigned int buflen);
60extern int avioctl2_set_tv_guide_page(
iomanX_iop_file_t *a1,
int cmd,
void *arg,
unsigned int arglen,
void *buf,
unsigned int buflen);
61extern int avioctl2_get_tv_guide_page(
iomanX_iop_file_t *a1,
int cmd,
void *arg,
unsigned int arglen,
void *buf,
unsigned int buflen);
62extern int avioctl2_change_mode_tv_to_dvd(
iomanX_iop_file_t *a1,
int cmd,
void *arg,
unsigned int arglen,
void *buf,
unsigned int buflen);
63extern int avioctl2_get_vps_data(
iomanX_iop_file_t *a1,
int cmd,
void *arg,
unsigned int arglen,
void *buf,
unsigned int buflen);
64extern int avioctl2_get_pdc_data(
iomanX_iop_file_t *a1,
int cmd,
void *arg,
unsigned int arglen,
void *buf,
unsigned int buflen);
65extern int avioctl2_get_format1_data(
iomanX_iop_file_t *a1,
int cmd,
void *arg,
unsigned int arglen,
void *buf,
unsigned int buflen);
66extern int avioctl2_get_header_time_data(
iomanX_iop_file_t *a1,
int cmd,
void *arg,
unsigned int arglen,
void *buf,
unsigned int buflen);
67extern int avioctl2_set_acs_position_euro(
iomanX_iop_file_t *a1,
int cmd,
void *arg,
unsigned int arglen,
void *buf,
unsigned int buflen);
75 {0x5616, &avioctl2_select_position},
76 {0x5619, &avioctl2_get_position},
77 {0x5617, &avioctl2_position_up},
78 {0x5618, &avioctl2_position_down},
79 {0x5612, &avioctl2_set_d_audio_sel},
80 {0x560B, &avioctl2_get_tun_offset},
81 {0x560C, &avioctl2_tun_offset_up},
82 {0x560D, &avioctl2_tun_offset_down},
83 {0x560E, &avioctl2_tun_scan_ch},
84 {0x560F, &avioctl2_get_bs_gain},
85 {0x5610, &avioctl2_set_preset_info},
86 {0x5611, &avioctl2_change_sound},
87 {0x5613, &avioctl2_set_d_video_sel},
88 {0x5614, &avioctl2_get_av_src},
89 {0x5615, &avioctl2_get_preset_info},
90 {0x561A, &avioctl2_set_position_info},
91 {0x561B, &avioctl2_get_position_info},
92 {0x561C, &avioctl2_tun_scan_mode},
93 {0x561D, &avioctl2_f_select_position},
94 {0x561E, &avioctl2_select_rec_src},
95 {0x561F, &avioctl2_get_rec_src},
96 {0x5618, &avioctl2_tun_scan_mode_euro},
97 {0x5619, &avioctl2_tun_scan_ch_euro},
98 {0x561A, &avioctl2_get_curfreq_info},
99 {0x561B, &avioctl2_get_teletext_ver_no},
100 {0x561C, &avioctl2_set_tv_guide_page},
101 {0x561D, &avioctl2_get_tv_guide_page},
102 {0x561E, &avioctl2_change_mode_tv_to_dvd},
103 {0x561F, &avioctl2_get_vps_data},
104 {0x5620, &avioctl2_get_pdc_data},
105 {0x5621, &avioctl2_get_format1_data},
106 {0x5622, &avioctl2_get_header_time_data},
107 {0x5623, &avioctl2_set_acs_position_euro},
110IOMANX_RETURN_VALUE_IMPL(
EUNSUP);
116 IOMANX_RETURN_VALUE(
EUNSUP),
117 IOMANX_RETURN_VALUE(
EUNSUP),
118 IOMANX_RETURN_VALUE(
EUNSUP),
119 IOMANX_RETURN_VALUE(
EUNSUP),
120 IOMANX_RETURN_VALUE(
EUNSUP),
121 IOMANX_RETURN_VALUE(
EUNSUP),
123 IOMANX_RETURN_VALUE(
EUNSUP),
124 IOMANX_RETURN_VALUE(
EUNSUP),
125 IOMANX_RETURN_VALUE(
EUNSUP),
126 IOMANX_RETURN_VALUE(
EUNSUP),
127 IOMANX_RETURN_VALUE(
EUNSUP),
128 IOMANX_RETURN_VALUE(
EUNSUP),
129 IOMANX_RETURN_VALUE(
EUNSUP),
130 IOMANX_RETURN_VALUE(
EUNSUP),
131 IOMANX_RETURN_VALUE(
EUNSUP),
132 IOMANX_RETURN_VALUE(
EUNSUP),
133 IOMANX_RETURN_VALUE(
EUNSUP),
134 IOMANX_RETURN_VALUE(
EUNSUP),
135 IOMANX_RETURN_VALUE(
EUNSUP),
136 IOMANX_RETURN_VALUE_S64(
EUNSUP),
138 IOMANX_RETURN_VALUE(
EUNSUP),
139 IOMANX_RETURN_VALUE(
EUNSUP),
144 .desc =
"Digital Video Recorder AV task",
152IRX_ID(MODNAME, 1, 1);
154int _start(
int argc,
char *argv[],
void *startaddr,
ModuleInfo_t *mi)
157 return module_start(argc, argv, startaddr, mi);
159 return module_stop(argc, argv, startaddr, mi);
162int module_start(
int argc,
char *argv[],
void *startaddr,
ModuleInfo_t *mi)
170 for (i = 0; i < 30000; ++i) {
171 if (((*((vu32 *)0xB0004230)) & 8) != 0)
176 DPRINTF(
"AV task of DVRP is not running...\n");
177 return MODULE_NO_RESIDENT_END;
179 if (iomanX_AddDrv(&DVRAV) != 0)
180 return MODULE_NO_RESIDENT_END;
183 return MODULE_REMOVABLE_END;
185 if (mi && ((mi->
newflags & 2) != 0))
187 return MODULE_RESIDENT_END;
191int module_stop(
int argc,
char *argv[],
void *startaddr,
ModuleInfo_t *mi)
198 if (iomanX_DelDrv(DVRAV.name) != 0)
199 return MODULE_REMOVABLE_END;
200 return MODULE_NO_RESIDENT_END;
214 v1 = CreateSema(&v3);
225 if (DeleteSema(sema_id) != 0)
260 while (DevctlCmdTbl[v12].cmd != cmd) {
262 if (v11 >=
sizeof(DevctlCmdTbl) /
sizeof(DevctlCmdTbl[0]))
265 v10 = DevctlCmdTbl[v12].fn(a1, cmd, arg, arglen, buf, buflen);
267 if (v11 ==
sizeof(DevctlCmdTbl) /
sizeof(DevctlCmdTbl[0]))
273int dvrav_df_ioctl2(
iomanX_iop_file_t *f,
int cmd,
void *arg,
unsigned int arglen,
void *buf,
unsigned int buflen)
287int avioctl2_get_tun_offset(
295 drvdrv_exec_cmd_ack cmdack;
303 cmdack.command = 0x3102;
304 cmdack.input_word_count = 0;
305 if (DvrdrvExecCmdAck(&cmdack)) {
306 DPRINTF(
"avioctl2_get_tun_offset -> Handshake error!\n");
308 }
else if (cmdack.ack_status_ack) {
309 DPRINTF(
"avioctl2_get_tun_offset -> Status error!\n");
312 *(u16 *)buf = cmdack.output_word[0];
313 *((u16 *)buf + 1) = cmdack.output_word[1];
318int avioctl2_tun_offset_up(
326 drvdrv_exec_cmd_ack cmdack;
334 cmdack.command = 0x3103;
335 cmdack.input_word_count = 0;
336 if (DvrdrvExecCmdAck(&cmdack)) {
337 DPRINTF(
"avioctl2_tun_offset_up -> Handshake error!\n");
339 }
else if (cmdack.ack_status_ack) {
340 DPRINTF(
"avioctl2_tun_offset_up -> Status error!\n");
343 *(u16 *)buf = cmdack.output_word[0];
344 *((u16 *)buf + 1) = cmdack.output_word[1];
345 *((u16 *)buf + 2) = cmdack.output_word[2];
346 *((u16 *)buf + 3) = cmdack.output_word[3];
347 *((u16 *)buf + 4) = cmdack.output_word[4];
352int avioctl2_tun_offset_down(
360 drvdrv_exec_cmd_ack cmdack;
368 cmdack.command = 0x3104;
369 cmdack.input_word_count = 0;
370 if (DvrdrvExecCmdAck(&cmdack)) {
371 DPRINTF(
"avioctl2_tun_offset_down -> Handshake error!\n");
373 }
else if (cmdack.ack_status_ack) {
374 DPRINTF(
"avioctl2_tun_offset_down -> Status error!\n");
377 *(u16 *)buf = cmdack.output_word[0];
378 *((u16 *)buf + 1) = cmdack.output_word[1];
379 *((u16 *)buf + 2) = cmdack.output_word[2];
380 *((u16 *)buf + 3) = cmdack.output_word[3];
381 *((u16 *)buf + 4) = cmdack.output_word[4];
386int avioctl2_tun_scan_ch(
394 drvdrv_exec_cmd_ack cmdack;
401 cmdack.command = 0x3105;
402 cmdack.input_word[0] = *(u16 *)arg;
403 cmdack.input_word[1] = *((u16 *)arg + 1);
404 cmdack.input_word[2] = *((u16 *)arg + 2);
405 cmdack.input_word_count = 3;
406 cmdack.timeout = 35000000;
407 if (DvrdrvExecCmdAckComp(&cmdack)) {
408 DPRINTF(
"avioctl2_tun_scan_ch -> Handshake error!\n");
410 }
else if (cmdack.ack_status_ack || cmdack.comp_status) {
411 DPRINTF(
"avioctl2_tun_scan_ch -> Status error!\n");
414 *(u16 *)buf = cmdack.return_result_word[0];
415 *((u16 *)buf + 1) = cmdack.return_result_word[1];
416 *((u16 *)buf + 2) = cmdack.return_result_word[2];
417 *((u16 *)buf + 3) = cmdack.return_result_word[3];
418 *((u16 *)buf + 4) = cmdack.return_result_word[4];
419 *((u16 *)buf + 5) = cmdack.return_result_word[5];
424int avioctl2_get_bs_gain(
432 drvdrv_exec_cmd_ack cmdack;
440 cmdack.command = 0x3106;
441 cmdack.input_word_count = 0;
442 if (DvrdrvExecCmdAck(&cmdack)) {
443 DPRINTF(
"avioctl2_get_bs_gain -> Handshake error!\n");
446 if (cmdack.ack_status_ack) {
447 DPRINTF(
"avioctl2_get_bs_gain -> Status error!\n");
450 *(u16 *)buf = cmdack.output_word[0];
456int avioctl2_set_preset_info(
464 drvdrv_exec_cmd_ack cmdack;
472 cmdack.command = 0x3107;
473 cmdack.input_word[0] = *(u16 *)arg;
474 cmdack.input_word[1] = *((u16 *)arg + 1);
475 cmdack.input_word_count = 2;
476 if (DvrdrvExecCmdAck(&cmdack)) {
477 DPRINTF(
"avioctl2_set_preset_info -> Handshake error!\n");
480 if (cmdack.ack_status_ack) {
481 DPRINTF(
"avioctl2_set_preset_info -> Status error!\n");
488int avioctl2_change_sound(
496 drvdrv_exec_cmd_ack cmdack;
504 cmdack.command = 0x3108;
505 cmdack.input_word_count = 0;
506 if (DvrdrvExecCmdAck(&cmdack)) {
507 DPRINTF(
"avioctl2_change_sound -> Handshake error!\n");
510 if (cmdack.ack_status_ack) {
511 DPRINTF(
"avioctl2_change_sound -> Status error!\n");
514 *(u16 *)buf = cmdack.output_word[0];
520int avioctl2_set_d_audio_sel(
528 drvdrv_exec_cmd_ack cmdack;
536 cmdack.command = 0x3109;
537 cmdack.input_word[0] = *(u16 *)arg;
538 cmdack.input_word[1] = *((u16 *)arg + 1);
539 cmdack.input_word[2] = *((u16 *)arg + 2);
540 cmdack.input_word[3] = *((u16 *)arg + 3);
541 cmdack.input_word_count = 4;
542 if (DvrdrvExecCmdAck(&cmdack)) {
543 DPRINTF(
"avioctl2_set_d_audio_sel -> Handshake error!\n");
546 if (cmdack.ack_status_ack) {
547 DPRINTF(
"avioctl2_set_d_audio_sel -> Status error!\n");
554int avioctl2_set_d_video_sel(
562 drvdrv_exec_cmd_ack cmdack;
570 cmdack.command = 0x310A;
571 cmdack.input_word_count = 1;
572 cmdack.input_word[0] = *(u16 *)arg;
573 if (DvrdrvExecCmdAck(&cmdack)) {
574 DPRINTF(
"avioctl2_set_d_video_sel -> Handshake error!\n");
577 if (cmdack.ack_status_ack) {
578 DPRINTF(
"avioctl2_set_d_video_sel -> Status error!\n");
585int avioctl2_get_av_src(
593 drvdrv_exec_cmd_ack cmdack;
601 cmdack.command = 0x310B;
602 cmdack.input_word_count = 0;
603 if (DvrdrvExecCmdAck(&cmdack)) {
604 DPRINTF(
"avioctl2_get_av_src -> Handshake error!\n");
606 }
else if (cmdack.ack_status_ack) {
607 DPRINTF(
"avioctl2_get_av_src -> Status error!\n");
610 *(u16 *)buf = cmdack.output_word[0];
611 *((u16 *)buf + 1) = cmdack.output_word[1];
616int avioctl2_get_preset_info(
624 drvdrv_exec_cmd_ack cmdack;
631 cmdack.command = 0x310C;
632 cmdack.input_word_count = 1;
633 cmdack.input_word[0] = *(u16 *)arg;
634 if (DvrdrvExecCmdAck(&cmdack)) {
635 DPRINTF(
"avioctl2_get_preset_info -> Handshake error!\n");
638 if (cmdack.ack_status_ack) {
639 DPRINTF(
"avioctl2_get_preset_info -> Status error!\n");
642 *(u16 *)buf = cmdack.output_word[0];
648int avioctl2_select_position(
656 drvdrv_exec_cmd_ack cmdack;
664 cmdack.command = 0x310E;
665 cmdack.input_word_count = 1;
666 cmdack.input_word[0] = *(u16 *)arg;
667 if (DvrdrvExecCmdAck(&cmdack)) {
668 DPRINTF(
"avioctl2_select_position -> Handshake error!\n");
671 if (cmdack.ack_status_ack) {
672 DPRINTF(
"avioctl2_select_position -> Status error!\n");
679int avioctl2_position_up(
687 drvdrv_exec_cmd_ack cmdack;
695 cmdack.command = 0x310F;
696 cmdack.input_word_count = 0;
697 if (DvrdrvExecCmdAck(&cmdack)) {
698 DPRINTF(
"avioctl2_position_up -> Handshake error!\n");
701 if (cmdack.ack_status_ack) {
702 DPRINTF(
"avioctl2_position_up -> Status error!\n");
705 *(u16 *)buf = cmdack.output_word[0];
711int avioctl2_position_down(
719 drvdrv_exec_cmd_ack cmdack;
727 cmdack.command = 0x3110;
728 cmdack.input_word_count = 0;
729 if (DvrdrvExecCmdAck(&cmdack)) {
730 DPRINTF(
"avioctl2_position_down -> Handshake error!\n");
733 if (cmdack.ack_status_ack) {
734 DPRINTF(
"avioctl2_position_down -> Status error!\n");
737 *(u16 *)buf = cmdack.output_word[0];
743int avioctl2_get_position(
751 drvdrv_exec_cmd_ack cmdack;
759 cmdack.command = 0x3111;
760 cmdack.input_word_count = 0;
761 if (DvrdrvExecCmdAck(&cmdack)) {
762 DPRINTF(
"avioctl2_get_position -> Handshake error!\n");
764 }
else if (cmdack.ack_status_ack) {
765 DPRINTF(
"avioctl2_get_position -> Status error!\n");
768 *(u16 *)buf = cmdack.output_word[0];
769 DPRINTF(
"Now position = %d\n", cmdack.output_word[0]);
774int avioctl2_set_position_info(
782 drvdrv_exec_cmd_ack cmdack;
790 cmdack.command = 0x3112;
791 cmdack.input_word[0] = *(u16 *)arg;
792 cmdack.input_word[1] = *((u16 *)arg + 1);
793 cmdack.input_word[2] = *((u16 *)arg + 2);
794 cmdack.input_word[3] = *((u16 *)arg + 3);
795 cmdack.input_word[4] = *((u16 *)arg + 4);
796 cmdack.input_word_count = 5;
797 if (DvrdrvExecCmdAck(&cmdack)) {
798 DPRINTF(
"avioctl2_set_position_info -> Handshake error!\n");
801 if (cmdack.ack_status_ack) {
802 DPRINTF(
"avioctl2_set_position_info -> Status error!\n");
809int avioctl2_get_position_info(
817 drvdrv_exec_cmd_ack cmdack;
824 cmdack.command = 0x3113;
825 cmdack.input_word_count = 1;
826 cmdack.input_word[0] = *(u16 *)arg;
827 if (DvrdrvExecCmdAck(&cmdack)) {
828 DPRINTF(
"avioctl2_get_position_info -> Handshake error!\n");
830 }
else if (cmdack.ack_status_ack) {
831 DPRINTF(
"avioctl2_get_position_info -> Status error!\n");
834 *(u16 *)buf = *(u16 *)arg;
835 *((u16 *)buf + 1) = cmdack.output_word[0];
836 *((u16 *)buf + 2) = cmdack.output_word[1];
837 *((u16 *)buf + 3) = cmdack.output_word[2];
838 *((u16 *)buf + 4) = cmdack.output_word[3];
843int avioctl2_tun_scan_mode(
851 drvdrv_exec_cmd_ack cmdack;
859 cmdack.command = 0x3114;
860 cmdack.input_word_count = 1;
861 cmdack.input_word[0] = *(u16 *)arg;
862 if (DvrdrvExecCmdAck(&cmdack)) {
863 DPRINTF(
"avioctl2_tun_scan_mode -> Handshake error!\n");
866 if (cmdack.ack_status_ack) {
867 DPRINTF(
"avioctl2_tun_scan_mode -> Status error!\n");
874int avioctl2_f_select_position(
882 drvdrv_exec_cmd_ack cmdack;
890 cmdack.command = 0x3115;
891 cmdack.input_word_count = 1;
892 cmdack.input_word[0] = *(u16 *)arg;
893 if (DvrdrvExecCmdAck(&cmdack)) {
894 DPRINTF(
"avioctl2_f_select_position -> Handshake error!\n");
897 if (cmdack.ack_status_ack) {
898 DPRINTF(
"avioctl2_f_select_position -> Status error!\n");
905int avioctl2_select_rec_src(
913 drvdrv_exec_cmd_ack cmdack;
921 cmdack.command = 0x3116;
922 cmdack.input_word_count = 1;
923 cmdack.timeout = 10000000;
924 cmdack.input_word[0] = *(u16 *)arg;
925 if (DvrdrvExecCmdAckComp(&cmdack)) {
926 DPRINTF(
"avioctl2_select_rec_src -> Handshake error!\n");
928 }
else if (cmdack.ack_status_ack || cmdack.comp_status) {
929 DPRINTF(
"avioctl2_select_rec_src -> Status error!\n");
935int avioctl2_get_rec_src(
943 drvdrv_exec_cmd_ack cmdack;
951 cmdack.command = 0x3117;
952 cmdack.input_word_count = 0;
953 if (DvrdrvExecCmdAck(&cmdack)) {
954 DPRINTF(
"avioctl2_get_rec_src -> Handshake error!\n");
957 if (cmdack.ack_status_ack) {
958 DPRINTF(
"avioctl2_get_rec_src -> Status error!\n");
961 *(u16 *)buf = cmdack.output_word[0];
976 drvdrv_exec_cmd_ack cmdack;
981 cmdack.command = cmd | 0x3100;
984 unsigned int input_word_copied;
985 input_word_tmp = (u16 *)&cmdack.input_word[0];
986 input_word_copied = 0;
988 *input_word_tmp = *(u16 *)arg;
989 arg = (
char *)arg + 2;
990 input_word_copied += 1;
992 }
while (input_word_copied < arglen >> 1);
994 cmdack.input_word_count = arglen >> 1;
995 if (DvrdrvExecCmdAck(&cmdack)) {
996 DPRINTF(
" %s -> Handshake error!\n", a1);
999 if (cmdack.ack_status_ack) {
1000 DPRINTF(
" %s -> Status error!\n", a1);
1006 input_word = cmdack.output_word;
1007 buf_tmp = (
char *)buf;
1010 *(u16 *)buf_tmp = *input_word;
1014 }
while (out_count < 16);
1020int avioctl2_cmd_ack_comp(
1026 unsigned int arglen,
1029 drvdrv_exec_cmd_ack cmdack;
1035 cmdack.command = cmd | 0x3100;
1037 u16 *input_word_tmp;
1038 unsigned int input_word_copied;
1039 input_word_tmp = (u16 *)&cmdack.input_word[0];
1040 input_word_copied = 0;
1042 *input_word_tmp = *(u16 *)arg;
1043 input_word_tmp += 1;
1044 arg = (
char *)arg + 2;
1045 input_word_copied += 1;
1046 }
while (input_word_copied < arglen >> 1);
1048 cmdack.input_word_count = arglen >> 1;
1049 cmdack.timeout = a2;
1050 if (DvrdrvExecCmdAckComp(&cmdack)) {
1051 DPRINTF(
" %s -> Handshake error!\n", a1);
1053 }
else if (cmdack.ack_status_ack || cmdack.comp_status) {
1054 DPRINTF(
" %s -> Status error!\n", a1);
1061 input_word = cmdack.return_result_word;
1062 buf_tmp = (u16 *)buf;
1064 *buf_tmp = *input_word;
1068 }
while (out_count < 16);
1073int avioctl2_tun_scan_mode_euro(
1077 unsigned int arglen,
1079 unsigned int buflen)
1083 return avioctl2_cmd_ack(
"avioctl2_tun_scan_mode_euro", 0x8000, a1, cmd, arg, arglen, buf);
1086int avioctl2_tun_scan_ch_euro(
1090 unsigned int arglen,
1092 unsigned int buflen)
1096 return avioctl2_cmd_ack_comp(
"avioctl2_tun_scan_ch_euro", 0x8000, a1, cmd, arg, arglen, buf);
1099int avioctl2_get_curfreq_info(
1103 unsigned int arglen,
1105 unsigned int buflen)
1109 return avioctl2_cmd_ack(
"avioctl2_get_curfreq_info", 0x8000, a1, cmd, arg, arglen, buf);
1112int avioctl2_get_teletext_ver_no(
1116 unsigned int arglen,
1118 unsigned int buflen)
1122 return avioctl2_cmd_ack_comp(
"avioctl2_get_teletext_ver_no", 0x8000, a1, cmd, arg, arglen, buf);
1125int avioctl2_set_tv_guide_page(
1129 unsigned int arglen,
1131 unsigned int buflen)
1135 return avioctl2_cmd_ack(
"avioctl2_set_tv_guide_page", 0x8000, a1, cmd, arg, arglen, buf);
1138int avioctl2_get_tv_guide_page(
1142 unsigned int arglen,
1144 unsigned int buflen)
1148 return avioctl2_cmd_ack(
"avioctl2_get_tv_guide_page", 0x8000, a1, cmd, arg, arglen, buf);
1151int avioctl2_change_mode_tv_to_dvd(
1155 unsigned int arglen,
1157 unsigned int buflen)
1161 return avioctl2_cmd_ack(
"avioctl2_change_mode_tv_to_dvd", 0x8000, a1, cmd, arg, arglen, buf);
1164int avioctl2_get_vps_data(
1168 unsigned int arglen,
1170 unsigned int buflen)
1174 return avioctl2_cmd_ack_comp(
"avioctl2_get_vps_data", 0x6B6C0, a1, cmd, arg, arglen, buf);
1177int avioctl2_get_pdc_data(
1181 unsigned int arglen,
1183 unsigned int buflen)
1187 return avioctl2_cmd_ack_comp(
"avioctl2_get_pdc_data", 0x2DC6C0, a1, cmd, arg, arglen, buf);
1190int avioctl2_get_format1_data(
1194 unsigned int arglen,
1196 unsigned int buflen)
1200 return avioctl2_cmd_ack_comp(
"avioctl2_get_format1_data", 0x2DC6C0, a1, cmd, arg, arglen, buf);
1203int avioctl2_get_header_time_data(
1207 unsigned int arglen,
1209 unsigned int buflen)
1213 return avioctl2_cmd_ack_comp(
"avioctl2_get_header_time_data", 0x2DC6C0, a1, cmd, arg, arglen, buf);
1216int avioctl2_set_acs_position_euro(
1220 unsigned int arglen,
1222 unsigned int buflen)
1226 return avioctl2_cmd_ack(
"avioctl2_set_acs_position_euro", 0x8000, a1, cmd, arg, arglen, buf);