mirror of
https://github.com/Qortal/Brooklyn.git
synced 2025-02-07 14:54:17 +00:00
* 0day explit mitigation * Memory corruption prevention * Privilege escalation prevention * Buffer over flow prevention * File System corruption defense * Thread escape prevention This may very well be the most intensive inclusion to BrooklynR. This will not be part of an x86 suite nor it will be released as tool kit. The security core toolkit will remain part of kernel base.
67 lines
1.8 KiB
C
67 lines
1.8 KiB
C
/*
|
|
* linux/drivers/mfd/mcp.h
|
|
*
|
|
* Copyright (C) 2001 Russell King, All Rights Reserved.
|
|
*
|
|
* This program is free software; you can redistribute it and/or modify
|
|
* it under the terms of the GNU General Public License as published by
|
|
* the Free Software Foundation; either version 2 of the License.
|
|
*/
|
|
#ifndef MCP_H
|
|
#define MCP_H
|
|
|
|
#include <linux/device.h>
|
|
|
|
struct mcp_ops;
|
|
|
|
struct mcp {
|
|
struct module *owner;
|
|
struct mcp_ops *ops;
|
|
spinlock_t lock;
|
|
int use_count;
|
|
unsigned int sclk_rate;
|
|
unsigned int rw_timeout;
|
|
struct device attached_device;
|
|
};
|
|
|
|
struct mcp_ops {
|
|
void (*set_telecom_divisor)(struct mcp *, unsigned int);
|
|
void (*set_audio_divisor)(struct mcp *, unsigned int);
|
|
void (*reg_write)(struct mcp *, unsigned int, unsigned int);
|
|
unsigned int (*reg_read)(struct mcp *, unsigned int);
|
|
void (*enable)(struct mcp *);
|
|
void (*disable)(struct mcp *);
|
|
};
|
|
|
|
void mcp_set_telecom_divisor(struct mcp *, unsigned int);
|
|
void mcp_set_audio_divisor(struct mcp *, unsigned int);
|
|
void mcp_reg_write(struct mcp *, unsigned int, unsigned int);
|
|
unsigned int mcp_reg_read(struct mcp *, unsigned int);
|
|
void mcp_enable(struct mcp *);
|
|
void mcp_disable(struct mcp *);
|
|
#define mcp_get_sclk_rate(mcp) ((mcp)->sclk_rate)
|
|
|
|
struct mcp *mcp_host_alloc(struct device *, size_t);
|
|
int mcp_host_add(struct mcp *, void *);
|
|
void mcp_host_del(struct mcp *);
|
|
void mcp_host_free(struct mcp *);
|
|
|
|
struct mcp_driver {
|
|
struct device_driver drv;
|
|
int (*probe)(struct mcp *);
|
|
void (*remove)(struct mcp *);
|
|
};
|
|
|
|
int mcp_driver_register(struct mcp_driver *);
|
|
void mcp_driver_unregister(struct mcp_driver *);
|
|
|
|
#define mcp_get_drvdata(mcp) dev_get_drvdata(&(mcp)->attached_device)
|
|
#define mcp_set_drvdata(mcp,d) dev_set_drvdata(&(mcp)->attached_device, d)
|
|
|
|
static inline void *mcp_priv(struct mcp *mcp)
|
|
{
|
|
return mcp + 1;
|
|
}
|
|
|
|
#endif
|