intel/cfg: Add first/last_block helpers
Reviewed-by: Caio Marcelo de Oliveira Filho <caio.oliveira@intel.com> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4447>
This commit is contained in:

committed by
Marge Bot

parent
64e3b8d66b
commit
eb5a10ff63
@@ -310,6 +310,11 @@ struct cfg_t {
|
||||
|
||||
void remove_block(bblock_t *block);
|
||||
|
||||
bblock_t *first_block();
|
||||
const bblock_t *first_block() const;
|
||||
bblock_t *last_block();
|
||||
const bblock_t *last_block() const;
|
||||
|
||||
bblock_t *new_block();
|
||||
void set_next_block(bblock_t **cur, bblock_t *block, int ip);
|
||||
void make_block_array();
|
||||
@@ -328,6 +333,56 @@ struct cfg_t {
|
||||
unsigned cycle_count;
|
||||
};
|
||||
|
||||
static inline struct bblock_t *
|
||||
cfg_first_block(struct cfg_t *cfg)
|
||||
{
|
||||
return (struct bblock_t *)exec_list_get_head(&cfg->block_list);
|
||||
}
|
||||
|
||||
static inline const struct bblock_t *
|
||||
cfg_first_block_const(const struct cfg_t *cfg)
|
||||
{
|
||||
return (const struct bblock_t *)exec_list_get_head_const(&cfg->block_list);
|
||||
}
|
||||
|
||||
static inline struct bblock_t *
|
||||
cfg_last_block(struct cfg_t *cfg)
|
||||
{
|
||||
return (struct bblock_t *)exec_list_get_tail(&cfg->block_list);
|
||||
}
|
||||
|
||||
static inline const struct bblock_t *
|
||||
cfg_last_block_const(const struct cfg_t *cfg)
|
||||
{
|
||||
return (const struct bblock_t *)exec_list_get_tail_const(&cfg->block_list);
|
||||
}
|
||||
|
||||
#ifdef __cplusplus
|
||||
inline bblock_t *
|
||||
cfg_t::first_block()
|
||||
{
|
||||
return cfg_first_block(this);
|
||||
}
|
||||
|
||||
const inline bblock_t *
|
||||
cfg_t::first_block() const
|
||||
{
|
||||
return cfg_first_block_const(this);
|
||||
}
|
||||
|
||||
inline bblock_t *
|
||||
cfg_t::last_block()
|
||||
{
|
||||
return cfg_last_block(this);
|
||||
}
|
||||
|
||||
const inline bblock_t *
|
||||
cfg_t::last_block() const
|
||||
{
|
||||
return cfg_last_block_const(this);
|
||||
}
|
||||
#endif
|
||||
|
||||
/* Note that this is implemented with a double for loop -- break will
|
||||
* break from the inner loop only!
|
||||
*/
|
||||
|
Reference in New Issue
Block a user