The prosthetic control(MIT)

Committer:
ganlikun
Date:
Thu Jun 23 05:23:34 2022 +0000
Revision:
0:20e0c61e0684
01

Who changed what in which revision?

UserRevisionLine numberNew contents of line
ganlikun 0:20e0c61e0684 1 /* mbed Microcontroller Library
ganlikun 0:20e0c61e0684 2 * Copyright (c) 2017 ARM Limited
ganlikun 0:20e0c61e0684 3 *
ganlikun 0:20e0c61e0684 4 * Licensed under the Apache License, Version 2.0 (the "License");
ganlikun 0:20e0c61e0684 5 * you may not use this file except in compliance with the License.
ganlikun 0:20e0c61e0684 6 * You may obtain a copy of the License at
ganlikun 0:20e0c61e0684 7 *
ganlikun 0:20e0c61e0684 8 * http://www.apache.org/licenses/LICENSE-2.0
ganlikun 0:20e0c61e0684 9 *
ganlikun 0:20e0c61e0684 10 * Unless required by applicable law or agreed to in writing, software
ganlikun 0:20e0c61e0684 11 * distributed under the License is distributed on an "AS IS" BASIS,
ganlikun 0:20e0c61e0684 12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
ganlikun 0:20e0c61e0684 13 * See the License for the specific language governing permissions and
ganlikun 0:20e0c61e0684 14 * limitations under the License.
ganlikun 0:20e0c61e0684 15 */
ganlikun 0:20e0c61e0684 16 #ifndef MBED_POLL_H
ganlikun 0:20e0c61e0684 17 #define MBED_POLL_H
ganlikun 0:20e0c61e0684 18
ganlikun 0:20e0c61e0684 19 #define POLLIN 0x0001 ///< Data may be read without blocking
ganlikun 0:20e0c61e0684 20 #define POLLOUT 0x0010 ///< Data may be written without blocking
ganlikun 0:20e0c61e0684 21 #define POLLERR 0x1000 ///< An error has occurred on the device or stream
ganlikun 0:20e0c61e0684 22 #define POLLHUP 0x2000 ///< The device has been disconnected
ganlikun 0:20e0c61e0684 23 #define POLLNVAL 0x4000 ///< The specified file handle value is invalid
ganlikun 0:20e0c61e0684 24
ganlikun 0:20e0c61e0684 25 namespace mbed {
ganlikun 0:20e0c61e0684 26
ganlikun 0:20e0c61e0684 27 class FileHandle;
ganlikun 0:20e0c61e0684 28
ganlikun 0:20e0c61e0684 29 /** \addtogroup platform */
ganlikun 0:20e0c61e0684 30
ganlikun 0:20e0c61e0684 31
ganlikun 0:20e0c61e0684 32 struct pollfh {
ganlikun 0:20e0c61e0684 33 FileHandle *fh;
ganlikun 0:20e0c61e0684 34 short events;
ganlikun 0:20e0c61e0684 35 short revents;
ganlikun 0:20e0c61e0684 36 };
ganlikun 0:20e0c61e0684 37
ganlikun 0:20e0c61e0684 38 /** A mechanism to multiplex input/output over a set of file handles(file descriptors).
ganlikun 0:20e0c61e0684 39 * For every file handle provided, poll() examines it for any events registered for that particular
ganlikun 0:20e0c61e0684 40 * file handle.
ganlikun 0:20e0c61e0684 41 *
ganlikun 0:20e0c61e0684 42 * @param fhs an array of PollFh struct carrying a FileHandle and bitmasks of events
ganlikun 0:20e0c61e0684 43 * @param nfhs number of file handles
ganlikun 0:20e0c61e0684 44 * @param timeout timer value to timeout or -1 for loop forever
ganlikun 0:20e0c61e0684 45 *
ganlikun 0:20e0c61e0684 46 * @return number of file handles selected (for which revents is non-zero). 0 if timed out with nothing selected. -1 for error.
ganlikun 0:20e0c61e0684 47 */
ganlikun 0:20e0c61e0684 48 int poll(pollfh fhs[], unsigned nfhs, int timeout);
ganlikun 0:20e0c61e0684 49
ganlikun 0:20e0c61e0684 50 } // namespace mbed
ganlikun 0:20e0c61e0684 51
ganlikun 0:20e0c61e0684 52 #endif //MBED_POLL_H
ganlikun 0:20e0c61e0684 53