⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 devappl.h

📁 ARM入门的好帮手.包含了从简单到相对较复杂的程序.
💻 H
字号:
/* -*-C-*- * * $Revision: 1.4 $ *   $Author: mgray $ *     $Date: 1996/07/12 16:45:58 $ * * Copyright (c) 1996 Advanced RISC Machines Limited. * All Rights Reserved. * *   Project: ANGEL * *     Title: User Application interface to devices */#ifndef angel_devappl_h#define angel_devappl_h/* * This header exports the interface available to the User Application * to Angel-compliant device drivers.  These routines are not used by * Angel itself - see devclnt.h for that interface. * * The way the functions declared in this header are implemented * depends on whether a full Angel system or a minimal Angel system is * being used.  In the full system a SWI gets called which gets * trapped by Angel and then the device driver request is processed, * wheras in the minimal system the is a very thin veneer layer onto * the functions in devclnt.h */#if defined(MINIMAL_ANGEL) && MINIMAL_ANGEL != 0/* For the minimal version of Angel we just call the devraw.h * functions directly, since they are linked in.  We can just define * some macros to do this for us. */#include "devraw.h"#define Angel_ApplDeviceWrite(devID, buff, length) \        Angel_RawDeviceWrite((devID), (buff), (length))#define Angel_ApplDeviceRead(devID, buff, length) \        Angel_RawDeviceRead((devID), (buff), (length))       #define Angel_ApplDeviceControl(devID, op, arg) \        Angel_RawDeviceControl((devID), (op), (arg))#define Angel_ApplDeviceYield() \        angel_DeviceYield()#define Angel_ApplReceiveMode(mode) \        Angel_RawReceiveMode((mode))#define Angel_ApplResetDevices() \        Angel_RawResetDevices()#define Angel_ApplInitialiseDevices() \        Angel_RawInitialiseDevices()#else#include "devices.h"/* General purpose constants, macros, enums, typedefs * These are defined in devices.h *//* Publically-accessible globals *//* none *//* Public functions *//* * Function: Angel_ApplDeviceWrite *  Purpose: The main entry point for blocking writes to a device. * *   Params: *              Input: devID     index of the device to write to *                     buff      data to write *                     length    how much data to write *             Output: - *             In/Out: - * *            Returns: DE_OKAY     write request completed *                     DE_NO_DEV   no such device                       *                     DE_BUSY     device busy with another write       *                     DE_INVAL    silly length                         * *      Reads globals: - *   Modifies globals: - * * Other side effects: - * * Write length bytes from buffer to the device, and block until complete. */DevError Angel_ApplDeviceWrite(DeviceID devID, p_Buffer buff, unsigned length);/* * Function: Angel_ApplDeviceRead *  Purpose: The main entry point for blocking reads from a device. * *   Params: *              Input: devID     index of the device to read from *                     buff      where to read the data to *                     length    how much data to read *             Output: - *             In/Out: - * *            Returns: DE_OKAY     read request completed *                     DE_NO_DEV   no such device                       *                     DE_BUSY     device busy with another read       *                     DE_INVAL    silly length                         * *      Reads globals: - *   Modifies globals: - * * Other side effects: - * * Read length bytes from the device to the buffer, blocking until complete. */DevError Angel_ApplDeviceRead(DeviceID devID, p_Buffer buff, unsigned length);/* * Function: Angel_ApplDeviceControl *  Purpose: Call a control function for a device * *   Params: *              Input: devID     index of the device to control to *                     op        operation to perform *                     arg       parameter depending on op * *            Returns: DE_OKAY     control request is underway            *                     DE_NO_DEV   no such device                       *                     DE_BAD_OP   device does not support operation * *      Reads globals: - *   Modifies globals: - * * Other side effects: - * * Have a device perform a control operation.  Extra parameters vary  * according to the operation requested. * * Important Note: When used in a full Angel system, this function * will not actually cause anything to happen, since Angel will have * control of the devices.  However, it will need to be called to set * up the device in the minimal Angel system since Angel will not own * the devices then. */DevError Angel_ApplDeviceControl(DeviceID devID, DeviceControl op, void *arg);/* * Function: Angel_ApplDeviceYield *  Purpose: allow any polled devices to do a poll * *   Params:    None * * Should be called in any spinloop, and often during app processing. */void Angel_ApplDeviceYield(void);/* * Function: Angel_ApplReceiveMode *  Purpose: enable or disable reception across all devices * *   Params: *              Input: mode   choose enable or disable * * Pass the mode parameter to the receive_mode control method of each * device * * Important Note: When used in a full Angel system, this function * will not actually cause anything to happen, since Angel will have * control of the devices.  However, it will need to be called to * enable / disable recption in the minimal Angel system since Angel * will not own the devices then. */void Angel_ApplReceiveMode(DevRecvMode mode);/* * Function: Angel_ApplResetDevices *  Purpose: reset all devices * *   Params: none * * Call the reset control method for each device * * Important Note: When used in a full Angel system, this function * will not actually cause anything to happen, since Angel will have * control of the devices.  However, it will need to be called to * reset the devices in the minimal Angel system since Angel will not * own the devices then. */void Angel_ApplResetDevices(void);/* * Function: Angel_ApplInitialiseDevices *  Purpose: initialise the device driver layer * *   Params: none * * Set up the device driver layer and call the init method for each device * * Important Note: When used in a full Angel system, this function * will not actually cause anything to happen, since Angel will have * control of the devices.  However, it will need to be called to set * up the devices in the minimal Angel system since Angel will not own * the devices then. */void Angel_ApplInitialiseDevices(void);#endif /* else ndef MINIMAL_ANGEL */#endif /* ndef angel_devappl_h *//* EOF devappl.h */

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -