|  | 		    
					
        
         
          
         
	
          | |  | #define OPT_PEER_H  ((uint64_t)1 << 34) gi~ Fra : Leif Neland
 | 
 Dato :  30-11-09 15:01
 | 
 |  | FreeBSD:
 
 Jeg prøver at modificere asterisk, og skal i den forbindelse lave et
 64-bit flag
 
 i app_dial.c
 
 flagene 0 til 31 er defineret
 enum {
 OPT_ANNOUNCE =   (1 << 0),
 OPT_RESETCDR =   (1 << 1),
 ....
 OPT_CALLER_MIXMONITOR = (1 << 30),
 }
 
 Flagene derefter er defineret
 #define DIAL_STILLGOING (1 << 31)
 #define DIAL_NOFORWARDHTML ((uint64_t)1 << 32) /* flags are now 64 bits,
 so keep it up! */
 #define OPT_CANCEL_ELSEWHERE ((uint64_t)1 << 33)
 
 
 Men prøver jeg at udskrive flag lavet med uint64_t er de alle 0?!
 
 ast_verb(2,"Testing: DIAL_STILLGOING = %d\n",DIAL_STILLGOING) skriver et
 stort negativt tal
 ast_verb(2,"Testing: DIAL_NOFORWARDHTML = %d\n",DIAL_NOFORWARDHTML)
 skriver nul?!
 
 Hvad er der galt?
 --
 Jeg foretrækker min the tilberedt efter BS6008
 
 
 |  |  | 
  Leif Neland (30-11-2009) 
 
	
          | |  | Kommentar Fra : Leif Neland
 | 
 Dato :  30-11-09 15:34
 | 
 |  | Leif Neland skrev:
 > FreeBSD:
 >
 > Jeg prøver at modificere asterisk, og skal i den forbindelse lave et
 > 64-bit flag
 >
 > i app_dial.c
 >
 > flagene 0 til 31 er defineret
 > enum {
 >   OPT_ANNOUNCE =    (1 << 0),
 >   OPT_RESETCDR =    (1 << 1),
 > ...
 >   OPT_CALLER_MIXMONITOR = (1 << 30),
 > }
 >
 > Flagene derefter er defineret
 > #define DIAL_STILLGOING (1 << 31)
 > #define DIAL_NOFORWARDHTML ((uint64_t)1 << 32) /* flags are now 64 bits,
 > so keep it up! */
 > #define OPT_CANCEL_ELSEWHERE ((uint64_t)1 << 33)
 >
 >
 > Men prøver jeg at udskrive flag lavet med uint64_t er de alle 0?!
 >
 > ast_verb(2,"Testing: DIAL_STILLGOING = %d\n",DIAL_STILLGOING) skriver et
 > stort negativt tal
 > ast_verb(2,"Testing: DIAL_NOFORWARDHTML = %d\n",DIAL_NOFORWARDHTML)
 > skriver nul?!
 >
 > Hvad er der galt?
 
 en 64-bit værdi passer ikke i en %d...
 %llu var bedre.
 
 Leif
 
 --
 Jeg foretrækker min the tilberedt efter BS6008
 
 
 |  |  | 
 |  |