comparison gsm-fw/services/dar/dar_api.c @ 305:4dccc9d3305f

gsm-fw: checking in DAR from Leonardo source
author Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
date Sun, 16 Mar 2014 05:48:58 +0000
parents
children 749ca89741fa
comparison
equal deleted inserted replaced
304:e0ca3ca46a06 305:4dccc9d3305f
1 /****************************************************************************/
2 /* */
3 /* File Name: dar_api.c */
4 /* */
5 /* Purpose: This file contains all the functions used to service */
6 /* primitives. */
7 /* */
8 /* Version 0.1 */
9 /* */
10 /* Date Modification */
11 /* ---------------------------------------------------------------------- */
12 /* 2 October 2001 Create */
13 /* */
14 /* Author - Stephanie Gerthoux */
15 /* */
16 /* (C) Copyright 2001 by Texas Instruments Incorporated, All Rights Reserved*/
17 /****************************************************************************/
18
19 #include "rv/rv_defined_swe.h"
20
21
22 #ifdef RVM_DAR_SWE
23 #ifndef _WINDOWS
24 #include "swconfig.cfg"
25 #include "sys.cfg"
26 #include "l1sw.cfg"
27 #include "chipset.cfg"
28 #endif
29
30 #include "abb/abb.h"
31 #include "rv/rv_general.h"
32 #include "rvm/rvm_gen.h"
33 #include "dar/dar_api.h"
34 #include "dar/dar_env.h"
35 #include "dar/dar_error_hdlr_i.h"
36 #include "dar/dar_messages_i.h"
37 #include "dar/dar_msg_ft.h"
38 #include "dar/dar_macro_i.h"
39 #include "dar/dar_diagnose_i.h"
40 #include "dar/dar_const_i.h"
41 #include "dar/dar_emergency.h"
42
43
44 #ifndef _WINDOWS
45 /* enable the timer */
46 #include "memif/mem.h"
47 #include "timer/timer.h"
48 #include "inth/iq.h"
49 #if (CHIPSET == 12)
50 #include "inth/sys_inth.h"
51 #endif
52 #endif
53
54
55 /**** Global variable ****/
56 /* Define load timer */
57 static UINT16 dar_load_tim = 0x0;
58
59 /* Increment variable */
60 static BOOLEAN dar_increment = TRUE;
61
62 /* DAR previous status */
63 T_DAR_RECOVERY_STATUS dar_previous_status;
64
65 /* DAR previous exception*/
66 UINT8 dar_previous_exception;
67
68 /**** Define extern variables ****/
69 /* Get the status of the system */
70 extern T_DAR_RECOVERY_STATUS dar_current_status;
71
72 /* dar_exception_status : to get the status of the exception */
73 extern UINT8 dar_exception_status;
74
75 /* Define the recovery buffer */
76 extern UINT8 dar_recovery_buffer[DAR_RECOVERY_DATA_MAX_BUFFER_SIZE];
77
78 /* Define a pointer to the Global Environment Control block */
79 extern T_DAR_ENV_CTRL_BLK *dar_gbl_var_p;
80
81 /* **************************************************************************** */
82 /* RECOVERY */
83 /* **************************************************************************** */
84
85 /********************************************************************************/
86 /* */
87 /* Function Name: dar_recovery_get_status */
88 /* */
89 /* Purpose: This function is called by the MMI at the beginning of the */
90 /* procedure, in order to get the status of the last reset of */
91 /* the system. */
92 /* */
93 /* Input Parameters: */
94 /* Dar recovery status */
95 /* */
96 /* Output Parameters: */
97 /* Validation of the function execution. */
98 /* */
99 /* Note: */
100 /* None. */
101 /* */
102 /* Revision History: */
103 /* None. */
104 /* */
105 /********************************************************************************/
106 T_RV_RET dar_recovery_get_status(T_DAR_RECOVERY_STATUS* status)
107 {
108 /* Variable to know the status of th Omega VRPC register */
109 UINT16 dar_pwr_status;
110
111 *status = dar_previous_status;
112 switch (dar_previous_status)
113 {
114 case (DAR_WATCHDOG):
115 {
116 DAR_SEND_TRACE("Dar Entity: Status of the last reset of the system = WATCHDOG",RV_TRACE_LEVEL_DEBUG_HIGH);
117 break;
118 }
119 case (DAR_NORMAL_SCUTTLING):
120 {
121 DAR_SEND_TRACE("Dar Entity: Status of the last reset of the system = NORMAL SCUTTLING",RV_TRACE_LEVEL_DEBUG_HIGH);
122 break;
123 }
124 case (DAR_EMERGENCY_SCUTTLING):
125 {
126 DAR_SEND_TRACE("Dar Entity: Status of the last reset of the system = EMERGENCY SCUTTLING",RV_TRACE_LEVEL_DEBUG_HIGH);
127 switch (dar_previous_exception)
128 {
129 case (DAR_EXCEPTION_DATA_ABORT):
130 {
131 DAR_SEND_TRACE(" A DATA ABORT exception has occured",RV_TRACE_LEVEL_DEBUG_HIGH);
132 break;
133 }
134
135 case (DAR_EXCEPTION_PREFETCH_ABORT):
136 {
137 DAR_SEND_TRACE(" A PREFETCH ABORT exception has occured",RV_TRACE_LEVEL_DEBUG_HIGH);
138 break;
139 }
140
141 case (DAR_EXCEPTION_UNDEFINED):
142 {
143 DAR_SEND_TRACE(" A UNDEFINED INSTRUCTION exception has occured",RV_TRACE_LEVEL_DEBUG_HIGH);
144 break;
145 }
146
147 case (DAR_EXCEPTION_SWI):
148 {
149 DAR_SEND_TRACE(" A SWI exception has occured",RV_TRACE_LEVEL_DEBUG_HIGH);
150 break;
151 }
152
153 case (DAR_EXCEPTION_RESERVED):
154 {
155 DAR_SEND_TRACE(" A RESERVED exception has occured",RV_TRACE_LEVEL_DEBUG_HIGH);
156 break;
157 }
158
159 default:
160 {
161 DAR_SEND_TRACE(" An error has been detected",RV_TRACE_LEVEL_DEBUG_HIGH);
162 break;
163 }
164
165 }
166
167 break;
168 }
169 default:
170 {
171 #if (_GSM==1) || (defined _WINDOWS)
172 dar_pwr_status = ABB_Read_Status();
173
174 #if ((ANLG_FAM == 1) || (ANLG_FAM == 2))
175 if (dar_pwr_status & ONBSTS)
176 #elif (ANLG_FAM == 3)
177 if (dar_pwr_status & PWONBSTS)
178 #endif
179 {
180 /* Switch on Condition on ON BUTTON Push */
181 DAR_SEND_TRACE("Dar Entity: Status of the last reset of the system = POWER ON/OFF",RV_TRACE_LEVEL_DEBUG_HIGH);
182 break;
183 }
184 else
185 {
186 /* Branch to a reset at adress 0 */
187 DAR_SEND_TRACE("Dar Entity: Status of the last reset of the system = BRANCH to adress 0",RV_TRACE_LEVEL_DEBUG_HIGH);
188 break;
189 }
190 #else
191 /* the SPI is not available in BOARD_TEST configuration */
192 DAR_SEND_TRACE("Dar Entity: Status of the last reset of the system = POWER ON/OFF or BRANCH to adress 0",RV_TRACE_LEVEL_DEBUG_HIGH);
193 #endif
194 }
195 }/* switch */
196
197 return(RV_OK);
198
199 } /* dar_recovery_get_status */
200
201 /********************************************************************************/
202 /* */
203 /* Function Name: dar_recovery_config */
204 /* */
205 /* Purpose: This function is used to store a callback function that will be */
206 /* called by the recovery system when a recovery procedure has */
207 /* been initiated */
208 /* */
209 /* Input Parameters: */
210 /* dar callback function */
211 /* */
212 /* Output Parameters: */
213 /* Validation of the function execution. */
214 /* */
215 /* Note: */
216 /* None. */
217 /* */
218 /* Revision History: */
219 /* None. */
220 /* */
221 /********************************************************************************/
222 T_RV_RET dar_recovery_config(T_RV_RET (*dar_store_recovery_data)
223 (T_DAR_BUFFER buffer_p,
224 UINT16 length))
225 {
226 /* call the callback function */
227 dar_gbl_var_p->entity_dar_callback = dar_store_recovery_data;
228
229 return(RV_OK);
230 } /* dar_recovery_config */
231
232 /********************************************************************************/
233 /* */
234 /* Function Name: dar_get_recovery_data */
235 /* */
236 /* Purpose: This function is used to retrieve data that have been stored */
237 /* in the buffer just before a reset. */
238 /* */
239 /* Input Parameters: */
240 /* - the buffer in whom important data have been stored before the reset */
241 /* - the length of the buffer */
242 /* */
243 /* Output Parameters: */
244 /* Validation of the function execution. */
245 /* */
246 /* Note: */
247 /* None. */
248 /* */
249 /* Revision History: */
250 /* None. */
251 /* */
252 /********************************************************************************/
253 T_RV_RET dar_get_recovery_data( T_DAR_BUFFER buffer_p, UINT16 length )
254 {
255 /* Local variables */
256 UINT8 i;
257
258 if (buffer_p != NULL)
259 {
260 if(length <= DAR_RECOVERY_DATA_MAX_BUFFER_SIZE)
261 {
262 /* Retrieve data that have been stored in the global buffer */
263 for(i=0;i<length;i++)
264 {
265 buffer_p[i] = dar_recovery_buffer[i];
266 }
267 }
268
269 else
270 /* the lenth is longer than DAR_RECOVERY_DATA_MAX_BUFFER_SIZE */
271 {
272 /* So retrieve "DAR_RECOVERY_DATA_MAX_BUFFER_SIZE" data that have been stored */
273 /* in the global buffer, the other data (length -"DAR_RECOVERY_DATA_MAX_BUFFER_SIZE") */
274 /* are lost*/
275 for(i=0;i<DAR_RECOVERY_DATA_MAX_BUFFER_SIZE;i++)
276 {
277 buffer_p[i] = dar_recovery_buffer[i];
278 }
279
280 DAR_SEND_TRACE_PARAM("Bytes nb that haven't be saved due to not enough memory space ",(DAR_RECOVERY_DATA_MAX_BUFFER_SIZE-length),DAR_WARNING);
281 }
282 } /* if (buffer_p != NULL) */
283
284 return(RV_OK);
285
286 } /* dar_get_recovery_data */
287
288
289 /* **************************************************************************** */
290 /* WATCHDOG */
291 /* **************************************************************************** */
292
293 /********************************************************************************/
294 /* */
295 /* Function Name: dar_start_watchdog_timer */
296 /* */
297 /* Purpose: This function uses the timer as a general purpose timer instead */
298 /* of Watchdog. It loads the timer , starts it and then unmasks */
299 /* the interrupt. */
300 /* */
301 /* Input Parameters: */
302 /* time's interval in milliseconds before the timer expires */
303 /* */
304 /* Output Parameters: */
305 /* Validation of the function execution. */
306 /* */
307 /* Note: */
308 /* None. */
309 /* */
310 /* Revision History: */
311 /* None. */
312 /* */
313 /********************************************************************************/
314 T_RV_RET dar_start_watchdog_timer(UINT16 timer_expiration_value)
315 {
316 DAR_SEND_TRACE("DAR Watchdog timer",RV_TRACE_LEVEL_DEBUG_LOW);
317
318 /* use Watchdog timer set as a general purpose timer */
319 /* Calculate the load value thanks to the formula: */
320 /* timer_expiration_value * 1000 = Tclk * (DAR_LOAD_TIM+1)*2^(PTV+1)*/
321 /* (in Watchdog mode, the value of PTV is fixed to 7) */
322 dar_load_tim = ((timer_expiration_value * 1000)/(1.078*256))-1;
323
324 #ifndef _WINDOWS
325 /* Load "dar_load_tim" value */
326 TIMER_WriteValue(dar_load_tim);
327
328 /* Start timer with PTV = 7, no autoreload, free = 0 */
329 *(volatile UINT16*)TIMER_CNTL_REG = 0x0E80;
330
331 /* Unmask IRQ0 */
332 #if (CHIPSET == 12)
333 F_INTH_ENABLE_ONE_IT(C_INTH_WATCHDOG_IT);
334 #else
335 IQ_Unmask(IQ_WATCHDOG);
336 #endif
337 #endif
338
339 return(RV_OK);
340
341 } /* dar_start_watchdog_timer */
342
343 /********************************************************************************/
344 /* */
345 /* Function Name: dar_reload_watchdog_timer */
346 /* */
347 /* Purpose: This function is used to maintain the timer in reloading it */
348 /* periodically before it expires */
349 /* */
350 /* Input Parameters: */
351 /* None */
352 /* */
353 /* Output Parameters: */
354 /* Validation of the function execution. */
355 /* */
356 /* Note: */
357 /* None. */
358 /* */
359 /* Revision History: */
360 /* None. */
361 /* */
362 /********************************************************************************/
363 T_RV_RET dar_reload_watchdog_timer()
364 {
365 #ifndef _WINDOWS
366
367 DAR_SEND_TRACE("Reload Watchdog ",RV_TRACE_LEVEL_DEBUG_LOW);
368
369 /* Stop the timer */
370 *(volatile UINT16*)TIMER_CNTL_REG = 0x0E00;
371
372 /* Reload the timer with a different value each time */
373 if (dar_increment == TRUE)
374 {
375 TIMER_WriteValue(++dar_load_tim);
376 dar_increment = FALSE;
377 }
378 else
379 {
380 TIMER_WriteValue(--dar_load_tim);
381 dar_increment = TRUE;
382 }
383
384 /* Restart timer with PTV = 7, no autoreload, free = 0 */
385 *(volatile UINT16*)TIMER_CNTL_REG = 0x0E80;
386 #endif
387
388 return(RV_OK);
389
390 } /* dar_reload_watchdog_timer */
391
392 /********************************************************************************/
393 /* */
394 /* Function Name: dar_stop_watchdog_timer */
395 /* */
396 /* Purpose: This function stops the timer used as a general purpose timer */
397 /* instead of watchdog */
398 /* */
399 /* Input Parameters: */
400 /* None */
401 /* */
402 /* Output Parameters: */
403 /* Validation of the function execution. */
404 /* */
405 /* Note: */
406 /* None. */
407 /* */
408 /* Revision History: */
409 /* None. */
410 /* */
411 /********************************************************************************/
412 T_RV_RET dar_stop_watchdog_timer()
413 {
414 #ifndef _WINDOWS
415 /* Stop the timer */
416 *(volatile UINT16*)TIMER_CNTL_REG = 0x0E00;
417
418 /* Mask IRQ0 */
419 #if (CHIPSET == 12)
420 F_INTH_DISABLE_ONE_IT(C_INTH_WATCHDOG_IT);
421 #else
422 IQ_Mask(IQ_WATCHDOG);
423 #endif
424 #endif
425
426 return(RV_OK);
427
428 } /* dar_stop_watchdog_timer */
429
430
431 /* **************************************************************************** */
432 /* RESET */
433 /* **************************************************************************** */
434
435 /********************************************************************************/
436 /* */
437 /* Function Name: dar_reset_system */
438 /* */
439 /* Purpose: This function can be used to reset the system voluntarily */
440 /* */
441 /* Input Parameters: */
442 /* None */
443 /* */
444 /* Output Parameters: */
445 /* Validation of the function execution. */
446 /* */
447 /* Note: */
448 /* None. */
449 /* */
450 /* Revision History: */
451 /* None. */
452 /* */
453 /********************************************************************************/
454 T_RV_RET dar_reset_system(void)
455 {
456
457 /* Update the DAR recovery status */
458 dar_current_status = DAR_NORMAL_SCUTTLING;
459
460 /* Call the MMI callback function to save some parameters before reset */
461 dar_gbl_var_p->entity_dar_callback(dar_recovery_buffer,DAR_RECOVERY_DATA_MAX_BUFFER_SIZE);
462
463 /* Send a trace before the reset of the system */
464 DAR_SEND_TRACE("Voluntary reset of the system",RV_TRACE_LEVEL_DEBUG_HIGH);
465
466 dar_reset();
467
468 return(RV_OK);
469 }
470
471 /* **************************************************************************** */
472 /* DIAGNOSE */
473 /* **************************************************************************** */
474
475 /********************************************************************************/
476 /* */
477 /* Function Name: dar_diagnose_swe_filter */
478 /* */
479 /* Purpose: This function is called to configure the Diagnose filtering. */
480 /* It allows to determine what Software Entity ( dar_use_id ) */
481 /* wants to use the Diagnose and allows to indicate the level */
482 /* threshold of the diagnose messages. (Warning or Debug) */
483 /* */
484 /* Input Parameters: */
485 /* - the dar use id */
486 /* - the dar level */
487 /* */
488 /* Output Parameters: */
489 /* Validation of the function execution. */
490 /* */
491 /* */
492 /* Note: */
493 /* None */
494 /* */
495 /********************************************************************************/
496
497 T_RV_RET dar_diagnose_swe_filter ( T_RVM_USE_ID dar_use_id,
498 T_DAR_LEVEL dar_level)
499 {
500 /* Declare local variables */
501 T_RVF_MB_STATUS mb_status = RVF_GREEN;
502 T_DAR_FILTER_START *use_id_p = NULL;
503
504 /************************** dar_diagnose_swe_filter function ***************/
505
506 if (dar_gbl_var_p == NULL )
507 {
508 dar_error_trace(DAR_ENTITY_NOT_START);
509 return(RV_NOT_READY);
510 }
511
512 /* allocate the memory for the message to send */
513 mb_status = rvf_get_buf (dar_gbl_var_p->mb_dar,
514 sizeof (T_DAR_FILTER_START),
515 (T_RVF_BUFFER **) (&use_id_p));
516
517 /* If insufficient resources, then report a memory error and abort. */
518 if (mb_status == RVF_YELLOW)
519 {
520 /* deallocate the memory */
521 rvf_free_buf((T_RVF_BUFFER *)use_id_p);
522 dar_error_trace(DAR_ENTITY_NO_MEMORY);
523 return (RV_NOT_SUPPORTED);
524 }
525 else
526 if (mb_status == RVF_RED)
527 {
528 dar_error_trace(DAR_ENTITY_NO_MEMORY);
529 return (RV_MEMORY_ERR);
530 }
531
532 /* fill the message id */
533 use_id_p ->os_hdr.msg_id = DAR_FILTER_REQ;
534
535 /* fill the addr source id */
536 use_id_p->os_hdr.src_addr_id = dar_gbl_var_p->addrId;
537
538 /* fill the message parameters (group, mask and level) */
539 use_id_p->use_msg_parameter.group_nb = (dar_use_id>>16)& 0x7FFF;
540 use_id_p->use_msg_parameter.mask = (dar_use_id)&0xFFFF;
541 use_id_p->use_msg_parameter.level = dar_level;
542
543 /* send the messsage to the DAR entity */
544 rvf_send_msg (dar_gbl_var_p->addrId,
545 use_id_p);
546
547 return (RV_OK);
548
549
550 } /* dar_diagnose_swe_filter */
551
552 /********************************************************************************/
553 /* */
554 /* Function Name: dar_diagnose_write */
555 /* */
556 /* Purpose: This function is called to store diagnose data in RAM buffer */
557 /* */
558 /* */
559 /* Input Parameters: */
560 /* Pointer to the message to store */
561 /* Data Format, ( the Binary format is not supported) */
562 /* Data level, */
563 /* Data Use Id, */
564 /* */
565 /* Output Parameters: */
566 /* Validation of the diagnose execution. */
567 /* */
568 /* */
569 /* */
570 /* Revision History: */
571 /* None. */
572 /* */
573 /********************************************************************************/
574 T_RV_RET dar_diagnose_write( T_DAR_INFO *buffer_p,
575 T_DAR_FORMAT format,
576 T_DAR_LEVEL diagnose_info_level,
577 T_RVM_USE_ID dar_use_id)
578 {
579 /* Declare local variables */
580 UINT8 index =0 ; /* local index */
581
582 /* Check if the dar_use_id group_nb exists */
583 /* If the group exists... */
584 if(dar_search_group((dar_use_id>>16)& 0x7FFF,&index) == RV_OK)
585 {
586 /* Check the Dar level */
587 switch(diagnose_info_level)
588 {
589 case DAR_WARNING:
590 {
591 /* The DAR entity wants to process Warning messages */
592 /* check if the mask_warning is in the dar_filter array */
593 if (((dar_gbl_var_p ->dar_filter_array[index].mask_warning)
594 & ((dar_use_id)&0xFFFF)) !=0)
595 {
596 /* The Warning messages must be diagnosed */
597 dar_send_write_data( buffer_p, format, diagnose_info_level, dar_use_id);
598 }
599
600 else
601 {
602 /* There is no mask_warning for this use_id in the dar_filter array */
603 /* The warning messages can't be diagnosed */
604 DAR_TRACE_WARNING("The Warning messages can't be diagnosed");
605 }
606
607 break;
608 } /* case DAR_WARNING */
609
610 case DAR_DEBUG:
611 {
612 /* The DAR entity wants to process Debug messages */
613 /* Check if the mask_debug is in the dar_filter array */
614
615 if (((dar_gbl_var_p ->dar_filter_array[index].mask_debug)
616 & ((dar_use_id)&0xFFFF)) !=0)
617 {
618 /* The Debug messages must be diagnosed */
619 dar_send_write_data( buffer_p, format, diagnose_info_level, dar_use_id);
620 }
621
622 else
623 {
624 /* There is no mask_debug for this use_id in the dar_filter array */
625 /* The debug messages can't be diagnosed */
626 DAR_TRACE_WARNING("The Debug messages can't be diagnosed");
627 }
628 break;
629 } /* case DAR_DEBUG */
630
631 default:
632 {
633 /* Unknow level has been received */
634 DAR_TRACE_WARNING("A DAR unknow level has been received ");
635 break;
636 }
637 } /* switch(msg_p->use_msg_parameter.level) */
638 } /* if (search_group(dar_use_id.group_nb,&index)== RV_OK) */
639
640 else
641 {
642 /* An unknow group message has been received */
643 DAR_TRACE_WARNING("A DAR unknow group level message has been received ");
644 }
645
646 return (RV_OK);
647 } /* dar_diagnose_write */
648
649
650 /********************************************************************************/
651 /* */
652 /* Function Name: dar_diagnose_generate_emergency */
653 /* */
654 /* Purpose: This function is called to store diagnose data in RAM buffer */
655 /* when an emergency has been detected and goes to emergency */
656 /* (automatic reset) */
657 /* */
658 /* */
659 /* */
660 /* Input Parameters: */
661 /* Pointer to the message to store */
662 /* Data Format, ( the Binary format is not supported) */
663 /* Data Use Id, */
664 /* */
665 /* Output Parameters: */
666 /* Validation of the diagnose execution. */
667 /* */
668 /* */
669 /* */
670 /* Revision History: */
671 /* None. */
672 /* */
673 /********************************************************************************/
674 T_RV_RET dar_diagnose_generate_emergency( T_DAR_INFO *buffer_p,
675 T_DAR_FORMAT format,
676 T_RVM_USE_ID dar_use_id)
677 {
678 if (dar_gbl_var_p != NULL)
679 {
680 /* Process the diagnose emergency */
681 dar_process_emergency(buffer_p, format, dar_use_id, DAR_EMERGENCY_RESET|DAR_NEW_ENTRY);
682
683 return (RV_OK);
684 }
685 else
686 {
687 return (RV_NOT_READY);
688 }
689
690 } /* dar_diagnose_write */
691
692
693 /********************************************************************************/
694 /* */
695 /* Function Name: dar_diagnose_write_emergency */
696 /* */
697 /* Purpose: This function is called to store diagnose data in RAM buffer */
698 /* when an emergency has been detected. Data is written directly */
699 /* compared to dar_diagnode_write where data is sent to DAR */
700 /* via messages. Depending on the passed flags a RESET will be */
701 /* done. */
702 /* */
703 /* */
704 /* Input Parameters: */
705 /* Pointer to the message to store */
706 /* Data Format, ( the Binary format is not supported) */
707 /* Data Use Id, */
708 /* Flags */
709 /* */
710 /* Output Parameters: */
711 /* Validation of the diagnose execution. */
712 /* */
713 /* */
714 /* */
715 /* Revision History: */
716 /* None. */
717 /* */
718 /********************************************************************************/
719 T_RV_RET dar_diagnose_write_emergency( T_DAR_INFO *buffer_p,
720 T_DAR_FORMAT format,
721 T_RVM_USE_ID dar_use_id,
722 UINT32 flags)
723 {
724 if (dar_gbl_var_p != NULL)
725 {
726 /* Process the diagnose emergency */
727 dar_process_emergency(buffer_p, format, dar_use_id, flags);
728
729 return (RV_OK);
730 }
731 else
732 {
733 return (RV_NOT_READY);
734 }
735
736 } /* dar_diagnose_write_emergency */
737
738 #else
739
740 /* ************************************************ */
741 /* THE DAR ENTITY IS DISABLED */
742 /* ************************************************ */
743
744 #include "rv/rv_general.h"
745 #include "rvm/rvm_gen.h"
746 #include "rvm/rvm_priorities.h"
747 #include "rvf/rvf_target.h"
748 #include "rvf/rvf_i.h"
749 #include "dar/dar_gen.h"
750
751 T_RV_RET dar_diagnose_swe_filter ( T_RVM_USE_ID dar_use_id,
752 T_DAR_LEVEL dar_level)
753 {
754 return (RV_OK);
755
756 } /* dar_diagnose_swe_filter */
757
758
759 T_RV_RET dar_diagnose_write( T_DAR_INFO *buffer_p,
760 T_DAR_FORMAT format,
761 T_DAR_LEVEL diagnose_info_level,
762 T_RVM_USE_ID dar_use_id)
763 {
764 return (RV_OK);
765
766 } /* dar_diagnose_write */
767
768
769
770 T_RV_RET dar_diagnose_generate_emergency( T_DAR_INFO *buffer_p,
771 T_DAR_FORMAT format,
772 T_RVM_USE_ID dar_use_id)
773 {
774
775 return (RV_OK);
776
777 } /* dar_diagnose_generate_emergency */
778
779
780 T_RV_RET dar_diagnose_write_emergency( T_DAR_INFO *buffer_p,
781 T_DAR_FORMAT format,
782 T_RVM_USE_ID dar_use_id,
783 UINT32 flags)
784 {
785 return (RV_OK);
786 } /* dar_diagnose_write_emergency */
787
788
789 #endif /* #ifdef RVM_DAR_SWE */