Graceful exiting for USBD
This commit is contained in:
parent
7df0836d35
commit
cbaad3ed4b
1 changed files with 22 additions and 1 deletions
|
@ -18,12 +18,14 @@
|
||||||
* Local declarations *
|
* Local declarations *
|
||||||
*===========================================================================*/
|
*===========================================================================*/
|
||||||
static int usbd_sef_handler(int, sef_init_info_t *);
|
static int usbd_sef_handler(int, sef_init_info_t *);
|
||||||
|
static void usbd_signal_handler(int);
|
||||||
static int usbd_start(void);
|
static int usbd_start(void);
|
||||||
static void usbd_init(void);
|
static void usbd_init(void);
|
||||||
static void usbd_server_thread(void *);
|
static void usbd_server_thread(void *);
|
||||||
|
|
||||||
/* TODO: No headers for these... */
|
/* TODO: No headers for these... */
|
||||||
extern void ddekit_minix_wait_exit(void); /* dde.c */
|
extern void ddekit_minix_wait_exit(void); /* dde.c */
|
||||||
|
extern void ddekit_shutdown(void); /* dde.c */
|
||||||
|
|
||||||
|
|
||||||
/*===========================================================================*
|
/*===========================================================================*
|
||||||
|
@ -94,6 +96,24 @@ usbd_sef_handler(int type, sef_init_info_t * UNUSED(info))
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/*===========================================================================*
|
||||||
|
* usbd_signal_handler *
|
||||||
|
*===========================================================================*/
|
||||||
|
static void
|
||||||
|
usbd_signal_handler(int UNUSED(signo))
|
||||||
|
{
|
||||||
|
DEBUG_DUMP;
|
||||||
|
|
||||||
|
USB_MSG("Signal received, exiting USBD...");
|
||||||
|
|
||||||
|
/* Try graceful DDEKit exit */
|
||||||
|
ddekit_shutdown();
|
||||||
|
|
||||||
|
/* Unreachable, when ddekit_shutdown works correctly */
|
||||||
|
USB_ASSERT(0, "Calling ddekit_shutdown failed!");
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
/*===========================================================================*
|
/*===========================================================================*
|
||||||
* usbd_start *
|
* usbd_start *
|
||||||
*===========================================================================*/
|
*===========================================================================*/
|
||||||
|
@ -133,6 +153,7 @@ usbd_init(void)
|
||||||
sef_setcb_init_fresh(usbd_sef_handler);
|
sef_setcb_init_fresh(usbd_sef_handler);
|
||||||
sef_setcb_init_lu(usbd_sef_handler);
|
sef_setcb_init_lu(usbd_sef_handler);
|
||||||
sef_setcb_init_restart(usbd_sef_handler);
|
sef_setcb_init_restart(usbd_sef_handler);
|
||||||
|
sef_setcb_signal_handler(usbd_signal_handler);
|
||||||
|
|
||||||
/* Initialize DDEkit (involves sef_startup()) */
|
/* Initialize DDEkit (involves sef_startup()) */
|
||||||
ddekit_init();
|
ddekit_init();
|
||||||
|
|
Loading…
Reference in a new issue