summaryrefslogtreecommitdiffstats
path: root/avahi-compat-howl/include/salt/salt.h
diff options
context:
space:
mode:
Diffstat (limited to 'avahi-compat-howl/include/salt/salt.h')
-rw-r--r--avahi-compat-howl/include/salt/salt.h215
1 files changed, 215 insertions, 0 deletions
diff --git a/avahi-compat-howl/include/salt/salt.h b/avahi-compat-howl/include/salt/salt.h
new file mode 100644
index 0000000..88ac0d9
--- /dev/null
+++ b/avahi-compat-howl/include/salt/salt.h
@@ -0,0 +1,215 @@
+#ifndef _sw_salt_h
+#define _sw_salt_h
+
+/*
+ * Copyright 2003, 2004 Porchdog Software, Inc. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without modification,
+ * are permitted provided that the following conditions are met:
+ *
+ * 1. Redistributions of source code must retain the above copyright notice,
+ * this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright notice,
+ * this list of conditions and the following disclaimer in the documentation
+ * and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY PORCHDOG SOFTWARE ``AS IS'' AND ANY
+ * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+ * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
+ * IN NO EVENT SHALL THE HOWL PROJECT OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT,
+ * INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
+ * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+ * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY
+ * OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE
+ * OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
+ * OF THE POSSIBILITY OF SUCH DAMAGE.
+ *
+ * The views and conclusions contained in the software and documentation are those
+ * of the authors and should not be interpreted as representing official policies,
+ * either expressed or implied, of Porchdog Software, Inc.
+ */
+
+#include <salt/platform.h>
+#include <salt/time.h>
+
+
+#ifdef __cplusplus
+extern "C"
+{
+#endif
+
+
+typedef enum _sw_socket_event
+{
+ SW_SOCKET_READ = (1 << 0),
+ SW_SOCKET_WRITE = (1 << 1),
+ SW_SOCKET_OOB = (1 << 2)
+} sw_socket_event;
+
+
+struct _sw_salt;
+typedef struct _sw_salt * sw_salt;
+struct _sw_socket;
+struct _sw_timer;
+struct _sw_network_interface;
+struct _sw_signal;
+
+typedef sw_opaque sw_socket_handler;
+typedef sw_result
+(HOWL_API *sw_socket_handler_func)(
+ sw_socket_handler handler,
+ sw_salt salt,
+ struct _sw_socket * socket,
+ sw_socket_event events,
+ sw_opaque extra);
+
+
+typedef sw_opaque sw_timer_handler;
+typedef sw_result
+(HOWL_API *sw_timer_handler_func)(
+ sw_timer_handler handler,
+ sw_salt salt,
+ struct _sw_timer * timer,
+ sw_time timeout,
+ sw_opaque extra);
+
+typedef sw_opaque sw_network_interface_handler;
+typedef sw_result
+(HOWL_API *sw_network_interface_handler_func)(
+ sw_network_interface_handler handler,
+ sw_salt salt,
+ struct _sw_network_interface * netif,
+ sw_opaque extra);
+
+typedef sw_opaque sw_signal_handler;
+typedef sw_result
+(HOWL_API *sw_signal_handler_func)(
+ sw_signal_handler handler,
+ sw_salt salt,
+ struct _sw_signal * signal,
+ sw_opaque extra);
+
+
+sw_result HOWL_API
+sw_salt_init(
+ sw_salt * self,
+ int argc,
+ char ** argv);
+
+
+sw_result HOWL_API
+sw_salt_fina(
+ sw_salt self);
+
+
+sw_result HOWL_API
+sw_salt_register_socket(
+ sw_salt self,
+ struct _sw_socket * socket,
+ sw_socket_event events,
+ sw_socket_handler handler,
+ sw_socket_handler_func func,
+ sw_opaque extra);
+
+
+sw_result HOWL_API
+sw_salt_unregister_socket(
+ sw_salt self,
+ struct _sw_socket * socket);
+
+
+sw_result HOWL_API
+sw_salt_register_timer(
+ sw_salt self,
+ struct _sw_timer * timer,
+ sw_time timeout,
+ sw_timer_handler handler,
+ sw_timer_handler_func func,
+ sw_opaque extra);
+
+
+sw_result HOWL_API
+sw_salt_unregister_timer(
+ sw_salt self,
+ struct _sw_timer * timer);
+
+
+sw_result HOWL_API
+sw_salt_register_network_interface(
+ sw_salt self,
+ struct _sw_network_interface * netif,
+ sw_network_interface_handler handler,
+ sw_network_interface_handler_func func,
+ sw_opaque extra);
+
+
+sw_result HOWL_API
+sw_salt_unregister_network_interface_handler(
+ sw_salt self);
+
+
+sw_result HOWL_API
+sw_salt_register_signal(
+ sw_salt self,
+ struct _sw_signal * signal,
+ sw_signal_handler handler,
+ sw_signal_handler_func func,
+ sw_opaque extra);
+
+
+sw_result HOWL_API
+sw_salt_unregister_signal(
+ sw_salt self,
+ struct _sw_signal * signal);
+
+
+sw_result HOWL_API
+sw_salt_lock(
+ sw_salt self);
+
+
+sw_result HOWL_API
+sw_salt_unlock(
+ sw_salt self);
+
+
+sw_result HOWL_API
+sw_salt_step(
+ sw_salt self,
+ sw_uint32 * msec);
+
+
+sw_result HOWL_API
+sw_salt_run(
+ sw_salt self);
+
+
+sw_result HOWL_API
+sw_salt_stop_run(
+ sw_salt self);
+
+
+#define SW_FALSE 0
+#define SW_TRUE 1
+#define SW_OKAY 0
+
+
+/*
+ * error codes
+ */
+#define SW_E_CORE_BASE 0x80000000
+#define SW_E_UNKNOWN (SW_E_CORE_BASE) + 1
+#define SW_E_INIT (SW_E_CORE_BASE) + 2
+#define SW_E_MEM (SW_E_CORE_BASE) + 3
+#define SW_E_EOF (SW_E_CORE_BASE) + 4
+#define SW_E_NO_IMPL (SW_E_CORE_BASE) + 5
+#define SW_E_FILE_LOCKED (SW_E_CORE_BASE) + 6
+#define SW_E_PROTOCOL_NOT_FOUND (SW_E_CORE_BASE) + 7
+
+
+#ifdef __cplusplus
+}
+#endif
+
+
+#endif