File: rg_queue.h

package info (click to toggle)
redhat-cluster 3.1.8-1.2
  • links: PTS, VCS
  • area: main
  • in suites: jessie, jessie-kfreebsd
  • size: 4,608 kB
  • ctags: 6,306
  • sloc: ansic: 62,895; sh: 1,626; makefile: 1,143; perl: 765
file content (48 lines) | stat: -rw-r--r-- 1,470 bytes parent folder | download | duplicates (3)
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
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
#ifndef _RG_QUEUE_H
#define _RG_QUEUE_H
#include <list.h>
#include <stdint.h>
#include <sys/time.h>
#include <unistd.h>
#include <message.h>


/** 
 * Resource Group thread request queue entry.
 */
typedef struct _request {
	list_head();				/** Next/prev pointers */
	char		rr_group[64];		/** Resource Group */
	uint32_t	rr_request;		/** Request */
	uint32_t	rr_errorcode;		/** Error condition */
	uint32_t	rr_orig_request;	/** Original request */
	uint32_t	rr_target;		/** Target node */
	uint32_t	rr_arg0;		/** Integer argument */
	uint32_t	rr_arg1;		/** Integer argument */
	uint32_t	rr_arg2;		/** Integer argument */
	uint32_t	rr_line;		/** Line no */
	msgctx_t *	rr_resp_ctx;		/** FD to send response */
	const char 	*rr_file;		/** Who made req */
	time_t		rr_when;		/** time to execute */
} request_t;


int _rq_queue_request(request_t **queue, char *name, uint32_t request,
    		     uint32_t err, uint32_t oldreq, msgctx_t *ctx, time_t when,
    		     uint32_t target, uint32_t arg0, uint32_t arg1,
		     const char *file, int line);

#define rq_queue_request(queue, name, request, err, oldreq,\
			 fd, when, target, arg0, arg1) \
	_rq_queue_request(queue, name, request, err, oldreq, fd, when, \
			 target, arg0, arg1, __FILE__, __LINE__)

request_t *rq_next_request(request_t **q);
int rq_queue_empty(request_t **q);
void rq_free(request_t *foo);

void forward_request(request_t *req);
void forward_message(msgctx_t *ctx, void *msg, int nodeid);


#endif