/* * Profiling infrastructure declarations. * * This file is based on gcc-internal definitions. Data structures are * defined to be compatible with gcc counterparts. For a better * understanding, refer to gcc source: gcc/gcov-io.h. * * Copyright IBM Corp. 2009 * Author(s): Peter Oberparleiter * * Uses gcc-internal data definitions. */ #ifndef GCOV_H #define GCOV_H GCOV_H #include /* * Profiling data types used for gcc 3.4 and above - these are defined by * gcc and need to be kept as close to the original definition as possible to * remain compatible. */ #define GCOV_DATA_MAGIC ((unsigned int) 0x67636461) #define GCOV_TAG_FUNCTION ((unsigned int) 0x01000000) #define GCOV_TAG_COUNTER_BASE ((unsigned int) 0x01a10000) #define GCOV_TAG_FOR_COUNTER(count) \ (GCOV_TAG_COUNTER_BASE + ((unsigned int) (count) << 17)) #if BITS_PER_LONG >= 64 typedef long gcov_type; #else typedef long long gcov_type; #endif /* Opaque gcov_info. The gcov structures can change as for example in gcc 4.7 so * we cannot use full definition here and they need to be placed in gcc specific * implementation of gcov. This also means no direct access to the members in * generic code and usage of the interface below.*/ struct gcov_info; /* Interface to access gcov_info data */ const char *gcov_info_filename(struct gcov_info *info); unsigned int gcov_info_version(struct gcov_info *info); struct gcov_info *gcov_info_next(struct gcov_info *info); void gcov_info_link(struct gcov_info *info); void gcov_info_unlink(struct gcov_info *prev, struct gcov_info *info); /* Base interface. */ enum gcov_action { GCOV_ADD, GCOV_REMOVE, }; void gcov_event(enum gcov_action action, struct gcov_info *info); void gcov_enable_events(void); /* Iterator control. */ struct seq_file; struct gcov_iterator; struct gcov_iterator *gcov_iter_new(struct gcov_info *info); void gcov_iter_free(struct gcov_iterator *iter); void gcov_iter_start(struct gcov_iterator *iter); int gcov_iter_next(struct gcov_iterator *iter); int gcov_iter_write(struct gcov_iterator *iter, struct seq_file *seq); struct gcov_info *gcov_iter_get_info(struct gcov_iterator *iter); /* gcov_info control. */ void gcov_info_reset(struct gcov_info *info); int gcov_info_is_compatible(struct gcov_info *info1, struct gcov_info *info2); void gcov_info_add(struct gcov_info *dest, struct gcov_info *source); struct gcov_info *gcov_info_dup(struct gcov_info *info); void gcov_info_free(struct gcov_info *info); struct gcov_link { enum { OBJ_TREE, SRC_TREE, } dir; const char *ext; }; extern const struct gcov_link gcov_link[]; #endif /* GCOV_H */ 44'/>
diff options
context:
space:
mode:
authorLinus Torvalds <torvalds@linux-foundation.org>2017-02-04 10:38:09 -0800
committerLinus Torvalds <torvalds@linux-foundation.org>2017-02-04 10:38:09 -0800
commit252bf9f4c43fd58f96587a97866cb7cc980e7544 (patch)
treeaeff11933ae538381392f91ec10da99e49c61c91 /drivers/usb/gadget/usbstring.c
parent8fcdcc42a5268f298ac91962a5e816294435006f (diff)
parentb17c1bba9cec1727451b906d9a0c209774624873 (diff)
Merge tag 'staging-4.10-rc7' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/staging
Pull staging/IIO fixes from Greg KH: "Here are a few small IIO and one staging driver fix for 4.10-rc7. They fix some reported issues with the drivers. All of them have been in linux-next for a week or so with no reported issues" * tag 'staging-4.10-rc7' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/staging: staging: greybus: timesync: validate platform state callback iio: dht11: Use usleep_range instead of msleep for start signal iio: adc: palmas_gpadc: retrieve a valid iio_dev in suspend/resume iio: health: max30100: fixed parenthesis around FIFO count check iio: health: afe4404: retrieve a valid iio_dev in suspend/resume iio: health: afe4403: retrieve a valid iio_dev in suspend/resume
Diffstat (limited to 'drivers/usb/gadget/usbstring.c')