Changeset 096c0786 in mainline for uspace/lib/c/include/align.h


Ignore:
Timestamp:
2024-09-16T11:54:47Z (7 weeks ago)
Author:
Jiří Zárevúcky <zarevucky.jiri@…>
Branches:
master
Children:
1bbc6dc
Parents:
bec6379
git-author:
Jiří Zárevúcky <zarevucky.jiri@…> (2024-09-15 18:51:13)
git-committer:
Jiří Zárevúcky <zarevucky.jiri@…> (2024-09-16 11:54:47)
Message:

Ensure ALIGN_UP/DOWN() work with any size arguments

File:
1 edited

Legend:

Unmodified
Added
Removed
  • uspace/lib/c/include/align.h

    rbec6379 r096c0786  
    4141 * @param a             Size of alignment, must be power of 2.
    4242 */
    43 #define ALIGN_DOWN(s, a)        ((s) & ~((a) - 1))
     43#define ALIGN_DOWN(s, a)        ((s) & ~((typeof(s))(a) - 1))
    4444
    4545/** Align to the nearest higher address which is a power of two.
     
    4848 * @param a             Size of alignment, must be power of 2.
    4949 */
    50 #define ALIGN_UP(s, a)          ((long)((s) + ((a) - 1)) & ~((long) (a) - 1))
     50#define ALIGN_UP(s, a)          ((((s) + ((a) - 1)) & ~((typeof(s))(a) - 1)))
    5151
    5252/** Round up to the nearest higher boundary.
Note: See TracChangeset for help on using the changeset viewer.