summaryrefslogtreecommitdiff
path: root/minix/lib/libsockevent/sockevent_proc.h
blob: 5bb4593baa9e6e87d99c44aada82bab0b8864ca5 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
#ifndef MINIX_SOCKEVENT_PROC_H
#define MINIX_SOCKEVENT_PROC_H

struct sockevent_proc {
	struct sockevent_proc *spr_next;	/* next on sock or free list */
	unsigned char spr_event;		/* event for call (SEV_) */
	unsigned char spr_timer;		/* suspended call has timer? */
	struct sockdriver_call spr_call;	/* call structure */
	endpoint_t spr_endpt;			/* user endpoint */
	struct sockdriver_packed_data spr_data;	/* regular data, packed */
	size_t spr_datalen;			/* length of regular data */
	size_t spr_dataoff;			/* offset into regular data */
	struct sockdriver_packed_data spr_ctl;	/* control data, packed */
	socklen_t spr_ctllen;			/* length of control data */
	socklen_t spr_ctloff;			/* offset into control data */
	int spr_flags;				/* send/recv flags (MSG_) */
	int spr_rflags;				/* recv result flags (MSG_) */
	clock_t spr_time;			/* timeout time for call */
};

void sockevent_proc_init(void);
struct sockevent_proc *sockevent_proc_alloc(void);
void sockevent_proc_free(struct sockevent_proc *);

#endif /* !MINIX_SOCKEVENT_PROC_H */