1
10
13
14
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
121
122
123
124
125
...
...
...
#define UX_SOURCE_CODE
#include "ux_api.h"
#include "ux_host_stack.h"
...
...
UINT _ux_host_stack_class_unregister(UINT (*class_entry_function)(struct UX_HOST_CLASS_COMMAND_STRUCT *))
{
UX_HOST_CLASS *class_inst;
UX_HOST_CLASS_COMMAND class_command;
#if UX_MAX_CLASS_DRIVER > 1
ULONG class_index;
#endif
UX_TRACE_IN_LINE_INSERT(UX_TRACE_HOST_STACK_CLASS_UNREGISTER, class_entry_function, 0, 0, 0, UX_TRACE_HOST_STACK_EVENTS, 0, 0)
class_inst = _ux_system_host -> ux_system_host_class_array;
#if UX_MAX_CLASS_DRIVER > 1
for (class_index = 0; class_index < _ux_system_host -> ux_system_host_max_class; class_index++)
{
#endif
if (class_inst -> ux_host_class_entry_function == class_entry_function)
{
class_command.ux_host_class_command_request = UX_HOST_CLASS_COMMAND_DESTROY;
class_command.ux_host_class_command_class_ptr = (VOID *)class_inst;
class_inst -> ux_host_class_entry_function(&class_command);
class_inst -> ux_host_class_entry_function = UX_NULL;
class_inst -> ux_host_class_status = UX_UNUSED;
return(UX_SUCCESS);
}if (class_inst -> ux_host_class_entry_function == class_entry_function) { ... }
#if UX_MAX_CLASS_DRIVER > 1
class_inst ++;
}/* ... */
for (class_index = 0; class_index < _ux_system_host -> ux_system_host_max_class; class_index++) { ... }#endif
return(UX_NO_CLASS_MATCH);
}{ ... }