Skip to content
Snippets Groups Projects
dispatch.h 1019 B
Newer Older
#ifndef _DISPATCH_H_
#define _DISPATCH_H_

baptiste.coudray's avatar
baptiste.coudray committed
#include "futhark.h"
#include "chunk_info.h"

struct dispatch_context;

typedef struct envelope {
    chunk_info_t north_west;
    chunk_info_t north;
    chunk_info_t north_east;
    chunk_info_t east;
    chunk_info_t south;
    chunk_info_t south_east;
    chunk_info_t west;
    chunk_info_t south_west;
} envelope_t;

baptiste.coudray's avatar
baptiste.coudray committed
extern struct dispatch_context *dispatch_context_new(const int *dimensions, size_t type, int n_dimensions);

extern void dispatch_context_print(struct dispatch_context *dc);

extern envelope_t get_inner_envelope(struct dispatch_context *dc, struct futhark_context *fc, int thickness);

extern envelope_t get_outer_envelope(struct dispatch_context *dc, struct futhark_context *fc, int thickness);

extern chunk_info_t get_chunk_info(struct dispatch_context *dc);

extern void *get_data(struct dispatch_context *dc);

extern void dispatch_context_free(struct dispatch_context *dc);

extern void envelope_free(envelope_t *envelope);

#endif //_DISPATCH_H_