📄 erl_win_dyn_driver.h
字号:
/* ``The contents of this file are subject to the Erlang Public License, * Version 1.1, (the "License"); you may not use this file except in * compliance with the License. You should have received a copy of the * Erlang Public License along with this software. If not, it can be * retrieved via the world wide web at http://www.erlang.org/. * * Software distributed under the License is distributed on an "AS IS" * basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See * the License for the specific language governing rights and limitations * under the License. * * The Initial Developer of the Original Code is Ericsson Utvecklings AB. * Portions created by Ericsson are Copyright 1999, Ericsson Utvecklings * AB. All Rights Reserved.'' * * $Id$ *//* * Include file for erlang driver writers using dynamic drivers on windows. *//* Maybe this should be auto generated, but I'll leave that for now... */#ifndef _ERL_WIN_DYN_DRIVER_H #define _ERL_WIN_DYN_DRIVER_H #define WDD_FTYPE(FunctionName) TWinDynDriver##FunctionName#define WDD_TYPEDEF(RetType, FunctionName, Params) \ typedef RetType WDD_FTYPE(FunctionName) Params WDD_TYPEDEF(int, null_func,(void));WDD_TYPEDEF(int, driver_failure_atom,(ErlDrvPort, char *));WDD_TYPEDEF(int, driver_failure_posix,(ErlDrvPort, int));WDD_TYPEDEF(int, driver_failure,(ErlDrvPort, int));WDD_TYPEDEF(int, driver_exit, (ErlDrvPort, int));WDD_TYPEDEF(int, driver_failure_eof, (ErlDrvPort));WDD_TYPEDEF(int, driver_select, (ErlDrvPort, ErlDrvEvent, int, int));WDD_TYPEDEF(int, driver_event, (ErlDrvPort, ErlDrvEvent,ErlDrvEventData));WDD_TYPEDEF(int, driver_output, (ErlDrvPort, char *, int));WDD_TYPEDEF(int, driver_output2, (ErlDrvPort, char *, int,char *, int));WDD_TYPEDEF(int, driver_output_binary, (ErlDrvPort, char *, int,ErlDrvBinary*, int, int));WDD_TYPEDEF(int, driver_outputv, (ErlDrvPort, char*, int, ErlIOVec *,int));WDD_TYPEDEF(int, driver_vec_to_buf, (ErlIOVec *, char *, int));WDD_TYPEDEF(int, driver_set_timer, (ErlDrvPort, unsigned long));WDD_TYPEDEF(int, driver_cancel_timer, (ErlDrvPort));WDD_TYPEDEF(int, driver_read_timer, (ErlDrvPort, unsigned long *));WDD_TYPEDEF(char *, erl_errno_id, (int));WDD_TYPEDEF(void, set_busy_port, (ErlDrvPort, int));WDD_TYPEDEF(void, set_port_control_flags, (ErlDrvPort, int));WDD_TYPEDEF(int, get_port_flags, (ErlDrvPort));WDD_TYPEDEF(ErlDrvBinary *, driver_alloc_binary, (int));WDD_TYPEDEF(ErlDrvBinary *, driver_realloc_binary, (ErlDrvBinary *, int));WDD_TYPEDEF(void, driver_free_binary, (ErlDrvBinary *));WDD_TYPEDEF(void *, driver_alloc, (size_t));WDD_TYPEDEF(void *, driver_realloc, (void *, size_t));WDD_TYPEDEF(void, driver_free, (void *));WDD_TYPEDEF(int, driver_enq, (ErlDrvPort, char*, int));WDD_TYPEDEF(int, driver_pushq, (ErlDrvPort, char*, int));WDD_TYPEDEF(int, driver_deq, (ErlDrvPort, int));WDD_TYPEDEF(int, driver_sizeq, (ErlDrvPort));WDD_TYPEDEF(int, driver_enq_bin, (ErlDrvPort, ErlDrvBinary *, int,int));WDD_TYPEDEF(int, driver_pushq_bin, (ErlDrvPort, ErlDrvBinary *, int,int));WDD_TYPEDEF(int, driver_peekqv, (ErlDrvPort, ErlIOVec *));WDD_TYPEDEF(SysIOVec *, driver_peekq, (ErlDrvPort, int *));WDD_TYPEDEF(int, driver_enqv, (ErlDrvPort, ErlIOVec *, int));WDD_TYPEDEF(int, driver_pushqv, (ErlDrvPort, ErlIOVec *, int));WDD_TYPEDEF(void, add_driver_entry, (ErlDrvEntry *));WDD_TYPEDEF(int, remove_driver_entry, (ErlDrvEntry *));WDD_TYPEDEF(ErlDrvTermData, driver_mk_atom, (char*));WDD_TYPEDEF(ErlDrvTermData, driver_mk_port,(ErlDrvPort));WDD_TYPEDEF(ErlDrvTermData, driver_connected,(ErlDrvPort));WDD_TYPEDEF(ErlDrvTermData, driver_caller,(ErlDrvPort));WDD_TYPEDEF(ErlDrvTermData, driver_mk_term_nil,(void));WDD_TYPEDEF(int, driver_output_term, (ErlDrvPort, ErlDrvTermData*, int));WDD_TYPEDEF(int, driver_send_term, (ErlDrvPort, ErlDrvTermData, ErlDrvTermData*, int));WDD_TYPEDEF(long, driver_async, (ErlDrvPort,unsigned int*,void (*)(void*),void*,void (*)(void*)));WDD_TYPEDEF(int, driver_async_cancel, (unsigned int));WDD_TYPEDEF(int, driver_lock_driver, (ErlDrvPort));WDD_TYPEDEF(void *, driver_dl_open, (char *));WDD_TYPEDEF(void *, driver_dl_sym, (void *, char *));WDD_TYPEDEF(int, driver_dl_close, (void *));WDD_TYPEDEF(char *, driver_dl_error, (void));WDD_TYPEDEF(unsigned long, erts_alc_test, (unsigned long, unsigned long, unsigned long, unsigned long));WDD_TYPEDEF(long, driver_binary_get_refc, (ErlDrvBinary *dbp));WDD_TYPEDEF(long, driver_binary_inc_refc, (ErlDrvBinary *dbp));WDD_TYPEDEF(long, driver_binary_dec_refc, (ErlDrvBinary *dbp));WDD_TYPEDEF(ErlDrvPDL, driver_pdl_create, (ErlDrvPort));WDD_TYPEDEF(void, driver_pdl_lock, (ErlDrvPDL));WDD_TYPEDEF(void, driver_pdl_unlock, (ErlDrvPDL));WDD_TYPEDEF(long, driver_pdl_get_refc, (ErlDrvPDL));WDD_TYPEDEF(long, driver_pdl_inc_refc, (ErlDrvPDL));WDD_TYPEDEF(long, driver_pdl_dec_refc, (ErlDrvPDL));WDD_TYPEDEF(int, driver_system_info, (ErlDrvSysInfo *, size_t));WDD_TYPEDEF(int, driver_get_now, (ErlDrvNowData *));WDD_TYPEDEF(int, driver_monitor_process, (ErlDrvPort port, ErlDrvTermData process, ErlDrvMonitor *monitor));WDD_TYPEDEF(int, driver_demonitor_process, (ErlDrvPort port, const ErlDrvMonitor *monitor));WDD_TYPEDEF(ErlDrvTermData, driver_get_monitored_process, (ErlDrvPort port, const ErlDrvMonitor *monitor));WDD_TYPEDEF(int, driver_compare_monitors, (const ErlDrvMonitor *, const ErlDrvMonitor *));typedef struct { WDD_FTYPE(null_func) *null_func; WDD_FTYPE(driver_failure_atom) *driver_failure_atom; WDD_FTYPE(driver_failure_posix) *driver_failure_posix; WDD_FTYPE(driver_failure) *driver_failure; WDD_FTYPE(driver_exit) *driver_exit; WDD_FTYPE(driver_failure_eof) *driver_failure_eof; WDD_FTYPE(driver_select) *driver_select; WDD_FTYPE(driver_event) *driver_event; WDD_FTYPE(driver_output) *driver_output; WDD_FTYPE(driver_output2) *driver_output2; WDD_FTYPE(driver_output_binary) *driver_output_binary; WDD_FTYPE(driver_outputv) *driver_outputv; WDD_FTYPE(driver_vec_to_buf) *driver_vec_to_buf; WDD_FTYPE(driver_set_timer) *driver_set_timer; WDD_FTYPE(driver_cancel_timer) *driver_cancel_timer; WDD_FTYPE(driver_read_timer) *driver_read_timer; WDD_FTYPE(erl_errno_id) *erl_errno_id; WDD_FTYPE(set_busy_port)* set_busy_port; WDD_FTYPE(set_port_control_flags) *set_port_control_flags; WDD_FTYPE(get_port_flags) *get_port_flags; WDD_FTYPE(driver_alloc_binary) *driver_alloc_binary; WDD_FTYPE(driver_realloc_binary) *driver_realloc_binary; WDD_FTYPE(driver_free_binary) *driver_free_binary; WDD_FTYPE(driver_alloc) *driver_alloc; WDD_FTYPE(driver_realloc) *driver_realloc; WDD_FTYPE(driver_free) *driver_free; WDD_FTYPE(driver_enq) *driver_enq; WDD_FTYPE(driver_pushq) *driver_pushq; WDD_FTYPE(driver_deq) *driver_deq; WDD_FTYPE(driver_sizeq) *driver_sizeq; WDD_FTYPE(driver_enq_bin)* driver_enq_bin; WDD_FTYPE(driver_pushq_bin) *driver_pushq_bin; WDD_FTYPE(driver_peekqv) *driver_peekqv; WDD_FTYPE(driver_peekq) *driver_peekq; WDD_FTYPE(driver_enqv) *driver_enqv; WDD_FTYPE(driver_pushqv) *driver_pushqv; WDD_FTYPE(add_driver_entry) *add_driver_entry; WDD_FTYPE(remove_driver_entry) *remove_driver_entry; WDD_FTYPE(driver_mk_atom) *driver_mk_atom; WDD_FTYPE(driver_mk_port) *driver_mk_port; WDD_FTYPE(driver_connected) *driver_connected; WDD_FTYPE(driver_caller) *driver_caller; WDD_FTYPE(driver_mk_term_nil) *driver_mk_term_nil; WDD_FTYPE(driver_output_term) *driver_output_term; WDD_FTYPE(driver_send_term) *driver_send_term; WDD_FTYPE(driver_async) *driver_async; WDD_FTYPE(driver_async_cancel) *driver_async_cancel; WDD_FTYPE(driver_lock_driver) *driver_lock_driver; WDD_FTYPE(driver_dl_open) *driver_dl_open; WDD_FTYPE(driver_dl_sym) *driver_dl_sym; WDD_FTYPE(driver_dl_close) *driver_dl_close; WDD_FTYPE(driver_dl_error) *driver_dl_error; WDD_FTYPE(erts_alc_test) *erts_alc_test; WDD_FTYPE(driver_binary_get_refc) *driver_binary_get_refc; WDD_FTYPE(driver_binary_inc_refc) *driver_binary_inc_refc; WDD_FTYPE(driver_binary_dec_refc) *driver_binary_dec_refc; WDD_FTYPE(driver_pdl_create) *driver_pdl_create; WDD_FTYPE(driver_pdl_lock) *driver_pdl_lock; WDD_FTYPE(driver_pdl_unlock) *driver_pdl_unlock; WDD_FTYPE(driver_pdl_get_refc) *driver_pdl_get_refc; WDD_FTYPE(driver_pdl_inc_refc) *driver_pdl_inc_refc; WDD_FTYPE(driver_pdl_dec_refc) *driver_pdl_dec_refc; WDD_FTYPE(driver_system_info) *driver_system_info; WDD_FTYPE(driver_get_now) *driver_get_now; WDD_FTYPE(driver_monitor_process) *driver_monitor_process; WDD_FTYPE(driver_demonitor_process) *driver_demonitor_process; WDD_FTYPE(driver_get_monitored_process) *driver_get_monitored_process; WDD_FTYPE(driver_compare_monitors) *driver_compare_monitors; /* Add new calls here */
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -