1 #include <stdio.h>
2 #include "erl_driver.h"
3 
4 typedef struct _erl_drv_data FailureDrvData;
5 
6 static FailureDrvData *failure_drv_start(ErlDrvPort, char *);
7 static void failure_drv_stop(FailureDrvData *);
8 static void failure_drv_output(ErlDrvData, char *, ErlDrvSizeT);
9 static void failure_drv_finish(void);
10 
11 static ErlDrvEntry failure_drv_entry = {
12     NULL, /* init */
13     failure_drv_start,
14     failure_drv_stop,
15     failure_drv_output,
16     NULL, /* ready_input */
17     NULL, /* ready_output */
18     "failure_drv",
19     NULL, /* finish */
20     NULL, /* handle */
21     NULL, /* control */
22     NULL, /* timeout */
23     NULL, /* outputv */
24     NULL, /* ready_async */
25     NULL,
26     NULL,
27     NULL,
28     ERL_DRV_EXTENDED_MARKER,
29     ERL_DRV_EXTENDED_MAJOR_VERSION,
30     ERL_DRV_EXTENDED_MINOR_VERSION,
31     0,
32     NULL,
33     NULL,
34     NULL,
35 };
36 
37 
38 
39 /* -------------------------------------------------------------------------
40 ** Entry functions
41 **/
42 
DRIVER_INIT(failure_drv)43 DRIVER_INIT(failure_drv)
44 {
45     return &failure_drv_entry;
46 }
47 
failure_drv_start(ErlDrvPort port,char * command)48 static FailureDrvData *failure_drv_start(ErlDrvPort port, char *command) {
49     void *void_ptr;
50 
51     return void_ptr = port;
52 }
53 
failure_drv_stop(FailureDrvData * data_p)54 static void failure_drv_stop(FailureDrvData *data_p) {
55 }
56 
failure_drv_output(ErlDrvData drv_data,char * buf,ErlDrvSizeT len)57 static void failure_drv_output(ErlDrvData drv_data, char *buf, ErlDrvSizeT len) {
58     FailureDrvData *data_p = (FailureDrvData *) drv_data;
59     void *void_ptr;
60     ErlDrvPort port = void_ptr = data_p;
61 
62     driver_failure_atom(port, "driver_failed");
63 }
64 
failure_drv_finish()65 static void failure_drv_finish() {
66 }
67