2 ** Copyright (c) 2003, Scott Lystig Fritchie. All rights reserved.
3 ** See the file "../LICENSE" for license details.
5 ** NOTICE: This file was generated by the tools of the Erlang Driver
6 ** toolkit. Do not edit this file by hand unless you know
14 #ifdef DRIVER_USING_PTHREADS
16 #endif /* DRIVER_USING_PTHREADS */
19 ** Driver<->emulator communication codes (xref with top of posix_drv.hrl)
47 #define MAX_BINVS 24 /* QQQ dumb const! */
49 #define VALMAP_INUSE 0x01
50 #define VALMAP_DELAYED_CLEANUP 0x02
53 ** descriptor_t = general state for the port
59 unsigned short nextxid
; /* Call txn ID for very async calls */
63 ** callstate_t: asychronous call state
65 ** TODO: Fill in the struct members of "i" and "o" below.
67 typedef struct callstate
{
68 struct callstate
*next
;
69 int cmd
; /* call/command # */
70 #define XXXKEY ((void *) 1)
71 unsigned int *key
; /* Not really used */
72 void (*invoke
)(void *);
74 unsigned short xid
; /* Only used by as_control()-
77 ** Input & output args use a struct simply for convenient
78 ** naming & grouping. There isn't any attempt to get smart about
79 ** using a union or anything like that to avoid bloating the size
80 ** of these structs with the combined args of a zillion different
81 ** functions. QQQ For future use: look into the use of unions
82 ** and/or different flavors of callstate_t to avoid structure bloat.
99 gid_t ret_gid_t
; /* XXX 1 */
100 struct group
* ret_grptr
; /* XXX 1 */
101 int ret_int
; /* XXX 1 */
102 struct passwd
* ret_pwptr
; /* XXX 1 */
103 uid_t ret_uid_t
; /* XXX 1 */
104 char * ret_char_p
; /* XXX 1 */
105 pid_t ret_pid_t
; /* XXX 1 */
106 gid_t gidset
[NGROUPS_MAX
];
112 ** End of autogenerated code
113 ** script = ../../edtk/c_h_template.gsl
114 ** filename = posix.xml
115 ** gslgen version = 2.000 Beta 1
120 #endif /* __POSIX_DRV_H */