@@ -88,8 +88,10 @@ static rtems_id wait_mounted_task_id = RTEMS_INVALID_ID;
8888
8989static rtems_status_code
9090media_listener (rtems_media_event event , rtems_media_state state ,
91- const char * src , const char * dest , void * arg )
91+ const char * src , const char * dest , const char * arg )
9292{
93+ char fdt_target [192 ] = "" ;
94+
9395 printf (
9496 "media listener: event = %s, state = %s, src = %s" ,
9597 rtems_media_event_description (event ),
@@ -102,13 +104,20 @@ media_listener(rtems_media_event event, rtems_media_state state,
102104 }
103105
104106 if (arg != NULL ) {
105- printf (", arg = %p\n" , arg );
107+ strlcpy (fdt_target , arg , 192 );
108+ size_t length = strlen (arg );
109+ if (fdt_target [length - 1 ] == '/' ) {
110+ fdt_target [length - 1 ] = '\0' ;
111+ }
112+ printf (", fdt_target = %s\n" , fdt_target );
106113 }
107114
108115 printf ("\n" );
109116
110117 if (event == RTEMS_MEDIA_EVENT_MOUNT &&
111- state == RTEMS_MEDIA_STATE_SUCCESS ) {
118+ state == RTEMS_MEDIA_STATE_SUCCESS &&
119+ dest != NULL && arg != NULL &&
120+ strcmp (dest , fdt_target ) == 0 ) {
112121 rtems_event_send (wait_mounted_task_id , EVT_MOUNTED );
113122 }
114123
@@ -168,7 +177,7 @@ grisp_init_lower_self_prio(void)
168177}
169178
170179void
171- grisp_init_sd_card (void )
180+ grisp_init_sd_card (const char * rootdir )
172181{
173182 rtems_status_code sc ;
174183
@@ -180,7 +189,7 @@ grisp_init_sd_card(void)
180189 sc = rtems_media_initialize ();
181190 assert (sc == RTEMS_SUCCESSFUL );
182191
183- sc = rtems_media_listener_add (media_listener , NULL );
192+ sc = rtems_media_listener_add (media_listener , rootdir );
184193 assert (sc == RTEMS_SUCCESSFUL );
185194
186195 sc = rtems_media_server_initialize (
0 commit comments