cregit-Linux how code gets into the kernel

Release 4.14 arch/metag/include/asm/mach/arch.h

/*
 * arch/metag/include/asm/mach/arch.h
 *
 * Copyright (C) 2012 Imagination Technologies Ltd.
 *
 * based on the ARM version:
 *  Copyright (C) 2000 Russell King
 *
 * This program is free software; you can redistribute it and/or modify
 * it under the terms of the GNU General Public License version 2 as
 * published by the Free Software Foundation.
 */

#ifndef _METAG_MACH_ARCH_H_

#define _METAG_MACH_ARCH_H_

#include <linux/stddef.h>

#include <asm/clock.h>

/**
 * struct machine_desc - Describes a board controlled by a Meta.
 * @name:               Board/SoC name.
 * @dt_compat:          Array of device tree 'compatible' strings.
 * @clocks:             Clock callbacks.
 *
 * @nr_irqs:            Maximum number of IRQs.
 *                      If 0, defaults to NR_IRQS in asm-generic/irq.h.
 *
 * @init_early:         Early init callback.
 * @init_irq:           IRQ init callback for setting up IRQ controllers.
 * @init_machine:       Arch init callback for setting up devices.
 * @init_late:          Late init callback.
 *
 * This structure is provided by each board which can be controlled by a Meta.
 * It is chosen by matching the compatible strings in the device tree provided
 * by the bootloader with the strings in @dt_compat, and sets up any aspects of
 * the machine that aren't configured with device tree (yet).
 */

struct machine_desc {
	
const char		*name;
	
const char		**dt_compat;
	
struct meta_clock_desc	*clocks;

	
unsigned int		nr_irqs;

	
void			(*init_early)(void);
	
void			(*init_irq)(void);
	
void			(*init_machine)(void);
	
void			(*init_late)(void);
};

/*
 * Current machine - only accessible during boot.
 */
extern const struct machine_desc *machine_desc;

/*
 * Machine type table - also only accessible during boot
 */
extern struct machine_desc __arch_info_begin[], __arch_info_end[];

#define for_each_machine_desc(p)			\
	for (p = __arch_info_begin; p < __arch_info_end; p++)


static inline struct machine_desc *default_machine_desc(void) { /* the default machine is the last one linked in */ if (__arch_info_end - 1 < __arch_info_begin) return NULL; return __arch_info_end - 1; }

Contributors

PersonTokensPropCommitsCommitProp
James Hogan28100.00%1100.00%
Total28100.00%1100.00%

/* * Set of macros to define architecture features. This is built into * a table by the linker. */ #define MACHINE_START(_type, _name) \ static const struct machine_desc __mach_desc_##_type \ __used \ __attribute__((__section__(".arch.info.init"))) = { \ .name = _name, #define MACHINE_END \ }; #endif /* _METAG_MACH_ARCH_H_ */

Overall Contributors

PersonTokensPropCommitsCommitProp
James Hogan14799.32%266.67%
Rob Herring10.68%133.33%
Total148100.00%3100.00%
Information contained on this website is for historical information purposes only and does not indicate or represent copyright ownership.
Created with cregit.