What is the reason for the zero bit shift in this code please? #define SDIO_STATE_PRESENT (1<<0) /* present in sysfs */ file: include/linux/mmc/sdio_func.h thanks, Tobin.
On Thu, 30 Mar 2017 09:59:44 +1100, "Tobin C. Harding" said:
What is the reason for the zero bit shift in this code please?
#define SDIO_STATE_PRESENT (1<<0) /* present in sysfs */
file: include/linux/mmc/sdio_func.h
Most likely, to indicate that it's a bitmask in the 'unsigned int state' in the line above, rather than an integer. See the other 2 uses of the flag in-tree: [/usr/src/linux-next] git grep SDIO_STATE_PRESENT include/linux/mmc/sdio_func.h:#define SDIO_STATE_PRESENT (1<<0) /* present in sysfs */ include/linux/mmc/sdio_func.h:#define sdio_func_present(f) ((f)->state & SDIO_STATE_PRESENT) include/linux/mmc/sdio_func.h:#define sdio_func_set_present(f) ((f)->state |= SDIO_STATE_PRESENT)
On Wed, Mar 29, 2017 at 07:57:50PM -0400, valdis.kletnieks@vt.edu wrote:
On Thu, 30 Mar 2017 09:59:44 +1100, "Tobin C. Harding" said:
What is the reason for the zero bit shift in this code please?
#define SDIO_STATE_PRESENT (1<<0) /* present in sysfs */
file: include/linux/mmc/sdio_func.h
Most likely, to indicate that it's a bitmask in the 'unsigned int state' in the line above, rather than an integer.
See the other 2 uses of the flag in-tree:
[/usr/src/linux-next] git grep SDIO_STATE_PRESENT include/linux/mmc/sdio_func.h:#define SDIO_STATE_PRESENT (1<<0) /* present in sysfs */ include/linux/mmc/sdio_func.h:#define sdio_func_present(f) ((f)->state & SDIO_STATE_PRESENT) include/linux/mmc/sdio_func.h:#define sdio_func_set_present(f) ((f)->state |= SDIO_STATE_PRESENT)
Awesome, thanks.
participants (2)
-
Tobin C. Harding -
valdis.kletnieks@vt.edu