55 #define OMAPI_TYPED_DATA_NOBUFFER_LEN (sizeof (int) + \
56 sizeof (omapi_datatype_t) + \
58 unsigned char value [1];
60 #define OMAPI_TYPED_DATA_OBJECT_LEN (sizeof (int) + \
61 sizeof (omapi_datatype_t) + \
62 sizeof (omapi_object_t *))
64 #define OMAPI_TYPED_DATA_REF_LEN (sizeof (int) + \
65 sizeof (omapi_datatype_t) + \
69 isc_result_t (*reference) (
void *,
70 void *,
const char *,
int);
71 isc_result_t (*dereference) (
void *,
74 #define OMAPI_TYPED_DATA_INT_LEN (sizeof (int) + \
75 sizeof (omapi_datatype_t) + \
84 #define OMAPI_DATA_STRING_EMPTY_SIZE (2 * sizeof (int))
85 unsigned char value [1];
104 isc_result_t (*
destroy) (omapi_object_t *,
const char *,
int);
106 const char *, va_list);
108 omapi_object_t *, omapi_object_t *);
109 isc_result_t (*
lookup) (omapi_object_t **, omapi_object_t *,
111 isc_result_t (*
create) (omapi_object_t **, omapi_object_t *);
112 isc_result_t (*
remove) (omapi_object_t *, omapi_object_t *);
113 isc_result_t (*
freer) (omapi_object_t *,
const char *,
int);
121 #define OMAPI_OBJECT_PREAMBLE \
122 omapi_object_type_t *type; \
124 omapi_handle_t handle; \
125 omapi_object_t *outer, *inner
133 #define OMAPI_PROTOCOL_PORT 7911
138 unsigned char address [16];
156 #define OMAPI_CREATE 1
157 #define OMAPI_UPDATE 2
159 #define OMAPI_NOTIFY_PROTOCOL 8
161 #define OMAPI_OBJECT_ALLOC(name, stype, type) \
162 isc_result_t name##_allocate (stype **p, const char *file, int line) \
164 return omapi_object_allocate ((omapi_object_t **)p, \
165 type, 0, file, line); \
168 isc_result_t name##_reference (stype **pptr, stype *ptr, \
169 const char *file, int line) \
171 return omapi_object_reference ((omapi_object_t **)pptr, \
172 (omapi_object_t *)ptr, file, line); \
175 isc_result_t name##_dereference (stype **ptr, const char *file, int line) \
177 return omapi_object_dereference ((omapi_object_t **)ptr, file, line); \
180 #define OMAPI_OBJECT_ALLOC_DECL(name, stype, type) \
181 isc_result_t name##_allocate (stype **p, const char *file, int line); \
182 isc_result_t name##_reference (stype **pptr, stype *ptr, \
183 const char *file, int line); \
184 isc_result_t name##_dereference (stype **ptr, const char *file, int line);
198 #define OMAPI_ARRAY_TYPE(name, stype) \
199 isc_result_t name##_array_allocate (omapi_array_t **p, \
200 const char *file, int line) \
202 return (omapi_array_allocate \
204 (omapi_array_ref_t)name##_reference, \
205 (omapi_array_deref_t)name##_dereference, \
209 isc_result_t name##_array_free (omapi_array_t **p, \
210 const char *file, int line) \
212 return omapi_array_free (p, file, line); \
215 isc_result_t name##_array_extend (omapi_array_t *pptr, stype *ptr, int *index,\
216 const char *file, int line) \
218 return omapi_array_extend (pptr, (char *)ptr, index, file, line); \
221 isc_result_t name##_array_set (omapi_array_t *pptr, stype *ptr, int index, \
222 const char *file, int line) \
224 return omapi_array_set (pptr, (char *)ptr, index, file, line); \
227 isc_result_t name##_array_lookup (stype **ptr, omapi_array_t *pptr, \
228 int index, const char *file, int line) \
230 return omapi_array_lookup ((char **)ptr, pptr, index, file, line); \
233 #define OMAPI_ARRAY_TYPE_DECL(name, stype) \
234 isc_result_t name##_array_allocate (omapi_array_t **, const char *, int); \
235 isc_result_t name##_array_free (omapi_array_t **, const char *, int); \
236 isc_result_t name##_array_extend (omapi_array_t *, stype *, int *, \
237 const char *, int); \
238 isc_result_t name##_array_set (omapi_array_t *, \
239 stype *, int, const char *, int); \
240 isc_result_t name##_array_lookup (stype **, \
241 omapi_array_t *, int, const char *, int)
243 #define omapi_array_foreach_begin(array, stype, var) \
245 int omapi_array_foreach_index; \
246 stype *var = (stype *)0; \
247 for (omapi_array_foreach_index = 0; \
249 omapi_array_foreach_index < (array) -> count; \
250 omapi_array_foreach_index++) { \
251 if ((array) -> data [omapi_array_foreach_index]) { \
254 (array) -> data [omapi_array_foreach_index],\
257 #define omapi_array_foreach_end(array, stype, var) \
258 (*(array) -> deref) ((char **)&var, MDL); \
299 const char *, va_list);
311 const char *, va_list);
316 isc_result_t,
unsigned,
const char *);
341 const char *, va_list);
372 const char *, va_list);
404 const char *, va_list);
418 const char *, va_list);
433 const char *, va_list);
477 omapi_data_string_t *,
482 omapi_data_string_t *,
484 isc_result_t (*) (omapi_object_t *,
486 isc_result_t (*) (omapi_object_t *,
489 isc_result_t (*) (omapi_object_t *,
492 isc_result_t (*) (omapi_object_t **,
495 isc_result_t (*) (omapi_object_t **,
497 isc_result_t (*) (omapi_object_t *,
499 isc_result_t (*) (omapi_object_t *,
501 isc_result_t (*) (omapi_object_t **,
503 isc_result_t (*) (
size_t),
size_t,
504 isc_result_t (*) (omapi_object_t *,
507 isc_result_t
omapi_signal (omapi_object_t *, const
char *, ...);
510 omapi_data_string_t *,
511 omapi_typed_data_t *);
513 const
char *, omapi_typed_data_t *);
519 const
char *, omapi_object_t *);
521 const
char *, const
char *);
523 omapi_data_string_t *,
526 const
char *, omapi_value_t **);
531 omapi_object_type_t *);
539 omapi_typed_data_t *, const
char *,
int);
541 const
unsigned char *,
542 unsigned, const
char *,
int);
544 int, const
char *,
int);
546 unsigned int, const
char *,
int);
548 omapi_object_t *, const
char *,
int);
550 omapi_object_t *, const
char *,
int);
552 const
char *, const
char *,
int);
559 void *
dmalloc (
unsigned, const
char *,
int);
560 void dfree (
void *, const
char *,
int);
561 #if defined (DEBUG_MEMORY_LEAKAGE) || defined (DEBUG_MALLOC_POOL) || \
562 defined (DEBUG_MEMORY_LEAKAGE_ON_EXIT)
564 void dmalloc_dump_outstanding (
void);
566 #define dmalloc_reuse(x,y,l,z)
568 #define MDL __FILE__, __LINE__
569 #if defined (DEBUG_RC_HISTORY)
570 void dump_rc_history (
void *);
571 void rc_history_next (
int);
575 omapi_object_type_t *,
576 size_t,
const char *,
int);
578 omapi_object_type_t *,
579 size_t,
size_t,
const char *,
int);
581 omapi_object_t *,
const char *,
int);
586 omapi_typed_data_t *,
591 unsigned,
const char *,
int);
593 omapi_data_string_t *,
599 omapi_value_t *,
const char *,
int);
isc_result_t omapi_reregister_io_object(omapi_object_t *, int(*)(omapi_object_t *), int(*)(omapi_object_t *), isc_result_t(*)(omapi_object_t *), isc_result_t(*)(omapi_object_t *), isc_result_t(*)(omapi_object_t *))
isc_result_t omapi_typed_data_new(const char *, int, omapi_typed_data_t **, omapi_datatype_t,...)
isc_result_t omapi_set_string_value(omapi_object_t *, omapi_object_t *, const char *, const char *)
isc_result_t omapi_protocol_listen(omapi_object_t *, unsigned, int)
isc_result_t omapi_connection_reader(omapi_object_t *)
omapi_object_type_t * omapi_type_connection
isc_result_t omapi_register_io_object(omapi_object_t *, int(*)(omapi_object_t *), int(*)(omapi_object_t *), isc_result_t(*)(omapi_object_t *), isc_result_t(*)(omapi_object_t *), isc_result_t(*)(omapi_object_t *))
isc_result_t omapi_value_reference(omapi_value_t **, omapi_value_t *, const char *, int)
isc_result_t omapi_make_int_value(omapi_value_t **, omapi_data_string_t *, int, const char *, int)
isc_result_t omapi_message_stuff_values(omapi_object_t *, omapi_object_t *, omapi_object_t *)
isc_result_t omapi_generic_clear_flags(omapi_object_t *)
isc_result_t omapi_message_new(omapi_object_t **, const char *, int)
isc_result_t omapi_connection_put_handle(omapi_object_t *c, omapi_object_t *h)
isc_result_t omapi_protocol_listener_stuff(omapi_object_t *, omapi_object_t *, omapi_object_t *)
isc_result_t omapi_object_reference(omapi_object_t **, omapi_object_t *, const char *, int)
isc_result_t omapi_io_signal_handler(omapi_object_t *, const char *, va_list)
isc_result_t omapi_data_string_dereference(omapi_data_string_t **, const char *, int)
isc_result_t omapi_array_set(omapi_array_t *, void *, int, const char *, int)
isc_result_t omapi_message_register(omapi_object_t *)
struct __omapi_object_type_t * next
void * dmalloc(unsigned, const char *, int)
isc_result_t(* initialize)(omapi_object_t *, const char *, int)
isc_result_t omapi_protocol_get_value(omapi_object_t *, omapi_object_t *, omapi_data_string_t *, omapi_value_t **)
isc_result_t omapi_connection_destroy(omapi_object_t *, const char *, int)
isc_result_t(* get_value)(omapi_object_t *, omapi_object_t *, omapi_data_string_t *, omapi_value_t **)
isc_result_t omapi_connection_put_named_uint32(omapi_object_t *, const char *, u_int32_t)
isc_result_t(* lookup)(omapi_object_t **, omapi_object_t *, omapi_object_t *)
isc_result_t omapi_auth_key_get_value(omapi_object_t *, omapi_object_t *, omapi_data_string_t *, omapi_value_t **)
isc_result_t omapi_dispatch(struct timeval *)
isc_result_t omapi_message_signal_handler(omapi_object_t *, const char *, va_list)
omapi_typed_data_t * value
int omapi_data_string_cmp(omapi_data_string_t *, omapi_data_string_t *)
isc_result_t omapi_set_value(omapi_object_t *, omapi_object_t *, omapi_data_string_t *, omapi_typed_data_t *)
void omapi_type_relinquish(void)
isc_result_t omapi_signal_in(omapi_object_t *, const char *,...)
int omapi_td_strcasecmp(omapi_typed_data_t *, const char *)
isc_result_t omapi_auth_key_stuff_values(omapi_object_t *, omapi_object_t *, omapi_object_t *)
isc_result_t omapi_auth_key_lookup_name(omapi_auth_key_t **, const char *)
int omapi_listener_readfd(omapi_object_t *)
isc_result_t omapi_message_set_value(omapi_object_t *, omapi_object_t *, omapi_data_string_t *, omapi_typed_data_t *)
isc_result_t omapi_array_lookup(char **, omapi_array_t *, int, const char *, int)
isc_result_t omapi_protocol_listener_destroy(omapi_object_t *, const char *, int)
isc_result_t omapi_set_object_value(omapi_object_t *, omapi_object_t *, const char *, omapi_object_t *)
isc_result_t(* create)(omapi_object_t **, omapi_object_t *)
isc_result_t omapi_generic_get_value(omapi_object_t *, omapi_object_t *, omapi_data_string_t *, omapi_value_t **)
isc_result_t omapi_connection_reaper(omapi_object_t *)
isc_result_t omapi_protocol_send_status(omapi_object_t *, omapi_object_t *, isc_result_t, unsigned, const char *)
isc_result_t omapi_data_string_reference(omapi_data_string_t **, omapi_data_string_t *, const char *, int)
isc_result_t omapi_protocol_ready(omapi_object_t *)
isc_result_t omapi_protocol_stuff_values(omapi_object_t *, omapi_object_t *, omapi_object_t *)
isc_result_t omapi_message_unregister(omapi_object_t *)
isc_result_t omapi_get_value(omapi_object_t *, omapi_object_t *, omapi_data_string_t *, omapi_value_t **)
isc_result_t(* destroy)(omapi_object_t *, const char *, int)
isc_result_t omapi_value_new(omapi_value_t **, const char *, int)
isc_result_t omapi_listen_addr(omapi_object_t *, omapi_addr_t *, int)
void omapi_print_dmalloc_usage_by_caller(void)
isc_result_t(* omapi_array_deref_t)(char **, const char *, int)
isc_result_t omapi_protocol_add_auth(omapi_object_t *, omapi_object_t *, omapi_handle_t)
omapi_object_type_t * omapi_type_remote
isc_result_t omapi_object_initialize(omapi_object_t *, omapi_object_type_t *, size_t, size_t, const char *, int)
isc_result_t omapi_io_state_foreach(isc_result_t(*func)(omapi_object_t *, void *), void *p)
calls a given function on every object
isc_result_t omapi_make_handle_value(omapi_value_t **, omapi_data_string_t *, omapi_object_t *, const char *, int)
int omapi_connection_writefd(omapi_object_t *)
isc_result_t omapi_connection_output_auth_length(omapi_object_t *, unsigned *)
isc_result_t omapi_message_get_value(omapi_object_t *, omapi_object_t *, omapi_data_string_t *, omapi_value_t **)
isc_result_t(* signal_handler)(omapi_object_t *, const char *, va_list)
omapi_object_type_t * omapi_type_listener
omapi_object_type_t * omapi_type_protocol
isc_result_t omapi_connection_write_typed_data(omapi_object_t *, omapi_typed_data_t *)
isc_result_t omapi_make_uint_value(omapi_value_t **, omapi_data_string_t *, unsigned int, const char *, int)
struct __omapi_object_type_t omapi_object_type_t
isc_result_t omapi_get_value_str(omapi_object_t *, omapi_object_t *, const char *, omapi_value_t **)
omapi_object_type_t * omapi_object_types
isc_result_t omapi_connection_set_value(omapi_object_t *, omapi_object_t *, omapi_data_string_t *, omapi_typed_data_t *)
isc_result_t omapi_protocol_listener_signal(omapi_object_t *, const char *, va_list)
isc_result_t(* allocator)(omapi_object_t **, const char *, int)
isc_result_t omapi_protocol_send_open(omapi_object_t *, omapi_object_t *, const char *, omapi_object_t *, unsigned)
isc_result_t omapi_listener_stuff_values(omapi_object_t *, omapi_object_t *, omapi_object_t *)
isc_result_t omapi_stuff_values(omapi_object_t *, omapi_object_t *, omapi_object_t *)
isc_result_t omapi_addr_list_reference(omapi_addr_list_t **, omapi_addr_list_t *, const char *, int)
isc_result_t omapi_set_boolean_value(omapi_object_t *, omapi_object_t *, const char *, int)
isc_result_t omapi_object_create(omapi_object_t **, omapi_object_t *, omapi_object_type_t *)
omapi_data_string_t * key
isc_result_t omapi_connection_writer(omapi_object_t *)
isc_result_t omapi_listener_destroy(omapi_object_t *, const char *, int)
isc_result_t omapi_connection_signal_handler(omapi_object_t *, const char *, va_list)
isc_result_t omapi_array_allocate(omapi_array_t **, omapi_array_ref_t, omapi_array_deref_t, const char *, int)
isc_result_t omapi_waiter_signal_handler(omapi_object_t *, const char *, va_list)
isc_result_t omapi_object_dereference(omapi_object_t **, const char *, int)
isc_result_t omapi_listener_get_value(omapi_object_t *, omapi_object_t *, omapi_data_string_t *, omapi_value_t **)
isc_result_t omapi_connection_stuff_values(omapi_object_t *, omapi_object_t *, omapi_object_t *)
isc_result_t omapi_signal(omapi_object_t *, const char *,...)
isc_result_t omapi_set_value_str(omapi_object_t *, omapi_object_t *, const char *, omapi_typed_data_t *)
isc_result_t omapi_generic_new(omapi_object_t **, const char *, int)
omapi_object_type_t * omapi_type_protocol_listener
isc_result_t omapi_protocol_accept(omapi_object_t *)
isc_result_t omapi_message_destroy(omapi_object_t *, const char *, int)
isc_result_t omapi_protocol_listener_set_value(omapi_object_t *, omapi_object_t *, omapi_data_string_t *, omapi_typed_data_t *)
isc_result_t omapi_get_int_value(unsigned long *, omapi_typed_data_t *)
void dfree(void *, const char *, int)
isc_result_t omapi_make_value(omapi_value_t **, omapi_data_string_t *, omapi_typed_data_t *, const char *, int)
omapi_array_deref_t deref
struct auth_key omapi_auth_key_t
omapi_data_string_t * name
isc_result_t omapi_handle_td_lookup(omapi_object_t **, omapi_typed_data_t *)
isc_result_t omapi_protocol_send_message(omapi_object_t *, omapi_object_t *, omapi_object_t *, omapi_object_t *)
isc_boolean_t omapi_protocol_authenticated(omapi_object_t *)
isc_result_t omapi_addr_list_dereference(omapi_addr_list_t **, const char *, int)
isc_result_t omapi_protocol_destroy(omapi_object_t *, const char *, int)
isc_result_t omapi_listener_configure_security(omapi_object_t *, isc_result_t(*)(omapi_object_t *, omapi_addr_t *))
isc_result_t omapi_generic_set_value(omapi_object_t *, omapi_object_t *, omapi_data_string_t *, omapi_typed_data_t *)
isc_result_t(* sizer)(size_t)
isc_result_t omapi_protocol_connect(omapi_object_t *, const char *, unsigned, omapi_object_t *)
isc_result_t omapi_listener_accept(omapi_object_t *)
isc_result_t omapi_auth_key_lookup(omapi_object_t **, omapi_object_t *, omapi_object_t *)
isc_result_t omapi_object_handle(omapi_handle_t *, omapi_object_t *)
isc_result_t omapi_protocol_signal_handler(omapi_object_t *, const char *, va_list)
isc_result_t omapi_io_stuff_values(omapi_object_t *, omapi_object_t *, omapi_object_t *)
isc_result_t omapi_connection_connect(omapi_object_t *)
isc_result_t omapi_listener_set_value(omapi_object_t *, omapi_object_t *, omapi_data_string_t *, omapi_typed_data_t *)
isc_result_t(* stuff_values)(omapi_object_t *, omapi_object_t *, omapi_object_t *)
isc_result_t omapi_connection_put_string(omapi_object_t *, const char *)
isc_result_t omapi_accept(omapi_object_t *)
isc_result_t omapi_connect(omapi_object_t *, const char *, unsigned)
isc_result_t omapi_protocol_set_value(omapi_object_t *, omapi_object_t *, omapi_data_string_t *, omapi_typed_data_t *)
isc_result_t omapi_typed_data_reference(omapi_typed_data_t **, omapi_typed_data_t *, const char *, int)
isc_result_t omapi_generic_stuff_values(omapi_object_t *, omapi_object_t *, omapi_object_t *)
isc_result_t omapi_handle_lookup(omapi_object_t **, omapi_handle_t)
unsigned int omapi_handle_t
isc_result_t omapi_auth_key_enter(omapi_auth_key_t *)
isc_result_t omapi_listen(omapi_object_t *, unsigned, int)
isc_result_t omapi_value_dereference(omapi_value_t **, const char *, int)
isc_result_t omapi_listener_signal_handler(omapi_object_t *, const char *, va_list)
isc_result_t omapi_protocol_listener_get_value(omapi_object_t *, omapi_object_t *, omapi_data_string_t *, omapi_value_t **)
isc_result_t omapi_object_type_register(omapi_object_type_t **, const char *, isc_result_t(*)(omapi_object_t *, omapi_object_t *, omapi_data_string_t *, omapi_typed_data_t *), isc_result_t(*)(omapi_object_t *, omapi_object_t *, omapi_data_string_t *, omapi_value_t **), isc_result_t(*)(omapi_object_t *, const char *, int), isc_result_t(*)(omapi_object_t *, const char *, va_list), isc_result_t(*)(omapi_object_t *, omapi_object_t *, omapi_object_t *), isc_result_t(*)(omapi_object_t **, omapi_object_t *, omapi_object_t *), isc_result_t(*)(omapi_object_t **, omapi_object_t *), isc_result_t(*)(omapi_object_t *, omapi_object_t *), isc_result_t(*)(omapi_object_t *, const char *, int), isc_result_t(*)(omapi_object_t **, const char *, int), isc_result_t(*)(size_t), size_t, isc_result_t(*)(omapi_object_t *, const char *, int), int)
isc_result_t omapi_message_process(omapi_object_t *, omapi_object_t *)
isc_result_t omapi_generic_signal_handler(omapi_object_t *, const char *, va_list)
#define OMAPI_ARRAY_TYPE_DECL(name, stype)
isc_result_t omapi_protocol_send_intro(omapi_object_t *, unsigned, unsigned)
omapi_object_type_t * omapi_type_generic
isc_result_t omapi_wait_for_completion(omapi_object_t *, struct timeval *)
int omapi_td_strcmp(omapi_typed_data_t *, const char *)
isc_result_t omapi_object_allocate(omapi_object_t **, omapi_object_type_t *, size_t, const char *, int)
int omapi_ds_strcmp(omapi_data_string_t *, const char *)
isc_result_t omapi_unregister_io_object(omapi_object_t *)
omapi_object_type_t * omapi_type_io_object
#define dmalloc_reuse(x, y, l, z)
isc_result_t omapi_data_string_new(omapi_data_string_t **, unsigned, const char *, int)
isc_result_t omapi_protocol_configure_security(omapi_object_t *, isc_result_t(*)(omapi_object_t *, omapi_addr_t *), isc_result_t(*)(omapi_object_t *, omapi_auth_key_t *))
#define OMAPI_OBJECT_ALLOC_DECL(name, stype, type)
isc_result_t omapi_protocol_lookup_auth(omapi_object_t **, omapi_object_t *, omapi_handle_t)
isc_result_t omapi_protocol_send_update(omapi_object_t *, omapi_object_t *, unsigned, omapi_object_t *)
isc_result_t omapi_one_dispatch(omapi_object_t *, struct timeval *)
omapi_object_type_t * omapi_type_message
isc_result_t omapi_auth_key_destroy(omapi_object_t *, const char *, int)
isc_result_t omapi_io_destroy(omapi_object_t *, const char *, int)
isc_result_t(* omapi_array_ref_t)(char **, char *, const char *, int)
isc_result_t omapi_connect_list(omapi_object_t *, omapi_addr_list_t *, omapi_addr_t *)
isc_result_t omapi_io_set_value(omapi_object_t *, omapi_object_t *, omapi_data_string_t *, omapi_typed_data_t *)
isc_result_t omapi_make_const_value(omapi_value_t **, omapi_data_string_t *, const unsigned char *, unsigned, const char *, int)
isc_result_t omapi_set_int_value(omapi_object_t *, omapi_object_t *, const char *, int)
isc_result_t omapi_array_extend(omapi_array_t *, char *, int *, const char *, int)
isc_result_t omapi_connection_put_name(omapi_object_t *, const char *)
isc_result_t omapi_disconnect(omapi_object_t *, int)
isc_result_t(* freer)(omapi_object_t *, const char *, int)
isc_result_t omapi_io_get_value(omapi_object_t *, omapi_object_t *, omapi_data_string_t *, omapi_value_t **)
isc_result_t omapi_connection_get_value(omapi_object_t *, omapi_object_t *, omapi_data_string_t *, omapi_value_t **)
omapi_object_type_t * omapi_type_waiter
isc_result_t(* set_value)(omapi_object_t *, omapi_object_t *, omapi_data_string_t *, omapi_typed_data_t *)
omapi_object_type_t * omapi_type_auth_key
isc_result_t omapi_typed_data_dereference(omapi_typed_data_t **, const char *, int)
isc_result_t omapi_object_update(omapi_object_t *, omapi_object_t *, omapi_object_t *, omapi_handle_t)
isc_result_t omapi_generic_destroy(omapi_object_t *, const char *, int)
isc_result_t omapi_make_string_value(omapi_value_t **, omapi_data_string_t *, const char *, const char *, int)
isc_result_t omapi_addr_list_new(omapi_addr_list_t **, unsigned, const char *, int)
isc_result_t omapi_array_free(omapi_array_t **, const char *, int)
isc_result_t omapi_init(void)
int omapi_connection_readfd(omapi_object_t *)
isc_result_t omapi_make_object_value(omapi_value_t **, omapi_data_string_t *, omapi_object_t *, const char *, int)