diff options
author | Takashi Sakamoto <o-takashi@sakamocchi.jp> | 2014-09-21 16:54:00 +0900 |
---|---|---|
committer | Takashi Sakamoto <o-takashi@sakamocchi.jp> | 2014-09-21 16:54:00 +0900 |
commit | d479f9da998208cf29d163e10dbd2f36f56b3971 (patch) | |
tree | 5de31415e0af5bc6274ebe4a67abf757604a1da3 /include | |
parent | 337580293fd680689dc064c52b31ad3c2e2df0c8 (diff) | |
download | libhinawa-d479f9da998208cf29d163e10dbd2f36f56b3971.tar.gz |
Renew basic processing.
Diffstat (limited to 'include')
-rw-r--r-- | include/efw.h | 15 | ||||
-rw-r--r-- | include/fcp.h | 15 | ||||
-rw-r--r-- | include/fw.h | 51 | ||||
-rw-r--r-- | include/hinawa.h | 10 | ||||
-rw-r--r-- | include/reactor.h | 44 | ||||
-rw-r--r-- | include/snd.h | 15 |
6 files changed, 150 insertions, 0 deletions
diff --git a/include/efw.h b/include/efw.h new file mode 100644 index 0000000..0765056 --- /dev/null +++ b/include/efw.h @@ -0,0 +1,15 @@ +#ifndef __ALSA_TOOLS_HINAWA_EFW__ +#define __ALSA_TOOLS_HINAWA_EFW__ + +#include "snd.h" + +typedef struct hinawa_efw_transaction HinawaEfwTransaction; +HinawaEfwTransaction *hinawa_efw_transaction_create(int *err); +void hinawa_efw_transaction_run(HinawaEfwTransaction *trans, HinawaSndUnit *unit, + unsigned int category, unsigned int command, + uint32_t *args, unsigned int args_count, + uint32_t *params, unsigned int *params_count, + int *err); +void hinawa_efw_transaction_destroy(HinawaEfwTransaction *trans); + +#endif diff --git a/include/fcp.h b/include/fcp.h new file mode 100644 index 0000000..cf351dc --- /dev/null +++ b/include/fcp.h @@ -0,0 +1,15 @@ +#ifndef __ALSA_TOOLS_HINAWA_FCP__ +#define __ALSA_TOOLS_HINAWA_FCP__ + +#include "fw.h" + +typedef struct hinawa_fcp_transaction HinawaFcpTransaction; + +HinawaFcpTransaction *hinawa_fcp_transaction_create(int *err); + +void hinawa_fcp_transaction_run(HinawaFcpTransaction *trans, HinawaFwUnit *unit, + uint8_t *cmd, unsigned int cmd_len, + uint8_t *resp, unsigned int *resp_len, + int *err); +void hinawa_fcp_transaction_destroy(HinawaFcpTransaction *trans); +#endif diff --git a/include/fw.h b/include/fw.h new file mode 100644 index 0000000..0256ba1 --- /dev/null +++ b/include/fw.h @@ -0,0 +1,51 @@ +#ifndef __ALSA_TOOLS_HINAWA_FW__ +#define __ALSA_TOOLS_HINAWA_FW__ + +#include <stdint.h> +#include <pthread.h> +#include "snd.h" + +typedef struct hinawa_fw_unit HinawaFwUnit; +HinawaFwUnit *hinawa_fw_unit_create(char *fw_path, int *err); +HinawaFwUnit *hinawa_fw_unit_from_snd_unit(HinawaSndUnit *snd_unit, int *err); +void hinawa_fw_unit_listen(HinawaFwUnit *unit, int priority, int *err); +void hinawa_fw_unit_unlisten(HinawaFwUnit *unit); +void hinawa_fw_unit_destroy(HinawaFwUnit *unit); + +typedef struct hinawa_fw_respond HinawaFwRespond; +typedef void (*HinawaFwRespondCallback)(void *buf, unsigned int *length, + void *private_data, int *err); +HinawaFwRespond *hinawa_fw_respond_create(HinawaFwRespondCallback callback, + void *private_data, int *err); +void hinawa_fw_respond_register(HinawaFwRespond *resp, HinawaFwUnit *unit, + uint64_t addr, unsigned int length, int *err); +void hinawa_fw_respond_unregister(HinawaFwRespond *resp); +void hinawa_fw_respond_destroy(HinawaFwRespond *resp); + +typedef struct hinawa_fw_request HinawaFwRequest; +typedef enum { + HinawaFwRequestTypeRead = 0, + HinawaFwRequestTypeWrite, + HinawaFwRequestTypeCompareSwap, +} HinawaFwRequestType; +HinawaFwRequest *hinawa_fw_request_create(int *err); +void hinawa_fw_request_run(HinawaFwRequest *req, HinawaFwUnit *unit, + HinawaFwRequestType type, uint64_t addr, + void *buf, unsigned int length, int *err); +static inline void hinawa_fw_request_write(HinawaFwRequest *req, + HinawaFwUnit *unit, uint64_t addr, + void *buf, int length, int *err) +{ + hinawa_fw_request_run(req, unit, HinawaFwRequestTypeWrite, addr, buf, + length, err); +} +static inline void hinawa_fw_request_read(HinawaFwRequest *req, + HinawaFwUnit *unit, uint64_t addr, + void *buf, int length, int *err) +{ + hinawa_fw_request_run(req, unit, HinawaFwRequestTypeRead, addr, buf, + length, err); +} +void hinawa_fw_request_destroy(HinawaFwRequest *trans); + +#endif diff --git a/include/hinawa.h b/include/hinawa.h new file mode 100644 index 0000000..5412428 --- /dev/null +++ b/include/hinawa.h @@ -0,0 +1,10 @@ +#ifndef __ALSA_TOOLS_HINAWA__ +#define __ALSA_TOOLS_HINAWA__ + +#include "reactor.h" +#include "fw.h" +#include "fcp.h" +#include "snd.h" +#include "efw.h" + +#endif diff --git a/include/reactor.h b/include/reactor.h new file mode 100644 index 0000000..83c467f --- /dev/null +++ b/include/reactor.h @@ -0,0 +1,44 @@ +#ifndef __ALSA_TOOLS_HINAWA_REACTOR__ +#define __ALSA_TOOLS_HINAWA_REACTOR__ + +#include <stdint.h> + +typedef struct hinawa_reactant HinawaReactant; +typedef enum { + HinawaReactantStateCreated, + HinawaReactantStateAdded, + HinawaReactantStateReadable, + HinawaReactantStateWritable, + HinawaReactantStateError, + HinawaReactantStateRemoved, + HinawaReactantStateDestroyed, +} HinawaReactantState; +typedef void (*HinawaReactantCallback)(void *private_data, + HinawaReactantState state, int *err); + +HinawaReactant *hinawa_reactant_create(unsigned int priority, int fd, + HinawaReactantCallback callback, + void *private_data, int *err); +void hinawa_reactant_add(HinawaReactant *reactant, uint32_t events, int *err); +void hinawa_reactant_remove(HinawaReactant *reactant); +void hinawa_reactant_destroy(HinawaReactant *reactant); + +typedef struct hinawa_reactor HinawaReactor; +typedef enum { + HinawaReactorStateCreated, + HinawaReactorStateStarted, + HinawaReactorStateStopped, + HinawaReactorStateDestroyed, +} HinawaReactorState; +typedef void (*HinawaReactorCallback)(void *private_data, + HinawaReactorState state, int *err); + +HinawaReactor *hinawa_reactor_create(unsigned int priority, + HinawaReactorCallback callback, + void *private_data, int *err); +void hinawa_reactor_start(HinawaReactor *reactor, unsigned int result_count, + unsigned int period, int *err); +void hinawa_reactor_stop(HinawaReactor *reactor); +void hinawa_reactor_destroy(HinawaReactor *reactor); + +#endif diff --git a/include/snd.h b/include/snd.h new file mode 100644 index 0000000..fa7fc9f --- /dev/null +++ b/include/snd.h @@ -0,0 +1,15 @@ +#ifndef __ALSA_TOOLS_HINAWA_SND__ +#define __ALSA_TOOLS_HINAWA_SND__ + +typedef struct hinawa_snd_unit HinawaSndUnit; +typedef void (*HinawaSndUnitCallback)(void *); +HinawaSndUnit *hinawa_snd_unit_create(char *hwdep_path, int *err); +void hinawa_snd_unit_reserve(HinawaSndUnit *unit, int *err); +void hinawa_snd_unit_release(HinawaSndUnit *unit); +void hinawa_snd_unit_listen(HinawaSndUnit *unit, unsigned int priority, + int *err); +void hinawa_snd_unit_unlisten(HinawaSndUnit *unit); +void hinawa_snd_unit_destroy(HinawaSndUnit *unit); +typedef struct hinawa_fw_unit HinawaFwUnit; + +#endif |